All functions:
  Elements:
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-tool.c:102,1
    - Dst: fwupd_client_get_status
      Src: /src/fwupd/src/fu-tool.c:103,1
    - Dst: fwupd_client_get_percentage_full
      Src: /src/fwupd/src/fu-tool.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - object
    - pspec
    - self
    argTypes:
    - GObject*
    - GParamSpec*
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: fu_util_client_notify_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_percentage_full
    - fwupd_client_get_status
    - fu_console_set_progress
    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:117,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:119,1
    - Dst: fwupd_plugin_has_flag
      Src: /src/fwupd/src/fu-tool.c:120,1
    - Dst: fwupd_plugin_has_flag
      Src: /src/fwupd/src/fu-tool.c:122,1
    - Dst: fwupd_plugin_get_flags
      Src: /src/fwupd/src/fu-tool.c:124,1
    - Dst: fu_util_plugin_flag_to_string
      Src: /src/fwupd/src/fu-tool.c:141,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-tool.c:144,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:145,1
    - Dst: fwupd_plugin_flag_to_string
      Src: /src/fwupd/src/fu-tool.c:146,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:148,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:148,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 150
    functionName: fu_util_show_plugin_warnings
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_print
    - fu_engine_get_plugins
    - fwupd_plugin_has_flag
    - fu_util_plugin_flag_to_string
    - fu_console_print_full
    - g_strdup_printf
    - _
    - fwupd_plugin_flag_to_string
    - fwupd_plugin_get_flags
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_util_show_plugin_warnings(FuUtil *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/fwupd/src/fu-tool.c:164,1
    - Dst: geteuid
      Src: /src/fwupd/src/fu-tool.c:164,1
    - Dst: fu_util_get_user_cache_path
      Src: /src/fwupd/src/fu-tool.c:170,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/src/fu-tool.c:172,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-tool.c:180,1
    - Dst: g_open
      Src: /src/fwupd/src/fu-tool.c:182,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:184,1
    - Dst: fcntl
      Src: /src/fwupd/src/fu-tool.c:194,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:195,1
    - Dst: fcntl
      Src: /src/fwupd/src/fu-tool.c:203,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:204,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:214,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 217
    functionName: fu_util_lock
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_context_build_filename
    - getuid
    - g_set_error
    - g_debug
    - g_open
    - geteuid
    - fcntl
    - fu_util_get_user_cache_path
    - fu_path_mkdir_parent
    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:223,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-tool.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 226
    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:233,1
    - Dst: fu_util_lock
      Src: /src/fwupd/src/fu-tool.c:236,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-tool.c:238,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:238,1
    - Dst: getuid
      Src: /src/fwupd/src/fu-tool.c:242,1
    - Dst: geteuid
      Src: /src/fwupd/src/fu-tool.c:242,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-tool.c:243,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:245,1
    - Dst: fu_systemd_unit_stop
      Src: /src/fwupd/src/fu-tool.c:246,1
    - Dst: fu_util_get_systemd_unit
      Src: /src/fwupd/src/fu-tool.c:246,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-tool.c:247,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:252,1
    - Dst: fu_util_show_plugin_warnings
      Src: /src/fwupd/src/fu-tool.c:256,1
    - Dst: fu_util_show_unsupported_warning
      Src: /src/fwupd/src/fu-tool.c:257,1
    - Dst: g_object_set
      Src: /src/fwupd/src/fu-tool.c:262,1
    - Dst: fu_engine_get_host_vendor
      Src: /src/fwupd/src/fu-tool.c:264,1
    - Dst: fu_engine_get_host_product
      Src: /src/fwupd/src/fu-tool.c:266,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/src/fu-tool.c:268,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:268,1
    - Dst: fu_context_get_battery_threshold
      Src: /src/fwupd/src/fu-tool.c:270,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:270,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - self
    - flags
    - progress
    - error
    argTypes:
    - FuUtil*
    - FuEngineLoadFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 276
    functionName: fu_util_start_engine
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - _
    - geteuid
    - fu_util_show_unsupported_warning
    - fu_engine_get_context
    - fu_context_get_battery_level
    - fu_systemd_unit_stop
    - fu_engine_get_host_vendor
    - g_object_set
    - g_info
    - fu_util_show_plugin_warnings
    - fu_engine_get_host_product
    - fu_engine_load
    - fu_context_get_battery_threshold
    - fu_engine_get_loaded
    - fu_util_get_systemd_unit
    - getuid
    - g_prefix_error
    - fu_util_lock
    - g_autoptr
    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:281,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-tool.c:282,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-tool.c:284,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-tool.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - value
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 290
    functionName: fu_util_maybe_prefix_sandbox_error
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_file_test
    - g_getenv
    - g_path_get_dirname
    - g_prefix_error
    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:297,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:297,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/src/fu-tool.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cancellable
    - user_data
    argTypes:
    - GCancellable*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 299
    functionName: fu_util_cancelled_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - _
    - fu_console_print_literal
    - g_main_loop_quit
    linkageType: ''
    returnType: void
    signature: void fu_util_cancelled_cb(GCancellable *cancellable, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_path_store
      Src: /src/fwupd/src/fu-tool.c:304,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:306,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:307,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:308,1
    - Dst: fu_smbios_new
      Src: /src/fwupd/src/fu-tool.c:314,1
    - Dst: fu_smbios_setup_from_file
      Src: /src/fwupd/src/fu-tool.c:315,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/src/fu-tool.c:317,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-tool.c:317,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 320
    functionName: fu_util_smbios_dump
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_smbios_new
    - g_set_error_literal
    - FU_FIRMWARE
    - fu_firmware_to_string
    - fu_context_get_path_store
    - fu_smbios_setup_from_file
    - g_strv_length
    - fu_console_print_literal
    - g_autoptr
    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:327,1
    - Dst: g_cancellable_cancel
      Src: /src/fwupd/src/fu-tool.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 330
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_unix_signal_source_new
      Src: /src/fwupd/src/fu-tool.c:339,1
    - Dst: g_source_set_callback
      Src: /src/fwupd/src/fu-tool.c:340,1
    - Dst: g_source_attach
      Src: /src/fwupd/src/fu-tool.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 343
    functionName: fu_util_handle_sigint_start
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_source_attach
    - g_unix_signal_source_new
    - g_source_set_callback
    linkageType: ''
    returnType: void
    signature: void fu_util_handle_sigint_start(FuUtil *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_source_destroy
      Src: /src/fwupd/src/fu-tool.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 352
    functionName: fu_util_handle_sigint_stop
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_source_destroy
    linkageType: ''
    returnType: void
    signature: void fu_util_handle_sigint_stop(FuUtil *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-tool.c:357,1
    - Dst: fu_util_handle_sigint_start
      Src: /src/fwupd/src/fu-tool.c:358,1
    - Dst: fu_util_handle_sigint_stop
      Src: /src/fwupd/src/fu-tool.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - pspec
    - self
    argTypes:
    - FuContext*
    - GParamSpec*
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 362
    functionName: fu_util_context_flags_notify_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_util_handle_sigint_start
    - fu_util_handle_sigint_stop
    linkageType: ''
    returnType: void
    signature: void fu_util_context_flags_notify_cb(FuContext *ctx, GParamSpec *pspec,
      FuUtil *self)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/src/fu-tool.c:367,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-tool.c:369,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-tool.c:371,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-tool.c:373,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-tool.c:375,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-tool.c:377,1
    - Dst: g_main_context_unref
      Src: /src/fwupd/src/fu-tool.c:379,1
    - Dst: g_main_loop_unref
      Src: /src/fwupd/src/fu-tool.c:381,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-tool.c:383,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-tool.c:385,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-tool.c:387,1
    - Dst: g_option_context_free
      Src: /src/fwupd/src/fu-tool.c:389,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-tool.c:391,1
    - Dst: g_source_destroy
      Src: /src/fwupd/src/fu-tool.c:393,1
    - Dst: g_close
      Src: /src/fwupd/src/fu-tool.c:395,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-tool.c:396,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-tool.c:397,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 398
    functionName: fu_util_private_free
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_object_unref
    - g_source_destroy
    - g_close
    - g_main_loop_unref
    - g_free
    - g_main_context_unref
    - g_option_context_free
    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:413,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/src/fu-tool.c:417,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-tool.c:422,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:422,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:423,1
    - Dst: fwupd_request_get_message
      Src: /src/fwupd/src/fu-tool.c:423,1
    - Dst: fu_console_set_progress_title
      Src: /src/fwupd/src/fu-tool.c:424,1
    - Dst: fu_console_beep
      Src: /src/fwupd/src/fu-tool.c:425,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/src/fu-tool.c:429,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:430,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:430,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - client
    - request
    - self
    argTypes:
    - FwupdClient*
    - FwupdRequest*
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 431
    functionName: fu_util_update_device_request_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_beep
    - fwupd_request_get_kind
    - fu_console_set_progress_title
    - g_ptr_array_add
    - fu_console_color_format
    - _
    - g_strdup_printf
    - g_object_ref
    - fwupd_request_get_message
    linkageType: ''
    returnType: void
    signature: void fu_util_update_device_request_cb(FwupdClient *client, FwupdRequest
      *request, FuUtil *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/src/fu-tool.c:436,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-tool.c:437,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - engine
    - device
    - self
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 441
    functionName: fu_util_engine_device_added_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_log_get_debug_enabled
    - fu_device_to_string
    linkageType: ''
    returnType: void
    signature: void fu_util_engine_device_added_cb(FuEngine *engine, FuDevice *device,
      FuUtil *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/src/fu-tool.c:446,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-tool.c:447,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - engine
    - device
    - self
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 451
    functionName: fu_util_engine_device_removed_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_log_get_debug_enabled
    - fu_device_to_string
    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:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - engine
    - status
    - self
    argTypes:
    - FuEngine*
    - FwupdStatus
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 459
    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:466,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/src/fu-tool.c:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - progress
    - percentage
    - self
    argTypes:
    - FuProgress*
    - gdouble
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 467
    functionName: fu_util_progress_percentage_changed_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_status
    - fu_console_set_progress
    linkageType: ''
    returnType: void
    signature: void fu_util_progress_percentage_changed_cb(FuProgress *progress, gdouble
      percentage, FuUtil *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-tool.c:474,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/src/fu-tool.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - progress
    - status
    - self
    argTypes:
    - FuProgress*
    - FwupdStatus
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 475
    functionName: fu_util_progress_status_changed_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_percentage
    - fu_console_set_progress
    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:480,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/src/fu-tool.c:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 477
    functionDepth: 3
    functionLinenumber: 477
    functionLinenumberEnd: 487
    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:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 493
    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:498,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:498,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:501,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/src/fu-tool.c:501,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:504,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:504,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-tool.c:506,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:510,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/src/fu-tool.c:510,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:511,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:513,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/src/fu-tool.c:514,1
    - Dst: fwupd_json_array_to_string
      Src: /src/fwupd/src/fu-tool.c:516,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:517,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:523,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:524,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 528
    functionName: fu_util_get_verfmts
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_ptr_array_sort
    - fwupd_json_array_to_string
    - g_steal_pointer
    - g_ptr_array_add
    - fwupd_json_array_new
    - fwupd_json_array_add_string
    - fu_console_print_literal
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - fwupd_version_format_to_string
    - g_ptr_array_index
    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:536,1
    - Dst: fu_engine_get_plugins
      Src: /src/fwupd/src/fu-tool.c:545,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-tool.c:546,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:548,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-tool.c:548,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-tool.c:549,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-tool.c:550,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:556,1
    - Dst: fu_util_plugin_to_string
      Src: /src/fwupd/src/fu-tool.c:557,1
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/src/fu-tool.c:557,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 530
    functionDepth: 3
    functionLinenumber: 530
    functionLinenumberEnd: 562
    functionName: fu_util_get_plugins
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_sort
    - fu_util_print_json_object
    - fu_engine_get_plugins
    - fwupd_json_object_new
    - fwupd_codec_array_to_json
    - fu_util_plugin_to_string
    - FWUPD_PLUGIN
    - fu_console_print_literal
    - fu_util_start_engine
    - g_autoptr
    - g_ptr_array_index
    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:569,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:570,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/src/fu-tool.c:574,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:576,1
    - Dst: fwupd_device_array_ensure_parents
      Src: /src/fwupd/src/fu-tool.c:580,1
    - Dst: fwupd_device_array_filter_flags
      Src: /src/fwupd/src/fu-tool.c:583,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:592,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:594,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:598,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-tool.c:599,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:601,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:606,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:614,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:614,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:616,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-tool.c:617,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:618,1
    - Dst: fu_console_input_uint
      Src: /src/fwupd/src/fu-tool.c:622,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:622,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:624,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:630,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:631,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - self
    - devices_opt
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 632
    functionName: fu_util_prompt_for_device
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_print
    - fu_device_get_id_display
    - fu_engine_get_devices
    - g_set_error_literal
    - _
    - g_object_ref
    - fu_console_input_uint
    - g_ptr_array_ref
    - fu_device_get_name
    - fwupd_device_array_ensure_parents
    - g_autoptr
    - fwupd_device_array_filter_flags
    - g_ptr_array_index
    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:637,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:638,1
    - Dst: fu_engine_get_devices_by_guid
      Src: /src/fwupd/src/fu-tool.c:639,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:642,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:648,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-tool.c:655,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FuUtil*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 656
    functionName: fu_util_get_device
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_devices_by_guid
    - g_set_error_literal
    - fu_engine_get_device
    - fu_util_prompt_for_device
    - fwupd_guid_is_valid
    - g_autoptr
    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:661,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-tool.c:661,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:662,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/src/fu-tool.c:662,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:664,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:665,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:666,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:667,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-tool.c:667,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:669,1
    - Dst: fu_engine_get_upgrades
      Src: /src/fwupd/src/fu-tool.c:673,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-tool.c:675,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:678,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:682,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-tool.c:683,1
    - Dst: fwupd_device_add_release
      Src: /src/fwupd/src/fu-tool.c:687,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/src/fu-tool.c:691,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-tool.c:691,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/src/fu-tool.c:692,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/src/fu-tool.c:694,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-tool.c:695,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - self
    - devices
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 697
    functionName: fu_util_get_updates_as_json
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - FWUPD_CODEC
    - fu_engine_get_upgrades
    - fwupd_device_add_release
    - g_debug
    - fu_util_print_json_object
    - fwupd_json_object_new
    - fwupd_device_get_id
    - fwupd_codec_to_json
    - fwupd_json_array_new
    - fwupd_json_array_add_object
    - fwupd_device_has_flag
    - fwupd_release_match_flags
    - g_autoptr
    - g_ptr_array_index
    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:702,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:703,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-tool.c:703,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:704,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-tool.c:704,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:705,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-tool.c:705,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:708,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:716,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:717,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:721,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:722,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:723,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:725,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:732,1
    - Dst: fu_util_get_updates_as_json
      Src: /src/fwupd/src/fu-tool.c:738,1
    - Dst: fwupd_device_array_ensure_parents
      Src: /src/fwupd/src/fu-tool.c:740,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-tool.c:741,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:743,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:744,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:745,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:749,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:750,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-tool.c:752,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:756,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:757,1
    - Dst: fu_engine_get_upgrades
      Src: /src/fwupd/src/fu-tool.c:762,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-tool.c:764,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:767,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:769,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:772,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:772,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:775,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-tool.c:776,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:780,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:780,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:786,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:789,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:791,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:792,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:792,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:796,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:799,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:801,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:802,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:802,1
    - Dst: g_node_n_nodes
      Src: /src/fwupd/src/fu-tool.c:807,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:808,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:811,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-tool.c:815,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 699
    functionDepth: 3
    functionLinenumber: 699
    functionLinenumberEnd: 817
    functionName: fu_util_get_updates
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_node_n_nodes
    - fu_util_print_node
    - fu_engine_get_devices
    - _
    - g_object_ref
    - g_strv_length
    - fwupd_release_match_flags
    - g_ptr_array_index
    - g_ptr_array_sort
    - fu_console_print
    - g_node_new
    - g_debug
    - fu_util_get_updates_as_json
    - g_set_error_literal
    - fu_util_start_engine
    - g_ptr_array_new_with_free_func
    - g_ptr_array_new
    - fwupd_device_get_id
    - fu_console_print_literal
    - fwupd_device_array_ensure_parents
    - fwupd_device_get_name
    - fu_engine_get_upgrades
    - g_set_error
    - g_node_append_data
    - g_ptr_array_add
    - fwupd_device_match_flags
    - fwupd_device_has_flag
    - g_autoptr
    - fu_util_get_device
    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:822,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:823,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-tool.c:823,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:824,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:827,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:835,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:836,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-tool.c:847,1
    - Dst: fu_util_maybe_prefix_sandbox_error
      Src: /src/fwupd/src/fu-tool.c:849,1
    - Dst: fu_engine_get_details
      Src: /src/fwupd/src/fu-tool.c:852,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:856,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-tool.c:859,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:863,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:863,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/src/fu-tool.c:864,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:866,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:866,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-tool.c:868,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 819
    functionDepth: 3
    functionLinenumber: 819
    functionLinenumberEnd: 871
    functionName: fu_util_get_details
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_details
    - g_node_new
    - fu_util_print_node
    - g_node_append_data
    - g_set_error_literal
    - g_object_ref
    - g_strv_length
    - fwupd_device_get_release_default
    - fwupd_device_match_flags
    - g_ptr_array_index
    - fu_input_stream_from_path
    - fu_util_start_engine
    - g_autoptr
    - fu_util_maybe_prefix_sandbox_error
    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:876,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-tool.c:876,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/src/fu-tool.c:880,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-tool.c:884,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-tool.c:885,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-tool.c:886,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-tool.c:887,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:889,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 892
    functionName: fu_util_get_device_flags
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_string_append
    - fwupd_device_flag_to_string
    - fu_console_print_literal
    - g_string_new
    - g_autoptr
    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:898,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-tool.c:899,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-tool.c:899,1
    - Dst: fu_util_is_interesting_device
      Src: /src/fwupd/src/fu-tool.c:903,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-tool.c:903,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-tool.c:905,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:906,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:906,1
    - Dst: fu_util_build_device_tree
      Src: /src/fwupd/src/fu-tool.c:907,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - self
    - root
    - devs
    - dev
    argTypes:
    - FuUtil*
    - FuUtilNode*
    - GPtrArray*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 910
    functionName: fu_util_build_device_tree
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 1
    functionsReached:
    - fu_device_get_parent_internal
    - g_node_append_data
    - FWUPD_DEVICE
    - g_object_ref
    - fwupd_device_match_flags
    - fu_util_build_device_tree
    - g_ptr_array_index
    - fu_util_is_interesting_device
    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:915,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-tool.c:915,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:916,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/src/fu-tool.c:916,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:918,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:919,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:920,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:921,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-tool.c:921,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-tool.c:924,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:929,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:932,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-tool.c:933,1
    - Dst: fu_device_add_release
      Src: /src/fwupd/src/fu-tool.c:937,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/src/fu-tool.c:942,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-tool.c:942,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/src/fu-tool.c:943,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/src/fu-tool.c:945,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-tool.c:946,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - self
    - devs
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 948
    functionName: fu_util_get_devices_as_json
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - FWUPD_CODEC
    - fu_util_print_json_object
    - g_debug
    - fwupd_json_object_new
    - fu_engine_get_releases_for_device
    - fwupd_codec_to_json
    - fwupd_json_array_new
    - fu_device_add_release
    - fwupd_json_array_add_object
    - fwupd_release_match_flags
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_devices_as_json(FuUtil *self, GPtrArray *devs,
      GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:955,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-tool.c:955,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:956,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:963,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:967,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:968,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:970,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:973,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:976,1
    - Dst: fu_util_get_devices_as_json
      Src: /src/fwupd/src/fu-tool.c:983,1
    - Dst: fwupd_device_array_ensure_parents
      Src: /src/fwupd/src/fu-tool.c:986,1
    - Dst: fu_util_build_device_tree
      Src: /src/fwupd/src/fu-tool.c:987,1
    - Dst: g_node_n_children
      Src: /src/fwupd/src/fu-tool.c:991,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:992,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:996,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-tool.c:999,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 950
    functionDepth: 3
    functionLinenumber: 950
    functionLinenumberEnd: 1002
    functionName: fu_util_get_devices
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_node_new
    - fu_util_print_node
    - fu_engine_get_devices
    - g_set_error_literal
    - g_ptr_array_add
    - _
    - g_strv_length
    - g_ptr_array_new_with_free_func
    - fu_util_get_devices_as_json
    - fwupd_device_array_ensure_parents
    - fu_util_build_device_tree
    - fu_util_start_engine
    - g_autoptr
    - g_node_n_children
    - fu_util_get_device
    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:1010,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:1012,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:1017,1
    - Dst: fwupd_device_get_composite_id
      Src: /src/fwupd/src/fu-tool.c:1017,1
    - Dst: fwupd_device_get_composite_id
      Src: /src/fwupd/src/fu-tool.c:1018,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-tool.c:1019,1
    - Dst: fwupd_device_get_status
      Src: /src/fwupd/src/fu-tool.c:1024,1
    - Dst: fwupd_device_get_status
      Src: /src/fwupd/src/fu-tool.c:1025,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:1026,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:1027,1
    - Dst: fwupd_status_to_string
      Src: /src/fwupd/src/fu-tool.c:1028,1
    - Dst: fwupd_device_get_status
      Src: /src/fwupd/src/fu-tool.c:1028,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:1035,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:1035,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:1035,1
    - Dst: fu_console_set_progress_title
      Src: /src/fwupd/src/fu-tool.c:1036,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:1039,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:1039,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:1039,1
    - Dst: fu_console_set_progress_title
      Src: /src/fwupd/src/fu-tool.c:1040,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:1043,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:1043,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:1043,1
    - Dst: fu_console_set_progress_title
      Src: /src/fwupd/src/fu-tool.c:1044,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-tool.c:1046,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-tool.c:1048,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - client
    - device
    - self
    argTypes:
    - FwupdClient*
    - FwupdDevice*
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1049
    functionName: fu_util_update_device_changed_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fwupd_device_get_name
    - g_debug
    - fwupd_device_get_composite_id
    - fwupd_device_get_status
    - fu_console_set_progress_title
    - g_set_object
    - _
    - g_strdup_printf
    - g_warning
    - fwupd_device_has_flag
    - fwupd_status_to_string
    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:1059,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:1060,1
    - Dst: fu_util_request_get_message
      Src: /src/fwupd/src/fu-tool.c:1060,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1062
    functionName: fu_util_display_current_message
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_request_get_message
    - fu_console_print_literal
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_util_display_current_message(FuUtil *self)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1068,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1069,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-tool.c:1069,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1070,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:1073,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-tool.c:1074,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1075,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1076,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1077,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1080,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1081,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-tool.c:1089,1
    - Dst: fu_util_maybe_prefix_sandbox_error
      Src: /src/fwupd/src/fu-tool.c:1091,1
    - Dst: fu_release_set_stream
      Src: /src/fwupd/src/fu-tool.c:1094,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1095,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-tool.c:1098,1
    - Dst: fu_release_set_firmware_basename
      Src: /src/fwupd/src/fu-tool.c:1099,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:1102,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1107,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1110,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1114,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:1115,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:1119,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1125,1
    - Dst: fu_release_set_version
      Src: /src/fwupd/src/fu-tool.c:1126,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:1129,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:1129,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:1131,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1136,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:1137,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:1138,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:1138,1
    - Dst: fu_engine_composite_prepare
      Src: /src/fwupd/src/fu-tool.c:1139,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-tool.c:1140,1
    - Dst: fu_engine_install_blob
      Src: /src/fwupd/src/fu-tool.c:1145,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1148,1
    - Dst: fu_engine_request_get_feature_flags
      Src: /src/fwupd/src/fu-tool.c:1150,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1153,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1157,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1158,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:1161,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:1161,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:1163,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1165,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:1166,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:1167,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:1167,1
    - Dst: fu_engine_composite_cleanup
      Src: /src/fwupd/src/fu-tool.c:1168,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-tool.c:1169,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-tool.c:1176,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-tool.c:1179,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 74
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1064
    functionDepth: 3
    functionLinenumber: 1064
    functionLinenumberEnd: 1180
    functionName: fu_util_install_blob
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_util_prompt_for_device
    - g_object_ref
    - g_strv_length
    - fu_release_set_stream
    - fu_engine_composite_prepare
    - fu_input_stream_from_path
    - fu_util_maybe_prefix_sandbox_error
    - g_signal_connect
    - g_debug
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_release_set_version
    - fu_util_display_current_message
    - fu_util_start_engine
    - g_ptr_array_new_with_free_func
    - g_path_get_basename
    - fu_progress_add_step
    - FU_ENGINE
    - fu_release_new
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_engine_request_get_feature_flags
    - fu_util_prompt_complete
    - fu_engine_composite_cleanup
    - g_steal_pointer
    - g_ptr_array_add
    - fu_device_get_id
    - G_CALLBACK
    - g_autoptr
    - fu_engine_install_blob
    - fu_util_get_device
    - fu_release_set_firmware_basename
    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:1185,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-tool.c:1185,1
    - 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_autoptr
      Src: /src/fwupd/src/fu-tool.c:1188,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1189,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1192,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1193,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-tool.c:1202,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-tool.c:1205,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-tool.c:1210,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/src/fu-tool.c:1211,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-tool.c:1211,1
    - Dst: fu_cabinet_sign
      Src: /src/fwupd/src/fu-tool.c:1216,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-tool.c:1218,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-tool.c:1218,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:1221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1182
    functionDepth: 1
    functionLinenumber: 1182
    functionLinenumberEnd: 1222
    functionName: fu_util_firmware_sign
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_bytes_get_contents
    - fu_firmware_parse_file
    - g_set_error_literal
    - FU_FIRMWARE
    - fu_cabinet_sign
    - fu_cabinet_new
    - g_strv_length
    - fu_bytes_set_contents
    - g_file_new_for_path
    - g_autoptr
    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:1227,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1228,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-tool.c:1228,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1229,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:1232,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-tool.c:1233,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1234,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1235,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1238,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1239,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-tool.c:1248,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1249,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:1258,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:1262,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1264,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1267,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1271,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:1272,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:1276,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:1281,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:1281,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:1283,1
    - Dst: fu_engine_firmware_dump
      Src: /src/fwupd/src/fu-tool.c:1287,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1289,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1294,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:1295,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1224
    functionDepth: 3
    functionLinenumber: 1224
    functionLinenumberEnd: 1296
    functionName: fu_util_firmware_dump
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - g_signal_connect
    - fu_progress_add_step
    - FU_ENGINE
    - fu_progress_add_flag
    - g_set_error_literal
    - fu_progress_step_done
    - fu_util_prompt_for_device
    - g_file_test
    - fu_engine_firmware_dump
    - g_strv_length
    - G_CALLBACK
    - fu_bytes_set_contents
    - fu_util_start_engine
    - g_autoptr
    - fu_progress_get_child
    - fu_util_get_device
    - fu_progress_set_id
    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:1301,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1302,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1303,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-tool.c:1303,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1304,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:1307,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-tool.c:1308,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1309,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1310,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1313,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1314,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-tool.c:1323,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1324,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:1333,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:1337,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1341,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1344,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1348,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:1349,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:1353,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:1358,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:1358,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:1360,1
    - Dst: fu_engine_firmware_read
      Src: /src/fwupd/src/fu-tool.c:1364,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1366,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-tool.c:1371,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1374,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:1375,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1298
    functionDepth: 3
    functionLinenumber: 1298
    functionLinenumberEnd: 1376
    functionName: fu_util_firmware_read
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_bytes_new
    - fu_progress_add_flag
    - fu_util_prompt_for_device
    - g_strv_length
    - g_signal_connect
    - g_set_error_literal
    - fu_engine_firmware_read
    - fu_bytes_set_contents
    - fu_util_start_engine
    - fu_progress_add_step
    - FU_ENGINE
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_progress_set_id
    - g_file_test
    - G_CALLBACK
    - g_autoptr
    - fu_util_get_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:1383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1378
    functionDepth: 1
    functionLinenumber: 1378
    functionLinenumberEnd: 1384
    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:1390,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-tool.c:1393,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:1394,1
    - Dst: fu_util_is_url
      Src: /src/fwupd/src/fu-tool.c:1395,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:1396,1
    - Dst: fu_util_get_user_cache_path
      Src: /src/fwupd/src/fu-tool.c:1399,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-tool.c:1400,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-tool.c:1402,1
    - Dst: fwupd_client_download_file
      Src: /src/fwupd/src/fu-tool.c:1403,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:1410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - perhapsfn
    - error
    argTypes:
    - FuUtil*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1386
    functionDepth: 1
    functionLinenumber: 1386
    functionLinenumberEnd: 1411
    functionName: fu_util_download_if_required
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fwupd_client_download_file
    - g_steal_pointer
    - g_file_test
    - g_file_new_for_path
    - g_autoptr
    - fu_util_get_user_cache_path
    - fu_util_is_url
    - fu_path_mkdir_parent
    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:1420,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1421,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1422,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1423,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-tool.c:1425,1
    - Dst: fu_cabinet_get_components
      Src: /src/fwupd/src/fu-tool.c:1428,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:1433,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:1434,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1436,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1440,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1441,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-tool.c:1441,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1442,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-tool.c:1445,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-tool.c:1446,1
    - Dst: fu_engine_load_release
      Src: /src/fwupd/src/fu-tool.c:1447,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:1454,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:1455,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-tool.c:1456,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:1458,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:1458,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-tool.c:1461,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:1465,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:1466,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-tool.c:1467,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:1469,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:1469,1
    - Dst: fu_device_ensure_from_component
      Src: /src/fwupd/src/fu-tool.c:1474,1
    - Dst: fu_device_incorporate_from_component
      Src: /src/fwupd/src/fu-tool.c:1475,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:1478,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:1478,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-tool.c:1483,1
    - Dst: fu_engine_error_array_get_best
      Src: /src/fwupd/src/fu-tool.c:1487,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-tool.c:1488,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:1493,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:1493,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:1495,1
    - Dst: fu_engine_install_releases
      Src: /src/fwupd/src/fu-tool.c:1499,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1503,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: 1506
      start: 1413
    functionDepth: 1
    functionLinenumber: 1413
    functionLinenumberEnd: 1506
    functionName: fu_util_install_stream
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_engine_build_cabinet_from_stream
    - fu_engine_error_array_get_best
    - fu_engine_install_releases
    - fu_cabinet_get_components
    - g_ptr_array_index
    - g_ptr_array_sort
    - fu_engine_requirements_check
    - g_signal_connect
    - g_debug
    - g_propagate_error
    - g_ptr_array_new_with_free_func
    - fu_engine_load_release
    - fu_device_incorporate_from_component
    - FU_ENGINE
    - fu_release_new
    - fu_release_set_device
    - fu_progress_get_child
    - xb_node_query_text
    - g_steal_pointer
    - g_ptr_array_add
    - fu_device_get_id
    - G_CALLBACK
    - fu_device_ensure_from_component
    - g_autoptr
    - fu_release_set_request
    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:1512,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1513,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:1516,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-tool.c:1517,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1518,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1519,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:1522,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1527,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1530,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1533,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:1534,1
    - Dst: fwupd_device_array_ensure_parents
      Src: /src/fwupd/src/fu-tool.c:1537,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1538,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:1539,1
    - Dst: fu_util_prompt_warning_fde
      Src: /src/fwupd/src/fu-tool.c:1543,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-tool.c:1543,1
    - Dst: fu_engine_get_devices_by_composite_id
      Src: /src/fwupd/src/fu-tool.c:1547,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/src/fu-tool.c:1548,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:1553,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1555,1
    - Dst: fu_util_download_if_required
      Src: /src/fwupd/src/fu-tool.c:1563,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-tool.c:1566,1
    - Dst: fu_util_maybe_prefix_sandbox_error
      Src: /src/fwupd/src/fu-tool.c:1568,1
    - Dst: fu_util_install_stream
      Src: /src/fwupd/src/fu-tool.c:1571,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1574,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1577,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-tool.c:1579,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:1583,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1508
    functionDepth: 3
    functionLinenumber: 1508
    functionLinenumberEnd: 1589
    functionName: fu_util_install
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_devices
    - fu_progress_add_flag
    - g_strv_length
    - fu_input_stream_from_path
    - fu_util_maybe_prefix_sandbox_error
    - fu_util_download_if_required
    - g_debug
    - g_set_error_literal
    - fu_util_display_current_message
    - fu_util_prompt_warning_fde
    - fu_device_get_composite_id
    - fu_util_start_engine
    - fu_progress_add_step
    - fu_progress_step_done
    - FWUPD_DEVICE
    - fwupd_device_array_ensure_parents
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_util_install_stream
    - g_ptr_array_add
    - g_autoptr
    - fu_engine_get_devices_by_composite_id
    - fu_util_get_device
    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:1598,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:1600,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:1601,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1602,1
    - Dst: fu_util_device_problems_to_strings
      Src: /src/fwupd/src/fu-tool.c:1602,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:1605,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:1607,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1610,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-tool.c:1611,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1619,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:1623,1
    - Dst: fwupd_release_get_locations
      Src: /src/fwupd/src/fu-tool.c:1628,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1630,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1636,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-tool.c:1637,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:1639,1
    - Dst: fu_engine_get_remote_by_id
      Src: /src/fwupd/src/fu-tool.c:1647,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-tool.c:1651,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-tool.c:1653,1
    - Dst: fu_util_is_url
      Src: /src/fwupd/src/fu-tool.c:1653,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-tool.c:1654,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/src/fu-tool.c:1655,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-tool.c:1656,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-tool.c:1657,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:1658,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/src/fu-tool.c:1661,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/src/fu-tool.c:1665,1
    - Dst: fu_util_install
      Src: /src/fwupd/src/fu-tool.c:1667,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 4
    argNames:
    - self
    - dev
    - rel
    - error
    argTypes:
    - FuUtil*
    - FwupdDevice*
    - FwupdRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1591
    functionDepth: 1
    functionLinenumber: 1591
    functionLinenumberEnd: 1668
    functionName: fu_util_install_release
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_kind
    - fwupd_remote_get_filename_cache
    - fu_progress_reset
    - _
    - fu_engine_get_remote_by_id
    - g_auto
    - fu_util_is_url
    - g_ptr_array_index
    - fu_console_print
    - fwupd_release_get_remote_id
    - g_new0
    - g_set_error_literal
    - g_path_get_dirname
    - fwupd_remote_build_firmware_uri
    - fwupd_release_get_locations
    - fu_console_print_full
    - fu_util_install
    - fu_util_device_problems_to_strings
    - g_strdup
    - fwupd_device_get_name
    - g_set_error
    - fwupd_device_has_flag
    - g_autoptr
    - g_build_filename
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_install_release(FuUtil *self, FwupdDevice *dev, FwupdRelease
      *rel, GError **error)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1673,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1674,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-tool.c:1674,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1675,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-tool.c:1675,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1676,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-tool.c:1676,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1679,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1687,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:1694,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1704,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/src/fu-tool.c:1705,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/src/fu-tool.c:1705,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:1706,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:1717,1
    - Dst: fwupd_device_array_ensure_parents
      Src: /src/fwupd/src/fu-tool.c:1720,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-tool.c:1721,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1723,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:1725,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1726,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1727,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1731,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/src/fu-tool.c:1733,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:1733,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1738,1
    - Dst: fu_util_is_interesting_device
      Src: /src/fwupd/src/fu-tool.c:1740,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:1744,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:1745,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:1747,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:1748,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-tool.c:1751,1
    - Dst: fu_engine_get_upgrades
      Src: /src/fwupd/src/fu-tool.c:1756,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:1758,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:1760,1
    - Dst: fwupd_device_get_problems
      Src: /src/fwupd/src/fu-tool.c:1765,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:1766,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1770,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:1773,1
    - Dst: fu_engine_get_host_vendor
      Src: /src/fwupd/src/fu-tool.c:1774,1
    - Dst: fu_engine_get_host_product
      Src: /src/fwupd/src/fu-tool.c:1775,1
    - Dst: fu_util_prompt_warning
      Src: /src/fwupd/src/fu-tool.c:1776,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-tool.c:1777,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:1780,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-tool.c:1783,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:1783,1
    - Dst: fu_util_prompt_warning_fde
      Src: /src/fwupd/src/fu-tool.c:1786,1
    - Dst: fu_util_install_release
      Src: /src/fwupd/src/fu-tool.c:1790,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:1791,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-tool.c:1794,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:1799,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:1802,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1804,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:1805,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:1805,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:1809,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:1812,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1814,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:1815,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:1815,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:1819,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:1822,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1824,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:1825,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-tool.c:1825,1
    - Dst: fwupd_device_has_problem
      Src: /src/fwupd/src/fu-tool.c:1829,1
    - Dst: fu_util_device_problem_to_string
      Src: /src/fwupd/src/fu-tool.c:1831,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:1834,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:1841,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-tool.c:1845,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 113
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1670
    functionDepth: 3
    functionLinenumber: 1670
    functionLinenumberEnd: 1846
    functionName: fu_util_update
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_devices
    - fu_util_install_release
    - fwupd_guid_is_valid
    - _
    - g_strdup_printf
    - g_strv_length
    - g_ptr_array_index
    - fu_util_is_interesting_device
    - g_ptr_array_sort
    - fu_console_print
    - g_debug
    - g_set_error_literal
    - fwupd_device_has_guid
    - fu_util_display_current_message
    - fu_util_prompt_warning_fde
    - fu_util_start_engine
    - fu_engine_get_host_vendor
    - g_propagate_error
    - fu_engine_get_host_product
    - g_ptr_array_new
    - fu_console_print_literal
    - fu_util_prompt_warning
    - fwupd_device_array_ensure_parents
    - fwupd_device_get_problems
    - fu_util_prompt_complete
    - g_strcmp0
    - fwupd_device_get_name
    - fu_engine_get_upgrades
    - fwupd_device_has_problem
    - g_set_error
    - g_steal_pointer
    - g_ptr_array_add
    - fu_util_device_problem_to_string
    - fu_device_get_id
    - g_error_matches
    - fwupd_device_match_flags
    - fwupd_device_has_flag
    - fwupd_device_id_is_valid
    - g_autoptr
    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:1851,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1852,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1853,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1855,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:1856,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:1863,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:1872,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-tool.c:1877,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:1882,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-tool.c:1883,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-tool.c:1887,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-tool.c:1887,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-tool.c:1888,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-tool.c:1889,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:1890,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:1895,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-tool.c:1899,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-tool.c:1900,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:1906,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:1906,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:1908,1
    - Dst: fu_util_install_release
      Src: /src/fwupd/src/fu-tool.c:1911,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-tool.c:1911,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-tool.c:1913,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:1917,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-tool.c:1921,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1848
    functionDepth: 3
    functionLinenumber: 1848
    functionLinenumberEnd: 1922
    functionName: fu_util_reinstall
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_install_release
    - g_object_ref
    - g_strv_length
    - fu_device_get_name
    - fwupd_release_match_flags
    - g_ptr_array_index
    - g_signal_connect
    - g_debug
    - g_set_error_literal
    - fu_util_display_current_message
    - fu_util_start_engine
    - fu_device_get_version_format
    - FU_ENGINE
    - FWUPD_DEVICE
    - fu_util_prompt_complete
    - g_set_error
    - fu_engine_get_releases_for_device
    - fu_version_compare
    - fu_device_get_version
    - G_CALLBACK
    - g_autoptr
    - fwupd_release_get_version
    - fu_util_get_device
    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:1927,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1928,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:1931,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1932,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:1933,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:1936,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1940,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1943,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1947,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:1948,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:1952,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-tool.c:1958,1
    - Dst: fu_device_detach_full
      Src: /src/fwupd/src/fu-tool.c:1961,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:1961,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:1963,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1924
    functionDepth: 3
    functionLinenumber: 1924
    functionLinenumberEnd: 1965
    functionName: fu_util_detach
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_device_locker_new
    - fu_progress_step_done
    - fu_util_prompt_for_device
    - g_strv_length
    - fu_device_detach_full
    - fu_util_start_engine
    - g_autoptr
    - fu_progress_get_child
    - fu_util_get_device
    - fu_progress_set_id
    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:1970,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:1971,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:1974,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:1983,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:1984,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:1986,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-tool.c:1992,1
    - Dst: fu_device_unbind_driver
      Src: /src/fwupd/src/fu-tool.c:1995,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1967
    functionDepth: 3
    functionLinenumber: 1967
    functionLinenumberEnd: 1996
    functionName: fu_util_unbind_driver
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_device_locker_new
    - fu_util_prompt_for_device
    - g_strv_length
    - fu_util_start_engine
    - g_autoptr
    - fu_util_get_device
    - fu_device_unbind_driver
    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:2001,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2002,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2005,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2014,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:2015,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2018,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:2019,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2023,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-tool.c:2031,1
    - Dst: fu_device_bind_driver
      Src: /src/fwupd/src/fu-tool.c:2034,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 1998
    functionDepth: 3
    functionLinenumber: 1998
    functionLinenumberEnd: 2035
    functionName: fu_util_bind_driver
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_device_bind_driver
    - g_set_error_literal
    - fu_device_locker_new
    - fu_util_prompt_for_device
    - g_strv_length
    - fu_util_start_engine
    - g_autoptr
    - fu_util_get_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:2040,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2041,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:2044,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:2045,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:2046,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2049,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:2053,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:2056,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2061,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:2062,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:2066,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-tool.c:2072,1
    - Dst: fu_device_attach_full
      Src: /src/fwupd/src/fu-tool.c:2075,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:2075,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:2077,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2037
    functionDepth: 3
    functionLinenumber: 2037
    functionLinenumberEnd: 2081
    functionName: fu_util_attach
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_device_locker_new
    - fu_progress_step_done
    - fu_util_prompt_for_device
    - g_strv_length
    - fu_device_attach_full
    - fu_util_start_engine
    - g_autoptr
    - fu_progress_get_child
    - fu_util_get_device
    - fu_progress_set_id
    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:2086,1
    - Dst: g_list_sort
      Src: /src/fwupd/src/fu-tool.c:2087,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/src/fu-tool.c:2087,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-tool.c:2090,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-tool.c:2091,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - metadata
    - idt
    - str
    argTypes:
    - GHashTable*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2083
    functionDepth: 1
    functionLinenumber: 2083
    functionLinenumberEnd: 2093
    functionName: fu_util_report_metadata_to_string
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_hash_table_get_keys
    - g_hash_table_lookup
    - g_list_sort
    - fwupd_codec_string_append
    - g_autoptr
    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:2099,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/src/fu-tool.c:2099,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2100,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/src/fu-tool.c:2100,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2101,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2102,1
    - Dst: fu_engine_get_report_metadata
      Src: /src/fwupd/src/fu-tool.c:2105,1
    - Dst: fwupd_json_object_add_object_map
      Src: /src/fwupd/src/fu-tool.c:2108,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:2111,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2115,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2116,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2117,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2118,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2119,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/src/fu-tool.c:2119,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2120,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-tool.c:2120,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-tool.c:2122,1
    - Dst: fu_device_report_metadata_pre
      Src: /src/fwupd/src/fu-tool.c:2125,1
    - Dst: fu_device_report_metadata_post
      Src: /src/fwupd/src/fu-tool.c:2126,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2131,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-tool.c:2131,1
    - Dst: fwupd_json_object_add_object_map
      Src: /src/fwupd/src/fu-tool.c:2132,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/src/fu-tool.c:2133,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2136,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-tool.c:2136,1
    - Dst: fwupd_json_object_add_object_map
      Src: /src/fwupd/src/fu-tool.c:2137,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/src/fu-tool.c:2138,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/src/fu-tool.c:2140,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:2140,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/src/fu-tool.c:2141,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/src/fu-tool.c:2143,1
    - Dst: fu_engine_get_plugins
      Src: /src/fwupd/src/fu-tool.c:2146,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2148,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2149,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-tool.c:2149,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-tool.c:2150,1
    - Dst: fu_plugin_get_report_metadata
      Src: /src/fwupd/src/fu-tool.c:2152,1
    - Dst: fwupd_json_object_add_object_map
      Src: /src/fwupd/src/fu-tool.c:2154,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-tool.c:2155,1
    - Dst: fu_plugin_get_report_metadata
      Src: /src/fwupd/src/fu-tool.c:2156,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/src/fu-tool.c:2157,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/src/fu-tool.c:2159,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 61
    argCount: 3
    argNames:
    - self
    - json_obj
    - error
    argTypes:
    - FuUtil*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2163
      start: 2095
    functionDepth: 1
    functionLinenumber: 2095
    functionLinenumberEnd: 2163
    functionName: fu_util_get_report_metadata_as_json
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_device_report_metadata_pre
    - fwupd_json_object_add_object_map
    - fu_device_report_metadata_post
    - fwupd_json_object_add_array
    - fu_engine_get_plugins
    - fu_engine_get_devices
    - fwupd_json_object_new
    - fu_plugin_has_flag
    - fu_plugin_get_report_metadata
    - fu_device_locker_new
    - fu_plugin_get_name
    - fwupd_json_array_new
    - fu_device_get_id
    - fwupd_json_array_add_object
    - fu_engine_get_report_metadata
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_report_metadata_as_json(FuUtil *self, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2169,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2170,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2171,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-tool.c:2171,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:2174,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:2175,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:2176,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2179,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:2181,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:2184,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2188,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-tool.c:2188,1
    - Dst: fu_util_get_report_metadata_as_json
      Src: /src/fwupd/src/fu-tool.c:2189,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-tool.c:2191,1
    - Dst: fu_engine_get_report_metadata
      Src: /src/fwupd/src/fu-tool.c:2196,1
    - Dst: fu_util_report_metadata_to_string
      Src: /src/fwupd/src/fu-tool.c:2199,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:2202,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2206,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2207,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2208,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2209,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-tool.c:2211,1
    - Dst: fu_device_report_metadata_pre
      Src: /src/fwupd/src/fu-tool.c:2214,1
    - Dst: fu_device_report_metadata_post
      Src: /src/fwupd/src/fu-tool.c:2215,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-tool.c:2217,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:2220,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-tool.c:2223,1
    - Dst: fu_util_report_metadata_to_string
      Src: /src/fwupd/src/fu-tool.c:2224,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-tool.c:2227,1
    - Dst: fu_util_report_metadata_to_string
      Src: /src/fwupd/src/fu-tool.c:2228,1
    - Dst: fu_engine_get_plugins
      Src: /src/fwupd/src/fu-tool.c:2233,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2235,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-tool.c:2236,1
    - Dst: fu_plugin_get_report_metadata
      Src: /src/fwupd/src/fu-tool.c:2238,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-tool.c:2240,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-tool.c:2240,1
    - Dst: fu_util_report_metadata_to_string
      Src: /src/fwupd/src/fu-tool.c:2241,1
    - Dst: fu_plugin_get_report_metadata
      Src: /src/fwupd/src/fu-tool.c:2241,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:2243,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2246,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2250
      start: 2165
    functionDepth: 3
    functionLinenumber: 2165
    functionLinenumberEnd: 2250
    functionName: fu_util_get_report_metadata
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_devices
    - fu_plugin_get_report_metadata
    - fu_device_locker_new
    - g_ptr_array_index
    - fu_engine_get_plugins
    - fwupd_json_object_new
    - g_string_new
    - fu_util_start_engine
    - fu_device_report_metadata_pre
    - fu_device_report_metadata_post
    - fu_progress_add_step
    - fu_plugin_has_flag
    - fu_progress_step_done
    - fu_util_report_metadata_to_string
    - fwupd_codec_string_append
    - fu_console_print_literal
    - fu_engine_get_report_metadata
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_util_print_json_object
    - fu_plugin_get_name
    - fu_util_get_report_metadata_as_json
    - fu_device_get_id
    - g_autoptr
    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:2256,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2260,1
    - Dst: fu_engine_modify_config
      Src: /src/fwupd/src/fu-tool.c:2261,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2263,1
    - Dst: fu_engine_modify_config
      Src: /src/fwupd/src/fu-tool.c:2264,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2267,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2278,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2278,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2252
    functionDepth: 3
    functionLinenumber: 2252
    functionLinenumberEnd: 2280
    functionName: fu_util_modify_config
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - _
    - g_strv_length
    - fu_console_print_literal
    - fu_engine_modify_config
    - fu_util_start_engine
    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:2286,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2287,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2295,1
    - Dst: fu_engine_reset_config
      Src: /src/fwupd/src/fu-tool.c:2298,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2305,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2282
    functionDepth: 3
    functionLinenumber: 2282
    functionLinenumberEnd: 2307
    functionName: fu_util_reset_config
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - _
    - g_strv_length
    - fu_console_print_literal
    - fu_util_start_engine
    - fu_engine_reset_config
    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:2314,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2315,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2322,1
    - Dst: fu_engine_get_remote_by_id
      Src: /src/fwupd/src/fu-tool.c:2328,1
    - Dst: fu_engine_modify_remote
      Src: /src/fwupd/src/fu-tool.c:2332,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-tool.c:2333,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2342,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2342,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2309
    functionDepth: 3
    functionLinenumber: 2309
    functionLinenumberEnd: 2344
    functionName: fu_util_remote_modify
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_id
    - g_set_error_literal
    - _
    - g_strv_length
    - fu_console_print_literal
    - fu_engine_get_remote_by_id
    - fu_util_start_engine
    - fu_engine_modify_remote
    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:2351,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2352,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2359,1
    - Dst: fu_engine_get_remote_by_id
      Src: /src/fwupd/src/fu-tool.c:2365,1
    - Dst: fu_engine_clean_remote
      Src: /src/fwupd/src/fu-tool.c:2368,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-tool.c:2368,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2375,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2375,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2346
    functionDepth: 3
    functionLinenumber: 2346
    functionLinenumberEnd: 2377
    functionName: fu_util_remote_clean
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_id
    - g_set_error_literal
    - _
    - g_strv_length
    - fu_console_print_literal
    - fu_engine_get_remote_by_id
    - fu_util_start_engine
    - fu_engine_clean_remote
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_remote_clean(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2384,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2385,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2392,1
    - Dst: fu_engine_get_remote_by_id
      Src: /src/fwupd/src/fu-tool.c:2395,1
    - Dst: fu_engine_modify_remote
      Src: /src/fwupd/src/fu-tool.c:2399,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-tool.c:2400,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2410,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2410,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-tool.c:2413,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/src/fu-tool.c:2414,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-tool.c:2416,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2420,1
    - Dst: fu_engine_clean_remote
      Src: /src/fwupd/src/fu-tool.c:2421,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2423,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2425,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2431
      start: 2379
    functionDepth: 3
    functionLinenumber: 2379
    functionLinenumberEnd: 2431
    functionName: fu_util_remote_disable
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_id
    - fwupd_remote_get_kind
    - g_set_error_literal
    - _
    - g_strv_length
    - fu_console_print_literal
    - fwupd_remote_get_age
    - fu_engine_get_remote_by_id
    - fu_util_start_engine
    - fu_engine_modify_remote
    - fu_engine_clean_remote
    - fu_console_input_bool
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_remote_disable(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2439,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2440,1
    - Dst: fu_crc_kind_from_string
      Src: /src/fwupd/src/fu-tool.c:2448,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2451,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-tool.c:2451,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:2453,1
    - Dst: fu_crc_kind_to_string
      Src: /src/fwupd/src/fu-tool.c:2453,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-tool.c:2454,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:2455,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2465,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-tool.c:2467,1
    - Dst: fu_crc_size
      Src: /src/fwupd/src/fu-tool.c:2470,1
    - Dst: fu_crc8_bytes
      Src: /src/fwupd/src/fu-tool.c:2471,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2472,1
    - Dst: fu_crc_size
      Src: /src/fwupd/src/fu-tool.c:2473,1
    - Dst: fu_crc16_bytes
      Src: /src/fwupd/src/fu-tool.c:2474,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2475,1
    - Dst: fu_crc_size
      Src: /src/fwupd/src/fu-tool.c:2476,1
    - Dst: fu_crc32_bytes
      Src: /src/fwupd/src/fu-tool.c:2477,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2478,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2484
      start: 2433
    functionDepth: 1
    functionLinenumber: 2433
    functionLinenumberEnd: 2484
    functionName: fu_util_crc
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_crc_kind_from_string
    - fu_console_print
    - fu_bytes_get_contents
    - g_set_error
    - fu_crc16_bytes
    - g_ptr_array_new
    - g_set_error_literal
    - fu_crc_kind_to_string
    - g_ptr_array_add
    - fu_strjoin
    - fu_crc_size
    - g_strv_length
    - fu_crc32_bytes
    - g_autoptr
    - fu_crc8_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_crc(FuUtil *self, gchar **values, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_tpm_eventlog_item_get_pcr
      Src: /src/fwupd/src/fu-tool.c:2491,1
    - Dst: fu_tpm_eventlog_item_get_pcr
      Src: /src/fwupd/src/fu-tool.c:2491,1
    - Dst: fu_tpm_eventlog_item_get_pcr
      Src: /src/fwupd/src/fu-tool.c:2493,1
    - Dst: fu_tpm_eventlog_item_get_pcr
      Src: /src/fwupd/src/fu-tool.c:2493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2496
      start: 2486
    functionDepth: 1
    functionLinenumber: 2486
    functionLinenumberEnd: 2496
    functionName: fu_util_tpm_eventlog_sort_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_tpm_eventlog_item_get_pcr
    linkageType: ''
    returnType: gint
    signature: gint fu_util_tpm_eventlog_sort_cb(gconstpointer a, gconstpointer b)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2504,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2505,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2506,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2507,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2508,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-tool.c:2508,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2511,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-tool.c:2512,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2517,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:2518,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/src/fu-tool.c:2520,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-tool.c:2529,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/src/fu-tool.c:2532,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/src/fu-tool.c:2533,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/src/fu-tool.c:2542,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-tool.c:2543,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2545,1
    - Dst: fu_tpm_eventlog_item_get_pcr
      Src: /src/fwupd/src/fu-tool.c:2547,1
    - Dst: fu_tpm_eventlog_item_get_pcr
      Src: /src/fwupd/src/fu-tool.c:2548,1
    - Dst: fu_tpm_eventlog_item_get_pcr
      Src: /src/fwupd/src/fu-tool.c:2549,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/src/fu-tool.c:2551,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-tool.c:2551,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-tool.c:2552,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:2555,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-tool.c:2562,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2564,1
    - Dst: fu_tpm_eventlog_calc_checksums
      Src: /src/fwupd/src/fu-tool.c:2565,1
    - Dst: FU_TPM_EVENTLOG
      Src: /src/fwupd/src/fu-tool.c:2565,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2569,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:2574,1
    - Dst: fwupd_checksum_format_for_display
      Src: /src/fwupd/src/fu-tool.c:2575,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-tool.c:2576,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2581,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2583
      start: 2498
    functionDepth: 1
    functionLinenumber: 2498
    functionLinenumberEnd: 2583
    functionName: fu_util_tpm_eventlog
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_tpm_eventlog_calc_checksums
    - g_memory_input_stream_new_from_bytes
    - fu_firmware_to_string
    - g_strdup_printf
    - g_strv_length
    - g_ptr_array_index
    - g_ptr_array_sort
    - fu_firmware_new_from_gtypes
    - fu_firmware_get_images
    - g_string_new
    - fu_strtoull
    - FU_FIRMWARE
    - fwupd_checksum_format_for_display
    - fwupd_codec_string_append
    - fu_console_print_literal
    - g_strdup
    - fu_bytes_get_contents
    - fu_context_build_filename
    - g_set_error
    - FU_TPM_EVENTLOG
    - fu_tpm_eventlog_item_get_pcr
    - g_string_append_printf
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_tpm_eventlog(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2590,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2593,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2594,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-tool.c:2602,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-tool.c:2606,1
    - Dst: fu_crc_find
      Src: /src/fwupd/src/fu-tool.c:2609,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-tool.c:2609,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-tool.c:2610,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2615,1
    - Dst: fu_crc_kind_to_string
      Src: /src/fwupd/src/fu-tool.c:2615,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2619
      start: 2585
    functionDepth: 1
    functionLinenumber: 2585
    functionLinenumberEnd: 2619
    functionName: fu_util_crc_find
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_bytes_get_contents
    - fu_strtoull
    - g_set_error_literal
    - g_bytes_get_data
    - fu_crc_kind_to_string
    - g_strv_length
    - fu_console_print_literal
    - g_bytes_get_size
    - g_autoptr
    - fu_crc_find
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_crc_find(FuUtil *self, gchar **values, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2624,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2625,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-tool.c:2625,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2628,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2629,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:2637,1
    - Dst: fu_engine_search
      Src: /src/fwupd/src/fu-tool.c:2641,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2645,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2652,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-tool.c:2652,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-tool.c:2653,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-tool.c:2654,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2658,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:2659,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:2659,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-tool.c:2661,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2665
      start: 2621
    functionDepth: 1
    functionLinenumber: 2621
    functionLinenumberEnd: 2665
    functionName: fu_util_search
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_node_new
    - fu_util_print_json_object
    - fu_util_print_node
    - fwupd_json_object_new
    - g_node_append_data
    - g_set_error_literal
    - fu_engine_load
    - fu_engine_search
    - g_object_ref
    - g_strv_length
    - fwupd_codec_array_to_json
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_search(FuUtil *self, gchar **values, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2674,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2675,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2683,1
    - Dst: fwupd_version_format_from_string
      Src: /src/fwupd/src/fu-tool.c:2684,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:2686,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-tool.c:2696,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2698,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2700,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2702,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2667
    functionDepth: 1
    functionLinenumber: 2667
    functionLinenumberEnd: 2705
    functionName: fu_util_vercmp
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_print
    - g_set_error
    - g_set_error_literal
    - fu_version_compare
    - g_strv_length
    - fwupd_version_format_from_string
    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:2712,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2713,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2720,1
    - Dst: fu_engine_get_remote_by_id
      Src: /src/fwupd/src/fu-tool.c:2723,1
    - Dst: fu_util_modify_remote_warning
      Src: /src/fwupd/src/fu-tool.c:2727,1
    - Dst: fu_engine_modify_remote
      Src: /src/fwupd/src/fu-tool.c:2730,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-tool.c:2731,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2740,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2740,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2742
      start: 2707
    functionDepth: 3
    functionLinenumber: 2707
    functionLinenumberEnd: 2742
    functionName: fu_util_remote_enable
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_id
    - fu_util_modify_remote_warning
    - g_set_error_literal
    - _
    - g_strv_length
    - fu_console_print_literal
    - fu_engine_get_remote_by_id
    - fu_util_start_engine
    - fu_engine_modify_remote
    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:2747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - enable
    - error
    argTypes:
    - FuUtil*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2752
      start: 2744
    functionDepth: 1
    functionLinenumber: 2744
    functionLinenumberEnd: 2752
    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:2757,1
    - Dst: fu_util_set_test_devices_enabled
      Src: /src/fwupd/src/fu-tool.c:2760,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2767,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2767,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2770
      start: 2754
    functionDepth: 3
    functionLinenumber: 2754
    functionLinenumberEnd: 2770
    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:2776,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2778,1
    - Dst: fu_util_set_test_devices_enabled
      Src: /src/fwupd/src/fu-tool.c:2784,1
    - Dst: fu_engine_get_remotes
      Src: /src/fwupd/src/fu-tool.c:2788,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2792,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-tool.c:2793,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:2795,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-tool.c:2795,1
    - Dst: fu_util_set_test_devices_enabled
      Src: /src/fwupd/src/fu-tool.c:2801,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2803,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2814,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2814,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2817
      start: 2772
    functionDepth: 3
    functionLinenumber: 2772
    functionLinenumberEnd: 2817
    functionName: fu_util_enable_test_devices
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_remotes
    - g_strcmp0
    - fwupd_remote_get_id
    - fwupd_remote_has_flag
    - g_set_error_literal
    - _
    - fu_console_print_literal
    - fu_util_set_test_devices_enabled
    - fu_util_start_engine
    - g_autoptr
    - g_ptr_array_index
    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:2823,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-tool.c:2823,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2824,1
    - Dst: fu_history_get_devices
      Src: /src/fwupd/src/fu-tool.c:2824,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2830,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:2831,1
    - Dst: fu_engine_add_plugin_filter
      Src: /src/fwupd/src/fu-tool.c:2832,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-tool.c:2832,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2838,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2846
      start: 2819
    functionDepth: 1
    functionLinenumber: 2819
    functionLinenumberEnd: 2846
    functionName: fu_util_check_activation_needed
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_history_new
    - fu_history_get_devices
    - g_set_error_literal
    - fu_device_get_plugin
    - fu_device_has_flag
    - fu_engine_add_plugin_filter
    - g_autoptr
    - g_ptr_array_index
    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:2852,1
    - Dst: fu_util_check_activation_needed
      Src: /src/fwupd/src/fu-tool.c:2855,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:2859,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:2860,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:2861,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:2864,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:2870,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:2873,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2876,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:2877,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2880,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:2882,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:2885,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:2886,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2888,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2897,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-tool.c:2898,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-tool.c:2898,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:2902,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:2906,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:2910,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-tool.c:2911,1
    - Dst: fu_engine_activate
      Src: /src/fwupd/src/fu-tool.c:2913,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:2914,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:2915,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:2919,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2922,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2930
      start: 2848
    functionDepth: 3
    functionLinenumber: 2848
    functionLinenumberEnd: 2930
    functionName: fu_util_activate
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_devices
    - _
    - fu_engine_activate
    - g_strv_length
    - fu_device_get_name
    - g_ptr_array_index
    - fu_console_print
    - g_set_error_literal
    - fu_device_has_flag
    - fu_util_start_engine
    - g_ptr_array_new_with_free_func
    - fu_progress_add_step
    - fu_util_check_activation_needed
    - fu_progress_step_done
    - FWUPD_DEVICE
    - fu_progress_get_child
    - fu_progress_set_id
    - g_ptr_array_add
    - fu_device_get_id
    - fwupd_device_match_flags
    - g_autoptr
    - fu_util_get_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_activate(FuUtil *self, gchar **values, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:2935,1
    - Dst: fu_context_get_hwids
      Src: /src/fwupd/src/fu-tool.c:2936,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2937,1
    - Dst: g_key_file_new
      Src: /src/fwupd/src/fu-tool.c:2937,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2938,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2941,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:2942,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:2950,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/src/fu-tool.c:2952,1
    - Dst: fu_hwids_get_keys
      Src: /src/fwupd/src/fu-tool.c:2956,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2958,1
    - Dst: fu_hwids_get_value
      Src: /src/fwupd/src/fu-tool.c:2959,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-tool.c:2962,1
    - Dst: g_key_file_save_to_file
      Src: /src/fwupd/src/fu-tool.c:2966,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2967
      start: 2932
    functionDepth: 1
    functionLinenumber: 2932
    functionLinenumberEnd: 2967
    functionName: fu_util_export_hwids
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_hwids_get_value
    - fu_context_get_hwids
    - g_key_file_new
    - g_set_error_literal
    - fu_hwids_get_keys
    - g_key_file_set_string
    - g_key_file_save_to_file
    - fu_engine_load
    - g_strv_length
    - fu_engine_get_context
    - g_autoptr
    - fu_context_load_hwinfo
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_export_hwids(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:2972,1
    - Dst: fu_context_get_hwids
      Src: /src/fwupd/src/fu-tool.c:2973,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2974,1
    - Dst: fu_hwids_get_chid_keys
      Src: /src/fwupd/src/fu-tool.c:2974,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2975,1
    - Dst: fu_hwids_get_keys
      Src: /src/fwupd/src/fu-tool.c:2975,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:2978,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:2979,1
    - Dst: g_key_file_new
      Src: /src/fwupd/src/fu-tool.c:2979,1
    - Dst: g_key_file_load_from_file
      Src: /src/fwupd/src/fu-tool.c:2980,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:2983,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/src/fu-tool.c:2985,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/src/fu-tool.c:2986,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:2991,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/src/fu-tool.c:2993,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2997,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:2998,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3000,1
    - Dst: fu_hwids_get_value
      Src: /src/fwupd/src/fu-tool.c:3001,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:3004,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:3005,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-tool.c:3007,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:3009,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:3011,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3016,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3017,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3019,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-tool.c:3023,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3024,1
    - Dst: fu_hwids_get_replace_keys
      Src: /src/fwupd/src/fu-tool.c:3027,1
    - Dst: fu_hwids_get_guid
      Src: /src/fwupd/src/fu-tool.c:3028,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3030,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-tool.c:3035,1
    - Dst: g_strjoinv
      Src: /src/fwupd/src/fu-tool.c:3036,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:3037,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3042
      start: 2969
    functionDepth: 1
    functionLinenumber: 2969
    functionLinenumberEnd: 3042
    functionName: fu_util_hwids
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_hwids_get_keys
    - g_strv_length
    - fu_hwids_get_chid_keys
    - fu_hwids_get_replace_keys
    - fu_engine_get_context
    - g_auto
    - fu_context_load_hwinfo
    - g_ptr_array_index
    - fu_console_print
    - fu_context_get_hwids
    - g_key_file_new
    - g_key_file_get_string
    - g_strsplit
    - fu_hwids_get_guid
    - g_key_file_load_from_file
    - fu_strtoull
    - fu_engine_load
    - fu_console_print_literal
    - fu_hwids_get_value
    - g_strcmp0
    - fu_hwids_add_value
    - g_strjoinv
    - g_autoptr
    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:3050,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:3051,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:3059,1
    - Dst: fu_engine_self_sign
      Src: /src/fwupd/src/fu-tool.c:3064,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:3072,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:3074,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3077
      start: 3044
    functionDepth: 3
    functionLinenumber: 3044
    functionLinenumberEnd: 3077
    functionName: fu_util_self_sign
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_print
    - g_set_error_literal
    - fu_engine_self_sign
    - g_strv_length
    - fu_util_start_engine
    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:3088,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:3091,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:3091,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - client
    - device
    - user_data
    argTypes:
    - FwupdClient*
    - FwupdDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3092
      start: 3079
    functionDepth: 1
    functionLinenumber: 3079
    functionLinenumberEnd: 3092
    functionName: fu_util_device_added_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - _
    - fu_console_print
    - fu_util_device_to_string
    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:3103,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:3106,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:3106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - client
    - device
    - user_data
    argTypes:
    - FwupdClient*
    - FwupdDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3107
      start: 3094
    functionDepth: 1
    functionLinenumber: 3094
    functionLinenumberEnd: 3107
    functionName: fu_util_device_removed_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - _
    - fu_console_print
    - fu_util_device_to_string
    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:3118,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:3121,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:3121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - client
    - device
    - user_data
    argTypes:
    - FwupdClient*
    - FwupdDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3122
      start: 3109
    functionDepth: 1
    functionLinenumber: 3109
    functionLinenumberEnd: 3122
    functionName: fu_util_device_changed_cb
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - _
    - fu_console_print
    - fu_util_device_to_string
    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:3133,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:3133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - client
    - user_data
    argTypes:
    - FwupdClient*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3124
    functionDepth: 1
    functionLinenumber: 3124
    functionLinenumberEnd: 3134
    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:3140,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:3144,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-tool.c:3144,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:3146,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:3148,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-tool.c:3148,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:3150,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:3152,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-tool.c:3152,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:3154,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:3156,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-tool.c:3156,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:3158,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:3160,1
    - Dst: G_CANCELLABLE
      Src: /src/fwupd/src/fu-tool.c:3160,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:3162,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/src/fu-tool.c:3164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3166
      start: 3136
    functionDepth: 1
    functionLinenumber: 3136
    functionLinenumberEnd: 3166
    functionName: fu_util_monitor
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_signal_connect
    - g_main_loop_run
    - FWUPD_CLIENT
    - G_CALLBACK
    - fwupd_client_connect
    - G_CANCELLABLE
    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:3171,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:3174,1
    - Dst: fu_context_get_firmware_gtype_ids
      Src: /src/fwupd/src/fu-tool.c:3181,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:3181,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3183,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3184,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:3187,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:3191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3196
      start: 3168
    functionDepth: 1
    functionLinenumber: 3168
    functionLinenumberEnd: 3196
    functionName: fu_util_get_firmware_types
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_context_get_firmware_gtype_ids
    - g_set_error_literal
    - fu_engine_load
    - _
    - fu_console_print_literal
    - fu_engine_get_context
    - g_autoptr
    - g_ptr_array_index
    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:3201,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:3204,1
    - Dst: fu_context_get_firmware_gtypes
      Src: /src/fwupd/src/fu-tool.c:3211,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:3211,1
    - Dst: g_array_index
      Src: /src/fwupd/src/fu-tool.c:3213,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3214,1
    - Dst: g_type_name
      Src: /src/fwupd/src/fu-tool.c:3214,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:3217,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:3221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3226
      start: 3198
    functionDepth: 1
    functionLinenumber: 3198
    functionLinenumberEnd: 3226
    functionName: fu_util_get_firmware_gtypes
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_type_name
    - g_set_error_literal
    - fu_context_get_firmware_gtypes
    - fu_engine_load
    - g_array_index
    - _
    - fu_console_print_literal
    - fu_engine_get_context
    - g_autoptr
    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:3235,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3244,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:3245,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:3249,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:3249,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3251,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:3252,1
    - Dst: fu_console_input_uint
      Src: /src/fwupd/src/fu-tool.c:3255,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:3255,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:3257,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:3264,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - firmware_types
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3265
      start: 3228
    functionDepth: 1
    functionLinenumber: 3228
    functionLinenumberEnd: 3265
    functionName: fu_util_prompt_for_firmware_type
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_console_print
    - g_set_error_literal
    - _
    - fu_console_input_uint
    - g_ptr_array_index
    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:3270,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3272,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3273,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3278,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3278,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:3279,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-tool.c:3287,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:3292,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3300,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3301,1
    - Dst: fu_context_get_firmware_gtype_ids
      Src: /src/fwupd/src/fu-tool.c:3301,1
    - Dst: fu_util_prompt_for_firmware_type
      Src: /src/fwupd/src/fu-tool.c:3302,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:3305,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3306,1
    - Dst: fu_context_get_firmware_gtype_ids
      Src: /src/fwupd/src/fu-tool.c:3306,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3307,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:3307,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3309,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3312,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3313,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:3315,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:3317,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/src/fu-tool.c:3318,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3320,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-tool.c:3327,1
    - Dst: fu_firmware_has_flag
      Src: /src/fwupd/src/fu-tool.c:3328,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/src/fu-tool.c:3330,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:3335,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/src/fu-tool.c:3340,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:3341,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:3342,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:3342,1
    - Dst: fu_util_prompt_for_firmware_type
      Src: /src/fwupd/src/fu-tool.c:3344,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:3348,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/src/fu-tool.c:3350,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3352,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-tool.c:3364,1
    - Dst: fu_firmware_has_flag
      Src: /src/fwupd/src/fu-tool.c:3365,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3366,1
    - Dst: fu_linear_firmware_new
      Src: /src/fwupd/src/fu-tool.c:3366,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3367,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/src/fu-tool.c:3368,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/src/fu-tool.c:3374,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-tool.c:3376,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3376,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-tool.c:3378,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/src/fu-tool.c:3381,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/src/fu-tool.c:3385,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3386,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 82
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3388
      start: 3267
    functionDepth: 2
    functionLinenumber: 3267
    functionLinenumberEnd: 3388
    functionName: fu_util_firmware_parse
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_firmware_to_string
    - g_strv_length
    - g_object_new
    - fu_engine_get_context
    - fu_input_stream_from_path
    - g_ptr_array_index
    - g_debug
    - g_set_error_literal
    - fu_firmware_get_images
    - fu_util_prompt_for_firmware_type
    - g_ptr_array_new_with_free_func
    - fu_engine_load
    - fu_console_print_literal
    - g_strdup
    - g_strcmp0
    - fu_context_get_firmware_gtype_ids
    - g_set_error
    - fu_firmware_parse_stream
    - fu_linear_firmware_new
    - g_ptr_array_add
    - g_set_object
    - fu_context_get_firmware_gtype_by_id
    - fu_firmware_has_flag
    - g_autoptr
    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:3393,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3396,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3397,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3402,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3402,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:3403,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3410,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:3411,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:3414,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3423,1
    - Dst: fu_context_get_firmware_gtype_ids
      Src: /src/fwupd/src/fu-tool.c:3423,1
    - Dst: fu_util_prompt_for_firmware_type
      Src: /src/fwupd/src/fu-tool.c:3424,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/src/fu-tool.c:3428,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3430,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-tool.c:3437,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-tool.c:3438,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/src/fu-tool.c:3439,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/src/fu-tool.c:3443,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3446,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3448
      start: 3390
    functionDepth: 2
    functionLinenumber: 3390
    functionLinenumberEnd: 3448
    functionName: fu_util_firmware_export
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_context_get_firmware_gtype_ids
    - fu_firmware_parse_file
    - g_set_error
    - g_set_error_literal
    - fu_engine_load
    - g_strv_length
    - fu_context_get_firmware_gtype_by_id
    - g_object_new
    - fu_util_prompt_for_firmware_type
    - fu_engine_get_context
    - fu_console_print_literal
    - g_file_new_for_path
    - g_autoptr
    - fu_firmware_export_to_xml
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_firmware_export(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3457,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/src/fu-tool.c:3460,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-tool.c:3462,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/src/fu-tool.c:3464,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-tool.c:3467,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/src/fu-tool.c:3471,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:3472,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/src/fu-tool.c:3472,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/src/fu-tool.c:3473,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:3474,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/src/fu-tool.c:3474,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/src/fu-tool.c:3475,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:3476,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/src/fu-tool.c:3476,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:3478,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:3482,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:3482,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:3483,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - self
    - firmware
    - idxstr
    - error
    argTypes:
    - FuUtil*
    - FuFirmware*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3484
      start: 3450
    functionDepth: 1
    functionLinenumber: 3450
    functionLinenumberEnd: 3484
    functionName: fu_util_firmware_extract_image
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - g_strdup
    - fu_console_print
    - fu_firmware_get_bytes
    - fu_firmware_get_filename
    - g_prefix_error
    - _
    - g_strdup_printf
    - g_bytes_get_size
    - fu_bytes_set_contents
    - g_autoptr
    - fu_firmware_get_idx
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_firmware_extract_image(FuUtil *self,\n\t\t\t       FuFirmware
      *firmware,\n\t\t\t       const gchar *idxstr,\n\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3492,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/src/fu-tool.c:3494,1
    - Dst: fu_util_firmware_extract_image
      Src: /src/fwupd/src/fu-tool.c:3496,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3498,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:3500,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:3501,1
    - Dst: fu_util_firmware_extract_images
      Src: /src/fwupd/src/fu-tool.c:3502,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - self
    - firmware
    - idxstr
    - error
    argTypes:
    - FuUtil*
    - FuFirmware*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3508
      start: 3486
    functionDepth: 2
    functionLinenumber: 3486
    functionLinenumberEnd: 3508
    functionName: fu_util_firmware_extract_images
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 1
    functionsReached:
    - fu_firmware_get_images
    - g_strdup_printf
    - fu_util_firmware_extract_images
    - g_autoptr
    - g_ptr_array_index
    - fu_util_firmware_extract_image
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_firmware_extract_images(FuUtil *self,\n\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\tconst gchar *idxstr,\n\t\t\t\tGError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:3513,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3517,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3518,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3521,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3521,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:3522,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3528,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:3529,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:3532,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3541,1
    - Dst: fu_context_get_firmware_gtype_ids
      Src: /src/fwupd/src/fu-tool.c:3541,1
    - Dst: fu_util_prompt_for_firmware_type
      Src: /src/fwupd/src/fu-tool.c:3542,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/src/fu-tool.c:3546,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3548,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-tool.c:3555,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-tool.c:3556,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/src/fu-tool.c:3557,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/src/fu-tool.c:3559,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3560,1
    - Dst: fu_util_firmware_extract_images
      Src: /src/fwupd/src/fu-tool.c:3561,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3562
      start: 3510
    functionDepth: 3
    functionLinenumber: 3510
    functionLinenumberEnd: 3562
    functionName: fu_util_firmware_extract
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_context_get_firmware_gtype_ids
    - fu_firmware_parse_file
    - g_set_error
    - g_set_error_literal
    - fu_engine_load
    - fu_firmware_to_string
    - fu_util_firmware_extract_images
    - g_strv_length
    - fu_context_get_firmware_gtype_by_id
    - g_object_new
    - fu_util_prompt_for_firmware_type
    - fu_engine_get_context
    - fu_console_print_literal
    - g_file_new_for_path
    - g_autoptr
    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:3570,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3571,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3572,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3573,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3574,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-tool.c:3574,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3575,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-tool.c:3575,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3576,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3577,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3580,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:3581,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-tool.c:3589,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:3594,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/src/fu-tool.c:3602,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-tool.c:3603,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-tool.c:3604,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-tool.c:3607,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-tool.c:3608,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-tool.c:3610,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-tool.c:3615,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-tool.c:3617,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-tool.c:3620,1
    - Dst: g_type_from_name
      Src: /src/fwupd/src/fu-tool.c:3622,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3624,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-tool.c:3632,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/src/fu-tool.c:3635,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:3635,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3637,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-tool.c:3645,1
    - Dst: fu_firmware_build
      Src: /src/fwupd/src/fu-tool.c:3646,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-tool.c:3650,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:3653,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-tool.c:3657,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-tool.c:3658,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/src/fu-tool.c:3660,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3661,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 66
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3665
      start: 3564
    functionDepth: 1
    functionLinenumber: 3564
    functionLinenumberEnd: 3665
    functionName: fu_util_firmware_build
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - xb_builder_compile
    - fu_firmware_write
    - xb_builder_source_new
    - xb_builder_source_load_bytes
    - fu_firmware_to_string
    - g_strv_length
    - g_object_new
    - fu_engine_get_context
    - xb_node_get_attr
    - g_set_error_literal
    - xb_builder_import_source
    - g_prefix_error_literal
    - fu_firmware_parse_bytes
    - fu_bytes_set_contents
    - xb_silo_query_first
    - fwupd_error_convert
    - fu_engine_load
    - fu_firmware_build
    - fu_console_print_literal
    - fu_bytes_get_contents
    - g_set_error
    - xb_builder_new
    - fu_context_get_firmware_gtype_by_id
    - g_autoptr
    - g_type_from_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_firmware_build(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:3670,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3677,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3678,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3679,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3680,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3681,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3684,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3684,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:3685,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3692,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:3693,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3694,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:3695,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:3698,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3707,1
    - Dst: fu_context_get_firmware_gtype_ids
      Src: /src/fwupd/src/fu-tool.c:3707,1
    - Dst: fu_util_prompt_for_firmware_type
      Src: /src/fwupd/src/fu-tool.c:3708,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3713,1
    - Dst: fu_context_get_firmware_gtype_ids
      Src: /src/fwupd/src/fu-tool.c:3713,1
    - Dst: fu_util_prompt_for_firmware_type
      Src: /src/fwupd/src/fu-tool.c:3714,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/src/fu-tool.c:3718,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3720,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-tool.c:3727,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-tool.c:3728,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/src/fu-tool.c:3729,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/src/fu-tool.c:3731,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3733,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/src/fu-tool.c:3740,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3741,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-tool.c:3744,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/src/fu-tool.c:3745,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3747,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/src/fu-tool.c:3748,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3754,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3755,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/src/fu-tool.c:3756,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-tool.c:3758,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/src/fu-tool.c:3762,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/src/fu-tool.c:3763,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-tool.c:3768,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:3771,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/src/fu-tool.c:3773,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3774,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 76
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3778
      start: 3667
    functionDepth: 2
    functionLinenumber: 3667
    functionLinenumberEnd: 3778
    functionName: fu_util_firmware_convert
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_firmware_parse_file
    - fu_firmware_to_string
    - g_strv_length
    - g_object_new
    - fu_engine_get_context
    - g_ptr_array_index
    - fu_firmware_add_image
    - fu_firmware_get_bytes
    - g_set_error_literal
    - fu_firmware_get_images
    - fu_util_prompt_for_firmware_type
    - fu_bytes_set_contents
    - g_file_new_for_path
    - fu_firmware_new_from_bytes
    - fu_engine_load
    - fu_console_print_literal
    - g_strdup
    - fu_context_get_firmware_gtype_ids
    - g_set_error
    - fu_context_get_firmware_gtype_by_id
    - g_autoptr
    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:3784,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/src/fu-tool.c:3784,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:3788,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-tool.c:3793,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/src/fu-tool.c:3796,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/src/fu-tool.c:3798,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-tool.c:3800,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - val
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3801
      start: 3780
    functionDepth: 1
    functionLinenumber: 3780
    functionLinenumberEnd: 3801
    functionName: fu_util_hex_string_to_bytes
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_firmware_strparse_uint8_safe
    - g_bytes_new
    - g_set_error_literal
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - strlen
    - g_autoptr
    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:3806,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3810,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3811,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3812,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3813,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3817,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3817,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3818,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3827,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:3828,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-tool.c:3831,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-tool.c:3832,1
    - Dst: fu_util_hex_string_to_bytes
      Src: /src/fwupd/src/fu-tool.c:3837,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-tool.c:3840,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:3841,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-tool.c:3849,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3858,1
    - Dst: fu_context_get_firmware_gtype_ids
      Src: /src/fwupd/src/fu-tool.c:3858,1
    - Dst: fu_util_prompt_for_firmware_type
      Src: /src/fwupd/src/fu-tool.c:3859,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/src/fu-tool.c:3863,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:3865,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-tool.c:3872,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-tool.c:3873,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/src/fu-tool.c:3874,1
    - Dst: fu_firmware_add_patch
      Src: /src/fwupd/src/fu-tool.c:3878,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-tool.c:3881,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:3884,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/src/fu-tool.c:3886,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3887,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3891
      start: 3803
    functionDepth: 2
    functionLinenumber: 3803
    functionLinenumberEnd: 3891
    functionName: fu_util_firmware_patch
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_firmware_parse_file
    - fu_util_hex_string_to_bytes
    - fu_firmware_to_string
    - g_strv_length
    - g_object_new
    - fu_engine_get_context
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_util_prompt_for_firmware_type
    - fu_bytes_set_contents
    - g_file_new_for_path
    - fu_firmware_add_patch
    - fu_strtoull
    - fu_engine_load
    - fu_console_print_literal
    - g_strdup
    - fu_context_get_firmware_gtype_ids
    - g_set_error
    - fu_context_get_firmware_gtype_by_id
    - g_bytes_get_size
    - g_autoptr
    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:3897,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:3900,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:3901,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:3902,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:3905,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:3909,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:3912,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:3916,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:3917,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:3921,1
    - Dst: fu_engine_verify_update
      Src: /src/fwupd/src/fu-tool.c:3927,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:3928,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:3929,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:3932,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-tool.c:3935,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:3936,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3938
      start: 3893
    functionDepth: 3
    functionLinenumber: 3893
    functionLinenumberEnd: 3938
    functionName: fu_util_verify_update
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_device_to_string
    - fu_progress_add_step
    - fu_progress_step_done
    - fu_util_prompt_for_device
    - fu_device_get_id
    - g_strv_length
    - fu_engine_verify_update
    - fu_console_print_literal
    - fu_util_start_engine
    - g_autoptr
    - fu_progress_get_child
    - fu_util_get_device
    - fu_progress_set_id
    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:3943,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3944,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-tool.c:3944,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:3947,1
    - Dst: fu_engine_get_history
      Src: /src/fwupd/src/fu-tool.c:3955,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3961,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-tool.c:3961,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-tool.c:3962,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-tool.c:3963,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3969,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:3970,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:3974,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-tool.c:3976,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:3980,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:3980,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/src/fu-tool.c:3982,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-tool.c:3985,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:3989,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:3989,1
    - Dst: fu_engine_get_releases
      Src: /src/fwupd/src/fu-tool.c:3994,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-tool.c:3996,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-tool.c:3999,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-tool.c:4000,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:4001,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/src/fu-tool.c:4001,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-tool.c:4003,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:4003,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4010,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-tool.c:4011,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:4015,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-tool.c:4015,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:4017,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-tool.c:4017,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-tool.c:4018,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:4020,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:4020,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:4027,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:4027,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-tool.c:4031,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4034
      start: 3940
    functionDepth: 3
    functionLinenumber: 3940
    functionLinenumberEnd: 4034
    functionName: fu_util_get_history
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_print_node
    - g_object_ref
    - fwupd_release_match_flags
    - g_ptr_array_index
    - g_node_new
    - fwupd_release_get_remote_id
    - fwupd_json_object_new
    - fwupd_device_get_release_default
    - fu_engine_get_history
    - fu_util_start_engine
    - g_propagate_error
    - fu_engine_get_releases
    - g_ptr_array_new
    - fwupd_device_get_id
    - fwupd_codec_array_to_json
    - fu_util_print_json_object
    - g_strcmp0
    - g_node_append_data
    - g_steal_pointer
    - g_ptr_array_add
    - g_error_matches
    - fwupd_device_match_flags
    - g_autoptr
    - fwupd_release_get_version
    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:4041,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4042,1
    - Dst: fwupd_remote_get_metadata_uri_sig
      Src: /src/fwupd/src/fu-tool.c:4045,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:4046,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-tool.c:4050,1
    - Dst: fwupd_remote_build_metadata_sig_uri
      Src: /src/fwupd/src/fu-tool.c:4053,1
    - Dst: fwupd_client_download_bytes
      Src: /src/fwupd/src/fu-tool.c:4056,1
    - Dst: fwupd_remote_load_signature_bytes
      Src: /src/fwupd/src/fu-tool.c:4063,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-tool.c:4067,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:4068,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-tool.c:4072,1
    - Dst: fwupd_remote_build_metadata_uri
      Src: /src/fwupd/src/fu-tool.c:4075,1
    - Dst: fwupd_client_download_bytes
      Src: /src/fwupd/src/fu-tool.c:4078,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-tool.c:4087,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-tool.c:4087,1
    - Dst: fu_engine_update_metadata_bytes
      Src: /src/fwupd/src/fu-tool.c:4088,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-tool.c:4089,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - self
    - remote
    - error
    argTypes:
    - FuUtil*
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4093
      start: 4036
    functionDepth: 1
    functionLinenumber: 4036
    functionLinenumberEnd: 4093
    functionName: fu_util_refresh_remote
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_engine_update_metadata_bytes
    - fwupd_remote_load_signature_bytes
    - fwupd_remote_build_metadata_sig_uri
    - g_info
    - fwupd_remote_get_id
    - g_set_error
    - fwupd_remote_build_metadata_uri
    - fwupd_remote_get_metadata_uri
    - g_autoptr
    - fwupd_remote_get_metadata_uri_sig
    - fwupd_client_download_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_refresh_remote(FuUtil *self, FwupdRemote *remote,
      GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4099,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4102,1
    - Dst: fu_engine_get_remotes
      Src: /src/fwupd/src/fu-tool.c:4110,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4114,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4115,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-tool.c:4116,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-tool.c:4118,1
    - Dst: fwupd_remote_needs_refresh
      Src: /src/fwupd/src/fu-tool.c:4121,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:4122,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-tool.c:4123,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/src/fu-tool.c:4124,1
    - Dst: fu_util_refresh_remote
      Src: /src/fwupd/src/fu-tool.c:4127,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-tool.c:4128,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:4129,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-tool.c:4132,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:4132,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4141,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4146,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:4149,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4154,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4161
      start: 4095
    functionDepth: 3
    functionLinenumber: 4095
    functionLinenumberEnd: 4161
    functionName: fu_util_download_metadata
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_remotes
    - fu_util_refresh_remote
    - g_debug
    - fwupd_remote_get_id
    - fwupd_remote_has_flag
    - fwupd_remote_get_kind
    - g_set_error_literal
    - g_steal_pointer
    - g_set_error
    - fwupd_remote_needs_refresh
    - _
    - fwupd_remote_get_age
    - g_error_matches
    - fu_util_start_engine
    - g_propagate_error
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_download_metadata(FuUtil *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4166,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4167,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4170,1
    - Dst: fu_util_download_metadata
      Src: /src/fwupd/src/fu-tool.c:4171,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4174,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4175,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4183,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-tool.c:4191,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-tool.c:4194,1
    - Dst: fu_engine_update_metadata_bytes
      Src: /src/fwupd/src/fu-tool.c:4197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4202
      start: 4163
    functionDepth: 3
    functionLinenumber: 4163
    functionLinenumberEnd: 4202
    functionName: fu_util_refresh
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_engine_update_metadata_bytes
    - fu_bytes_get_contents
    - g_set_error_literal
    - g_strv_length
    - fu_util_start_engine
    - fu_util_download_metadata
    - g_autoptr
    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:4207,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-tool.c:4207,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4208,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4211,1
    - Dst: fu_engine_get_remotes
      Src: /src/fwupd/src/fu-tool.c:4215,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4219,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4226,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-tool.c:4226,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-tool.c:4227,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-tool.c:4228,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4232,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-tool.c:4233,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:4233,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-tool.c:4235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4238
      start: 4204
    functionDepth: 3
    functionLinenumber: 4204
    functionLinenumberEnd: 4238
    functionName: fu_util_get_remotes
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_node_new
    - fu_engine_get_remotes
    - fu_util_print_json_object
    - fu_util_print_node
    - fwupd_json_object_new
    - g_node_append_data
    - g_set_error_literal
    - fwupd_codec_array_to_json
    - g_object_ref
    - fu_util_start_engine
    - g_autoptr
    - g_ptr_array_index
    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:4245,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4246,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4247,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4248,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4249,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4254,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4258,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4263,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4266,1
    - Dst: fu_engine_get_host_security_attrs
      Src: /src/fwupd/src/fu-tool.c:4279,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/src/fu-tool.c:4280,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/src/fu-tool.c:4284,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-tool.c:4284,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:4287,1
    - Dst: fu_engine_get_host_security_id
      Src: /src/fwupd/src/fu-tool.c:4291,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:4292,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4295,1
    - Dst: fu_util_security_attrs_to_string
      Src: /src/fwupd/src/fu-tool.c:4298,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:4299,1
    - Dst: fu_engine_get_host_security_events
      Src: /src/fwupd/src/fu-tool.c:4302,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/src/fu-tool.c:4305,1
    - Dst: fu_util_security_events_to_string
      Src: /src/fwupd/src/fu-tool.c:4307,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:4309,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:4313,1
    - Dst: fu_util_security_issues_to_string
      Src: /src/fwupd/src/fu-tool.c:4317,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:4319,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4324
      start: 4240
    functionDepth: 3
    functionLinenumber: 4240
    functionLinenumberEnd: 4324
    functionName: fu_util_security
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_print
    - fu_util_security_attrs_to_string
    - FWUPD_CODEC
    - fu_util_security_events_to_string
    - fu_engine_get_devices
    - g_set_error_literal
    - fu_engine_get_host_security_events
    - fwupd_codec_to_json_string
    - _
    - g_strv_length
    - fu_console_print_literal
    - fu_engine_get_host_security_id
    - fu_util_security_issues_to_string
    - fu_util_start_engine
    - g_autoptr
    - fu_security_attrs_get_all
    - fu_engine_get_host_security_attrs
    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:4329,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4332,1
    - Dst: fu_context_get_esp_volumes
      Src: /src/fwupd/src/fu-tool.c:4335,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4339,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/src/fu-tool.c:4340,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:4341,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4344,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/src/fu-tool.c:4345,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:4347,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:4351,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4351,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4353,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:4354,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/src/fu-tool.c:4354,1
    - Dst: fu_console_input_uint
      Src: /src/fwupd/src/fu-tool.c:4357,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4357,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4359,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4365,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:4366,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4367
      start: 4326
    functionDepth: 1
    functionLinenumber: 4326
    functionLinenumberEnd: 4367
    functionName: fu_util_prompt_for_volume
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_print
    - fu_volume_get_id
    - fu_context_get_esp_volumes
    - g_set_error_literal
    - _
    - g_object_ref
    - fu_engine_get_context
    - g_autoptr
    - fu_console_input_uint
    - g_ptr_array_index
    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:4372,1
    - Dst: fu_util_prompt_for_volume
      Src: /src/fwupd/src/fu-tool.c:4373,1
    - Dst: fu_volume_mount
      Src: /src/fwupd/src/fu-tool.c:4376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4377
      start: 4369
    functionDepth: 2
    functionLinenumber: 4369
    functionLinenumberEnd: 4377
    functionName: fu_util_esp_mount
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_prompt_for_volume
    - g_autoptr
    - fu_volume_mount
    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:4382,1
    - Dst: fu_util_prompt_for_volume
      Src: /src/fwupd/src/fu-tool.c:4383,1
    - Dst: fu_volume_unmount
      Src: /src/fwupd/src/fu-tool.c:4386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4387
      start: 4379
    functionDepth: 2
    functionLinenumber: 4379
    functionLinenumberEnd: 4387
    functionName: fu_util_esp_unmount
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_prompt_for_volume
    - g_autoptr
    - fu_volume_unmount
    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:4392,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-tool.c:4392,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4393,1
    - Dst: fu_context_get_esp_volumes
      Src: /src/fwupd/src/fu-tool.c:4395,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:4395,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-tool.c:4398,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-tool.c:4399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4401
      start: 4389
    functionDepth: 1
    functionLinenumber: 4389
    functionLinenumberEnd: 4401
    functionName: fu_util_esp_list_as_json
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_print_json_object
    - fu_context_get_esp_volumes
    - fwupd_json_object_new
    - fu_engine_get_context
    - fwupd_codec_array_to_json
    - g_autoptr
    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:4407,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4408,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4409,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4411,1
    - Dst: fu_util_esp_list_as_json
      Src: /src/fwupd/src/fu-tool.c:4417,1
    - Dst: fu_util_prompt_for_volume
      Src: /src/fwupd/src/fu-tool.c:4419,1
    - Dst: fu_volume_locker_new
      Src: /src/fwupd/src/fu-tool.c:4422,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/src/fu-tool.c:4425,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4427,1
    - Dst: fu_path_get_files
      Src: /src/fwupd/src/fu-tool.c:4433,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4437,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:4438,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4441
      start: 4403
    functionDepth: 3
    functionLinenumber: 4403
    functionLinenumberEnd: 4441
    functionName: fu_util_esp_list
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_prompt_for_volume
    - g_set_error_literal
    - fu_volume_get_mount_point
    - fu_console_print_literal
    - fu_volume_locker_new
    - fu_util_start_engine
    - fu_path_get_files
    - g_autoptr
    - fu_util_esp_list_as_json
    - g_ptr_array_index
    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:4446,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4449,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4457,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:4458,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:4462,1
    - Dst: fu_engine_modify_device
      Src: /src/fwupd/src/fu-tool.c:4467,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:4467,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - self
    - values
    - enable
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4468
      start: 4443
    functionDepth: 3
    functionLinenumber: 4443
    functionLinenumberEnd: 4468
    functionName: fu_util_modify_tag
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_prompt_for_device
    - fu_device_get_id
    - g_strv_length
    - fu_util_start_engine
    - g_autoptr
    - fu_engine_modify_device
    - fu_util_get_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:4473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4474
      start: 4470
    functionDepth: 4
    functionLinenumber: 4470
    functionLinenumberEnd: 4474
    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:4479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4480
      start: 4476
    functionDepth: 4
    functionLinenumber: 4476
    functionLinenumberEnd: 4480
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4485,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4486,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4489,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4490,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4498,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-tool.c:4506,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4507,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-tool.c:4515,1
    - Dst: g_file_replace
      Src: /src/fwupd/src/fu-tool.c:4516,1
    - Dst: fu_engine_emulation_save
      Src: /src/fwupd/src/fu-tool.c:4519,1
    - Dst: G_OUTPUT_STREAM
      Src: /src/fwupd/src/fu-tool.c:4519,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4520
      start: 4482
    functionDepth: 3
    functionLinenumber: 4482
    functionLinenumberEnd: 4520
    functionName: fu_util_emulation_save
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_file_replace
    - G_OUTPUT_STREAM
    - g_set_error_literal
    - g_file_test
    - g_strv_length
    - fu_engine_emulation_save
    - g_file_new_for_path
    - fu_util_start_engine
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_emulation_save(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4525,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4528,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4529,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-tool.c:4537,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:4538,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:4539,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-tool.c:4540,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4543,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:4545,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:4548,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-tool.c:4551,1
    - Dst: fu_engine_emulation_load
      Src: /src/fwupd/src/fu-tool.c:4554,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:4556,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4560,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4561,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-tool.c:4563,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-tool.c:4566,1
    - Dst: fu_util_install_stream
      Src: /src/fwupd/src/fu-tool.c:4569,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-tool.c:4572,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-tool.c:4576,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4580
      start: 4522
    functionDepth: 3
    functionLinenumber: 4522
    functionLinenumberEnd: 4580
    functionName: fu_util_emulation_load
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_engine_get_devices
    - g_set_error_literal
    - fu_util_install_stream
    - fu_progress_step_done
    - fu_engine_emulation_load
    - g_strv_length
    - fu_input_stream_from_path
    - fu_util_start_engine
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:4585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4586
      start: 4582
    functionDepth: 0
    functionLinenumber: 4582
    functionLinenumberEnd: 4586
    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:4592,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4593,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4594,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:4594,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4595,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4598,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4609,1
    - Dst: fu_util_get_device
      Src: /src/fwupd/src/fu-tool.c:4610,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:4612,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-tool.c:4615,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4616,1
    - Dst: fu_engine_get_releases
      Src: /src/fwupd/src/fu-tool.c:4624,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-tool.c:4624,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4630,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-tool.c:4631,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-tool.c:4632,1
    - Dst: g_ptr_array_find_with_equal_func
      Src: /src/fwupd/src/fu-tool.c:4636,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:4638,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:4638,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4642,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4645,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:4650,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4650,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4652,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:4653,1
    - Dst: fu_util_branch_for_display
      Src: /src/fwupd/src/fu-tool.c:4656,1
    - Dst: fu_console_input_uint
      Src: /src/fwupd/src/fu-tool.c:4660,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4660,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4662,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4668,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:4672,1
    - Dst: fu_device_get_branch
      Src: /src/fwupd/src/fu-tool.c:4672,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:4673,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-tool.c:4677,1
    - Dst: fu_util_branch_for_display
      Src: /src/fwupd/src/fu-tool.c:4678,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4684,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:4685,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-tool.c:4685,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:4686,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:4691,1
    - Dst: fu_util_branch_for_display
      Src: /src/fwupd/src/fu-tool.c:4695,1
    - Dst: fu_util_switch_branch_warning
      Src: /src/fwupd/src/fu-tool.c:4700,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-tool.c:4700,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:4705,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:4705,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:4707,1
    - Dst: fu_util_install_release
      Src: /src/fwupd/src/fu-tool.c:4711,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-tool.c:4711,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-tool.c:4713,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:4717,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-tool.c:4721,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 75
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4722
      start: 4588
    functionDepth: 3
    functionLinenumber: 4588
    functionLinenumberEnd: 4722
    functionName: fu_util_switch_branch
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_install_release
    - fu_util_switch_branch_warning
    - fu_device_get_branch
    - fu_util_prompt_for_device
    - _
    - g_object_ref
    - g_strv_length
    - fu_device_get_name
    - fwupd_release_match_flags
    - g_ptr_array_index
    - fu_console_print
    - g_signal_connect
    - g_debug
    - g_set_error_literal
    - fu_util_display_current_message
    - fu_device_has_flag
    - fu_util_start_engine
    - g_ptr_array_new_with_free_func
    - fu_console_input_uint
    - fu_engine_get_releases
    - FU_ENGINE
    - FWUPD_DEVICE
    - fu_util_branch_for_display
    - fwupd_release_get_branch
    - g_ptr_array_find_with_equal_func
    - fu_util_prompt_complete
    - g_strdup
    - g_strcmp0
    - g_set_error
    - g_ptr_array_add
    - fu_device_get_id
    - G_CALLBACK
    - g_autoptr
    - fu_util_get_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_switch_branch(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4728,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4731,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4732,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4740,1
    - Dst: fu_engine_get_results
      Src: /src/fwupd/src/fu-tool.c:4750,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/src/fu-tool.c:4754,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-tool.c:4754,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-tool.c:4758,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-tool.c:4758,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:4760,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4762
      start: 4724
    functionDepth: 3
    functionLinenumber: 4724
    functionLinenumberEnd: 4762
    functionName: fu_util_get_results
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_to_string
    - FWUPD_CODEC
    - g_set_error_literal
    - fwupd_codec_to_json_string
    - g_strv_length
    - fu_console_print_literal
    - fu_engine_get_results
    - fu_util_start_engine
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_results(FuUtil *self, gchar **values, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4767,1
    - Dst: fu_util_bios_settings_parse_argv
      Src: /src/fwupd/src/fu-tool.c:4767,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4772,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-tool.c:4778,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-tool.c:4779,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-tool.c:4787,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-tool.c:4788,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:4791,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4791,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:4794,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-tool.c:4800,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-tool.c:4804,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - self
    - input
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4805
      start: 4764
    functionDepth: 3
    functionLinenumber: 4764
    functionLinenumberEnd: 4805
    functionName: fu_util_set_bios_setting
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_util_bios_settings_parse_argv
    - g_prefix_error_literal
    - _
    - g_strdup_printf
    - fu_console_print_literal
    - fu_engine_modify_bios_settings
    - fu_util_start_engine
    - 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4811,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4815,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4819,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4820,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4825,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4829,1
    - Dst: fu_engine_fix_host_security_attr
      Src: /src/fwupd/src/fu-tool.c:4837,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:4840,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4840,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4842
      start: 4807
    functionDepth: 3
    functionLinenumber: 4807
    functionLinenumberEnd: 4842
    functionName: fu_util_security_fix
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - _
    - g_strv_length
    - fu_console_print_literal
    - fu_util_start_engine
    - 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_literal
      Src: /src/fwupd/src/fu-tool.c:4848,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4852,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:4862,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4866,1
    - Dst: fu_engine_undo_host_security_attr
      Src: /src/fwupd/src/fu-tool.c:4874,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:4877,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4877,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4879
      start: 4844
    functionDepth: 3
    functionLinenumber: 4844
    functionLinenumberEnd: 4879
    functionName: fu_util_security_undo
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - _
    - g_strv_length
    - fu_console_print_literal
    - fu_util_start_engine
    - 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:4884,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4885,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-tool.c:4886,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4890,1
    - Dst: fu_context_get_bios_settings
      Src: /src/fwupd/src/fu-tool.c:4896,1
    - Dst: fu_bios_settings_get_all
      Src: /src/fwupd/src/fu-tool.c:4897,1
    - Dst: fu_util_bios_setting_console_print
      Src: /src/fwupd/src/fu-tool.c:4899,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4904,1
    - Dst: fu_util_bios_setting_matches_args
      Src: /src/fwupd/src/fu-tool.c:4905,1
    - Dst: fu_util_bios_setting_to_string
      Src: /src/fwupd/src/fu-tool.c:4906,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:4907,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:4912,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4916,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:4920,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:4925,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4930
      start: 4881
    functionDepth: 3
    functionLinenumber: 4881
    functionLinenumberEnd: 4930
    functionName: fu_util_get_bios_setting
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_bios_setting_console_print
    - fu_util_bios_setting_matches_args
    - g_set_error
    - g_set_error_literal
    - fu_bios_settings_get_all
    - fu_util_bios_setting_to_string
    - _
    - fu_console_print_literal
    - fu_context_get_bios_settings
    - fu_engine_get_context
    - fu_util_start_engine
    - g_autoptr
    - g_ptr_array_index
    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:4936,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:4938,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:4947,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-tool.c:4948,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-tool.c:4952,1
    - Dst: fu_engine_get_plugin_by_name
      Src: /src/fwupd/src/fu-tool.c:4956,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-tool.c:4956,1
    - Dst: fu_plugin_runner_reboot_cleanup
      Src: /src/fwupd/src/fu-tool.c:4959,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4960
      start: 4932
    functionDepth: 3
    functionLinenumber: 4932
    functionLinenumberEnd: 4960
    functionName: fu_util_reboot_cleanup
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_plugin_by_name
    - fu_engine_get_device
    - fu_util_prompt_for_device
    - fu_device_get_plugin
    - g_strv_length
    - fu_plugin_runner_reboot_cleanup
    - fu_util_start_engine
    - g_autoptr
    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:4965,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4967,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-tool.c:4967,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4968,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/src/fu-tool.c:4968,1
    - Dst: fu_efivars_get_boot_current
      Src: /src/fwupd/src/fu-tool.c:4970,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/src/fu-tool.c:4971,1
    - Dst: fu_efivars_get_boot_next
      Src: /src/fwupd/src/fu-tool.c:4972,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/src/fu-tool.c:4973,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:4976,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4977,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-tool.c:4977,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:4978,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-tool.c:4978,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:4980,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/src/fu-tool.c:4980,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-tool.c:4980,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/src/fu-tool.c:4981,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-tool.c:4981,1
    - Dst: fwupd_json_object_add_object
      Src: /src/fwupd/src/fu-tool.c:4982,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/src/fu-tool.c:4983,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/src/fu-tool.c:4985,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-tool.c:4987,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - entries
    argTypes:
    - FuUtil*
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4988
      start: 4962
    functionDepth: 1
    functionLinenumber: 4962
    functionLinenumberEnd: 4988
    functionName: fu_util_efiboot_info_as_json
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - FWUPD_CODEC
    - fu_util_print_json_object
    - fwupd_json_object_new
    - FU_FIRMWARE
    - fwupd_codec_to_json
    - fwupd_json_array_new
    - g_strdup_printf
    - fu_context_get_efivars
    - fwupd_json_object_add_integer
    - fu_efivars_get_boot_next
    - fwupd_json_object_add_object
    - fwupd_json_array_add_object
    - g_autoptr
    - fu_firmware_get_idx
    - g_ptr_array_index
    - fu_efivars_get_boot_current
    linkageType: ''
    returnType: void
    signature: void fu_util_efiboot_info_as_json(FuUtil *self, GPtrArray *entries)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/src/fu-tool.c:4993,1
    - Dst: fu_efivars_get_boot_next
      Src: /src/fwupd/src/fu-tool.c:4999,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:5001,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-tool.c:5006,1
    - Dst: fu_efivars_set_boot_next
      Src: /src/fwupd/src/fu-tool.c:5008,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5009
      start: 4990
    functionDepth: 1
    functionLinenumber: 4990
    functionLinenumberEnd: 5009
    functionName: fu_util_efiboot_next
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_print
    - fu_efivars_set_boot_next
    - fu_strtoull
    - fu_context_get_efivars
    - fu_efivars_get_boot_next
    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:5014,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-tool.c:5015,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5016,1
    - Dst: fu_efivars_get_boot_order
      Src: /src/fwupd/src/fu-tool.c:5020,1
    - Dst: g_array_index
      Src: /src/fwupd/src/fu-tool.c:5024,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:5025,1
    - Dst: g_array_new
      Src: /src/fwupd/src/fu-tool.c:5031,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-tool.c:5032,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-tool.c:5036,1
    - Dst: g_array_append_val
      Src: /src/fwupd/src/fu-tool.c:5039,1
    - Dst: fu_efivars_set_boot_order
      Src: /src/fwupd/src/fu-tool.c:5041,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5042
      start: 5011
    functionDepth: 1
    functionLinenumber: 5011
    functionLinenumberEnd: 5042
    functionName: fu_util_efiboot_order
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_print
    - g_array_new
    - fu_efivars_set_boot_order
    - fu_strtoull
    - fu_efivars_get_boot_order
    - g_array_index
    - g_strsplit
    - fu_context_get_efivars
    - g_auto
    - g_array_append_val
    - g_autoptr
    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:5047,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5048,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:5052,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:5053,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5058,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-tool.c:5063,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5066,1
    - Dst: fu_efivars_get_boot_data
      Src: /src/fwupd/src/fu-tool.c:5066,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:5068,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5072,1
    - Dst: fu_util_prompt_for_volume
      Src: /src/fwupd/src/fu-tool.c:5079,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5083,1
    - Dst: fu_context_get_esp_volumes
      Src: /src/fwupd/src/fu-tool.c:5084,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:5088,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/src/fu-tool.c:5089,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:5090,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-tool.c:5091,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:5096,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5100,1
    - Dst: fu_efivars_create_boot_entry_for_volume
      Src: /src/fwupd/src/fu-tool.c:5105,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5111
      start: 5044
    functionDepth: 2
    functionLinenumber: 5044
    functionLinenumberEnd: 5111
    functionName: fu_util_efiboot_create
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_util_prompt_for_volume
    - g_strcmp0
    - fu_context_get_esp_volumes
    - g_set_error
    - fu_strtoull
    - g_set_error_literal
    - fu_volume_get_mount_point
    - _
    - g_object_ref
    - g_strv_length
    - fu_context_get_efivars
    - fu_efivars_get_boot_data
    - fu_efivars_create_boot_entry_for_volume
    - g_autoptr
    - g_ptr_array_index
    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:5116,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:5120,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5124,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-tool.c:5127,1
    - Dst: fu_efivars_set_boot_data
      Src: /src/fwupd/src/fu-tool.c:5131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5132
      start: 5113
    functionDepth: 1
    functionLinenumber: 5113
    functionLinenumberEnd: 5132
    functionName: fu_util_efiboot_delete
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_set_error_literal
    - _
    - fu_context_get_efivars
    - fu_efivars_set_boot_data
    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:5138,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5139,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/src/fu-tool.c:5142,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-tool.c:5142,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/src/fu-tool.c:5145,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:5147,1
    - Dst: FU_IS_EFI_FILE_PATH_DEVICE_PATH
      Src: /src/fwupd/src/fu-tool.c:5148,1
    - Dst: fu_efi_file_path_device_path_get_name
      Src: /src/fwupd/src/fu-tool.c:5150,1
    - Dst: FU_EFI_FILE_PATH_DEVICE_PATH
      Src: /src/fwupd/src/fu-tool.c:5150,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/src/fu-tool.c:5154,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:5161,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - loadopt
    - error
    argTypes:
    - FuEfiLoadOption*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5170
      start: 5134
    functionDepth: 1
    functionLinenumber: 5134
    functionLinenumberEnd: 5170
    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_firmware_get_image_by_idx
    - FU_IS_EFI_FILE_PATH_DEVICE_PATH
    - FU_FIRMWARE
    - g_pattern_match_simple
    - g_set_error_literal
    - fu_firmware_get_images
    - FU_EFI_FILE_PATH_DEVICE_PATH
    - g_autoptr
    - g_ptr_array_index
    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:5175,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5176,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:5180,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:5181,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5185,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-tool.c:5190,1
    - Dst: fu_efivars_get_boot_entry
      Src: /src/fwupd/src/fu-tool.c:5192,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-tool.c:5199,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5203,1
    - Dst: fu_efi_load_option_get_metadata
      Src: /src/fwupd/src/fu-tool.c:5204,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:5207,1
    - Dst: fu_util_efiboot_hive_check_loadopt_is_shim
      Src: /src/fwupd/src/fu-tool.c:5212,1
    - Dst: fu_efi_load_option_get_kind
      Src: /src/fwupd/src/fu-tool.c:5216,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-tool.c:5217,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5221,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-tool.c:5224,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5229,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:5230,1
    - Dst: fu_efi_load_option_set_kind
      Src: /src/fwupd/src/fu-tool.c:5236,1
    - Dst: fu_efi_load_option_set_metadata
      Src: /src/fwupd/src/fu-tool.c:5240,1
    - Dst: fu_efivars_set_boot_entry
      Src: /src/fwupd/src/fu-tool.c:5241,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5242
      start: 5172
    functionDepth: 2
    functionLinenumber: 5172
    functionLinenumberEnd: 5242
    functionName: fu_util_efiboot_hive
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_efi_load_option_set_kind
    - fu_util_efiboot_hive_check_loadopt_is_shim
    - fu_strtoull
    - g_set_error_literal
    - fu_efivars_get_boot_entry
    - _
    - fu_console_print_full
    - g_strv_length
    - fu_context_get_efivars
    - fu_console_print_literal
    - fu_efi_load_option_set_metadata
    - fu_efi_load_option_get_kind
    - fu_efi_load_option_get_metadata
    - g_autoptr
    - fu_efivars_set_boot_entry
    - fu_console_input_bool
    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:5247,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5248,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5249,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-tool.c:5249,1
    - Dst: fu_efivars_get_boot_entries
      Src: /src/fwupd/src/fu-tool.c:5252,1
    - Dst: fu_util_efiboot_info_as_json
      Src: /src/fwupd/src/fu-tool.c:5258,1
    - Dst: fu_efivars_get_boot_current
      Src: /src/fwupd/src/fu-tool.c:5262,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/src/fu-tool.c:5263,1
    - Dst: fu_efivars_get_boot_next
      Src: /src/fwupd/src/fu-tool.c:5264,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/src/fu-tool.c:5265,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:5268,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:5270,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/src/fu-tool.c:5270,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-tool.c:5270,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-tool.c:5271,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/src/fu-tool.c:5272,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-tool.c:5272,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:5276,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5278
      start: 5244
    functionDepth: 2
    functionLinenumber: 5244
    functionLinenumberEnd: 5278
    functionName: fu_util_efiboot_info
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_add_string
    - FWUPD_CODEC
    - fu_efivars_get_boot_entries
    - FU_FIRMWARE
    - fwupd_codec_string_append
    - g_strdup_printf
    - fu_context_get_efivars
    - fu_efivars_get_boot_next
    - fu_console_print_literal
    - g_string_new
    - fwupd_codec_string_append_hex
    - fu_util_efiboot_info_as_json
    - g_autoptr
    - fu_firmware_get_idx
    - g_ptr_array_index
    - fu_efivars_get_boot_current
    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:5283,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-tool.c:5283,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5284,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-tool.c:5284,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:5294,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:5298,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/src/fu-tool.c:5298,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-tool.c:5299,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:5301,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-tool.c:5302,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:5302,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:5304,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:5304,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/src/fu-tool.c:5304,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-tool.c:5308,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-tool.c:5309,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5312,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/src/fu-tool.c:5312,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:5315,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/src/fu-tool.c:5316,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/src/fu-tool.c:5318,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-tool.c:5320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - self
    - files
    argTypes:
    - FuUtil*
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5321
      start: 5280
    functionDepth: 1
    functionLinenumber: 5280
    functionLinenumberEnd: 5321
    functionName: fu_util_efivar_files_as_json
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - g_hash_table_insert
    - g_hash_table_lookup
    - fwupd_json_array_new
    - g_strdup_printf
    - g_ptr_array_index
    - fwupd_json_object_new
    - g_hash_table_new_full
    - fwupd_json_array_add_string
    - g_ptr_array_new_with_free_func
    - g_hash_table_iter_next
    - fu_firmware_get_idx
    - g_strdup
    - fu_util_print_json_object
    - fu_firmware_get_filename
    - g_steal_pointer
    - g_ptr_array_add
    - g_hash_table_iter_init
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_util_efivar_files_as_json(FuUtil *self, GPtrArray *files)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5326,1
    - Dst: fu_context_get_esp_files
      Src: /src/fwupd/src/fu-tool.c:5328,1
    - Dst: fu_util_efivar_files_as_json
      Src: /src/fwupd/src/fu-tool.c:5336,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:5340,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:5342,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/src/fu-tool.c:5342,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:5343,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/src/fu-tool.c:5346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5351
      start: 5323
    functionDepth: 2
    functionLinenumber: 5323
    functionLinenumberEnd: 5351
    functionName: fu_util_efivar_files
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_print
    - fu_context_get_esp_files
    - fu_firmware_get_filename
    - fu_firmware_get_idx
    - g_strdup_printf
    - g_autoptr
    - fu_util_efivar_files_as_json
    - g_ptr_array_index
    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:5356,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5357,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:5360,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:5361,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5365,1
    - Dst: fu_efivars_get_names
      Src: /src/fwupd/src/fu-tool.c:5368,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:5372,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:5373,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5378
      start: 5353
    functionDepth: 1
    functionLinenumber: 5353
    functionLinenumberEnd: 5378
    functionName: fu_util_efivar_list
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_print
    - fu_efivars_get_names
    - g_set_error_literal
    - _
    - g_strv_length
    - fu_context_get_efivars
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_efivar_list(FuUtil *self, gchar **values, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5383,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5384,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-tool.c:5384,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:5387,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:5388,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:5393,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-tool.c:5399,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:5400,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5409,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-tool.c:5410,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-tool.c:5411,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-tool.c:5414,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:5415,1
    - Dst: fu_cabinet_add_file
      Src: /src/fwupd/src/fu-tool.c:5422,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-tool.c:5427,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-tool.c:5427,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-tool.c:5432,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-tool.c:5432,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:5439,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5440
      start: 5380
    functionDepth: 1
    functionLinenumber: 5380
    functionLinenumberEnd: 5440
    functionName: fu_util_build_cabinet
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_bytes_get_contents
    - g_path_get_basename
    - g_set_error
    - g_set_error_literal
    - FU_FIRMWARE
    - fu_cabinet_new
    - _
    - g_file_test
    - g_strv_length
    - fu_firmware_parse_bytes
    - g_bytes_get_size
    - fu_bytes_set_contents
    - g_autoptr
    - fu_cabinet_add_file
    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:5445,1
    - Dst: fu_util_start_engine
      Src: /src/fwupd/src/fu-tool.c:5449,1
    - Dst: fu_engine_get_report_metadata
      Src: /src/fwupd/src/fu-tool.c:5453,1
    - Dst: fu_util_project_versions_as_json
      Src: /src/fwupd/src/fu-tool.c:5459,1
    - Dst: fu_util_project_versions_to_string
      Src: /src/fwupd/src/fu-tool.c:5462,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:5463,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5465
      start: 5442
    functionDepth: 3
    functionLinenumber: 5442
    functionLinenumberEnd: 5465
    functionName: fu_util_version
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_print_literal
    - fu_engine_get_report_metadata
    - fu_util_project_versions_as_json
    - g_autoptr
    - fu_util_project_versions_to_string
    - fu_util_start_engine
    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:5470,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-tool.c:5470,1
    - Dst: fu_history_remove_all
      Src: /src/fwupd/src/fu-tool.c:5471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5472
      start: 5467
    functionDepth: 1
    functionLinenumber: 5467
    functionLinenumberEnd: 5472
    functionName: fu_util_clear_history
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_history_new
    - g_autoptr
    - fu_history_remove_all
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_clear_history(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5477,1
    - Dst: fwupd_jcat_file_new
      Src: /src/fwupd/src/fu-tool.c:5477,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5478,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-tool.c:5478,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/src/fu-tool.c:5480,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5481,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/src/fu-tool.c:5482,1
    - Dst: g_file_read
      Src: /src/fwupd/src/fu-tool.c:5482,1
    - Dst: fwupd_jcat_file_import_stream
      Src: /src/fwupd/src/fu-tool.c:5485,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-tool.c:5490,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - filename
    - error
    argTypes:
    - FuUtil*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5491
      start: 5474
    functionDepth: 1
    functionLinenumber: 5474
    functionLinenumberEnd: 5491
    functionName: fu_util_jcat_load_filename
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_jcat_file_import_stream
    - fwupd_jcat_file_new
    - g_file_read
    - g_steal_pointer
    - g_file_query_exists
    - G_INPUT_STREAM
    - g_file_new_for_path
    - g_autoptr
    linkageType: ''
    returnType: FwupdJcatFile
    signature: 'FwupdJcatFile *

      fu_util_jcat_load_filename(FuUtil *self, const gchar *filename, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5496,1
    - Dst: fwupd_jcat_file_export_bytes
      Src: /src/fwupd/src/fu-tool.c:5498,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-tool.c:5501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - file
    - filename
    - error
    argTypes:
    - FuUtil*
    - FwupdJcatFile*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5502
      start: 5493
    functionDepth: 1
    functionLinenumber: 5493
    functionLinenumberEnd: 5502
    functionName: fu_util_jcat_save_filename
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_bytes_set_contents
    - fwupd_jcat_file_export_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_jcat_save_filename(FuUtil *self, FwupdJcatFile *file,
      const gchar *filename, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5507,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:5511,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:5512,1
    - Dst: fu_util_jcat_load_filename
      Src: /src/fwupd/src/fu-tool.c:5520,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-tool.c:5525,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-tool.c:5525,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:5526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5530
      start: 5504
    functionDepth: 2
    functionLinenumber: 5504
    functionLinenumberEnd: 5530
    functionName: fu_util_jcat_info
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_to_string
    - FWUPD_CODEC
    - g_set_error_literal
    - g_strv_length
    - fu_console_print_literal
    - fu_util_jcat_load_filename
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_jcat_info(FuUtil *self, gchar **values, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5535,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5536,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:5539,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:5540,1
    - Dst: fu_util_jcat_load_filename
      Src: /src/fwupd/src/fu-tool.c:5548,1
    - Dst: fwupd_jcat_file_get_item_by_id
      Src: /src/fwupd/src/fu-tool.c:5553,1
    - Dst: fwupd_jcat_item_add_alias_id
      Src: /src/fwupd/src/fu-tool.c:5556,1
    - Dst: fu_util_jcat_save_filename
      Src: /src/fwupd/src/fu-tool.c:5559,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5560
      start: 5532
    functionDepth: 2
    functionLinenumber: 5532
    functionLinenumberEnd: 5560
    functionName: fu_util_jcat_add_alias
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fwupd_jcat_file_get_item_by_id
    - g_strv_length
    - fu_util_jcat_load_filename
    - fwupd_jcat_item_add_alias_id
    - fu_util_jcat_save_filename
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_jcat_add_alias(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5565,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5566,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:5569,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:5570,1
    - Dst: fu_util_jcat_load_filename
      Src: /src/fwupd/src/fu-tool.c:5578,1
    - Dst: fwupd_jcat_file_get_item_by_id
      Src: /src/fwupd/src/fu-tool.c:5583,1
    - Dst: fwupd_jcat_item_remove_alias_id
      Src: /src/fwupd/src/fu-tool.c:5586,1
    - Dst: fu_util_jcat_save_filename
      Src: /src/fwupd/src/fu-tool.c:5589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5590
      start: 5562
    functionDepth: 2
    functionLinenumber: 5562
    functionLinenumberEnd: 5590
    functionName: fu_util_jcat_remove_alias
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fwupd_jcat_file_get_item_by_id
    - g_strv_length
    - fu_util_jcat_load_filename
    - fu_util_jcat_save_filename
    - g_autoptr
    - fwupd_jcat_item_remove_alias_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_jcat_remove_alias(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-tool.c:5603,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-tool.c:5603,1
    - Dst: fwupd_jcat_blob_kind_from_string
      Src: /src/fwupd/src/fu-tool.c:5605,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5607,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-tool.c:5607,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-tool.c:5609,1
    - Dst: fwupd_jcat_blob_kind_to_string
      Src: /src/fwupd/src/fu-tool.c:5609,1
    - Dst: g_string_truncate
      Src: /src/fwupd/src/fu-tool.c:5611,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:5612,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-tool.c:5623,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - kind_str
    - kind
    - variant
    - error
    argTypes:
    - gchar*
    - FwupdJcatBlobKind*
    - FuUtilJcatBlobVariant*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5631
      start: 5597
    functionDepth: 0
    functionLinenumber: 5597
    functionLinenumberEnd: 5631
    functionName: fu_util_jcat_blob_kind_from_string
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fwupd_jcat_blob_kind_to_string
    - g_set_error
    - g_strsplit
    - g_string_new
    - g_string_append_printf
    - g_string_truncate
    - g_auto
    - fwupd_jcat_blob_kind_from_string
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_jcat_blob_kind_from_string(const gchar *kind_str,\n\t\t\t\t
      \  FwupdJcatBlobKind *kind,\n\t\t\t\t   FuUtilJcatBlobVariant *variant,\n\t\t\t\t
      \  GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - kind
    argTypes:
    - FwupdJcatBlobKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5649
      start: 5633
    functionDepth: 0
    functionLinenumber: 5633
    functionLinenumberEnd: 5649
    functionName: fu_util_jcat_blob_kind_to_ext
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_jcat_blob_kind_to_ext(FwupdJcatBlobKind kind)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5655,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5656,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:5659,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:5660,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:5666,1
    - Dst: fu_util_jcat_blob_kind_from_string
      Src: /src/fwupd/src/fu-tool.c:5667,1
    - Dst: fu_util_jcat_load_filename
      Src: /src/fwupd/src/fu-tool.c:5672,1
    - Dst: fwupd_jcat_file_get_items
      Src: /src/fwupd/src/fu-tool.c:5677,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:5679,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5680,1
    - Dst: fwupd_jcat_item_get_blobs
      Src: /src/fwupd/src/fu-tool.c:5680,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:5682,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5684,1
    - Dst: fwupd_jcat_blob_get_kind
      Src: /src/fwupd/src/fu-tool.c:5688,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-tool.c:5692,1
    - Dst: fwupd_jcat_item_get_id
      Src: /src/fwupd/src/fu-tool.c:5692,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-tool.c:5693,1
    - Dst: fu_util_jcat_blob_kind_to_ext
      Src: /src/fwupd/src/fu-tool.c:5696,1
    - Dst: fwupd_jcat_blob_get_kind
      Src: /src/fwupd/src/fu-tool.c:5696,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-tool.c:5697,1
    - Dst: fu_bytes_set_contents_full
      Src: /src/fwupd/src/fu-tool.c:5698,1
    - Dst: fwupd_jcat_blob_get_data
      Src: /src/fwupd/src/fu-tool.c:5699,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:5703,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5709
      start: 5651
    functionDepth: 2
    functionLinenumber: 5651
    functionLinenumberEnd: 5709
    functionName: fu_util_jcat_export
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_jcat_blob_get_data
    - fu_console_print
    - fu_bytes_set_contents_full
    - fu_util_jcat_blob_kind_to_ext
    - fwupd_jcat_blob_get_kind
    - g_set_error_literal
    - fu_util_jcat_blob_kind_from_string
    - fwupd_jcat_file_get_items
    - fwupd_jcat_item_get_blobs
    - g_strv_length
    - fu_util_jcat_load_filename
    - g_string_new
    - g_string_append_printf
    - fwupd_jcat_item_get_id
    - g_autoptr
    - g_build_filename
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_jcat_export(FuUtil *self, gchar **values, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5714,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5715,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5716,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5717,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:5720,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:5721,1
    - Dst: fu_util_jcat_load_filename
      Src: /src/fwupd/src/fu-tool.c:5729,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-tool.c:5734,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-tool.c:5739,1
    - Dst: fwupd_jcat_blob_new
      Src: /src/fwupd/src/fu-tool.c:5740,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-tool.c:5743,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-tool.c:5743,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-tool.c:5744,1
    - Dst: fwupd_jcat_blob_new
      Src: /src/fwupd/src/fu-tool.c:5745,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-tool.c:5748,1
    - Dst: fwupd_jcat_blob_new
      Src: /src/fwupd/src/fu-tool.c:5749,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-tool.c:5752,1
    - Dst: fwupd_jcat_blob_new
      Src: /src/fwupd/src/fu-tool.c:5753,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-tool.c:5756,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-tool.c:5757,1
    - Dst: fwupd_jcat_blob_new
      Src: /src/fwupd/src/fu-tool.c:5758,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-tool.c:5761,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-tool.c:5762,1
    - Dst: fwupd_jcat_blob_new
      Src: /src/fwupd/src/fu-tool.c:5763,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5767,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-tool.c:5767,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-tool.c:5769,1
    - Dst: fu_util_jcat_blob_kind_to_ext
      Src: /src/fwupd/src/fu-tool.c:5769,1
    - Dst: g_string_truncate
      Src: /src/fwupd/src/fu-tool.c:5771,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:5772,1
    - Dst: fwupd_jcat_file_get_item_by_id
      Src: /src/fwupd/src/fu-tool.c:5781,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-tool.c:5783,1
    - Dst: fwupd_jcat_item_new
      Src: /src/fwupd/src/fu-tool.c:5784,1
    - Dst: fwupd_jcat_file_add_item
      Src: /src/fwupd/src/fu-tool.c:5785,1
    - Dst: fwupd_jcat_item_add_blob
      Src: /src/fwupd/src/fu-tool.c:5789,1
    - Dst: fu_util_jcat_save_filename
      Src: /src/fwupd/src/fu-tool.c:5792,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5793
      start: 5711
    functionDepth: 2
    functionLinenumber: 5711
    functionLinenumberEnd: 5793
    functionName: fu_util_jcat_import
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_bytes_get_contents
    - g_path_get_basename
    - fwupd_jcat_blob_new
    - fu_util_jcat_blob_kind_to_ext
    - g_set_error
    - g_set_error_literal
    - g_str_has_suffix
    - fwupd_jcat_item_new
    - fwupd_jcat_file_get_item_by_id
    - g_strv_length
    - fwupd_jcat_item_add_blob
    - fu_util_jcat_load_filename
    - g_string_new
    - g_string_append_printf
    - g_string_truncate
    - fu_util_jcat_save_filename
    - fwupd_jcat_file_add_item
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_jcat_import(FuUtil *self, gchar **values, GError **error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5803,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5804,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5805,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5806,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5807,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:5810,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:5811,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:5817,1
    - Dst: fu_util_jcat_blob_kind_from_string
      Src: /src/fwupd/src/fu-tool.c:5818,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:5821,1
    - Dst: fu_util_jcat_blob_kind_from_string
      Src: /src/fwupd/src/fu-tool.c:5822,1
    - Dst: fu_util_jcat_load_filename
      Src: /src/fwupd/src/fu-tool.c:5827,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-tool.c:5832,1
    - Dst: fwupd_jcat_file_get_item_by_id
      Src: /src/fwupd/src/fu-tool.c:5833,1
    - Dst: fwupd_jcat_item_new
      Src: /src/fwupd/src/fu-tool.c:5835,1
    - Dst: fwupd_jcat_file_add_item
      Src: /src/fwupd/src/fu-tool.c:5836,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-tool.c:5841,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5845,1
    - Dst: fwupd_jcat_item_get_blob_by_kind
      Src: /src/fwupd/src/fu-tool.c:5846,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/src/fu-tool.c:5849,1
    - Dst: fwupd_jcat_blob_get_data
      Src: /src/fwupd/src/fu-tool.c:5849,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-tool.c:5857,1
    - Dst: fu_jcat_engine_self_sign
      Src: /src/fwupd/src/fu-tool.c:5860,1
    - Dst: fwupd_jcat_blob_set_target
      Src: /src/fwupd/src/fu-tool.c:5864,1
    - Dst: fwupd_jcat_item_add_blob
      Src: /src/fwupd/src/fu-tool.c:5865,1
    - Dst: fu_util_jcat_save_filename
      Src: /src/fwupd/src/fu-tool.c:5868,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5869
      start: 5795
    functionDepth: 2
    functionLinenumber: 5795
    functionLinenumberEnd: 5869
    functionName: fu_util_jcat_self_sign
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_jcat_blob_get_data
    - g_bytes_ref
    - fu_bytes_get_contents
    - g_path_get_basename
    - fu_jcat_context_get_engine
    - fwupd_jcat_blob_set_target
    - fwupd_jcat_item_new
    - g_set_error_literal
    - fu_util_jcat_blob_kind_from_string
    - fu_jcat_engine_self_sign
    - fwupd_jcat_file_get_item_by_id
    - fwupd_jcat_item_get_blob_by_kind
    - g_strv_length
    - fwupd_jcat_item_add_blob
    - fu_util_jcat_load_filename
    - fwupd_jcat_file_add_item
    - fu_util_jcat_save_filename
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_jcat_self_sign(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5876,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5877,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5878,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5879,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5880,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5881,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5882,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:5885,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:5886,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:5893,1
    - Dst: fu_util_jcat_blob_kind_from_string
      Src: /src/fwupd/src/fu-tool.c:5894,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:5897,1
    - Dst: fu_util_jcat_blob_kind_from_string
      Src: /src/fwupd/src/fu-tool.c:5898,1
    - Dst: fu_util_jcat_load_filename
      Src: /src/fwupd/src/fu-tool.c:5903,1
    - Dst: fwupd_jcat_file_get_item_by_id
      Src: /src/fwupd/src/fu-tool.c:5908,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-tool.c:5910,1
    - Dst: fwupd_jcat_item_new
      Src: /src/fwupd/src/fu-tool.c:5911,1
    - Dst: fwupd_jcat_file_add_item
      Src: /src/fwupd/src/fu-tool.c:5912,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-tool.c:5917,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5921,1
    - Dst: fwupd_jcat_item_get_blob_by_kind
      Src: /src/fwupd/src/fu-tool.c:5922,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/src/fu-tool.c:5925,1
    - Dst: fwupd_jcat_blob_get_data
      Src: /src/fwupd/src/fu-tool.c:5925,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-tool.c:5929,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-tool.c:5932,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-tool.c:5939,1
    - Dst: fu_jcat_engine_pubkey_sign
      Src: /src/fwupd/src/fu-tool.c:5943,1
    - Dst: fwupd_jcat_blob_set_target
      Src: /src/fwupd/src/fu-tool.c:5952,1
    - Dst: fwupd_jcat_item_add_blob
      Src: /src/fwupd/src/fu-tool.c:5953,1
    - Dst: fu_util_jcat_save_filename
      Src: /src/fwupd/src/fu-tool.c:5956,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5957
      start: 5871
    functionDepth: 2
    functionLinenumber: 5871
    functionLinenumberEnd: 5957
    functionName: fu_util_jcat_sign
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_jcat_blob_get_data
    - g_bytes_ref
    - fu_bytes_get_contents
    - g_path_get_basename
    - fu_jcat_context_get_engine
    - fu_jcat_engine_pubkey_sign
    - fwupd_jcat_blob_set_target
    - fwupd_jcat_item_new
    - g_set_error_literal
    - fu_util_jcat_blob_kind_from_string
    - fwupd_jcat_file_get_item_by_id
    - fwupd_jcat_item_get_blob_by_kind
    - g_strv_length
    - fwupd_jcat_item_add_blob
    - fu_util_jcat_load_filename
    - fwupd_jcat_file_add_item
    - fu_util_jcat_save_filename
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_jcat_sign(FuUtil *self, gchar **values, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5967,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5968,1
    - Dst: fwupd_jcat_item_get_alias_ids
      Src: /src/fwupd/src/fu-tool.c:5968,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5969,1
    - Dst: fwupd_jcat_item_get_blobs
      Src: /src/fwupd/src/fu-tool.c:5969,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:5970,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:5970,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:5974,1
    - Dst: fwupd_jcat_item_get_id
      Src: /src/fwupd/src/fu-tool.c:5974,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:5977,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-tool.c:5978,1
    - Dst: fwupd_jcat_item_get_id
      Src: /src/fwupd/src/fu-tool.c:5978,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:5980,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-tool.c:5981,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-tool.c:5981,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:5984,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-tool.c:5985,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:5986,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-tool.c:5992,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:5994,1
    - Dst: g_strjoinv
      Src: /src/fwupd/src/fu-tool.c:5995,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-tool.c:5996,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-tool.c:6001,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:6007,1
    - Dst: fwupd_jcat_blob_get_target
      Src: /src/fwupd/src/fu-tool.c:6008,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:6011,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:6012,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:6013,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:6014,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-tool.c:6014,1
    - Dst: fwupd_jcat_blob_get_kind
      Src: /src/fwupd/src/fu-tool.c:6017,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/src/fu-tool.c:6022,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:6024,1
    - Dst: fwupd_jcat_item_get_blob_by_kind
      Src: /src/fwupd/src/fu-tool.c:6025,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/src/fu-tool.c:6028,1
    - Dst: fwupd_jcat_blob_get_data
      Src: /src/fwupd/src/fu-tool.c:6028,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-tool.c:6031,1
    - Dst: fwupd_jcat_blob_kind_to_string
      Src: /src/fwupd/src/fu-tool.c:6032,1
    - Dst: fwupd_jcat_blob_get_kind
      Src: /src/fwupd/src/fu-tool.c:6032,1
    - Dst: fwupd_jcat_blob_get_target
      Src: /src/fwupd/src/fu-tool.c:6033,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-tool.c:6034,1
    - Dst: fwupd_jcat_blob_kind_to_string
      Src: /src/fwupd/src/fu-tool.c:6037,1
    - Dst: fwupd_jcat_blob_get_target
      Src: /src/fwupd/src/fu-tool.c:6037,1
    - Dst: fu_jcat_context_verify_blob
      Src: /src/fwupd/src/fu-tool.c:6041,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-tool.c:6047,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:6048,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:6054,1
    - Dst: fu_jcat_result_get_authority
      Src: /src/fwupd/src/fu-tool.c:6061,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:6062,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:6068,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 71
    argCount: 5
    argNames:
    - self
    - item
    - kind
    - variant
    - error
    argTypes:
    - FuUtil*
    - FwupdJcatItem*
    - FwupdJcatBlobKind
    - FuUtilJcatBlobVariant
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6077
      start: 5959
    functionDepth: 1
    functionLinenumber: 5959
    functionLinenumberEnd: 6077
    functionName: fu_util_jcat_verify_item
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fwupd_jcat_blob_get_data
    - fwupd_jcat_blob_kind_to_string
    - fwupd_jcat_item_get_blob_by_kind
    - fwupd_jcat_item_get_blobs
    - fwupd_jcat_item_get_id
    - g_ptr_array_index
    - fu_console_print
    - g_new0
    - g_set_error_literal
    - g_string_new
    - g_ptr_array_new_with_free_func
    - fu_jcat_context_verify_blob
    - g_bytes_ref
    - g_string_append
    - fwupd_jcat_item_get_alias_ids
    - fwupd_jcat_blob_get_kind
    - g_strdup
    - fu_bytes_get_contents
    - g_set_error
    - g_ptr_array_add
    - g_file_test
    - g_error_matches
    - g_string_append_printf
    - g_strjoinv
    - fu_jcat_result_get_authority
    - fwupd_jcat_blob_get_target
    - g_autoptr
    - g_build_filename
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_jcat_verify_item(FuUtil *self,\n\t\t\t FwupdJcatItem
      *item,\n\t\t\t FwupdJcatBlobKind kind,\n\t\t\t FuUtilJcatBlobVariant variant,\n\t\t\t
      GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:6085,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:6086,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:6089,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:6090,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-tool.c:6096,1
    - Dst: fu_util_jcat_blob_kind_from_string
      Src: /src/fwupd/src/fu-tool.c:6097,1
    - Dst: fu_util_jcat_load_filename
      Src: /src/fwupd/src/fu-tool.c:6102,1
    - Dst: fwupd_jcat_file_get_items
      Src: /src/fwupd/src/fu-tool.c:6107,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-tool.c:6109,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:6110,1
    - Dst: fu_util_jcat_verify_item
      Src: /src/fwupd/src/fu-tool.c:6111,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:6112,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:6118,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6127
      start: 6079
    functionDepth: 2
    functionLinenumber: 6079
    functionLinenumberEnd: 6127
    functionName: fu_util_jcat_verify
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 0
    functionsReached:
    - fu_console_print
    - g_set_error_literal
    - fu_util_jcat_blob_kind_from_string
    - fwupd_jcat_file_get_items
    - g_strv_length
    - fu_util_jcat_verify_item
    - fu_util_jcat_load_filename
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_jcat_verify(FuUtil *self, gchar **values, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-tool.c:6133,1
    - Dst: fu_console_setup
      Src: /src/fwupd/src/fu-tool.c:6136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6137
      start: 6129
    functionDepth: 1
    functionLinenumber: 6129
    functionLinenumberEnd: 6137
    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:6143,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-tool.c:6146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6147
      start: 6139
    functionDepth: 1
    functionLinenumber: 6139
    functionLinenumberEnd: 6147
    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: 28
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-tool.c:6162,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-tool.c:6163,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:6164,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-tool.c:6164,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:6165,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:6166,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-tool.c:6167,1
    - Dst: fu_util_cmd_array_new
      Src: /src/fwupd/src/fu-tool.c:6167,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6179,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6187,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6195,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6203,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6211,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6219,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6227,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6235,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6243,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6251,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6259,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6267,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6275,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6283,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6291,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6299,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6306,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6314,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6322,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6330,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6338,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6347,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6356,1
    - Dst: N_
      Src: /src/fwupd/src/fu-tool.c:6364,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6371,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-tool.c:6377,1
    - Dst: setlocale
      Src: /src/fwupd/src/fu-tool.c:6380,1
    - Dst: bindtextdomain
      Src: /src/fwupd/src/fu-tool.c:6382,1
    - Dst: bind_textdomain_codeset
      Src: /src/fwupd/src/fu-tool.c:6383,1
    - Dst: textdomain
      Src: /src/fwupd/src/fu-tool.c:6384,1
    - Dst: g_set_prgname
      Src: /src/fwupd/src/fu-tool.c:6385,1
    - Dst: fu_util_get_prgname
      Src: /src/fwupd/src/fu-tool.c:6385,1
    - Dst: g_main_context_new
      Src: /src/fwupd/src/fu-tool.c:6389,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/src/fu-tool.c:6390,1
    - Dst: fu_console_new
      Src: /src/fwupd/src/fu-tool.c:6391,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-tool.c:6392,1
    - Dst: fu_console_set_main_context
      Src: /src/fwupd/src/fu-tool.c:6393,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-tool.c:6394,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/src/fu-tool.c:6397,1
    - Dst: fwupd_client_set_main_context
      Src: /src/fwupd/src/fu-tool.c:6398,1
    - Dst: fwupd_client_set_daemon_version
      Src: /src/fwupd/src/fu-tool.c:6399,1
    - Dst: fwupd_client_set_user_agent_for_package
      Src: /src/fwupd/src/fu-tool.c:6400,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:6401,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-tool.c:6401,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:6403,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:6405,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-tool.c:6405,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:6407,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-tool.c:6411,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:6412,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:6414,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:6416,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:6418,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6422,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6425,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6427,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6429,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6433,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6435,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6438,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6440,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6442,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6446,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6448,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6451,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6453,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6456,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6460,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6462,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6466,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6468,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6472,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6474,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6477,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6479,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6481,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6484,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6486,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6489,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6492,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6494,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6496,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6499,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6501,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6503,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6507,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6509,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6512,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6514,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6516,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6519,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6521,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6523,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6526,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6528,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6530,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6533,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6535,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6537,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6540,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6542,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6544,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6547,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6549,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6551,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6555,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6557,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6560,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6562,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6565,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6568,1
    - Dst: C_
      Src: /src/fwupd/src/fu-tool.c:6570,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6572,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6575,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6577,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6579,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6582,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6584,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6586,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6589,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6591,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6593,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6596,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6598,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6600,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6603,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6605,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6607,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6611,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6613,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6615,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6618,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6620,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6622,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6625,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6627,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6629,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6632,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6634,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6636,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6639,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6641,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6643,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6647,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6649,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6653,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6655,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6659,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6661,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6664,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6666,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6668,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6671,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6673,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6675,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6678,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6680,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6682,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6685,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6687,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6689,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6692,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6694,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6696,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6699,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6701,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6703,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6707,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6709,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6713,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6715,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6719,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6721,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6724,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6726,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6728,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6731,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6733,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6735,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6739,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6741,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6745,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6747,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6749,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6752,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6754,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6756,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6759,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6761,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6763,1
    - Dst: C_
      Src: /src/fwupd/src/fu-tool.c:6766,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6768,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6770,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6776,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6778,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6781,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6783,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6785,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6788,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6790,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6792,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6795,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6797,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6799,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6802,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6804,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6806,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6809,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6811,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6813,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6818,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6820,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6823,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6825,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6827,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6830,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6832,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6834,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6837,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6839,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6841,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6844,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6846,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6848,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6851,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6853,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6855,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6858,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6860,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6862,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6865,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6867,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6869,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6872,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6874,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6876,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6879,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6881,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6883,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6887,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6889,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6893,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6895,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6899,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6901,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6904,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6906,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6908,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6911,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6913,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6915,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6918,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6920,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6922,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6925,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6927,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6929,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6932,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6934,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6936,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6939,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6941,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6943,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6946,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6948,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6950,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6953,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6955,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6957,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6960,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6962,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6964,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6967,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6969,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6971,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6974,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6976,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6978,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6981,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6983,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-tool.c:6985,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6988,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:6990,1
    - Dst: g_cancellable_new
      Src: /src/fwupd/src/fu-tool.c:6994,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:6995,1
    - Dst: G_CANCELLABLE
      Src: /src/fwupd/src/fu-tool.c:6995,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:6997,1
    - Dst: fu_util_cmd_array_sort
      Src: /src/fwupd/src/fu-tool.c:7001,1
    - Dst: fu_util_setup_interactive
      Src: /src/fwupd/src/fu-tool.c:7004,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-tool.c:7005,1
    - Dst: fu_engine_request_set_feature_flags
      Src: /src/fwupd/src/fu-tool.c:7009,1
    - Dst: fu_engine_request_set_feature_flags
      Src: /src/fwupd/src/fu-tool.c:7016,1
    - Dst: fu_console_set_interactive
      Src: /src/fwupd/src/fu-tool.c:7023,1
    - Dst: g_option_context_new
      Src: /src/fwupd/src/fu-tool.c:7026,1
    - Dst: fu_util_cmd_array_to_string
      Src: /src/fwupd/src/fu-tool.c:7027,1
    - Dst: g_option_context_set_summary
      Src: /src/fwupd/src/fu-tool.c:7028,1
    - Dst: g_option_context_set_description
      Src: /src/fwupd/src/fu-tool.c:7029,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:7032,1
    - Dst: g_set_application_name
      Src: /src/fwupd/src/fu-tool.c:7036,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:7036,1
    - Dst: g_option_context_add_main_entries
      Src: /src/fwupd/src/fu-tool.c:7037,1
    - Dst: g_option_context_add_group
      Src: /src/fwupd/src/fu-tool.c:7038,1
    - Dst: fu_debug_get_option_group
      Src: /src/fwupd/src/fu-tool.c:7038,1
    - Dst: g_option_context_parse
      Src: /src/fwupd/src/fu-tool.c:7039,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:7041,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:7044,1
    - Dst: fu_progress_set_profile
      Src: /src/fwupd/src/fu-tool.c:7048,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/src/fu-tool.c:7048,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-tool.c:7052,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:7056,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-tool.c:7059,1
    - Dst: fu_util_parse_filter_device_flags
      Src: /src/fwupd/src/fu-tool.c:7064,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:7070,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:7070,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-tool.c:7071,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-tool.c:7072,1
    - Dst: fu_util_parse_filter_release_flags
      Src: /src/fwupd/src/fu-tool.c:7077,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-tool.c:7084,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:7084,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-tool.c:7085,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-tool.c:7086,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-tool.c:7108,1
    - Dst: fu_context_new
      Src: /src/fwupd/src/fu-tool.c:7111,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:7112,1
    - Dst: FU_CONTEXT
      Src: /src/fwupd/src/fu-tool.c:7112,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:7114,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/src/fu-tool.c:7116,1
    - Dst: fu_context_load_path_store
      Src: /src/fwupd/src/fu-tool.c:7117,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-tool.c:7118,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:7119,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:7119,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:7121,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:7123,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:7123,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:7125,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:7127,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:7127,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:7129,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-tool.c:7131,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-tool.c:7131,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-tool.c:7133,1
    - Dst: fu_jcat_context_new
      Src: /src/fwupd/src/fu-tool.c:7137,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-tool.c:7138,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-tool.c:7139,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-tool.c:7140,1
    - Dst: fu_jcat_context_add_public_keys
      Src: /src/fwupd/src/fu-tool.c:7143,1
    - Dst: fu_util_version
      Src: /src/fwupd/src/fu-tool.c:7148,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-tool.c:7149,1
    - Dst: fu_engine_add_plugin_filter
      Src: /src/fwupd/src/fu-tool.c:7157,1
    - Dst: fu_util_cmd_array_run
      Src: /src/fwupd/src/fu-tool.c:7160,1
    - Dst: g_critical
      Src: /src/fwupd/src/fu-tool.c:7165,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-tool.c:7169,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-tool.c:7171,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-tool.c:7172,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:7175,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-tool.c:7177,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-tool.c:7179,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-tool.c:7181,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-tool.c:7183,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-tool.c:7185,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-tool.c:7187,1
    - Dst: getuid
      Src: /src/fwupd/src/fu-tool.c:7192,1
    - Dst: geteuid
      Src: /src/fwupd/src/fu-tool.c:7192,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-tool.c:7193,1
    - Dst: _
      Src: /src/fwupd/src/fu-tool.c:7198,1
    - Dst: fu_progress_get_profile
      Src: /src/fwupd/src/fu-tool.c:7205,1
    - Dst: fu_progress_traceback
      Src: /src/fwupd/src/fu-tool.c:7206,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-tool.c:7208,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 235
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7213
      start: 6149
    functionDepth: 1
    functionLinenumber: 6149
    functionLinenumberEnd: 7213
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-tool.c
    functionUses: 1
    functionsReached:
    - fu_context_new
    - fu_util_version
    - g_critical
    - fu_context_add_flag
    - fu_console_set_interactive
    - g_setenv
    - textdomain
    - C_
    - g_option_context_add_main_entries
    - fu_util_parse_filter_release_flags
    - _
    - g_strdup_printf
    - fu_progress_new
    - g_cancellable_new
    - g_set_application_name
    - g_option_context_new
    - fu_util_cmd_array_run
    - geteuid
    - g_auto
    - fu_jcat_context_allow_blob_kind
    - fu_engine_new
    - fu_console_print
    - N_
    - fwupd_client_set_user_agent_for_package
    - g_new0
    - g_signal_connect
    - fu_context_load_path_store
    - fu_util_get_prgname
    - g_log_get_debug_enabled
    - bindtextdomain
    - fu_util_cmd_array_sort
    - fu_util_cmd_array_to_string
    - fu_engine_add_plugin_filter
    - fu_console_set_main_context
    - fu_util_parse_filter_device_flags
    - g_ptr_array_new_with_free_func
    - G_CANCELLABLE
    - g_option_context_parse
    - fu_progress_get_profile
    - fu_util_cmd_array_new
    - g_main_loop_new
    - g_info
    - FU_ENGINE
    - fu_jcat_context_new
    - fwupd_client_set_main_context
    - fu_progress_traceback
    - fu_console_new
    - fu_console_print_full
    - fu_console_print_literal
    - FWUPD_CLIENT
    - fu_util_setup_interactive
    - g_option_context_set_summary
    - bind_textdomain_codeset
    - fu_debug_get_option_group
    - g_set_prgname
    - fwupd_client_set_daemon_version
    - fu_engine_request_new
    - g_strdup
    - fu_util_print_error
    - fu_util_cmd_array_add
    - fwupd_client_new
    - getuid
    - g_option_context_add_group
    - g_main_context_new
    - fu_progress_set_profile
    - g_prefix_error
    - g_option_context_set_description
    - fu_engine_request_set_feature_flags
    - fu_jcat_context_add_public_keys
    - g_error_matches
    - G_CALLBACK
    - g_autoptr
    - setlocale
    - FU_CONTEXT
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_key_usage
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:26,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:30,1
    - Dst: X509_STORE_add_cert
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:38,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:39,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - crt
    - error
    argTypes:
    - FuJcatLibcryptoPkcs7Engine*
    - X509*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 49
    functionName: fu_jcat_libcrypto_pkcs7_engine_add_pubkey_x509
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - X509_STORE_add_cert
    - fu_jcat_libcrypto_get_errors
    - X509_get_key_usage
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jcat_libcrypto_pkcs7_engine_add_pubkey_x509(FuJcatLibcryptoPkcs7Engine
      *self,\n\t\t\t\t\t       X509 *crt,\n\t\t\t\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_LIBCRYPTO_PKCS7_ENGINE
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:56,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:57,1
    - Dst: fu_jcat_libcrypto_pkcs7_load_crt_from_blob_pem
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:59,1
    - Dst: fu_jcat_libcrypto_pkcs7_engine_add_pubkey_x509
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - engine
    - blob
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 63
    functionName: fu_jcat_libcrypto_pkcs7_engine_add_public_key_raw
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - FU_JCAT_LIBCRYPTO_PKCS7_ENGINE
    - fu_jcat_libcrypto_pkcs7_load_crt_from_blob_pem
    - fu_jcat_libcrypto_pkcs7_engine_add_pubkey_x509
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jcat_libcrypto_pkcs7_engine_add_public_key_raw(FuJcatEngine
      *engine,\n\t\t\t\t\t\t  GBytes *blob,\n\t\t\t\t\t\t  GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_LIBCRYPTO_PKCS7_ENGINE
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:70,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:71,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:74,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:75,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:75,1
    - Dst: fu_jcat_libcrypto_pkcs7_load_crt_from_blob_pem
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:78,1
    - Dst: fu_jcat_libcrypto_pkcs7_engine_add_pubkey_x509
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:81,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:83,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:84,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:84,1
    - Dst: fu_jcat_libcrypto_pkcs7_load_crt_from_blob_der
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:87,1
    - Dst: fu_jcat_libcrypto_pkcs7_engine_add_pubkey_x509
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:90,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:93,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:94,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - engine
    - filename
    - error
    argTypes:
    - FuJcatEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 98
    functionName: fu_jcat_libcrypto_pkcs7_engine_add_public_key
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - fu_bytes_get_contents
    - g_path_get_basename
    - g_debug
    - fu_jcat_libcrypto_pkcs7_load_crt_from_blob_der
    - g_str_has_suffix
    - fu_jcat_libcrypto_pkcs7_load_crt_from_blob_pem
    - FU_JCAT_LIBCRYPTO_PKCS7_ENGINE
    - fu_jcat_libcrypto_pkcs7_engine_add_pubkey_x509
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jcat_libcrypto_pkcs7_engine_add_public_key(FuJcatEngine
      *engine,\n\t\t\t\t\t      const gchar *filename,\n\t\t\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_LIBCRYPTO_PKCS7_ENGINE
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:103,1
    - Dst: X509_STORE_new
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:108,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:110,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - engine
    - error
    argTypes:
    - FuJcatEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 120
    functionName: fu_jcat_libcrypto_pkcs7_engine_setup
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - X509_STORE_new
    - FU_JCAT_LIBCRYPTO_PKCS7_ENGINE
    - fu_jcat_libcrypto_get_errors
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jcat_libcrypto_pkcs7_engine_setup(FuJcatEngine *engine,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get_current_cert
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:128,1
    - Dst: X509_STORE_CTX_get0_store
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:129,1
    - Dst: fu_jcat_libcrypto_x509_get_issuer_name
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:130,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:131,1
    - Dst: X509_STORE_get_ex_data
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:131,1
    - Dst: X509_STORE_set_ex_data
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:132,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ok
    - ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 137
    functionName: cms_verify_cb
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_get0_store
    - X509_STORE_get_ex_data
    - g_steal_pointer
    - g_free
    - fu_jcat_libcrypto_x509_get_issuer_name
    - X509_STORE_CTX_get_current_cert
    - X509_STORE_set_ex_data
    linkageType: ''
    returnType: int
    signature: int cms_verify_cb(int ok, X509_STORE_CTX *ctx)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_LIBCRYPTO_PKCS7_ENGINE
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:154,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:155,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:156,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:157,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:157,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:158,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:159,1
    - Dst: STACK_OF
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:161,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:164,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:166,1
    - Dst: BIO_new_mem_buf
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:173,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:173,1
    - Dst: PEM_read_bio_CMS
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:174,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:176,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:177,1
    - Dst: X509_STORE_new
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:189,1
    - Dst: X509_STORE_add_cert
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:190,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:191,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:192,1
    - Dst: sk_X509_new_null
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:199,1
    - Dst: sk_X509_push
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:200,1
    - Dst: X509_STORE_get0_param
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:206,1
    - Dst: X509_VERIFY_PARAM_set_purpose
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:208,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:212,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:213,1
    - Dst: X509_VERIFY_PARAM_clear_flags
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:215,1
    - Dst: X509_STORE_set_ex_data
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:220,1
    - Dst: X509_STORE_set_verify_cb
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:221,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:224,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:226,1
    - Dst: BIO_new_mem_buf
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:233,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:233,1
    - Dst: CMS_get0_SignerInfos
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:234,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:235,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:235,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:236,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:237,1
    - Dst: CMS_verify
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:243,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:244,1
    - Dst: X509_STORE_get_ex_data
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:245,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:247,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:255,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:264,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:265,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:266,1
    - Dst: CMS_signed_get_attr_by_NID
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:269,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:273,1
    - Dst: BIO_new
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:273,1
    - Dst: BIO_s_mem
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:273,1
    - Dst: BIO_set_flags
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:275,1
    - Dst: CMS_signed_get_attr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:278,1
    - Dst: X509_ATTRIBUTE_get0_type
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:280,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:286,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:287,1
    - Dst: ASN1_TIME_to_tm
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:296,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:297,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:298,1
    - Dst: timegm
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:307,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:309,1
    - Dst: CMS_SignerInfo_get0_signer_id
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:322,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:323,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:324,1
    - Dst: BIO_reset
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:332,1
    - Dst: X509_NAME_print_ex
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:333,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:334,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:335,1
    - Dst: BIO_write
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:344,1
    - Dst: BIO_get_mem_data
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:345,1
    - Dst: g_string_assign
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:346,1
    - Dst: FU_JCAT_RESULT
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:351,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:351,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 109
    argCount: 6
    argNames:
    - engine
    - blob
    - blob_signature
    - crt
    - flags
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - GBytes*
    - X509*
    - FuJcatVerifyFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 359
    functionName: fu_jcat_libcrypto_pkcs7_engine_verify
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - X509_STORE_get0_param
    - CMS_signed_get_attr_by_NID
    - g_object_new
    - g_autoptr
    - BIO_s_mem
    - sk_CMS_SignerInfo_num
    - sk_X509_push
    - sk_CMS_SignerInfo_value
    - g_debug
    - X509_ATTRIBUTE_get0_type
    - g_set_error_literal
    - CMS_get0_SignerInfos
    - X509_STORE_get_ex_data
    - BIO_reset
    - FU_JCAT_RESULT
    - g_string_assign
    - fu_jcat_libcrypto_get_errors
    - g_string_new
    - BIO_new_mem_buf
    - CMS_SignerInfo_get0_signer_id
    - X509_STORE_new
    - CMS_verify
    - X509_STORE_add_cert
    - ASN1_TIME_to_tm
    - g_bytes_get_data
    - X509_STORE_set_verify_cb
    - BIO_write
    - FU_JCAT_LIBCRYPTO_PKCS7_ENGINE
    - CMS_signed_get_attr
    - BIO_get_mem_data
    - STACK_OF
    - X509_VERIFY_PARAM_set_flags
    - X509_STORE_set_ex_data
    - BIO_new
    - g_set_error
    - timegm
    - PEM_read_bio_CMS
    - X509_NAME_print_ex
    - g_bytes_get_size
    - BIO_set_flags
    - X509_VERIFY_PARAM_clear_flags
    - sk_X509_new_null
    - X509_VERIFY_PARAM_set_purpose
    linkageType: ''
    returnType: FuJcatResult
    signature: "FuJcatResult *\nfu_jcat_libcrypto_pkcs7_engine_verify(FuJcatEngine
      *engine,\n\t\t\t\t      GBytes *blob,\n\t\t\t\t      GBytes *blob_signature,\n\t\t\t\t
      \     X509 *crt,\n\t\t\t\t      FuJcatVerifyFlags flags,\n\t\t\t\t      GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:369,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:370,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:373,1
    - Dst: fu_jcat_engine_get_keyring_path
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:373,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:374,1
    - Dst: fu_jcat_libcrypto_pkcs7_load_crt_from_blob_pem
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:377,1
    - Dst: fu_jcat_libcrypto_pkcs7_engine_verify
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - engine
    - blob
    - blob_signature
    - flags
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - GBytes*
    - FuJcatVerifyFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 387
    functionName: fu_jcat_libcrypto_pkcs7_engine_self_verify
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - fu_bytes_get_contents
    - fu_jcat_libcrypto_pkcs7_engine_verify
    - fu_jcat_libcrypto_pkcs7_load_crt_from_blob_pem
    - fu_jcat_engine_get_keyring_path
    - g_autoptr
    - g_build_filename
    linkageType: ''
    returnType: FuJcatResult
    signature: "FuJcatResult *\nfu_jcat_libcrypto_pkcs7_engine_self_verify(FuJcatEngine
      *engine,\n\t\t\t\t\t   GBytes *blob,\n\t\t\t\t\t   GBytes *blob_signature,\n\t\t\t\t\t
      \  FuJcatVerifyFlags flags,\n\t\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_jcat_libcrypto_pkcs7_engine_verify
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - engine
    - blob
    - blob_signature
    - flags
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - GBytes*
    - FuJcatVerifyFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 402
    functionName: fu_jcat_libcrypto_pkcs7_engine_pubkey_verify
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - fu_jcat_libcrypto_pkcs7_engine_verify
    linkageType: ''
    returnType: FuJcatResult
    signature: "FuJcatResult *\nfu_jcat_libcrypto_pkcs7_engine_pubkey_verify(FuJcatEngine
      *engine,\n\t\t\t\t\t     GBytes *blob,\n\t\t\t\t\t     GBytes *blob_signature,\n\t\t\t\t\t
      \    FuJcatVerifyFlags flags,\n\t\t\t\t\t     GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:414,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:415,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:416,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:417,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:418,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:421,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:422,1
    - Dst: fu_jcat_libcrypto_pkcs7_load_privkey_from_blob_pem
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:427,1
    - Dst: fu_jcat_libcrypto_pkcs7_load_crt_from_blob_pem
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:430,1
    - Dst: OPENSSL_VERSION_PREREQ
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:439,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:442,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:452,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:453,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:457,1
    - Dst: BIO_new_mem_buf
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:460,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:460,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:460,1
    - Dst: CMS_sign
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:461,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:463,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:464,1
    - Dst: BIO_new
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:472,1
    - Dst: BIO_s_mem
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:472,1
    - Dst: PEM_ASN1_write_bio
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:476,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:485,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:486,1
    - Dst: BIO_write
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:495,1
    - Dst: BIO_get_mem_data
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:496,1
    - Dst: fwupd_jcat_blob_new_utf8
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:498,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 6
    argNames:
    - engine
    - blob
    - cert
    - privkey
    - flags
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - GBytes*
    - GBytes*
    - FuJcatSignFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 499
    functionName: fu_jcat_libcrypto_pkcs7_engine_pubkey_sign
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - fu_jcat_libcrypto_pkcs7_load_privkey_from_blob_pem
    - BIO_new
    - OPENSSL_VERSION_PREREQ
    - g_set_error
    - g_bytes_get_data
    - g_set_error_literal
    - fu_jcat_libcrypto_pkcs7_load_crt_from_blob_pem
    - BIO_write
    - PEM_ASN1_write_bio
    - fu_jcat_libcrypto_get_errors
    - BIO_new_mem_buf
    - g_bytes_get_size
    - CMS_sign
    - BIO_get_mem_data
    - g_autoptr
    - fwupd_jcat_blob_new_utf8
    - BIO_s_mem
    linkageType: ''
    returnType: FwupdJcatBlob
    signature: "FwupdJcatBlob *\nfu_jcat_libcrypto_pkcs7_engine_pubkey_sign(FuJcatEngine
      *engine,\n\t\t\t\t\t   GBytes *blob,\n\t\t\t\t\t   GBytes *cert,\n\t\t\t\t\t
      \  GBytes *privkey,\n\t\t\t\t\t   FuJcatSignFlags flags,\n\t\t\t\t\t   GError
      **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:509,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:510,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:514,1
    - Dst: fu_jcat_engine_get_keyring_path
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:514,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:515,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:516,1
    - Dst: fu_jcat_libcrypto_pkcs7_create_private_key
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:520,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:523,1
    - Dst: fu_bytes_set_contents_full
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:525,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:531,1
    - Dst: fu_jcat_engine_get_keyring_path
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:531,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:532,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:533,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:537,1
    - Dst: fu_jcat_libcrypto_pkcs7_load_privkey_from_blob_pem
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:538,1
    - Dst: fu_jcat_libcrypto_pkcs7_create_client_certificate
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:541,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:544,1
    - Dst: fu_bytes_set_contents_full
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:546,1
    - Dst: fu_jcat_libcrypto_pkcs7_engine_pubkey_sign
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:551,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 4
    argNames:
    - engine
    - blob
    - flags
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - FuJcatSignFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 557
    functionName: fu_jcat_libcrypto_pkcs7_engine_self_sign
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - fu_bytes_get_contents
    - fu_bytes_set_contents_full
    - fu_jcat_libcrypto_pkcs7_load_privkey_from_blob_pem
    - fu_jcat_libcrypto_pkcs7_create_client_certificate
    - fu_jcat_libcrypto_pkcs7_create_private_key
    - fu_jcat_libcrypto_pkcs7_engine_pubkey_sign
    - fu_jcat_engine_get_keyring_path
    - g_file_test
    - g_autoptr
    - g_build_filename
    - fu_path_mkdir_parent
    linkageType: ''
    returnType: FwupdJcatBlob
    signature: "FwupdJcatBlob *\nfu_jcat_libcrypto_pkcs7_engine_self_sign(FuJcatEngine
      *engine,\n\t\t\t\t\t GBytes *blob,\n\t\t\t\t\t FuJcatSignFlags flags,\n\t\t\t\t\t
      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_LIBCRYPTO_PKCS7_ENGINE
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:562,1
    - Dst: X509_STORE_free
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:564,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 567
    functionName: fu_jcat_libcrypto_pkcs7_engine_finalize
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - FU_JCAT_LIBCRYPTO_PKCS7_ENGINE
    - G_OBJECT_CLASS
    - X509_STORE_free
    linkageType: ''
    returnType: void
    signature: void fu_jcat_libcrypto_pkcs7_engine_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:572,1
    - Dst: FU_JCAT_ENGINE_CLASS
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJcatLibcryptoPkcs7EngineClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 582
    functionName: fu_jcat_libcrypto_pkcs7_engine_class_init
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - FU_JCAT_ENGINE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_jcat_libcrypto_pkcs7_engine_class_init(FuJcatLibcryptoPkcs7EngineClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJcatLibcryptoPkcs7Engine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 587
    functionName: fu_jcat_libcrypto_pkcs7_engine_init
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_jcat_libcrypto_pkcs7_engine_init(FuJcatLibcryptoPkcs7Engine
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:592,1
    - Dst: FU_IS_JCAT_CONTEXT
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:592,1
    - Dst: FU_JCAT_ENGINE
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:593,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - FuJcatContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 601
    functionName: fu_jcat_libcrypto_pkcs7_engine_new
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_JCAT_ENGINE
    - FU_IS_JCAT_CONTEXT
    - g_object_new
    linkageType: ''
    returnType: FuJcatEngine
    signature: 'FuJcatEngine *

      fu_jcat_libcrypto_pkcs7_engine_new(FuJcatContext *context)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_free
      Src: /src/fwupd/src/fu-jcat-gnutls-common.h:21,1
    - Dst: gnutls_free
      Src: /src/fwupd/src/fu-jcat-gnutls-common.h:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - gnutls_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: _gnutls_datum_deinit
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-common.h
    functionUses: 0
    functionsReached:
    - gnutls_free
    linkageType: ''
    returnType: void
    signature: void _gnutls_datum_deinit(gnutls_datum_t *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_x509_trust_list_deinit
      Src: /src/fwupd/src/fu-jcat-gnutls-common.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tl
    argTypes:
    - gnutls_x509_trust_list_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: _gnutls_x509_trust_list_deinit
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-common.h
    functionUses: 0
    functionsReached:
    - gnutls_x509_trust_list_deinit
    linkageType: ''
    returnType: void
    signature: void _gnutls_x509_trust_list_deinit(gnutls_x509_trust_list_t tl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_compare
      Src: /src/fwupd/src/fu-release-test.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: fu_release_compare_func_cb
    functionSourceFile: /src/fwupd/src/fu-release-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-release-test.c:29,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-release-test.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:30,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-release-test.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:31,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-release-test.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:32,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-release-test.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:33,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-release-test.c:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:34,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-release-test.c:34,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:35,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-release-test.c:35,1
    - Dst: fu_device_set_order
      Src: /src/fwupd/src/fu-release-test.c:37,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-release-test.c:38,1
    - Dst: fu_release_set_priority
      Src: /src/fwupd/src/fu-release-test.c:39,1
    - Dst: fu_release_set_branch
      Src: /src/fwupd/src/fu-release-test.c:40,1
    - Dst: fu_device_set_order
      Src: /src/fwupd/src/fu-release-test.c:42,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-release-test.c:43,1
    - Dst: fu_release_set_priority
      Src: /src/fwupd/src/fu-release-test.c:44,1
    - Dst: fu_release_set_branch
      Src: /src/fwupd/src/fu-release-test.c:45,1
    - Dst: fu_device_set_order
      Src: /src/fwupd/src/fu-release-test.c:47,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-release-test.c:48,1
    - Dst: fu_release_set_priority
      Src: /src/fwupd/src/fu-release-test.c:49,1
    - Dst: fu_release_set_branch
      Src: /src/fwupd/src/fu-release-test.c:50,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-release-test.c:52,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-release-test.c:53,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-release-test.c:54,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-release-test.c:57,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-release-test.c:58,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-release-test.c:59,1
    - Dst: fu_release_get_branch
      Src: /src/fwupd/src/fu-release-test.c:59,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release-test.c:59,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-release-test.c:60,1
    - Dst: fu_release_get_branch
      Src: /src/fwupd/src/fu-release-test.c:60,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release-test.c:60,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-release-test.c:61,1
    - Dst: fu_release_get_branch
      Src: /src/fwupd/src/fu-release-test.c:61,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release-test.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 62
    functionName: fu_release_compare_func
    functionSourceFile: /src/fwupd/src/fu-release-test.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_sort
    - fu_device_set_order
    - fu_release_set_branch
    - g_ptr_array_new
    - fu_release_new
    - fu_release_set_device
    - g_ptr_array_add
    - g_assert_cmpint
    - fu_release_set_priority
    - g_assert_cmpstr
    - g_autoptr
    - fu_release_get_branch
    - g_ptr_array_index
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_release_compare_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_uri_get_scheme
      Src: /src/fwupd/src/fu-release-test.c:78,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-release-test.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 81
    functionName: fu_release_uri_scheme_func
    functionSourceFile: /src/fwupd/src/fu-release-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-release-test.c:90,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-release-test.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:91,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-release-test.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:92,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-release-test.c:92,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:93,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-release-test.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:94,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-release-test.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:96,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:97,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-release-test.c:97,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:98,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/src/fu-release-test.c:98,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:99,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-release-test.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:102,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-release-test.c:102,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-release-test.c:105,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-release-test.c:106,1
    - Dst: fwupd_remote_set_id
      Src: /src/fwupd/src/fu-release-test.c:109,1
    - Dst: fu_engine_add_remote
      Src: /src/fwupd/src/fu-release-test.c:110,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-release-test.c:113,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-release-test.c:114,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-release-test.c:115,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-release-test.c:118,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-release-test.c:119,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-release-test.c:120,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-release-test.c:121,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-release-test.c:122,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/src/fu-release-test.c:123,1
    - Dst: xb_builder_source_set_info
      Src: /src/fwupd/src/fu-release-test.c:124,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-release-test.c:125,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-release-test.c:126,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-release-test.c:127,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-release-test.c:128,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-release-test.c:129,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-release-test.c:132,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-release-test.c:133,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-release-test.c:134,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-release-test.c:135,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-release-test.c:136,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-release-test.c:137,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-release-test.c:138,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-release-test.c:139,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-release-test.c:140,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-release-test.c:143,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-release-test.c:144,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-release-test.c:145,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-release-test.c:146,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release-test.c:147,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-release-test.c:148,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-release-test.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 149
    functionName: fu_release_trusted_report_func
    functionSourceFile: /src/fwupd/src/fu-release-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - xb_builder_compile
    - xb_builder_source_new
    - fu_device_set_version
    - fwupd_remote_new
    - xb_builder_node_insert_text
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_engine_new
    - g_ptr_array_index
    - fu_device_new
    - fu_device_add_instance_id
    - xb_builder_import_source
    - g_assert_cmpint
    - fu_engine_set_silo
    - g_file_new_for_path
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_device_build_vendor_id_u16
    - xb_builder_node_new
    - fu_engine_load
    - fwupd_remote_set_id
    - fu_engine_add_remote
    - fu_device_set_id
    - xb_builder_source_set_info
    - fu_engine_request_new
    - xb_builder_source_load_file
    - fu_context_set_path
    - fu_engine_get_releases_for_device
    - g_assert_no_error
    - fwupd_release_has_flag
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - xb_builder_new
    linkageType: ''
    returnType: void
    signature: void fu_release_trusted_report_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:157,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-release-test.c:157,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:158,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-release-test.c:158,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:159,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-release-test.c:159,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:160,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-release-test.c:160,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:161,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:162,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:163,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-release-test.c:163,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:164,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-release-test.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:165,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:166,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:167,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-release-test.c:167,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-release-test.c:170,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-release-test.c:171,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-release-test.c:172,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-release-test.c:175,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-release-test.c:176,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-release-test.c:177,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-release-test.c:178,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-release-test.c:179,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-release-test.c:180,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-release-test.c:181,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-release-test.c:182,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-release-test.c:183,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-release-test.c:184,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-release-test.c:187,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-release-test.c:188,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-release-test.c:189,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-release-test.c:190,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-release-test.c:191,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-release-test.c:192,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-release-test.c:193,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-release-test.c:194,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-release-test.c:195,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-release-test.c:198,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-release-test.c:199,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-release-test.c:200,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-release-test.c:201,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release-test.c:202,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-release-test.c:203,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-release-test.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 204
    functionName: fu_release_trusted_report_oem_func
    functionSourceFile: /src/fwupd/src/fu-release-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - xb_builder_compile
    - xb_builder_source_new
    - fu_device_set_version
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_engine_new
    - g_ptr_array_index
    - fu_device_new
    - fu_device_add_instance_id
    - xb_builder_import_source
    - g_assert_cmpint
    - fu_engine_set_silo
    - g_file_new_for_path
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_device_build_vendor_id_u16
    - fu_engine_load
    - fu_device_set_id
    - fu_engine_request_new
    - xb_builder_source_load_file
    - fu_engine_get_releases_for_device
    - g_assert_no_error
    - fwupd_release_has_flag
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - xb_builder_new
    linkageType: ''
    returnType: void
    signature: void fu_release_trusted_report_oem_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:213,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-release-test.c:213,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:214,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-release-test.c:214,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:215,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-release-test.c:215,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:216,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-release-test.c:216,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:217,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:218,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:219,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-release-test.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:220,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-release-test.c:220,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:222,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:223,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-release-test.c:223,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-release-test.c:226,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-release-test.c:227,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-release-test.c:230,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-release-test.c:231,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-release-test.c:232,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-release-test.c:235,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-release-test.c:236,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-release-test.c:237,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-release-test.c:238,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-release-test.c:239,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-release-test.c:240,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-release-test.c:241,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-release-test.c:242,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-release-test.c:243,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-release-test.c:244,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-release-test.c:247,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-release-test.c:248,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-release-test.c:249,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-release-test.c:250,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-release-test.c:251,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-release-test.c:252,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-release-test.c:253,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-release-test.c:254,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-release-test.c:255,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-release-test.c:258,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-release-test.c:259,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-release-test.c:260,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-release-test.c:261,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release-test.c:262,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-release-test.c:263,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-release-test.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 264
    functionName: fu_release_no_trusted_report_upgrade_func
    functionSourceFile: /src/fwupd/src/fu-release-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - xb_builder_compile
    - xb_builder_source_new
    - fu_device_set_version
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_engine_new
    - g_ptr_array_index
    - fu_device_new
    - fu_device_add_instance_id
    - xb_builder_import_source
    - g_assert_cmpint
    - fu_engine_set_silo
    - g_file_new_for_path
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_device_build_vendor_id_u16
    - fu_engine_load
    - fu_device_set_id
    - g_assert_false
    - fu_engine_request_new
    - xb_builder_source_load_file
    - fu_context_set_path
    - fu_engine_get_releases_for_device
    - g_assert_no_error
    - fwupd_release_has_flag
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - xb_builder_new
    linkageType: ''
    returnType: void
    signature: void fu_release_no_trusted_report_upgrade_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:272,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-release-test.c:272,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:273,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-release-test.c:273,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:274,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-release-test.c:274,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:275,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-release-test.c:275,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:276,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:277,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:278,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-release-test.c:278,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:279,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-release-test.c:279,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:280,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:281,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release-test.c:282,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-release-test.c:282,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-release-test.c:285,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-release-test.c:286,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-release-test.c:287,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-release-test.c:290,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-release-test.c:291,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-release-test.c:292,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-release-test.c:293,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-release-test.c:294,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-release-test.c:295,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-release-test.c:296,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-release-test.c:297,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-release-test.c:298,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-release-test.c:299,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-release-test.c:302,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-release-test.c:303,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-release-test.c:304,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-release-test.c:305,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-release-test.c:306,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-release-test.c:307,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-release-test.c:308,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-release-test.c:309,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-release-test.c:310,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-release-test.c:313,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-release-test.c:314,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-release-test.c:315,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-release-test.c:316,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release-test.c:317,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-release-test.c:318,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-release-test.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 319
    functionName: fu_release_no_trusted_report_func
    functionSourceFile: /src/fwupd/src/fu-release-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - xb_builder_compile
    - xb_builder_source_new
    - fu_device_set_version
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_engine_new
    - g_ptr_array_index
    - fu_device_new
    - fu_device_add_instance_id
    - xb_builder_import_source
    - g_assert_cmpint
    - fu_engine_set_silo
    - g_file_new_for_path
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_device_build_vendor_id_u16
    - fu_engine_load
    - fu_device_set_id
    - g_assert_false
    - fu_engine_request_new
    - xb_builder_source_load_file
    - fu_engine_get_releases_for_device
    - g_assert_no_error
    - fwupd_release_has_flag
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - xb_builder_new
    linkageType: ''
    returnType: void
    signature: void fu_release_no_trusted_report_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-release-test.c:324,1
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-release-test.c:325,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-release-test.c:326,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-release-test.c:327,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-release-test.c:328,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-release-test.c:329,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-release-test.c:330,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-release-test.c:332,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-release-test.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 334
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-release-test.c
    functionUses: 1
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    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:60,1
    - Dst: fu_daemon_schedule_housekeeping
      Src: /src/fwupd/src/fu-dbus-daemon.c:67,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - engine
    - self
    argTypes:
    - FuEngine*
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 68
    functionName: fu_dbus_daemon_engine_changed_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_schedule_housekeeping
    - FU_DAEMON
    - g_dbus_connection_emit_signal
    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:78,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-dbus-daemon.c:78,1
    - Dst: g_dbus_connection_emit_signal
      Src: /src/fwupd/src/fu-dbus-daemon.c:79,1
    - Dst: g_variant_new_tuple
      Src: /src/fwupd/src/fu-dbus-daemon.c:84,1
    - Dst: fu_daemon_schedule_housekeeping
      Src: /src/fwupd/src/fu-dbus-daemon.c:86,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - engine
    - device
    - self
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 87
    functionName: fu_dbus_daemon_engine_device_added_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - fu_daemon_schedule_housekeeping
    - fwupd_codec_to_variant
    - g_dbus_connection_emit_signal
    - FU_DAEMON
    - g_variant_new_tuple
    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:97,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-dbus-daemon.c:97,1
    - Dst: g_dbus_connection_emit_signal
      Src: /src/fwupd/src/fu-dbus-daemon.c:98,1
    - Dst: g_variant_new_tuple
      Src: /src/fwupd/src/fu-dbus-daemon.c:103,1
    - Dst: fu_daemon_schedule_housekeeping
      Src: /src/fwupd/src/fu-dbus-daemon.c:105,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - engine
    - device
    - self
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 106
    functionName: fu_dbus_daemon_engine_device_removed_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - fu_daemon_schedule_housekeeping
    - fwupd_codec_to_variant
    - g_dbus_connection_emit_signal
    - FU_DAEMON
    - g_variant_new_tuple
    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:116,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-dbus-daemon.c:116,1
    - Dst: g_dbus_connection_emit_signal
      Src: /src/fwupd/src/fu-dbus-daemon.c:117,1
    - Dst: g_variant_new_tuple
      Src: /src/fwupd/src/fu-dbus-daemon.c:122,1
    - Dst: fu_daemon_schedule_housekeeping
      Src: /src/fwupd/src/fu-dbus-daemon.c:124,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - engine
    - device
    - self
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 125
    functionName: fu_dbus_daemon_engine_device_changed_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - fu_daemon_schedule_housekeeping
    - fwupd_codec_to_variant
    - g_dbus_connection_emit_signal
    - FU_DAEMON
    - g_variant_new_tuple
    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:135,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-dbus-daemon.c:135,1
    - Dst: g_dbus_connection_emit_signal
      Src: /src/fwupd/src/fu-dbus-daemon.c:136,1
    - Dst: g_variant_new_tuple
      Src: /src/fwupd/src/fu-dbus-daemon.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - engine
    - request
    - self
    argTypes:
    - FuEngine*
    - FwupdRequest*
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 143
    functionName: fu_dbus_daemon_engine_device_request_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - g_variant_new_tuple
    - fwupd_codec_to_variant
    - g_dbus_connection_emit_signal
    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:155,1
    - Dst: g_variant_ref_sink
      Src: /src/fwupd/src/fu-dbus-daemon.c:155,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/src/fu-dbus-daemon.c:160,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/src/fu-dbus-daemon.c:160,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/src/fu-dbus-daemon.c:161,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:162,1
    - Dst: g_dbus_connection_emit_signal
      Src: /src/fwupd/src/fu-dbus-daemon.c:163,1
    - Dst: g_variant_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:169,1
    - Dst: g_variant_builder_clear
      Src: /src/fwupd/src/fu-dbus-daemon.c:171,1
    - Dst: g_variant_builder_clear
      Src: /src/fwupd/src/fu-dbus-daemon.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - self
    - property_name
    - property_value
    argTypes:
    - FuDbusDaemon*
    - gchar*
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 173
    functionName: fu_dbus_daemon_emit_property_changed
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_variant_ref_sink
    - g_variant_builder_add
    - g_variant_unref
    - g_variant_builder_init
    - g_variant_new
    - G_VARIANT_TYPE
    - g_dbus_connection_emit_signal
    - g_variant_builder_clear
    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:183,1
    - Dst: fwupd_status_to_string
      Src: /src/fwupd/src/fu-dbus-daemon.c:183,1
    - Dst: fu_dbus_daemon_emit_property_changed
      Src: /src/fwupd/src/fu-dbus-daemon.c:184,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/src/fu-dbus-daemon.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - status
    argTypes:
    - FuDbusDaemon*
    - FwupdStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 185
    functionName: fu_dbus_daemon_set_status
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_variant_new_uint32
    - fu_dbus_daemon_emit_property_changed
    - fwupd_status_to_string
    - g_debug
    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:190,1
    - Dst: fu_daemon_stop
      Src: /src/fwupd/src/fu-dbus-daemon.c:194,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - engine
    - status
    - self
    argTypes:
    - FuEngine*
    - FwupdStatus
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 195
    functionName: fu_dbus_daemon_engine_status_changed_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - FU_DAEMON
    - fu_dbus_daemon_set_status
    - fu_daemon_stop
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_engine_status_changed_cb(FuEngine *engine, FwupdStatus
      status, FuDbusDaemon *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:200,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:200,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:203,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:204,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:204,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:205,1
    - Dst: g_dbus_connection_get_peer_credentials
      Src: /src/fwupd/src/fu-dbus-daemon.c:211,1
    - Dst: g_credentials_get_unix_user
      Src: /src/fwupd/src/fu-dbus-daemon.c:213,1
    - Dst: fu_engine_is_uid_trusted
      Src: /src/fwupd/src/fu-dbus-daemon.c:216,1
    - Dst: fu_engine_request_set_converter_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:220,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:221,1
    - Dst: fu_client_list_get_by_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:225,1
    - Dst: fu_client_lookup_hint
      Src: /src/fwupd/src/fu-dbus-daemon.c:227,1
    - Dst: fu_engine_request_set_locale
      Src: /src/fwupd/src/fu-dbus-daemon.c:229,1
    - Dst: fu_engine_request_set_feature_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:230,1
    - Dst: fu_client_get_feature_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:230,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:235,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/src/fu-dbus-daemon.c:241,1
    - Dst: g_variant_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:243,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:249,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:252,1
    - Dst: fu_engine_is_uid_trusted
      Src: /src/fwupd/src/fu-dbus-daemon.c:253,1
    - Dst: fu_engine_request_set_converter_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:255,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:258,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - self
    - sender
    - error
    argTypes:
    - FuDbusDaemon*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 259
    functionName: fu_dbus_daemon_create_request
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_client_lookup_hint
    - fu_engine_request_set_locale
    - g_object_ref
    - g_credentials_get_unix_user
    - g_variant_new
    - FU_DAEMON
    - fu_engine_request_set_converter_flags
    - fu_client_list_get_by_sender
    - g_dbus_connection_get_peer_credentials
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_engine_is_uid_trusted
    - fu_daemon_get_engine
    - g_dbus_proxy_call_sync
    - fu_client_get_feature_flags
    - g_variant_get
    - fu_engine_request_new
    - fu_engine_request_set_feature_flags
    - g_autoptr
    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:267,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:267,1
    - Dst: fu_engine_request_get_converter_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:268,1
    - Dst: fu_engine_config_get_show_device_private
      Src: /src/fwupd/src/fu-dbus-daemon.c:269,1
    - Dst: fu_engine_get_config
      Src: /src/fwupd/src/fu-dbus-daemon.c:269,1
    - Dst: fwupd_codec_array_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - request
    - devices
    - error
    argTypes:
    - FuDbusDaemon*
    - FuEngineRequest*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 272
    functionName: fu_dbus_daemon_device_array_to_variant
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_engine_get_config
    - fwupd_codec_array_to_variant
    - fu_engine_config_get_show_device_private
    - FU_DAEMON
    - fu_engine_request_get_converter_flags
    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:302,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:305,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:307,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:309,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:311,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:313,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:315,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:317,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:319,1
    - Dst: g_clear_signal_handler
      Src: /src/fwupd/src/fu-dbus-daemon.c:321,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:323,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-dbus-daemon.c:324,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-dbus-daemon.c:325,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-dbus-daemon.c:326,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-dbus-daemon.c:327,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-dbus-daemon.c:328,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:329,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:331,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-dbus-daemon.c:332,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuMainAuthHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 333
    functionName: fu_dbus_daemon_auth_helper_free
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_set_status
    - g_clear_signal_handler
    - g_ptr_array_unref
    - g_object_unref
    - g_free
    - g_hash_table_unref
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_auth_helper_free(FuMainAuthHelper *helper)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-dbus-daemon.c:338,1
    - Dst: g_dbus_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - invocation
    - error
    argTypes:
    - GDBusMethodInvocation*
    - GError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 340
    functionName: fu_dbus_daemon_method_invocation_return_gerror
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fwupd_error_convert
    - g_dbus_method_invocation_return_gerror
    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:350,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:351,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:352,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:352,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:355,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:355,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:356,1
    - Dst: fu_engine_unlock
      Src: /src/fwupd/src/fu-dbus-daemon.c:361,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:362,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 368
    functionName: fu_dbus_daemon_authorize_unlock_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_polkit_authority_check_finish
    - fu_engine_unlock
    - fu_dbus_daemon_method_invocation_return_gerror
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    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:375,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:376,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:377,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:378,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:378,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-dbus-daemon.c:379,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:383,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:383,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:384,1
    - Dst: fu_context_get_bios_settings
      Src: /src/fwupd/src/fu-dbus-daemon.c:389,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:390,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-dbus-daemon.c:390,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 392
    functionName: fu_dbus_daemon_authorize_get_bios_settings_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - FWUPD_CODEC
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - fwupd_codec_to_variant
    - FU_POLKIT_AUTHORITY
    - g_dbus_method_invocation_return_value
    - fu_context_get_bios_settings
    - FU_DAEMON
    - fu_engine_get_context
    - g_autoptr
    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:399,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:400,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:401,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:401,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:404,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:404,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:405,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-dbus-daemon.c:410,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:411,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 416
    functionName: fu_dbus_daemon_authorize_set_bios_settings_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - FU_POLKIT_AUTHORITY
    - g_dbus_method_invocation_return_value
    - FU_DAEMON
    - fu_engine_modify_bios_settings
    - g_autoptr
    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:423,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:424,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:425,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:425,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:428,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:428,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:429,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:435,1
    - Dst: fu_engine_add_approved_firmware
      Src: /src/fwupd/src/fu-dbus-daemon.c:436,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 439
    functionName: fu_dbus_daemon_authorize_set_approved_firmware_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_polkit_authority_check_finish
    - fu_engine_add_approved_firmware
    - fu_dbus_daemon_method_invocation_return_gerror
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - g_ptr_array_index
    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:446,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:447,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:448,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:448,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:451,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:451,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:452,1
    - Dst: fu_engine_fix_host_security_attr
      Src: /src/fwupd/src/fu-dbus-daemon.c:457,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:458,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 462
    functionName: fu_dbus_daemon_authorize_fix_host_security_attr_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - fu_engine_fix_host_security_attr
    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:469,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:470,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:471,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:471,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:474,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:474,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:475,1
    - Dst: fu_engine_undo_host_security_attr
      Src: /src/fwupd/src/fu-dbus-daemon.c:480,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:481,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 485
    functionName: fu_dbus_daemon_authorize_undo_host_security_attr_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - fu_engine_undo_host_security_attr
    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:490,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:492,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:493,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:493,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:496,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:496,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:497,1
    - Dst: fu_engine_self_sign
      Src: /src/fwupd/src/fu-dbus-daemon.c:502,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:504,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:509,1
    - Dst: g_variant_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 510
    functionName: fu_dbus_daemon_authorize_self_sign_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_polkit_authority_check_finish
    - fu_engine_self_sign
    - fu_dbus_daemon_method_invocation_return_gerror
    - FU_POLKIT_AUTHORITY
    - g_variant_new
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    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:515,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:516,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:517,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:517,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:520,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:520,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:521,1
    - Dst: fu_engine_modify_config
      Src: /src/fwupd/src/fu-dbus-daemon.c:525,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:526,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 532
    functionName: fu_dbus_daemon_modify_config_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - FU_POLKIT_AUTHORITY
    - fu_engine_modify_config
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    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:537,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:538,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:539,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:539,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:542,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:542,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:543,1
    - Dst: fu_engine_reset_config
      Src: /src/fwupd/src/fu-dbus-daemon.c:546,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:547,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:552,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 553
    functionName: fu_dbus_daemon_reset_config_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - fu_engine_reset_config
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_reset_config_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_percentage_delta_notify
      Src: /src/fwupd/src/fu-dbus-daemon.c:560,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:563,1
    - Dst: fu_dbus_daemon_emit_property_changed
      Src: /src/fwupd/src/fu-dbus-daemon.c:564,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/src/fu-dbus-daemon.c:567,1
    - Dst: fwupd_percentage_is_valid
      Src: /src/fwupd/src/fu-dbus-daemon.c:567,1
    - Dst: fu_dbus_daemon_emit_property_changed
      Src: /src/fwupd/src/fu-dbus-daemon.c:569,1
    - Dst: g_variant_new_double
      Src: /src/fwupd/src/fu-dbus-daemon.c:571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - progress
    - percentage
    - self
    argTypes:
    - FuProgress*
    - gdouble
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 573
    functionName: fu_dbus_daemon_progress_percentage_changed_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fwupd_percentage_is_valid
    - g_debug
    - g_variant_new_double
    - fu_dbus_daemon_emit_property_changed
    - fwupd_percentage_delta_notify
    - g_variant_new_uint32
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_progress_percentage_changed_cb(FuProgress *progress,\n\t\t\t\t\t
      \     gdouble 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:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - progress
    - status
    - self
    argTypes:
    - FuProgress*
    - FwupdStatus
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 581
    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:586,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:587,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:588,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:588,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:589,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:589,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:592,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:592,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:593,1
    - Dst: fu_progress_set_profile
      Src: /src/fwupd/src/fu-dbus-daemon.c:598,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/src/fu-dbus-daemon.c:598,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:599,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/src/fu-dbus-daemon.c:599,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:601,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:603,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/src/fu-dbus-daemon.c:603,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:605,1
    - Dst: fu_engine_activate
      Src: /src/fwupd/src/fu-dbus-daemon.c:609,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:610,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 616
    functionName: fu_dbus_daemon_authorize_activate_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_polkit_authority_check_finish
    - g_signal_connect
    - FU_PROGRESS
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_log_get_debug_enabled
    - fu_progress_set_profile
    - FU_POLKIT_AUTHORITY
    - fu_progress_new
    - fu_engine_activate
    - G_CALLBACK
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    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:621,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:622,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:623,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:623,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:624,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:624,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:627,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:627,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:628,1
    - Dst: fu_progress_set_profile
      Src: /src/fwupd/src/fu-dbus-daemon.c:633,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/src/fu-dbus-daemon.c:633,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:634,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/src/fu-dbus-daemon.c:634,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:636,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:638,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/src/fu-dbus-daemon.c:638,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:640,1
    - Dst: fu_engine_verify_update
      Src: /src/fwupd/src/fu-dbus-daemon.c:644,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:645,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:650,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 651
    functionName: fu_dbus_daemon_authorize_verify_update_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_polkit_authority_check_finish
    - g_signal_connect
    - FU_PROGRESS
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_log_get_debug_enabled
    - fu_progress_set_profile
    - FU_POLKIT_AUTHORITY
    - fu_progress_new
    - fu_engine_verify_update
    - G_CALLBACK
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    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:656,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:657,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:658,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:658,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:661,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:661,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:662,1
    - Dst: fu_engine_modify_remote
      Src: /src/fwupd/src/fu-dbus-daemon.c:667,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:672,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:677,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 678
    functionName: fu_dbus_daemon_authorize_modify_remote_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - fu_engine_modify_remote
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_authorize_modify_remote_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:683,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:684,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:685,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:685,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:688,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:688,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:689,1
    - Dst: fu_engine_clean_remote
      Src: /src/fwupd/src/fu-dbus-daemon.c:694,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:695,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 680
    functionDepth: 2
    functionLinenumber: 680
    functionLinenumberEnd: 701
    functionName: fu_dbus_daemon_authorize_clean_remote_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_engine_clean_remote
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_authorize_clean_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:708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - request
    argTypes:
    - FuEngineRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 711
    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:720,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:721,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:724,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:724,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:725,1
    - Dst: fu_dbus_daemon_authorize_install_queue
      Src: /src/fwupd/src/fu-dbus-daemon.c:730,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 717
    functionDepth: 2
    functionLinenumber: 717
    functionLinenumberEnd: 731
    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_POLKIT_AUTHORITY
    - fu_dbus_daemon_authorize_install_queue
    - g_autoptr
    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:737,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:738,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:740,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:740,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:744,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:744,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:745,1
    - Dst: fu_client_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:745,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:746,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:746,1
    - Dst: g_ptr_array_remove_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:747,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:748,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:752,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:755,1
    - Dst: fu_progress_set_profile
      Src: /src/fwupd/src/fu-dbus-daemon.c:760,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/src/fu-dbus-daemon.c:760,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:761,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/src/fu-dbus-daemon.c:761,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:763,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:765,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/src/fu-dbus-daemon.c:765,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:767,1
    - Dst: fu_daemon_set_update_in_progress
      Src: /src/fwupd/src/fu-dbus-daemon.c:771,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:771,1
    - Dst: fu_engine_install_releases
      Src: /src/fwupd/src/fu-dbus-daemon.c:772,1
    - Dst: fu_daemon_set_update_in_progress
      Src: /src/fwupd/src/fu-dbus-daemon.c:779,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:779,1
    - Dst: fu_daemon_get_pending_stop
      Src: /src/fwupd/src/fu-dbus-daemon.c:780,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:780,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:781,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:785,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:789,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:794,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - helper_ref
    argTypes:
    - FuMainAuthHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 795
    functionName: fu_dbus_daemon_authorize_install_queue
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 1
    functionsReached:
    - g_object_ref
    - fu_polkit_authority_check
    - FU_DAEMON
    - fu_engine_install_releases
    - g_ptr_array_index
    - g_signal_connect
    - FU_PROGRESS
    - fu_daemon_set_update_in_progress
    - g_set_error_literal
    - g_log_get_debug_enabled
    - fu_daemon_get_engine
    - fu_daemon_get_pending_stop
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - fu_client_get_sender
    - g_dbus_method_invocation_return_value
    - g_strdup
    - g_ptr_array_remove_index
    - g_steal_pointer
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_progress_set_profile
    - G_CALLBACK
    - g_autoptr
    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:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 805
    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: 12
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:814,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:814,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:815,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:815,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:816,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:817,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-dbus-daemon.c:820,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-dbus-daemon.c:821,1
    - Dst: fu_release_set_remote
      Src: /src/fwupd/src/fu-dbus-daemon.c:823,1
    - Dst: fu_engine_get_remote_by_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:824,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-dbus-daemon.c:826,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:832,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:832,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:835,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-dbus-daemon.c:839,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:840,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:841,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-dbus-daemon.c:842,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:845,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:845,1
    - Dst: fu_device_ensure_from_component
      Src: /src/fwupd/src/fu-dbus-daemon.c:850,1
    - Dst: fu_device_incorporate_from_component
      Src: /src/fwupd/src/fu-dbus-daemon.c:851,1
    - Dst: fu_release_check_version
      Src: /src/fwupd/src/fu-dbus-daemon.c:854,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:855,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:855,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-dbus-daemon.c:860,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:861,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:862,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:863,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:866,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:866,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-dbus-daemon.c:868,1
    - Dst: xb_node_get_silo
      Src: /src/fwupd/src/fu-dbus-daemon.c:868,1
    - Dst: xb_node_query_full
      Src: /src/fwupd/src/fu-dbus-daemon.c:874,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:877,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:878,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:878,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:879,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-dbus-daemon.c:880,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-dbus-daemon.c:881,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-dbus-daemon.c:882,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:888,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:888,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:891,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:891,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:894,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:894,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:899,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:901,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:905,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:906,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-dbus-daemon.c:907,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:909,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:909,1
    - Dst: fu_engine_check_trust
      Src: /src/fwupd/src/fu-dbus-daemon.c:912,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:913,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:913,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:918,1
    - Dst: fu_release_get_action_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:920,1
    - Dst: g_ptr_array_find
      Src: /src/fwupd/src/fu-dbus-daemon.c:921,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:922,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:922,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:923,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:923,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 69
    argCount: 4
    argNames:
    - helper
    - component
    - device
    - error
    argTypes:
    - FuMainAuthHelper*
    - XbNode*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 928
    functionName: fu_dbus_daemon_install_with_helper_device
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - xb_node_query_full
    - g_object_ref
    - xb_node_get_silo
    - fu_release_check_version
    - FU_DAEMON
    - fu_engine_get_remote_by_id
    - fu_release_get_action_id
    - g_ptr_array_find
    - g_ptr_array_index
    - fu_engine_requirements_check
    - g_debug
    - fu_engine_check_trust
    - fu_device_has_flag
    - xb_query_new_full
    - g_ptr_array_new_with_free_func
    - fu_daemon_get_engine
    - fu_device_incorporate_from_component
    - fu_release_new
    - fu_release_set_device
    - fu_release_load
    - fu_release_set_remote
    - g_strdup
    - xb_node_query_text
    - g_steal_pointer
    - g_ptr_array_add
    - fu_device_get_id
    - g_error_matches
    - fu_device_ensure_from_component
    - g_autoptr
    - fu_release_set_request
    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:934,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:935,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:936,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:937,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:937,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:940,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-dbus-daemon.c:941,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:945,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-dbus-daemon.c:946,1
    - Dst: fu_engine_get_devices_by_composite_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:950,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:951,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-dbus-daemon.c:958,1
    - Dst: fu_cabinet_get_components
      Src: /src/fwupd/src/fu-dbus-daemon.c:963,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-dbus-daemon.c:966,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-dbus-daemon.c:967,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-dbus-daemon.c:968,1
    - Dst: fu_engine_get_remote_id_for_stream
      Src: /src/fwupd/src/fu-dbus-daemon.c:969,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:973,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:975,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:979,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:980,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:980,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:984,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:986,1
    - Dst: fu_dbus_daemon_install_with_helper_device
      Src: /src/fwupd/src/fu-dbus-daemon.c:988,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-dbus-daemon.c:997,1
    - Dst: fu_engine_error_array_get_best
      Src: /src/fwupd/src/fu-dbus-daemon.c:1001,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:1002,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:1007,1
    - Dst: fu_dbus_daemon_authorize_install_queue
      Src: /src/fwupd/src/fu-dbus-daemon.c:1008,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1008,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 2
    argNames:
    - helper_ref
    - error
    argTypes:
    - FuMainAuthHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 930
    functionDepth: 3
    functionLinenumber: 930
    functionLinenumberEnd: 1010
    functionName: fu_dbus_daemon_install_with_helper
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_engine_build_cabinet_from_stream
    - fu_engine_get_devices
    - fu_engine_get_remote_id_for_stream
    - fu_engine_get_device
    - fu_dbus_daemon_authorize_install_queue
    - fu_engine_error_array_get_best
    - FU_DAEMON
    - fu_cabinet_get_components
    - g_ptr_array_index
    - g_ptr_array_sort
    - g_debug
    - fu_device_has_flag
    - fu_device_get_composite_id
    - g_propagate_error
    - g_ptr_array_new_with_free_func
    - fu_daemon_get_engine
    - g_strcmp0
    - fu_dbus_daemon_set_status
    - g_steal_pointer
    - fu_dbus_daemon_install_with_helper_device
    - fu_device_get_id
    - g_autoptr
    - fu_engine_get_devices_by_composite_id
    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:1022,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-dbus-daemon.c:1023,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-dbus-daemon.c:1024,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-dbus-daemon.c:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - inhibit
    argTypes:
    - FuDbusDaemonSystemInhibit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1026
    functionName: fu_dbus_daemon_system_inhibit_free
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_bus_unwatch_name
    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:1031,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1031,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-dbus-daemon.c:1032,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:1034,1
    - Dst: fu_context_remove_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:1037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1038
    functionName: fu_dbus_daemon_ensure_system_inhibit
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_context_add_flag
    - fu_context_remove_flag
    - FU_DAEMON
    - fu_engine_get_context
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_ensure_system_inhibit(FuDbusDaemon *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DBUS_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1045,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1046,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:1046,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:1049,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1050,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:1051,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:1056,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:1057,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/src/fu-dbus-daemon.c:1058,1
    - Dst: fu_dbus_daemon_ensure_system_inhibit
      Src: /src/fwupd/src/fu-dbus-daemon.c:1060,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - connection
    - name
    - user_data
    argTypes:
    - GDBusConnection*
    - gchar*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1040
    functionDepth: 2
    functionLinenumber: 1040
    functionLinenumberEnd: 1061
    functionName: fu_dbus_daemon_inhibit_name_vanished_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_ptr_array_remove
    - g_debug
    - fu_dbus_daemon_ensure_system_inhibit
    - g_ptr_array_new
    - FU_DBUS_DAEMON
    - g_ptr_array_add
    - g_autoptr
    - g_ptr_array_index
    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:1067,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-dbus-daemon.c:1068,1
    - Dst: fu_client_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1069,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:1071,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - client
    - pspec
    - helper
    argTypes:
    - FuClient*
    - GParamSpec*
    - FuMainAuthHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1064
    functionDepth: 1
    functionLinenumber: 1064
    functionLinenumberEnd: 1073
    functionName: fu_dbus_daemon_client_flags_notify_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_client_get_sender
    - fu_progress_add_flag
    - fu_client_has_flag
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_client_flags_notify_cb(FuClient *client, GParamSpec
      *pspec, FuMainAuthHelper *helper)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1083,1
    - Dst: g_dbus_method_invocation_get_message
      Src: /src/fwupd/src/fu-dbus-daemon.c:1086,1
    - Dst: g_dbus_message_get_unix_fd_list
      Src: /src/fwupd/src/fu-dbus-daemon.c:1087,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1089,1
    - Dst: g_unix_fd_list_get_length
      Src: /src/fwupd/src/fu-dbus-daemon.c:1095,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:1096,1
    - Dst: g_unix_fd_list_get_length
      Src: /src/fwupd/src/fu-dbus-daemon.c:1100,1
    - Dst: g_unix_fd_list_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1103,1
    - Dst: fu_unix_seekable_input_stream_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:1108,1
    - Dst: g_steal_fd
      Src: /src/fwupd/src/fu-dbus-daemon.c:1108,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1111,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - invocation
    - error
    argTypes:
    - GDBusMethodInvocation*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1116
    functionName: fu_dbus_daemon_invocation_get_input_stream
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_unix_seekable_input_stream_new
    - g_dbus_message_get_unix_fd_list
    - g_set_error
    - g_set_error_literal
    - g_unix_fd_list_get
    - g_steal_pointer
    - g_dbus_method_invocation_get_message
    - g_unix_fd_list_get_length
    - g_autoptr
    - g_steal_fd
    linkageType: ''
    returnType: GInputStream
    signature: 'GInputStream *

      fu_dbus_daemon_invocation_get_input_stream(GDBusMethodInvocation *invocation,
      GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1125,1
    - Dst: g_dbus_method_invocation_get_message
      Src: /src/fwupd/src/fu-dbus-daemon.c:1128,1
    - Dst: g_dbus_message_get_unix_fd_list
      Src: /src/fwupd/src/fu-dbus-daemon.c:1129,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1131,1
    - Dst: g_unix_fd_list_get_length
      Src: /src/fwupd/src/fu-dbus-daemon.c:1137,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:1138,1
    - Dst: g_unix_fd_list_get_length
      Src: /src/fwupd/src/fu-dbus-daemon.c:1142,1
    - Dst: g_unix_fd_list_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1145,1
    - Dst: g_unix_output_stream_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:1150,1
    - Dst: g_steal_fd
      Src: /src/fwupd/src/fu-dbus-daemon.c:1150,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1152,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1155,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - invocation
    - error
    argTypes:
    - GDBusMethodInvocation*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1160
    functionName: fu_dbus_daemon_invocation_get_output_stream
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_dbus_message_get_unix_fd_list
    - g_set_error
    - g_set_error_literal
    - g_unix_fd_list_get
    - g_unix_output_stream_new
    - g_steal_pointer
    - g_dbus_method_invocation_get_message
    - g_unix_fd_list_get_length
    - g_autoptr
    - g_steal_fd
    linkageType: ''
    returnType: GOutputStream
    signature: 'GOutputStream *

      fu_dbus_daemon_invocation_get_output_stream(GDBusMethodInvocation *invocation,
      GError **error)'
  - BBCount: 4
    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: fu_engine_get_context
      Src: /src/fwupd/src/fu-dbus-daemon.c:1167,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-dbus-daemon.c:1169,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:1172,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1173,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:1179,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:1180,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1181,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDbusDaemon*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1162
    functionDepth: 1
    functionLinenumber: 1162
    functionLinenumberEnd: 1198
    functionName: fu_dbus_daemon_hsi_supported
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_context_has_flag
    - g_getenv
    - g_set_error_literal
    - FU_DAEMON
    - fu_engine_get_context
    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:1206,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1206,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1208,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1209,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-dbus-daemon.c:1211,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1213,1
    - Dst: fu_dbus_daemon_device_array_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1216,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1218,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1200
    functionDepth: 2
    functionLinenumber: 1200
    functionLinenumberEnd: 1222
    functionName: fu_dbus_daemon_method_get_devices
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_engine_get_devices
    - fu_dbus_daemon_device_array_to_variant
    - fu_dbus_daemon_method_invocation_return_gerror
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    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:1230,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1230,1
    - Dst: fwupd_codec_array_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1233,1
    - Dst: fu_engine_get_plugins
      Src: /src/fwupd/src/fu-dbus-daemon.c:1233,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1235
    functionName: fu_dbus_daemon_method_get_plugins
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_engine_get_plugins
    - fwupd_codec_array_to_variant
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    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:1243,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1243,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1245,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1246,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1248,1
    - Dst: fu_engine_get_releases
      Src: /src/fwupd/src/fu-dbus-daemon.c:1249,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1251,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1254,1
    - Dst: fwupd_codec_array_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1237
    functionDepth: 2
    functionLinenumber: 1237
    functionLinenumberEnd: 1257
    functionName: fu_dbus_daemon_method_get_releases
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_engine_get_releases
    - fu_dbus_daemon_method_invocation_return_gerror
    - fwupd_codec_array_to_variant
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - g_variant_get
    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:1265,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1265,1
    - Dst: fu_engine_get_approved_firmware
      Src: /src/fwupd/src/fu-dbus-daemon.c:1266,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/src/fu-dbus-daemon.c:1270,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/src/fu-dbus-daemon.c:1270,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:1272,1
    - Dst: g_variant_builder_add_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1273,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/src/fu-dbus-daemon.c:1273,1
    - Dst: g_variant_builder_end
      Src: /src/fwupd/src/fu-dbus-daemon.c:1275,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1276,1
    - Dst: g_variant_new_tuple
      Src: /src/fwupd/src/fu-dbus-daemon.c:1276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1277
    functionName: fu_dbus_daemon_method_get_approved_firmware
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - g_variant_builder_init
    - g_variant_builder_end
    - g_variant_new_string
    - g_dbus_method_invocation_return_value
    - fu_engine_get_approved_firmware
    - g_variant_new_tuple
    - g_variant_builder_add_value
    - G_VARIANT_TYPE
    - FU_DAEMON
    - g_ptr_array_index
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1285,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1285,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1291,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1292,1
    - Dst: fu_engine_get_report_metadata
      Src: /src/fwupd/src/fu-dbus-daemon.c:1294,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1296,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/src/fu-dbus-daemon.c:1299,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/src/fu-dbus-daemon.c:1299,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-dbus-daemon.c:1300,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-dbus-daemon.c:1301,1
    - Dst: g_variant_builder_add_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1302,1
    - Dst: g_variant_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:1302,1
    - Dst: g_variant_builder_end
      Src: /src/fwupd/src/fu-dbus-daemon.c:1304,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1305,1
    - Dst: g_variant_new_tuple
      Src: /src/fwupd/src/fu-dbus-daemon.c:1305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1279
    functionDepth: 2
    functionLinenumber: 1279
    functionLinenumberEnd: 1306
    functionName: fu_dbus_daemon_method_get_report_metadata
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - g_variant_builder_init
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_variant_builder_end
    - g_dbus_method_invocation_return_value
    - g_variant_builder_add_value
    - FU_DAEMON
    - G_VARIANT_TYPE
    - g_variant_new
    - fu_engine_get_report_metadata
    - g_hash_table_iter_init
    - g_autoptr
    - g_hash_table_iter_next
    - g_variant_new_tuple
    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:1315,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1316,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1318,1
    - Dst: g_strjoinv
      Src: /src/fwupd/src/fu-dbus-daemon.c:1319,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:1322,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1323,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1326,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1327,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-dbus-daemon.c:1328,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:1330,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:1330,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1331,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1332,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:1334,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1308
    functionDepth: 2
    functionLinenumber: 1308
    functionLinenumberEnd: 1338
    functionName: fu_dbus_daemon_method_set_approved_firmware
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_dbus_daemon_set_status
    - g_new0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_steal_pointer
    - g_ptr_array_add
    - g_object_ref
    - fu_polkit_authority_check
    - g_strjoinv
    - g_auto
    - g_ptr_array_new_with_free_func
    - g_autoptr
    - g_variant_get
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1343,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1344,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:1347,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:1347,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1348,1
    - Dst: fu_daemon_schedule_process_quit
      Src: /src/fwupd/src/fu-dbus-daemon.c:1353,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1353,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1340
    functionDepth: 2
    functionLinenumber: 1340
    functionLinenumberEnd: 1355
    functionName: fu_dbus_daemon_authorize_quit_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_schedule_process_quit
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    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:1363,1
    - Dst: fu_engine_request_has_converter_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:1366,1
    - Dst: fu_daemon_schedule_process_quit
      Src: /src/fwupd/src/fu-dbus-daemon.c:1367,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1367,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1368,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:1373,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1374,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1376,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1377,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1378,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1379,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:1381,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1357
    functionDepth: 2
    functionLinenumber: 1357
    functionLinenumberEnd: 1385
    functionName: fu_dbus_daemon_method_quit
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_schedule_process_quit
    - fu_dbus_daemon_set_status
    - g_new0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_steal_pointer
    - g_object_ref
    - fu_polkit_authority_check
    - fu_engine_request_has_converter_flag
    - g_dbus_method_invocation_return_value
    - FU_DAEMON
    - g_autoptr
    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:1396,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1397,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1399,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1402,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/src/fu-dbus-daemon.c:1403,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:1404,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1405,1
    - Dst: fwupd_variant_get_boolean
      Src: /src/fwupd/src/fu-dbus-daemon.c:1406,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1408,1
    - Dst: fwupd_variant_get_boolean
      Src: /src/fwupd/src/fu-dbus-daemon.c:1409,1
    - Dst: g_variant_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1411,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:1415,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1417,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1418,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1419,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1420,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1421,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:1423,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1426,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1387
    functionDepth: 2
    functionLinenumber: 1387
    functionLinenumberEnd: 1427
    functionName: fu_dbus_daemon_method_self_sign
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_dbus_daemon_set_status
    - g_new0
    - g_debug
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_variant_unref
    - fwupd_variant_get_boolean
    - g_steal_pointer
    - g_object_ref
    - fu_polkit_authority_check
    - g_autoptr
    - g_variant_iter_next
    - g_variant_get
    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:1435,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1435,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1437,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1438,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1440,1
    - Dst: fu_engine_get_downgrades
      Src: /src/fwupd/src/fu-dbus-daemon.c:1441,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1443,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1446,1
    - Dst: fwupd_codec_array_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1429
    functionDepth: 2
    functionLinenumber: 1429
    functionLinenumberEnd: 1449
    functionName: fu_dbus_daemon_method_get_downgrades
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_engine_get_downgrades
    - fu_dbus_daemon_method_invocation_return_gerror
    - fwupd_codec_array_to_variant
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - g_variant_get
    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:1457,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1457,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1459,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1460,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1462,1
    - Dst: fu_engine_get_upgrades
      Src: /src/fwupd/src/fu-dbus-daemon.c:1463,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1465,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1468,1
    - Dst: fwupd_codec_array_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1451
    functionDepth: 2
    functionLinenumber: 1451
    functionLinenumberEnd: 1471
    functionName: fu_dbus_daemon_method_get_upgrades
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_engine_get_upgrades
    - fu_dbus_daemon_method_invocation_return_gerror
    - fwupd_codec_array_to_variant
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - g_variant_get
    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:1478,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1478,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1479,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1480,1
    - Dst: fu_engine_get_remotes
      Src: /src/fwupd/src/fu-dbus-daemon.c:1482,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1484,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1487,1
    - Dst: fwupd_codec_array_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - self
    - invocation
    - flag
    argTypes:
    - FuDbusDaemon*
    - GDBusMethodInvocation*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1473
    functionDepth: 2
    functionLinenumber: 1473
    functionLinenumberEnd: 1489
    functionName: fu_dbus_daemon_return_get_remotes
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_engine_get_remotes
    - fu_dbus_daemon_method_invocation_return_gerror
    - fwupd_codec_array_to_variant
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_return_get_remotes(FuDbusDaemon *self,\n\t\t\t\t
      \ GDBusMethodInvocation *invocation,\n\t\t\t\t  FwupdCodecFlags flag)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1494,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1495,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:1498,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:1498,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-dbus-daemon.c:1499,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:1500,1
    - Dst: fu_dbus_daemon_return_get_remotes
      Src: /src/fwupd/src/fu-dbus-daemon.c:1501,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1506,1
    - Dst: fu_dbus_daemon_return_get_remotes
      Src: /src/fwupd/src/fu-dbus-daemon.c:1511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1491
    functionDepth: 3
    functionLinenumber: 1491
    functionLinenumberEnd: 1514
    functionName: fu_dbus_daemon_authorize_get_remotes_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_polkit_authority_check_finish
    - g_debug
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_dbus_daemon_return_get_remotes
    - FU_POLKIT_AUTHORITY
    - g_error_matches
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_authorize_get_remotes_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1522,1
    - Dst: fu_engine_request_has_converter_flag
      Src: /src/fwupd/src/fu-dbus-daemon.c:1525,1
    - Dst: fu_dbus_daemon_return_get_remotes
      Src: /src/fwupd/src/fu-dbus-daemon.c:1526,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1531,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1532,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1533,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:1537,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1538,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1539,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1516
    functionDepth: 3
    functionLinenumber: 1516
    functionLinenumberEnd: 1545
    functionName: fu_dbus_daemon_method_get_remotes
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_set_status
    - g_new0
    - fu_engine_request_get_sender
    - g_steal_pointer
    - fu_dbus_daemon_return_get_remotes
    - g_object_ref
    - fu_polkit_authority_check
    - fu_engine_request_has_converter_flag
    - g_autoptr
    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:1553,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1553,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1555,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1556,1
    - Dst: fu_engine_get_history
      Src: /src/fwupd/src/fu-dbus-daemon.c:1558,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1560,1
    - Dst: fu_dbus_daemon_device_array_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1563,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1565,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1547
    functionDepth: 2
    functionLinenumber: 1547
    functionLinenumberEnd: 1569
    functionName: fu_dbus_daemon_method_get_history
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_dbus_daemon_device_array_to_variant
    - fu_dbus_daemon_method_invocation_return_gerror
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - fu_engine_get_history
    - g_autoptr
    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:1577,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1577,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1578,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1580,1
    - Dst: fu_dbus_daemon_hsi_supported
      Src: /src/fwupd/src/fu-dbus-daemon.c:1582,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1583,1
    - Dst: fu_engine_get_host_security_attrs
      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:1587,1
    - Dst: fu_security_attrs_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1571
    functionDepth: 2
    functionLinenumber: 1571
    functionLinenumberEnd: 1588
    functionName: fu_dbus_daemon_method_get_host_security_attrs
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_dbus_daemon_hsi_supported
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_security_attrs_to_variant
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - fu_engine_get_host_security_attrs
    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:1597,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1597,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1599,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1600,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1602,1
    - Dst: fu_engine_get_host_security_events
      Src: /src/fwupd/src/fu-dbus-daemon.c:1603,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1605,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1608,1
    - Dst: fu_security_attrs_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1608,1
    - Dst: g_dbus_method_invocation_return_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1590
    functionDepth: 2
    functionLinenumber: 1590
    functionLinenumberEnd: 1615
    functionName: fu_dbus_daemon_method_get_host_security_events
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_engine_get_host_security_events
    - fu_security_attrs_to_variant
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_dbus_method_invocation_return_error_literal
    - g_autoptr
    - g_variant_get
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1620,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1621,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1622,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1622,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:1625,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:1625,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1626,1
    - Dst: fu_engine_clear_results
      Src: /src/fwupd/src/fu-dbus-daemon.c:1631,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1632,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1617
    functionDepth: 2
    functionLinenumber: 1617
    functionLinenumberEnd: 1638
    functionName: fu_dbus_daemon_authorize_clear_results_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - FU_POLKIT_AUTHORITY
    - fu_engine_clear_results
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_authorize_clear_results_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1647,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1649,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:1652,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1653,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1655,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1656,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:1657,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1658,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1659,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:1661,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1640
    functionDepth: 2
    functionLinenumber: 1640
    functionLinenumberEnd: 1665
    functionName: fu_dbus_daemon_method_clear_results
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_dbus_daemon_set_status
    - g_new0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_steal_pointer
    - g_object_ref
    - fu_polkit_authority_check
    - g_autoptr
    - g_variant_get
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1673,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1673,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1675,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1676,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1678,1
    - Dst: fu_engine_search
      Src: /src/fwupd/src/fu-dbus-daemon.c:1679,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1681,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1684,1
    - Dst: fwupd_codec_array_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1667
    functionDepth: 2
    functionLinenumber: 1667
    functionLinenumberEnd: 1687
    functionName: fu_dbus_daemon_method_search
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_dbus_daemon_method_invocation_return_gerror
    - fwupd_codec_array_to_variant
    - fu_engine_search
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - g_variant_get
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_search(FuDbusDaemon *self,\n\t\t\t     GVariant
      *parameters,\n\t\t\t     FuEngineRequest *request,\n\t\t\t     GDBusMethodInvocation
      *invocation)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1692,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1693,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1694,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1695,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1695,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:1698,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:1698,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1699,1
    - Dst: fu_dbus_daemon_invocation_get_input_stream
      Src: /src/fwupd/src/fu-dbus-daemon.c:1704,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1706,1
    - Dst: fu_engine_emulation_load
      Src: /src/fwupd/src/fu-dbus-daemon.c:1711,1
    - Dst: g_dbus_method_invocation_return_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:1712,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1721,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1689
    functionDepth: 2
    functionLinenumber: 1689
    functionLinenumberEnd: 1722
    functionName: fu_dbus_daemon_authorize_emulation_load_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_polkit_authority_check_finish
    - g_dbus_method_invocation_return_error
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_engine_emulation_load
    - FU_POLKIT_AUTHORITY
    - fu_dbus_daemon_invocation_get_input_stream
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    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:1731,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1733,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:1735,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1736,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1738,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1739,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1741,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1742,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:1744,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1724
    functionDepth: 2
    functionLinenumber: 1724
    functionLinenumberEnd: 1748
    functionName: fu_dbus_daemon_method_emulation_load
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_set_status
    - g_new0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_steal_pointer
    - g_object_ref
    - fu_polkit_authority_check
    - g_autoptr
    - g_variant_get
    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:1753,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1754,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1755,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1756,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1756,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:1759,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:1759,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1760,1
    - Dst: fu_dbus_daemon_invocation_get_output_stream
      Src: /src/fwupd/src/fu-dbus-daemon.c:1765,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1767,1
    - Dst: fu_engine_emulation_save
      Src: /src/fwupd/src/fu-dbus-daemon.c:1772,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1773,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1778,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1750
    functionDepth: 2
    functionLinenumber: 1750
    functionLinenumberEnd: 1779
    functionName: fu_dbus_daemon_authorize_emulation_save_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_dbus_daemon_invocation_get_output_stream
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - FU_POLKIT_AUTHORITY
    - fu_engine_emulation_save
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    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:1787,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1789,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:1791,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1792,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1794,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1795,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1797,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1798,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:1800,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1780
    functionDepth: 2
    functionLinenumber: 1780
    functionLinenumberEnd: 1804
    functionName: fu_dbus_daemon_method_emulation_save
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_dbus_daemon_set_status
    - g_new0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_steal_pointer
    - g_object_ref
    - fu_polkit_authority_check
    - g_autoptr
    - g_variant_get
    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:1813,1
    - Dst: fu_engine_modify_device
      Src: /src/fwupd/src/fu-dbus-daemon.c:1815,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1816,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1819,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: 1820
      start: 1806
    functionDepth: 2
    functionLinenumber: 1806
    functionLinenumberEnd: 1820
    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
    - g_autoptr
    - fu_engine_modify_device
    - fu_dbus_daemon_method_invocation_return_gerror
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1825,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1826,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:1829,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:1829,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1830,1
    - Dst: fu_dbus_daemon_authorize_modify_device_internal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1834,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1835,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1822
    functionDepth: 3
    functionLinenumber: 1822
    functionLinenumberEnd: 1840
    functionName: fu_dbus_daemon_authorize_modify_device_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_polkit_authority_check_finish
    - fu_dbus_daemon_method_invocation_return_gerror
    - FU_POLKIT_AUTHORITY
    - FU_DAEMON
    - fu_dbus_daemon_authorize_modify_device_internal
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_authorize_modify_device_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1847,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1848,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1849,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1853,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - key
    - value
    - error
    argTypes:
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1842
    functionDepth: 0
    functionLinenumber: 1842
    functionLinenumberEnd: 1858
    functionName: fu_dbus_daemon_method_modify_device_flag_to_action_id
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_dbus_daemon_method_modify_device_flag_to_action_id(const
      gchar *key,\n\t\t\t\t\t\t      const gchar *value,\n\t\t\t\t\t\t      GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1870,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1871,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1873,1
    - Dst: fu_dbus_daemon_method_modify_device_flag_to_action_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:1876,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1878,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:1883,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1885,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:1886,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:1887,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:1888,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:1889,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:1890,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:1891,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:1892,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:1894,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:1897,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1860
    functionDepth: 2
    functionLinenumber: 1860
    functionLinenumberEnd: 1898
    functionName: fu_dbus_daemon_method_modify_device
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_dbus_daemon_set_status
    - g_new0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_steal_pointer
    - g_object_ref
    - fu_polkit_authority_check
    - fu_dbus_daemon_method_modify_device_flag_to_action_id
    - g_autoptr
    - g_variant_get
    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:1906,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1906,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1909,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1910,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1912,1
    - Dst: fu_engine_get_results
      Src: /src/fwupd/src/fu-dbus-daemon.c:1913,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1915,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:1918,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-dbus-daemon.c:1918,1
    - Dst: fu_engine_request_get_converter_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:1919,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1920,1
    - Dst: g_variant_new_tuple
      Src: /src/fwupd/src/fu-dbus-daemon.c:1920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1921
      start: 1900
    functionDepth: 2
    functionLinenumber: 1900
    functionLinenumberEnd: 1921
    functionName: fu_dbus_daemon_method_get_results
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - FWUPD_CODEC
    - fu_dbus_daemon_method_invocation_return_gerror
    - fwupd_codec_to_variant
    - g_variant_new_tuple
    - fu_engine_get_results
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - g_variant_get
    - fu_engine_request_get_converter_flags
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1927,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1928,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:1929,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:1929,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:1936,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:1936,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1937,1
    - Dst: g_dbus_method_invocation_get_message
      Src: /src/fwupd/src/fu-dbus-daemon.c:1942,1
    - Dst: g_dbus_message_get_unix_fd_list
      Src: /src/fwupd/src/fu-dbus-daemon.c:1943,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:1945,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1949,1
    - Dst: g_unix_fd_list_get_length
      Src: /src/fwupd/src/fu-dbus-daemon.c:1952,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:1953,1
    - Dst: g_unix_fd_list_get_length
      Src: /src/fwupd/src/fu-dbus-daemon.c:1957,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1958,1
    - Dst: g_unix_fd_list_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1961,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1963,1
    - Dst: g_unix_fd_list_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1966,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1968,1
    - Dst: fu_engine_update_metadata
      Src: /src/fwupd/src/fu-dbus-daemon.c:1973,1
    - Dst: g_steal_fd
      Src: /src/fwupd/src/fu-dbus-daemon.c:1975,1
    - Dst: g_steal_fd
      Src: /src/fwupd/src/fu-dbus-daemon.c:1976,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:1978,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:1979,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:1982,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1924
    functionDepth: 2
    functionLinenumber: 1924
    functionLinenumberEnd: 1983
    functionName: fu_dbus_daemon_authorize_update_metadata_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_polkit_authority_check_finish
    - g_dbus_message_get_unix_fd_list
    - g_set_error
    - g_set_error_literal
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_unix_fd_list_get
    - fu_engine_update_metadata
    - g_prefix_error
    - g_dbus_method_invocation_get_message
    - FU_POLKIT_AUTHORITY
    - g_unix_fd_list_get_length
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - g_steal_fd
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_authorize_update_metadata_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:1996,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:1998,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:2001,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2002,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2004,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2005,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2006,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:2007,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2008,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2010,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2013,1
    - Dst: g_dbus_method_invocation_return_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:2015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 1986
    functionDepth: 2
    functionLinenumber: 1986
    functionLinenumberEnd: 2020
    functionName: fu_dbus_daemon_method_update_metadata
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_dbus_daemon_set_status
    - g_new0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_steal_pointer
    - g_object_ref
    - fu_polkit_authority_check
    - g_dbus_method_invocation_return_error_literal
    - g_autoptr
    - g_variant_get
    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:2029,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2031,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:2034,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2035,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2037,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2038,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2039,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:2040,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2041,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2043,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 2022
    functionDepth: 2
    functionLinenumber: 2022
    functionLinenumberEnd: 2047
    functionName: fu_dbus_daemon_method_unlock
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_dbus_daemon_set_status
    - g_new0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_steal_pointer
    - g_object_ref
    - fu_polkit_authority_check
    - g_autoptr
    - g_variant_get
    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:2056,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2058,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:2061,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2062,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2064,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2065,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2066,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:2067,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2068,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2070,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2049
    functionDepth: 2
    functionLinenumber: 2049
    functionLinenumberEnd: 2074
    functionName: fu_dbus_daemon_method_activate
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_dbus_daemon_set_status
    - g_new0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_steal_pointer
    - g_object_ref
    - fu_polkit_authority_check
    - g_autoptr
    - g_variant_get
    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:2085,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2087,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2090,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2092,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2093,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2094,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2095,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2096,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:2097,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2098,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2100,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2076
    functionDepth: 2
    functionLinenumber: 2076
    functionLinenumberEnd: 2104
    functionName: fu_dbus_daemon_method_modify_config
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_new0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_steal_pointer
    - g_object_ref
    - fu_polkit_authority_check
    - g_autoptr
    - g_variant_get
    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:2113,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2115,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2118,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2120,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2121,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2122,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:2123,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2124,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2126,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2106
    functionDepth: 2
    functionLinenumber: 2106
    functionLinenumberEnd: 2130
    functionName: fu_dbus_daemon_method_reset_config
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_new0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_steal_pointer
    - g_object_ref
    - fu_polkit_authority_check
    - g_autoptr
    - g_variant_get
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2142,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2160,1
    - Dst: g_strv_contains
      Src: /src/fwupd/src/fu-dbus-daemon.c:2163,1
    - Dst: g_strv_contains
      Src: /src/fwupd/src/fu-dbus-daemon.c:2165,1
    - Dst: g_dbus_method_invocation_return_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:2168,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2178,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2179,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2180,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2181,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2182,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2183,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:2187,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:2188,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2189,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2191,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2132
    functionDepth: 2
    functionLinenumber: 2132
    functionLinenumberEnd: 2195
    functionName: fu_dbus_daemon_method_modify_remote
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_dbus_daemon_set_status
    - g_new0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_dbus_method_invocation_return_error
    - g_steal_pointer
    - g_object_ref
    - g_strv_contains
    - fu_polkit_authority_check
    - g_autoptr
    - g_variant_get
    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:2204,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2207,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2210,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2211,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2212,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2213,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:2217,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:2218,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2219,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2221,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2225
      start: 2197
    functionDepth: 2
    functionLinenumber: 2197
    functionLinenumberEnd: 2225
    functionName: fu_dbus_daemon_method_clean_remote
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_dbus_daemon_set_status
    - g_new0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_steal_pointer
    - g_object_ref
    - fu_polkit_authority_check
    - g_autoptr
    - g_variant_get
    linkageType: ''
    returnType: void
    signature: "void fu_dbus_daemon_method_clean_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:2234,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2237,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2240,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2241,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2242,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2243,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:2247,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:2248,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2249,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2251,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2227
    functionDepth: 2
    functionLinenumber: 2227
    functionLinenumberEnd: 2255
    functionName: fu_dbus_daemon_method_verify_update
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_dbus_daemon_set_status
    - g_new0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_steal_pointer
    - g_object_ref
    - fu_polkit_authority_check
    - g_autoptr
    - g_variant_get
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2260,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2261,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2262,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:2262,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:2263,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2263,1
    - Dst: fu_polkit_authority_check_finish
      Src: /src/fwupd/src/fu-dbus-daemon.c:2266,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-dbus-daemon.c:2266,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:2267,1
    - Dst: fu_progress_set_profile
      Src: /src/fwupd/src/fu-dbus-daemon.c:2272,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/src/fu-dbus-daemon.c:2272,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:2273,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/src/fu-dbus-daemon.c:2273,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:2275,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:2277,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/src/fu-dbus-daemon.c:2277,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:2279,1
    - Dst: fu_engine_verify
      Src: /src/fwupd/src/fu-dbus-daemon.c:2283,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:2284,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:2289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2257
    functionDepth: 2
    functionLinenumber: 2257
    functionLinenumberEnd: 2290
    functionName: fu_dbus_daemon_authorize_verify_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_polkit_authority_check_finish
    - g_signal_connect
    - FU_PROGRESS
    - fu_dbus_daemon_method_invocation_return_gerror
    - g_log_get_debug_enabled
    - fu_progress_set_profile
    - fu_engine_verify
    - FU_POLKIT_AUTHORITY
    - fu_progress_new
    - G_CALLBACK
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_dbus_daemon_authorize_verify_cb(GObject *source, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2299,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2301,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2304,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2305,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2306,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2307,1
    - Dst: fu_dbus_daemon_set_status
      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:2313,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2315,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2292
    functionDepth: 2
    functionLinenumber: 2292
    functionLinenumberEnd: 2319
    functionName: fu_dbus_daemon_method_verify
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_dbus_daemon_set_status
    - g_new0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_steal_pointer
    - g_object_ref
    - fu_polkit_authority_check
    - g_autoptr
    - g_variant_get
    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:2328,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2330,1
    - Dst: fu_client_list_register
      Src: /src/fwupd/src/fu-dbus-daemon.c:2333,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2333,1
    - Dst: fu_client_set_feature_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2334,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:2335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2321
    functionDepth: 1
    functionLinenumber: 2321
    functionLinenumberEnd: 2336
    functionName: fu_dbus_daemon_method_set_feature_flags
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_client_set_feature_flags
    - fu_engine_request_get_sender
    - fu_client_list_register
    - g_dbus_method_invocation_return_value
    - g_autoptr
    - g_variant_get
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2347,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2348,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2350,1
    - Dst: fu_client_list_register
      Src: /src/fwupd/src/fu-dbus-daemon.c:2351,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2351,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/src/fu-dbus-daemon.c:2352,1
    - Dst: g_dbus_method_invocation_return_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:2354,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:2360,1
    - Dst: fu_client_insert_hint
      Src: /src/fwupd/src/fu-dbus-daemon.c:2361,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:2363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2364
      start: 2338
    functionDepth: 1
    functionLinenumber: 2338
    functionLinenumberEnd: 2364
    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_dbus_method_invocation_return_value
    - fu_client_list_register
    - fu_client_insert_hint
    - g_dbus_method_invocation_return_error_literal
    - g_autoptr
    - g_variant_iter_next
    - g_variant_get
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2374,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2377,1
    - Dst: g_dbus_method_invocation_return_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:2381,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:2391,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2392,1
    - Dst: g_dbus_method_invocation_return_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:2396,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2405,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2406,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-dbus-daemon.c:2408,1
    - Dst: g_random_int_range
      Src: /src/fwupd/src/fu-dbus-daemon.c:2408,1
    - Dst: g_bus_watch_name_on_connection
      Src: /src/fwupd/src/fu-dbus-daemon.c:2410,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:2417,1
    - Dst: fu_dbus_daemon_ensure_system_inhibit
      Src: /src/fwupd/src/fu-dbus-daemon.c:2418,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:2419,1
    - Dst: g_variant_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:2419,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2420
      start: 2366
    functionDepth: 2
    functionLinenumber: 2366
    functionLinenumberEnd: 2420
    functionName: fu_dbus_daemon_method_inhibit
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_new0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_ensure_system_inhibit
    - g_ptr_array_add
    - g_bus_watch_name_on_connection
    - g_strdup_printf
    - g_random_int_range
    - g_dbus_method_invocation_return_value
    - g_variant_new
    - g_ptr_array_index
    - g_dbus_method_invocation_return_error_literal
    - g_variant_get
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:2429,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2429,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2434,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2435,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2436,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2439,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2442,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2443,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:2444,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2445,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2446,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/src/fu-dbus-daemon.c:2450,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:2451,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2452,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/src/fu-dbus-daemon.c:2457,1
    - Dst: g_variant_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2459,1
    - Dst: fu_dbus_daemon_invocation_get_input_stream
      Src: /src/fwupd/src/fu-dbus-daemon.c:2463,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:2465,1
    - Dst: fu_engine_config_get_ignore_requirements
      Src: /src/fwupd/src/fu-dbus-daemon.c:2470,1
    - Dst: fu_engine_get_config
      Src: /src/fwupd/src/fu-dbus-daemon.c:2470,1
    - Dst: fu_client_list_register
      Src: /src/fwupd/src/fu-dbus-daemon.c:2475,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2475,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:2477,1
    - Dst: FU_CLIENT
      Src: /src/fwupd/src/fu-dbus-daemon.c:2477,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:2479,1
    - Dst: fu_dbus_daemon_install_with_helper
      Src: /src/fwupd/src/fu-dbus-daemon.c:2481,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2481,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:2482,1
    - Dst: g_dbus_method_invocation_return_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:2486,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2422
    functionDepth: 4
    functionLinenumber: 2422
    functionLinenumberEnd: 2491
    functionName: fu_dbus_daemon_method_install
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_engine_config_get_ignore_requirements
    - g_object_ref
    - fu_progress_new
    - FU_CLIENT
    - FU_DAEMON
    - g_dbus_method_invocation_return_error_literal
    - g_variant_iter_next
    - fwupd_variant_get_uint64
    - g_new0
    - g_debug
    - g_signal_connect
    - fu_daemon_get_engine
    - fu_dbus_daemon_invocation_get_input_stream
    - fu_dbus_daemon_install_with_helper
    - g_variant_get
    - g_strdup
    - g_strcmp0
    - fu_engine_request_get_sender
    - g_variant_unref
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_engine_get_config
    - g_steal_pointer
    - G_CALLBACK
    - fu_client_list_register
    - g_autoptr
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2500,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2503,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:2507,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2508,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2510,1
    - Dst: g_dbus_method_invocation_return_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:2511,1
    - Dst: g_ptr_array_remove_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:2518,1
    - Dst: fu_dbus_daemon_ensure_system_inhibit
      Src: /src/fwupd/src/fu-dbus-daemon.c:2519,1
    - Dst: g_dbus_method_invocation_return_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:2525,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:2531,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2493
    functionDepth: 2
    functionLinenumber: 2493
    functionLinenumberEnd: 2532
    functionName: fu_dbus_daemon_method_uninhibit
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_ensure_system_inhibit
    - g_ptr_array_remove_index
    - g_dbus_method_invocation_return_value
    - g_ptr_array_index
    - g_dbus_method_invocation_return_error_literal
    - g_variant_get
    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:2541,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2541,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2543,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2544,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2545,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2548,1
    - Dst: fu_dbus_daemon_invocation_get_input_stream
      Src: /src/fwupd/src/fu-dbus-daemon.c:2551,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:2553,1
    - Dst: fu_engine_get_details
      Src: /src/fwupd/src/fu-dbus-daemon.c:2558,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:2560,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:2563,1
    - Dst: fwupd_codec_array_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:2565,1
    - Dst: fu_engine_request_get_converter_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2565,1
    - Dst: g_dbus_method_invocation_return_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:2567,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2572
      start: 2534
    functionDepth: 2
    functionLinenumber: 2534
    functionLinenumberEnd: 2572
    functionName: fu_dbus_daemon_method_get_details
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_engine_get_details
    - fu_dbus_daemon_method_invocation_return_gerror
    - fwupd_codec_array_to_variant
    - fu_dbus_daemon_invocation_get_input_stream
    - FU_DAEMON
    - g_dbus_method_invocation_return_value
    - g_dbus_method_invocation_return_error_literal
    - g_autoptr
    - g_variant_get
    - fu_engine_request_get_converter_flags
    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:2580,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2580,1
    - Dst: fu_engine_request_get_feature_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2582,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2588,1
    - Dst: fu_context_get_bios_settings
      Src: /src/fwupd/src/fu-dbus-daemon.c:2589,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-dbus-daemon.c:2589,1
    - Dst: g_dbus_method_invocation_return_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:2590,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/src/fu-dbus-daemon.c:2592,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-dbus-daemon.c:2592,1
    - Dst: fu_engine_request_get_converter_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2593,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2595,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:2598,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2599,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2601,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2602,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:2603,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2605,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2607,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2612
      start: 2574
    functionDepth: 2
    functionLinenumber: 2574
    functionLinenumberEnd: 2612
    functionName: fu_dbus_daemon_method_get_bios_settings
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - FWUPD_CODEC
    - fu_dbus_daemon_set_status
    - g_new0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - fwupd_codec_to_variant
    - g_steal_pointer
    - g_object_ref
    - g_dbus_method_invocation_return_value
    - fu_context_get_bios_settings
    - fu_polkit_authority_check
    - FU_DAEMON
    - fu_engine_get_context
    - fu_engine_request_get_converter_flags
    - g_autoptr
    - fu_engine_request_get_feature_flags
    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:2622,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2623,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2625,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:2628,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2629,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2631,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2632,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-dbus-daemon.c:2633,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/src/fu-dbus-daemon.c:2634,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:2635,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-dbus-daemon.c:2636,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2636,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2636,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:2638,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2639,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2641,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2645
      start: 2614
    functionDepth: 2
    functionLinenumber: 2614
    functionLinenumberEnd: 2645
    functionName: fu_dbus_daemon_method_set_bios_settings
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - fu_dbus_daemon_set_status
    - g_new0
    - g_debug
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_steal_pointer
    - g_hash_table_new_full
    - g_object_ref
    - fu_polkit_authority_check
    - g_autoptr
    - g_variant_iter_next
    - g_variant_get
    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:2654,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2655,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:2658,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2659,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2661,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2662,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2663,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:2665,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2666,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2668,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2672
      start: 2647
    functionDepth: 2
    functionLinenumber: 2647
    functionLinenumberEnd: 2672
    functionName: fu_dbus_daemon_method_fix_host_security_attr
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_dbus_daemon_set_status
    - g_new0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_steal_pointer
    - g_object_ref
    - fu_polkit_authority_check
    - g_autoptr
    - g_variant_get
    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:2681,1
    - Dst: g_variant_get
      Src: /src/fwupd/src/fu-dbus-daemon.c:2683,1
    - Dst: fu_dbus_daemon_set_status
      Src: /src/fwupd/src/fu-dbus-daemon.c:2686,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2687,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2689,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-dbus-daemon.c:2690,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-dbus-daemon.c:2691,1
    - Dst: fu_polkit_authority_check
      Src: /src/fwupd/src/fu-dbus-daemon.c:2693,1
    - Dst: fu_engine_request_get_sender
      Src: /src/fwupd/src/fu-dbus-daemon.c:2694,1
    - Dst: fu_dbus_daemon_engine_request_get_authority_check_flags
      Src: /src/fwupd/src/fu-dbus-daemon.c:2696,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-dbus-daemon.c:2699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - self
    - parameters
    - request
    - invocation
    argTypes:
    - FuDbusDaemon*
    - GVariant*
    - FuEngineRequest*
    - GDBusMethodInvocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2674
    functionDepth: 2
    functionLinenumber: 2674
    functionLinenumberEnd: 2700
    functionName: fu_dbus_daemon_method_undo_host_security_attr
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_dbus_daemon_set_status
    - g_new0
    - fu_engine_request_get_sender
    - fu_dbus_daemon_engine_request_get_authority_check_flags
    - g_steal_pointer
    - g_object_ref
    - fu_polkit_authority_check
    - g_autoptr
    - g_variant_get
    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:2717,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:2718,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2718,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2719,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2720,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2721,1
    - Dst: fu_dbus_daemon_create_request
      Src: /src/fwupd/src/fu-dbus-daemon.c:2768,1
    - Dst: fu_dbus_daemon_method_invocation_return_gerror
      Src: /src/fwupd/src/fu-dbus-daemon.c:2770,1
    - Dst: fu_engine_idle_reset
      Src: /src/fwupd/src/fu-dbus-daemon.c:2775,1
    - Dst: g_variant_print_string
      Src: /src/fwupd/src/fu-dbus-daemon.c:2778,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:2779,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-dbus-daemon.c:2782,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2783,1
    - Dst: func
      Src: /src/fwupd/src/fu-dbus-daemon.c:2784,1
    - Dst: g_dbus_method_invocation_return_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:2788,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: 2793
      start: 2707
    functionDepth: 2
    functionLinenumber: 2707
    functionLinenumberEnd: 2793
    functionName: fu_dbus_daemon_method_call
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - g_strcmp0
    - fu_dbus_daemon_create_request
    - func
    - g_debug
    - FU_DBUS_DAEMON
    - fu_dbus_daemon_method_invocation_return_gerror
    - fu_engine_idle_reset
    - g_dbus_method_invocation_return_error
    - G_N_ELEMENTS
    - FU_DAEMON
    - g_variant_print_string
    - g_autoptr
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:2798,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2798,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-dbus-daemon.c:2799,1
    - Dst: fu_context_get_hwids
      Src: /src/fwupd/src/fu-dbus-daemon.c:2800,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2802,1
    - Dst: fu_hwids_get_chid_keys
      Src: /src/fwupd/src/fu-dbus-daemon.c:2802,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2803,1
    - Dst: fu_hwids_get_keys
      Src: /src/fwupd/src/fu-dbus-daemon.c:2803,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/src/fu-dbus-daemon.c:2805,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/src/fu-dbus-daemon.c:2805,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:2807,1
    - Dst: fu_hwids_get_value
      Src: /src/fwupd/src/fu-dbus-daemon.c:2808,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:2811,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-dbus-daemon.c:2814,1
    - Dst: fu_hwids_get_replace_keys
      Src: /src/fwupd/src/fu-dbus-daemon.c:2819,1
    - Dst: fu_hwids_get_guid
      Src: /src/fwupd/src/fu-dbus-daemon.c:2822,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/src/fu-dbus-daemon.c:2825,1
    - Dst: g_variant_builder_end
      Src: /src/fwupd/src/fu-dbus-daemon.c:2829,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2830
      start: 2795
    functionDepth: 1
    functionLinenumber: 2795
    functionLinenumberEnd: 2830
    functionName: fu_dbus_daemon_get_property_hwids
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_hwids_get_value
    - fu_context_get_hwids
    - g_variant_builder_add
    - g_variant_builder_init
    - fu_hwids_get_keys
    - g_variant_builder_end
    - fu_hwids_get_chid_keys
    - fu_hwids_get_replace_keys
    - FU_DAEMON
    - fu_engine_get_context
    - G_VARIANT_TYPE
    - fu_hwids_get_guid
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: GVariant
    signature: 'GVariant *

      fu_dbus_daemon_get_property_hwids(FuDbusDaemon *self)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FU_DBUS_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2841,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:2842,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2842,1
    - Dst: fu_engine_idle_reset
      Src: /src/fwupd/src/fu-dbus-daemon.c:2845,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2847,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/src/fu-dbus-daemon.c:2848,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2850,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/src/fu-dbus-daemon.c:2851,1
    - Dst: fu_engine_get_host_bkc
      Src: /src/fwupd/src/fu-dbus-daemon.c:2851,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2853,1
    - Dst: g_variant_new_boolean
      Src: /src/fwupd/src/fu-dbus-daemon.c:2854,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2856,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/src/fu-dbus-daemon.c:2857,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2859,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/src/fu-dbus-daemon.c:2860,1
    - Dst: fwupd_percentage_is_valid
      Src: /src/fwupd/src/fu-dbus-daemon.c:2861,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2863,1
    - Dst: g_variant_new_double
      Src: /src/fwupd/src/fu-dbus-daemon.c:2864,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2866,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-dbus-daemon.c:2867,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/src/fu-dbus-daemon.c:2868,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/src/fu-dbus-daemon.c:2868,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2871,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-dbus-daemon.c:2872,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/src/fu-dbus-daemon.c:2873,1
    - Dst: fu_context_get_battery_threshold
      Src: /src/fwupd/src/fu-dbus-daemon.c:2873,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2876,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/src/fu-dbus-daemon.c:2877,1
    - Dst: fu_engine_get_host_vendor
      Src: /src/fwupd/src/fu-dbus-daemon.c:2877,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2879,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/src/fu-dbus-daemon.c:2880,1
    - Dst: fu_engine_get_host_product
      Src: /src/fwupd/src/fu-dbus-daemon.c:2880,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2882,1
    - Dst: fu_engine_get_host_machine_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:2883,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:2885,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/src/fu-dbus-daemon.c:2892,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2895,1
    - Dst: fu_engine_get_host_security_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:2897,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:2899,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/src/fu-dbus-daemon.c:2906,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:2908,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2917,1
    - Dst: g_variant_new_boolean
      Src: /src/fwupd/src/fu-dbus-daemon.c:2918,1
    - Dst: isatty
      Src: /src/fwupd/src/fu-dbus-daemon.c:2918,1
    - Dst: fileno
      Src: /src/fwupd/src/fu-dbus-daemon.c:2918,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2920,1
    - Dst: g_variant_new_boolean
      Src: /src/fwupd/src/fu-dbus-daemon.c:2921,1
    - Dst: fu_engine_config_get_only_trusted
      Src: /src/fwupd/src/fu-dbus-daemon.c:2922,1
    - Dst: fu_engine_get_config
      Src: /src/fwupd/src/fu-dbus-daemon.c:2922,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-dbus-daemon.c:2924,1
    - Dst: fu_dbus_daemon_get_property_hwids
      Src: /src/fwupd/src/fu-dbus-daemon.c:2925,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-dbus-daemon.c:2928,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    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: 2934
      start: 2832
    functionDepth: 2
    functionLinenumber: 2832
    functionLinenumberEnd: 2934
    functionName: fu_dbus_daemon_get_property
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - isatty
    - fileno
    - fu_engine_idle_reset
    - g_variant_new_double
    - fu_engine_get_host_security_id
    - FU_DAEMON
    - fu_engine_get_context
    - g_variant_new_uint32
    - fu_context_get_battery_level
    - g_variant_new_boolean
    - fu_engine_config_get_only_trusted
    - fu_engine_get_host_vendor
    - fu_daemon_get_engine
    - fwupd_percentage_is_valid
    - fu_engine_get_host_product
    - fu_context_get_battery_threshold
    - g_variant_new_string
    - fu_engine_get_host_machine_id
    - fu_engine_get_host_bkc
    - g_strcmp0
    - fu_dbus_daemon_get_property_hwids
    - g_set_error
    - FU_DBUS_DAEMON
    - fu_engine_get_config
    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:2945,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:2953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDbusDaemon*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2962
      start: 2936
    functionDepth: 0
    functionLinenumber: 2936
    functionLinenumberEnd: 2962
    functionName: fu_dbus_daemon_register_object
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_dbus_connection_register_object
    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:2967,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:2967,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:2968,1
    - Dst: fu_client_list_get_all
      Src: /src/fwupd/src/fu-dbus-daemon.c:2968,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-dbus-daemon.c:2969,1
    - Dst: fu_engine_idle_inhibit
      Src: /src/fwupd/src/fu-dbus-daemon.c:2972,1
    - Dst: fu_engine_idle_uninhibit
      Src: /src/fwupd/src/fu-dbus-daemon.c:2974,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2977
      start: 2964
    functionDepth: 1
    functionLinenumber: 2964
    functionLinenumberEnd: 2977
    functionName: fu_dbus_daemon_client_list_ensure_inhibit
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_daemon_get_engine
    - fu_engine_idle_uninhibit
    - g_debug
    - fu_client_list_get_all
    - fu_engine_idle_inhibit
    - FU_DAEMON
    - g_autoptr
    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:2982,1
    - Dst: fu_dbus_daemon_client_list_ensure_inhibit
      Src: /src/fwupd/src/fu-dbus-daemon.c:2983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - client_list
    - client
    - user_data
    argTypes:
    - FuClientList*
    - FuClient*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2984
      start: 2979
    functionDepth: 2
    functionLinenumber: 2979
    functionLinenumberEnd: 2984
    functionName: fu_dbus_daemon_client_list_added_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - FU_DBUS_DAEMON
    - fu_dbus_daemon_client_list_ensure_inhibit
    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:2991,1
    - Dst: fu_dbus_daemon_client_list_ensure_inhibit
      Src: /src/fwupd/src/fu-dbus-daemon.c:2992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - client_list
    - client
    - user_data
    argTypes:
    - FuClientList*
    - FuClient*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2993
      start: 2986
    functionDepth: 2
    functionLinenumber: 2986
    functionLinenumberEnd: 2993
    functionName: fu_dbus_daemon_client_list_removed_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - FU_DBUS_DAEMON
    - fu_dbus_daemon_client_list_ensure_inhibit
    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:2998,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:3000,1
    - Dst: fu_client_list_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:3000,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:3001,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:3003,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:3005,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:3007,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-dbus-daemon.c:3009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - connection
    argTypes:
    - FuDbusDaemon*
    - GDBusConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3011
      start: 2995
    functionDepth: 1
    functionLinenumber: 2995
    functionLinenumberEnd: 3011
    functionName: fu_dbus_daemon_set_connection
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - fu_client_list_new
    - g_signal_connect
    - g_set_object
    - G_CALLBACK
    - g_autoptr
    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:3018,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:3019,1
    - Dst: g_dbus_proxy_new_sync
      Src: /src/fwupd/src/fu-dbus-daemon.c:3022,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-dbus-daemon.c:3032,1
    - Dst: fu_dbus_daemon_set_connection
      Src: /src/fwupd/src/fu-dbus-daemon.c:3036,1
    - Dst: fu_dbus_daemon_register_object
      Src: /src/fwupd/src/fu-dbus-daemon.c:3037,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-dbus-daemon.c:3038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - connection
    - name
    - user_data
    argTypes:
    - GDBusConnection*
    - gchar*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3041
      start: 3013
    functionDepth: 2
    functionLinenumber: 3013
    functionLinenumberEnd: 3041
    functionName: fu_dbus_daemon_dbus_bus_acquired_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - FU_DBUS_DAEMON
    - g_dbus_proxy_new_sync
    - fu_dbus_daemon_register_object
    - g_warning
    - fu_dbus_daemon_set_connection
    - g_autoptr
    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:3048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - connection
    - name
    - user_data
    argTypes:
    - GDBusConnection*
    - gchar*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3049
      start: 3043
    functionDepth: 0
    functionLinenumber: 3043
    functionLinenumberEnd: 3049
    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:3054,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-dbus-daemon.c:3055,1
    - Dst: fu_daemon_stop
      Src: /src/fwupd/src/fu-dbus-daemon.c:3056,1
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-dbus-daemon.c:3056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - connection
    - name
    - user_data
    argTypes:
    - GDBusConnection*
    - gchar*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3057
      start: 3051
    functionDepth: 1
    functionLinenumber: 3051
    functionLinenumberEnd: 3057
    functionName: fu_dbus_daemon_dbus_name_lost_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - FU_DBUS_DAEMON
    - g_warning
    - fu_daemon_stop
    - FU_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:3066,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: 3067
      start: 3059
    functionDepth: 0
    functionLinenumber: 3059
    functionLinenumberEnd: 3067
    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:3074,1
    - Dst: fu_dbus_daemon_set_connection
      Src: /src/fwupd/src/fu-dbus-daemon.c:3075,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:3076,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:3078,1
    - Dst: fu_dbus_daemon_register_object
      Src: /src/fwupd/src/fu-dbus-daemon.c:3080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - server
    - connection
    - user_data
    argTypes:
    - GDBusServer*
    - GDBusConnection*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3081
      start: 3069
    functionDepth: 2
    functionLinenumber: 3069
    functionLinenumberEnd: 3081
    functionName: fu_dbus_daemon_dbus_new_connection_cb
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_signal_connect
    - FU_DBUS_DAEMON
    - fu_dbus_daemon_register_object
    - 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:3086,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-dbus-daemon.c:3090,1
    - Dst: g_resources_lookup_data
      Src: /src/fwupd/src/fu-dbus-daemon.c:3091,1
    - Dst: g_dbus_node_info_new_for_xml
      Src: /src/fwupd/src/fu-dbus-daemon.c:3096,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-dbus-daemon.c:3096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - filename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3097
      start: 3083
    functionDepth: 0
    functionLinenumber: 3083
    functionLinenumberEnd: 3097
    functionName: fu_dbus_daemon_load_introspection
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_dbus_node_info_new_for_xml
    - g_bytes_get_data
    - g_resources_lookup_data
    - g_autoptr
    - g_build_filename
    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:3105,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-dbus-daemon.c:3106,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-dbus-daemon.c:3109,1
    - Dst: fu_progress_set_profile
      Src: /src/fwupd/src/fu-dbus-daemon.c:3110,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/src/fu-dbus-daemon.c:3110,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-dbus-daemon.c:3111,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-dbus-daemon.c:3112,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-dbus-daemon.c:3113,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-dbus-daemon.c:3114,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:3117,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-dbus-daemon.c:3117,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:3119,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:3121,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-dbus-daemon.c:3121,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:3123,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:3125,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-dbus-daemon.c:3125,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:3127,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:3129,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-dbus-daemon.c:3129,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:3131,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:3133,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-dbus-daemon.c:3133,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:3135,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:3137,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-dbus-daemon.c:3137,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:3139,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-dbus-daemon.c:3141,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-dbus-daemon.c:3147,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:3149,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-dbus-daemon.c:3152,1
    - Dst: fu_dbus_daemon_load_introspection
      Src: /src/fwupd/src/fu-dbus-daemon.c:3156,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:3158,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-dbus-daemon.c:3161,1
    - Dst: fu_polkit_authority_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:3164,1
    - Dst: fu_polkit_authority_load
      Src: /src/fwupd/src/fu-dbus-daemon.c:3165,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-dbus-daemon.c:3167,1
    - Dst: g_dbus_generate_guid
      Src: /src/fwupd/src/fu-dbus-daemon.c:3171,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-dbus-daemon.c:3172,1
    - Dst: g_dbus_server_new_sync
      Src: /src/fwupd/src/fu-dbus-daemon.c:3174,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-dbus-daemon.c:3185,1
    - Dst: g_message
      Src: /src/fwupd/src/fu-dbus-daemon.c:3188,1
    - Dst: g_dbus_server_get_client_address
      Src: /src/fwupd/src/fu-dbus-daemon.c:3188,1
    - Dst: g_dbus_server_start
      Src: /src/fwupd/src/fu-dbus-daemon.c:3189,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-dbus-daemon.c:3190,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-dbus-daemon.c:3192,1
    - Dst: g_bus_own_name
      Src: /src/fwupd/src/fu-dbus-daemon.c:3195,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-dbus-daemon.c:3205,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: 3209
      start: 3099
    functionDepth: 1
    functionLinenumber: 3099
    functionLinenumberEnd: 3209
    functionName: fu_dbus_daemon_setup
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_dbus_generate_guid
    - g_bus_own_name
    - g_signal_connect
    - g_log_get_debug_enabled
    - g_prefix_error_literal
    - g_dbus_server_get_client_address
    - fu_daemon_get_engine
    - fu_progress_add_step
    - FU_ENGINE
    - fu_progress_step_done
    - fu_engine_load
    - fu_dbus_daemon_load_introspection
    - g_dbus_server_new_sync
    - fu_progress_get_child
    - fu_progress_set_id
    - g_message
    - FU_DBUS_DAEMON
    - fu_progress_set_profile
    - fu_polkit_authority_new
    - G_CALLBACK
    - fu_polkit_authority_load
    - g_autoptr
    - g_dbus_server_start
    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:3216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDbusDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3217
      start: 3211
    functionDepth: 0
    functionLinenumber: 3211
    functionLinenumberEnd: 3217
    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:3222,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:3224,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:3226,1
    - Dst: g_bus_unown_name
      Src: /src/fwupd/src/fu-dbus-daemon.c:3228,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:3230,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:3232,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:3234,1
    - Dst: g_dbus_node_info_unref
      Src: /src/fwupd/src/fu-dbus-daemon.c:3236,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-dbus-daemon.c:3238,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3239
      start: 3219
    functionDepth: 0
    functionLinenumber: 3219
    functionLinenumberEnd: 3239
    functionName: fu_dbus_daemon_finalize
    functionSourceFile: /src/fwupd/src/fu-dbus-daemon.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_object_unref
    - FU_DBUS_DAEMON
    - G_OBJECT_CLASS
    - g_bus_unown_name
    - g_dbus_node_info_unref
    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:3244,1
    - Dst: FU_DAEMON_CLASS
      Src: /src/fwupd/src/fu-dbus-daemon.c:3245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDbusDaemonClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3248
      start: 3241
    functionDepth: 0
    functionLinenumber: 3241
    functionLinenumberEnd: 3248
    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:3253,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-dbus-daemon.c:3253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3254
      start: 3250
    functionDepth: 0
    functionLinenumber: 3250
    functionLinenumberEnd: 3254
    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:
    - g_return_if_fail
    - FU_IS_CLIENT
    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_return_val_if_fail
    - g_hash_table_lookup
    - 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_strdup
    - g_hash_table_insert
    - g_return_if_fail
    - FU_IS_CLIENT
    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*
    - FuClientFlags
    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_notify
    - G_OBJECT
    - g_return_if_fail
    - FU_IS_CLIENT
    linkageType: ''
    returnType: void
    signature: void fu_client_add_flag(FuClient *self, FuClientFlags 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*
    - FuClientFlags
    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_notify
    - G_OBJECT
    - g_return_if_fail
    - FU_IS_CLIENT
    linkageType: ''
    returnType: void
    signature: void fu_client_remove_flag(FuClient *self, FuClientFlags 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*
    - FuClientFlags
    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, FuClientFlags 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:
    - g_value_set_string
    - FU_CLIENT
    - 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:
    - g_value_dup_string
    - FU_CLIENT
    - g_value_get_uint64
    - fu_client_add_flag
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    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_hash_table_unref
    - g_free
    - G_OBJECT_CLASS
    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_object_class_install_property
    - g_param_spec_string
    - g_param_spec_uint64
    - 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_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:28,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-engine-test.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:29,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine-test.c:31,1
    - Dst: fu_temporary_directory_get_path
      Src: /src/fwupd/src/fu-engine-test.c:31,1
    - Dst: fwupd_remote_set_id
      Src: /src/fwupd/src/fu-engine-test.c:32,1
    - Dst: fwupd_remote_set_metadata_uri
      Src: /src/fwupd/src/fu-engine-test.c:33,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:34,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/src/fu-engine-test.c:36,1
    - Dst: fu_remote_save_to_filename
      Src: /src/fwupd/src/fu-engine-test.c:37,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:38,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tmpdir
    argTypes:
    - FuTemporaryDirectory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 40
    functionName: fu_engine_save_remote_broken
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_temporary_directory_get_path
    - g_assert_true
    - fwupd_remote_new
    - fu_temporary_directory_build
    - g_assert_no_error
    - fu_remote_save_to_filename
    - fwupd_remote_set_id
    - g_strdup_printf
    - fwupd_remote_add_flag
    - fwupd_remote_set_metadata_uri
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_save_remote_broken(FuTemporaryDirectory *tmpdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:48,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-engine-test.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:49,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine-test.c:51,1
    - Dst: fu_temporary_directory_get_path
      Src: /src/fwupd/src/fu-engine-test.c:51,1
    - Dst: fwupd_remote_set_id
      Src: /src/fwupd/src/fu-engine-test.c:52,1
    - Dst: fwupd_remote_set_metadata_uri
      Src: /src/fwupd/src/fu-engine-test.c:53,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:54,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/src/fu-engine-test.c:56,1
    - Dst: fu_remote_save_to_filename
      Src: /src/fwupd/src/fu-engine-test.c:57,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:58,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tmpdir
    argTypes:
    - FuTemporaryDirectory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 60
    functionName: fu_engine_save_remote_stable
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_temporary_directory_get_path
    - g_assert_true
    - fwupd_remote_new
    - fu_temporary_directory_build
    - g_assert_no_error
    - fu_remote_save_to_filename
    - fwupd_remote_set_id
    - g_strdup_printf
    - fwupd_remote_add_flag
    - fwupd_remote_set_metadata_uri
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_save_remote_stable(FuTemporaryDirectory *tmpdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:68,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-engine-test.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:69,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine-test.c:71,1
    - Dst: fu_temporary_directory_get_path
      Src: /src/fwupd/src/fu-engine-test.c:71,1
    - Dst: fwupd_remote_set_id
      Src: /src/fwupd/src/fu-engine-test.c:72,1
    - Dst: fwupd_remote_set_metadata_uri
      Src: /src/fwupd/src/fu-engine-test.c:73,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:74,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/src/fu-engine-test.c:76,1
    - Dst: fu_remote_save_to_filename
      Src: /src/fwupd/src/fu-engine-test.c:77,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:78,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tmpdir
    argTypes:
    - FuTemporaryDirectory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 80
    functionName: fu_engine_save_remote_directory
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_temporary_directory_get_path
    - g_assert_true
    - fwupd_remote_new
    - fu_temporary_directory_build
    - g_assert_no_error
    - fu_remote_save_to_filename
    - fwupd_remote_set_id
    - g_strdup_printf
    - fwupd_remote_add_flag
    - fwupd_remote_set_metadata_uri
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_save_remote_directory(FuTemporaryDirectory *tmpdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:88,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-engine-test.c:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:89,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine-test.c:91,1
    - Dst: fu_temporary_directory_get_path
      Src: /src/fwupd/src/fu-engine-test.c:91,1
    - Dst: fwupd_remote_set_id
      Src: /src/fwupd/src/fu-engine-test.c:92,1
    - Dst: fwupd_remote_set_metadata_uri
      Src: /src/fwupd/src/fu-engine-test.c:93,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:94,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:95,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/src/fu-engine-test.c:97,1
    - Dst: fu_remote_save_to_filename
      Src: /src/fwupd/src/fu-engine-test.c:98,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:99,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - tmpdir
    argTypes:
    - FuTemporaryDirectory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 101
    functionName: fu_engine_save_remote_testing
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_temporary_directory_get_path
    - g_assert_true
    - fwupd_remote_new
    - fu_temporary_directory_build
    - g_assert_no_error
    - fu_remote_save_to_filename
    - fwupd_remote_set_id
    - g_strdup_printf
    - fwupd_remote_add_flag
    - fwupd_remote_set_metadata_uri
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_save_remote_testing(FuTemporaryDirectory *tmpdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:110,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:110,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:111,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:112,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:112,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:113,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:113,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:114,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:115,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:117,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-engine-test.c:120,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:121,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:122,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:123,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:124,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:125,1
    - Dst: fu_engine_save_remote_directory
      Src: /src/fwupd/src/fu-engine-test.c:126,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-test.c:129,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-engine-test.c:136,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:137,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:138,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/src/fu-engine-test.c:139,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-engine-test.c:140,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:141,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:142,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:145,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:149,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:150,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:151,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:152,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:153,1
    - Dst: fu_engine_get_component_by_guids
      Src: /src/fwupd/src/fu-engine-test.c:154,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:155,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-engine-test.c:158,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:159,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-engine-test.c:162,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:163,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-engine-test.c:164,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 166
    functionName: fu_engine_generate_md_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_context_set_tmpdir
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - g_autoptr
    - fu_device_set_version_format
    - fu_engine_new
    - fu_device_new
    - fu_device_add_instance_id
    - fu_bytes_set_contents
    - fu_temporary_directory_new
    - fu_engine_save_remote_directory
    - fu_engine_get_component_by_guids
    - fu_engine_load
    - xb_node_query_text
    - fu_bytes_get_contents
    - g_assert_no_error
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - fu_temporary_directory_build
    linkageType: ''
    returnType: void
    signature: void fu_engine_generate_md_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:172,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:172,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:173,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:174,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/src/fu-engine-test.c:174,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:175,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:176,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:177,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:177,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-engine-test.c:181,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:182,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:183,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:184,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/src/fu-engine-test.c:185,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-engine-test.c:187,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:193,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:194,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:196,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:197,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:199,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:200,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:201,1
    - Dst: fu_engine_plugin_allows_enumeration
      Src: /src/fwupd/src/fu-engine-test.c:204,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:205,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:208,1
    - Dst: fu_engine_plugin_allows_enumeration
      Src: /src/fwupd/src/fu-engine-test.c:209,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-test.c:210,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-engine-test.c:213,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:214,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:215,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-engine-test.c:216,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:218,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:219,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:221,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:222,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:223,1
    - Dst: fu_engine_plugin_allows_enumeration
      Src: /src/fwupd/src/fu-engine-test.c:226,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:227,1
    - Dst: fu_plugin_remove_flag
      Src: /src/fwupd/src/fu-engine-test.c:230,1
    - Dst: fu_engine_plugin_allows_enumeration
      Src: /src/fwupd/src/fu-engine-test.c:231,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 233
    functionName: fu_engine_test_plugin_mutable_enumeration
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - g_clear_object
    - fu_engine_plugin_allows_enumeration
    - fu_context_set_tmpdir
    - fu_plugin_add_flag
    - g_assert_nonnull
    - g_assert_no_error
    - fu_temporary_directory_build
    - fu_engine_new
    - fu_engine_load
    - fu_plugin_remove_flag
    - fu_progress_new
    - g_assert_false
    - fu_plugin_new
    - fu_context_new_full
    - g_assert_true
    - fu_temporary_directory_new
    - g_autoptr
    - g_file_set_contents
    linkageType: ''
    returnType: void
    signature: void fu_engine_test_plugin_mutable_enumeration(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:238,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:238,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:239,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:239,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:240,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:240,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:241,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:241,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:242,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:242,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:243,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:243,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:246,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:249,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:250,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:251,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:252,1
    - Dst: fu_device_add_parent_guid
      Src: /src/fwupd/src/fu-engine-test.c:253,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:254,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:257,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:258,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:259,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:260,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/src/fu-engine-test.c:261,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:264,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:265,1
    - Dst: fu_device_add_parent_guid
      Src: /src/fwupd/src/fu-engine-test.c:266,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-engine-test.c:267,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:270,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:273,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:276,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-engine-test.c:276,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:277,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-engine-test.c:277,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:278,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/src/fu-engine-test.c:278,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:281,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-engine-test.c:281,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:282,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-engine-test.c:282,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:283,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-engine-test.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 284
    functionName: fu_engine_device_parent_guid_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_get_parent_internal
    - fu_context_new_full
    - xb_silo_new
    - fu_engine_new
    - fu_device_new
    - fu_device_add_instance_id
    - g_assert_cmpint
    - fu_device_set_vendor
    - fu_engine_set_silo
    - fu_device_get_vendor
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_device_build_vendor_id_u16
    - fu_device_set_id
    - fu_device_get_order
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - fu_device_add_parent_guid
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_parent_guid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:289,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:289,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:290,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:290,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:291,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:291,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:292,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:292,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:293,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:293,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:294,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:294,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:295,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:295,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:296,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:296,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:299,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:302,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-test.c:303,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/src/fu-engine-test.c:304,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:305,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:306,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:307,1
    - Dst: fu_device_add_parent_physical_id
      Src: /src/fwupd/src/fu-engine-test.c:308,1
    - Dst: fu_device_add_parent_physical_id
      Src: /src/fwupd/src/fu-engine-test.c:309,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:310,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:313,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-test.c:314,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/src/fu-engine-test.c:315,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/src/fu-engine-test.c:316,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:317,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:318,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:319,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/src/fu-engine-test.c:320,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:321,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:324,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-test.c:325,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/src/fu-engine-test.c:326,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:327,1
    - Dst: fu_device_add_parent_physical_id
      Src: /src/fwupd/src/fu-engine-test.c:328,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-engine-test.c:329,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:332,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:335,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-test.c:336,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/src/fu-engine-test.c:337,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/src/fu-engine-test.c:338,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:339,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:340,1
    - Dst: fu_device_add_parent_physical_id
      Src: /src/fwupd/src/fu-engine-test.c:341,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:342,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:345,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:348,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-test.c:349,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/src/fu-engine-test.c:350,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/src/fu-engine-test.c:351,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:352,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:353,1
    - Dst: fu_device_add_parent_backend_id
      Src: /src/fwupd/src/fu-engine-test.c:354,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:355,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:358,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:361,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-engine-test.c:361,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:362,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-engine-test.c:362,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:363,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-engine-test.c:363,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:364,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-engine-test.c:364,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:365,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/src/fu-engine-test.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 366
    functionName: fu_engine_device_parent_id_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_get_parent_internal
    - fu_device_add_private_flag
    - fu_context_new_full
    - xb_silo_new
    - fu_engine_new
    - fu_device_new
    - fu_device_add_instance_id
    - fu_device_set_physical_id
    - fu_device_set_vendor
    - fu_engine_set_silo
    - fu_device_get_vendor
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_device_build_vendor_id_u16
    - fu_device_set_id
    - fu_device_set_name
    - fu_device_add_parent_backend_id
    - fu_device_set_backend_id
    - fu_device_add_parent_physical_id
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - fu_device_build_vendor_id
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_parent_id_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:372,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:372,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:373,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:373,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:374,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:374,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:375,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:375,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:376,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/src/fu-engine-test.c:376,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:377,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:378,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:379,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:380,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:380,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:383,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/src/fu-engine-test.c:386,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-engine-test.c:387,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:390,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:391,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:392,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-engine-test.c:393,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:394,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:395,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:396,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:397,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:398,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:399,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-engine-test.c:400,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/src/fu-engine-test.c:401,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:402,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:403,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:404,1
    - Dst: fu_engine_unlock
      Src: /src/fwupd/src/fu-engine-test.c:407,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-test.c:408,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-test.c:409,1
    - Dst: fu_engine_unlock
      Src: /src/fwupd/src/fu-engine-test.c:412,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-test.c:413,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-test.c:414,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:417,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:418,1
    - Dst: fu_engine_unlock
      Src: /src/fwupd/src/fu-engine-test.c:419,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:420,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:421,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:424,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:425,1
    - Dst: fu_engine_unlock
      Src: /src/fwupd/src/fu-engine-test.c:426,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:427,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:428,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:431,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:432,1
    - Dst: fu_engine_unlock
      Src: /src/fwupd/src/fu-engine-test.c:433,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:434,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 436
    functionName: fu_engine_partial_hash_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_plugin
    - fu_engine_unlock
    - fu_context_new_full
    - xb_silo_new
    - fu_engine_new
    - fu_device_new
    - fu_device_add_instance_id
    - fu_engine_add_plugin
    - fu_device_set_equivalent_id
    - fu_engine_set_silo
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_device_build_vendor_id_u16
    - fu_device_set_id
    - fu_plugin_set_name
    - g_assert_false
    - fu_plugin_new
    - g_assert_error
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_partial_hash_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:444,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:444,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:445,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:445,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:446,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:446,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:447,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:447,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:448,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:449,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:450,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-engine-test.c:450,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:451,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-engine-test.c:451,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:452,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:455,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:456,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:457,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-test.c:460,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-engine-test.c:461,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-engine-test.c:462,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:463,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:464,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-engine-test.c:465,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-engine-test.c:466,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:467,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:468,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:469,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:472,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:473,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:474,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:475,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:476,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:477,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:478,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:479,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:480,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/src/fu-engine-test.c:483,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-engine-test.c:483,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:484,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-test.c:485,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 486
    functionName: fu_engine_device_unlock_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - xb_builder_compile
    - xb_builder_source_new
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_engine_new
    - fu_device_new
    - fu_device_add_instance_id
    - xb_builder_import_source
    - fwupd_device_get_release_default
    - fu_engine_set_silo
    - g_file_new_for_path
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_device_build_vendor_id_u16
    - fu_engine_load
    - fu_device_set_id
    - FWUPD_DEVICE
    - g_assert_false
    - xb_builder_source_load_file
    - g_assert_no_error
    - fwupd_release_has_flag
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - xb_builder_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_unlock_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:492,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:492,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:493,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:493,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:494,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:494,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:495,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:496,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:497,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:497,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:498,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:498,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:499,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:500,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:503,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:504,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:505,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:508,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-test.c:509,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:510,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:511,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:512,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:513,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:514,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:515,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:518,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-test.c:519,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/src/fu-engine-test.c:520,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/src/fu-engine-test.c:521,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:522,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:523,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:524,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:525,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:526,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:527,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-engine-test.c:530,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:531,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:532,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:533,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine-test.c:534,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:535,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:536,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:537,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:537,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:540,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:540,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-test.c:541,1
    - Dst: fu_device_has_problem
      Src: /src/fwupd/src/fu-engine-test.c:541,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:545,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine-test.c:547,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:551,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-test.c:552,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:552,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:553,1
    - Dst: fu_device_has_problem
      Src: /src/fwupd/src/fu-engine-test.c:553,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 554
    functionName: fu_engine_device_equivalent_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_engine_get_devices
    - g_assert_nonnull
    - fu_engine_get_device
    - g_object_ref
    - fu_progress_new
    - fu_context_new_full
    - fu_engine_new
    - g_ptr_array_index
    - fu_device_new
    - fu_device_add_instance_id
    - g_assert_cmpint
    - fu_device_set_equivalent_id
    - fu_device_has_flag
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_device_build_vendor_id_u16
    - fu_engine_load
    - fu_device_set_id
    - fu_device_set_name
    - g_assert_false
    - g_assert_no_error
    - fu_device_has_problem
    - fu_device_get_id
    - fu_device_set_priority
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_equivalent_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:560,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:560,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:561,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:561,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:562,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:562,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:563,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:563,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:564,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:565,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-engine-test.c:565,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:566,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-engine-test.c:566,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:567,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:586,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:587,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:588,1
    - Dst: xb_builder_source_load_xml
      Src: /src/fwupd/src/fu-engine-test.c:591,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:592,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:593,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-engine-test.c:594,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-engine-test.c:595,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:596,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:597,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:598,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:601,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:602,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:603,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:604,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:605,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:606,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:607,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:608,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:609,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:610,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:613,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 615
    functionName: fu_engine_device_md_set_flags_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - xb_builder_compile
    - xb_builder_source_new
    - fu_device_set_version
    - fu_device_add_private_flag
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_engine_new
    - fu_device_new
    - fu_device_add_instance_id
    - xb_builder_import_source
    - fu_engine_set_silo
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_device_build_vendor_id_u16
    - fu_engine_load
    - fu_device_set_id
    - xb_builder_source_load_xml
    - g_assert_no_error
    - fu_device_has_private_flag
    - g_assert_true
    - g_autoptr
    - xb_builder_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_md_set_flags_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:621,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:621,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:622,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:622,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:623,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:623,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:624,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:624,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:625,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:626,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-engine-test.c:626,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:627,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-engine-test.c:627,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:628,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:653,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:654,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:655,1
    - Dst: xb_builder_source_load_xml
      Src: /src/fwupd/src/fu-engine-test.c:658,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:659,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:660,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-engine-test.c:661,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-engine-test.c:662,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:663,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:664,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:665,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:668,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:669,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:670,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:671,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:672,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:673,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:674,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:675,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:676,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:677,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/src/fu-engine-test.c:678,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:680,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:681,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:684,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-test.c:684,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:685,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine-test.c:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 686
    functionName: fu_engine_device_md_checksum_set_version_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - xb_builder_compile
    - xb_builder_source_new
    - fu_device_set_version
    - fu_device_add_private_flag
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_engine_new
    - fu_device_new
    - fu_device_add_instance_id
    - xb_builder_import_source
    - g_assert_cmpint
    - fu_engine_set_silo
    - fu_device_add_protocol
    - fu_device_get_version_format
    - fu_engine_add_device
    - fu_device_build_vendor_id_u16
    - fu_engine_load
    - fu_device_set_id
    - xb_builder_source_load_xml
    - g_assert_no_error
    - fu_device_get_version
    - fu_device_add_checksum
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - xb_builder_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_md_checksum_set_version_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:692,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:692,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:693,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:693,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:694,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:694,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:695,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:695,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:696,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:697,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-engine-test.c:697,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:698,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-engine-test.c:698,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:699,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:724,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:725,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:726,1
    - Dst: xb_builder_source_load_xml
      Src: /src/fwupd/src/fu-engine-test.c:729,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:730,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:731,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-engine-test.c:732,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-engine-test.c:733,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:734,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:735,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:736,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:739,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:740,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:741,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:742,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:743,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:744,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:745,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:746,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:747,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/src/fu-engine-test.c:748,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:750,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:751,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:754,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-test.c:754,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:755,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine-test.c:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 756
    functionName: fu_engine_device_md_checksum_set_version_wrong_proto_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - xb_builder_compile
    - xb_builder_source_new
    - fu_device_set_version
    - fu_device_add_private_flag
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_engine_new
    - fu_device_new
    - fu_device_add_instance_id
    - xb_builder_import_source
    - g_assert_cmpint
    - fu_engine_set_silo
    - fu_device_add_protocol
    - fu_device_get_version_format
    - fu_engine_add_device
    - fu_device_build_vendor_id_u16
    - fu_engine_load
    - fu_device_set_id
    - xb_builder_source_load_xml
    - g_assert_no_error
    - fu_device_get_version
    - fu_device_add_checksum
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - xb_builder_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_md_checksum_set_version_wrong_proto_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:764,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:765,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:765,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:766,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:766,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:767,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:767,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:768,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-test.c:768,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:769,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:769,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:770,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-test.c:770,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:771,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:772,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:773,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:774,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:774,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-test.c:777,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-test.c:778,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/src/fu-engine-test.c:781,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:782,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:783,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:786,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:789,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:790,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:791,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-test.c:795,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-engine-test.c:796,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:797,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:798,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-engine-test.c:799,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:800,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:801,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:804,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:805,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:806,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:807,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:808,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:809,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:810,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:811,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:812,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-engine-test.c:815,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:816,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:817,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-test.c:820,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-test.c:821,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-test.c:822,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:823,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:824,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-test.c:825,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-test.c:826,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:827,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:828,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-test.c:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 832
    functionName: fu_engine_require_hwid_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_engine_build_cabinet_from_stream
    - fu_device_set_version
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_input_stream_from_path
    - xb_silo_new
    - fu_context_load_hwinfo
    - fu_engine_new
    - fu_device_new
    - fu_cabinet_get_component
    - fu_engine_requirements_check
    - fu_device_add_instance_id
    - fu_engine_set_silo
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_release_new
    - fu_device_build_vendor_id_u16
    - fu_release_set_device
    - fu_engine_load
    - fu_device_set_id
    - g_assert_false
    - fu_release_load
    - fu_engine_request_new
    - fu_context_set_path
    - g_assert_error
    - g_assert_no_error
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_require_hwid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:842,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:842,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:843,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:843,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:844,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:844,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:845,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-test.c:845,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:846,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:846,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:847,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:848,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:849,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:850,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:850,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:853,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:856,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:857,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:858,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:861,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-test.c:862,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:863,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:864,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:865,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:866,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:867,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:868,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:869,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:870,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-test.c:874,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-engine-test.c:875,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:876,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:877,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-engine-test.c:878,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:879,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:880,1
    - Dst: fu_engine_get_details
      Src: /src/fwupd/src/fu-engine-test.c:881,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:882,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:883,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:884,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:885,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:886,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine-test.c:886,1
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-engine-test.c:887,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:888,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:889,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine-test.c:889,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:890,1
    - Dst: fwupd_release_has_checksum
      Src: /src/fwupd/src/fu-engine-test.c:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 891
    functionName: fu_engine_get_details_added_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_engine_get_details
    - fu_device_set_version
    - fu_device_get_release_default
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - fu_device_get_name
    - fu_device_set_version_format
    - fu_input_stream_from_path
    - xb_silo_new
    - fu_engine_new
    - g_ptr_array_index
    - fu_device_new
    - fwupd_release_has_checksum
    - fu_device_add_instance_id
    - g_assert_cmpint
    - fu_engine_set_silo
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_device_build_vendor_id_u16
    - fu_engine_load
    - fu_device_set_id
    - fu_device_set_name
    - fu_engine_request_new
    - fu_input_stream_compute_checksum
    - g_assert_no_error
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - fwupd_release_get_version
    linkageType: ''
    returnType: void
    signature: void fu_engine_get_details_added_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:900,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:900,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:901,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:901,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:902,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-test.c:902,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:903,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:903,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:904,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:905,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:906,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:907,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:907,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:910,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:913,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:914,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:915,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-test.c:919,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-engine-test.c:920,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:921,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:922,1
    - Dst: fu_engine_get_details
      Src: /src/fwupd/src/fu-engine-test.c:923,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:924,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:925,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:926,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:927,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:928,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine-test.c:928,1
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-engine-test.c:929,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:930,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:931,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine-test.c:931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 932
    functionName: fu_engine_get_details_missing_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_details
    - fu_device_get_release_default
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - fu_device_get_name
    - fu_input_stream_from_path
    - xb_silo_new
    - fu_engine_new
    - g_ptr_array_index
    - g_assert_cmpint
    - fu_engine_set_silo
    - fu_engine_load
    - fu_engine_request_new
    - g_assert_no_error
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - fwupd_release_get_version
    linkageType: ''
    returnType: void
    signature: void fu_engine_get_details_missing_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:941,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:941,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:942,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:942,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:943,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:943,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:944,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-test.c:944,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:945,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:945,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:946,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:947,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:948,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:949,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:950,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:950,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-engine-test.c:953,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:954,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:955,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:956,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:957,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:958,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-test.c:959,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-test.c:960,1
    - Dst: fu_engine_save_remote_broken
      Src: /src/fwupd/src/fu-engine-test.c:961,1
    - Dst: fu_engine_save_remote_stable
      Src: /src/fwupd/src/fu-engine-test.c:962,1
    - Dst: fu_engine_save_remote_testing
      Src: /src/fwupd/src/fu-engine-test.c:963,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:966,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/src/fu-engine-test.c:969,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-engine-test.c:970,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1012,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1013,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:1015,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1019,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1020,1
    - Dst: g_test_assert_expected_messages
      Src: /src/fwupd/src/fu-engine-test.c:1021,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:1024,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:1025,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:1026,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:1027,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:1028,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-test.c:1029,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:1030,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:1031,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:1032,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:1033,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-engine-test.c:1034,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1035,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1036,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1037,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1038,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:1038,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1039,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:1039,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:1040,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/src/fu-engine-test.c:1040,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:1041,1
    - Dst: fu_device_get_version_highest
      Src: /src/fwupd/src/fu-engine-test.c:1041,1
    - Dst: fu_engine_get_releases
      Src: /src/fwupd/src/fu-engine-test.c:1044,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:1044,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1045,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1046,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1047,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine-test.c:1048,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:1048,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:1049,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine-test.c:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 934
    functionDepth: 2
    functionLinenumber: 934
    functionLinenumberEnd: 1050
    functionName: fu_engine_version_highest_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - fu_engine_get_devices
    - fu_context_set_tmpdir
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - g_autoptr
    - fu_device_set_version_format
    - fu_device_get_version_lowest
    - xb_silo_new
    - fu_engine_new
    - g_ptr_array_index
    - fu_device_new
    - g_test_assert_expected_messages
    - fu_device_add_instance_id
    - g_assert_cmpint
    - fu_device_get_version_highest
    - fu_device_has_flag
    - fu_engine_save_remote_broken
    - fu_engine_set_silo
    - fu_temporary_directory_new
    - fu_device_add_protocol
    - fu_engine_save_remote_stable
    - fu_engine_add_device
    - fu_engine_get_releases
    - fu_device_build_vendor_id_u16
    - fu_engine_load
    - fu_device_set_id
    - fu_device_set_name
    - fwupd_release_get_version
    - FWUPD_RELEASE
    - fu_engine_request_new
    - fu_context_set_path
    - g_assert_no_error
    - fu_device_has_private_flag
    - fu_device_get_id
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - fu_temporary_directory_build
    - fu_engine_save_remote_testing
    - g_file_set_contents
    linkageType: ''
    returnType: void
    signature: void fu_engine_version_highest_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1060,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:1060,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1061,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:1061,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1062,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:1062,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1063,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-test.c:1063,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1064,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:1064,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1065,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1066,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1067,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1068,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1069,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1070,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1071,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1072,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1073,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1074,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:1074,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-engine-test.c:1077,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1078,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1079,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:1080,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:1081,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:1082,1
    - Dst: fu_engine_save_remote_broken
      Src: /src/fwupd/src/fu-engine-test.c:1083,1
    - Dst: fu_engine_save_remote_stable
      Src: /src/fwupd/src/fu-engine-test.c:1084,1
    - Dst: fu_engine_save_remote_testing
      Src: /src/fwupd/src/fu-engine-test.c:1085,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:1088,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/src/fu-engine-test.c:1091,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-engine-test.c:1092,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1093,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1094,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/src/fu-engine-test.c:1097,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-engine-test.c:1098,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1131,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1132,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/src/fu-engine-test.c:1135,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-engine-test.c:1136,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1169,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1170,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:1172,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1176,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1177,1
    - Dst: g_test_assert_expected_messages
      Src: /src/fwupd/src/fu-engine-test.c:1178,1
    - Dst: fu_engine_get_remotes
      Src: /src/fwupd/src/fu-engine-test.c:1181,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1182,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1183,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1184,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-engine-test.c:1187,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-test.c:1188,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-engine-test.c:1189,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-engine-test.c:1190,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:1193,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:1194,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:1195,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:1196,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:1197,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-test.c:1198,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:1199,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:1200,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:1201,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:1202,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-engine-test.c:1203,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1204,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1205,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1206,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1207,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:1207,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1208,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:1208,1
    - Dst: fu_engine_get_releases
      Src: /src/fwupd/src/fu-engine-test.c:1211,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:1211,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1212,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1213,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1214,1
    - Dst: fu_engine_get_upgrades
      Src: /src/fwupd/src/fu-engine-test.c:1217,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:1217,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-test.c:1218,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-engine-test.c:1219,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-engine-test.c:1220,1
    - Dst: fu_engine_add_approved_firmware
      Src: /src/fwupd/src/fu-engine-test.c:1223,1
    - Dst: fu_engine_add_approved_firmware
      Src: /src/fwupd/src/fu-engine-test.c:1224,1
    - Dst: fu_engine_add_approved_firmware
      Src: /src/fwupd/src/fu-engine-test.c:1225,1
    - Dst: fu_engine_add_approved_firmware
      Src: /src/fwupd/src/fu-engine-test.c:1226,1
    - Dst: fu_engine_add_approved_firmware
      Src: /src/fwupd/src/fu-engine-test.c:1227,1
    - Dst: fu_engine_get_upgrades
      Src: /src/fwupd/src/fu-engine-test.c:1230,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:1230,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1231,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1232,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1233,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine-test.c:1236,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:1236,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:1237,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine-test.c:1237,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine-test.c:1238,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:1238,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:1239,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine-test.c:1239,1
    - Dst: fu_engine_get_downgrades
      Src: /src/fwupd/src/fu-engine-test.c:1242,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:1242,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1243,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1244,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1245,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine-test.c:1246,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:1246,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:1247,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine-test.c:1247,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:1250,1
    - Dst: fu_engine_get_upgrades
      Src: /src/fwupd/src/fu-engine-test.c:1251,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:1251,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-test.c:1252,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-engine-test.c:1253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 101
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1052
    functionDepth: 2
    functionLinenumber: 1052
    functionLinenumberEnd: 1254
    functionName: fu_engine_downgrade_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - fu_engine_get_devices
    - fu_context_set_tmpdir
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - g_autoptr
    - fu_device_set_version_format
    - xb_silo_new
    - fu_engine_new
    - g_ptr_array_index
    - fu_device_new
    - g_test_assert_expected_messages
    - fu_device_add_instance_id
    - fu_engine_add_approved_firmware
    - fu_engine_get_downgrades
    - g_assert_cmpint
    - fu_device_has_flag
    - fu_engine_save_remote_broken
    - fu_engine_set_silo
    - fu_temporary_directory_new
    - g_assert_null
    - fu_engine_save_remote_stable
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_engine_get_remotes
    - fu_engine_get_releases
    - fu_device_build_vendor_id_u16
    - fu_engine_load
    - fu_device_set_id
    - fu_device_set_name
    - fwupd_release_get_version
    - FWUPD_RELEASE
    - fu_engine_request_new
    - fu_engine_get_upgrades
    - g_assert_error
    - g_assert_no_error
    - fu_device_has_private_flag
    - g_clear_error
    - fu_device_get_id
    - g_assert_true
    - g_assert_cmpstr
    - fu_temporary_directory_build
    - fu_engine_save_remote_testing
    - g_file_set_contents
    linkageType: ''
    returnType: void
    signature: void fu_engine_downgrade_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1261,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:1261,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1262,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:1262,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1263,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:1263,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1264,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-test.c:1264,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1265,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-test.c:1265,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1266,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:1266,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1267,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1268,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1269,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1270,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1271,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:1271,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-engine-test.c:1274,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1275,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1276,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:1277,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:1278,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:1279,1
    - Dst: fu_engine_save_remote_stable
      Src: /src/fwupd/src/fu-engine-test.c:1280,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:1283,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/src/fu-engine-test.c:1286,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-engine-test.c:1287,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1311,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1312,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:1314,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1318,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1319,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:1322,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:1323,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:1324,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:1325,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:1326,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-test.c:1327,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:1328,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:1329,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:1330,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:1331,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1334,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:1334,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1335,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:1335,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-engine-test.c:1338,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-test.c:1341,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:1341,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1342,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:1342,1
    - Dst: fu_engine_get_upgrades
      Src: /src/fwupd/src/fu-engine-test.c:1345,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:1345,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-test.c:1346,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-engine-test.c:1347,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-engine-test.c:1348,1
    - Dst: fu_engine_request_set_feature_flags
      Src: /src/fwupd/src/fu-engine-test.c:1351,1
    - Dst: fu_engine_get_upgrades
      Src: /src/fwupd/src/fu-engine-test.c:1354,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:1354,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1355,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1356,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1256
    functionDepth: 2
    functionLinenumber: 1256
    functionLinenumberEnd: 1358
    functionName: fu_engine_updatable_hidden_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - fu_context_set_tmpdir
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - g_autoptr
    - fu_device_set_version_format
    - xb_silo_new
    - fu_engine_new
    - fu_device_new
    - fu_device_add_instance_id
    - fu_device_add_problem
    - g_assert_cmpint
    - fu_device_has_flag
    - fu_engine_set_silo
    - fu_temporary_directory_new
    - fu_device_add_protocol
    - fu_engine_save_remote_stable
    - g_assert_null
    - fu_engine_add_device
    - fu_device_build_vendor_id_u16
    - fu_engine_load
    - fu_device_set_id
    - fu_device_set_name
    - g_assert_false
    - fu_engine_request_new
    - fu_engine_get_upgrades
    - g_assert_error
    - g_assert_no_error
    - fu_device_get_id
    - g_clear_error
    - fu_engine_request_set_feature_flags
    - g_assert_true
    - fu_temporary_directory_build
    - g_file_set_contents
    linkageType: ''
    returnType: void
    signature: void fu_engine_updatable_hidden_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1366,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:1366,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1367,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:1367,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1368,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:1368,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1369,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-test.c:1369,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1370,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:1370,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1371,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1372,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1373,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1374,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1375,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:1375,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-engine-test.c:1378,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1379,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1380,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:1381,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:1382,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:1383,1
    - Dst: fu_engine_save_remote_stable
      Src: /src/fwupd/src/fu-engine-test.c:1384,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:1387,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/src/fu-engine-test.c:1390,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-engine-test.c:1391,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1431,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1432,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:1434,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1438,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1439,1
    - Dst: g_test_assert_expected_messages
      Src: /src/fwupd/src/fu-engine-test.c:1440,1
    - Dst: fu_engine_get_remote_by_id
      Src: /src/fwupd/src/fu-engine-test.c:1443,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1444,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1445,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:1448,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/src/fu-engine-test.c:1449,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:1450,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:1451,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:1452,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:1453,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:1454,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:1455,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:1456,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:1457,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:1458,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:1459,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:1460,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:1461,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:1462,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1465,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine-test.c:1465,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:1466,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-test.c:1466,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:1467,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine-test.c:1467,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:1468,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/src/fu-engine-test.c:1468,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1469,1
    - Dst: fu_device_has_icon
      Src: /src/fwupd/src/fu-engine-test.c:1469,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1470,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:1470,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1471,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:1471,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1472,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:1472,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1473,1
    - Dst: fu_device_get_required_free
      Src: /src/fwupd/src/fu-engine-test.c:1473,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-engine-test.c:1476,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1477,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1478,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1479,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1480,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:1480,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1481,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:1481,1
    - Dst: fu_engine_get_releases
      Src: /src/fwupd/src/fu-engine-test.c:1484,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:1484,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1485,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1486,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1360
    functionDepth: 2
    functionLinenumber: 1360
    functionLinenumberEnd: 1488
    functionName: fu_engine_md_verfmt_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - fu_engine_get_devices
    - fu_context_set_tmpdir
    - fu_device_add_private_flag
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - fu_engine_get_remote_by_id
    - g_autoptr
    - fu_device_get_name
    - xb_silo_new
    - fu_engine_new
    - fu_device_new
    - g_test_assert_expected_messages
    - fu_device_add_instance_id
    - g_assert_cmpint
    - fu_device_has_flag
    - fu_engine_set_silo
    - fu_temporary_directory_new
    - fu_device_get_vendor
    - fu_device_add_protocol
    - fu_engine_save_remote_stable
    - fu_device_get_version_format
    - fu_engine_add_device
    - fu_device_set_version_raw
    - fu_engine_get_releases
    - fu_device_build_vendor_id_u16
    - fu_engine_load
    - fu_device_set_id
    - fu_engine_request_new
    - fu_device_has_icon
    - fu_device_get_required_free
    - g_assert_no_error
    - fu_device_has_private_flag
    - fu_device_get_id
    - fu_device_get_version
    - g_assert_true
    - g_assert_cmpstr
    - fu_temporary_directory_build
    - g_file_set_contents
    linkageType: ''
    returnType: void
    signature: void fu_engine_md_verfmt_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1496,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:1496,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1497,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:1497,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1498,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:1498,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1499,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-test.c:1499,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1500,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:1500,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1501,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1502,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1503,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1504,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1505,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:1505,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-engine-test.c:1508,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1509,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1510,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:1511,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:1512,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:1513,1
    - Dst: fu_engine_save_remote_stable
      Src: /src/fwupd/src/fu-engine-test.c:1514,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:1517,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/src/fu-engine-test.c:1520,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-engine-test.c:1521,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1542,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1543,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:1545,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1549,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1550,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:1553,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:1554,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:1555,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:1556,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:1557,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:1558,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/src/fu-engine-test.c:1559,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:1560,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:1561,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:1562,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-engine-test.c:1563,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1564,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1565,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1566,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1567,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:1567,1
    - Dst: fu_engine_get_releases
      Src: /src/fwupd/src/fu-engine-test.c:1570,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:1570,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1571,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1572,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1573,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine-test.c:1574,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:1574,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1575,1
    - Dst: fwupd_release_get_install_duration
      Src: /src/fwupd/src/fu-engine-test.c:1575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1490
    functionDepth: 2
    functionLinenumber: 1490
    functionLinenumberEnd: 1576
    functionName: fu_engine_install_duration_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - fu_engine_get_devices
    - fu_context_set_tmpdir
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - g_autoptr
    - fu_device_set_version_format
    - xb_silo_new
    - fu_engine_new
    - g_ptr_array_index
    - fu_device_new
    - fu_device_add_instance_id
    - g_assert_cmpint
    - fu_device_has_flag
    - fu_engine_set_silo
    - fu_temporary_directory_new
    - fu_device_add_protocol
    - fu_engine_save_remote_stable
    - fu_engine_add_device
    - fwupd_release_get_install_duration
    - fu_engine_get_releases
    - fu_device_build_vendor_id_u16
    - fu_engine_load
    - fu_device_set_id
    - fu_engine_request_new
    - g_assert_no_error
    - fu_device_get_id
    - fu_device_set_install_duration
    - g_assert_true
    - fu_temporary_directory_build
    - FWUPD_RELEASE
    - g_file_set_contents
    linkageType: ''
    returnType: void
    signature: void fu_engine_install_duration_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1583,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:1583,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1584,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:1584,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1585,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:1585,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1586,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-test.c:1586,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1587,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:1587,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1588,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1589,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1590,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1591,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1592,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:1592,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-engine-test.c:1595,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1596,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1597,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:1598,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:1599,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:1600,1
    - Dst: fu_engine_save_remote_stable
      Src: /src/fwupd/src/fu-engine-test.c:1601,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:1604,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/src/fu-engine-test.c:1607,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-engine-test.c:1608,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1636,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1637,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:1639,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1643,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1644,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:1647,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:1648,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:1649,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:1650,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:1651,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:1652,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/src/fu-engine-test.c:1653,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:1654,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:1655,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:1656,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-engine-test.c:1657,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1658,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1659,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1660,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1661,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:1661,1
    - Dst: fu_engine_get_releases
      Src: /src/fwupd/src/fu-engine-test.c:1664,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:1664,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1665,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1666,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1578
    functionDepth: 2
    functionLinenumber: 1578
    functionLinenumberEnd: 1668
    functionName: fu_engine_release_dedupe_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - fu_engine_get_devices
    - fu_context_set_tmpdir
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - g_autoptr
    - fu_device_set_version_format
    - xb_silo_new
    - fu_engine_new
    - fu_device_new
    - fu_device_add_instance_id
    - g_assert_cmpint
    - fu_device_has_flag
    - fu_engine_set_silo
    - fu_temporary_directory_new
    - fu_device_add_protocol
    - fu_engine_save_remote_stable
    - fu_engine_add_device
    - fu_engine_get_releases
    - fu_device_build_vendor_id_u16
    - fu_engine_load
    - fu_device_set_id
    - fu_engine_request_new
    - g_assert_no_error
    - fu_device_get_id
    - fu_device_set_install_duration
    - g_assert_true
    - fu_temporary_directory_build
    - g_file_set_contents
    linkageType: ''
    returnType: void
    signature: void fu_engine_release_dedupe_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1677,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:1677,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1678,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:1678,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1679,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:1679,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1680,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-engine-test.c:1680,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1681,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-test.c:1681,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1682,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1683,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1684,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1685,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-engine-test.c:1685,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1686,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-engine-test.c:1686,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1687,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-engine-test.c:1690,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1691,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1692,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:1693,1
    - Dst: xb_builder_source_load_xml
      Src: /src/fwupd/src/fu-engine-test.c:1696,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1718,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1719,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-engine-test.c:1720,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-engine-test.c:1721,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1722,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1723,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:1724,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:1726,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:1727,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:1728,1
    - Dst: fu_release_set_appstream_id
      Src: /src/fwupd/src/fu-engine-test.c:1729,1
    - Dst: fu_release_add_checksum
      Src: /src/fwupd/src/fu-engine-test.c:1730,1
    - Dst: fu_release_set_version
      Src: /src/fwupd/src/fu-engine-test.c:1731,1
    - Dst: fu_history_remove_all
      Src: /src/fwupd/src/fu-engine-test.c:1733,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1734,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1735,1
    - Dst: fu_history_add_device
      Src: /src/fwupd/src/fu-engine-test.c:1736,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1737,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1738,1
    - Dst: fu_engine_get_history
      Src: /src/fwupd/src/fu-engine-test.c:1741,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1742,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1743,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1744,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:1745,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine-test.c:1747,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-test.c:1748,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:1750,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:1750,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:1753,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-test.c:1753,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1754,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:1754,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1755,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:1755,1
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-engine-test.c:1756,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:1757,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine-test.c:1757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1670
    functionDepth: 1
    functionLinenumber: 1670
    functionLinenumberEnd: 1758
    functionName: fu_engine_history_convert_version_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - xb_builder_compile
    - xb_builder_source_new
    - fu_device_set_version
    - fu_context_set_tmpdir
    - fu_device_get_release_default
    - g_assert_nonnull
    - fu_context_new_full
    - fu_engine_new
    - g_ptr_array_index
    - fu_device_new
    - fu_device_to_string
    - g_debug
    - xb_builder_import_source
    - g_assert_cmpint
    - fu_release_set_appstream_id
    - fu_release_set_version
    - fu_device_has_flag
    - fu_engine_set_silo
    - fu_engine_get_history
    - fu_temporary_directory_new
    - fu_history_new
    - fu_release_new
    - g_assert_cmpstr
    - fu_device_set_id
    - fu_release_add_checksum
    - xb_builder_source_load_xml
    - g_assert_no_error
    - fu_device_get_id
    - fu_device_get_version
    - fu_history_remove_all
    - g_assert_true
    - fu_history_add_device
    - g_autoptr
    - fwupd_release_get_version
    - xb_builder_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_history_convert_version_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1768,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1769,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:1769,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1770,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1771,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:1771,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1772,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:1772,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1773,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1774,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-test.c:1774,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1775,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-engine-test.c:1775,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-engine-test.c:1775,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1776,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:1776,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1777,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1778,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1779,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1780,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1781,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1782,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1783,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1784,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:1784,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-engine-test.c:1787,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1788,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1789,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:1790,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:1793,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/src/fu-engine-test.c:1796,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1797,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1798,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-engine-test.c:1799,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:1801,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1806,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1807,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:1810,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:1811,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:1812,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:1813,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:1814,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-test.c:1815,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-engine-test.c:1816,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:1817,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/src/fu-engine-test.c:1818,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:1819,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:1820,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/src/fu-engine-test.c:1821,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:1822,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-engine-test.c:1823,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1824,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1825,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1826,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1827,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:1827,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-test.c:1830,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-engine-test.c:1831,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1832,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1833,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-engine-test.c:1834,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1835,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1836,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-engine-test.c:1839,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1840,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1841,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/src/fu-engine-test.c:1844,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-test.c:1847,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-test.c:1848,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1849,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1850,1
    - Dst: fu_engine_install_release
      Src: /src/fwupd/src/fu-engine-test.c:1851,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1852,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1853,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1856,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/src/fu-engine-test.c:1856,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-engine-test.c:1859,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-engine-test.c:1860,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:1860,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1861,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1862,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1863,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine-test.c:1863,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:1864,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-engine-test.c:1864,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/src/fu-engine-test.c:1865,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-test.c:1866,1
    - Dst: fwupd_release_get_metadata
      Src: /src/fwupd/src/fu-engine-test.c:1866,1
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-engine-test.c:1866,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine-test.c:1867,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-engine-test.c:1868,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1869,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1870,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine-test.c:1872,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-test.c:1891,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-test.c:1892,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1893,1
    - Dst: fu_engine_get_results
      Src: /src/fwupd/src/fu-engine-test.c:1896,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1897,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1898,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:1899,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:1899,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1900,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine-test.c:1900,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:1901,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-engine-test.c:1901,1
    - Dst: fu_engine_clear_results
      Src: /src/fwupd/src/fu-engine-test.c:1904,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1905,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1906,1
    - Dst: fu_engine_get_results
      Src: /src/fwupd/src/fu-engine-test.c:1909,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-engine-test.c:1910,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-test.c:1911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1760
    functionDepth: 1
    functionLinenumber: 1760
    functionLinenumberEnd: 1912
    functionName: fu_engine_history_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_plugin
    - fu_engine_build_cabinet_from_stream
    - fu_device_set_version
    - fu_device_set_created_usec
    - fu_engine_get_devices
    - fu_context_set_tmpdir
    - fu_device_get_release_default
    - g_assert_nonnull
    - g_strdup_printf
    - fu_progress_new
    - fu_history_get_device_by_id
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_input_stream_from_path
    - xb_silo_new
    - fu_engine_new
    - fu_cabinet_get_component
    - fu_device_new
    - fu_device_add_instance_id
    - fu_plugin_new_from_gtype
    - fu_plugin_set_config_value
    - fu_device_to_string
    - fu_test_plugin_get_type
    - g_debug
    - fu_device_get_update_state
    - fu_device_get_update_error
    - g_assert_cmpint
    - fu_engine_add_plugin
    - fu_engine_clear_results
    - fu_engine_get_results
    - fu_engine_set_silo
    - fu_temporary_directory_new
    - fu_device_add_protocol
    - g_assert_null
    - fu_engine_add_device
    - fu_history_new
    - fu_device_get_metadata_integer
    - fu_release_new
    - fu_device_build_vendor_id_u16
    - fu_release_set_device
    - fu_device_set_modified_usec
    - fu_engine_load
    - fu_device_set_id
    - fu_device_set_name
    - fu_engine_install_release
    - fu_release_load
    - g_strcmp0
    - fwupd_release_get_metadata
    - fu_input_stream_compute_checksum
    - fu_device_set_metadata_integer
    - g_assert_error
    - g_assert_no_error
    - fu_device_has_private_flag
    - fu_device_get_id
    - fu_device_add_checksum
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - g_hash_table_remove_all
    linkageType: ''
    returnType: void
    signature: void fu_engine_history_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1918,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:1918,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1919,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-engine-test.c:1919,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1920,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:1920,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1921,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:1921,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1922,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-engine-test.c:1922,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1923,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-engine-test.c:1923,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-engine-test.c:1923,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1924,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:1924,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1925,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-test.c:1925,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1926,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1927,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1928,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:1928,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-engine-test.c:1931,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1932,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:1933,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:1934,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:1937,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-engine-test.c:1940,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:1941,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1946,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1947,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:1950,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:1951,1
    - Dst: fu_history_add_device
      Src: /src/fwupd/src/fu-engine-test.c:1952,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1953,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1954,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/src/fu-engine-test.c:1957,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:1958,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:1959,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:1960,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:1961,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-engine-test.c:1962,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:1963,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/src/fu-engine-test.c:1964,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:1965,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:1966,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:1967,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/src/fu-engine-test.c:1968,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:1969,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:1970,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine-test.c:1970,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:1971,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-test.c:1971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1972
      start: 1914
    functionDepth: 1
    functionLinenumber: 1914
    functionLinenumberEnd: 1972
    functionName: fu_engine_history_verfmt_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_plugin
    - fu_device_set_created_usec
    - fu_context_set_tmpdir
    - fu_device_add_private_flag
    - g_assert_nonnull
    - g_object_new
    - fu_progress_new
    - fu_context_new_full
    - fu_device_set_version_format
    - xb_silo_new
    - fu_engine_new
    - fu_device_new
    - fu_device_add_instance_id
    - fu_plugin_new_from_gtype
    - fu_test_plugin_get_type
    - g_assert_cmpint
    - fu_engine_add_plugin
    - fu_engine_set_silo
    - fu_temporary_directory_new
    - fu_device_add_protocol
    - fu_device_get_version_format
    - fu_engine_add_device
    - fu_history_new
    - fu_device_set_version_raw
    - fu_release_new
    - fu_device_build_vendor_id_u16
    - g_assert_cmpstr
    - fu_engine_load
    - fu_device_set_id
    - g_assert_no_error
    - fu_device_get_version
    - fu_device_add_checksum
    - g_assert_true
    - fu_history_add_device
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_history_verfmt_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1978,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:1978,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1979,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:1979,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1980,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:1980,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1981,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-engine-test.c:1981,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-engine-test.c:1981,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1982,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:1982,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1983,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-test.c:1983,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1984,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1985,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:1986,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:1986,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:1989,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/src/fu-engine-test.c:1992,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:1993,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:1994,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-engine-test.c:1995,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:1997,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2001,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2002,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:2005,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:2006,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:2007,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:2008,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:2009,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-engine-test.c:2010,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:2011,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:2012,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:2013,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:2014,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/src/fu-engine-test.c:2017,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/src/fu-engine-test.c:2018,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/src/fu-engine-test.c:2020,1
    - Dst: fu_release_set_stream
      Src: /src/fwupd/src/fu-engine-test.c:2021,1
    - Dst: fu_engine_install_blob
      Src: /src/fwupd/src/fu-engine-test.c:2022,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2030,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2031,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:2034,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/src/fu-engine-test.c:2034,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:2037,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/src/fu-engine-test.c:2037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 1974
    functionDepth: 1
    functionLinenumber: 1974
    functionLinenumberEnd: 2038
    functionName: fu_engine_install_loop_restart_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_plugin
    - fu_device_set_version
    - fu_progress_new
    - fu_release_set_stream
    - fu_context_new_full
    - fu_device_set_version_format
    - g_memory_input_stream_new_from_data
    - xb_silo_new
    - fu_engine_new
    - fu_device_new
    - fu_device_add_instance_id
    - fu_plugin_new_from_gtype
    - fu_plugin_set_config_value
    - fu_test_plugin_get_type
    - g_assert_cmpint
    - fu_engine_add_plugin
    - fu_engine_set_silo
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_device_get_metadata_integer
    - fu_release_new
    - fu_device_build_vendor_id_u16
    - fu_engine_load
    - fu_device_set_id
    - fu_device_set_metadata_integer
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    - fu_engine_install_blob
    linkageType: ''
    returnType: void
    signature: void fu_engine_install_loop_restart_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2046,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2047,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:2047,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2048,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:2048,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2049,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:2049,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2050,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-engine-test.c:2050,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-engine-test.c:2050,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2051,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:2051,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2052,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2053,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2054,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2055,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:2055,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2056,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-test.c:2056,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2057,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2058,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2059,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-test.c:2062,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-test.c:2063,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:2066,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-engine-test.c:2069,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:2071,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2075,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2076,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:2079,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:2080,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:2081,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:2082,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:2083,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-test.c:2084,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-engine-test.c:2085,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:2086,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/src/fu-engine-test.c:2087,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:2088,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:2089,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:2090,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/src/fu-engine-test.c:2091,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:2092,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-test.c:2094,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-engine-test.c:2099,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2100,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2101,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-engine-test.c:2102,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2103,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2104,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-engine-test.c:2107,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2108,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2109,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/src/fu-engine-test.c:2112,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/src/fu-engine-test.c:2113,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-engine-test.c:2116,1
    - Dst: xb_node_get_silo
      Src: /src/fwupd/src/fu-engine-test.c:2116,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2120,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2121,1
    - Dst: xb_node_query_full
      Src: /src/fwupd/src/fu-engine-test.c:2122,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2123,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2124,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-test.c:2126,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:2128,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2129,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-test.c:2129,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-test.c:2130,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-test.c:2131,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2137,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2138,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-test.c:2139,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine-test.c:2139,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/src/fu-engine-test.c:2143,1
    - Dst: fu_engine_install_releases
      Src: /src/fwupd/src/fu-engine-test.c:2144,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2151,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2152,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:2155,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/src/fu-engine-test.c:2155,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:2156,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/src/fu-engine-test.c:2156,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2157,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-test.c:2157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2040
    functionDepth: 1
    functionLinenumber: 2040
    functionLinenumberEnd: 2158
    functionName: fu_engine_multiple_rels_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_plugin
    - fu_engine_build_cabinet_from_stream
    - fu_device_set_version
    - xb_node_query_full
    - fu_device_set_created_usec
    - fu_progress_reset
    - g_assert_nonnull
    - g_object_ref
    - fu_progress_new
    - xb_node_get_silo
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_engine_install_releases
    - fu_input_stream_from_path
    - xb_silo_new
    - fu_engine_new
    - fu_cabinet_get_component
    - fu_device_new
    - g_ptr_array_index
    - fu_device_add_instance_id
    - fu_plugin_new_from_gtype
    - fu_test_plugin_get_type
    - g_assert_cmpint
    - fu_engine_add_plugin
    - xb_query_new_full
    - fu_engine_set_silo
    - g_ptr_array_new_with_free_func
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_device_get_metadata_integer
    - fu_release_new
    - fu_device_build_vendor_id_u16
    - fu_release_set_device
    - fu_engine_load
    - fu_device_set_id
    - fu_device_set_name
    - fu_release_load
    - fu_engine_request_new
    - fu_context_set_path
    - fu_device_set_metadata_integer
    - g_ptr_array_add
    - g_assert_no_error
    - fu_device_get_version
    - fu_device_add_checksum
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_multiple_rels_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2165,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2166,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:2166,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2167,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:2167,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2168,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:2168,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2169,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-test.c:2169,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2170,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-engine-test.c:2170,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-engine-test.c:2170,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2171,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:2171,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2172,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2173,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2174,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2175,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2176,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2177,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:2177,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-engine-test.c:2180,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2181,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2182,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:2183,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:2186,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/src/fu-engine-test.c:2189,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2190,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2191,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-engine-test.c:2192,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:2193,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2198,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2199,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:2202,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:2203,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:2204,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:2205,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:2206,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-test.c:2207,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-engine-test.c:2208,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:2209,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:2210,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:2211,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/src/fu-engine-test.c:2212,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:2213,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-engine-test.c:2214,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2215,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2216,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:2217,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2218,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:2218,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-test.c:2221,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-engine-test.c:2222,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2223,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2224,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-engine-test.c:2225,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2226,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2227,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-engine-test.c:2230,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2231,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2232,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-test.c:2235,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-test.c:2236,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2237,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2238,1
    - Dst: fu_engine_install_release
      Src: /src/fwupd/src/fu-engine-test.c:2239,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2240,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2241,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2244,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:2244,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2245,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-test.c:2245,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/src/fu-engine-test.c:2248,1
    - Dst: fu_engine_activate
      Src: /src/fwupd/src/fu-engine-test.c:2249,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:2249,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2250,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2251,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-test.c:2254,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:2254,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2255,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-test.c:2255,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/src/fu-engine-test.c:2258,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:2259,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:2260,1
    - Dst: fu_engine_install_release
      Src: /src/fwupd/src/fu-engine-test.c:2261,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2262,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2263,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine-test.c:2264,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine-test.c:2265,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:2266,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:2267,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-engine-test.c:2268,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:2269,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2273,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2274,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:2275,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:2276,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:2277,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:2278,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:2279,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-test.c:2280,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:2281,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:2282,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:2283,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:2284,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2285,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:2285,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine-test.c:2288,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine-test.c:2289,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:2290,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:2291,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-engine-test.c:2292,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:2293,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:2294,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:2295,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:2296,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-test.c:2297,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:2298,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:2299,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:2300,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:2301,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-test.c:2302,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:2302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 110
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2303
      start: 2160
    functionDepth: 1
    functionLinenumber: 2160
    functionLinenumberEnd: 2303
    functionName: fu_engine_history_inherit
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_plugin
    - fu_engine_build_cabinet_from_stream
    - fu_device_set_version
    - fu_device_set_created_usec
    - fu_engine_get_devices
    - fu_progress_reset
    - fu_context_set_tmpdir
    - fu_device_add_private_flag
    - g_assert_nonnull
    - fu_engine_activate
    - fu_progress_new
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_input_stream_from_path
    - xb_silo_new
    - fu_engine_new
    - fu_cabinet_get_component
    - fu_device_new
    - fu_device_add_instance_id
    - fu_plugin_new_from_gtype
    - fu_plugin_set_config_value
    - fu_test_plugin_get_type
    - g_object_unref
    - g_assert_cmpint
    - fu_engine_add_plugin
    - fu_device_has_flag
    - fu_engine_set_silo
    - fu_temporary_directory_new
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_release_new
    - fu_device_build_vendor_id_u16
    - fu_release_set_device
    - fu_engine_load
    - fu_device_set_id
    - fu_device_set_name
    - fu_engine_install_release
    - g_assert_false
    - fu_release_load
    - g_assert_no_error
    - fu_device_has_private_flag
    - fu_device_get_id
    - fu_device_get_version
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_history_inherit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2310,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2311,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:2311,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2312,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:2312,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2313,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:2313,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2314,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-test.c:2314,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2315,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-engine-test.c:2315,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-engine-test.c:2315,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2316,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:2316,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2317,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2318,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2319,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2320,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2321,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2322,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:2322,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-engine-test.c:2326,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2327,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2328,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:2329,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:2332,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/src/fu-engine-test.c:2335,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2336,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2337,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-engine-test.c:2338,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:2339,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2343,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2344,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:2347,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:2348,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:2349,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:2350,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:2351,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-test.c:2352,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-engine-test.c:2353,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:2354,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:2355,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:2356,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/src/fu-engine-test.c:2357,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:2358,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-engine-test.c:2359,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2360,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2361,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:2362,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2363,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:2363,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-test.c:2366,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-engine-test.c:2367,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2368,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2369,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-engine-test.c:2370,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2371,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2372,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-engine-test.c:2375,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2376,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2377,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-test.c:2380,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-test.c:2381,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2382,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2383,1
    - Dst: fu_engine_install_release
      Src: /src/fwupd/src/fu-engine-test.c:2384,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2385,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2386,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2389,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:2389,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2390,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-test.c:2390,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/src/fu-engine-test.c:2392,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2393,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-engine-test.c:2393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2394
      start: 2305
    functionDepth: 1
    functionLinenumber: 2305
    functionLinenumberEnd: 2394
    functionName: fu_engine_install_needs_reboot
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_plugin
    - fu_engine_build_cabinet_from_stream
    - fu_device_set_version
    - fu_device_set_created_usec
    - fu_engine_get_devices
    - fu_context_set_tmpdir
    - g_assert_nonnull
    - fu_temporary_directory_build
    - fu_progress_new
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_input_stream_from_path
    - xb_silo_new
    - fu_engine_new
    - fu_cabinet_get_component
    - fu_device_new
    - fu_device_add_instance_id
    - fu_plugin_new_from_gtype
    - fu_plugin_set_config_value
    - fu_test_plugin_get_type
    - g_assert_cmpint
    - fu_engine_add_plugin
    - fu_device_has_flag
    - fu_engine_set_silo
    - fu_temporary_directory_new
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_release_new
    - fu_device_build_vendor_id_u16
    - fu_release_set_device
    - fu_engine_load
    - fu_device_set_id
    - fu_device_set_name
    - fu_engine_install_release
    - fu_release_load
    - g_assert_no_error
    - fu_device_has_private_flag
    - g_file_test
    - fu_device_get_version
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_install_needs_reboot(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-test.c:2405,1
    - Dst: fwupd_status_to_string
      Src: /src/fwupd/src/fu-engine-test.c:2405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - progress
    - status
    - user_data
    argTypes:
    - FuProgress*
    - FwupdStatus
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2407
      start: 2401
    functionDepth: 0
    functionLinenumber: 2401
    functionLinenumberEnd: 2407
    functionName: fu_test_engine_status_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fwupd_status_to_string
    - g_debug
    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-engine-test.c:2413,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/src/fu-engine-test.c:2413,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2414,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/src/fu-engine-test.c:2414,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2415,1
    - Dst: fwupd_request_has_flag
      Src: /src/fwupd/src/fu-engine-test.c:2415,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2416,1
    - Dst: fwupd_request_get_message
      Src: /src/fwupd/src/fu-engine-test.c:2416,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:2417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - engine
    - request
    - user_data
    argTypes:
    - FuEngine*
    - FwupdRequest*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2419
      start: 2409
    functionDepth: 1
    functionLinenumber: 2409
    functionLinenumberEnd: 2419
    functionName: fu_test_engine_request_cb
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fwupd_request_has_flag
    - fwupd_request_get_kind
    - g_assert_nonnull
    - g_assert_cmpint
    - g_assert_true
    - fwupd_request_get_id
    - g_assert_cmpstr
    - fwupd_request_get_message
    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-engine-test.c:2427,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2428,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:2428,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2429,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:2429,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2430,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:2430,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2431,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-test.c:2431,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2432,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-engine-test.c:2432,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-engine-test.c:2432,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2433,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:2433,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2434,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2435,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2436,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2437,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2438,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:2438,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:2441,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/src/fu-engine-test.c:2444,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2445,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2446,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-engine-test.c:2447,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:2448,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2452,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2453,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:2456,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:2457,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:2458,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:2459,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:2460,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-test.c:2461,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-engine-test.c:2462,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:2463,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:2464,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:2465,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/src/fu-engine-test.c:2466,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/src/fu-engine-test.c:2467,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:2468,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-engine-test.c:2469,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2470,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2471,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:2472,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2473,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:2473,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-test.c:2476,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-engine-test.c:2477,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2478,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2479,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-engine-test.c:2480,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2481,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2482,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-engine-test.c:2485,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2486,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2487,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-test.c:2490,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-test.c:2491,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2492,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2493,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2494,1
    - Dst: fu_release_get_firmware_basename
      Src: /src/fwupd/src/fu-engine-test.c:2494,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2495,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine-test.c:2495,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine-test.c:2497,1
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-engine-test.c:2497,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine-test.c:2499,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine-test.c:2501,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/src/fu-engine-test.c:2501,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine-test.c:2503,1
    - Dst: fu_engine_install_release
      Src: /src/fwupd/src/fu-engine-test.c:2506,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2507,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2508,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:2509,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:2510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2421
    functionDepth: 1
    functionLinenumber: 2421
    functionLinenumberEnd: 2511
    functionName: fu_engine_install_request
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_plugin
    - fu_engine_build_cabinet_from_stream
    - fu_device_set_version
    - fu_device_set_created_usec
    - fu_engine_get_devices
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_input_stream_from_path
    - xb_silo_new
    - fu_engine_new
    - fu_cabinet_get_component
    - fu_device_new
    - fu_device_add_instance_id
    - g_signal_connect
    - fu_plugin_new_from_gtype
    - fu_plugin_set_config_value
    - FU_PROGRESS
    - fu_test_plugin_get_type
    - fu_release_get_version
    - g_assert_cmpint
    - fu_engine_add_plugin
    - fu_engine_set_silo
    - fu_device_add_protocol
    - fu_engine_add_device
    - FU_ENGINE
    - fu_release_new
    - fu_device_build_vendor_id_u16
    - fu_release_set_device
    - fu_engine_load
    - fu_device_set_id
    - fu_device_set_name
    - fu_engine_install_release
    - fu_release_load
    - fu_release_get_firmware_basename
    - g_assert_no_error
    - fu_device_has_private_flag
    - fu_device_add_request_flag
    - G_CALLBACK
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_install_request(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2521,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2522,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:2522,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2523,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2524,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:2524,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2525,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:2525,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2526,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2527,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-test.c:2527,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2528,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-engine-test.c:2528,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-engine-test.c:2528,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2529,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:2529,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2530,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2531,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2532,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2533,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2534,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2535,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2536,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:2536,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:2539,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-engine-test.c:2542,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2543,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2544,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:2545,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/src/fu-engine-test.c:2548,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2549,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2550,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-engine-test.c:2551,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:2552,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2557,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2558,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-test.c:2561,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-test.c:2562,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:2563,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-test.c:2564,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:2565,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-test.c:2566,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-engine-test.c:2567,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:2568,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:2569,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:2570,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/src/fu-engine-test.c:2571,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:2572,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-engine-test.c:2573,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2574,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2575,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:2576,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2577,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine-test.c:2577,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-test.c:2581,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-engine-test.c:2582,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2583,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2584,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-engine-test.c:2585,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2586,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2587,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-engine-test.c:2588,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2589,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2590,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-test.c:2591,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-test.c:2592,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2593,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2594,1
    - Dst: fu_engine_install_release
      Src: /src/fwupd/src/fu-engine-test.c:2595,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-test.c:2596,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2597,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-test.c:2600,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-engine-test.c:2603,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-engine-test.c:2604,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:2604,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2605,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2606,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:2607,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine-test.c:2607,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2608,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-engine-test.c:2608,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-engine-test.c:2609,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/src/fu-engine-test.c:2610,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-test.c:2611,1
    - Dst: fwupd_release_get_metadata
      Src: /src/fwupd/src/fu-engine-test.c:2611,1
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-engine-test.c:2611,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine-test.c:2612,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-engine-test.c:2613,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2614,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2615,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine-test.c:2616,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-test.c:2637,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-test.c:2638,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2640
      start: 2513
    functionDepth: 1
    functionLinenumber: 2513
    functionLinenumberEnd: 2640
    functionName: fu_engine_history_error_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_plugin
    - fu_engine_build_cabinet_from_stream
    - fu_device_set_version
    - fu_device_set_created_usec
    - fu_engine_get_devices
    - fu_context_set_tmpdir
    - fu_device_get_release_default
    - g_assert_nonnull
    - g_strdup_printf
    - fu_progress_new
    - fu_history_get_device_by_id
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_input_stream_from_path
    - xb_silo_new
    - fu_engine_new
    - fu_cabinet_get_component
    - fu_device_new
    - fu_device_add_instance_id
    - fu_plugin_new_from_gtype
    - fu_plugin_set_config_value
    - fu_device_to_string
    - fu_test_plugin_get_type
    - g_debug
    - fu_device_get_update_state
    - fu_device_get_update_error
    - g_assert_cmpint
    - fu_engine_add_plugin
    - fu_engine_set_silo
    - fu_temporary_directory_new
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_history_new
    - fu_release_new
    - fu_device_build_vendor_id_u16
    - fu_release_set_device
    - fu_device_set_modified_usec
    - fu_engine_load
    - fu_device_set_id
    - fu_device_set_name
    - fu_engine_install_release
    - g_assert_false
    - fu_release_load
    - g_strcmp0
    - fwupd_release_get_metadata
    - fu_input_stream_compute_checksum
    - g_assert_error
    - g_assert_no_error
    - fu_device_has_private_flag
    - fu_device_get_id
    - g_clear_error
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - g_hash_table_remove_all
    linkageType: ''
    returnType: void
    signature: void fu_engine_history_error_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2646,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:2646,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2647,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:2647,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2648,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:2648,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2649,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2650,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2651,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:2651,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2652,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/src/fu-engine-test.c:2652,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2653,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/src/fu-engine-test.c:2653,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2654,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:2654,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2655,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/src/fu-engine-test.c:2658,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-engine-test.c:2659,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/src/fu-engine-test.c:2662,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/src/fu-engine-test.c:2663,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-engine-test.c:2664,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:2667,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2668,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2669,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:2672,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:2673,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:2674,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:2675,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:2676,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/src/fu-engine-test.c:2677,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/src/fu-engine-test.c:2678,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:2681,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:2682,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:2683,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-test.c:2684,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-test.c:2685,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/src/fu-engine-test.c:2686,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine-test.c:2690,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2691,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2692,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2693,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-test.c:2696,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/src/fu-engine-test.c:2697,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine-test.c:2701,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2702,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2703,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2642
    functionDepth: 1
    functionLinenumber: 2642
    functionLinenumberEnd: 2705
    functionName: fu_engine_device_better_than_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_assert_nonnull
    - fu_engine_get_device
    - fu_progress_new
    - fu_context_new_full
    - fu_engine_new
    - fu_device_new
    - fu_device_add_instance_id
    - fu_device_set_remove_delay
    - fu_engine_add_plugin
    - fu_device_add_protocol
    - fu_engine_load
    - fu_device_set_id
    - fu_plugin_set_name
    - fu_plugin_new
    - fu_plugin_add_device
    - fu_plugin_add_rule
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_device_better_than_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine-test.c:2711,1
    - Dst: fu_test_loop_quit
      Src: /src/fwupd/src/fu-engine-test.c:2712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2713
      start: 2707
    functionDepth: 1
    functionLinenumber: 2707
    functionLinenumberEnd: 2713
    functionName: fu_test_plugin_device_added_cb
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_test_loop_quit
    - g_object_ref
    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-engine-test.c:2719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2720
      start: 2715
    functionDepth: 1
    functionLinenumber: 2715
    functionLinenumberEnd: 2720
    functionName: fu_test_plugin_device_register_cb
    functionSourceFile: /src/fwupd/src/fu-engine-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:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2726,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:2726,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2727,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2728,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-engine-test.c:2728,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-engine-test.c:2728,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2729,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:2729,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2730,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/src/fu-engine-test.c:2733,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2738,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2739,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/src/fu-engine-test.c:2742,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2743,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2744,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/src/fu-engine-test.c:2745,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2746,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2747,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine-test.c:2748,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/src/fu-engine-test.c:2748,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine-test.c:2750,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine-test.c:2752,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/src/fu-engine-test.c:2752,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine-test.c:2754,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/src/fu-engine-test.c:2756,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2757,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2758,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2761,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2762,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:2762,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2763,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/src/fu-engine-test.c:2763,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2764,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-test.c:2764,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2765,1
    - Dst: fu_device_get_version_bootloader
      Src: /src/fwupd/src/fu-engine-test.c:2765,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2766,1
    - Dst: fu_device_get_guid_default
      Src: /src/fwupd/src/fu-engine-test.c:2766,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2769,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine-test.c:2769,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/src/fu-engine-test.c:2770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2771
      start: 2722
    functionDepth: 1
    functionLinenumber: 2722
    functionLinenumberEnd: 2771
    functionName: fu_engine_plugin_module_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_new_full
    - fu_device_get_name
    - fu_device_get_version_lowest
    - fu_context_load_hwinfo
    - g_signal_connect
    - fu_plugin_new_from_gtype
    - fu_plugin_set_config_value
    - fu_test_plugin_get_type
    - fu_plugin_runner_startup
    - fu_plugin_runner_coldplug
    - fu_device_get_version_bootloader
    - g_signal_handlers_disconnect_by_data
    - fu_device_get_guid_default
    - FU_PLUGIN
    - g_assert_no_error
    - fu_device_get_id
    - fu_device_get_version
    - G_CALLBACK
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_plugin_module_func(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2778,1
    - Dst: fu_cab_firmware_new
      Src: /src/fwupd/src/fu-engine-test.c:2778,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2779,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2780,1
    - Dst: fu_cab_firmware_set_compressed
      Src: /src/fwupd/src/fu-engine-test.c:2782,1
    - Dst: va_start
      Src: /src/fwupd/src/fu-engine-test.c:2785,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2789,1
    - Dst: fu_cab_image_new
      Src: /src/fwupd/src/fu-engine-test.c:2789,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2790,1
    - Dst: va_arg
      Src: /src/fwupd/src/fu-engine-test.c:2793,1
    - Dst: va_arg
      Src: /src/fwupd/src/fu-engine-test.c:2798,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-test.c:2801,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/src/fu-engine-test.c:2804,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-engine-test.c:2804,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/src/fu-engine-test.c:2805,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-engine-test.c:2805,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/src/fu-engine-test.c:2806,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-engine-test.c:2806,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/src/fu-engine-test.c:2807,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-engine-test.c:2807,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-engine-test.c:2807,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2808,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2809,1
    - Dst: va_end
      Src: /src/fwupd/src/fu-engine-test.c:2811,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-engine-test.c:2814,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-engine-test.c:2814,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2815,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2816,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-test.c:2817,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - compressed
    argTypes:
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2818
      start: 2773
    functionDepth: 1
    functionLinenumber: 2773
    functionLinenumberEnd: 2818
    functionName: fu_test_build_cab
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_assert_nonnull
    - fu_cab_firmware_set_compressed
    - fu_firmware_set_bytes
    - fu_cab_firmware_new
    - g_debug
    - fu_firmware_add_image
    - g_bytes_new_static
    - FU_FIRMWARE
    - fu_cab_image_new
    - va_end
    - fu_firmware_set_id
    - g_steal_pointer
    - g_assert_no_error
    - va_arg
    - strlen
    - g_assert_true
    - g_autoptr
    - va_start
    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-engine-test.c:2824,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine-test.c:2824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2820
    functionDepth: 0
    functionLinenumber: 2820
    functionLinenumberEnd: 2825
    functionName: fu_test_plugin_composite_device_added_cb
    functionSourceFile: /src/fwupd/src/fu-engine-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-engine-test.c:2832,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine-test.c:2833,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-engine-test.c:2834,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-engine-test.c:2834,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-engine-test.c:2836,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-engine-test.c:2836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2839
      start: 2827
    functionDepth: 1
    functionLinenumber: 2827
    functionLinenumberEnd: 2839
    functionName: fu_plugin_composite_release_sort_cb
    functionSourceFile: /src/fwupd/src/fu-engine-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-engine-test.c:2846,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-engine-test.c:2846,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2847,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:2847,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2848,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:2848,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2849,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-test.c:2849,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2850,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-engine-test.c:2850,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-engine-test.c:2850,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2851,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2852,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2853,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2854,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2855,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-test.c:2856,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2857,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:2857,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2858,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-test.c:2858,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:2861,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:2864,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2868,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2869,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-engine-test.c:2872,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-engine-test.c:2913,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-engine-test.c:2913,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2918,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2919,1
    - Dst: fu_cabinet_get_components
      Src: /src/fwupd/src/fu-engine-test.c:2920,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2921,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2922,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:2923,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/src/fu-engine-test.c:2926,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2927,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2928,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-engine-test.c:2929,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/src/fu-engine-test.c:2931,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2932,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2933,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-test.c:2934,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine-test.c:2935,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/src/fu-engine-test.c:2935,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine-test.c:2937,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/src/fu-engine-test.c:2940,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:2941,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:2942,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:2945,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:2947,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:2948,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-test.c:2949,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:2949,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2951,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-test.c:2951,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-test.c:2952,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:2952,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2954,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-test.c:2954,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2955,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-engine-test.c:2955,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-test.c:2956,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:2956,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2958,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-test.c:2958,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:2959,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-engine-test.c:2959,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:2965,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:2969,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2970,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-test.c:2970,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:2971,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-test.c:2974,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-test.c:2975,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-test.c:2976,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-test.c:2982,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:2983,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-engine-test.c:2984,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-test.c:2989,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-test.c:2989,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:2992,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-engine-test.c:2995,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine-test.c:2996,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-engine-test.c:2996,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:2996,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2997,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-engine-test.c:2997,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine-test.c:2998,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-engine-test.c:2998,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:2998,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:2999,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-engine-test.c:2999,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine-test.c:3000,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-engine-test.c:3000,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:3000,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:3001,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-engine-test.c:3001,1
    - Dst: fu_engine_install_releases
      Src: /src/fwupd/src/fu-engine-test.c:3004,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3011,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3012,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine-test.c:3015,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-engine-test.c:3015,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:3015,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:3016,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-engine-test.c:3016,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine-test.c:3017,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-engine-test.c:3017,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:3017,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:3018,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-engine-test.c:3018,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine-test.c:3019,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-engine-test.c:3019,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:3019,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:3020,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-engine-test.c:3020,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:3024,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-test.c:3026,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:3026,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:3028,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-test.c:3028,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-test.c:3029,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:3029,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:3031,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-test.c:3031,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-test.c:3032,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-test.c:3032,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:3034,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-test.c:3034,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/src/fu-engine-test.c:3038,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:3039,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/src/fu-engine-test.c:3040,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:3041,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3043
      start: 2841
    functionDepth: 1
    functionLinenumber: 2841
    functionLinenumberEnd: 3043
    functionName: fu_engine_plugin_composite_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_device_get_logical_id
    - fu_device_get_parent_internal
    - FU_RELEASE
    - g_assert_nonnull
    - fu_cabinet_new
    - fu_progress_new
    - fu_context_new_full
    - fu_engine_install_releases
    - fu_cabinet_get_components
    - xb_silo_new
    - fu_engine_new
    - g_ptr_array_index
    - g_ptr_array_sort
    - g_signal_connect
    - fu_plugin_new_from_gtype
    - fu_plugin_set_config_value
    - g_debug
    - fu_test_plugin_get_type
    - fu_plugin_runner_startup
    - g_assert_cmpint
    - fu_device_get_metadata
    - fu_engine_add_plugin
    - fu_firmware_parse_bytes
    - fu_engine_set_silo
    - g_ptr_array_new_with_free_func
    - fu_plugin_runner_coldplug
    - fu_engine_add_device
    - fu_test_build_cab
    - fu_release_new
    - FU_FIRMWARE
    - fu_release_set_device
    - fu_engine_load
    - fu_release_load
    - fu_engine_request_new
    - g_strcmp0
    - FU_PLUGIN
    - xb_node_query_text
    - g_steal_pointer
    - g_ptr_array_add
    - g_assert_no_error
    - fu_release_get_device
    - fu_device_get_id
    - fu_device_get_version
    - G_CALLBACK
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_plugin_composite_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3049,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:3049,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3050,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3051,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:3051,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3052,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-test.c:3052,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3053,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-engine-test.c:3053,1
    - Dst: fu_test_plugin_get_type
      Src: /src/fwupd/src/fu-engine-test.c:3053,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3054,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:3054,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3055,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3056,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3057,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3058,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-engine-test.c:3058,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3059,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-engine-test.c:3059,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3060,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:3063,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3064,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3065,1
    - Dst: xb_builder_source_load_xml
      Src: /src/fwupd/src/fu-engine-test.c:3068,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3104,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3105,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-engine-test.c:3106,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-engine-test.c:3107,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3108,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:3109,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:3110,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-engine-test.c:3113,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/src/fu-engine-test.c:3114,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3115,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3116,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-test.c:3117,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine-test.c:3118,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/src/fu-engine-test.c:3118,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine-test.c:3120,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/src/fu-engine-test.c:3122,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3123,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3124,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:3127,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-test.c:3129,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:3130,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine-test.c:3134,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3135,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:3136,1
    - Dst: fu_engine_get_releases
      Src: /src/fwupd/src/fu-engine-test.c:3137,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3141,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:3142,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:3143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3144
      start: 3045
    functionDepth: 1
    functionLinenumber: 3045
    functionLinenumberEnd: 3144
    functionName: fu_engine_plugin_composite_multistep_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - xb_builder_compile
    - xb_builder_source_new
    - g_assert_nonnull
    - fu_engine_get_device
    - fu_progress_new
    - fu_context_new_full
    - fu_engine_new
    - g_ptr_array_index
    - g_signal_connect
    - fu_plugin_new_from_gtype
    - fu_test_plugin_get_type
    - fu_plugin_runner_startup
    - xb_builder_import_source
    - g_assert_cmpint
    - fu_engine_add_plugin
    - fu_engine_set_silo
    - g_ptr_array_new_with_free_func
    - fu_plugin_runner_coldplug
    - fu_engine_add_device
    - fu_engine_get_releases
    - fu_engine_load
    - fu_engine_request_new
    - xb_builder_source_load_xml
    - FU_PLUGIN
    - g_assert_no_error
    - G_CALLBACK
    - g_assert_true
    - g_autoptr
    - xb_builder_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_plugin_composite_multistep_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3152,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:3152,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3153,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-test.c:3153,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3154,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:3154,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3155,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-engine-test.c:3155,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3156,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:3156,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3157,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-test.c:3157,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3158,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3159,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3160,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3161,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-engine-test.c:3161,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3162,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-engine-test.c:3162,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3163,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-engine-test.c:3166,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3167,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:3168,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-test.c:3169,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-test.c:3170,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:3171,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-engine-test.c:3172,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:3175,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3176,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3177,1
    - Dst: xb_builder_source_load_xml
      Src: /src/fwupd/src/fu-engine-test.c:3180,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3227,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3228,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-engine-test.c:3229,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-engine-test.c:3230,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3231,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:3232,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-test.c:3233,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-test.c:3236,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-test.c:3237,1
    - Dst: fu_release_set_appstream_id
      Src: /src/fwupd/src/fu-engine-test.c:3238,1
    - Dst: fu_release_add_checksum
      Src: /src/fwupd/src/fu-engine-test.c:3239,1
    - Dst: fu_device_add_release
      Src: /src/fwupd/src/fu-engine-test.c:3240,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine-test.c:3240,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine-test.c:3241,1
    - Dst: fu_history_add_device
      Src: /src/fwupd/src/fu-engine-test.c:3242,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3243,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3244,1
    - Dst: fu_engine_get_results
      Src: /src/fwupd/src/fu-engine-test.c:3247,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3248,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:3249,1
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-engine-test.c:3250,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:3251,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-test.c:3252,1
    - Dst: fwupd_release_get_appstream_id
      Src: /src/fwupd/src/fu-engine-test.c:3252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3255
      start: 3146
    functionDepth: 1
    functionLinenumber: 3146
    functionLinenumberEnd: 3255
    functionName: fu_plugin_engine_get_results_appstream_id_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - xb_builder_compile
    - xb_builder_source_new
    - fu_context_set_tmpdir
    - fu_device_get_release_default
    - g_assert_nonnull
    - fu_progress_new
    - fu_device_set_update_state
    - fu_context_new_full
    - fu_engine_new
    - fu_device_new
    - xb_builder_import_source
    - fu_release_set_appstream_id
    - fu_engine_get_results
    - fu_engine_set_silo
    - fu_temporary_directory_new
    - fu_engine_add_device
    - fu_history_new
    - fu_release_new
    - g_assert_cmpstr
    - fu_engine_load
    - fu_device_set_id
    - fu_release_add_checksum
    - xb_builder_source_load_xml
    - fwupd_release_get_appstream_id
    - fu_context_set_path
    - g_assert_no_error
    - fu_device_add_release
    - g_assert_true
    - g_test_build_filename
    - fu_history_add_device
    - g_autoptr
    - FWUPD_RELEASE
    - xb_builder_new
    linkageType: ''
    returnType: void
    signature: void fu_plugin_engine_get_results_appstream_id_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3267,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-test.c:3267,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3268,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:3268,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3269,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3270,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3271,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3272,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-engine-test.c:3273,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-engine-test.c:3276,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-test.c:3281,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-test.c:3282,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/src/fu-engine-test.c:3284,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3285,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3286,1
    - Dst: fu_context_get_bios_settings
      Src: /src/fwupd/src/fu-engine-test.c:3288,1
    - Dst: fu_bios_settings_get_all
      Src: /src/fwupd/src/fu-engine-test.c:3289,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-test.c:3290,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/src/fu-engine-test.c:3293,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:3294,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/src/fu-engine-test.c:3296,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:3297,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-test.c:3299,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3299,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3299,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-engine-test.c:3300,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-test.c:3301,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-test.c:3302,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-engine-test.c:3303,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-test.c:3305,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-test.c:3306,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3306,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3306,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-engine-test.c:3307,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3308,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3309,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-test.c:3311,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-test.c:3312,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3312,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3312,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-engine-test.c:3313,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3314,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3315,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-test.c:3317,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-test.c:3318,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3318,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3318,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-engine-test.c:3319,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-test.c:3320,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-test.c:3321,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-engine-test.c:3322,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-test.c:3325,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-test.c:3326,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3326,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3326,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-engine-test.c:3327,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3328,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3329,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-test.c:3331,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-test.c:3332,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3333,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3334,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-engine-test.c:3335,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3336,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3337,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/src/fu-engine-test.c:3340,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:3341,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/src/fu-engine-test.c:3343,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:3344,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-test.c:3346,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-test.c:3347,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3347,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3347,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-engine-test.c:3348,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3349,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3350,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-test.c:3352,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-test.c:3353,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3353,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3353,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-engine-test.c:3354,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3355,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3356,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-test.c:3358,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-test.c:3359,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3361,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3362,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-engine-test.c:3363,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-test.c:3364,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-test.c:3365,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-engine-test.c:3366,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/src/fu-engine-test.c:3369,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:3370,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/src/fu-engine-test.c:3372,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:3373,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-test.c:3375,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-test.c:3376,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3376,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3376,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-engine-test.c:3377,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3378,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-test.c:3380,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-test.c:3381,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3381,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3381,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-engine-test.c:3382,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-test.c:3383,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-test.c:3384,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-engine-test.c:3385,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-test.c:3387,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-test.c:3388,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3388,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3388,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-engine-test.c:3389,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-test.c:3390,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-test.c:3391,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-engine-test.c:3392,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-test.c:3395,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-test.c:3396,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3396,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3396,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-engine-test.c:3397,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3398,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3399,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/src/fu-engine-test.c:3402,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:3403,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/src/fu-engine-test.c:3405,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:3406,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-test.c:3408,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-test.c:3409,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3409,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3409,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-engine-test.c:3410,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-test.c:3411,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-test.c:3412,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-engine-test.c:3413,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-test.c:3415,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-test.c:3416,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3416,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-test.c:3416,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-engine-test.c:3417,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-test.c:3418,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-test.c:3419,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-engine-test.c:3420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 114
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3421
      start: 3257
    functionDepth: 1
    functionLinenumber: 3257
    functionLinenumberEnd: 3421
    functionName: fu_engine_modify_bios_settings_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - fu_context_get_bios_setting
    - fwupd_bios_setting_get_current_value
    - g_assert_nonnull
    - fu_context_new_full
    - fu_engine_modify_bios_settings
    - fu_engine_new
    - fu_bios_settings_get_all
    - g_hash_table_new_full
    - g_assert_cmpint
    - fu_context_reload_bios_settings
    - g_assert_false
    - g_strdup
    - fu_context_set_path
    - g_assert_error
    - g_assert_no_error
    - g_clear_error
    - fu_context_get_bios_settings
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - g_hash_table_remove_all
    linkageType: ''
    returnType: void
    signature: void fu_engine_modify_bios_settings_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3429,1
    - Dst: fu_context_new
      Src: /src/fwupd/src/fu-engine-test.c:3429,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3430,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-test.c:3430,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3431,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-test.c:3431,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3432,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3433,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-test.c:3434,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-test.c:3446,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-test.c:3447,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-test.c:3448,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-test.c:3449,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/src/fu-engine-test.c:3452,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3453,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3454,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/src/fu-engine-test.c:3455,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3456,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3457,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-test.c:3458,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3462,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-test.c:3463,1
    - Dst: fu_engine_get_report_metadata
      Src: /src/fwupd/src/fu-engine-test.c:3466,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-test.c:3467,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-test.c:3468,1
    - Dst: g_list_sort
      Src: /src/fwupd/src/fu-engine-test.c:3470,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/src/fu-engine-test.c:3470,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-engine-test.c:3473,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-test.c:3474,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-engine-test.c:3476,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-engine-test.c:3477,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine-test.c:3479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3481
      start: 3423
    functionDepth: 1
    functionLinenumber: 3423
    functionLinenumberEnd: 3481
    functionName: fu_engine_report_metadata_func
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - g_hash_table_lookup
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_load_quirks
    - fu_context_load_hwinfo
    - fu_engine_new
    - g_debug
    - g_list_sort
    - g_hash_table_get_keys
    - fu_engine_load
    - g_warning
    - fu_engine_get_report_metadata
    - fu_context_set_path
    - g_assert_no_error
    - G_N_ELEMENTS
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_report_metadata_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-engine-test.c:3486,1
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-engine-test.c:3487,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-engine-test.c:3488,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3489,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3490,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3491,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3492,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3493,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3494,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3495,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3497,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3499,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3500,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3501,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3502,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3503,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3504,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3505,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3506,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3507,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3508,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3509,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3511,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3512,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3513,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3514,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3515,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3516,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3517,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3518,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3519,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3521,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3522,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3523,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3524,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3525,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3526,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-test.c:3528,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-engine-test.c:3529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3530
      start: 3483
    functionDepth: 0
    functionLinenumber: 3483
    functionLinenumberEnd: 3530
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-engine-test.c
    functionUses: 1
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:33,1
    - Dst: fu_jcat_gnutls_pkcs7_load_crt_from_blob
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:36,1
    - Dst: gnutls_x509_crt_get_key_usage
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:39,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:40,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:41,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:46,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:53,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - blob
    - format
    - error
    argTypes:
    - FuJcatGnutlsPkcs7Engine*
    - GBytes*
    - gnutls_x509_crt_fmt_t
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 55
    functionName: fu_jcat_gnutls_pkcs7_engine_add_pubkey_blob_fmt
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_jcat_gnutls_rc_to_error
    - g_ptr_array_add
    - g_prefix_error_literal
    - g_steal_pointer
    - fu_jcat_gnutls_pkcs7_load_crt_from_blob
    - gnutls_x509_crt_get_key_usage
    - g_auto
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jcat_gnutls_pkcs7_engine_add_pubkey_blob_fmt(FuJcatGnutlsPkcs7Engine
      *self,\n\t\t\t\t\t\tGBytes *blob,\n\t\t\t\t\t\tgnutls_x509_crt_fmt_t format,\n\t\t\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_GNUTLS_PKCS7_ENGINE
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:60,1
    - Dst: fu_jcat_gnutls_pkcs7_engine_add_pubkey_blob_fmt
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - engine
    - blob
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: fu_jcat_gnutls_pkcs7_engine_add_public_key_raw
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - fu_jcat_gnutls_pkcs7_engine_add_pubkey_blob_fmt
    - FU_JCAT_GNUTLS_PKCS7_ENGINE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jcat_gnutls_pkcs7_engine_add_public_key_raw(FuJcatEngine
      *engine, GBytes *blob, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_GNUTLS_PKCS7_ENGINE
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:72,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:75,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:75,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:76,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:76,1
    - Dst: fu_jcat_gnutls_pkcs7_engine_add_pubkey_blob_fmt
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:79,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:84,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:84,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:85,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:85,1
    - Dst: fu_jcat_gnutls_pkcs7_engine_add_pubkey_blob_fmt
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:88,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:94,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:95,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - engine
    - filename
    - error
    argTypes:
    - FuJcatEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 98
    functionName: fu_jcat_gnutls_pkcs7_engine_add_public_key
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - fu_bytes_get_contents
    - g_path_get_basename
    - g_debug
    - g_str_has_suffix
    - FU_JCAT_GNUTLS_PKCS7_ENGINE
    - fu_jcat_gnutls_pkcs7_engine_add_pubkey_blob_fmt
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jcat_gnutls_pkcs7_engine_add_public_key(FuJcatEngine *engine,\n\t\t\t\t\t
      \  const gchar *filename,\n\t\t\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:104,1
    - Dst: gnutls_x509_trust_list_init
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:106,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:107,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:108,1
    - Dst: gnutls_x509_trust_list_add_cas
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:111,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:115,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:116,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:119,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJcatGnutlsPkcs7Engine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 123
    functionName: fu_jcat_gnutls_pkcs7_engine_build_trust_list
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_jcat_gnutls_rc_to_error
    - gnutls_x509_trust_list_init
    - g_prefix_error_literal
    - g_steal_pointer
    - gnutls_x509_trust_list_add_cas
    - g_auto
    linkageType: ''
    returnType: gnutls_x509_trust_list_t
    signature: gnutls_x509_trust_list_t fu_jcat_gnutls_pkcs7_engine_build_trust_list(FuJcatGnutlsPkcs7Engine
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:130,1
    - Dst: gnutls_x509_trust_list_init
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:132,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:133,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:134,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:138,1
    - Dst: gnutls_x509_crt_get_signature_algorithm
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:139,1
    - Dst: gnutls_x509_trust_list_add_cas
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:144,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:145,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:146,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:149,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:153,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJcatGnutlsPkcs7Engine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 154
    functionName: fu_jcat_gnutls_pkcs7_engine_build_trust_list_only_pq
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_jcat_gnutls_rc_to_error
    - gnutls_x509_trust_list_init
    - g_prefix_error_literal
    - g_steal_pointer
    - gnutls_x509_trust_list_add_cas
    - g_auto
    - gnutls_x509_crt_get_signature_algorithm
    - g_ptr_array_index
    linkageType: ''
    returnType: gnutls_x509_trust_list_t
    signature: gnutls_x509_trust_list_t fu_jcat_gnutls_pkcs7_engine_build_trust_list_only_pq(FuJcatGnutlsPkcs7Engine
      *self, GError **error)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_GNUTLS_PKCS7_ENGINE
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:167,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:172,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:173,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:173,1
    - Dst: gnutls_pkcs7_init
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:176,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:177,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:178,1
    - Dst: fu_jcat_gnutls_datum_from_bytes
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:183,1
    - Dst: gnutls_pkcs7_import
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:185,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:186,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:187,1
    - Dst: fu_jcat_gnutls_datum_from_bytes
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:192,1
    - Dst: gnutls_pkcs7_get_signature_count
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:194,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:195,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:197,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:205,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:211,1
    - Dst: gnutls_pkcs7_get_signature_info
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:217,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:218,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:219,1
    - Dst: gnutls_pkcs7_verify_direct
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:225,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:227,1
    - Dst: fu_jcat_gnutls_pkcs7_engine_build_trust_list_only_pq
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:230,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:235,1
    - Dst: fu_jcat_gnutls_pkcs7_engine_build_trust_list
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:242,1
    - Dst: fu_jcat_gnutls_ensure_trust_list_valid
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:246,1
    - Dst: gnutls_pkcs7_verify
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:248,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:256,1
    - Dst: fu_jcat_gnutls_pkcs7_datum_to_dn_str
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:257,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:260,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:263,1
    - Dst: fu_jcat_gnutls_pkcs7_datum_to_dn_str
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:271,1
    - Dst: g_string_assign
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:273,1
    - Dst: FU_JCAT_RESULT
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:278,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:278,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 74
    argCount: 6
    argNames:
    - engine
    - blob
    - blob_signature
    - crt
    - flags
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - GBytes*
    - gnutls_x509_crt_t
    - FuJcatVerifyFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 286
    functionName: fu_jcat_gnutls_pkcs7_engine_verify
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - fu_jcat_gnutls_pkcs7_engine_build_trust_list_only_pq
    - gnutls_pkcs7_verify_direct
    - g_object_new
    - gnutls_pkcs7_get_signature_info
    - gnutls_pkcs7_init
    - g_auto
    - g_debug
    - g_set_error_literal
    - FU_JCAT_GNUTLS_PKCS7_ENGINE
    - g_prefix_error_literal
    - fu_jcat_gnutls_pkcs7_datum_to_dn_str
    - fu_jcat_gnutls_ensure_trust_list_valid
    - FU_JCAT_RESULT
    - g_string_assign
    - g_string_new
    - gnutls_pkcs7_get_signature_count
    - fu_jcat_gnutls_pkcs7_engine_build_trust_list
    - fu_jcat_gnutls_datum_from_bytes
    - gnutls_pkcs7_import
    - fu_jcat_gnutls_rc_to_error
    - g_prefix_error
    - gnutls_pkcs7_verify
    - g_autoptr
    linkageType: ''
    returnType: FuJcatResult
    signature: "FuJcatResult *\nfu_jcat_gnutls_pkcs7_engine_verify(FuJcatEngine *engine,\n\t\t\t\t
      \  GBytes *blob,\n\t\t\t\t   GBytes *blob_signature,\n\t\t\t\t   gnutls_x509_crt_t
      crt,\n\t\t\t\t   FuJcatVerifyFlags flags,\n\t\t\t\t   GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:298,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:299,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:302,1
    - Dst: fu_jcat_engine_get_keyring_path
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:302,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:307,1
    - Dst: fu_jcat_engine_get_keyring_path
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:307,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:312,1
    - Dst: fu_jcat_gnutls_pkcs7_load_crt_from_blob
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:315,1
    - Dst: fu_jcat_gnutls_pkcs7_ensure_sign_algo_pq_safe
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:319,1
    - Dst: gnutls_x509_crt_get_signature_algorithm
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:320,1
    - Dst: fu_jcat_gnutls_pkcs7_engine_verify
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:324,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - engine
    - blob
    - blob_signature
    - flags
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - GBytes*
    - FuJcatVerifyFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 325
    functionName: fu_jcat_gnutls_pkcs7_engine_self_verify
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - fu_jcat_gnutls_pkcs7_engine_verify
    - fu_bytes_get_contents
    - fu_jcat_gnutls_pkcs7_ensure_sign_algo_pq_safe
    - fu_jcat_engine_get_keyring_path
    - fu_jcat_gnutls_pkcs7_load_crt_from_blob
    - g_auto
    - gnutls_x509_crt_get_signature_algorithm
    - g_autoptr
    - g_build_filename
    linkageType: ''
    returnType: FuJcatResult
    signature: "FuJcatResult *\nfu_jcat_gnutls_pkcs7_engine_self_verify(FuJcatEngine
      *engine,\n\t\t\t\t\tGBytes *blob,\n\t\t\t\t\tGBytes *blob_signature,\n\t\t\t\t\tFuJcatVerifyFlags
      flags,\n\t\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_jcat_gnutls_pkcs7_engine_verify
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - engine
    - blob
    - blob_signature
    - flags
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - GBytes*
    - FuJcatVerifyFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 337
    functionName: fu_jcat_gnutls_pkcs7_engine_pubkey_verify
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - fu_jcat_gnutls_pkcs7_engine_verify
    linkageType: ''
    returnType: FuJcatResult
    signature: "FuJcatResult *\nfu_jcat_gnutls_pkcs7_engine_pubkey_verify(FuJcatEngine
      *engine,\n\t\t\t\t\t  GBytes *blob,\n\t\t\t\t\t  GBytes *blob_signature,\n\t\t\t\t\t
      \ FuJcatVerifyFlags flags,\n\t\t\t\t\t  GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:352,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:353,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:354,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:355,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:356,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:359,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:360,1
    - Dst: fu_jcat_gnutls_pkcs7_load_privkey_from_blob
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:365,1
    - Dst: fu_jcat_gnutls_pkcs7_load_crt_from_blob
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:368,1
    - Dst: fu_jcat_gnutls_pkcs7_load_pubkey_from_privkey
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:373,1
    - Dst: gnutls_pubkey_get_preferred_hash_algorithm
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:376,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:377,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:378,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:381,1
    - Dst: gnutls_digest_get_name
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:381,1
    - Dst: gnutls_pkcs7_init
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:384,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:385,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:386,1
    - Dst: fu_jcat_gnutls_datum_from_bytes
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:391,1
    - Dst: gnutls_pkcs7_sign
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:397,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:398,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:399,1
    - Dst: gnutls_pkcs7_export2
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:404,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:405,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:406,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:410,1
    - Dst: g_strndup
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:417,1
    - Dst: fwupd_jcat_blob_new_utf8
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:418,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 6
    argNames:
    - engine
    - blob
    - cert
    - privkey
    - flags
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - GBytes*
    - GBytes*
    - FuJcatSignFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 419
    functionName: fu_jcat_gnutls_pkcs7_engine_pubkey_sign
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - g_debug
    - fu_jcat_gnutls_pkcs7_load_pubkey_from_privkey
    - g_set_error_literal
    - fu_jcat_gnutls_rc_to_error
    - gnutls_digest_get_name
    - g_prefix_error_literal
    - gnutls_pubkey_get_preferred_hash_algorithm
    - gnutls_pkcs7_init
    - fu_jcat_gnutls_datum_from_bytes
    - gnutls_pkcs7_sign
    - fu_jcat_gnutls_pkcs7_load_crt_from_blob
    - g_bytes_get_size
    - gnutls_pkcs7_export2
    - g_auto
    - g_autoptr
    - fwupd_jcat_blob_new_utf8
    - fu_jcat_gnutls_pkcs7_load_privkey_from_blob
    linkageType: ''
    returnType: FwupdJcatBlob
    signature: "FwupdJcatBlob *\nfu_jcat_gnutls_pkcs7_engine_pubkey_sign(FuJcatEngine
      *engine,\n\t\t\t\t\tGBytes *blob,\n\t\t\t\t\tGBytes *cert,\n\t\t\t\t\tGBytes
      *privkey,\n\t\t\t\t\tFuJcatSignFlags flags,\n\t\t\t\t\tGError **error)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:432,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:433,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:437,1
    - Dst: fu_jcat_engine_get_keyring_path
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:437,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:442,1
    - Dst: fu_jcat_engine_get_keyring_path
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:442,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:447,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:448,1
    - Dst: fu_jcat_gnutls_pkcs7_create_private_key
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:454,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:458,1
    - Dst: fu_jcat_gnutls_pkcs7_create_private_key
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:465,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:469,1
    - Dst: fu_bytes_set_contents_full
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:471,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:477,1
    - Dst: fu_jcat_engine_get_keyring_path
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:477,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:482,1
    - Dst: fu_jcat_engine_get_keyring_path
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:482,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:487,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:488,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:492,1
    - Dst: fu_jcat_gnutls_pkcs7_load_privkey_from_blob
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:493,1
    - Dst: fu_jcat_gnutls_pkcs7_create_client_certificate
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:496,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:499,1
    - Dst: fu_bytes_set_contents_full
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:501,1
    - Dst: fu_jcat_gnutls_pkcs7_engine_pubkey_sign
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:506,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 4
    argNames:
    - engine
    - blob
    - flags
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - FuJcatSignFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 507
    functionName: fu_jcat_gnutls_pkcs7_engine_self_sign
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - fu_jcat_gnutls_pkcs7_load_privkey_from_blob
    - fu_bytes_get_contents
    - fu_jcat_gnutls_pkcs7_create_private_key
    - fu_bytes_set_contents_full
    - g_set_error_literal
    - fu_jcat_gnutls_pkcs7_create_client_certificate
    - fu_jcat_engine_get_keyring_path
    - g_file_test
    - fu_jcat_gnutls_pkcs7_engine_pubkey_sign
    - g_auto
    - g_autoptr
    - g_build_filename
    - fu_path_mkdir_parent
    linkageType: ''
    returnType: FwupdJcatBlob
    signature: "FwupdJcatBlob *\nfu_jcat_gnutls_pkcs7_engine_self_sign(FuJcatEngine
      *engine,\n\t\t\t\t      GBytes *blob,\n\t\t\t\t      FuJcatSignFlags flags,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_GNUTLS_PKCS7_ENGINE
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:512,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:513,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 515
    functionName: fu_jcat_gnutls_pkcs7_engine_finalize
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - FU_JCAT_GNUTLS_PKCS7_ENGINE
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    linkageType: ''
    returnType: void
    signature: void fu_jcat_gnutls_pkcs7_engine_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:520,1
    - Dst: FU_JCAT_ENGINE_CLASS
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJcatGnutlsPkcs7EngineClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 529
    functionName: fu_jcat_gnutls_pkcs7_engine_class_init
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - FU_JCAT_ENGINE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_jcat_gnutls_pkcs7_engine_class_init(FuJcatGnutlsPkcs7EngineClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_jcat_gnutls_global_init
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:534,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJcatGnutlsPkcs7Engine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 536
    functionName: fu_jcat_gnutls_pkcs7_engine_init
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - fu_jcat_gnutls_global_init
    linkageType: ''
    returnType: void
    signature: void fu_jcat_gnutls_pkcs7_engine_init(FuJcatGnutlsPkcs7Engine *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:541,1
    - Dst: FU_IS_JCAT_CONTEXT
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:541,1
    - Dst: FU_JCAT_ENGINE
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:542,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - FuJcatContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 550
    functionName: fu_jcat_gnutls_pkcs7_engine_new
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_JCAT_ENGINE
    - FU_IS_JCAT_CONTEXT
    - g_object_new
    linkageType: ''
    returnType: FuJcatEngine
    signature: 'FuJcatEngine *

      fu_jcat_gnutls_pkcs7_engine_new(FuJcatContext *context)'
  - 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: 19
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: fu_device_list_count_cb
    functionSourceFile: /src/fwupd/src/fu-device-list-test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_device_list_count_cb(FuDeviceList *device_list, FuDevice *device,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:24,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:25,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:26,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-device-list-test.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:29,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:32,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:33,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-device-list-test.c:34,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:35,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:36,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-device-list-test.c:37,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-device-list-test.c:38,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:39,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:42,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:43,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:44,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-device-list-test.c:45,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-device-list-test.c:46,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:47,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-device-list-test.c:48,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-device-list-test.c:49,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 51
    functionName: fu_device_list_no_auto_remove_children_func
    functionSourceFile: /src/fwupd/src/fu-device-list-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_add_private_flag
    - fu_device_set_id
    - fu_device_list_remove
    - g_assert_cmpint
    - fu_device_list_get_active
    - g_autoptr
    - fu_device_list_add
    - fu_device_list_new
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_list_no_auto_remove_children_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:56,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-device-list-test.c:56,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:57,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:58,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:59,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-device-list-test.c:59,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-device-list-test.c:64,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list-test.c:64,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-device-list-test.c:66,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-device-list-test.c:68,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list-test.c:68,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-device-list-test.c:70,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-device-list-test.c:72,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list-test.c:72,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-device-list-test.c:74,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:78,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:79,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:80,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/src/fu-device-list-test.c:81,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:82,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:83,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:84,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:85,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:88,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:89,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:90,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:91,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:94,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:95,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:96,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/src/fu-device-list-test.c:97,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:98,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:99,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:100,1
    - Dst: fu_test_loop_run_with_timeout
      Src: /src/fwupd/src/fu-device-list-test.c:103,1
    - Dst: fu_test_loop_quit
      Src: /src/fwupd/src/fu-device-list-test.c:104,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-device-list-test.c:108,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:109,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:110,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:111,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 113
    functionName: fu_device_list_delay_func
    functionSourceFile: /src/fwupd/src/fu-device-list-test.c
    functionUses: 0
    functionsReached:
    - fu_test_loop_quit
    - fu_device_add_instance_id
    - g_signal_connect
    - fu_device_set_remove_delay
    - fu_test_loop_run_with_timeout
    - fu_device_add_private_flag
    - fu_device_set_id
    - g_assert_cmpint
    - fu_device_list_remove
    - FU_DEVICE_LIST
    - fu_context_new_full
    - G_CALLBACK
    - g_autoptr
    - fu_device_list_add
    - fu_device_list_new
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_list_delay_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-device-list-test.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: fu_device_list_remove_cb
    functionSourceFile: /src/fwupd/src/fu-device-list-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-device-list-test.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: fu_device_list_add_cb
    functionSourceFile: /src/fwupd/src/fu-device-list-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-device-list-test.c:141,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:141,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:142,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:143,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:143,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:144,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-device-list-test.c:144,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:145,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:149,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:152,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:153,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/src/fu-device-list-test.c:154,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-device-list-test.c:155,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/src/fu-device-list-test.c:156,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-device-list-test.c:157,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:158,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:159,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/src/fu-device-list-test.c:160,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-device-list-test.c:161,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/src/fu-device-list-test.c:162,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-device-list-test.c:165,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-device-list-test.c:166,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-device-list-test.c:167,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:170,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-device-list-test.c:173,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-device-list-test.c:174,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-device-list-test.c:175,1
    - Dst: g_timeout_add
      Src: /src/fwupd/src/fu-device-list-test.c:181,1
    - Dst: g_timeout_add
      Src: /src/fwupd/src/fu-device-list-test.c:182,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-device-list-test.c:183,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-device-list-test.c:184,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-device-list-test.c:185,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-device-list-test.c:186,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-device-list-test.c:187,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list-test.c:187,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-device-list-test.c:190,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-device-list-test.c:190,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-device-list-test.c:193,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-device-list-test.c:194,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-device-list-test.c:195,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-device-list-test.c:196,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-device-list-test.c:197,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list-test.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 198
    functionName: fu_device_list_replug_auto_func
    functionSourceFile: /src/fwupd/src/fu-device-list-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_plugin
    - fu_device_add_child
    - fu_device_get_parent_internal
    - fu_device_add_private_flag
    - g_timeout_add
    - fu_device_list_add
    - fu_device_list_new
    - fu_device_new
    - fu_device_set_remove_delay
    - fu_device_set_physical_id
    - fu_device_has_flag
    - fu_device_set_id
    - g_assert_false
    - fu_device_list_wait_for_replug
    - g_assert_error
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_device_list_replug_auto_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:204,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-device-list-test.c:204,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:205,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:205,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:206,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:206,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:207,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-device-list-test.c:207,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:208,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:212,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-device-list-test.c:213,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:214,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:215,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:216,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-device-list-test.c:217,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/src/fu-device-list-test.c:218,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:219,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-device-list-test.c:220,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:221,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:222,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/src/fu-device-list-test.c:223,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-device-list-test.c:226,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/src/fu-device-list-test.c:227,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-device-list-test.c:230,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-device-list-test.c:231,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-device-list-test.c:232,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:235,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-device-list-test.c:238,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:239,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-device-list-test.c:240,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list-test.c:240,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-device-list-test.c:243,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-device-list-test.c:244,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-device-list-test.c:245,1
    - Dst: g_timeout_add
      Src: /src/fwupd/src/fu-device-list-test.c:251,1
    - Dst: g_timeout_add
      Src: /src/fwupd/src/fu-device-list-test.c:252,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-device-list-test.c:253,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-device-list-test.c:254,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-device-list-test.c:255,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-device-list-test.c:256,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-device-list-test.c:257,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list-test.c:257,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-device-list-test.c:260,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-device-list-test.c:261,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:262,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-device-list-test.c:263,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list-test.c:263,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-device-list-test.c:264,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list-test.c:264,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-device-list-test.c:267,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-device-list-test.c:268,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-device-list-test.c:269,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:270,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-device-list-test.c:271,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list-test.c:271,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-device-list-test.c:272,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list-test.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 273
    functionName: fu_device_list_replug_user_func
    functionSourceFile: /src/fwupd/src/fu-device-list-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_plugin
    - fu_device_add_private_flag
    - fu_context_new_full
    - g_timeout_add
    - fu_device_list_add
    - fu_device_list_new
    - fu_device_new
    - fu_device_add_instance_id
    - fu_device_set_remove_delay
    - fu_device_has_flag
    - fu_device_add_instance_id_full
    - fu_device_set_id
    - fu_device_set_name
    - g_assert_false
    - fu_device_list_wait_for_replug
    - g_assert_no_error
    - fu_device_list_remove
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_device_list_replug_user_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:278,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-device-list-test.c:278,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:279,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:279,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:280,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:280,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:281,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:282,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-device-list-test.c:282,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:283,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:284,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-device-list-test.c:290,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list-test.c:290,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-device-list-test.c:292,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-device-list-test.c:294,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list-test.c:294,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-device-list-test.c:296,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-device-list-test.c:298,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list-test.c:298,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-device-list-test.c:300,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:304,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-device-list-test.c:305,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/src/fu-device-list-test.c:306,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-device-list-test.c:307,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-device-list-test.c:308,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:309,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:310,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:311,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/src/fu-device-list-test.c:312,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/src/fu-device-list-test.c:313,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:314,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:315,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:316,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:317,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:320,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-device-list-test.c:321,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:322,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:323,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-device-list-test.c:327,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:328,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:329,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:330,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:331,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-device-list-test.c:334,1
    - Dst: fu_device_has_vendor_id
      Src: /src/fwupd/src/fu-device-list-test.c:334,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-device-list-test.c:335,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-device-list-test.c:335,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-device-list-test.c:338,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:339,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list-test.c:340,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-device-list-test.c:341,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list-test.c:341,1
    - Dst: fu_device_list_get_all
      Src: /src/fwupd/src/fu-device-list-test.c:344,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:345,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list-test.c:346,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-device-list-test.c:347,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list-test.c:347,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list-test.c:348,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-device-list-test.c:349,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list-test.c:349,1
    - Dst: fu_device_list_get_old
      Src: /src/fwupd/src/fu-device-list-test.c:352,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-device-list-test.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 354
    functionName: fu_device_list_compatible_func
    functionSourceFile: /src/fwupd/src/fu-device-list-test.c
    functionUses: 0
    functionsReached:
    - fu_device_set_plugin
    - fu_device_set_version
    - fu_device_add_private_flag
    - FU_DEVICE_LIST
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_device_list_get_active
    - fu_device_list_add
    - fu_device_list_new
    - g_ptr_array_index
    - fu_device_new
    - fu_device_list_get_old
    - fu_device_add_instance_id
    - g_signal_connect
    - fu_device_set_remove_delay
    - g_assert_cmpint
    - fu_device_add_instance_id_full
    - fu_device_list_get_all
    - fu_device_set_id
    - fu_device_has_vendor_id
    - fu_device_list_remove
    - fu_device_get_id
    - fu_device_get_version
    - G_CALLBACK
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - fu_device_build_vendor_id
    linkageType: ''
    returnType: void
    signature: void fu_device_list_compatible_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:359,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-device-list-test.c:359,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:360,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-device-list-test.c:360,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:361,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:361,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:362,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:362,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-device-list-test.c:368,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list-test.c:368,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-device-list-test.c:370,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-device-list-test.c:372,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list-test.c:372,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-device-list-test.c:374,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-device-list-test.c:376,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list-test.c:376,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-device-list-test.c:378,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:382,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:383,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:384,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:385,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:386,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:387,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:390,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:391,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-device-list-test.c:392,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:393,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:394,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:395,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:396,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-device-list-test.c:399,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:400,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:401,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 403
    functionName: fu_device_list_remove_chain_func
    functionSourceFile: /src/fwupd/src/fu-device-list-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_add_instance_id
    - g_signal_connect
    - fu_device_set_id
    - g_assert_cmpint
    - fu_device_list_remove
    - FU_DEVICE_LIST
    - fu_context_new_full
    - G_CALLBACK
    - g_autoptr
    - fu_device_list_add
    - fu_device_list_new
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_list_remove_chain_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:408,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-device-list-test.c:408,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:409,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:409,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:410,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:410,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:411,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-device-list-test.c:411,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:414,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:415,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:416,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:417,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-device-list-test.c:418,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:419,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:421,1
    - Dst: fu_device_list_depsolve_order
      Src: /src/fwupd/src/fu-device-list-test.c:422,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:423,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-device-list-test.c:423,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:424,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-device-list-test.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 425
    functionName: fu_device_list_explicit_order_func
    functionSourceFile: /src/fwupd/src/fu-device-list-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_add_instance_id
    - fu_device_list_depsolve_order
    - fu_device_add_private_flag
    - fu_device_set_id
    - g_assert_cmpint
    - fu_context_new_full
    - fu_device_get_order
    - g_autoptr
    - fu_device_list_add
    - fu_device_list_new
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_list_explicit_order_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:430,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-device-list-test.c:430,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:431,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:431,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:432,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:432,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:433,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-device-list-test.c:433,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:436,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:437,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:438,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:439,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-device-list-test.c:440,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:441,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:442,1
    - Dst: fu_device_list_depsolve_order
      Src: /src/fwupd/src/fu-device-list-test.c:444,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:445,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-device-list-test.c:445,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:446,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-device-list-test.c:446,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:448,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:449,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-device-list-test.c:449,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:450,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-device-list-test.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 451
    functionName: fu_device_list_explicit_order_post_func
    functionSourceFile: /src/fwupd/src/fu-device-list-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_add_instance_id
    - fu_device_list_depsolve_order
    - fu_device_add_private_flag
    - fu_device_set_id
    - g_assert_cmpint
    - fu_context_new_full
    - fu_device_get_order
    - g_autoptr
    - fu_device_list_add
    - fu_device_list_new
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_list_explicit_order_post_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:456,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-device-list-test.c:456,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:457,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:457,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:458,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:458,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:459,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-device-list-test.c:459,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:462,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:463,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:464,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:465,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:466,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-device-list-test.c:467,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:468,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:469,1
    - Dst: fu_device_list_depsolve_order
      Src: /src/fwupd/src/fu-device-list-test.c:471,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:472,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-device-list-test.c:472,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-device-list-test.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 473
    functionName: fu_device_list_install_parent_first_func
    functionSourceFile: /src/fwupd/src/fu-device-list-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_add_instance_id
    - fu_device_list_depsolve_order
    - fu_device_add_private_flag
    - fu_device_set_id
    - g_assert_cmpint
    - fu_context_new_full
    - fu_device_get_order
    - g_autoptr
    - fu_device_list_add
    - fu_device_list_new
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_list_install_parent_first_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:478,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-device-list-test.c:478,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:479,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:479,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:480,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:480,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:481,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-device-list-test.c:481,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:484,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:485,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:486,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:487,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:488,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-device-list-test.c:489,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:490,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:491,1
    - Dst: fu_device_list_depsolve_order
      Src: /src/fwupd/src/fu-device-list-test.c:493,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:494,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-device-list-test.c:494,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-device-list-test.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 495
    functionName: fu_device_list_install_parent_first_child_func
    functionSourceFile: /src/fwupd/src/fu-device-list-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_add_instance_id
    - fu_device_list_depsolve_order
    - fu_device_add_private_flag
    - fu_device_set_id
    - g_assert_cmpint
    - fu_context_new_full
    - fu_device_get_order
    - g_autoptr
    - fu_device_list_add
    - fu_device_list_new
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_list_install_parent_first_child_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:500,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-device-list-test.c:500,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:501,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-device-list-test.c:501,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:502,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:502,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:503,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:503,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:506,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:507,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/src/fu-device-list-test.c:508,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/src/fu-device-list-test.c:509,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:510,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-device-list-test.c:511,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-device-list-test.c:512,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-device-list-test.c:513,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list-test.c:513,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:516,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:517,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:518,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:519,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:520,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-device-list-test.c:523,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list-test.c:523,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-device-list-test.c:526,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-device-list-test.c:526,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-device-list-test.c:527,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 529
    functionName: fu_device_list_counterpart_func
    functionSourceFile: /src/fwupd/src/fu-device-list-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_has_instance_id
    - fu_device_add_instance_id
    - fu_device_set_remove_delay
    - g_assert_true
    - fu_device_add_private_flag
    - fu_device_has_guid
    - fu_device_set_id
    - fu_device_list_remove
    - g_assert_false
    - fu_device_has_flag
    - fu_context_new_full
    - fu_device_add_instance_id_full
    - g_autoptr
    - fu_device_list_add
    - fu_device_list_new
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_list_counterpart_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:534,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-device-list-test.c:534,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:535,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:535,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:536,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:536,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:537,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:538,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:539,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-device-list-test.c:539,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:540,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:542,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:543,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:545,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/src/fu-device-list-test.c:546,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/src/fu-device-list-test.c:547,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:548,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-device-list-test.c:550,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-device-list-test.c:551,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-device-list-test.c:552,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-device-list-test.c:553,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list-test.c:553,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/src/fu-device-list-test.c:556,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-device-list-test.c:557,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-device-list-test.c:558,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-device-list-test.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 560
    functionName: fu_device_list_equivalent_id_func
    functionSourceFile: /src/fwupd/src/fu-device-list-test.c
    functionUses: 0
    functionsReached:
    - fu_device_list_get_by_id
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - fu_device_set_id
    - g_assert_null
    - fu_device_get_id
    - fu_device_set_priority
    - fu_device_set_equivalent_id
    - fu_context_new_full
    - g_assert_cmpstr
    - g_autoptr
    - fu_device_list_add
    - fu_device_list_new
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_list_equivalent_id_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:565,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-device-list-test.c:565,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:566,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-device-list-test.c:566,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:567,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:567,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:568,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:568,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:570,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-device-list-test.c:571,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:572,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:573,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-device-list-test.c:574,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:574,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-device-list-test.c:577,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-device-list-test.c:578,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:578,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:581,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-device-list-test.c:582,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:582,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-device-list-test.c:583,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-device-list-test.c:584,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:584,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:587,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-device-list-test.c:588,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:589,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:590,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-device-list-test.c:591,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:591,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-device-list-test.c:592,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-device-list-test.c:593,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list-test.c:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 594
    functionName: fu_device_list_unconnected_no_delay_func
    functionSourceFile: /src/fwupd/src/fu-device-list-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_instance_id
    - fu_device_set_id
    - fu_device_has_private_flag
    - fu_device_list_remove
    - g_assert_false
    - fu_context_new_full
    - g_assert_true
    - g_autoptr
    - fu_device_list_add
    - fu_device_list_new
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_list_unconnected_no_delay_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:599,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-device-list-test.c:599,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:600,1
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-device-list-test.c:600,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:601,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:601,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:602,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-device-list-test.c:602,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:603,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:604,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list-test.c:605,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-device-list-test.c:611,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list-test.c:611,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-device-list-test.c:613,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-device-list-test.c:615,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list-test.c:615,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-device-list-test.c:617,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-device-list-test.c:619,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list-test.c:619,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-device-list-test.c:621,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:625,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:626,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:627,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-device-list-test.c:628,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-device-list-test.c:629,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-device-list-test.c:630,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:631,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:632,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:633,1
    - Dst: fu_device_list_get_all
      Src: /src/fwupd/src/fu-device-list-test.c:636,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:637,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list-test.c:638,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-device-list-test.c:639,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list-test.c:639,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-device-list-test.c:642,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-device-list-test.c:645,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-device-list-test.c:646,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-device-list-test.c:647,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list-test.c:647,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-device-list-test.c:648,1
    - Dst: fu_device_list_get_by_guid
      Src: /src/fwupd/src/fu-device-list-test.c:652,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-device-list-test.c:653,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-device-list-test.c:654,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-device-list-test.c:655,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list-test.c:655,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-device-list-test.c:656,1
    - Dst: fu_device_list_get_by_guid
      Src: /src/fwupd/src/fu-device-list-test.c:659,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-device-list-test.c:660,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-device-list-test.c:661,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-device-list-test.c:665,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:666,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:667,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:668,1
    - Dst: fu_device_list_get_all
      Src: /src/fwupd/src/fu-device-list-test.c:669,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-device-list-test.c:670,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list-test.c:671,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-device-list-test.c:672,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list-test.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 673
    functionName: fu_device_list_func
    functionSourceFile: /src/fwupd/src/fu-device-list-test.c
    functionUses: 0
    functionsReached:
    - g_assert_nonnull
    - FU_DEVICE_LIST
    - fu_context_new_full
    - g_clear_object
    - fu_device_list_add
    - fu_device_list_new
    - g_ptr_array_index
    - fu_device_new
    - fu_device_add_instance_id
    - g_signal_connect
    - g_assert_cmpint
    - fu_device_list_get_by_guid
    - g_assert_null
    - fu_device_list_get_all
    - fu_device_set_id
    - fu_device_list_get_by_id
    - g_assert_error
    - g_assert_no_error
    - fu_device_list_remove
    - fu_device_get_id
    - G_CALLBACK
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_device_list_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-device-list-test.c:678,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-device-list-test.c:679,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-device-list-test.c:680,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-device-list-test.c:682,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-device-list-test.c:683,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-device-list-test.c:684,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-device-list-test.c:685,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-device-list-test.c:687,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-device-list-test.c:689,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-device-list-test.c:691,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-device-list-test.c:693,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-device-list-test.c:694,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-device-list-test.c:695,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-device-list-test.c:696,1
    - Dst: g_test_slow
      Src: /src/fwupd/src/fu-device-list-test.c:697,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-device-list-test.c:698,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-device-list-test.c:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 700
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-device-list-test.c
    functionUses: 1
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_test_init
    - g_test_slow
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-polkit-authority.c:39,1
    - Dst: FU_IS_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-polkit-authority.c:39,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-polkit-authority.c:40,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/src/fu-polkit-authority.c:40,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-polkit-authority.c:41,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/src/fu-polkit-authority.c:42,1
    - Dst: G_TASK
      Src: /src/fwupd/src/fu-polkit-authority.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FuPolkitAuthority*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: fu_polkit_authority_check_finish
    functionSourceFile: /src/fwupd/src/fu-polkit-authority.c
    functionUses: 22
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FU_IS_POLKIT_AUTHORITY
    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:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-polkit-authority.c:50,1
    - Dst: G_TASK
      Src: /src/fwupd/src/fu-polkit-authority.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-polkit-authority.c:51,1
    - Dst: polkit_authority_check_authorization_finish
      Src: /src/fwupd/src/fu-polkit-authority.c:53,1
    - Dst: POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-polkit-authority.c:53,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/src/fu-polkit-authority.c:57,1
    - Dst: polkit_authorization_result_get_is_authorized
      Src: /src/fwupd/src/fu-polkit-authority.c:66,1
    - Dst: g_task_return_new_error_literal
      Src: /src/fwupd/src/fu-polkit-authority.c:67,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/src/fu-polkit-authority.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - source_object
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 76
    functionName: fu_polkit_authority_check_cb
    functionSourceFile: /src/fwupd/src/fu-polkit-authority.c
    functionUses: 0
    functionsReached:
    - g_task_return_new_error_literal
    - G_TASK
    - polkit_authorization_result_get_is_authorized
    - g_task_return_new_error
    - polkit_authority_check_authorization_finish
    - g_task_return_boolean
    - POLKIT_AUTHORITY
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_polkit_authority_check_cb(GObject *source_object, GAsyncResult
      *res, gpointer user_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-polkit-authority.c:88,1
    - Dst: g_task_new
      Src: /src/fwupd/src/fu-polkit-authority.c:88,1
    - Dst: polkit_authority_get_owner
      Src: /src/fwupd/src/fu-polkit-authority.c:91,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-polkit-authority.c:94,1
    - Dst: FU_IS_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-polkit-authority.c:94,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-polkit-authority.c:95,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-polkit-authority.c:96,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/src/fu-polkit-authority.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-polkit-authority.c:103,1
    - Dst: polkit_system_bus_name_new
      Src: /src/fwupd/src/fu-polkit-authority.c:103,1
    - Dst: g_task_return_new_error_literal
      Src: /src/fwupd/src/fu-polkit-authority.c:105,1
    - Dst: polkit_authority_check_authorization
      Src: /src/fwupd/src/fu-polkit-authority.c:113,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-polkit-authority.c:120,1
    - Dst: g_task_return_new_error_literal
      Src: /src/fwupd/src/fu-polkit-authority.c:127,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/src/fu-polkit-authority.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    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: 136
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 136
    functionName: fu_polkit_authority_check
    functionSourceFile: /src/fwupd/src/fu-polkit-authority.c
    functionUses: 22
    functionsReached:
    - g_task_set_source_tag
    - g_task_new
    - g_task_return_new_error_literal
    - g_steal_pointer
    - g_return_if_fail
    - polkit_authority_get_owner
    - polkit_system_bus_name_new
    - FU_IS_POLKIT_AUTHORITY
    - g_task_return_boolean
    - g_autoptr
    - polkit_authority_check_authorization
    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: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    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:147,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-polkit-authority.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPolkitAuthority*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 154
    functionName: fu_polkit_authority_load
    functionSourceFile: /src/fwupd/src/fu-polkit-authority.c
    functionUses: 1
    functionsReached:
    - polkit_authority_get_sync
    - g_prefix_error_literal
    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:160,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-polkit-authority.c:162,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-polkit-authority.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: fu_polkit_authority_finalize
    functionSourceFile: /src/fwupd/src/fu-polkit-authority.c
    functionUses: 0
    functionsReached:
    - FU_POLKIT_AUTHORITY
    - g_object_unref
    - 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:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPolkitAuthorityClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 172
    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:178,1
    - Dst: FU_POLKIT_AUTHORITY
      Src: /src/fwupd/src/fu-polkit-authority.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 180
    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:
    - FU_CLIENT_LIST
    - g_ptr_array_remove
    - fu_client_remove_flag
    - fu_client_list_emit_removed
    - g_object_ref
    - 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_return_val_if_fail
    - fu_client_list_get_by_sender
    - g_new0
    - FU_IS_CLIENT_LIST
    - fu_client_new
    - g_ptr_array_add
    - g_bus_watch_name_on_connection
    - g_object_ref
    - fu_client_list_emit_added
    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_return_val_if_fail
    - FU_IS_CLIENT_LIST
    - g_ptr_array_add
    - g_steal_pointer
    - g_object_ref
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    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_return_val_if_fail
    - g_strcmp0
    - FU_IS_CLIENT_LIST
    - g_object_ref
    - fu_client_get_sender
    - g_ptr_array_index
    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:
    - FU_CLIENT_LIST
    - g_value_set_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    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
    - FU_CLIENT_LIST
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    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_object_unref
    - g_free
    - g_bus_unwatch_name
    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_object_unref
    - FU_CLIENT_LIST
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    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_param_spec_object
    - G_OBJECT_CLASS
    - G_TYPE_FROM_CLASS
    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_return_val_if_fail
    - FU_CLIENT_LIST
    - g_object_new
    - G_IS_DBUS_CONNECTION
    linkageType: ''
    returnType: FuClientList
    signature: 'FuClientList *

      fu_client_list_new(GDBusConnection *connection)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:25,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:27,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:28,1
    - Dst: g_open
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:29,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:30,1
    - Dst: fu_unix_seekable_input_stream_new
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:32,1
    - Dst: g_steal_fd
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:32,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:33,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:34,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:37,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:38,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:39,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:40,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:43,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:44,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:45,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:46,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:49,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:49,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:50,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:51,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:52,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:53,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:54,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:55,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 59
    functionName: fu_unix_seekable_input_stream_func
    functionSourceFile: /src/fwupd/src/fu-unix-seekable-input-stream-test.c
    functionUses: 0
    functionsReached:
    - g_seekable_seek
    - fu_unix_seekable_input_stream_new
    - g_open
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - G_SEEKABLE
    - g_input_stream_read
    - g_test_skip
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - g_steal_fd
    linkageType: ''
    returnType: void
    signature: void fu_unix_seekable_input_stream_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:66,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:67,1
    - Dst: g_open
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:69,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:70,1
    - Dst: fu_unix_seekable_input_stream_new
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:72,1
    - Dst: g_steal_fd
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:72,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:73,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:74,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 78
    functionName: fu_unix_seekable_input_stream_non_regular_func
    functionSourceFile: /src/fwupd/src/fu-unix-seekable-input-stream-test.c
    functionUses: 0
    functionsReached:
    - fu_unix_seekable_input_stream_new
    - g_open
    - g_assert_error
    - g_assert_cmpint
    - g_test_skip
    - g_autoptr
    - g_assert_null
    - g_steal_fd
    linkageType: ''
    returnType: void
    signature: void fu_unix_seekable_input_stream_non_regular_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:83,1
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:84,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:85,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:86,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-unix-seekable-input-stream-test.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-unix-seekable-input-stream-test.c
    functionUses: 1
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-polkit-agent.c:53,1
    - Dst: getpid
      Src: /src/fwupd/src/fu-polkit-agent.c:55,1
    - Dst: fork
      Src: /src/fwupd/src/fu-polkit-agent.c:59,1
    - Dst: prctl
      Src: /src/fwupd/src/fu-polkit-agent.c:70,1
    - Dst: _exit
      Src: /src/fwupd/src/fu-polkit-agent.c:71,1
    - Dst: getppid
      Src: /src/fwupd/src/fu-polkit-agent.c:75,1
    - Dst: _exit
      Src: /src/fwupd/src/fu-polkit-agent.c:76,1
    - Dst: isatty
      Src: /src/fwupd/src/fu-polkit-agent.c:79,1
    - Dst: isatty
      Src: /src/fwupd/src/fu-polkit-agent.c:80,1
    - Dst: open
      Src: /src/fwupd/src/fu-polkit-agent.c:90,1
    - Dst: g_critical
      Src: /src/fwupd/src/fu-polkit-agent.c:92,1
    - Dst: _exit
      Src: /src/fwupd/src/fu-polkit-agent.c:93,1
    - Dst: dup2
      Src: /src/fwupd/src/fu-polkit-agent.c:96,1
    - Dst: dup2
      Src: /src/fwupd/src/fu-polkit-agent.c:98,1
    - Dst: close
      Src: /src/fwupd/src/fu-polkit-agent.c:100,1
    - Dst: va_start
      Src: /src/fwupd/src/fu-polkit-agent.c:104,1
    - Dst: va_arg
      Src: /src/fwupd/src/fu-polkit-agent.c:105,1
    - Dst: va_end
      Src: /src/fwupd/src/fu-polkit-agent.c:107,1
    - Dst: alloca
      Src: /src/fwupd/src/fu-polkit-agent.c:110,1
    - Dst: va_start
      Src: /src/fwupd/src/fu-polkit-agent.c:113,1
    - Dst: va_arg
      Src: /src/fwupd/src/fu-polkit-agent.c:115,1
    - Dst: va_end
      Src: /src/fwupd/src/fu-polkit-agent.c:116,1
    - Dst: execv
      Src: /src/fwupd/src/fu-polkit-agent.c:118,1
    - Dst: _exit
      Src: /src/fwupd/src/fu-polkit-agent.c:119,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - self
    - path
    argTypes:
    - FuPolkitAgent*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 120
    functionName: fu_polkit_agent_fork_agent
    functionSourceFile: /src/fwupd/src/fu-polkit-agent.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - va_end
    - isatty
    - g_critical
    - va_start
    - getppid
    - alloca
    - close
    - execv
    - va_arg
    - fork
    - dup2
    - getpid
    - prctl
    - _exit
    - open
    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:125,1
    - Dst: close
      Src: /src/fwupd/src/fu-polkit-agent.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 134
    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:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 146
    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:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - event
    - t
    argTypes:
    - int
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 163
    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:168,1
    - Dst: waitpid
      Src: /src/fwupd/src/fu-polkit-agent.c:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 179
    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:189,1
    - Dst: FU_IS_POLKIT_AGENT
      Src: /src/fwupd/src/fu-polkit-agent.c:189,1
    - Dst: g_find_program_in_path
      Src: /src/fwupd/src/fu-polkit-agent.c:196,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-polkit-agent.c:198,1
    - Dst: isatty
      Src: /src/fwupd/src/fu-polkit-agent.c:206,1
    - Dst: pipe
      Src: /src/fwupd/src/fu-polkit-agent.c:208,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-polkit-agent.c:209,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/src/fu-polkit-agent.c:213,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-polkit-agent.c:218,1
    - Dst: fu_polkit_agent_fork_agent
      Src: /src/fwupd/src/fu-polkit-agent.c:219,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-polkit-agent.c:227,1
    - Dst: fwupd_strerror
      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:233,1
    - Dst: fu_polkit_agent_close_nointr_nofail
      Src: /src/fwupd/src/fu-polkit-agent.c:238,1
    - Dst: fu_polkit_agent_fd_wait_for_event
      Src: /src/fwupd/src/fu-polkit-agent.c:241,1
    - Dst: fu_polkit_agent_close_nointr_nofail
      Src: /src/fwupd/src/fu-polkit-agent.c:243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPolkitAgent*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 245
    functionName: fu_polkit_agent_open
    functionSourceFile: /src/fwupd/src/fu-polkit-agent.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_find_program_in_path
    - isatty
    - pipe
    - g_set_error
    - fu_polkit_agent_fd_wait_for_event
    - g_set_error_literal
    - fu_polkit_agent_fork_agent
    - FU_IS_POLKIT_AGENT
    - g_strdup_printf
    - fwupd_strerror
    - fu_polkit_agent_close_nointr_nofail
    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: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    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:255,1
    - Dst: kill
      Src: /src/fwupd/src/fu-polkit-agent.c:259,1
    - Dst: kill
      Src: /src/fwupd/src/fu-polkit-agent.c:260,1
    - Dst: fu_polkit_agent_wait_for_terminate
      Src: /src/fwupd/src/fu-polkit-agent.c:261,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-polkit-agent.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 265
    functionName: fu_polkit_agent_finalize
    functionSourceFile: /src/fwupd/src/fu-polkit-agent.c
    functionUses: 0
    functionsReached:
    - fu_polkit_agent_wait_for_terminate
    - FU_POLKIT_AGENT
    - kill
    - G_OBJECT_CLASS
    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:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPolkitAgentClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 272
    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:278,1
    - Dst: FU_POLKIT_AGENT
      Src: /src/fwupd/src/fu-polkit-agent.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 280
    functionName: fu_polkit_agent_new
    functionSourceFile: /src/fwupd/src/fu-polkit-agent.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_POLKIT_AGENT
    linkageType: ''
    returnType: FuPolkitAgent
    signature: 'FuPolkitAgent *

      fu_polkit_agent_new(void)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:27,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:28,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:29,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:33,1
    - Dst: g_memory_input_stream_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:33,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:35,1
    - Dst: g_type_name
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:35,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:36,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:37,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:38,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:39,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:40,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:42,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:45,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:46,1
    - Dst: fu_device_set_progress
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:49,1
    - Dst: fu_device_report_metadata_pre
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:52,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:54,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:54,1
    - Dst: fu_device_report_metadata_post
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:55,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:57,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:57,1
    - Dst: fu_device_add_security_attrs
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:60,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:63,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:68,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:69,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:72,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:73,1
    - Dst: fu_device_get_proxy_gtype
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:76,1
    - Dst: G_TYPE_FUNDAMENTAL
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:77,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:78,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:79,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:80,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:82,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:83,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:84,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:88,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:90,1
    - Dst: fu_device_prepare
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:93,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:94,1
    - Dst: fu_device_attach_full
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:95,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:96,1
    - Dst: fu_device_poll
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:97,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:98,1
    - Dst: fu_device_detach_full
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:99,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:100,1
    - Dst: fu_device_cleanup
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:101,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:102,1
    - Dst: fu_device_prepare_firmware
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:105,1
    - Dst: fu_device_get_firmware_gtype
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:111,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:113,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:116,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:121,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:126,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:127,1
    - Dst: fu_device_add_json
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:130,1
    - Dst: fu_device_from_json
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:131,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:132,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 77
    argCount: 3
    argNames:
    - ctx
    - gtype
    - is_fake
    argTypes:
    - FuContext*
    - GType
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 133
    functionName: fu_engine_plugin_device_gtype
    functionSourceFile: /src/fwupd/src/fu-engine-gtypes-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_plugin
    - fu_device_add_security_attrs
    - fu_device_add_private_flag
    - g_assert_nonnull
    - g_hash_table_size
    - fu_device_locker_new
    - fu_device_incorporate
    - fu_device_prepare
    - fu_progress_new
    - g_object_new
    - fu_device_attach_full
    - fu_device_set_remove_delay
    - g_debug
    - fu_device_to_string
    - fwupd_json_object_new
    - fu_device_set_progress
    - fu_security_attrs_new
    - fu_device_detach_full
    - fu_device_set_quirk_kv
    - fu_device_get_proxy_gtype
    - fu_device_cleanup
    - fu_device_get_version_format
    - fu_device_report_metadata_pre
    - fu_device_report_metadata_post
    - fu_device_set_version_raw
    - fu_device_from_json
    - fu_device_get_firmware_gtype
    - g_assert_false
    - fu_device_set_proxy
    - fu_device_write_firmware
    - G_TYPE_FUNDAMENTAL
    - g_type_name
    - fu_device_add_json
    - fu_device_prepare_firmware
    - g_assert_error
    - g_memory_input_stream_new
    - fu_device_poll
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_plugin_device_gtype(FuContext *ctx, GType gtype, gboolean
      is_fake)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:140,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:141,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:142,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:143,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:153,1
    - Dst: GINT_TO_POINTER
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:153,1
    - Dst: g_hash_table_add
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:155,1
    - Dst: GINT_TO_POINTER
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:155,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:157,1
    - Dst: g_type_name
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:157,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:158,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:159,1
    - Dst: fu_firmware_has_flag
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:163,1
    - Dst: fu_firmware_get_size_max
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:164,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:165,1
    - Dst: g_type_name
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:165,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:168,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:171,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:172,1
    - Dst: fu_firmware_has_flag
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:176,1
    - Dst: fu_firmware_has_flag
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:177,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:178,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:184,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:188,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:189,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:190,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:190,1
    - Dst: g_strv_contains
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:193,1
    - Dst: g_type_name
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:193,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:194,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:199,1
    - Dst: fu_firmware_new_from_xml
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:199,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:200,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:201,1
    - Dst: fu_firmware_get_image_gtypes
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:206,1
    - Dst: g_array_index
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:209,1
    - Dst: fu_engine_plugin_firmware_gtype
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:212,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 2
    argNames:
    - gtype_map
    - gtype
    argTypes:
    - GHashTable*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 215
    functionName: fu_engine_plugin_firmware_gtype
    functionSourceFile: /src/fwupd/src/fu-engine-gtypes-test.c
    functionUses: 1
    functionsReached:
    - fu_firmware_write
    - GINT_TO_POINTER
    - g_assert_nonnull
    - fu_firmware_set_bytes
    - g_array_index
    - g_object_new
    - g_strv_contains
    - fu_engine_plugin_firmware_gtype
    - fu_firmware_export_to_xml
    - g_debug
    - fu_firmware_get_size_max
    - g_hash_table_add
    - fu_firmware_parse_bytes
    - g_hash_table_contains
    - g_bytes_new_static
    - fu_firmware_new_from_xml
    - fu_firmware_set_version_raw
    - fu_firmware_get_version_format
    - g_assert_false
    - g_warning
    - fu_firmware_get_image_gtypes
    - g_type_name
    - g_assert_no_error
    - fu_firmware_has_flag
    - g_bytes_get_size
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_plugin_firmware_gtype(GHashTable *gtype_map, GType gtype)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:222,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:224,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:224,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:225,1
    - Dst: fu_edid_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:225,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:226,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:226,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:227,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:227,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:228,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:228,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:229,1
    - Dst: g_hash_table_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:229,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:230,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:231,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:232,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:232,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:239,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:240,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:243,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:244,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:245,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:248,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:251,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:252,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:252,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:254,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:255,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:256,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:262,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:263,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:265,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:270,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:275,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:276,1
    - Dst: fu_engine_get_plugins
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:277,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:278,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:279,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:283,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:284,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:285,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:286,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:291,1
    - Dst: fu_plugin_runner_add_security_attrs
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:292,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:297,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:298,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:298,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:299,1
    - Dst: fu_plugin_runner_reboot_cleanup
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:300,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:301,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:306,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:307,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:307,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:308,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:309,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:309,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:310,1
    - Dst: fu_plugin_runner_composite_prepare
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:311,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:312,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:317,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:318,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:318,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:319,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:320,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:320,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:321,1
    - Dst: fu_plugin_runner_composite_cleanup
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:322,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:323,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:328,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:329,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:329,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:330,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:330,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:331,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:331,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:332,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:334,1
    - Dst: fu_plugin_runner_composite_peek_firmware
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:335,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:341,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:346,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:347,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:347,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:348,1
    - Dst: fu_plugin_runner_unlock
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:349,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:350,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:355,1
    - Dst: fu_plugin_get_device_gtypes
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:356,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:358,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:358,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:359,1
    - Dst: fu_plugin_runner_backend_device_added
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:360,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:364,1
    - Dst: fu_edid_set_pnp_id
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:369,1
    - Dst: fu_edid_set_eisa_id
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:370,1
    - Dst: fu_edid_set_product_name
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:371,1
    - Dst: fu_edid_set_serial_number
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:372,1
    - Dst: fu_edid_set_product_code
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:373,1
    - Dst: fu_drm_device_set_edid
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:374,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:376,1
    - Dst: fu_plugin_runner_device_register
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:377,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:377,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:382,1
    - Dst: fu_plugin_get_device_gtypes
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:383,1
    - Dst: g_array_index
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:385,1
    - Dst: fu_engine_plugin_device_gtype
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:386,1
    - Dst: fu_engine_plugin_device_gtype
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:387,1
    - Dst: fu_context_get_firmware_gtypes
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:392,1
    - Dst: g_array_index
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:394,1
    - Dst: fu_engine_plugin_firmware_gtype
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:395,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 121
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 397
    functionName: fu_engine_gtypes_func
    functionSourceFile: /src/fwupd/src/fu-engine-gtypes-test.c
    functionUses: 0
    functionsReached:
    - fu_edid_set_serial_number
    - fu_plugin_runner_backend_device_added
    - fu_device_set_plugin
    - fu_edid_set_eisa_id
    - fu_strjoin
    - g_assert_nonnull
    - fu_plugin_runner_composite_peek_firmware
    - fu_context_get_firmware_gtypes
    - g_array_index
    - g_object_new
    - fu_progress_new
    - fu_context_new_full
    - fu_edid_set_pnp_id
    - xb_silo_new
    - fu_context_load_hwinfo
    - fu_engine_new
    - g_ptr_array_index
    - fu_device_new
    - fu_edid_set_product_name
    - fu_plugin_runner_device_register
    - fu_engine_plugin_firmware_gtype
    - fu_engine_get_plugins
    - g_debug
    - fu_plugin_runner_startup
    - fu_security_attrs_new
    - g_assert_cmpint
    - g_hash_table_new
    - fu_plugin_runner_composite_cleanup
    - fu_plugin_runner_reboot_cleanup
    - fu_engine_set_silo
    - fu_plugin_runner_unlock
    - fu_edid_set_product_code
    - g_ptr_array_new_with_free_func
    - fu_firmware_new_from_bytes
    - g_bytes_new_static
    - fu_drm_device_set_edid
    - g_getenv
    - fu_plugin_runner_composite_prepare
    - g_ptr_array_new
    - fu_engine_load
    - FU_DEVICE
    - fu_engine_plugin_device_gtype
    - fu_edid_new
    - fu_context_set_path
    - g_ptr_array_add
    - g_assert_no_error
    - fu_plugin_get_device_gtypes
    - G_N_ELEMENTS
    - g_assert_true
    - g_test_build_filename
    - fu_plugin_runner_add_security_attrs
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_gtypes_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:402,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:403,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-engine-gtypes-test.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 405
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-engine-gtypes-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: 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_return_val_if_fail
    - fwupd_codec_add_string
    - FWUPD_CODEC
    - fwupd_remote_get_id
    - g_steal_pointer
    - FU_IS_RELEASE
    - fwupd_codec_string_append
    - fu_device_get_id
    - g_string_free
    - fwupd_codec_string_append_bool
    - g_string_new
    - fwupd_codec_string_append_hex
    - g_autoptr
    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: 4
    functionsReached:
    - g_set_object
    - g_return_if_fail
    - FU_IS_RELEASE
    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: 1
    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
    - firmware_basename
    argTypes:
    - FuRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 144
    functionName: fu_release_set_firmware_basename
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FU_IS_RELEASE
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_release_set_firmware_basename(FuRelease *self, const gchar
      *firmware_basename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-release.c:149,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:149,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-release.c:152,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-release.c:155,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-release.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device_version_old
    argTypes:
    - FuRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 157
    functionName: fu_release_set_device_version_old
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FU_IS_RELEASE
    - g_free
    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:169,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:169,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/src/fu-release.c:172,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-release.c:174,1
    - Dst: fu_release_set_device_version_old
      Src: /src/fwupd/src/fu-release.c:175,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-release.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuRelease*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: fu_release_set_device
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 11
    functionsReached:
    - fu_release_set_device_version_old
    - g_return_if_fail
    - g_set_object
    - FU_IS_RELEASE
    - fu_device_convert_instance_ids
    - fu_device_get_version
    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:189,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: fu_release_get_device
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 2
    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:204,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 206
    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:212,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:212,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-release.c:213,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/src/fu-release.c:213,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-release.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - stream
    argTypes:
    - FuRelease*
    - GInputStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: fu_release_set_stream
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 2
    functionsReached:
    - g_set_object
    - G_IS_INPUT_STREAM
    - g_return_if_fail
    - FU_IS_RELEASE
    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:228,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 230
    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:243,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 245
    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:258,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 260
    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:265,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:265,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-release.c:268,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-release.c:271,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-release.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - update_request_id
    argTypes:
    - FuRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 273
    functionName: fu_release_set_update_request_id
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FU_IS_RELEASE
    - g_free
    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:287,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:287,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-release.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - remote
    argTypes:
    - FuRelease*
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 289
    functionName: fu_release_set_remote
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 1
    functionsReached:
    - g_set_object
    - g_return_if_fail
    - FU_IS_RELEASE
    linkageType: ''
    returnType: void
    signature: void fu_release_set_remote(FuRelease *self, FwupdRemote *remote)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:302,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: fu_release_get_remote
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_RELEASE
    linkageType: ''
    returnType: FwupdRemote
    signature: 'FwupdRemote *

      fu_release_get_remote(FuRelease *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-release.c:317,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:317,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-release.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - config
    argTypes:
    - FuRelease*
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: fu_release_set_config
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_set_object
    - g_return_if_fail
    - FU_IS_RELEASE
    linkageType: ''
    returnType: void
    signature: void fu_release_set_config(FuRelease *self, FuEngineConfig *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ascii_isalnum
      Src: /src/fwupd/src/fu-release.c:326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - locale
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 330
    functionName: fu_release_locale_is_valid
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_ascii_isalnum
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_release_locale_is_valid(const gchar *locale)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-release.c:335,1
    - Dst: fu_engine_request_get_locale
      Src: /src/fwupd/src/fu-release.c:340,1
    - Dst: fu_release_locale_is_valid
      Src: /src/fwupd/src/fu-release.c:343,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-release.c:345,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-release.c:346,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-release.c:348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - element
    argTypes:
    - FuRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 349
    functionName: fu_release_get_localized_xpath
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_string_prepend
    - fu_release_locale_is_valid
    - fu_engine_request_get_locale
    - g_string_free
    - g_strdup_printf
    - g_string_new
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_release_get_localized_xpath(FuRelease *self, const gchar *element)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-release.c:356,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-release.c:357,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-release.c:360,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-release.c:362,1
    - Dst: fu_device_convert_version
      Src: /src/fwupd/src/fu-release.c:370,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-release.c:374,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - version
    - error
    argTypes:
    - FuRelease*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 375
    functionName: fu_release_get_release_version
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_strtoull
    - fu_device_has_private_flag
    - g_strstr_len
    - fu_device_convert_version
    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:381,1
    - Dst: fwupd_report_new
      Src: /src/fwupd/src/fu-release.c:381,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:382,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:383,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:384,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:386,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:388,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-release.c:389,1
    - Dst: g_date_time_new_from_iso8601
      Src: /src/fwupd/src/fu-release.c:390,1
    - Dst: fwupd_report_set_created
      Src: /src/fwupd/src/fu-release.c:392,1
    - Dst: g_date_time_to_unix
      Src: /src/fwupd/src/fu-release.c:392,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:394,1
    - Dst: fwupd_report_set_device_name
      Src: /src/fwupd/src/fu-release.c:396,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:397,1
    - Dst: fwupd_report_set_version_old
      Src: /src/fwupd/src/fu-release.c:399,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-release.c:400,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-release.c:400,1
    - Dst: fwupd_report_add_flag
      Src: /src/fwupd/src/fu-release.c:403,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-release.c:406,1
    - Dst: xb_node_get_attr_as_uint
      Src: /src/fwupd/src/fu-release.c:408,1
    - Dst: fwupd_report_set_vendor
      Src: /src/fwupd/src/fu-release.c:409,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:409,1
    - Dst: fwupd_report_set_vendor_id
      Src: /src/fwupd/src/fu-release.c:411,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-release.c:413,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:415,1
    - Dst: fwupd_report_set_distro_version
      Src: /src/fwupd/src/fu-release.c:417,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:418,1
    - Dst: fwupd_report_set_distro_variant
      Src: /src/fwupd/src/fu-release.c:420,1
    - Dst: fwupd_report_set_distro_id
      Src: /src/fwupd/src/fu-release.c:421,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:421,1
    - Dst: fu_release_get_remote_id
      Src: /src/fwupd/src/fu-release.c:423,1
    - Dst: fwupd_report_set_remote_id
      Src: /src/fwupd/src/fu-release.c:424,1
    - Dst: fu_release_get_remote_id
      Src: /src/fwupd/src/fu-release.c:424,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:425,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:428,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-release.c:429,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:429,1
    - Dst: fwupd_report_add_flag
      Src: /src/fwupd/src/fu-release.c:430,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:433,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:433,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-release.c:434,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:435,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:436,1
    - Dst: fwupd_report_add_metadata_item
      Src: /src/fwupd/src/fu-release.c:439,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:440,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:441,1
    - Dst: fwupd_release_add_report
      Src: /src/fwupd/src/fu-release.c:446,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:446,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 3
    argNames:
    - self
    - n
    - error
    argTypes:
    - FuRelease*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 448
    functionName: fu_release_load_test_result
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - fwupd_report_add_flag
    - fwupd_release_add_report
    - fwupd_report_set_remote_id
    - g_strdup_printf
    - xb_node_get_attr_as_uint
    - xb_node_get_attr
    - fu_release_get_remote_id
    - fwupd_report_new
    - g_ptr_array_index
    - g_debug
    - fu_release_get_version
    - xb_node_query_first
    - fwupd_report_set_vendor
    - fwupd_report_set_created
    - fwupd_report_set_distro_id
    - fwupd_report_add_metadata_item
    - fwupd_report_set_distro_variant
    - xb_node_query
    - fwupd_report_set_distro_version
    - FWUPD_RELEASE
    - g_date_time_new_from_iso8601
    - fwupd_report_set_version_old
    - xb_node_query_text
    - g_strcmp0
    - fwupd_report_set_device_name
    - fu_version_compare
    - fwupd_report_set_vendor_id
    - g_date_time_to_unix
    - g_autoptr
    - xb_node_get_text
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_release_load_test_result(FuRelease *self, XbNode *n, GError
      **error)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:455,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:456,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:457,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:460,1
    - Dst: g_ascii_strdown
      Src: /src/fwupd/src/fu-release.c:462,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-release.c:463,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-release.c:466,1
    - Dst: fu_release_set_filename
      Src: /src/fwupd/src/fu-release.c:471,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:474,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:477,1
    - Dst: fu_release_uri_get_scheme
      Src: /src/fwupd/src/fu-release.c:482,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:482,1
    - Dst: fu_engine_config_get_uri_scheme_prio
      Src: /src/fwupd/src/fu-release.c:485,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/src/fu-release.c:495,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:496,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/src/fu-release.c:499,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:499,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/src/fu-release.c:503,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:503,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:503,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:508,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:511,1
    - Dst: fwupd_release_add_checksum
      Src: /src/fwupd/src/fu-release.c:512,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:512,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:512,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:517,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:520,1
    - Dst: fu_release_load_test_result
      Src: /src/fwupd/src/fu-release.c:521,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/src/fu-release.c:527,1
    - Dst: fwupd_release_set_size
      Src: /src/fwupd/src/fu-release.c:529,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:529,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 3
    argNames:
    - self
    - artifact
    - error
    argTypes:
    - FuRelease*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 533
    functionName: fu_release_load_artifact
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - fu_release_uri_get_scheme
    - fwupd_release_set_size
    - g_debug
    - fwupd_release_add_location
    - fwupd_remote_build_firmware_uri
    - xb_node_query_text_as_uint
    - g_str_has_suffix
    - xb_node_query
    - FWUPD_RELEASE
    - g_ascii_strdown
    - fwupd_release_add_checksum
    - xb_node_get_text
    - fu_release_load_test_result
    - fu_engine_config_get_uri_scheme_prio
    - g_autoptr
    - fu_release_set_filename
    - g_ptr_array_index
    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:538,1
    - Dst: fu_release_uri_get_scheme
      Src: /src/fwupd/src/fu-release.c:541,1
    - Dst: fu_release_uri_get_scheme
      Src: /src/fwupd/src/fu-release.c:542,1
    - Dst: fu_engine_config_get_uri_scheme_prio
      Src: /src/fwupd/src/fu-release.c:543,1
    - Dst: fu_engine_config_get_uri_scheme_prio
      Src: /src/fwupd/src/fu-release.c:544,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - a
    - b
    - user_data
    argTypes:
    - gconstpointer
    - gconstpointer
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 550
    functionName: fu_release_scheme_compare_cb
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - fu_engine_config_get_uri_scheme_prio
    - FU_RELEASE
    - fu_release_uri_get_scheme
    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:557,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-release.c:558,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-release.c:558,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:559,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-release.c:564,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 569
    functionName: fu_release_check_requirements_version_check
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    - xb_node_get_element
    - xb_node_get_text
    - g_ptr_array_index
    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:574,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:576,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:577,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-release.c:578,1
    - Dst: g_string_truncate
      Src: /src/fwupd/src/fu-release.c:581,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-release.c:582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - verfmts
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 583
    functionName: fu_release_verfmts_to_string
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_string_free
    - g_string_new
    - g_string_append_printf
    - g_string_truncate
    - xb_node_get_text
    - g_ptr_array_index
    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:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - self
    - fmt_rel
    argTypes:
    - FuRelease*
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 592
    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:600,1
    - Dst: fu_release_verfmts_to_string
      Src: /src/fwupd/src/fu-release.c:605,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:606,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:616,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:617,1
    - Dst: fwupd_version_format_from_string
      Src: /src/fwupd/src/fu-release.c:618,1
    - Dst: fu_release_check_verfmt_compatible
      Src: /src/fwupd/src/fu-release.c:619,1
    - Dst: fu_release_verfmts_to_string
      Src: /src/fwupd/src/fu-release.c:622,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:624,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/src/fu-release.c:629,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-release.c:633,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/src/fu-release.c:634,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - verfmts
    - flags
    - error
    argTypes:
    - FuRelease*
    - GPtrArray*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 637
    functionName: fu_release_check_verfmt
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - fu_release_verfmts_to_string
    - fwupd_version_format_to_string
    - g_set_error
    - fu_release_check_verfmt_compatible
    - fwupd_version_format_from_string
    - g_warning
    - xb_node_get_text
    - g_ptr_array_index
    - fu_device_get_version_format
    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:650,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:651,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:654,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:656,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:664,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-release.c:665,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:665,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-release.c:671,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-release.c:679,1
    - Dst: fu_release_check_requirements_version_check
      Src: /src/fwupd/src/fu-release.c:680,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-release.c:681,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:688,1
    - Dst: fu_device_get_protocols
      Src: /src/fwupd/src/fu-release.c:689,1
    - Dst: fu_device_has_protocol
      Src: /src/fwupd/src/fu-release.c:690,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-release.c:693,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-release.c:695,1
    - Dst: fu_device_get_protocols
      Src: /src/fwupd/src/fu-release.c:695,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:696,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-release.c:707,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-release.c:708,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:709,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:718,1
    - Dst: fu_device_get_branch
      Src: /src/fwupd/src/fu-release.c:719,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-release.c:721,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-release.c:722,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:723,1
    - Dst: fu_engine_request_has_feature_flag
      Src: /src/fwupd/src/fu-release.c:734,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-release.c:735,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-release.c:736,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:737,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-release.c:737,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-release.c:738,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-release.c:741,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-release.c:742,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-release.c:744,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-release.c:746,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: 752
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 752
    functionName: fu_release_check_requirements
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - fu_strjoin
    - fu_device_get_branch
    - fu_device_get_protocols
    - fu_engine_request_has_feature_flag
    - g_ptr_array_index
    - fu_device_get_id_display
    - fu_release_check_requirements_version_check
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_device_get_update_error
    - fu_device_has_flag
    - g_string_new
    - fu_device_has_protocol
    - fu_device_has_guid
    - xb_node_query
    - xb_node_query_text
    - g_strcmp0
    - g_set_error
    - g_string_append_printf
    - g_autoptr
    - xb_node_get_text
    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: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:777,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:777,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:778,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/src/fu-release.c:778,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:779,1
    - Dst: fu_engine_request_has_flag
      Src: /src/fwupd/src/fu-release.c:785,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-release.c:790,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-release.c:792,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-release.c:793,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-release.c:805,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-release.c:807,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:808,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:819,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:820,1
    - Dst: fu_release_check_verfmt
      Src: /src/fwupd/src/fu-release.c:822,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/src/fu-release.c:828,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-release.c:830,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-release.c:831,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-release.c:832,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:834,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-release.c:839,1
    - Dst: fu_device_get_version_highest
      Src: /src/fwupd/src/fu-release.c:843,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-release.c:845,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-release.c:846,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-release.c:847,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:849,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-release.c:854,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-release.c:860,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-release.c:861,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-release.c:862,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-release.c:863,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-release.c:865,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:872,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-release.c:876,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-release.c:880,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-release.c:881,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:884,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-release.c:888,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 55
    argCount: 4
    argNames:
    - self
    - component
    - install_flags
    - error
    argTypes:
    - FuRelease*
    - XbNode*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 766
    functionDepth: 3
    functionLinenumber: 766
    functionLinenumberEnd: 895
    functionName: fu_release_check_version
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 1
    functionsReached:
    - fu_device_get_version_lowest
    - fu_device_get_id_display
    - XB_IS_NODE
    - g_set_error_literal
    - fu_engine_request_has_flag
    - FU_IS_RELEASE
    - fu_device_get_version_highest
    - fu_release_get_version
    - fu_device_has_flag
    - fu_release_add_flag
    - fu_device_get_version_format
    - xb_node_query
    - fu_release_check_verfmt
    - g_return_val_if_fail
    - g_set_error
    - fu_version_compare
    - fu_device_has_private_flag
    - fu_device_get_version
    - fu_release_has_flag
    - g_autoptr
    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:900,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - priority
    argTypes:
    - FuRelease*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 902
    functionName: fu_release_set_priority
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - FU_IS_RELEASE
    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:907,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 909
    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: 73
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:941,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:942,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:943,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:944,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:945,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:946,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:947,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:948,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:950,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:950,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:951,1
    - Dst: FU_IS_CABINET
      Src: /src/fwupd/src/fu-release.c:951,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:952,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/src/fu-release.c:952,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:953,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/src/fu-release.c:953,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:954,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:957,1
    - Dst: fwupd_release_set_appstream_id
      Src: /src/fwupd/src/fu-release.c:959,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:959,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:960,1
    - Dst: fwupd_release_set_homepage
      Src: /src/fwupd/src/fu-release.c:962,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:962,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:963,1
    - Dst: fwupd_release_set_license
      Src: /src/fwupd/src/fu-release.c:965,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:965,1
    - Dst: fu_release_get_localized_xpath
      Src: /src/fwupd/src/fu-release.c:966,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:967,1
    - Dst: fwupd_release_set_name
      Src: /src/fwupd/src/fu-release.c:969,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:969,1
    - Dst: fu_release_get_localized_xpath
      Src: /src/fwupd/src/fu-release.c:970,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:971,1
    - Dst: fwupd_release_set_summary
      Src: /src/fwupd/src/fu-release.c:973,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:973,1
    - Dst: fu_release_get_localized_xpath
      Src: /src/fwupd/src/fu-release.c:974,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:975,1
    - Dst: fwupd_release_set_name_variant_suffix
      Src: /src/fwupd/src/fu-release.c:977,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:977,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:978,1
    - Dst: fwupd_release_set_branch
      Src: /src/fwupd/src/fu-release.c:980,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:980,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:981,1
    - Dst: fwupd_release_set_vendor
      Src: /src/fwupd/src/fu-release.c:983,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:983,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:987,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:988,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-release.c:989,1
    - Dst: xb_node_get_silo
      Src: /src/fwupd/src/fu-release.c:989,1
    - Dst: xb_node_query_first_full
      Src: /src/fwupd/src/fu-release.c:995,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-release.c:997,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-release.c:1005,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1009,1
    - Dst: fwupd_release_set_remote_id
      Src: /src/fwupd/src/fu-release.c:1011,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1011,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1012,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-release.c:1013,1
    - Dst: fwupd_release_add_flag
      Src: /src/fwupd/src/fu-release.c:1014,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1014,1
    - Dst: fu_release_ensure_trust_flags
      Src: /src/fwupd/src/fu-release.c:1017,1
    - Dst: xb_node_get_attr_as_uint
      Src: /src/fwupd/src/fu-release.c:1021,1
    - Dst: xb_node_get_attr_as_uint
      Src: /src/fwupd/src/fu-release.c:1023,1
    - Dst: fu_release_set_priority
      Src: /src/fwupd/src/fu-release.c:1025,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:1028,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-release.c:1030,1
    - Dst: fu_release_get_release_version
      Src: /src/fwupd/src/fu-release.c:1035,1
    - Dst: fwupd_release_set_version
      Src: /src/fwupd/src/fu-release.c:1038,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1038,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-release.c:1041,1
    - Dst: fu_release_set_version
      Src: /src/fwupd/src/fu-release.c:1042,1
    - Dst: fwupd_release_set_id
      Src: /src/fwupd/src/fu-release.c:1046,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1046,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:1046,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-release.c:1049,1
    - Dst: fu_release_load_artifact
      Src: /src/fwupd/src/fu-release.c:1051,1
    - Dst: fu_release_get_localized_xpath
      Src: /src/fwupd/src/fu-release.c:1054,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-release.c:1055,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:1058,1
    - Dst: xb_node_export
      Src: /src/fwupd/src/fu-release.c:1059,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-release.c:1060,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-release.c:1062,1
    - Dst: fu_engine_request_has_feature_flag
      Src: /src/fwupd/src/fu-release.c:1063,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-release.c:1065,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-release.c:1071,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1071,1
    - Dst: fu_engine_request_has_feature_flag
      Src: /src/fwupd/src/fu-release.c:1073,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-release.c:1075,1
    - Dst: fwupd_release_set_description
      Src: /src/fwupd/src/fu-release.c:1083,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1083,1
    - Dst: fwupd_release_get_locations
      Src: /src/fwupd/src/fu-release.c:1085,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1085,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1086,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/src/fu-release.c:1090,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-release.c:1092,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/src/fu-release.c:1093,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1093,1
    - Dst: fwupd_release_get_locations
      Src: /src/fwupd/src/fu-release.c:1096,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1096,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-release.c:1097,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1098,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-release.c:1102,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/src/fu-release.c:1103,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1103,1
    - Dst: fu_release_get_filename
      Src: /src/fwupd/src/fu-release.c:1106,1
    - Dst: xb_node_query_attr
      Src: /src/fwupd/src/fu-release.c:1107,1
    - Dst: fu_release_set_filename
      Src: /src/fwupd/src/fu-release.c:1109,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1111,1
    - Dst: fwupd_release_set_details_url
      Src: /src/fwupd/src/fu-release.c:1113,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1113,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1114,1
    - Dst: fwupd_release_set_source_url
      Src: /src/fwupd/src/fu-release.c:1116,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1116,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1117,1
    - Dst: fwupd_release_set_sbom_url
      Src: /src/fwupd/src/fu-release.c:1119,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1119,1
    - Dst: fwupd_release_get_checksums
      Src: /src/fwupd/src/fu-release.c:1120,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1120,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:1121,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:1122,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:1125,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:1126,1
    - Dst: fwupd_release_add_checksum
      Src: /src/fwupd/src/fu-release.c:1128,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1128,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:1129,1
    - Dst: fwupd_release_get_size
      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_as_uint
      Src: /src/fwupd/src/fu-release.c:1134,1
    - Dst: fwupd_release_set_size
      Src: /src/fwupd/src/fu-release.c:1136,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1136,1
    - Dst: fwupd_release_get_size
      Src: /src/fwupd/src/fu-release.c:1138,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1138,1
    - Dst: xb_node_get_data
      Src: /src/fwupd/src/fu-release.c:1139,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-release.c:1141,1
    - Dst: fwupd_release_set_size
      Src: /src/fwupd/src/fu-release.c:1142,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1142,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-release.c:1145,1
    - Dst: fwupd_release_set_urgency
      Src: /src/fwupd/src/fu-release.c:1147,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1147,1
    - Dst: fwupd_release_urgency_from_string
      Src: /src/fwupd/src/fu-release.c:1148,1
    - Dst: xb_node_get_attr_as_uint
      Src: /src/fwupd/src/fu-release.c:1149,1
    - Dst: fwupd_release_set_install_duration
      Src: /src/fwupd/src/fu-release.c:1151,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1151,1
    - Dst: xb_node_get_attr_as_uint
      Src: /src/fwupd/src/fu-release.c:1152,1
    - Dst: fwupd_release_set_created
      Src: /src/fwupd/src/fu-release.c:1154,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1154,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:1155,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:1158,1
    - Dst: fwupd_release_add_category
      Src: /src/fwupd/src/fu-release.c:1159,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1159,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:1159,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:1162,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:1165,1
    - Dst: fwupd_release_add_tag
      Src: /src/fwupd/src/fu-release.c:1166,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1166,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:1166,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:1169,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-release.c:1172,1
    - Dst: fwupd_release_add_issue
      Src: /src/fwupd/src/fu-release.c:1173,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1173,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-release.c:1173,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1176,1
    - Dst: fwupd_release_set_detach_caption
      Src: /src/fwupd/src/fu-release.c:1178,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1178,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1179,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/src/fu-release.c:1183,1
    - Dst: fwupd_release_set_detach_image
      Src: /src/fwupd/src/fu-release.c:1186,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1186,1
    - Dst: fwupd_release_set_detach_image
      Src: /src/fwupd/src/fu-release.c:1188,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1188,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1191,1
    - Dst: fwupd_release_set_protocol
      Src: /src/fwupd/src/fu-release.c:1193,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1193,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1194,1
    - Dst: fwupd_release_set_update_message
      Src: /src/fwupd/src/fu-release.c:1196,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1196,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1197,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/src/fu-release.c:1201,1
    - Dst: fwupd_release_set_update_image
      Src: /src/fwupd/src/fu-release.c:1204,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1204,1
    - Dst: fwupd_release_set_update_image
      Src: /src/fwupd/src/fu-release.c:1206,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1206,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-release.c:1209,1
    - Dst: fu_release_set_update_request_id
      Src: /src/fwupd/src/fu-release.c:1211,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:1214,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-release.c:1216,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-release.c:1217,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-release.c:1218,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-release.c:1218,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-release.c:1219,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-release.c:1223,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-release.c:1225,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-release.c:1226,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-release.c:1227,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-release.c:1227,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-release.c:1228,1
    - Dst: xb_node_get_data
      Src: /src/fwupd/src/fu-release.c:1234,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-release.c:1236,1
    - Dst: fu_strsafe_bytes
      Src: /src/fwupd/src/fu-release.c:1239,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-release.c:1241,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/src/fu-release.c:1248,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-release.c:1248,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-release.c:1252,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/src/fu-release.c:1255,1
    - Dst: g_object_get_data
      Src: /src/fwupd/src/fu-release.c:1261,1
    - Dst: G_OBJECT
      Src: /src/fwupd/src/fu-release.c:1261,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-release.c:1263,1
    - Dst: g_ptr_array_sort_with_data
      Src: /src/fwupd/src/fu-release.c:1272,1
    - Dst: fwupd_release_get_locations
      Src: /src/fwupd/src/fu-release.c:1272,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-release.c:1272,1
    - Dst: fu_engine_request_has_flag
      Src: /src/fwupd/src/fu-release.c:1279,1
    - Dst: fu_release_check_requirements
      Src: /src/fwupd/src/fu-release.c:1280,1
    CyclomaticComplexity: 93
    EdgeCount: 93
    ICount: 266
    argCount: 6
    argNames:
    - self
    - cabinet
    - component
    - rel_optional
    - install_flags
    - error
    argTypes:
    - FuRelease*
    - FuCabinet*
    - XbNode*
    - XbNode*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 926
    functionDepth: 3
    functionLinenumber: 926
    functionLinenumberEnd: 1286
    functionName: fu_release_load
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 9
    functionsReached:
    - g_strdup_printf
    - g_ptr_array_index
    - fwupd_release_get_size
    - xb_node_query_text_as_uint
    - xb_query_new_full
    - g_str_has_prefix
    - fwupd_release_urgency_from_string
    - fu_release_get_filename
    - xb_node_get_data
    - xb_node_query_text
    - g_steal_pointer
    - fwupd_release_set_summary
    - fwupd_release_set_branch
    - fu_firmware_get_image_by_id
    - xb_node_get_attr
    - fu_release_get_version
    - g_object_get_data
    - fu_release_set_priority
    - xb_node_query_first
    - xb_node_query_first_full
    - g_propagate_error
    - fu_release_load_artifact
    - fwupd_release_set_version
    - fwupd_release_set_detach_image
    - fwupd_release_get_checksums
    - fwupd_release_add_issue
    - fwupd_release_set_update_message
    - g_return_val_if_fail
    - FU_IS_CABINET
    - fwupd_release_set_size
    - fwupd_release_set_created
    - fwupd_release_has_flag
    - fwupd_release_set_id
    - xb_node_get_text
    - fwupd_release_set_vendor
    - g_ptr_array_sort_with_data
    - g_object_ref
    - fu_release_set_filename
    - fu_strsafe_bytes
    - XB_IS_NODE
    - g_set_error_literal
    - fu_engine_request_has_flag
    - FU_IS_RELEASE
    - fu_release_set_version
    - fu_device_has_flag
    - xb_node_export
    - g_string_new
    - fu_release_ensure_trust_flags
    - g_bytes_get_data
    - fwupd_release_get_locations
    - fwupd_error_convert
    - fu_release_set_update_request_id
    - fwupd_release_set_license
    - fwupd_release_add_flag
    - g_strdup
    - fwupd_release_set_install_duration
    - xb_node_query_attr
    - fwupd_release_set_homepage
    - fu_firmware_get_stream
    - fwupd_release_add_category
    - FWUPD_RELEASE
    - g_string_prepend
    - fwupd_release_set_appstream_id
    - fwupd_remote_get_kind
    - fwupd_release_set_name_variant_suffix
    - fwupd_release_set_name
    - fwupd_release_set_source_url
    - xb_node_get_silo
    - fu_engine_request_has_feature_flag
    - xb_node_get_attr_as_uint
    - fu_release_check_requirements
    - fwupd_release_set_detach_caption
    - fwupd_release_add_tag
    - fwupd_release_set_details_url
    - fu_release_get_localized_xpath
    - fu_release_get_release_version
    - fwupd_remote_build_firmware_uri
    - fwupd_release_set_description
    - fwupd_release_set_protocol
    - FU_FIRMWARE
    - xb_node_query
    - fwupd_release_set_update_image
    - fwupd_release_add_location
    - G_OBJECT
    - fwupd_release_set_remote_id
    - g_set_error
    - fwupd_release_set_sbom_url
    - g_prefix_error
    - fwupd_release_add_checksum
    - g_error_matches
    - g_autoptr
    - fwupd_release_set_urgency
    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:1293,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-release.c:1293,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-release.c:1294,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-release.c:1297,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-release.c:1298,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-release.c:1299,1
    - Dst: xb_node_get_data
      Src: /src/fwupd/src/fu-release.c:1304,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/src/fu-release.c:1307,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-release.c:1310,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-release.c:1311,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-release.c:1317,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-release.c:1319,1
    - Dst: fu_release_get_flags
      Src: /src/fwupd/src/fu-release.c:1323,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-release.c:1324,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-release.c:1325,1
    - Dst: fwupd_remote_kind_to_string
      Src: /src/fwupd/src/fu-release.c:1326,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-release.c:1326,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-release.c:1327,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-release.c:1328,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-release.c:1329,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-release.c:1330,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-release.c:1332,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - self
    - rel
    - error
    argTypes:
    - FuRelease*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1288
    functionDepth: 1
    functionLinenumber: 1288
    functionLinenumberEnd: 1338
    functionName: fu_release_ensure_trust_flags
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_getenv
    - fu_release_get_flags
    - g_debug
    - fwupd_remote_get_id
    - g_bytes_get_data
    - fwupd_remote_get_kind
    - FU_IS_RELEASE
    - fu_release_add_flag
    - g_bytes_get_size
    - fu_memcpy_safe
    - xb_node_get_data
    - fwupd_remote_kind_to_string
    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:1352,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-release.c:1353,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-release.c:1354,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-release.c:1358,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-release.c:1364,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-release.c:1365,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-release.c:1369,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1348
    functionDepth: 1
    functionLinenumber: 1348
    functionLinenumberEnd: 1372
    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:1386,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-release.c:1387,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-release.c:1391,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-release.c:1391,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-release.c:1393,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-release.c:1393,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-release.c:1405,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-release.c:1406,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-release.c:1408,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-release.c:1409,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-release.c:1414,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-release.c:1414,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-release.c:1415,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-release.c:1416,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 2
    argNames:
    - release1
    - release2
    argTypes:
    - FuRelease*
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1383
    functionDepth: 1
    functionLinenumber: 1383
    functionLinenumberEnd: 1418
    functionName: fu_release_compare
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 3
    functionsReached:
    - fu_release_get_version
    - fu_version_compare
    - fu_release_get_device
    - fu_device_get_order
    - fwupd_remote_get_priority
    - fu_device_get_version_format
    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:1423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1420
    functionDepth: 1
    functionLinenumber: 1420
    functionLinenumberEnd: 1424
    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:1429,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-release.c:1431,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-release.c:1432,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-release.c:1433,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-release.c:1435,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-release.c:1437,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-release.c:1439,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-release.c:1441,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-release.c:1443,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-release.c:1445,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-release.c:1447,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-release.c:1449,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1426
    functionDepth: 0
    functionLinenumber: 1426
    functionLinenumberEnd: 1450
    functionName: fu_release_finalize
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FU_RELEASE
    - g_object_unref
    - G_OBJECT_CLASS
    - 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:1455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuReleaseClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1452
    functionDepth: 0
    functionLinenumber: 1452
    functionLinenumberEnd: 1457
    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:1463,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-release.c:1464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1459
    functionDepth: 0
    functionLinenumber: 1459
    functionLinenumberEnd: 1465
    functionName: fu_release_new
    functionSourceFile: /src/fwupd/src/fu-release.c
    functionUses: 16
    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_backend_device_added
    - fu_uefi_device_new
    - fu_efivars_exists
    - fu_progress_set_steps
    - fu_progress_step_done
    - FU_DEVICE
    - fu_context_get_efivars
    - G_N_ELEMENTS
    - fu_backend_get_context
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_backend_coldplug(FuBackend *backend, FuProgress *progress,
      GError **error)
  - BBCount: 2
    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_strv_length
      Src: /src/fwupd/src/fu-uefi-backend.c:62,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-uefi-backend.c:63,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-uefi-backend.c:71,1
    - Dst: fu_uefi_device_set_guid
      Src: /src/fwupd/src/fu-uefi-backend.c:72,1
    - Dst: fu_uefi_device_set_name
      Src: /src/fwupd/src/fu-uefi-backend.c:73,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-uefi-backend.c:74,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-uefi-backend.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - backend
    - backend_id
    - error
    argTypes:
    - FuBackend*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 75
    functionName: fu_uefi_backend_create_device
    functionSourceFile: /src/fwupd/src/fu-uefi-backend.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_steal_pointer
    - FU_DEVICE
    - g_strsplit
    - g_strv_length
    - g_object_new
    - fu_uefi_device_set_guid
    - fu_uefi_device_set_name
    - g_auto
    - 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: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    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:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiBackendClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 88
    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:93,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-uefi-backend.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 101
    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: 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: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: fu_usb_backend_hotplug_cb
    functionSourceFile: /src/fwupd/src/fu-usb-backend-test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_usb_backend_hotplug_cb(FuBackend *backend, FuDevice *device,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:27,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/src/fu-usb-backend-test.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:30,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/src/fu-usb-backend-test.c:33,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/src/fu-usb-backend-test.c:34,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/src/fu-usb-backend-test.c:35,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-usb-backend-test.c:37,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-usb-backend-test.c:38,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-usb-backend-test.c:39,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-usb-backend-test.c:40,1
    - Dst: fwupd_json_parser_load_from_stream
      Src: /src/fwupd/src/fu-usb-backend-test.c:41,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-usb-backend-test.c:45,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-usb-backend-test.c:46,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/src/fu-usb-backend-test.c:47,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-usb-backend-test.c:48,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-usb-backend-test.c:49,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/src/fu-usb-backend-test.c:50,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-usb-backend-test.c:50,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-usb-backend-test.c:51,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-usb-backend-test.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 2
    argNames:
    - backend
    - fn
    argTypes:
    - FuBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 53
    functionName: fu_usb_backend_load_file
    functionSourceFile: /src/fwupd/src/fu-usb-backend-test.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - FWUPD_CODEC
    - g_assert_true
    - g_debug
    - fwupd_codec_from_json
    - fwupd_json_parser_set_max_quoted
    - fwupd_json_parser_load_from_stream
    - g_assert_nonnull
    - g_assert_no_error
    - fwupd_json_parser_new
    - g_autoptr
    - fu_input_stream_from_path
    - fwupd_json_node_get_object
    - fwupd_json_parser_set_max_items
    linkageType: ''
    returnType: void
    signature: void fu_usb_backend_load_file(FuBackend *backend, const gchar *fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:89,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-usb-backend-test.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:90,1
    - Dst: fu_usb_backend_new
      Src: /src/fwupd/src/fu-usb-backend-test.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:91,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-usb-backend-test.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:92,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:94,1
    - Dst: g_object_set
      Src: /src/fwupd/src/fu-usb-backend-test.c:97,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-usb-backend-test.c:98,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-usb-backend-test.c:100,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-usb-backend-test.c:102,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-usb-backend-test.c:104,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-usb-backend-test.c:108,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/src/fu-usb-backend-test.c:108,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-usb-backend-test.c:109,1
    - Dst: fu_backend_get_enabled
      Src: /src/fwupd/src/fu-usb-backend-test.c:109,1
    - Dst: fu_backend_setup
      Src: /src/fwupd/src/fu-usb-backend-test.c:110,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-usb-backend-test.c:111,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-usb-backend-test.c:112,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-usb-backend-test.c:113,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-usb-backend-test.c:114,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-usb-backend-test.c:115,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-usb-backend-test.c:116,1
    - Dst: fu_backend_coldplug
      Src: /src/fwupd/src/fu-usb-backend-test.c:117,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-usb-backend-test.c:118,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-usb-backend-test.c:119,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-usb-backend-test.c:120,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-usb-backend-test.c:121,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-usb-backend-test.c:122,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-usb-backend-test.c:123,1
    - Dst: fu_usb_backend_load_file
      Src: /src/fwupd/src/fu-usb-backend-test.c:124,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-usb-backend-test.c:125,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-usb-backend-test.c:126,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/src/fu-usb-backend-test.c:127,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-usb-backend-test.c:128,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-usb-backend-test.c:129,1
    - Dst: fu_device_set_context
      Src: /src/fwupd/src/fu-usb-backend-test.c:130,1
    - Dst: fu_device_probe
      Src: /src/fwupd/src/fu-usb-backend-test.c:131,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-usb-backend-test.c:132,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-usb-backend-test.c:133,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-usb-backend-test.c:134,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-usb-backend-test.c:134,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-usb-backend-test.c:137,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-usb-backend-test.c:138,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-usb-backend-test.c:141,1
    - Dst: fu_device_has_icon
      Src: /src/fwupd/src/fu-usb-backend-test.c:141,1
    - Dst: fu_device_get_possible_plugins
      Src: /src/fwupd/src/fu-usb-backend-test.c:142,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-usb-backend-test.c:143,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-usb-backend-test.c:144,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-usb-backend-test.c:144,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-usb-backend-test.c:148,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-usb-backend-test.c:149,1
    - Dst: fu_usb_backend_load_file
      Src: /src/fwupd/src/fu-usb-backend-test.c:150,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-usb-backend-test.c:151,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-usb-backend-test.c:152,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-usb-backend-test.c:156,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-usb-backend-test.c:157,1
    - Dst: fu_usb_backend_load_file
      Src: /src/fwupd/src/fu-usb-backend-test.c:158,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-usb-backend-test.c:159,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-usb-backend-test.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 161
    functionName: fu_usb_backend_func
    functionSourceFile: /src/fwupd/src/fu-usb-backend-test.c
    functionUses: 0
    functionsReached:
    - fu_backend_setup
    - g_assert_nonnull
    - fu_device_get_possible_plugins
    - fu_backend_coldplug
    - fu_progress_new
    - fu_device_set_context
    - fu_context_new_full
    - g_ptr_array_index
    - fu_device_probe
    - g_signal_connect
    - fu_device_to_string
    - g_debug
    - g_assert_cmpint
    - fu_device_has_flag
    - fu_backend_get_devices
    - g_object_set
    - fu_backend_get_enabled
    - fu_usb_backend_new
    - fu_backend_get_name
    - fu_usb_backend_load_file
    - fu_device_has_icon
    - g_assert_no_error
    - G_CALLBACK
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_usb_backend_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:169,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-usb-backend-test.c:169,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:170,1
    - Dst: fu_usb_backend_new
      Src: /src/fwupd/src/fu-usb-backend-test.c:170,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:171,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:172,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-usb-backend-test.c:172,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:173,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:174,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:175,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:176,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/src/fu-usb-backend-test.c:176,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:177,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend-test.c:178,1
    - Dst: g_test_expect_message
      Src: /src/fwupd/src/fu-usb-backend-test.c:181,1
    - Dst: g_test_expect_message
      Src: /src/fwupd/src/fu-usb-backend-test.c:184,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/src/fu-usb-backend-test.c:190,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/src/fu-usb-backend-test.c:191,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/src/fu-usb-backend-test.c:192,1
    - Dst: g_object_set
      Src: /src/fwupd/src/fu-usb-backend-test.c:195,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-usb-backend-test.c:197,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-usb-backend-test.c:198,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-usb-backend-test.c:199,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-usb-backend-test.c:200,1
    - Dst: fwupd_json_parser_load_from_bytes
      Src: /src/fwupd/src/fu-usb-backend-test.c:201,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-usb-backend-test.c:205,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-usb-backend-test.c:206,1
    - Dst: fu_backend_setup
      Src: /src/fwupd/src/fu-usb-backend-test.c:207,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-usb-backend-test.c:208,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-usb-backend-test.c:209,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/src/fu-usb-backend-test.c:210,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-usb-backend-test.c:211,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-usb-backend-test.c:212,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/src/fu-usb-backend-test.c:213,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-usb-backend-test.c:213,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-usb-backend-test.c:214,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-usb-backend-test.c:215,1
    - Dst: fu_backend_coldplug
      Src: /src/fwupd/src/fu-usb-backend-test.c:216,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-usb-backend-test.c:217,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-usb-backend-test.c:218,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/src/fu-usb-backend-test.c:219,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-usb-backend-test.c:220,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-usb-backend-test.c:221,1
    - Dst: fu_device_set_context
      Src: /src/fwupd/src/fu-usb-backend-test.c:222,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-usb-backend-test.c:224,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-usb-backend-test.c:225,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-usb-backend-test.c:226,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-usb-backend-test.c:229,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-usb-backend-test.c:229,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-usb-backend-test.c:230,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/src/fu-usb-backend-test.c:230,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-usb-backend-test.c:233,1
    - Dst: fu_device_has_vendor_id
      Src: /src/fwupd/src/fu-usb-backend-test.c:233,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-usb-backend-test.c:236,1
    - Dst: fu_device_has_icon
      Src: /src/fwupd/src/fu-usb-backend-test.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 237
    functionName: fu_usb_backend_invalid_func
    functionSourceFile: /src/fwupd/src/fu-usb-backend-test.c
    functionUses: 0
    functionsReached:
    - fu_device_has_instance_id
    - fwupd_json_parser_set_max_depth
    - FWUPD_CODEC
    - fwupd_codec_from_json
    - fu_backend_setup
    - fwupd_json_parser_load_from_bytes
    - fwupd_json_parser_set_max_quoted
    - fu_device_locker_new
    - g_assert_nonnull
    - fu_backend_coldplug
    - fu_progress_new
    - fu_device_set_context
    - fu_context_new_full
    - fu_device_get_name
    - fwupd_json_parser_set_max_items
    - g_ptr_array_index
    - g_test_expect_message
    - g_assert_cmpint
    - g_object_set
    - fu_backend_get_devices
    - fu_usb_backend_new
    - g_assert_false
    - fwupd_json_parser_new
    - fwupd_json_node_get_object
    - fu_device_has_vendor_id
    - fu_bytes_get_contents
    - fu_device_has_icon
    - g_assert_no_error
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_usb_backend_invalid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-usb-backend-test.c:242,1
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-usb-backend-test.c:243,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-usb-backend-test.c:244,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-usb-backend-test.c:245,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-usb-backend-test.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 247
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-usb-backend-test.c
    functionUses: 1
    functionsReached:
    - g_setenv
    - g_test_add_func
    - 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/src/fu-history-test.c:19,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-history-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:24,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-history-test.c:29,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:30,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-history-test.c:31,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-history-test.c:32,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-history-test.c:35,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-history-test.c:36,1
    - Dst: fu_context_get_path
      Src: /src/fwupd/src/fu-history-test.c:39,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:40,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-history-test.c:41,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-history-test.c:42,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-history-test.c:46,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-history-test.c:47,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-history-test.c:48,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-history-test.c:49,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-history-test.c:50,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-history-test.c:51,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/src/fu-history-test.c:52,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-history-test.c:53,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-history-test.c:54,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/src/fu-history-test.c:55,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/src/fu-history-test.c:56,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-history-test.c:57,1
    - Dst: fu_release_set_filename
      Src: /src/fwupd/src/fu-history-test.c:58,1
    - Dst: fu_release_add_checksum
      Src: /src/fwupd/src/fu-history-test.c:59,1
    - Dst: fu_release_set_version
      Src: /src/fwupd/src/fu-history-test.c:60,1
    - Dst: fu_release_add_metadata_item
      Src: /src/fwupd/src/fu-history-test.c:61,1
    - Dst: fu_history_add_device
      Src: /src/fwupd/src/fu-history-test.c:62,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:63,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-history-test.c:64,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-history-test.c:65,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-history-test.c:68,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-history-test.c:69,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-history-test.c:69,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-history-test.c:71,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-history-test.c:74,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:77,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-history-test.c:78,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-history-test.c:79,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-history-test.c:79,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-history-test.c:80,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-history-test.c:80,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-history-test.c:81,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-history-test.c:81,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-history-test.c:82,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-history-test.c:82,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-history-test.c:83,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-history-test.c:83,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-history-test.c:84,1
    - Dst: fu_device_get_guid_default
      Src: /src/fwupd/src/fu-history-test.c:84,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-history-test.c:87,1
    - Dst: fu_device_get_flags
      Src: /src/fwupd/src/fu-history-test.c:87,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-history-test.c:90,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/src/fu-history-test.c:90,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-history-test.c:91,1
    - Dst: fu_device_get_modified_usec
      Src: /src/fwupd/src/fu-history-test.c:91,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-history-test.c:92,1
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-history-test.c:92,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-history-test.c:93,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-history-test.c:94,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-history-test.c:94,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-history-test.c:95,1
    - Dst: fu_release_get_filename
      Src: /src/fwupd/src/fu-history-test.c:95,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-history-test.c:96,1
    - Dst: fu_release_get_metadata_item
      Src: /src/fwupd/src/fu-history-test.c:96,1
    - Dst: fu_release_get_checksums
      Src: /src/fwupd/src/fu-history-test.c:97,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-history-test.c:98,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-history-test.c:99,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-history-test.c:100,1
    - Dst: fwupd_checksum_get_by_kind
      Src: /src/fwupd/src/fu-history-test.c:100,1
    - Dst: fu_history_add_device
      Src: /src/fwupd/src/fu-history-test.c:101,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:102,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-history-test.c:103,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-history-test.c:106,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-history-test.c:107,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-history-test.c:108,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-history-test.c:109,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-history-test.c:112,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:115,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-history-test.c:116,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-history-test.c:117,1
    - Dst: fu_history_remove_device
      Src: /src/fwupd/src/fu-history-test.c:120,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:121,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-history-test.c:122,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-history-test.c:123,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-history-test.c:126,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-history-test.c:129,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-history-test.c:130,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-history-test.c:131,1
    - Dst: fu_history_clear_approved_firmware
      Src: /src/fwupd/src/fu-history-test.c:134,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:135,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-history-test.c:136,1
    - Dst: fu_history_add_approved_firmware
      Src: /src/fwupd/src/fu-history-test.c:137,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:138,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-history-test.c:139,1
    - Dst: fu_history_add_approved_firmware
      Src: /src/fwupd/src/fu-history-test.c:140,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:141,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-history-test.c:142,1
    - Dst: fu_history_get_approved_firmware
      Src: /src/fwupd/src/fu-history-test.c:143,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:144,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-history-test.c:145,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-history-test.c:146,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-history-test.c:147,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-history-test.c:147,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-history-test.c:148,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-history-test.c:148,1
    - Dst: fu_history_add_emulation_tag
      Src: /src/fwupd/src/fu-history-test.c:151,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:152,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-history-test.c:153,1
    - Dst: fu_history_has_emulation_tag
      Src: /src/fwupd/src/fu-history-test.c:154,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:155,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-history-test.c:156,1
    - Dst: fu_history_has_emulation_tag
      Src: /src/fwupd/src/fu-history-test.c:157,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:158,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-history-test.c:159,1
    - Dst: fu_history_remove_emulation_tag
      Src: /src/fwupd/src/fu-history-test.c:160,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:161,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-history-test.c:162,1
    - Dst: fu_history_remove_emulation_tag
      Src: /src/fwupd/src/fu-history-test.c:163,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:164,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-history-test.c:165,1
    - Dst: fu_history_has_emulation_tag
      Src: /src/fwupd/src/fu-history-test.c:166,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-history-test.c:167,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-history-test.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 113
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 169
    functionName: fu_history_func
    functionSourceFile: /src/fwupd/src/fu-history-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_get_modified_usec
    - fu_device_set_version
    - fu_device_set_created_usec
    - FU_RELEASE
    - fu_context_set_tmpdir
    - fu_device_get_release_default
    - g_assert_nonnull
    - fu_history_get_device_by_id
    - fu_device_set_update_state
    - fu_context_new_full
    - fu_context_get_path
    - fu_device_get_name
    - fu_device_set_version_format
    - fu_device_get_created_usec
    - fu_release_set_filename
    - g_ptr_array_index
    - fu_device_new
    - fwupd_checksum_get_by_kind
    - fu_device_add_instance_id
    - g_object_unref
    - fu_release_get_version
    - fu_release_get_metadata_item
    - fu_device_get_update_state
    - fu_device_get_update_error
    - g_assert_cmpint
    - fu_release_get_checksums
    - fu_history_get_approved_firmware
    - fu_release_set_version
    - fu_history_has_emulation_tag
    - fu_temporary_directory_new
    - g_assert_null
    - fu_history_add_approved_firmware
    - fu_history_new
    - fu_release_new
    - g_assert_cmpstr
    - fu_device_set_modified_usec
    - fu_device_set_id
    - fu_device_set_update_error
    - fu_device_set_name
    - fu_history_clear_approved_firmware
    - fu_release_get_filename
    - g_assert_false
    - fu_release_add_checksum
    - fu_device_get_guid_default
    - fu_history_remove_device
    - fu_device_get_flags
    - fu_history_add_emulation_tag
    - fu_release_add_metadata_item
    - g_assert_error
    - g_assert_no_error
    - g_file_test
    - fu_device_get_id
    - fu_device_get_version
    - g_clear_error
    - g_assert_true
    - fu_history_add_device
    - g_autoptr
    - g_build_filename
    - fu_history_remove_emulation_tag
    linkageType: ''
    returnType: void
    signature: void fu_history_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:175,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-history-test.c:175,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:176,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-history-test.c:176,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:177,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-history-test.c:177,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:178,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-history-test.c:178,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:179,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:180,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-history-test.c:183,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:184,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-history-test.c:185,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-history-test.c:186,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-history-test.c:189,1
    - Dst: fu_history_remove_device
      Src: /src/fwupd/src/fu-history-test.c:190,1
    - Dst: fu_history_add_device
      Src: /src/fwupd/src/fu-history-test.c:191,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:192,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-history-test.c:193,1
    - Dst: fu_history_modify_device
      Src: /src/fwupd/src/fu-history-test.c:196,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:197,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-history-test.c:198,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-history-test.c:201,1
    - Dst: fu_history_modify_device
      Src: /src/fwupd/src/fu-history-test.c:202,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-history-test.c:203,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-history-test.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 205
    functionName: fu_history_modify_func
    functionSourceFile: /src/fwupd/src/fu-history-test.c
    functionUses: 0
    functionsReached:
    - fu_history_new
    - fu_history_remove_device
    - fu_release_new
    - fu_context_set_tmpdir
    - fu_history_modify_device
    - g_assert_nonnull
    - g_assert_no_error
    - fu_device_set_id
    - g_assert_error
    - g_assert_false
    - fu_context_new_full
    - g_assert_true
    - fu_temporary_directory_new
    - fu_history_add_device
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_history_modify_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:211,1
    - Dst: fu_context_new
      Src: /src/fwupd/src/fu-history-test.c:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:212,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:213,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:214,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:215,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:216,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:217,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-history-test.c:222,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:223,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-history-test.c:224,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-history-test.c:225,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/src/fu-history-test.c:226,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:231,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-history-test.c:232,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-history-test.c:235,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-history-test.c:236,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-history-test.c:237,1
    - Dst: g_file_copy
      Src: /src/fwupd/src/fu-history-test.c:238,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:239,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-history-test.c:240,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-history-test.c:243,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-history-test.c:244,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-history-test.c:247,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:250,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-history-test.c:251,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-history-test.c:252,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-history-test.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 253
    functionName: fu_history_migrate_v1_func
    functionSourceFile: /src/fwupd/src/fu-history-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - g_file_copy
    - g_assert_true
    - fu_history_new
    - fu_context_build_filename
    - fu_context_set_tmpdir
    - g_assert_nonnull
    - g_assert_no_error
    - fu_device_get_id
    - fu_history_get_device_by_id
    - g_test_build_filename
    - g_file_new_for_path
    - fu_temporary_directory_new
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_history_migrate_v1_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:259,1
    - Dst: fu_context_new
      Src: /src/fwupd/src/fu-history-test.c:259,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:260,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:261,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:262,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:263,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:264,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history-test.c:265,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-history-test.c:270,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:271,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-history-test.c:272,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/src/fu-history-test.c:273,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/src/fu-history-test.c:274,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:279,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-history-test.c:280,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-history-test.c:283,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-history-test.c:284,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-history-test.c:285,1
    - Dst: g_file_copy
      Src: /src/fwupd/src/fu-history-test.c:286,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:287,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-history-test.c:288,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-history-test.c:291,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-history-test.c:292,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-history-test.c:295,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-history-test.c:298,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-history-test.c:299,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-history-test.c:300,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-history-test.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 301
    functionName: fu_history_migrate_v2_func
    functionSourceFile: /src/fwupd/src/fu-history-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - g_file_copy
    - g_assert_true
    - fu_history_new
    - fu_context_build_filename
    - fu_context_set_tmpdir
    - g_assert_nonnull
    - g_assert_no_error
    - fu_device_get_id
    - fu_history_get_device_by_id
    - g_test_build_filename
    - g_file_new_for_path
    - fu_temporary_directory_new
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_history_migrate_v2_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-history-test.c:306,1
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-history-test.c:307,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-history-test.c:308,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-history-test.c:309,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-history-test.c:310,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-history-test.c:311,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-history-test.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 313
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-history-test.c
    functionUses: 1
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-security-attr-common.c:18,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:19,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:21,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:21,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:23,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:25,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:25,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:27,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:29,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:29,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:31,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:33,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:33,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:35,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:37,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:37,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:39,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:41,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:41,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:43,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:46,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:46,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:48,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:51,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:51,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:53,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:56,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:56,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:58,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:61,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:61,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:63,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:66,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:66,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:68,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:71,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:71,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:73,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:75,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:75,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:77,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:79,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:79,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:81,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:84,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:84,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:86,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:88,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:88,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:90,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:92,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:92,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:94,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:96,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:96,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:98,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:100,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:100,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:102,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:104,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:104,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:106,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:108,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:108,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:110,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:112,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:112,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:114,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:116,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:116,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:118,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:120,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:120,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:122,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:124,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:124,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:126,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:128,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:128,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:130,1
    - Dst: fwupd_security_attr_get_metadata
      Src: /src/fwupd/src/fu-security-attr-common.c:131,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-security-attr-common.c:134,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:134,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:137,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:137,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:139,1
    - Dst: fwupd_security_attr_get_metadata
      Src: /src/fwupd/src/fu-security-attr-common.c:140,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-security-attr-common.c:143,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:143,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:149,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:149,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:151,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:154,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:154,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:156,1
    - Dst: fwupd_security_attr_get_metadata
      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:159,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-security-attr-common.c:163,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:163,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-security-attr-common.c:167,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:167,1
    - Dst: g_strdup
      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_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:171,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:173,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:173,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:175,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:177,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:177,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:179,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:181,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:181,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:183,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:184,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:186,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:186,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:188,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:190,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:190,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:192,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:194,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:194,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:196,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:198,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:198,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:200,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:202,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:202,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:204,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:206,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:206,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:208,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:210,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:210,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:212,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:214,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:214,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:216,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:218,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:218,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:220,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:222,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:222,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:224,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:226,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:226,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:228,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:230,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:230,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:232,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:234,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:234,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:236,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:238,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:238,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:240,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:242,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:242,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:244,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:246,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:246,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-security-attr-common.c:249,1
    - Dst: fwupd_security_attr_get_name
      Src: /src/fwupd/src/fu-security-attr-common.c:249,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 161
    argCount: 1
    argNames:
    - attr
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 250
    functionName: fu_security_attr_get_name
    functionSourceFile: /src/fwupd/src/fu-security-attr-common.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - fwupd_security_attr_get_metadata
    - fwupd_security_attr_get_appstream_id
    - _
    - g_strdup_printf
    - fwupd_security_attr_get_name
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_security_attr_get_name(FwupdSecurityAttr *attr)'
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-security-attr-common.c:255,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:256,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:258,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:260,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:262,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:264,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:266,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:268,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:270,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:272,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:274,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:276,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:288,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:293,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:295,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:297,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:299,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:300,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:302,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:304,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:306,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:308,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:310,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:312,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:315,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:317,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:319,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:321,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:323,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:325,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:327,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:329,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:331,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:333,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:335,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:337,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:339,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:341,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:343,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:345,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:347,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:349,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:351,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:353,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:355,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:357,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:363,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:365,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:369,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:371,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:374,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:376,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:378,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:380,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:382,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:384,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:386,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:388,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:390,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:392,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:393,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:395,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:397,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:399,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:401,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:403,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:405,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:407,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:409,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:411,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:413,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:415,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:417,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:419,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:421,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:423,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:425,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:427,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:429,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:431,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:433,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:435,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:437,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:439,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:445,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:447,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:449,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:451,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 143
    argCount: 1
    argNames:
    - attr
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 454
    functionName: fu_security_attr_get_title
    functionSourceFile: /src/fwupd/src/fu-security-attr-common.c
    functionUses: 0
    functionsReached:
    - _
    - g_strcmp0
    - fwupd_security_attr_get_appstream_id
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_security_attr_get_title(FwupdSecurityAttr *attr)'
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-security-attr-common.c:460,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: _
      Src: /src/fwupd/src/fu-security-attr-common.c:465,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:468,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:470,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:473,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:475,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:478,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:480,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:483,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:484,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:485,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:491,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:493,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:497,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:498,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:500,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:503,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:505,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:508,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:510,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:514,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:516,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:519,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:521,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:524,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:526,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:531,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:533,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:544,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:546,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:550,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:552,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:555,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:557,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:560,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:562,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:564,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:566,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:569,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:571,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:574,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:576,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:579,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:580,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:582,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:585,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:587,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:590,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:592,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:595,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:597,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:600,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:602,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:604,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:606,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:609,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:611,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:615,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:616,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:618,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:621,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:623,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:625,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:626,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:627,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:629,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:632,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:634,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:637,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:639,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:642,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:644,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:646,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:648,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:651,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:653,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:656,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:658,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:661,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:663,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-security-attr-common.c:666,1
    - Dst: _
      Src: /src/fwupd/src/fu-security-attr-common.c:668,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 119
    argCount: 1
    argNames:
    - attr
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 672
    functionName: fu_security_attr_get_description
    functionSourceFile: /src/fwupd/src/fu-security-attr-common.c
    functionUses: 0
    functionsReached:
    - _
    - g_strcmp0
    - fwupd_security_attr_get_appstream_id
    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:
    - fwupd_bios_setting_set_description
    - gettext::gettext
    - fwupd_bios_setting_get_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:
    - g_strv_length
    - fwupd_bios_setting_get_name
    - 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:67,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util-bios-setting.c:67,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-bios-setting.c:68,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/src/fu-util-bios-setting.c:68,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-bios-setting.c:71,1
    - Dst: fu_util_bios_setting_matches_args
      Src: /src/fwupd/src/fu-util-bios-setting.c:72,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-bios-setting.c:73,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util-bios-setting.c:73,1
    - Dst: fu_util_bios_setting_update_description
      Src: /src/fwupd/src/fu-util-bios-setting.c:74,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/src/fu-util-bios-setting.c:75,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util-bios-setting.c:75,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/src/fu-util-bios-setting.c:78,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/src/fu-util-bios-setting.c:81,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-util-bios-setting.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - console
    - values
    - settings
    argTypes:
    - FuConsole*
    - gchar**
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 83
    functionName: fu_util_bios_setting_console_print
    functionSourceFile: /src/fwupd/src/fu-util-bios-setting.c
    functionUses: 1
    functionsReached:
    - fwupd_json_object_add_array
    - FWUPD_CODEC
    - fu_util_print_json_object
    - fu_util_bios_setting_matches_args
    - fwupd_json_object_new
    - fwupd_codec_to_json
    - fwupd_json_array_new
    - fwupd_json_array_add_object
    - g_autoptr
    - fu_util_bios_setting_update_description
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_util_bios_setting_console_print(FuConsole *console, gchar **values,
      GPtrArray *settings)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-bios-setting.c:92,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-bios-setting.c:92,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-util-bios-setting.c:94,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util-bios-setting.c:94,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util-bios-setting.c:95,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/src/fu-util-bios-setting.c:96,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:97,1
    - Dst: fwupd_bios_setting_get_kind
      Src: /src/fwupd/src/fu-util-bios-setting.c:99,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:100,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:103,1
    - Dst: fu_util_bios_setting_kind_to_string
      Src: /src/fwupd/src/fu-util-bios-setting.c:104,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/src/fu-util-bios-setting.c:106,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-bios-setting.c:108,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-bios-setting.c:111,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:111,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:114,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:114,1
    - Dst: fu_util_bios_setting_update_description
      Src: /src/fwupd/src/fu-util-bios-setting.c:116,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:117,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:120,1
    - Dst: fwupd_bios_setting_get_description
      Src: /src/fwupd/src/fu-util-bios-setting.c:121,1
    - Dst: fwupd_bios_setting_get_read_only
      Src: /src/fwupd/src/fu-util-bios-setting.c:123,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:125,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:128,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:131,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:131,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-bios-setting.c:135,1
    - Dst: fwupd_bios_setting_get_lower_bound
      Src: /src/fwupd/src/fu-util-bios-setting.c:136,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-bios-setting.c:138,1
    - Dst: fwupd_bios_setting_get_upper_bound
      Src: /src/fwupd/src/fu-util-bios-setting.c:139,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-bios-setting.c:142,1
    - Dst: fwupd_bios_setting_get_scalar_increment
      Src: /src/fwupd/src/fu-util-bios-setting.c:143,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:145,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:145,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:147,1
    - Dst: _
      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:148,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:152,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:156,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:158,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:158,1
    - Dst: fwupd_bios_setting_get_possible_values
      Src: /src/fwupd/src/fu-util-bios-setting.c:161,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:164,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:164,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-bios-setting.c:166,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-bios-setting.c:167,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-bios-setting.c:168,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-bios-setting.c:172,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-bios-setting.c:172,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - setting
    - idt
    argTypes:
    - FwupdBiosSetting*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 173
    functionName: fu_util_bios_setting_to_string
    functionSourceFile: /src/fwupd/src/fu-util-bios-setting.c
    functionUses: 1
    functionsReached:
    - fwupd_codec_to_string
    - fu_util_bios_setting_kind_to_string
    - FWUPD_CODEC
    - fwupd_bios_setting_get_possible_values
    - fwupd_bios_setting_get_current_value
    - _
    - g_strdup_printf
    - g_ptr_array_index
    - g_debug
    - fwupd_bios_setting_get_upper_bound
    - g_string_new
    - fwupd_bios_setting_get_lower_bound
    - fwupd_codec_string_append
    - fwupd_bios_setting_get_description
    - fwupd_bios_setting_get_scalar_increment
    - fwupd_bios_setting_get_kind
    - fu_util_bios_setting_update_description
    - g_strdup
    - fwupd_bios_setting_get_name
    - g_steal_pointer
    - g_string_free
    - fwupd_bios_setting_get_read_only
    - g_autoptr
    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:181,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-bios-setting.c:183,1
    - Dst: fu_bios_settings_new
      Src: /src/fwupd/src/fu-util-bios-setting.c:183,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-util-bios-setting.c:184,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/src/fu-util-bios-setting.c:186,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util-bios-setting.c:186,1
    - Dst: fu_bios_settings_to_hash_kv
      Src: /src/fwupd/src/fu-util-bios-setting.c:188,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util-bios-setting.c:191,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util-bios-setting.c:191,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util-bios-setting.c:192,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-bios-setting.c:196,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-util-bios-setting.c:200,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util-bios-setting.c:201,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-util-bios-setting.c:202,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-bios-setting.c:202,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-bios-setting.c:202,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - input
    - error
    argTypes:
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 205
    functionName: fu_util_bios_settings_parse_argv
    functionSourceFile: /src/fwupd/src/fu-util-bios-setting.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - FWUPD_CODEC
    - g_hash_table_insert
    - g_set_error_literal
    - g_file_get_contents
    - fu_bios_settings_to_hash_kv
    - g_hash_table_new_full
    - _
    - g_strv_length
    - fwupd_codec_from_json_string
    - fu_bios_settings_new
    - 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:34,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:34,1
    - Dst: G_UNIX_INPUT_STREAM
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:34,1
    - Dst: g_critical
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:36,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - seekable
    argTypes:
    - GSeekable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: fu_unix_seekable_input_stream_tell
    functionSourceFile: /src/fwupd/src/fu-unix-seekable-input-stream.c
    functionUses: 0
    functionsReached:
    - g_critical
    - G_UNIX_INPUT_STREAM
    - g_unix_input_stream_get_fd
    - fwupd_strerror
    - lseek
    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:43,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:43,1
    - Dst: G_UNIX_INPUT_STREAM
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seekable
    argTypes:
    - GSeekable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    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: 59
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 59
    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:68,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:71,1
    - Dst: FU_IS_UNIX_SEEKABLE_INPUT_STREAM
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:71,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:72,1
    - Dst: lseek
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:74,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:74,1
    - Dst: G_UNIX_INPUT_STREAM
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:74,1
    - Dst: fu_unix_seekable_input_stream_seek_type_to_lseek
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:76,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:78,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:80,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:82,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: 86
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 86
    functionName: fu_unix_seekable_input_stream_seek
    functionSourceFile: /src/fwupd/src/fu-unix-seekable-input-stream.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_unix_seekable_input_stream_seek_type_to_lseek
    - g_io_error_from_errno
    - g_set_error
    - G_UNIX_INPUT_STREAM
    - g_unix_input_stream_get_fd
    - fwupd_strerror
    - FU_IS_UNIX_SEEKABLE_INPUT_STREAM
    - FU_UNIX_SEEKABLE_INPUT_STREAM
    - lseek
    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: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    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:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - seekable
    - offset
    - cancellable
    - error
    argTypes:
    - GSeekable*
    - goffset
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 106
    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: 116
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 116
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:136,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:140,1
    - Dst: fstat
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:143,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:144,1
    - Dst: strerror
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:148,1
    - Dst: S_ISREG
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:151,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:152,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-unix-seekable-input-stream.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - close_fd
    - error
    argTypes:
    - gint
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 162
    functionName: fu_unix_seekable_input_stream_new
    functionSourceFile: /src/fwupd/src/fu-unix-seekable-input-stream.c
    functionUses: 3
    functionsReached:
    - S_ISREG
    - g_set_error
    - g_steal_pointer
    - fstat
    - g_object_new
    - strerror
    - g_autoptr
    linkageType: ''
    returnType: GInputStream
    signature: 'GInputStream *

      fu_unix_seekable_input_stream_new(gint fd, gboolean close_fd, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUnixSeekableInputStreamClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    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: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    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:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - dwCurrentState
    - dwWin32ExitCode
    - dwWaitHint
    argTypes:
    - DWORD
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 47
    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:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main-windows.c:53,1
    - Dst: fu_daemon_stop
      Src: /src/fwupd/src/fu-main-windows.c:54,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-main-windows.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: fu_main_svc_control_stop_cb
    functionSourceFile: /src/fwupd/src/fu-main-windows.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_autoptr
    - FU_DAEMON
    - fu_daemon_stop
    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:64,1
    - Dst: g_idle_add
      Src: /src/fwupd/src/fu-main-windows.c:66,1
    - Dst: fu_main_svc_report_status
      Src: /src/fwupd/src/fu-main-windows.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - dwCtrl
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 72
    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:77,1
    - Dst: fu_daemon_new
      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_autoptr
      Src: /src/fwupd/src/fu-main-windows.c:79,1
    - Dst: g_option_context_new
      Src: /src/fwupd/src/fu-main-windows.c:79,1
    - Dst: g_option_context_add_group
      Src: /src/fwupd/src/fu-main-windows.c:82,1
    - Dst: fu_debug_get_option_group
      Src: /src/fwupd/src/fu-main-windows.c:82,1
    - Dst: g_option_context_parse
      Src: /src/fwupd/src/fu-main-windows.c:83,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-main-windows.c:84,1
    - Dst: RegisterServiceCtrlHandlerA
      Src: /src/fwupd/src/fu-main-windows.c:88,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-main-windows.c:90,1
    - Dst: GetLastError
      Src: /src/fwupd/src/fu-main-windows.c:90,1
    - Dst: fu_main_svc_report_status
      Src: /src/fwupd/src/fu-main-windows.c:95,1
    - Dst: fu_daemon_setup
      Src: /src/fwupd/src/fu-main-windows.c:96,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-main-windows.c:97,1
    - Dst: fu_main_svc_report_status
      Src: /src/fwupd/src/fu-main-windows.c:100,1
    - Dst: fu_daemon_start
      Src: /src/fwupd/src/fu-main-windows.c:101,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-main-windows.c:102,1
    - Dst: fu_main_svc_report_status
      Src: /src/fwupd/src/fu-main-windows.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - dwArgc
    - lpszArgv
    argTypes:
    - DWORD
    - LPSTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 106
    functionName: fu_main_svc_main_cb
    functionSourceFile: /src/fwupd/src/fu-main-windows.c
    functionUses: 0
    functionsReached:
    - fu_daemon_start
    - fu_daemon_setup
    - g_option_context_add_group
    - RegisterServiceCtrlHandlerA
    - fu_daemon_new
    - fu_main_svc_report_status
    - g_printerr
    - g_warning
    - g_option_context_new
    - GetLastError
    - g_autoptr
    - fu_debug_get_option_group
    - 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:111,1
    - Dst: fu_daemon_new
      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_autoptr
      Src: /src/fwupd/src/fu-main-windows.c:113,1
    - Dst: g_option_context_new
      Src: /src/fwupd/src/fu-main-windows.c:113,1
    - Dst: g_option_context_add_group
      Src: /src/fwupd/src/fu-main-windows.c:116,1
    - Dst: fu_debug_get_option_group
      Src: /src/fwupd/src/fu-main-windows.c:116,1
    - Dst: g_option_context_parse
      Src: /src/fwupd/src/fu-main-windows.c:117,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-main-windows.c:118,1
    - Dst: fu_daemon_setup
      Src: /src/fwupd/src/fu-main-windows.c:123,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-main-windows.c:124,1
    - Dst: fu_daemon_start
      Src: /src/fwupd/src/fu-main-windows.c:127,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-main-windows.c:128,1
    - Dst: g_message
      Src: /src/fwupd/src/fu-main-windows.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 135
    functionName: fu_main_console
    functionSourceFile: /src/fwupd/src/fu-main-windows.c
    functionUses: 0
    functionsReached:
    - g_message
    - fu_daemon_start
    - fu_daemon_setup
    - g_option_context_add_group
    - fu_daemon_new
    - g_printerr
    - g_option_context_new
    - 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:141,1
    - Dst: GetLastError
      Src: /src/fwupd/src/fu-main-windows.c:143,1
    - Dst: fu_main_console
      Src: /src/fwupd/src/fu-main-windows.c:144,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-main-windows.c:145,1
    - Dst: GetLastError
      Src: /src/fwupd/src/fu-main-windows.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 149
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-main-windows.c
    functionUses: 1
    functionsReached:
    - GetLastError
    - fu_main_console
    - g_printerr
    - StartServiceCtrlDispatcherA
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-idle-test.c:15,1
    - Dst: fu_idle_new
      Src: /src/fwupd/src/fu-idle-test.c:15,1
    - Dst: fu_idle_reset
      Src: /src/fwupd/src/fu-idle-test.c:17,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-idle-test.c:18,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-idle-test.c:18,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-idle-test.c:19,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-idle-test.c:19,1
    - Dst: fu_idle_inhibit
      Src: /src/fwupd/src/fu-idle-test.c:21,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-idle-test.c:22,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-idle-test.c:22,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-idle-test.c:23,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-idle-test.c:23,1
    - Dst: fu_idle_uninhibit
      Src: /src/fwupd/src/fu-idle-test.c:26,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-idle-test.c:27,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-idle-test.c:27,1
    - Dst: fu_idle_uninhibit
      Src: /src/fwupd/src/fu-idle-test.c:30,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-idle-test.c:31,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-idle-test.c:31,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-idle-test.c:32,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-idle-test.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-idle-test.c:36,1
    - Dst: fu_idle_locker_new
      Src: /src/fwupd/src/fu-idle-test.c:37,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-idle-test.c:38,1
    - Dst: fu_idle_locker_new
      Src: /src/fwupd/src/fu-idle-test.c:39,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-idle-test.c:40,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-idle-test.c:41,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-idle-test.c:42,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-idle-test.c:42,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-idle-test.c:43,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-idle-test.c:43,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-idle-test.c:45,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-idle-test.c:45,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-idle-test.c:46,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-idle-test.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 47
    functionName: fu_idle_func
    functionSourceFile: /src/fwupd/src/fu-idle-test.c
    functionUses: 0
    functionsReached:
    - fu_idle_reset
    - fu_idle_has_inhibit
    - fu_idle_locker_new
    - fu_idle_new
    - g_assert_nonnull
    - g_assert_false
    - fu_idle_inhibit
    - g_assert_true
    - g_autoptr
    - fu_idle_uninhibit
    linkageType: ''
    returnType: void
    signature: void fu_idle_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-idle-test.c:52,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-idle-test.c:53,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-idle-test.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-idle-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: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:58,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-history.c:58,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-history.c:61,1
    - Dst: fu_device_add_release
      Src: /src/fwupd/src/fu-history.c:62,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-history.c:62,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:65,1
    - Dst: fwupd_device_set_id
      Src: /src/fwupd/src/fu-history.c:67,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-history.c:67,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:70,1
    - Dst: fu_release_add_checksum
      Src: /src/fwupd/src/fu-history.c:72,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:75,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-history.c:77,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/src/fu-history.c:80,1
    - Dst: sqlite3_column_int64
      Src: /src/fwupd/src/fu-history.c:80,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/src/fu-history.c:83,1
    - Dst: sqlite3_column_int64
      Src: /src/fwupd/src/fu-history.c:83,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:86,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-history.c:88,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:91,1
    - Dst: fu_release_set_filename
      Src: /src/fwupd/src/fu-history.c:93,1
    - Dst: fu_device_set_flags
      Src: /src/fwupd/src/fu-history.c:96,1
    - Dst: sqlite3_column_int64
      Src: /src/fwupd/src/fu-history.c:96,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:99,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-history.c:101,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-history.c:101,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-history.c:103,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-history.c:103,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-history.c:104,1
    - Dst: fu_release_add_metadata_item
      Src: /src/fwupd/src/fu-history.c:106,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:111,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/src/fu-history.c:113,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-history.c:116,1
    - Dst: sqlite3_column_int
      Src: /src/fwupd/src/fu-history.c:116,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:119,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/src/fu-history.c:120,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:123,1
    - Dst: fu_release_set_version
      Src: /src/fwupd/src/fu-history.c:125,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:128,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-history.c:130,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:133,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/src/fu-history.c:135,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:138,1
    - Dst: fu_release_set_protocol
      Src: /src/fwupd/src/fu-history.c:140,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:143,1
    - Dst: fu_release_set_id
      Src: /src/fwupd/src/fu-history.c:145,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:148,1
    - Dst: fu_release_set_appstream_id
      Src: /src/fwupd/src/fu-history.c:150,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-history.c:153,1
    - Dst: sqlite3_column_int
      Src: /src/fwupd/src/fu-history.c:153,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/src/fu-history.c:156,1
    - Dst: sqlite3_column_int
      Src: /src/fwupd/src/fu-history.c:156,1
    - Dst: fu_release_set_flags
      Src: /src/fwupd/src/fu-history.c:159,1
    - Dst: sqlite3_column_int64
      Src: /src/fwupd/src/fu-history.c:159,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/src/fu-history.c:162,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 1
    argNames:
    - stmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 164
    functionName: fu_history_device_from_stmt
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - fu_device_set_plugin
    - fu_device_set_version
    - fu_device_set_created_usec
    - g_strv_length
    - fu_device_set_update_state
    - fu_device_set_flags
    - g_auto
    - fu_device_set_version_format
    - fu_release_set_filename
    - fu_device_new
    - fu_release_set_protocol
    - sqlite3_column_text
    - fu_release_set_appstream_id
    - g_strsplit
    - fu_release_set_version
    - fu_device_add_instance_id_full
    - fwupd_device_set_id
    - fu_release_set_id
    - sqlite3_column_int
    - fu_release_new
    - sqlite3_column_int64
    - fu_device_set_modified_usec
    - fu_device_convert_instance_ids
    - fu_device_set_update_error
    - fu_release_set_flags
    - FWUPD_DEVICE
    - fu_device_set_name
    - fu_release_add_checksum
    - fu_release_add_metadata_item
    - fu_device_add_release
    - fu_device_add_checksum
    - fu_device_set_install_duration
    - g_autoptr
    - FWUPD_RELEASE
    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:171,1
    - Dst: sqlite3_step
      Src: /src/fwupd/src/fu-history.c:173,1
    - Dst: fu_history_device_from_stmt
      Src: /src/fwupd/src/fu-history.c:174,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-history.c:175,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:179,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:183,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: 187
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 187
    functionName: fu_history_stmt_exec
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_errmsg
    - sqlite3_step
    - g_set_error
    - g_ptr_array_add
    - 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:193,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:236,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 244
    functionName: fu_history_create_database
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_exec
    - sqlite3_errmsg
    - g_set_error
    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:251,1
    - Dst: sqlite3_exec
      Src: /src/fwupd/src/fu-history.c:253,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:255,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:255,1
    - Dst: fu_history_create_database
      Src: /src/fwupd/src/fu-history.c:260,1
    - Dst: sqlite3_exec
      Src: /src/fwupd/src/fu-history.c:264,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:275,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 279
    functionName: fu_history_migrate_database_v1
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_errmsg
    - g_debug
    - g_info
    - sqlite3_exec
    - fu_history_create_database
    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:285,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:291,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 299
    functionName: fu_history_migrate_database_v2
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_exec
    - sqlite3_errmsg
    - g_set_error
    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:305,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:311,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 313
    functionName: fu_history_migrate_database_v3
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_exec
    - sqlite3_errmsg
    - g_debug
    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:319,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:325,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 333
    functionName: fu_history_migrate_database_v4
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_exec
    - sqlite3_errmsg
    - g_set_error
    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:339,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:345,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 353
    functionName: fu_history_migrate_database_v5
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_exec
    - sqlite3_errmsg
    - g_set_error
    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:359,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:368,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 376
    functionName: fu_history_migrate_database_v6
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_exec
    - sqlite3_errmsg
    - g_set_error
    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:382,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:388,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 390
    functionName: fu_history_migrate_database_v7
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_exec
    - sqlite3_errmsg
    - g_debug
    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:396,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:402,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 404
    functionName: fu_history_migrate_database_v8
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_exec
    - sqlite3_errmsg
    - g_debug
    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:410,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:416,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 418
    functionName: fu_history_migrate_database_v9
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_exec
    - sqlite3_errmsg
    - g_debug
    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:424,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:430,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 432
    functionName: fu_history_migrate_database_v10
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_exec
    - sqlite3_errmsg
    - g_debug
    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:438,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:444,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 446
    functionName: fu_history_migrate_database_v11
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_exec
    - sqlite3_errmsg
    - g_debug
    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:452,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:462,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 470
    functionName: fu_history_migrate_database_v12
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_exec
    - sqlite3_errmsg
    - g_set_error
    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:477,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:479,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:481,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:481,1
    - Dst: sqlite3_step
      Src: /src/fwupd/src/fu-history.c:484,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-history.c:486,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:486,1
    - Dst: sqlite3_column_int
      Src: /src/fwupd/src/fu-history.c:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHistory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 490
    functionName: fu_history_get_schema_version
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_prepare_v2
    - sqlite3_errmsg
    - sqlite3_step
    - g_debug
    - sqlite3_column_int
    - g_warning
    - g_autoptr
    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:496,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-history.c:499,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-history.c:501,1
    - Dst: fu_history_create_database
      Src: /src/fwupd/src/fu-history.c:506,1
    - Dst: fu_history_migrate_database_v1
      Src: /src/fwupd/src/fu-history.c:510,1
    - Dst: fu_history_migrate_database_v2
      Src: /src/fwupd/src/fu-history.c:514,1
    - Dst: fu_history_migrate_database_v3
      Src: /src/fwupd/src/fu-history.c:518,1
    - Dst: fu_history_migrate_database_v4
      Src: /src/fwupd/src/fu-history.c:522,1
    - Dst: fu_history_migrate_database_v5
      Src: /src/fwupd/src/fu-history.c:526,1
    - Dst: fu_history_migrate_database_v6
      Src: /src/fwupd/src/fu-history.c:530,1
    - Dst: fu_history_migrate_database_v7
      Src: /src/fwupd/src/fu-history.c:534,1
    - Dst: fu_history_migrate_database_v8
      Src: /src/fwupd/src/fu-history.c:538,1
    - Dst: fu_history_migrate_database_v9
      Src: /src/fwupd/src/fu-history.c:543,1
    - Dst: fu_history_migrate_database_v10
      Src: /src/fwupd/src/fu-history.c:547,1
    - Dst: fu_history_migrate_database_v11
      Src: /src/fwupd/src/fu-history.c:551,1
    - Dst: fu_history_migrate_database_v12
      Src: /src/fwupd/src/fu-history.c:555,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-history.c:562,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:567,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:569,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:573,1
    - Dst: sqlite3_bind_int
      Src: /src/fwupd/src/fu-history.c:576,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:577,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 3
    argNames:
    - self
    - schema_ver
    - error
    argTypes:
    - FuHistory*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 492
    functionDepth: 3
    functionLinenumber: 492
    functionLinenumberEnd: 578
    functionName: fu_history_create_or_migrate
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_prepare_v2
    - fu_history_migrate_database_v9
    - fu_history_migrate_database_v7
    - fu_history_migrate_database_v10
    - fu_history_migrate_database_v3
    - fu_history_migrate_database_v6
    - sqlite3_errmsg
    - fu_history_migrate_database_v12
    - fu_history_migrate_database_v1
    - fu_history_create_database
    - g_info
    - fu_history_migrate_database_v8
    - g_warning
    - fu_history_migrate_database_v5
    - fu_history_stmt_exec
    - sqlite3_bind_int
    - g_set_error
    - fu_history_migrate_database_v2
    - fu_history_migrate_database_v11
    - fu_history_migrate_database_v4
    - g_autoptr
    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:584,1
    - Dst: sqlite3_open
      Src: /src/fwupd/src/fu-history.c:585,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:587,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:592,1
    - Dst: sqlite3_db_config
      Src: /src/fwupd/src/fu-history.c:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - filename
    - error
    argTypes:
    - FuHistory*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 599
    functionName: fu_history_open
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_errmsg
    - g_debug
    - g_set_error
    - sqlite3_db_config
    - sqlite3_open
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_open(FuHistory *self, const gchar *filename, GError
      **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:612,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:612,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:613,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/src/fu-history.c:616,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-history.c:622,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-history.c:625,1
    - Dst: fu_history_open
      Src: /src/fwupd/src/fu-history.c:627,1
    - Dst: fu_history_get_schema_version
      Src: /src/fwupd/src/fu-history.c:631,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:633,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:634,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:644,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:646,1
    - Dst: fu_history_create_or_migrate
      Src: /src/fwupd/src/fu-history.c:647,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-history.c:650,1
    - Dst: sqlite3_close
      Src: /src/fwupd/src/fu-history.c:653,1
    - Dst: g_unlink
      Src: /src/fwupd/src/fu-history.c:655,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:656,1
    - Dst: fu_history_open
      Src: /src/fwupd/src/fu-history.c:663,1
    - Dst: fu_history_create_database
      Src: /src/fwupd/src/fu-history.c:665,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 601
    functionDepth: 4
    functionLinenumber: 601
    functionLinenumberEnd: 671
    functionName: fu_history_load
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - sqlite3_prepare_v2
    - fu_context_build_filename
    - g_debug
    - g_set_error
    - fu_history_get_schema_version
    - g_unlink
    - g_prefix_error_literal
    - sqlite3_close
    - fu_history_create_or_migrate
    - fu_history_create_database
    - g_warning
    - FU_IS_HISTORY
    - g_autoptr
    - fu_history_open
    - fu_path_mkdir_parent
    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:676,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:677,1
    - Dst: g_list_sort
      Src: /src/fwupd/src/fu-history.c:677,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/src/fu-history.c:677,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-history.c:680,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-history.c:682,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-history.c:683,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-history.c:685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - hash
    argTypes:
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 686
    functionName: fu_history_convert_hash_to_string
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_string_append
    - g_hash_table_get_keys
    - g_hash_table_lookup
    - g_list_sort
    - g_string_free
    - g_string_new
    - g_string_append_printf
    - g_autoptr
    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:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 695
    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: fu_device_get_id_display
      Src: /src/fwupd/src/fu-history.c:713,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:714,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:716,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:716,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:717,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/src/fu-history.c:717,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:720,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:724,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:725,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:738,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:742,1
    - Dst: sqlite3_bind_int
      Src: /src/fwupd/src/fu-history.c:746,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-history.c:746,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:747,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-history.c:747,1
    - Dst: sqlite3_bind_int64
      Src: /src/fwupd/src/fu-history.c:748,1
    - Dst: fu_history_get_device_flags_filtered
      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_id
      Src: /src/fwupd/src/fu-history.c:749,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:750,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-history.c:750,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:751,1
    - Dst: fwupd_checksum_get_by_kind
      Src: /src/fwupd/src/fu-history.c:754,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/src/fu-history.c:754,1
    - Dst: sqlite3_bind_int64
      Src: /src/fwupd/src/fu-history.c:757,1
    - Dst: fu_device_get_modified_usec
      Src: /src/fwupd/src/fu-history.c:757,1
    - Dst: sqlite3_bind_int64
      Src: /src/fwupd/src/fu-history.c:758,1
    - Dst: fu_device_get_install_duration
      Src: /src/fwupd/src/fu-history.c:758,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:760,1
    - Dst: sqlite3_changes
      Src: /src/fwupd/src/fu-history.c:762,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:763,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-history.c:767,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuHistory*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 709
    functionDepth: 5
    functionLinenumber: 709
    functionLinenumberEnd: 771
    functionName: fu_history_modify_device
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 1
    functionsReached:
    - sqlite3_prepare_v2
    - fu_device_get_modified_usec
    - fu_history_get_device_flags_filtered
    - fu_device_get_checksums
    - fwupd_checksum_get_by_kind
    - fu_device_get_id_display
    - sqlite3_errmsg
    - g_debug
    - fu_device_get_update_state
    - fu_device_get_update_error
    - fu_history_load
    - sqlite3_changes
    - sqlite3_bind_int64
    - g_return_val_if_fail
    - fu_device_get_install_duration
    - fu_history_stmt_exec
    - sqlite3_bind_int
    - g_set_error
    - FU_IS_DEVICE
    - fu_device_get_id
    - fu_device_get_version
    - FU_IS_HISTORY
    - g_autoptr
    - sqlite3_bind_text
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_modify_device(FuHistory *self, FuDevice *device,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-history.c:793,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:795,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:797,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:797,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:798,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/src/fu-history.c:798,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:801,1
    - Dst: fu_history_convert_hash_to_string
      Src: /src/fwupd/src/fu-history.c:805,1
    - Dst: fu_release_get_metadata
      Src: /src/fwupd/src/fu-history.c:805,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:808,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:809,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:822,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:826,1
    - Dst: sqlite3_bind_int
      Src: /src/fwupd/src/fu-history.c:830,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-history.c:830,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:831,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-history.c:831,1
    - Dst: sqlite3_bind_int64
      Src: /src/fwupd/src/fu-history.c:832,1
    - Dst: fu_history_get_device_flags_filtered
      Src: /src/fwupd/src/fu-history.c:832,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:833,1
    - Dst: fu_device_get_id
      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_version
      Src: /src/fwupd/src/fu-history.c:834,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:835,1
    - Dst: fwupd_checksum_get_by_kind
      Src: /src/fwupd/src/fu-history.c:838,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/src/fu-history.c:838,1
    - Dst: sqlite3_bind_int64
      Src: /src/fwupd/src/fu-history.c:841,1
    - Dst: fu_device_get_modified_usec
      Src: /src/fwupd/src/fu-history.c:841,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:842,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:844,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 4
    argNames:
    - self
    - device
    - release
    - error
    argTypes:
    - FuHistory*
    - FuDevice*
    - FuRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 786
    functionDepth: 5
    functionLinenumber: 786
    functionLinenumberEnd: 845
    functionName: fu_history_modify_device_release
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_prepare_v2
    - fu_device_get_modified_usec
    - fu_history_convert_hash_to_string
    - fu_history_get_device_flags_filtered
    - fu_device_get_checksums
    - fwupd_checksum_get_by_kind
    - fu_device_get_id_display
    - sqlite3_errmsg
    - g_debug
    - fu_device_get_update_state
    - fu_device_get_update_error
    - fu_history_load
    - fu_release_get_metadata
    - sqlite3_bind_int64
    - g_return_val_if_fail
    - fu_history_stmt_exec
    - sqlite3_bind_int
    - g_set_error
    - FU_IS_DEVICE
    - fu_device_get_id
    - fu_device_get_version
    - FU_IS_HISTORY
    - g_autoptr
    - sqlite3_bind_text
    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: fu_device_get_id_display
      Src: /src/fwupd/src/fu-history.c:866,1
    - 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: 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_int64
      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: 41
    argCount: 4
    argNames:
    - self
    - device
    - release
    - error
    argTypes:
    - FuHistory*
    - FuDevice*
    - FuRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 860
    functionDepth: 5
    functionLinenumber: 860
    functionLinenumberEnd: 950
    functionName: fu_history_add_device
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 5
    functionsReached:
    - sqlite3_prepare_v2
    - fu_device_get_modified_usec
    - fu_release_get_protocol
    - fu_history_convert_hash_to_string
    - fu_device_get_plugin
    - fu_device_get_created_usec
    - fu_device_get_name
    - fu_history_get_device_flags_filtered
    - fu_device_get_checksums
    - fwupd_checksum_get_by_kind
    - fu_device_get_id_display
    - sqlite3_errmsg
    - g_debug
    - fu_release_get_flags
    - fu_release_get_version
    - fu_release_get_checksums
    - FU_IS_RELEASE
    - fu_device_get_update_state
    - fu_device_get_update_error
    - fu_history_load
    - fu_release_get_metadata
    - fu_device_get_version_format
    - fu_release_get_appstream_id
    - fu_device_convert_instance_ids
    - fu_release_get_filename
    - fu_release_get_id
    - fu_device_get_guid_default
    - sqlite3_bind_int64
    - fu_history_remove_device
    - g_return_val_if_fail
    - fu_device_get_install_duration
    - fu_history_stmt_exec
    - sqlite3_bind_int
    - g_set_error
    - FU_IS_DEVICE
    - fu_device_get_id
    - fu_device_get_version
    - FU_IS_HISTORY
    - g_autoptr
    - sqlite3_bind_text
    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: 2
    functionsReached:
    - g_return_val_if_fail
    - sqlite3_prepare_v2
    - sqlite3_errmsg
    - fu_history_stmt_exec
    - g_debug
    - g_set_error
    - fu_history_load
    - FU_IS_HISTORY
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_remove_all(FuHistory *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-history.c:1005,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1006,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1008,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1008,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1009,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/src/fu-history.c:1009,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1012,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:1015,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1016,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1022,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1026,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:1029,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-history.c:1029,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:1030,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuHistory*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1001
    functionDepth: 5
    functionLinenumber: 1001
    functionLinenumberEnd: 1031
    functionName: fu_history_remove_device
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fu_device_get_id_display
    - sqlite3_prepare_v2
    - sqlite3_errmsg
    - fu_history_stmt_exec
    - g_debug
    - g_set_error
    - FU_IS_DEVICE
    - fu_device_get_id
    - fu_history_load
    - FU_IS_HISTORY
    - g_autoptr
    - sqlite3_bind_text
    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:1049,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1050,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1052,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1052,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1053,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1056,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1060,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1088,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1092,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:1095,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-history.c:1096,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:1097,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-history.c:1100,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-history.c:1103,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-history.c:1103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuHistory*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1045
    functionDepth: 5
    functionLinenumber: 1045
    functionLinenumberEnd: 1104
    functionName: fu_history_get_device_by_id
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - sqlite3_prepare_v2
    - sqlite3_errmsg
    - fu_history_stmt_exec
    - g_set_error
    - g_set_error_literal
    - g_object_ref
    - fu_history_load
    - FU_IS_HISTORY
    - g_ptr_array_new_with_free_func
    - g_autoptr
    - g_ptr_array_index
    - sqlite3_bind_text
    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:1120,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-history.c:1120,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1121,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1124,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1124,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1128,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1133,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1160,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1164,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:1167,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-history.c:1169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1117
    functionDepth: 5
    functionLinenumber: 1117
    functionLinenumberEnd: 1170
    functionName: fu_history_get_devices
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - sqlite3_prepare_v2
    - sqlite3_errmsg
    - fu_history_stmt_exec
    - g_set_error
    - g_steal_pointer
    - fu_history_load
    - FU_IS_HISTORY
    - g_autoptr
    - g_ptr_array_new_with_free_func
    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:1186,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-history.c:1186,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1188,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1190,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1190,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1194,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1199,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1205,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1209,1
    - Dst: sqlite3_step
      Src: /src/fwupd/src/fu-history.c:1212,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:1213,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-history.c:1214,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-history.c:1214,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1217,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1221,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-history.c:1224,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1183
    functionDepth: 5
    functionLinenumber: 1183
    functionLinenumberEnd: 1225
    functionName: fu_history_get_approved_firmware
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - sqlite3_prepare_v2
    - g_strdup
    - sqlite3_errmsg
    - sqlite3_step
    - g_set_error
    - sqlite3_column_text
    - g_steal_pointer
    - g_ptr_array_add
    - fu_history_load
    - FU_IS_HISTORY
    - g_autoptr
    - g_ptr_array_new_with_free_func
    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:1242,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1244,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1244,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1247,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1251,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1253,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1257,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:1260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHistory*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1238
    functionDepth: 5
    functionLinenumber: 1238
    functionLinenumberEnd: 1261
    functionName: fu_history_clear_approved_firmware
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - sqlite3_prepare_v2
    - sqlite3_errmsg
    - fu_history_stmt_exec
    - g_set_error
    - fu_history_load
    - FU_IS_HISTORY
    - g_autoptr
    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:1279,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1281,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1281,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1282,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1285,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1289,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1296,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1300,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:1303,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:1304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - checksum
    - error
    argTypes:
    - FuHistory*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1275
    functionDepth: 5
    functionLinenumber: 1275
    functionLinenumberEnd: 1305
    functionName: fu_history_add_approved_firmware
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - sqlite3_prepare_v2
    - sqlite3_errmsg
    - fu_history_stmt_exec
    - g_set_error
    - fu_history_load
    - FU_IS_HISTORY
    - g_autoptr
    - sqlite3_bind_text
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_history_add_approved_firmware(FuHistory *self, const gchar
      *checksum, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1314,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1316,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1316,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1319,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1323,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1330,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1334,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:1337,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:1338,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:1339,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: 1340
      start: 1307
    functionDepth: 5
    functionLinenumber: 1307
    functionLinenumberEnd: 1340
    functionName: fu_history_add_security_attribute
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - sqlite3_prepare_v2
    - sqlite3_errmsg
    - fu_history_stmt_exec
    - g_set_error
    - fu_history_load
    - FU_IS_HISTORY
    - g_autoptr
    - sqlite3_bind_text
    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:1360,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-history.c:1360,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1361,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1363,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1363,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1367,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1372,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1379,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1383,1
    - Dst: sqlite3_step
      Src: /src/fwupd/src/fu-history.c:1386,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1390,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/src/fu-history.c:1390,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1391,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1392,1
    - Dst: g_time_zone_new_utc
      Src: /src/fwupd/src/fu-history.c:1392,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:1395,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/src/fu-history.c:1400,1
    - Dst: g_str_hash
      Src: /src/fwupd/src/fu-history.c:1405,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:1407,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-history.c:1413,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/src/fu-history.c:1414,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-history.c:1414,1
    - Dst: g_date_time_new_from_iso8601
      Src: /src/fwupd/src/fu-history.c:1418,1
    - Dst: g_date_time_to_unix
      Src: /src/fwupd/src/fu-history.c:1420,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-history.c:1421,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/src/fu-history.c:1421,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-history.c:1423,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/src/fu-history.c:1424,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-history.c:1429,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-history.c:1429,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1436,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1440,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-history.c:1443,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 3
    argNames:
    - self
    - limit
    - error
    argTypes:
    - FuHistory*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1355
    functionDepth: 5
    functionLinenumber: 1355
    functionLinenumberEnd: 1444
    functionName: fu_history_get_security_attrs
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_prepare_v2
    - FWUPD_CODEC
    - g_time_zone_new_utc
    - fwupd_security_attr_set_created
    - g_ptr_array_index
    - sqlite3_errmsg
    - sqlite3_step
    - g_debug
    - sqlite3_column_text
    - fu_security_attrs_new
    - g_str_hash
    - fu_history_load
    - fwupd_codec_from_json_string
    - g_ptr_array_new_with_free_func
    - fu_security_attrs_get_all
    - g_date_time_new_from_iso8601
    - g_return_val_if_fail
    - g_set_error
    - g_steal_pointer
    - g_ptr_array_add
    - FU_IS_HISTORY
    - g_date_time_to_unix
    - g_autoptr
    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:1462,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1464,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1464,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1468,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1474,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1481,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1488,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1492,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:1495,1
    - Dst: sqlite3_step
      Src: /src/fwupd/src/fu-history.c:1496,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-history.c:1499,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1505,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1513,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1517,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuHistory*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1458
    functionDepth: 5
    functionLinenumber: 1458
    functionLinenumberEnd: 1523
    functionName: fu_history_has_emulation_tag
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - sqlite3_prepare_v2
    - sqlite3_errmsg
    - sqlite3_step
    - g_set_error
    - g_set_error_literal
    - fu_history_load
    - FU_IS_HISTORY
    - g_autoptr
    - sqlite3_bind_text
    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:1541,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1543,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1543,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1544,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1547,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1551,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1558,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1562,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:1565,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:1566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuHistory*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1537
    functionDepth: 5
    functionLinenumber: 1537
    functionLinenumberEnd: 1567
    functionName: fu_history_add_emulation_tag
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - sqlite3_prepare_v2
    - sqlite3_errmsg
    - fu_history_stmt_exec
    - g_set_error
    - fu_history_load
    - FU_IS_HISTORY
    - g_autoptr
    - sqlite3_bind_text
    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:1584,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1586,1
    - Dst: FU_IS_HISTORY
      Src: /src/fwupd/src/fu-history.c:1586,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-history.c:1587,1
    - Dst: fu_history_load
      Src: /src/fwupd/src/fu-history.c:1590,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/src/fu-history.c:1594,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-history.c:1600,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/src/fu-history.c:1604,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/src/fu-history.c:1607,1
    - Dst: fu_history_stmt_exec
      Src: /src/fwupd/src/fu-history.c:1608,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuHistory*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1580
    functionDepth: 5
    functionLinenumber: 1580
    functionLinenumberEnd: 1609
    functionName: fu_history_remove_emulation_tag
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - sqlite3_prepare_v2
    - sqlite3_errmsg
    - fu_history_stmt_exec
    - g_set_error
    - fu_history_load
    - FU_IS_HISTORY
    - g_autoptr
    - sqlite3_bind_text
    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:1614,1
    - Dst: sqlite3_db_release_memory
      Src: /src/fwupd/src/fu-history.c:1616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - self
    argTypes:
    - FuContext*
    - FuHistory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1611
    functionDepth: 0
    functionLinenumber: 1611
    functionLinenumberEnd: 1617
    functionName: fu_history_housekeeping_cb
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_release_memory
    - sqlite3_db_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:1622,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/src/fu-history.c:1624,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-history.c:1625,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-history.c:1626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1627
    functionName: fu_history_dispose
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - g_signal_handlers_disconnect_by_data
    - g_clear_object
    - G_OBJECT_CLASS
    - FU_HISTORY
    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:1632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHistoryClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1629
    functionDepth: 0
    functionLinenumber: 1629
    functionLinenumberEnd: 1635
    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: 1640
      start: 1637
    functionDepth: 0
    functionLinenumber: 1637
    functionLinenumberEnd: 1640
    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:1645,1
    - Dst: sqlite3_close
      Src: /src/fwupd/src/fu-history.c:1647,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-history.c:1648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1649
    functionName: fu_history_finalize
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 0
    functionsReached:
    - sqlite3_close
    - G_OBJECT_CLASS
    - FU_HISTORY
    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:1662,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-history.c:1663,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-history.c:1664,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-history.c:1664,1
    - Dst: FU_HISTORY
      Src: /src/fwupd/src/fu-history.c:1665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1658
    functionDepth: 0
    functionLinenumber: 1658
    functionLinenumberEnd: 1666
    functionName: fu_history_new
    functionSourceFile: /src/fwupd/src/fu-history.c
    functionUses: 11
    functionsReached:
    - g_signal_connect
    - FU_HISTORY
    - g_object_ref
    - g_object_new
    - 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_literal
      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_bus_get_sync
    - g_steal_pointer
    - g_dbus_proxy_new_sync
    - g_prefix_error
    - g_prefix_error_literal
    - g_autoptr
    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_steal_pointer
    - g_prefix_error
    - g_variant_new
    - g_autoptr
    - g_dbus_proxy_call_sync
    - g_variant_get
    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_dbus_proxy_get_connection
    - g_steal_pointer
    - g_prefix_error
    - g_dbus_proxy_new_sync
    - fu_systemd_unit_get_path
    - g_autoptr
    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_return_val_if_fail
    - fu_systemd_get_manager
    - fu_systemd_unit_get_proxy
    - g_variant_new
    - g_autoptr
    - g_dbus_proxy_call_sync
    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:51,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-remote-list.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRemoteList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    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:58,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-remote-list.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - remote
    argTypes:
    - FuRemoteList*
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    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:65,1
    - Dst: FU_IS_REMOTE_LIST
      Src: /src/fwupd/src/fu-remote-list.c:65,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-remote-list.c:66,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote-list.c:67,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-remote-list.c:69,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-remote-list.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - lvfs_metadata_format
    argTypes:
    - FuRemoteList*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: fu_remote_list_set_lvfs_metadata_format
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - g_free
    - FU_IS_REMOTE_LIST
    linkageType: ''
    returnType: void
    signature: void fu_remote_list_set_lvfs_metadata_format(FuRemoteList *self, const
      gchar *lvfs_metadata_format)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_REMOTE_LIST
      Src: /src/fwupd/src/fu-remote-list.c:80,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:81,1
    - Dst: g_file_get_path
      Src: /src/fwupd/src/fu-remote-list.c:82,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-remote-list.c:88,1
    - Dst: fu_remote_list_reload
      Src: /src/fwupd/src/fu-remote-list.c:89,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-remote-list.c:90,1
    - Dst: fu_remote_list_emit_changed
      Src: /src/fwupd/src/fu-remote-list.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - monitor
    - file
    - other_file
    - event_type
    - user_data
    argTypes:
    - GFileMonitor*
    - GFile*
    - GFile*
    - GFileMonitorEvent
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 92
    functionName: fu_remote_list_monitor_changed_cb
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - fu_remote_list_reload
    - g_info
    - FU_REMOTE_LIST
    - fu_remote_list_emit_changed
    - g_warning
    - g_file_get_path
    - g_autoptr
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: inotify_init
      Src: /src/fwupd/src/fu-remote-list.c:105,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-remote-list.c:107,1
    - Dst: inotify_add_watch
      Src: /src/fwupd/src/fu-remote-list.c:112,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-remote-list.c:115,1
    - Dst: inotify_rm_watch
      Src: /src/fwupd/src/fu-remote-list.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 123
    functionName: fu_remote_list_fixup_inotify_error
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - inotify_init
    - inotify_rm_watch
    - g_prefix_error
    - inotify_add_watch
    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:129,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-remote-list.c:129,1
    - Dst: g_file_monitor
      Src: /src/fwupd/src/fu-remote-list.c:132,1
    - Dst: fu_remote_list_fixup_inotify_error
      Src: /src/fwupd/src/fu-remote-list.c:134,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-remote-list.c:137,1
    - Dst: G_FILE_MONITOR
      Src: /src/fwupd/src/fu-remote-list.c:137,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-remote-list.c:139,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-remote-list.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - self
    - filename
    - error
    argTypes:
    - FuRemoteList*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 143
    functionName: fu_remote_list_add_inotify
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_signal_connect
    - g_ptr_array_add
    - fu_remote_list_fixup_inotify_error
    - G_CALLBACK
    - g_file_monitor
    - g_file_new_for_path
    - g_autoptr
    - G_FILE_MONITOR
    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:148,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-remote-list.c:152,1
    - Dst: _
      Src: /src/fwupd/src/fu-remote-list.c:155,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-remote-list.c:158,1
    - Dst: _
      Src: /src/fwupd/src/fu-remote-list.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 163
    functionName: _fwupd_remote_get_agreement_default
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - _
    - g_string_new
    - g_string_append_printf
    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:169,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:170,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-remote-list.c:173,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-remote-list.c:177,1
    - Dst: xb_node_export
      Src: /src/fwupd/src/fu-remote-list.c:184,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-remote-list.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - component
    - error
    argTypes:
    - FwupdRemote*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 188
    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
    - xb_node_query_first
    - g_autoptr
    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:193,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - remote
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: _fwupd_remote_build_component_id
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fwupd_remote_get_id
    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:200,1
    - Dst: g_strrstr
      Src: /src/fwupd/src/fu-remote-list.c:201,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-remote-list.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - filename
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 205
    functionName: fu_remote_list_get_last_ext
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_strrstr
    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:210,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-remote-list.c:211,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-remote-list.c:214,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote-list.c:218,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote-list.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - fn
    argTypes:
    - FuRemoteList*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 221
    functionName: fu_remote_list_remote_filename_cache_fn_is_obsolete
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - fu_remote_list_get_last_ext
    - g_str_has_prefix
    - g_path_get_basename
    - g_strcmp0
    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:226,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:228,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/src/fu-remote-list.c:237,1
    - Dst: fu_path_get_files
      Src: /src/fwupd/src/fu-remote-list.c:238,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-remote-list.c:244,1
    - Dst: fu_remote_list_remote_filename_cache_fn_is_obsolete
      Src: /src/fwupd/src/fu-remote-list.c:245,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-remote-list.c:246,1
    - Dst: g_unlink
      Src: /src/fwupd/src/fu-remote-list.c:247,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-remote-list.c:248,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - remote
    - error
    argTypes:
    - FuRemoteList*
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 260
    functionName: fu_remote_list_cleanup_lvfs_remote
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - fu_remote_list_remote_filename_cache_fn_is_obsolete
    - g_info
    - g_set_error
    - fwupd_remote_get_filename_cache
    - g_unlink
    - g_path_get_dirname
    - fu_path_get_files
    - g_autoptr
    - g_ptr_array_index
    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:265,1
    - Dst: FU_IS_REMOTE_LIST
      Src: /src/fwupd/src/fu-remote-list.c:265,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-remote-list.c:266,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/src/fu-remote-list.c:266,1
    - Dst: fu_remote_list_emit_added
      Src: /src/fwupd/src/fu-remote-list.c:267,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-remote-list.c:268,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-remote-list.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - remote
    argTypes:
    - FuRemoteList*
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: fu_remote_list_add_remote
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_add
    - g_return_if_fail
    - FWUPD_IS_REMOTE
    - fu_remote_list_emit_added
    - g_object_ref
    - FU_IS_REMOTE_LIST
    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:274,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-remote-list.c:275,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:275,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-remote-list.c:277,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-remote-list.c:278,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-remote-list.c:278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - remote
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 281
    functionName: fu_remote_list_is_remote_origin_lvfs
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_strstr_len
    - fwupd_remote_get_metadata_uri
    - fwupd_remote_get_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_remote_list_is_remote_origin_lvfs(FwupdRemote *remote)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:287,1
    - Dst: fu_remote_new
      Src: /src/fwupd/src/fu-remote-list.c:287,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:288,1
    - Dst: fu_path_store_get_path
      Src: /src/fwupd/src/fu-remote-list.c:292,1
    - Dst: fwupd_remote_set_remotes_dir
      Src: /src/fwupd/src/fu-remote-list.c:295,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-remote-list.c:298,1
    - Dst: fu_remote_load_from_filename
      Src: /src/fwupd/src/fu-remote-list.c:299,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-remote-list.c:300,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-remote-list.c:305,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:305,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:307,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:308,1
    - Dst: fwupd_remote_get_filename_source
      Src: /src/fwupd/src/fu-remote-list.c:309,1
    - Dst: fu_remote_list_is_remote_origin_lvfs
      Src: /src/fwupd/src/fu-remote-list.c:314,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-remote-list.c:315,1
    - Dst: fu_remote_list_get_last_ext
      Src: /src/fwupd/src/fu-remote-list.c:316,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote-list.c:317,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:318,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-remote-list.c:318,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-remote-list.c:320,1
    - Dst: g_string_replace
      Src: /src/fwupd/src/fu-remote-list.c:321,1
    - Dst: g_string_replace
      Src: /src/fwupd/src/fu-remote-list.c:322,1
    - Dst: g_string_replace
      Src: /src/fwupd/src/fu-remote-list.c:323,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-remote-list.c:324,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:325,1
    - Dst: fwupd_remote_set_metadata_uri
      Src: /src/fwupd/src/fu-remote-list.c:328,1
    - Dst: fwupd_remote_setup
      Src: /src/fwupd/src/fu-remote-list.c:333,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-remote-list.c:334,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote-list.c:339,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-remote-list.c:340,1
    - Dst: fu_remote_list_is_remote_origin_lvfs
      Src: /src/fwupd/src/fu-remote-list.c:341,1
    - Dst: fu_remote_list_cleanup_lvfs_remote
      Src: /src/fwupd/src/fu-remote-list.c:342,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/src/fu-remote-list.c:348,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/src/fu-remote-list.c:349,1
    - Dst: g_chmod
      Src: /src/fwupd/src/fu-remote-list.c:350,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-remote-list.c:351,1
    - Dst: fu_remote_list_add_inotify
      Src: /src/fwupd/src/fu-remote-list.c:356,1
    - Dst: fu_remote_list_add_inotify
      Src: /src/fwupd/src/fu-remote-list.c:358,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-remote-list.c:358,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-remote-list.c:362,1
    - Dst: _fwupd_remote_build_component_id
      Src: /src/fwupd/src/fu-remote-list.c:363,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:364,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:365,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-remote-list.c:384,1
    - Dst: XB_QUERY_CONTEXT_INIT
      Src: /src/fwupd/src/fu-remote-list.c:384,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/src/fu-remote-list.c:385,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/src/fu-remote-list.c:385,1
    - Dst: xb_silo_query_first_with_context
      Src: /src/fwupd/src/fu-remote-list.c:389,1
    - Dst: _fwupd_remote_get_agreement_for_app
      Src: /src/fwupd/src/fu-remote-list.c:396,1
    - Dst: _fwupd_remote_get_agreement_default
      Src: /src/fwupd/src/fu-remote-list.c:398,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-remote-list.c:404,1
    - Dst: g_get_os_info
      Src: /src/fwupd/src/fu-remote-list.c:405,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-remote-list.c:407,1
    - Dst: g_string_replace
      Src: /src/fwupd/src/fu-remote-list.c:408,1
    - Dst: fwupd_remote_ensure_mtime
      Src: /src/fwupd/src/fu-remote-list.c:413,1
    - Dst: fu_remote_list_add_remote
      Src: /src/fwupd/src/fu-remote-list.c:415,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 3
    argNames:
    - self
    - filename
    - error
    argTypes:
    - FuRemoteList*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 419
    functionName: fu_remote_list_add_for_file
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - fu_remote_list_add_inotify
    - fu_remote_list_add_remote
    - fwupd_remote_get_kind
    - fwupd_remote_get_filename_cache
    - fwupd_remote_get_filename_source
    - g_chmod
    - fwupd_remote_setup
    - g_get_os_info
    - g_strdup_printf
    - _fwupd_remote_build_component_id
    - xb_query_context_get_bindings
    - fwupd_remote_ensure_mtime
    - g_auto
    - fu_remote_load_from_filename
    - xb_silo_query_first_with_context
    - fu_path_store_get_path
    - g_debug
    - fu_remote_list_get_last_ext
    - fwupd_remote_get_password
    - g_string_new
    - fu_remote_list_is_remote_origin_lvfs
    - _fwupd_remote_get_agreement_for_app
    - g_string_replace
    - g_info
    - fwupd_remote_get_id
    - fwupd_remote_has_flag
    - fwupd_remote_get_username
    - xb_value_bindings_bind_str
    - fu_remote_list_cleanup_lvfs_remote
    - g_warning
    - fwupd_remote_set_metadata_uri
    - g_strdup
    - g_strcmp0
    - fwupd_remote_set_remotes_dir
    - fu_remote_new
    - g_prefix_error
    - fwupd_remote_get_metadata_uri
    - G_N_ELEMENTS
    - _fwupd_remote_get_agreement_default
    - g_autoptr
    - fu_remote_list_get_by_id
    - XB_QUERY_CONTEXT_INIT
    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:425,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-remote-list.c:427,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-remote-list.c:428,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:429,1
    - Dst: fu_remote_list_add_inotify
      Src: /src/fwupd/src/fu-remote-list.c:432,1
    - Dst: fu_path_glob
      Src: /src/fwupd/src/fu-remote-list.c:434,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-remote-list.c:438,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-remote-list.c:439,1
    - Dst: fu_remote_list_add_for_file
      Src: /src/fwupd/src/fu-remote-list.c:441,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - self
    - path
    - error
    argTypes:
    - FuRemoteList*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 421
    functionDepth: 4
    functionLinenumber: 421
    functionLinenumberEnd: 445
    functionName: fu_remote_list_add_for_path
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - fu_remote_list_add_inotify
    - g_debug
    - g_str_has_suffix
    - fu_remote_list_add_for_file
    - g_file_test
    - g_ptr_array_index
    - g_autoptr
    - g_build_filename
    - fu_path_glob
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_remote_list_add_for_path(FuRemoteList *self, const gchar
      *path, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:457,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:458,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:459,1
    - Dst: g_key_file_new
      Src: /src/fwupd/src/fu-remote-list.c:459,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-remote-list.c:462,1
    - Dst: fwupd_remote_get_filename_source
      Src: /src/fwupd/src/fu-remote-list.c:467,1
    - Dst: g_key_file_load_from_file
      Src: /src/fwupd/src/fu-remote-list.c:468,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-remote-list.c:469,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/src/fu-remote-list.c:472,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote-list.c:473,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-remote-list.c:475,1
    - Dst: g_key_file_save_to_file
      Src: /src/fwupd/src/fu-remote-list.c:478,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-remote-list.c:479,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-remote-list.c:480,1
    - Dst: fu_path_store_build_filename
      Src: /src/fwupd/src/fu-remote-list.c:482,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-remote-list.c:490,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-remote-list.c:492,1
    - Dst: g_key_file_save_to_file
      Src: /src/fwupd/src/fu-remote-list.c:493,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-remote-list.c:496,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-remote-list.c:496,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-remote-list.c:500,1
    - Dst: fu_remote_load_from_filename
      Src: /src/fwupd/src/fu-remote-list.c:504,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-remote-list.c:505,1
    - Dst: fu_remote_list_emit_changed
      Src: /src/fwupd/src/fu-remote-list.c:508,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 5
    argNames:
    - self
    - remote_id
    - key
    - value
    - error
    argTypes:
    - FuRemoteList*
    - gchar*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 510
    functionName: fu_remote_list_set_key_value
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_filename_source
    - fu_remote_load_from_filename
    - g_key_file_new
    - g_key_file_get_string
    - g_propagate_error
    - g_key_file_load_from_file
    - g_path_get_basename
    - g_info
    - g_key_file_set_string
    - g_key_file_save_to_file
    - fu_remote_list_emit_changed
    - g_strdup
    - g_strcmp0
    - g_steal_pointer
    - g_prefix_error
    - g_error_matches
    - fu_path_store_build_filename
    - g_autoptr
    - fu_remote_list_get_by_id
    - fu_path_mkdir_parent
    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:519,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:519,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:521,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:521,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote-list.c:525,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:525,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 526
    functionName: fu_remote_list_sort_cb
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fwupd_remote_get_priority
    - 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:534,1
    - Dst: fwupd_remote_get_order_before
      Src: /src/fwupd/src/fu-remote-list.c:535,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:539,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote-list.c:540,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:540,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:541,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-remote-list.c:544,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:546,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:549,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:549,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:551,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:552,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:553,1
    - Dst: fwupd_remote_set_priority
      Src: /src/fwupd/src/fu-remote-list.c:554,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:554,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRemoteList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 559
    functionName: fu_remote_list_depsolve_order_before
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fwupd_remote_get_order_before
    - g_debug
    - fwupd_remote_get_id
    - fwupd_remote_set_priority
    - fwupd_remote_get_priority
    - g_autoptr
    - fu_remote_list_get_by_id
    - g_ptr_array_index
    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:567,1
    - Dst: fwupd_remote_get_order_after
      Src: /src/fwupd/src/fu-remote-list.c:568,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:572,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote-list.c:573,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:573,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:574,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-remote-list.c:577,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:579,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:582,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:582,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:584,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:585,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:586,1
    - Dst: fwupd_remote_set_priority
      Src: /src/fwupd/src/fu-remote-list.c:587,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:587,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRemoteList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 592
    functionName: fu_remote_list_depsolve_order_after
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_debug
    - fwupd_remote_get_id
    - fwupd_remote_set_priority
    - fwupd_remote_get_order_after
    - fwupd_remote_get_priority
    - g_autoptr
    - fu_remote_list_get_by_id
    - g_ptr_array_index
    linkageType: ''
    returnType: guint
    signature: guint fu_remote_list_depsolve_order_after(FuRemoteList *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:601,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-remote-list.c:601,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-remote-list.c:604,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-remote-list.c:605,1
    - Dst: fu_path_store_get_path
      Src: /src/fwupd/src/fu-remote-list.c:608,1
    - Dst: fu_remote_list_add_for_path
      Src: /src/fwupd/src/fu-remote-list.c:610,1
    - Dst: fu_path_store_get_path
      Src: /src/fwupd/src/fu-remote-list.c:613,1
    - Dst: fu_remote_list_add_for_path
      Src: /src/fwupd/src/fu-remote-list.c:615,1
    - Dst: fu_path_store_get_path
      Src: /src/fwupd/src/fu-remote-list.c:618,1
    - Dst: fu_remote_list_add_for_path
      Src: /src/fwupd/src/fu-remote-list.c:620,1
    - Dst: fu_remote_list_depsolve_order_before
      Src: /src/fwupd/src/fu-remote-list.c:627,1
    - Dst: fu_remote_list_depsolve_order_after
      Src: /src/fwupd/src/fu-remote-list.c:628,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-remote-list.c:633,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-remote-list.c:641,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-remote-list.c:645,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote-list.c:646,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-remote-list.c:649,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-remote-list.c:650,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:652,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-list.c:653,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-remote-list.c:655,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRemoteList*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 594
    functionDepth: 5
    functionLinenumber: 594
    functionLinenumberEnd: 659
    functionName: fu_remote_list_reload
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 1
    functionsReached:
    - g_ptr_array_sort
    - fu_path_store_get_path
    - g_string_append
    - g_info
    - fwupd_remote_get_id
    - fwupd_remote_has_flag
    - g_set_error_literal
    - g_ptr_array_set_size
    - fu_remote_list_add_for_path
    - fwupd_remote_get_priority
    - g_string_new
    - fu_remote_list_depsolve_order_after
    - g_string_append_printf
    - g_autoptr
    - fu_remote_list_depsolve_order_before
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_remote_list_reload(FuRemoteList *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:666,1
    - Dst: fu_path_store_build_filename
      Src: /src/fwupd/src/fu-remote-list.c:669,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-remote-list.c:676,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:679,1
    - Dst: g_dir_open
      Src: /src/fwupd/src/fu-remote-list.c:680,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/src/fu-remote-list.c:683,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-remote-list.c:684,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-remote-list.c:685,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:686,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-remote-list.c:686,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:687,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-remote-list.c:687,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-remote-list.c:688,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-remote-list.c:693,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-remote-list.c:696,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - self
    - builder
    - error
    argTypes:
    - FuRemoteList*
    - XbBuilder*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 700
    functionName: fu_remote_list_load_metainfos
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - xb_builder_source_load_file
    - xb_builder_source_new
    - g_debug
    - g_str_has_suffix
    - xb_builder_import_source
    - fwupd_error_convert
    - g_file_test
    - g_dir_read_name
    - g_dir_open
    - g_file_new_for_path
    - fu_path_store_build_filename
    - g_autoptr
    - g_build_filename
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_remote_list_load_metainfos(FuRemoteList *self, XbBuilder
      *builder, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote-list.c:705,1
    - Dst: FU_IS_REMOTE_LIST
      Src: /src/fwupd/src/fu-remote-list.c:705,1
    - Dst: fu_remote_list_reload
      Src: /src/fwupd/src/fu-remote-list.c:716,1
    - Dst: fu_remote_list_emit_changed
      Src: /src/fwupd/src/fu-remote-list.c:719,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - enable
    - error
    argTypes:
    - FuRemoteList*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 702
    functionDepth: 6
    functionLinenumber: 702
    functionLinenumberEnd: 722
    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_IS_REMOTE_LIST
    - fu_remote_list_emit_changed
    - fu_remote_list_reload
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_remote_list_set_testing_remote_enabled(FuRemoteList *self,
      gboolean enable, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_get_language_names
      Src: /src/fwupd/src/fu-remote-list.c:727,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:728,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:729,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:730,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-remote-list.c:730,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote-list.c:734,1
    - Dst: FU_IS_REMOTE_LIST
      Src: /src/fwupd/src/fu-remote-list.c:734,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote-list.c:735,1
    - Dst: fu_remote_list_load_metainfos
      Src: /src/fwupd/src/fu-remote-list.c:746,1
    - Dst: xb_builder_add_locale
      Src: /src/fwupd/src/fu-remote-list.c:751,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list.c:759,1
    - Dst: g_file_new_tmp
      Src: /src/fwupd/src/fu-remote-list.c:760,1
    - Dst: fu_path_store_build_filename
      Src: /src/fwupd/src/fu-remote-list.c:766,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-remote-list.c:773,1
    - Dst: xb_builder_ensure
      Src: /src/fwupd/src/fu-remote-list.c:775,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-remote-list.c:780,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-remote-list.c:785,1
    - Dst: fu_remote_list_reload
      Src: /src/fwupd/src/fu-remote-list.c:788,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FuRemoteList*
    - FuRemoteListLoadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 724
    functionDepth: 6
    functionLinenumber: 724
    functionLinenumberEnd: 789
    functionName: fu_remote_list_load
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_path_store_build_filename
    - g_file_new_tmp
    - fu_remote_list_load_metainfos
    - fu_remote_list_reload
    - g_debug
    - xb_builder_add_locale
    - g_get_language_names
    - xb_builder_ensure
    - xb_query_new_full
    - g_file_new_for_path
    - FU_IS_REMOTE_LIST
    - g_autoptr
    - xb_builder_new
    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:794,1
    - Dst: FU_IS_REMOTE_LIST
      Src: /src/fwupd/src/fu-remote-list.c:794,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/src/fu-remote-list.c:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRemoteList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 796
    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
    - g_ptr_array_ref
    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:801,1
    - Dst: FU_IS_REMOTE_LIST
      Src: /src/fwupd/src/fu-remote-list.c:801,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote-list.c:802,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote-list.c:803,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-remote-list.c:805,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote-list.c:806,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-remote-list.c:806,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-remote-list.c:807,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-remote-list.c:809,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - remote_id
    - error
    argTypes:
    - FuRemoteList*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 811
    functionName: fu_remote_list_get_by_id
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - fwupd_remote_get_id
    - g_set_error
    - g_object_ref
    - FU_IS_REMOTE_LIST
    - g_ptr_array_index
    linkageType: ''
    returnType: FwupdRemote
    signature: 'FwupdRemote *

      fu_remote_list_get_by_id(FuRemoteList *self, const gchar *remote_id, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-remote-list.c:816,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-remote-list.c:826,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-remote-list.c:827,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-remote-list.c:840,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-remote-list.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRemoteListClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 850
    functionName: fu_remote_list_class_init
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - G_TYPE_FROM_CLASS
    - g_signal_new
    - 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:855,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-remote-list.c:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - monitor
    argTypes:
    - GFileMonitor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 857
    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:862,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-remote-list.c:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRemoteList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 865
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_REMOTE_LIST
      Src: /src/fwupd/src/fu-remote-list.c:870,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-remote-list.c:871,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-remote-list.c:873,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-remote-list.c:875,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-remote-list.c:876,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-remote-list.c:877,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-remote-list.c:878,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-remote-list.c:879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 880
    functionName: fu_remote_list_finalize
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_object_unref
    - FU_REMOTE_LIST
    - G_OBJECT_CLASS
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_remote_list_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote-list.c:887,1
    - Dst: FU_IS_PATH_STORE
      Src: /src/fwupd/src/fu-remote-list.c:887,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-remote-list.c:889,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-remote-list.c:890,1
    - Dst: FU_REMOTE_LIST
      Src: /src/fwupd/src/fu-remote-list.c:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pstore
    argTypes:
    - FuPathStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 892
    functionName: fu_remote_list_new
    functionSourceFile: /src/fwupd/src/fu-remote-list.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_REMOTE_LIST
    - g_object_ref
    - g_object_new
    - FU_IS_PATH_STORE
    linkageType: ''
    returnType: FuRemoteList
    signature: 'FuRemoteList *

      fu_remote_list_new(FuPathStore *pstore)'
  - 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:
    - g_info
    - FU_ENGINE
    - fu_idle_has_inhibit
    - fu_engine_update_motd
    - g_autoptr
    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:
    - fu_engine_update_devices_file
    - g_info
    - fu_engine_idle_reset
    - fu_engine_update_motd_reset
    - g_signal_emit
    - fu_engine_config_get_update_motd
    - g_autoptr
    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:
    - fu_device_list_get_by_id
    - fu_engine_emit_device_changed_safe
    - g_autoptr
    - g_warning
    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: 20
    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_idle_has_inhibit
    - fu_device_get_id
    - fu_engine_emit_device_changed
    - g_hash_table_contains
    linkageType: ''
    returnType: void
    signature: void fu_engine_generic_notify_cb(FuDevice *device, GParamSpec *pspec,
      FuEngine *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:278,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:279,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:283,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:283,1
    - Dst: fu_device_get_equivalent_id
      Src: /src/fwupd/src/fu-engine.c:283,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:284,1
    - Dst: fu_device_get_equivalent_id
      Src: /src/fwupd/src/fu-engine.c:284,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:284,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-engine.c:288,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-engine.c:288,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-engine.c:289,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:290,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-engine.c:295,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-engine.c:295,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:296,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-engine.c:297,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:302,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:303,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:304,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - self
    - device
    - device_tmp
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 305
    functionName: fu_engine_ensure_device_problem_priority_full
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_device_get_equivalent_id
    - fu_device_add_problem
    - fu_device_get_id
    - fu_device_get_priority
    - fu_device_has_flag
    - g_warning
    - fu_device_remove_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:310,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:310,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:312,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:313,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:313,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:313,1
    - Dst: fu_engine_ensure_device_problem_priority_full
      Src: /src/fwupd/src/fu-engine.c:315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 317
    functionName: fu_engine_ensure_device_problem_priority
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_engine_ensure_device_problem_priority_full
    - fu_device_get_id
    - fu_device_list_get_active
    - g_autoptr
    - g_ptr_array_index
    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:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - pspec
    - self
    argTypes:
    - FuDevice*
    - GParamSpec*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 319
    functionDepth: 3
    functionLinenumber: 319
    functionLinenumberEnd: 324
    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:330,1
    - Dst: fu_history_modify_device
      Src: /src/fwupd/src/fu-engine.c:331,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:332,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:333,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:335,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:336,1
    - Dst: fu_engine_emit_device_changed
      Src: /src/fwupd/src/fu-engine.c:341,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - device
    - pspec
    - self
    argTypes:
    - FuDevice*
    - GParamSpec*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 326
    functionDepth: 6
    functionLinenumber: 326
    functionLinenumberEnd: 342
    functionName: fu_engine_history_notify_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_history_modify_device
    - fu_device_get_id
    - g_warning
    - g_error_matches
    - fu_engine_emit_device_changed
    - g_autoptr
    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:347,1
    - Dst: fwupd_request_get_message
      Src: /src/fwupd/src/fu-engine.c:347,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-engine.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - request
    - self
    argTypes:
    - FuDevice*
    - FwupdRequest*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 349
    functionName: fu_engine_device_request_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - fwupd_request_get_message
    - g_info
    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:354,1
    - Dst: fu_engine_emulator_phase_to_string
      Src: /src/fwupd/src/fu-engine.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - emulator_phase
    argTypes:
    - FuEngine*
    - FuEngineEmulatorPhase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 356
    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:361,1
    - Dst: fu_device_list_get_old
      Src: /src/fwupd/src/fu-engine.c:361,1
    - Dst: g_signal_handlers_disconnect_by_func
      Src: /src/fwupd/src/fu-engine.c:363,1
    - Dst: g_signal_handlers_disconnect_by_func
      Src: /src/fwupd/src/fu-engine.c:364,1
    - Dst: g_signal_handlers_disconnect_by_func
      Src: /src/fwupd/src/fu-engine.c:365,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:367,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:367,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:369,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:371,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:371,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:373,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:375,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:375,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:377,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:379,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:379,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:381,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:383,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:383,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:385,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:387,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:387,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:389,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:391,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:391,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:393,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:395,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:395,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 399
    functionName: fu_engine_watch_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_signal_handlers_disconnect_by_func
    - fu_device_list_get_old
    - g_signal_connect
    - FU_DEVICE
    - G_CALLBACK
    - g_autoptr
    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:404,1
    - Dst: fu_device_is_updatable
      Src: /src/fwupd/src/fu-engine.c:407,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:408,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:409,1
    - Dst: fu_power_state_is_ac
      Src: /src/fwupd/src/fu-engine.c:410,1
    - Dst: fu_context_get_power_state
      Src: /src/fwupd/src/fu-engine.c:410,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-engine.c:411,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:413,1
    - Dst: fu_device_is_updatable
      Src: /src/fwupd/src/fu-engine.c:415,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:416,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:417,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/src/fu-engine.c:418,1
    - Dst: fu_context_get_battery_threshold
      Src: /src/fwupd/src/fu-engine.c:419,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/src/fu-engine.c:420,1
    - Dst: fu_context_get_battery_threshold
      Src: /src/fwupd/src/fu-engine.c:420,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-engine.c:421,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:423,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 425
    functionName: fu_engine_ensure_device_power_inhibit
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_add_problem
    - fu_context_get_power_state
    - fu_device_has_private_flag
    - fu_context_get_battery_threshold
    - fu_device_is_updatable
    - fu_device_has_flag
    - fu_power_state_is_ac
    - fu_device_remove_problem
    - fu_context_get_battery_level
    - fu_engine_config_get_ignore_power
    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:430,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:431,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:432,1
    - Dst: fu_context_get_lid_state
      Src: /src/fwupd/src/fu-engine.c:433,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-engine.c:434,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 438
    functionName: fu_engine_ensure_device_lid_inhibit
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_add_problem
    - fu_device_has_private_flag
    - fu_device_is_updatable
    - fu_context_get_lid_state
    - fu_device_has_flag
    - fu_device_remove_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:443,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:444,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:445,1
    - Dst: fu_context_get_display_state
      Src: /src/fwupd/src/fu-engine.c:446,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-engine.c:447,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 451
    functionName: fu_engine_ensure_device_display_required_inhibit
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_add_problem
    - fu_device_has_private_flag
    - fu_device_is_updatable
    - fu_device_has_flag
    - fu_device_remove_problem
    - fu_context_get_display_state
    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:456,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:458,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:459,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:460,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:461,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-engine.c:462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 464
    functionName: fu_engine_ensure_device_maybe_remove_affects_fde
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - g_debug
    - fu_device_remove_flag
    - fu_device_get_id
    - fu_device_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:469,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:470,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-engine.c:471,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 475
    functionName: fu_engine_ensure_device_system_inhibit
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_device_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:480,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:481,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/src/fu-engine.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 485
    functionName: fu_engine_acquiesce_timeout_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - FU_ENGINE
    - g_info
    - g_main_loop_quit
    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:490,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:492,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-engine.c:494,1
    - Dst: g_timeout_add
      Src: /src/fwupd/src/fu-engine.c:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 497
    functionName: fu_engine_acquiesce_reset
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_main_loop_is_running
    - g_timeout_add
    - g_source_remove
    - g_info
    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:505,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/src/fu-engine.c:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - acquiesce_delay
    argTypes:
    - FuEngine*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 507
    functionName: fu_engine_wait_for_acquiesce
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_timeout_add
    - g_main_loop_run
    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:512,1
    - Dst: fu_history_has_emulation_tag
      Src: /src/fwupd/src/fu-engine.c:513,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:514,1
    - Dst: fu_context_remove_flag
      Src: /src/fwupd/src/fu-engine.c:515,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/src/fu-engine.c:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 509
    functionDepth: 6
    functionLinenumber: 509
    functionLinenumberEnd: 519
    functionName: fu_engine_ensure_context_flag_save_events
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_context_add_flag
    - g_debug
    - fu_context_remove_flag
    - fu_history_has_emulation_tag
    - 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:524,1
    - Dst: fu_engine_ensure_device_problem_priority
      Src: /src/fwupd/src/fu-engine.c:525,1
    - Dst: fu_engine_ensure_device_power_inhibit
      Src: /src/fwupd/src/fu-engine.c:526,1
    - Dst: fu_engine_ensure_device_lid_inhibit
      Src: /src/fwupd/src/fu-engine.c:527,1
    - Dst: fu_engine_ensure_device_display_required_inhibit
      Src: /src/fwupd/src/fu-engine.c:528,1
    - Dst: fu_engine_ensure_device_system_inhibit
      Src: /src/fwupd/src/fu-engine.c:529,1
    - Dst: fu_engine_ensure_device_maybe_remove_affects_fde
      Src: /src/fwupd/src/fu-engine.c:530,1
    - Dst: fu_engine_acquiesce_reset
      Src: /src/fwupd/src/fu-engine.c:531,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-engine.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - device_list
    - device
    - self
    argTypes:
    - FuDeviceList*
    - FuDevice*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 521
    functionDepth: 3
    functionLinenumber: 521
    functionLinenumberEnd: 533
    functionName: fu_engine_device_added_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_ensure_device_display_required_inhibit
    - fu_engine_ensure_device_maybe_remove_affects_fde
    - fu_engine_ensure_device_lid_inhibit
    - fu_engine_ensure_device_system_inhibit
    - fu_engine_acquiesce_reset
    - g_signal_emit
    - fu_engine_ensure_device_power_inhibit
    - fu_engine_watch_device
    - 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:538,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:540,1
    - Dst: fu_plugin_runner_device_removed
      Src: /src/fwupd/src/fu-engine.c:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 543
    functionName: fu_engine_device_runner_device_removed
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_plugin_runner_device_removed
    - g_ptr_array_index
    - fu_plugin_list_get_all
    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:548,1
    - Dst: fu_engine_acquiesce_reset
      Src: /src/fwupd/src/fu-engine.c:549,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/src/fu-engine.c:550,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-engine.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device_list
    - device
    - self
    argTypes:
    - FuDeviceList*
    - FuDevice*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 552
    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_acquiesce_reset
    - fu_engine_device_runner_device_removed
    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:557,1
    - Dst: fu_engine_emit_device_changed
      Src: /src/fwupd/src/fu-engine.c:558,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:558,1
    - Dst: fu_engine_acquiesce_reset
      Src: /src/fwupd/src/fu-engine.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device_list
    - device
    - self
    argTypes:
    - FuDeviceList*
    - FuDevice*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 560
    functionName: fu_engine_device_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_watch_device
    - fu_device_get_id
    - fu_engine_emit_device_changed
    - fu_engine_acquiesce_reset
    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:566,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-engine.c:578,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:580,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:581,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:582,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:583,1
    - Dst: XB_QUERY_CONTEXT_INIT
      Src: /src/fwupd/src/fu-engine.c:583,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/src/fu-engine.c:586,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/src/fu-engine.c:586,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/src/fu-engine.c:587,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/src/fu-engine.c:587,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:589,1
    - Dst: xb_silo_query_with_context
      Src: /src/fwupd/src/fu-engine.c:591,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:596,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:597,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:599,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:599,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:600,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:604,1
    - Dst: fu_release_add_tag
      Src: /src/fwupd/src/fu-engine.c:605,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine.c:605,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - release
    - error
    argTypes:
    - FuEngine*
    - FuRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 611
    functionName: fu_engine_add_local_release_metadata
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_release_add_tag
    - xb_silo_query_with_context
    - XB_QUERY_CONTEXT_INIT
    - fu_release_get_version
    - g_steal_pointer
    - fu_release_get_device
    - fwupd_error_convert
    - xb_value_bindings_bind_str
    - fu_device_get_guids
    - xb_query_context_get_bindings
    - g_error_matches
    - g_auto
    - g_propagate_error
    - g_autoptr
    - xb_node_get_text
    - g_ptr_array_index
    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:617,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:617,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-engine.c:618,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/src/fu-engine.c:618,1
    - Dst: fu_remote_list_add_remote
      Src: /src/fwupd/src/fu-engine.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - remote
    argTypes:
    - FuEngine*
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 620
    functionName: fu_engine_add_remote
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - FU_IS_ENGINE
    - g_return_if_fail
    - fu_remote_list_add_remote
    - FWUPD_IS_REMOTE
    linkageType: ''
    returnType: void
    signature: void fu_engine_add_remote(FuEngine *self, FwupdRemote *remote)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:626,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:627,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-engine.c:629,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:629,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:632,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:634,1
    - Dst: fu_release_set_remote
      Src: /src/fwupd/src/fu-engine.c:637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - release
    - pspec
    - self
    argTypes:
    - FuRelease*
    - GParamSpec*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 638
    functionName: fu_engine_release_remote_id_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fwupd_release_get_remote_id
    - g_warning
    - fu_release_set_remote
    - g_autoptr
    - FWUPD_RELEASE
    - fu_remote_list_get_by_id
    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:643,1
    - Dst: fwupd_report_has_flag
      Src: /src/fwupd/src/fu-engine.c:644,1
    - Dst: fwupd_report_has_flag
      Src: /src/fwupd/src/fu-engine.c:646,1
    - Dst: fwupd_report_has_flag
      Src: /src/fwupd/src/fu-engine.c:647,1
    - Dst: fwupd_report_get_vendor_id
      Src: /src/fwupd/src/fu-engine.c:649,1
    - Dst: fwupd_report_get_vendor_id
      Src: /src/fwupd/src/fu-engine.c:650,1
    - Dst: fwupd_report_get_vendor_id
      Src: /src/fwupd/src/fu-engine.c:651,1
    - Dst: fwupd_report_get_distro_id
      Src: /src/fwupd/src/fu-engine.c:654,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:655,1
    - Dst: fwupd_report_get_distro_id
      Src: /src/fwupd/src/fu-engine.c:655,1
    - Dst: fwupd_report_get_distro_id
      Src: /src/fwupd/src/fu-engine.c:656,1
    - Dst: fwupd_report_get_distro_version
      Src: /src/fwupd/src/fu-engine.c:659,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:660,1
    - Dst: fwupd_report_get_distro_version
      Src: /src/fwupd/src/fu-engine.c:660,1
    - Dst: fwupd_report_get_distro_version
      Src: /src/fwupd/src/fu-engine.c:661,1
    - Dst: fwupd_report_get_distro_variant
      Src: /src/fwupd/src/fu-engine.c:664,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:665,1
    - Dst: fwupd_report_get_distro_variant
      Src: /src/fwupd/src/fu-engine.c:665,1
    - Dst: fwupd_report_get_distro_variant
      Src: /src/fwupd/src/fu-engine.c:666,1
    - Dst: fwupd_report_get_remote_id
      Src: /src/fwupd/src/fu-engine.c:669,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:670,1
    - Dst: fwupd_report_get_remote_id
      Src: /src/fwupd/src/fu-engine.c:670,1
    - Dst: fwupd_report_get_remote_id
      Src: /src/fwupd/src/fu-engine.c:671,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 2
    argNames:
    - report_trusted
    - report
    argTypes:
    - FwupdReport*
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 675
    functionName: fu_engine_compare_report_trusted
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fwupd_report_get_distro_variant
    - g_strcmp0
    - fwupd_report_get_remote_id
    - fwupd_report_get_distro_id
    - fwupd_report_get_distro_version
    - fwupd_report_get_vendor_id
    - fwupd_report_has_flag
    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:680,1
    - Dst: fu_engine_config_get_trusted_reports
      Src: /src/fwupd/src/fu-engine.c:681,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:684,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:686,1
    - Dst: fu_engine_compare_report_trusted
      Src: /src/fwupd/src/fu-engine.c:687,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-engine.c:689,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-engine.c:689,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:690,1
    - Dst: fu_release_get_appstream_id
      Src: /src/fwupd/src/fu-engine.c:691,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:692,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-engine.c:694,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - release
    argTypes:
    - FuEngine*
    - FuRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 699
    functionName: fu_engine_add_trusted_report
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_to_string
    - FWUPD_CODEC
    - fu_release_get_appstream_id
    - fu_engine_compare_report_trusted
    - g_debug
    - fu_release_get_version
    - fu_release_get_reports
    - fu_release_add_flag
    - fu_engine_config_get_trusted_reports
    - g_ptr_array_index
    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:710,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:710,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:711,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-engine.c:711,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:712,1
    - Dst: FU_IS_CABINET
      Src: /src/fwupd/src/fu-engine.c:712,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:713,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/src/fu-engine.c:713,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:714,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/src/fu-engine.c:714,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:715,1
    - Dst: fu_release_set_config
      Src: /src/fwupd/src/fu-engine.c:718,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:721,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-engine.c:721,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:723,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine.c:727,1
    - Dst: fu_engine_config_get_ignore_requirements
      Src: /src/fwupd/src/fu-engine.c:731,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine.c:735,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:739,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine.c:740,1
    - Dst: fu_device_ensure_from_component
      Src: /src/fwupd/src/fu-engine.c:742,1
    - Dst: fu_device_ensure_from_release
      Src: /src/fwupd/src/fu-engine.c:744,1
    - Dst: fu_release_check_version
      Src: /src/fwupd/src/fu-engine.c:749,1
    - Dst: fu_engine_add_local_release_metadata
      Src: /src/fwupd/src/fu-engine.c:753,1
    - Dst: fu_engine_add_trusted_report
      Src: /src/fwupd/src/fu-engine.c:757,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: 761
      start: 701
    functionDepth: 4
    functionLinenumber: 701
    functionLinenumberEnd: 761
    functionName: fu_engine_load_release
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - FU_RELEASE
    - fu_engine_config_get_ignore_requirements
    - fu_release_check_version
    - fu_engine_requirements_check
    - g_signal_connect
    - XB_IS_NODE
    - FU_IS_RELEASE
    - fu_release_set_config
    - fu_device_ensure_from_release
    - fu_release_load
    - fu_engine_add_trusted_report
    - FU_IS_ENGINE
    - g_return_val_if_fail
    - fu_engine_add_local_release_metadata
    - FU_IS_CABINET
    - fu_release_get_device
    - G_CALLBACK
    - fu_release_has_flag
    - fu_device_ensure_from_component
    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:768,1
    - Dst: XB_QUERY_CONTEXT_INIT
      Src: /src/fwupd/src/fu-engine.c:768,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/src/fu-engine.c:769,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/src/fu-engine.c:769,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:771,1
    - Dst: xb_silo_query_with_context
      Src: /src/fwupd/src/fu-engine.c:772,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:777,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:780,1
    - Dst: xb_silo_query_with_context
      Src: /src/fwupd/src/fu-engine.c:781,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:786,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - csum
    argTypes:
    - FuEngine*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 791
    functionName: fu_engine_get_releases_for_container_checksum
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - xb_silo_query_with_context
    - g_steal_pointer
    - xb_value_bindings_bind_str
    - xb_query_context_get_bindings
    - g_auto
    - g_autoptr
    - XB_QUERY_CONTEXT_INIT
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_engine_get_releases_for_container_checksum(FuEngine *self, const gchar *csum)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:802,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:802,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:803,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/src/fu-engine.c:803,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-engine.c:805,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:807,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-engine.c:809,1
    - Dst: fu_engine_get_releases_for_container_checksum
      Src: /src/fwupd/src/fu-engine.c:812,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:816,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-engine.c:818,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:822,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - self
    - stream
    argTypes:
    - FuEngine*
    - GInputStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 826
    functionName: fu_engine_get_remote_id_for_stream
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - xb_node_query_text
    - fu_engine_get_releases_for_container_checksum
    - fu_input_stream_compute_checksum
    - G_N_ELEMENTS
    - G_IS_INPUT_STREAM
    - FU_IS_ENGINE
    - g_autoptr
    - g_ptr_array_index
    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:842,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:844,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:844,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:845,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:846,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:849,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:855,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:855,1
    - Dst: fu_plugin_runner_unlock
      Src: /src/fwupd/src/fu-engine.c:860,1
    - Dst: fu_engine_emit_device_changed_safe
      Src: /src/fwupd/src/fu-engine.c:864,1
    - Dst: fu_engine_emit_changed
      Src: /src/fwupd/src/fu-engine.c:865,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 838
    functionDepth: 2
    functionLinenumber: 838
    functionLinenumberEnd: 867
    functionName: fu_engine_unlock
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_engine_emit_changed
    - fu_device_list_get_by_id
    - fu_device_get_plugin
    - fu_engine_emit_device_changed_safe
    - fu_plugin_runner_unlock
    - g_autoptr
    - FU_IS_ENGINE
    - fu_plugin_list_find_by_name
    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:873,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine.c:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - section
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 874
    functionName: fu_engine_reset_config
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    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:885,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:885,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:886,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:887,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:888,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:889,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:892,1
    - Dst: g_strv_contains
      Src: /src/fwupd/src/fu-engine.c:917,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:918,1
    - Dst: fu_config_set_value
      Src: /src/fwupd/src/fu-engine.c:928,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine.c:928,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:932,1
    - Dst: fu_remote_list_set_testing_remote_enabled
      Src: /src/fwupd/src/fu-engine.c:933,1
    - Dst: fu_engine_config_get_test_devices
      Src: /src/fwupd/src/fu-engine.c:935,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:943,1
    - Dst: fu_plugin_runner_modify_config
      Src: /src/fwupd/src/fu-engine.c:946,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: 947
      start: 876
    functionDepth: 7
    functionLinenumber: 876
    functionLinenumberEnd: 947
    functionName: fu_engine_modify_config
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - g_set_error
    - fu_config_set_value
    - fu_remote_list_set_testing_remote_enabled
    - fu_plugin_runner_modify_config
    - g_strv_contains
    - fu_engine_config_get_test_devices
    - FU_IS_ENGINE
    - fu_plugin_list_find_by_name
    - FU_CONFIG
    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:982,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:983,1
    - Dst: fu_remote_list_set_key_value
      Src: /src/fwupd/src/fu-engine.c:986,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: 987
      start: 961
    functionDepth: 2
    functionLinenumber: 961
    functionLinenumberEnd: 987
    functionName: fu_engine_modify_remote
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 4
    functionsReached:
    - fu_remote_list_set_key_value
    - g_strv_contains
    - g_set_error
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1002,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1004,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:1004,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1005,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1006,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:1008,1
    - Dst: fu_remote_clean
      Src: /src/fwupd/src/fu-engine.c:1011,1
    - Dst: fu_engine_metadata_changed
      Src: /src/fwupd/src/fu-engine.c:1013,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - remote_id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 999
    functionDepth: 2
    functionLinenumber: 999
    functionLinenumberEnd: 1015
    functionName: fu_engine_clean_remote
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fu_engine_metadata_changed
    - g_autoptr
    - FU_IS_ENGINE
    - fu_remote_clean
    - fu_remote_list_get_by_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_clean_remote(FuEngine *self, const gchar *remote_id,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/src/fu-engine.c:1024,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:1026,1
    - Dst: fwupd_bios_setting_write_value
      Src: /src/fwupd/src/fu-engine.c:1032,1
    - Dst: fwupd_bios_setting_set_read_only
      Src: /src/fwupd/src/fu-engine.c:1035,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: 1037
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1037
    functionName: fu_engine_modify_single_bios_setting
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_context_get_bios_setting
    - fwupd_bios_setting_set_read_only
    - g_set_error_literal
    - 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:1056,1
    - Dst: fu_context_get_bios_settings
      Src: /src/fwupd/src/fu-engine.c:1056,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1061,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:1061,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1062,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1063,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-engine.c:1065,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-engine.c:1066,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1067,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1069,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:1076,1
    - Dst: fu_bios_settings_get_attr
      Src: /src/fwupd/src/fu-engine.c:1077,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1078,1
    - Dst: fu_bios_setting_new
      Src: /src/fwupd/src/fu-engine.c:1078,1
    - Dst: fwupd_bios_setting_set_name
      Src: /src/fwupd/src/fu-engine.c:1079,1
    - Dst: fu_bios_settings_add_attribute
      Src: /src/fwupd/src/fu-engine.c:1080,1
    - Dst: fu_engine_modify_single_bios_setting
      Src: /src/fwupd/src/fu-engine.c:1085,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:1090,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:1091,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:1094,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:1094,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:1101,1
    - Dst: fu_bios_settings_get_attr
      Src: /src/fwupd/src/fu-engine.c:1107,1
    - Dst: fu_bios_settings_get_pending_reboot
      Src: /src/fwupd/src/fu-engine.c:1108,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:1110,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: 1113
      start: 1050
    functionDepth: 2
    functionLinenumber: 1050
    functionLinenumberEnd: 1113
    functionName: fu_engine_modify_bios_settings
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - g_debug
    - g_set_error_literal
    - fu_bios_settings_get_pending_reboot
    - fwupd_bios_setting_set_name
    - g_propagate_error
    - g_hash_table_iter_next
    - g_info
    - fu_bios_settings_get_attr
    - fu_bios_setting_new
    - FU_IS_ENGINE
    - g_return_val_if_fail
    - g_strcmp0
    - g_set_error
    - fu_bios_settings_add_attribute
    - g_steal_pointer
    - fu_engine_modify_single_bios_setting
    - fu_context_get_bios_settings
    - g_error_matches
    - g_hash_table_iter_init
    - g_autoptr
    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:1121,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-engine.c:1124,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-engine.c:1127,1
    - Dst: fu_history_modify_device
      Src: /src/fwupd/src/fu-engine.c:1128,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:1131,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:1134,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1135,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1139,1
    - Dst: fu_device_get_backend
      Src: /src/fwupd/src/fu-engine.c:1142,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1143,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1147,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-engine.c:1150,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/src/fu-engine.c:1151,1
    - Dst: fu_device_get_backend
      Src: /src/fwupd/src/fu-engine.c:1151,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:1155,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:1158,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1159,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1163,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-engine.c:1166,1
    - Dst: fu_history_remove_emulation_tag
      Src: /src/fwupd/src/fu-engine.c:1167,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1168,1
    - Dst: fu_engine_ensure_context_flag_save_events
      Src: /src/fwupd/src/fu-engine.c:1171,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:1174,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: 1179
      start: 1115
    functionDepth: 7
    functionLinenumber: 1115
    functionLinenumberEnd: 1179
    functionName: fu_engine_remove_device_flag
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_list_get_by_id
    - g_set_error_literal
    - fu_history_modify_device
    - fu_device_remove_flag
    - fu_device_get_id
    - fu_engine_ensure_context_flag_save_events
    - fu_device_has_flag
    - fu_history_get_device_by_id
    - fu_backend_device_removed
    - fu_device_get_backend
    - g_autoptr
    - fu_history_remove_emulation_tag
    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:1184,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/src/fu-engine.c:1184,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/src/fu-engine.c:1185,1
    - Dst: fwupd_request_set_device_id
      Src: /src/fwupd/src/fu-engine.c:1186,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1186,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/src/fu-engine.c:1187,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/src/fu-engine.c:1188,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/src/fu-engine.c:1189,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-engine.c:1191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1181
    functionDepth: 1
    functionLinenumber: 1181
    functionLinenumberEnd: 1192
    functionName: fu_engine_emit_device_request_replug_and_install
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fwupd_request_new
    - fwupd_request_set_message
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fwupd_request_set_id
    - fwupd_request_set_device_id
    - fu_device_get_id
    - g_signal_emit
    - g_autoptr
    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:1197,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/src/fu-engine.c:1197,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/src/fu-engine.c:1198,1
    - Dst: fwupd_request_set_device_id
      Src: /src/fwupd/src/fu-engine.c:1199,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1199,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/src/fu-engine.c:1200,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/src/fu-engine.c:1201,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/src/fu-engine.c:1202,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-engine.c:1205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1194
    functionDepth: 1
    functionLinenumber: 1194
    functionLinenumberEnd: 1206
    functionName: fu_engine_emit_device_request_restart_daemon
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fwupd_request_new
    - fwupd_request_set_message
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fwupd_request_set_id
    - fwupd_request_set_device_id
    - fu_device_get_id
    - g_signal_emit
    - g_autoptr
    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:1214,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-engine.c:1217,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:1220,1
    - Dst: fu_history_modify_device
      Src: /src/fwupd/src/fu-engine.c:1221,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:1224,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:1227,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1228,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1232,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:1235,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1236,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1240,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:1243,1
    - Dst: fu_history_add_emulation_tag
      Src: /src/fwupd/src/fu-engine.c:1244,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1244,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:1246,1
    - Dst: fu_engine_emit_device_request_restart_daemon
      Src: /src/fwupd/src/fu-engine.c:1247,1
    - Dst: fu_engine_emit_device_request_replug_and_install
      Src: /src/fwupd/src/fu-engine.c:1249,1
    - Dst: fu_engine_ensure_context_flag_save_events
      Src: /src/fwupd/src/fu-engine.c:1251,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:1254,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: 1259
      start: 1208
    functionDepth: 7
    functionLinenumber: 1208
    functionLinenumberEnd: 1259
    functionName: fu_engine_add_device_flag
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_set_error
    - fu_device_list_get_by_id
    - fu_history_add_emulation_tag
    - g_set_error_literal
    - fu_history_modify_device
    - fu_engine_ensure_context_flag_save_events
    - fu_device_get_id
    - fu_device_has_flag
    - fu_history_get_device_by_id
    - fu_engine_emit_device_request_replug_and_install
    - g_autoptr
    - fu_engine_emit_device_request_restart_daemon
    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:1268,1
    - Dst: fu_engine_remove_device_flag
      Src: /src/fwupd/src/fu-engine.c:1269,1
    - Dst: fwupd_device_flag_from_string
      Src: /src/fwupd/src/fu-engine.c:1271,1
    - Dst: fu_engine_add_device_flag
      Src: /src/fwupd/src/fu-engine.c:1274,1
    - Dst: fwupd_device_flag_from_string
      Src: /src/fwupd/src/fu-engine.c:1276,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: 1278
      start: 1261
    functionDepth: 8
    functionLinenumber: 1261
    functionLinenumberEnd: 1278
    functionName: fu_engine_modify_device_flags
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_add_device_flag
    - fwupd_device_flag_from_string
    - g_str_has_prefix
    - fu_engine_remove_device_flag
    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:1300,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:1300,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1301,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1302,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1303,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1304,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:1305,1
    - Dst: fu_engine_modify_device_flags
      Src: /src/fwupd/src/fu-engine.c:1306,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1307,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: 1309
      start: 1293
    functionDepth: 9
    functionLinenumber: 1293
    functionLinenumberEnd: 1309
    functionName: fu_engine_modify_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - g_set_error
    - FU_IS_ENGINE
    - fu_engine_modify_device_flags
    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: 1321
      start: 1311
    functionDepth: 0
    functionLinenumber: 1311
    functionLinenumberEnd: 1321
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1344,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1345,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1346,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-engine.c:1346,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1347,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1348,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1349,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1350,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1351,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1352,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1354,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:1354,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1355,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1356,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:1359,1
    - Dst: fu_device_progress_new
      Src: /src/fwupd/src/fu-engine.c:1362,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1363,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:1367,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:1367,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/src/fu-engine.c:1372,1
    - Dst: fu_plugin_runner_verify
      Src: /src/fwupd/src/fu-engine.c:1374,1
    - Dst: fu_engine_emit_device_changed_safe
      Src: /src/fwupd/src/fu-engine.c:1380,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:1385,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/src/fu-engine.c:1393,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/src/fu-engine.c:1394,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-engine.c:1395,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:1397,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1398,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/src/fu-engine.c:1399,1
    - Dst: xb_builder_node_set_text
      Src: /src/fwupd/src/fu-engine.c:1400,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/src/fu-engine.c:1402,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/src/fu-engine.c:1403,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:1406,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:1409,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/src/fu-engine.c:1410,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1411,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/src/fu-engine.c:1412,1
    - Dst: fu_engine_checksum_type_to_string
      Src: /src/fwupd/src/fu-engine.c:1415,1
    - Dst: xb_builder_node_set_text
      Src: /src/fwupd/src/fu-engine.c:1419,1
    - Dst: xb_builder_import_node
      Src: /src/fwupd/src/fu-engine.c:1421,1
    - Dst: fu_context_get_path
      Src: /src/fwupd/src/fu-engine.c:1424,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:1427,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1427,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-engine.c:1428,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-engine.c:1430,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-engine.c:1431,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:1433,1
    - Dst: xb_silo_export_file
      Src: /src/fwupd/src/fu-engine.c:1436,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 65
    argCount: 4
    argNames:
    - self
    - device_id
    - progress
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1333
    functionDepth: 2
    functionLinenumber: 1333
    functionLinenumberEnd: 1441
    functionName: fu_engine_verify_update
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - xb_builder_compile
    - fu_device_get_plugin
    - g_strdup_printf
    - fu_device_get_guids
    - fu_context_get_path
    - xb_silo_export_file
    - g_ptr_array_index
    - fu_device_get_checksums
    - g_set_error_literal
    - fu_path_mkdir_parent
    - xb_builder_node_insert
    - g_file_new_for_path
    - fu_device_progress_new
    - fwupd_checksum_guess_kind
    - fu_engine_checksum_type_to_string
    - fwupd_error_convert
    - xb_builder_import_node
    - xb_builder_node_set_text
    - FU_IS_ENGINE
    - fu_plugin_list_find_by_name
    - fu_plugin_runner_verify
    - g_return_val_if_fail
    - fu_device_list_get_by_id
    - fu_device_get_id
    - fu_device_get_version
    - fu_engine_emit_device_changed_safe
    - g_autoptr
    - xb_builder_new
    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:1446,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1447,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:1448,1
    - Dst: XB_QUERY_CONTEXT_INIT
      Src: /src/fwupd/src/fu-engine.c:1448,1
    - Dst: xb_query_context_set_flags
      Src: /src/fwupd/src/fu-engine.c:1454,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/src/fu-engine.c:1455,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/src/fu-engine.c:1455,1
    - Dst: xb_silo_query_first_with_context
      Src: /src/fwupd/src/fu-engine.c:1456,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:1461,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:1462,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:1463,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:1466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuEngine*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1443
    functionDepth: 0
    functionLinenumber: 1443
    functionLinenumberEnd: 1467
    functionName: fu_engine_get_component_by_guid
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - xb_value_bindings_bind_str
    - g_object_ref
    - xb_query_context_set_flags
    - xb_query_context_get_bindings
    - g_error_matches
    - g_warning
    - g_auto
    - xb_silo_query_first_with_context
    - g_autoptr
    - 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:1472,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/src/fu-engine.c:1474,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:1476,1
    - Dst: fu_engine_get_component_by_guid
      Src: /src/fwupd/src/fu-engine.c:1477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1469
    functionDepth: 1
    functionLinenumber: 1469
    functionLinenumberEnd: 1482
    functionName: fu_engine_get_component_by_guids
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_engine_get_component_by_guid
    - fu_device_get_guids
    - g_ptr_array_index
    - fu_device_convert_instance_ids
    linkageType: ''
    returnType: XbNode
    signature: 'XbNode *

      fu_engine_get_component_by_guids(FuEngine *self, FuDevice *device)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:1488,1
    - Dst: XB_QUERY_CONTEXT_INIT
      Src: /src/fwupd/src/fu-engine.c:1488,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1490,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1491,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-engine.c:1491,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1492,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-engine.c:1492,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1493,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1494,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1495,1
    - Dst: fu_context_get_path
      Src: /src/fwupd/src/fu-engine.c:1497,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:1500,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:1500,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-engine.c:1501,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/src/fu-engine.c:1502,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1503,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-engine.c:1507,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:1508,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-engine.c:1511,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-engine.c:1512,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:1514,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-engine.c:1517,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:1522,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/src/fu-engine.c:1525,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/src/fu-engine.c:1525,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:1527,1
    - Dst: xb_silo_query_first_with_context
      Src: /src/fwupd/src/fu-engine.c:1529,1
    - Dst: g_object_set_data_full
      Src: /src/fwupd/src/fu-engine.c:1534,1
    - Dst: G_OBJECT
      Src: /src/fwupd/src/fu-engine.c:1534,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:1536,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:1538,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1484
    functionDepth: 1
    functionLinenumber: 1484
    functionLinenumberEnd: 1539
    functionName: fu_engine_verify_from_local_metadata
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - xb_builder_compile
    - xb_builder_source_new
    - g_strdup_printf
    - xb_query_context_get_bindings
    - fu_context_get_path
    - g_auto
    - xb_silo_query_first_with_context
    - xb_builder_import_source
    - g_prefix_error_literal
    - xb_query_new_full
    - g_file_new_for_path
    - g_object_set_data_full
    - fwupd_error_convert
    - xb_value_bindings_bind_str
    - G_OBJECT
    - xb_builder_source_load_file
    - g_set_error
    - g_steal_pointer
    - g_file_query_exists
    - fu_device_get_id
    - fu_device_get_version
    - g_autoptr
    - XB_QUERY_CONTEXT_INIT
    - xb_builder_new
    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:1544,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-engine.c:1545,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1546,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-engine.c:1549,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:1556,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:1562,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1563,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1564,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:1565,1
    - Dst: XB_QUERY_CONTEXT_INIT
      Src: /src/fwupd/src/fu-engine.c:1565,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/src/fu-engine.c:1568,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/src/fu-engine.c:1568,1
    - Dst: xb_silo_query_with_context
      Src: /src/fwupd/src/fu-engine.c:1569,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:1571,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:1572,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:1573,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:1576,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:1576,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:1577,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:1581,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine.c:1582,1
    - Dst: fu_version_parse_from_format
      Src: /src/fwupd/src/fu-engine.c:1583,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine.c:1584,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:1584,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:1585,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:1590,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1541
    functionDepth: 1
    functionLinenumber: 1541
    functionLinenumberEnd: 1592
    functionName: fu_engine_verify_from_system_metadata
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_version_parse_from_format
    - g_object_ref
    - fu_device_get_guids
    - xb_query_context_get_bindings
    - xb_node_get_attr
    - xb_silo_query_with_context
    - g_auto
    - g_ptr_array_index
    - g_debug
    - g_set_error_literal
    - xb_query_new_full
    - g_propagate_error
    - fu_device_get_version_format
    - fwupd_error_convert
    - xb_value_bindings_bind_str
    - g_steal_pointer
    - fu_version_compare
    - fu_device_get_version
    - g_error_matches
    - g_autoptr
    - XB_QUERY_CONTEXT_INIT
    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:1609,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1610,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1611,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:1611,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1612,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1613,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1615,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:1615,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1616,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:1617,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:1620,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:1626,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:1626,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:1631,1
    - Dst: fu_plugin_runner_verify
      Src: /src/fwupd/src/fu-engine.c:1632,1
    - Dst: fu_engine_verify_from_local_metadata
      Src: /src/fwupd/src/fu-engine.c:1641,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:1643,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:1644,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:1645,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:1645,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1652,1
    - Dst: fu_engine_verify_from_system_metadata
      Src: /src/fwupd/src/fu-engine.c:1653,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:1655,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:1656,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:1657,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:1657,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1663,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:1667,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/src/fu-engine.c:1672,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1674,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:1678,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:1684,1
    - Dst: xb_string_append_union
      Src: /src/fwupd/src/fu-engine.c:1685,1
    - Dst: xb_string_append_union
      Src: /src/fwupd/src/fu-engine.c:1688,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-engine.c:1692,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-engine.c:1694,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1695,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:1695,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1696,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1697,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:1697,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-engine.c:1698,1
    - Dst: xb_string_append_union
      Src: /src/fwupd/src/fu-engine.c:1701,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:1702,1
    - Dst: xb_string_append_union
      Src: /src/fwupd/src/fu-engine.c:1703,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-engine.c:1704,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1706,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:1710,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:1714,1
    - Dst: xb_string_append_union
      Src: /src/fwupd/src/fu-engine.c:1715,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine.c:1717,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1719,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:1724,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: 1732
      start: 1604
    functionDepth: 2
    functionLinenumber: 1604
    functionLinenumberEnd: 1732
    functionName: fu_engine_verify
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_strjoin
    - fu_engine_verify_from_local_metadata
    - fu_device_get_plugin
    - g_ptr_array_index
    - fu_device_get_checksums
    - fu_device_get_id_display
    - fu_device_has_flag
    - g_string_new
    - xb_node_query_first
    - g_propagate_error
    - fu_engine_verify_from_system_metadata
    - xb_string_append_union
    - xb_node_query
    - FU_IS_ENGINE
    - fu_plugin_list_find_by_name
    - fu_plugin_runner_verify
    - g_return_val_if_fail
    - g_set_error
    - fu_device_list_get_by_id
    - g_steal_pointer
    - fu_device_get_version
    - g_error_matches
    - g_autoptr
    - xb_node_get_text
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_verify(FuEngine *self, const gchar *device_id, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_to_string
      Src: /src/fwupd/src/fu-engine.c:1737,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:1739,1
    - Dst: fu_engine_config_get_only_trusted
      Src: /src/fwupd/src/fu-engine.c:1740,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:1741,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/src/fu-engine.c:1743,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:1750,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - release
    - error
    argTypes:
    - FuEngine*
    - FuRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1734
    functionDepth: 2
    functionLinenumber: 1734
    functionLinenumberEnd: 1759
    functionName: fu_engine_check_trust
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_context_build_filename
    - g_debug
    - fu_release_to_string
    - g_set_error
    - fu_engine_config_get_only_trusted
    - 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:1764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1761
    functionDepth: 1
    functionLinenumber: 1761
    functionLinenumberEnd: 1765
    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:1770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - inhibit
    - reason
    argTypes:
    - FuEngine*
    - FuIdleInhibit
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1767
    functionDepth: 1
    functionLinenumber: 1767
    functionLinenumberEnd: 1771
    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:1776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - token
    argTypes:
    - FuEngine*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1773
    functionDepth: 1
    functionLinenumber: 1773
    functionLinenumberEnd: 1777
    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:1783,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-engine.c:1784,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine.c:1786,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-engine.c:1788,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1789,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1779
    functionDepth: 0
    functionLinenumber: 1779
    functionLinenumberEnd: 1792
    functionName: fu_engine_get_boot_time
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_file_get_contents
    - g_strsplit
    - g_auto
    - g_str_has_prefix
    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:1797,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:1797,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:1799,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/src/fu-engine.c:1800,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:1801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1794
    functionDepth: 1
    functionLinenumber: 1794
    functionLinenumberEnd: 1804
    functionName: fu_engine_get_cpu_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_device_has_private_flag_quark
    - fu_device_list_get_active
    - g_autoptr
    - g_ptr_array_index
    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:1809,1
    - Dst: fu_engine_get_cpu_device
      Src: /src/fwupd/src/fu-engine.c:1811,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:1813,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/src/fu-engine.c:1816,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:1816,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:1817,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1820,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1822,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:1823,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/src/fu-engine.c:1823,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:1823,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - hash
    argTypes:
    - FuEngine*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1806
    functionDepth: 2
    functionLinenumber: 1806
    functionLinenumberEnd: 1824
    functionName: fu_engine_get_report_metadata_cpu_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - g_info
    - fu_engine_get_cpu_device
    - fu_device_get_vendor
    - g_strdup_printf
    - fu_device_get_name
    - g_autoptr
    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:1831,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:1832,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:1843,1
    - Dst: g_spawn_command_line_sync
      Src: /src/fwupd/src/fu-engine.c:1852,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine.c:1854,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-engine.c:1857,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1858,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-engine.c:1858,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1859,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1860,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1861,1
    - Dst: g_strstrip
      Src: /src/fwupd/src/fu-engine.c:1861,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1865,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1865,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1865,1
    - Dst: g_get_os_info
      Src: /src/fwupd/src/fu-engine.c:1879,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1881,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1882,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:1883,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - hash
    - error
    argTypes:
    - GHashTable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1826
    functionDepth: 0
    functionLinenumber: 1826
    functionLinenumberEnd: 1888
    functionName: fu_engine_get_report_metadata_os_release
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_find_program_in_path
    - g_hash_table_insert
    - g_set_error_literal
    - g_steal_pointer
    - g_strstrip
    - g_get_os_info
    - g_strsplit
    - strlen
    - g_auto
    - g_str_has_prefix
    - g_spawn_command_line_sync
    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:1894,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:1895,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:1896,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-engine.c:1896,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-engine.c:1899,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine.c:1901,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:1904,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine.c:1907,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-engine.c:1908,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-engine.c:1912,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1919,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1919,1
    - Dst: g_strndup
      Src: /src/fwupd/src/fu-engine.c:1919,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:1921,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - filename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1890
    functionDepth: 0
    functionLinenumber: 1890
    functionLinenumberEnd: 1922
    functionName: fu_engine_load_os_release
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strndup
    - g_hash_table_insert
    - g_file_get_contents
    - g_steal_pointer
    - g_hash_table_new_full
    - g_strsplit
    - g_strv_length
    - strlen
    - g_auto
    - g_autoptr
    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:1928,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-engine.c:1935,1
    - Dst: fu_engine_load_os_release
      Src: /src/fwupd/src/fu-engine.c:1937,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-engine.c:1941,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1943,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1943,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1943,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - hash
    - error
    argTypes:
    - GHashTable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1924
    functionDepth: 1
    functionLinenumber: 1924
    functionLinenumberEnd: 1946
    functionName: fu_engine_get_report_metadata_lsb_release
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - g_hash_table_lookup
    - g_file_test
    - fu_engine_load_os_release
    - g_autoptr
    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:1952,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1956,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1956,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:1956,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - hash
    - error
    argTypes:
    - GHashTable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1948
    functionDepth: 1
    functionLinenumber: 1948
    functionLinenumberEnd: 1958
    functionName: fu_engine_get_report_metadata_kernel_cmdline
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - fu_common_get_kernel_cmdline
    - g_steal_pointer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_get_report_metadata_kernel_cmdline(GHashTable *hash,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_build_filename
      Src: /src/fwupd/src/fu-engine.c:1966,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:1974,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-engine.c:1977,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:1978,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-engine.c:1981,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:1983,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1984,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1984,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1984,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1987,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1987,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1987,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - hash
    - error
    argTypes:
    - FuEngine*
    - GHashTable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1960
    functionDepth: 1
    functionLinenumber: 1960
    functionLinenumberEnd: 1989
    functionName: fu_engine_get_report_metadata_selinux
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_hash_table_insert
    - g_debug
    - fu_context_build_filename
    - g_file_get_contents
    - g_file_test
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_get_report_metadata_selinux(FuEngine *self, GHashTable
      *hash, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:1994,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1994,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:1994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hash
    - key
    - value
    argTypes:
    - GHashTable*
    - gchar*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1995
      start: 1991
    functionDepth: 0
    functionLinenumber: 1991
    functionLinenumberEnd: 1995
    functionName: fu_engine_add_report_metadata_bool
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    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:2001,1
    - Dst: fu_engine_config_get_p2p_policy
      Src: /src/fwupd/src/fu-engine.c:2004,1
    - Dst: passim_client_get_version
      Src: /src/fwupd/src/fu-engine.c:2008,1
    - Dst: passim_client_load
      Src: /src/fwupd/src/fu-engine.c:2012,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:2013,1
    - Dst: passim_client_get_version
      Src: /src/fwupd/src/fu-engine.c:2014,1
    - Dst: fu_engine_add_runtime_version
      Src: /src/fwupd/src/fu-engine.c:2015,1
    - Dst: passim_client_get_version
      Src: /src/fwupd/src/fu-engine.c:2017,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 1998
    functionDepth: 1
    functionLinenumber: 1998
    functionLinenumberEnd: 2019
    functionName: fu_engine_ensure_passim_client
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_debug
    - passim_client_get_version
    - fu_engine_config_get_p2p_policy
    - fu_engine_add_runtime_version
    - g_autoptr
    - passim_client_load
    linkageType: ''
    returnType: void
    signature: void fu_engine_ensure_passim_client(FuEngine *self)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/src/fu-engine.c:2025,1
    - Dst: fu_context_get_compile_versions
      Src: /src/fwupd/src/fu-engine.c:2026,1
    - Dst: fu_context_get_runtime_versions
      Src: /src/fwupd/src/fu-engine.c:2027,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2034,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2035,1
    - Dst: g_list_sort
      Src: /src/fwupd/src/fu-engine.c:2036,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/src/fu-engine.c:2036,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2037,1
    - Dst: g_list_sort
      Src: /src/fwupd/src/fu-engine.c:2038,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/src/fu-engine.c:2038,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-engine.c:2041,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-engine.c:2044,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2045,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:2046,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2047,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-engine.c:2051,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2052,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:2053,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2054,1
    - Dst: fu_engine_get_report_metadata_cpu_device
      Src: /src/fwupd/src/fu-engine.c:2056,1
    - Dst: fu_engine_get_report_metadata_os_release
      Src: /src/fwupd/src/fu-engine.c:2057,1
    - Dst: fu_engine_get_report_metadata_lsb_release
      Src: /src/fwupd/src/fu-engine.c:2059,1
    - Dst: fu_engine_get_report_metadata_kernel_cmdline
      Src: /src/fwupd/src/fu-engine.c:2061,1
    - Dst: fu_engine_get_report_metadata_selinux
      Src: /src/fwupd/src/fu-engine.c:2063,1
    - Dst: fu_efivars_space_used
      Src: /src/fwupd/src/fu-engine.c:2067,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2069,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2070,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:2071,1
    - Dst: fu_efivars_space_free
      Src: /src/fwupd/src/fu-engine.c:2073,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:2076,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:2077,1
    - Dst: fu_engine_add_report_metadata_bool
      Src: /src/fwupd/src/fu-engine.c:2082,1
    - Dst: fu_engine_add_report_metadata_bool
      Src: /src/fwupd/src/fu-engine.c:2084,1
    - Dst: fu_engine_config_get_host_bkc
      Src: /src/fwupd/src/fu-engine.c:2088,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2090,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2090,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2090,1
    - Dst: fu_engine_ensure_passim_client
      Src: /src/fwupd/src/fu-engine.c:2094,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2095,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2097,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:2098,1
    - Dst: passim_client_get_download_saving
      Src: /src/fwupd/src/fu-engine.c:2099,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:2103,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/src/fu-engine.c:2123,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2125,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2125,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2125,1
    - Dst: uname
      Src: /src/fwupd/src/fu-engine.c:2131,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2133,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2134,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2135,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2138,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2139,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2140,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2143,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2144,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2145,1
    - Dst: getauxval
      Src: /src/fwupd/src/fu-engine.c:2152,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:2155,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2158,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2158,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2158,1
    - Dst: fu_engine_get_boot_time
      Src: /src/fwupd/src/fu-engine.c:2162,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2164,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2164,1
    - Dst: fu_context_get_power_state
      Src: /src/fwupd/src/fu-engine.c:2167,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2168,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2170,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2171,1
    - Dst: fu_power_state_to_string
      Src: /src/fwupd/src/fu-engine.c:2171,1
    - Dst: fu_context_get_power_state
      Src: /src/fwupd/src/fu-engine.c:2171,1
    - Dst: fu_context_get_display_state
      Src: /src/fwupd/src/fu-engine.c:2173,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2174,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2176,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2177,1
    - Dst: fu_display_state_to_string
      Src: /src/fwupd/src/fu-engine.c:2177,1
    - Dst: fu_context_get_display_state
      Src: /src/fwupd/src/fu-engine.c:2177,1
    - Dst: fu_context_get_lid_state
      Src: /src/fwupd/src/fu-engine.c:2179,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2180,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2182,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2183,1
    - Dst: fu_lid_state_to_string
      Src: /src/fwupd/src/fu-engine.c:2183,1
    - Dst: fu_context_get_lid_state
      Src: /src/fwupd/src/fu-engine.c:2183,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/src/fu-engine.c:2185,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2186,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2187,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:2188,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/src/fu-engine.c:2188,1
    - Dst: fu_context_get_battery_threshold
      Src: /src/fwupd/src/fu-engine.c:2190,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2191,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2193,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:2194,1
    - Dst: fu_context_get_battery_threshold
      Src: /src/fwupd/src/fu-engine.c:2194,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:2197,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 81
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2198
      start: 2022
    functionDepth: 3
    functionLinenumber: 2022
    functionLinenumberEnd: 2198
    functionName: fu_engine_get_report_metadata
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 5
    functionsReached:
    - fu_context_has_flag
    - fu_engine_get_boot_time
    - g_hash_table_insert
    - fu_engine_get_report_metadata_os_release
    - fu_efivars_space_used
    - g_hash_table_lookup
    - uname
    - g_strdup_printf
    - fu_engine_add_report_metadata_bool
    - fu_context_get_display_state
    - fu_context_get_compile_versions
    - fu_context_get_battery_level
    - getauxval
    - fu_engine_get_report_metadata_selinux
    - fu_engine_ensure_passim_client
    - g_debug
    - fu_engine_get_report_metadata_lsb_release
    - fu_context_get_power_state
    - fu_lid_state_to_string
    - g_hash_table_new_full
    - g_list_sort
    - fu_context_get_efivars
    - fu_context_get_lid_state
    - fu_context_get_hwid_value
    - fu_engine_get_report_metadata_cpu_device
    - g_hash_table_get_keys
    - fu_engine_get_report_metadata_kernel_cmdline
    - fu_context_get_runtime_versions
    - fu_context_get_battery_threshold
    - fu_engine_config_get_host_bkc
    - fu_power_state_to_string
    - g_strdup
    - passim_client_get_download_saving
    - fu_display_state_to_string
    - fu_efivars_space_free
    - g_steal_pointer
    - g_autoptr
    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:2215,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2220,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2221,1
    - Dst: fu_engine_emulator_load_phase
      Src: /src/fwupd/src/fu-engine.c:2225,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2234,1
    - Dst: fu_plugin_runner_composite_prepare
      Src: /src/fwupd/src/fu-engine.c:2235,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:2240,1
    - Dst: fu_engine_emulator_save_phase
      Src: /src/fwupd/src/fu-engine.c:2241,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-engine.c:2250,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:2251,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - self
    - devices
    - error
    argTypes:
    - FuEngine*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2257
      start: 2212
    functionDepth: 1
    functionLinenumber: 2212
    functionLinenumberEnd: 2257
    functionName: fu_engine_composite_prepare
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_context_has_flag
    - fu_engine_emulator_save_phase
    - fu_device_list_wait_for_replug
    - fu_plugin_runner_composite_prepare
    - g_prefix_error_literal
    - fu_device_has_flag
    - fu_plugin_list_get_all
    - fu_engine_emulator_load_phase
    - g_ptr_array_index
    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:2272,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2277,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2278,1
    - Dst: fu_engine_emulator_load_phase
      Src: /src/fwupd/src/fu-engine.c:2282,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2291,1
    - Dst: fu_plugin_runner_composite_cleanup
      Src: /src/fwupd/src/fu-engine.c:2292,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:2297,1
    - Dst: fu_engine_emulator_save_phase
      Src: /src/fwupd/src/fu-engine.c:2298,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-engine.c:2307,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:2308,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - self
    - devices
    - error
    argTypes:
    - FuEngine*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2269
    functionDepth: 1
    functionLinenumber: 2269
    functionLinenumberEnd: 2314
    functionName: fu_engine_composite_cleanup
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_context_has_flag
    - fu_engine_emulator_save_phase
    - fu_device_list_wait_for_replug
    - g_prefix_error_literal
    - fu_plugin_runner_composite_cleanup
    - fu_device_has_flag
    - fu_plugin_list_get_all
    - fu_engine_emulator_load_phase
    - g_ptr_array_index
    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:2321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2316
    functionDepth: 2
    functionLinenumber: 2316
    functionLinenumberEnd: 2322
    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:2328,1
    - Dst: fu_release_get_stream
      Src: /src/fwupd/src/fu-engine.c:2329,1
    - Dst: fu_engine_ensure_passim_client
      Src: /src/fwupd/src/fu-engine.c:2332,1
    - Dst: passim_client_get_version
      Src: /src/fwupd/src/fu-engine.c:2335,1
    - Dst: fu_engine_config_get_p2p_policy
      Src: /src/fwupd/src/fu-engine.c:2336,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-engine.c:2338,1
    - Dst: fu_release_get_filename
      Src: /src/fwupd/src/fu-engine.c:2338,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2340,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2341,1
    - Dst: passim_item_new
      Src: /src/fwupd/src/fu-engine.c:2341,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2342,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2343,1
    - Dst: passim_item_add_flag
      Src: /src/fwupd/src/fu-engine.c:2344,1
    - Dst: passim_item_set_max_age
      Src: /src/fwupd/src/fu-engine.c:2345,1
    - Dst: passim_item_set_share_limit
      Src: /src/fwupd/src/fu-engine.c:2346,1
    - Dst: passim_item_set_basename
      Src: /src/fwupd/src/fu-engine.c:2347,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-engine.c:2348,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/src/fu-engine.c:2351,1
    - Dst: passim_item_set_size
      Src: /src/fwupd/src/fu-engine.c:2353,1
    - Dst: passim_item_set_stream
      Src: /src/fwupd/src/fu-engine.c:2354,1
    - Dst: passim_item_set_hash
      Src: /src/fwupd/src/fu-engine.c:2355,1
    - Dst: passim_client_publish
      Src: /src/fwupd/src/fu-engine.c:2356,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:2357,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:2358,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:2362,1
    - Dst: passim_item_get_hash
      Src: /src/fwupd/src/fu-engine.c:2362,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - self
    - release
    - error
    argTypes:
    - FuEngine*
    - FuRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2324
    functionDepth: 2
    functionLinenumber: 2324
    functionLinenumberEnd: 2368
    functionName: fu_engine_publish_release
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_config_get_p2p_policy
    - passim_item_set_stream
    - passim_item_set_size
    - passim_client_publish
    - fu_engine_ensure_passim_client
    - g_debug
    - fu_device_has_flag
    - passim_item_get_hash
    - passim_item_set_hash
    - g_path_get_basename
    - fu_release_get_filename
    - g_warning
    - passim_item_set_basename
    - passim_item_add_flag
    - passim_client_get_version
    - passim_item_set_share_limit
    - passim_item_set_max_age
    - fu_input_stream_compute_checksum
    - fu_release_get_stream
    - fu_input_stream_size
    - passim_item_new
    - fu_release_get_device
    - g_error_matches
    - g_autoptr
    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:2376,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:2377,1
    - Dst: fu_release_get_device_version_old
      Src: /src/fwupd/src/fu-engine.c:2378,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine.c:2379,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine.c:2380,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:2380,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2381,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2382,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2383,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2384,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:2385,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:2386,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:2391,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 4
    argNames:
    - self
    - release
    - device
    - error
    argTypes:
    - FuEngine*
    - FuRelease*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2397
      start: 2370
    functionDepth: 1
    functionLinenumber: 2370
    functionLinenumberEnd: 2397
    functionName: fu_engine_install_release_version_check
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_release_get_version
    - fu_version_compare
    - fu_device_get_version
    - fu_device_has_flag
    - fu_device_set_update_state
    - fu_release_get_device_version_old
    - fu_device_get_version_format
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      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_idle_locker_new
      Src: /src/fwupd/src/fu-engine.c:2430,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:2433,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2438,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine.c:2439,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine.c:2440,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:2441,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:2441,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/src/fu-engine.c:2442,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-engine.c:2446,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:2449,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2451,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine.c:2452,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-engine.c:2453,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:2454,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:2456,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:2457,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:2458,1
    - Dst: fu_device_get_order
      Src: /src/fwupd/src/fu-engine.c:2460,1
    - Dst: fu_release_get_priority
      Src: /src/fwupd/src/fu-engine.c:2461,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:2462,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:2462,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:2464,1
    - Dst: fu_engine_composite_prepare
      Src: /src/fwupd/src/fu-engine.c:2465,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:2466,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:2471,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:2472,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2474,1
    - Dst: fu_engine_install_release
      Src: /src/fwupd/src/fu-engine.c:2476,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:2478,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2481,1
    - Dst: fu_engine_composite_cleanup
      Src: /src/fwupd/src/fu-engine.c:2482,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:2483,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:2488,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2493,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine.c:2494,1
    - Dst: fwupd_device_set_status
      Src: /src/fwupd/src/fu-engine.c:2495,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-engine.c:2495,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:2499,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2502,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2503,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2504,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:2505,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:2506,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:2509,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:2512,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:2512,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:2516,1
    - Dst: fu_engine_composite_cleanup
      Src: /src/fwupd/src/fu-engine.c:2517,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:2518,1
    - Dst: fu_engine_update_motd_reset
      Src: /src/fwupd/src/fu-engine.c:2519,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2525,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine.c:2526,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2527,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2528,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:2530,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:2531,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:2534,1
    - Dst: fu_engine_install_release_version_check
      Src: /src/fwupd/src/fu-engine.c:2537,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2543,1
    - Dst: fu_engine_publish_release
      Src: /src/fwupd/src/fu-engine.c:2544,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:2549,1
    - Dst: fu_engine_emit_changed
      Src: /src/fwupd/src/fu-engine.c:2552,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 80
    argCount: 7
    argNames:
    - self
    - request
    - releases
    - cabinet
    - progress
    - flags
    - error
    argTypes:
    - FuEngine*
    - FuEngineRequest*
    - GPtrArray*
    - FuCabinet*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2554
      start: 2416
    functionDepth: 3
    functionLinenumber: 2416
    functionLinenumberEnd: 2554
    functionName: fu_engine_install_releases
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 4
    functionsReached:
    - fu_engine_emit_changed
    - fu_device_get_logical_id
    - g_hash_table_insert
    - fu_engine_publish_release
    - g_object_ref
    - fu_engine_set_emulator_phase
    - fu_engine_composite_prepare
    - g_ptr_array_index
    - g_ptr_array_sort
    - fu_release_get_version
    - fu_progress_set_steps
    - g_prefix_error_literal
    - fu_release_get_priority
    - g_ptr_array_new_with_free_func
    - g_info
    - fu_progress_step_done
    - FWUPD_DEVICE
    - fu_engine_install_release
    - g_warning
    - fu_engine_install_release_version_check
    - fu_progress_get_child
    - fu_progress_set_id
    - g_return_val_if_fail
    - g_strdup
    - fu_engine_composite_cleanup
    - fu_device_list_get_by_id
    - fu_idle_locker_new
    - g_ptr_array_add
    - fu_release_get_device
    - g_steal_pointer
    - fu_engine_update_motd_reset
    - fu_device_get_id
    - fu_device_get_version
    - fwupd_device_set_status
    - GUINT_TO_POINTER
    - fu_device_get_order
    - g_autoptr
    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:2559,1
    - Dst: fu_engine_integrity_new
      Src: /src/fwupd/src/fu-engine.c:2559,1
    - Dst: fu_engine_integrity_to_string
      Src: /src/fwupd/src/fu-engine.c:2561,1
    - Dst: fu_release_add_metadata_item
      Src: /src/fwupd/src/fu-engine.c:2562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - release
    - key
    argTypes:
    - FuEngine*
    - FuRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2564
      start: 2556
    functionDepth: 1
    functionLinenumber: 2556
    functionLinenumberEnd: 2564
    functionName: fu_engine_update_release_integrity
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_integrity_to_string
    - g_autoptr
    - fu_release_add_metadata_item
    - fu_engine_integrity_new
    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:2569,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2570,1
    - Dst: fu_engine_get_report_metadata
      Src: /src/fwupd/src/fu-engine.c:2573,1
    - Dst: fu_release_add_metadata
      Src: /src/fwupd/src/fu-engine.c:2576,1
    - Dst: fu_device_report_metadata_pre
      Src: /src/fwupd/src/fu-engine.c:2577,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine.c:2577,1
    - Dst: fu_release_add_metadata
      Src: /src/fwupd/src/fu-engine.c:2579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - release
    - error
    argTypes:
    - FuEngine*
    - FuRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2566
    functionDepth: 4
    functionLinenumber: 2566
    functionLinenumberEnd: 2581
    functionName: fu_engine_add_release_metadata
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_report_metadata_pre
    - fu_release_get_device
    - fu_release_add_metadata
    - fu_engine_get_report_metadata
    - g_autoptr
    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:2592,1
    - Dst: fu_release_add_metadata
      Src: /src/fwupd/src/fu-engine.c:2593,1
    - Dst: fu_plugin_get_report_metadata
      Src: /src/fwupd/src/fu-engine.c:2593,1
    - Dst: fu_plugin_get_rules
      Src: /src/fwupd/src/fu-engine.c:2596,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:2600,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2601,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:2603,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:2607,1
    - Dst: fu_plugin_get_report_metadata
      Src: /src/fwupd/src/fu-engine.c:2612,1
    - Dst: fwupd_release_add_metadata
      Src: /src/fwupd/src/fu-engine.c:2613,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:2614,1
    - Dst: fu_plugin_get_report_metadata
      Src: /src/fwupd/src/fu-engine.c:2615,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-engine.c:2621,1
    - Dst: fu_engine_update_release_integrity
      Src: /src/fwupd/src/fu-engine.c:2622,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - self
    - release
    - plugin
    - error
    argTypes:
    - FuEngine*
    - FuRelease*
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2626
      start: 2583
    functionDepth: 2
    functionLinenumber: 2583
    functionLinenumberEnd: 2626
    functionName: fu_engine_add_release_plugin_metadata
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_rules
    - g_debug
    - fwupd_release_add_metadata
    - fu_plugin_has_flag
    - fu_plugin_get_report_metadata
    - fu_engine_update_release_integrity
    - fu_release_add_metadata
    - fu_plugin_list_find_by_name
    - g_autoptr
    - FWUPD_RELEASE
    - g_ptr_array_index
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/src/fu-engine.c:2634,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:2635,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2637,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-engine.c:2637,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2638,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/src/fu-engine.c:2641,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine.c:2648,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-engine.c:2649,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-engine.c:2651,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:2652,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-engine.c:2653,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:2658,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-engine.c:2659,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/src/fu-engine.c:2663,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-engine.c:2670,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:2673,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:2673,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-engine.c:2674,1
    - Dst: fu_remote_save_to_filename
      Src: /src/fwupd/src/fu-engine.c:2675,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:2679,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:2680,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-engine.c:2681,1
    - Dst: fwupd_remote_set_title
      Src: /src/fwupd/src/fu-engine.c:2682,1
    - Dst: fwupd_remote_set_metadata_uri
      Src: /src/fwupd/src/fu-engine.c:2683,1
    - Dst: fu_remote_save_to_filename
      Src: /src/fwupd/src/fu-engine.c:2684,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - self
    - fw
    - error
    argTypes:
    - FuEngine*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2628
    functionDepth: 2
    functionLinenumber: 2628
    functionLinenumberEnd: 2685
    functionName: fu_engine_save_into_backup_remote
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_set_metadata_uri
    - fu_context_build_filename
    - g_info
    - fwupd_remote_has_flag
    - fwupd_remote_new
    - fwupd_remote_get_id
    - g_build_filename
    - g_file_test
    - g_strdup_printf
    - fwupd_remote_add_flag
    - fu_bytes_set_contents
    - fu_remote_save_to_filename
    - fwupd_remote_set_title
    - g_autoptr
    - g_compute_checksum_for_bytes
    - fu_remote_list_get_by_id
    - fu_path_mkdir_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_save_into_backup_remote(FuEngine *self, GBytes *fw,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2693,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:2693,1
    - Dst: fu_context_get_path
      Src: /src/fwupd/src/fu-engine.c:2695,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-engine.c:2698,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine.c:2701,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-engine.c:2702,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine.c:2705,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-engine.c:2706,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-engine.c:2709,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:2712,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine.c:2712,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:2714,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-engine.c:2717,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-engine.c:2721,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-engine.c:2722,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2723
      start: 2687
    functionDepth: 1
    functionLinenumber: 2687
    functionLinenumberEnd: 2723
    functionName: fu_engine_create_reboot_required_file
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_string_append
    - g_file_get_contents
    - g_file_test
    - g_strsplit
    - g_string_new
    - fu_context_get_path
    - g_auto
    - g_autoptr
    - g_build_filename
    - g_file_set_contents
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_create_reboot_required_file(FuEngine *self, GError
      **error)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine.c:2748,1
    - Dst: fu_release_get_request
      Src: /src/fwupd/src/fu-engine.c:2749,1
    - Dst: fu_release_get_stream
      Src: /src/fwupd/src/fu-engine.c:2752,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2754,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2755,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2756,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:2758,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:2758,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:2759,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-engine.c:2759,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:2760,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/src/fu-engine.c:2760,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:2761,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:2765,1
    - Dst: fu_engine_request_get_feature_flags
      Src: /src/fwupd/src/fu-engine.c:2774,1
    - Dst: fwupd_release_get_checksums
      Src: /src/fwupd/src/fu-engine.c:2781,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:2781,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-engine.c:2786,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-engine.c:2788,1
    - Dst: fwupd_release_add_checksum
      Src: /src/fwupd/src/fu-engine.c:2791,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:2791,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:2796,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine.c:2796,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2799,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2800,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-engine.c:2801,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2802,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:2802,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine.c:2803,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-engine.c:2806,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine.c:2807,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-engine.c:2807,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:2808,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2812,1
    - Dst: fwupd_release_get_detach_caption
      Src: /src/fwupd/src/fu-engine.c:2814,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:2814,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/src/fu-engine.c:2816,1
    - Dst: fwupd_release_get_detach_image
      Src: /src/fwupd/src/fu-engine.c:2817,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:2817,1
    - Dst: fu_device_set_update_image
      Src: /src/fwupd/src/fu-engine.c:2819,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:2823,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2824,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/src/fu-engine.c:2825,1
    - Dst: fu_engine_save_into_backup_remote
      Src: /src/fwupd/src/fu-engine.c:2828,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:2837,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:2837,1
    - Dst: fu_engine_add_release_metadata
      Src: /src/fwupd/src/fu-engine.c:2842,1
    - Dst: fu_engine_add_release_plugin_metadata
      Src: /src/fwupd/src/fu-engine.c:2844,1
    - Dst: fu_engine_add_release_metadata
      Src: /src/fwupd/src/fu-engine.c:2848,1
    - Dst: fu_engine_add_release_plugin_metadata
      Src: /src/fwupd/src/fu-engine.c:2850,1
    - Dst: fu_history_add_device
      Src: /src/fwupd/src/fu-engine.c:2853,1
    - Dst: fu_engine_install_blob
      Src: /src/fwupd/src/fu-engine.c:2858,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:2865,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:2868,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:2870,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/src/fu-engine.c:2871,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:2872,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:2872,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:2877,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:2877,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:2879,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-engine.c:2882,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2885,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2886,1
    - Dst: fu_engine_create_reboot_required_file
      Src: /src/fwupd/src/fu-engine.c:2887,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:2889,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:2889,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:2890,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:2892,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:2898,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:2899,1
    - Dst: fu_device_get_acquiesce_delay
      Src: /src/fwupd/src/fu-engine.c:2902,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2903,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/src/fu-engine.c:2904,1
    - Dst: fu_engine_wait_for_acquiesce
      Src: /src/fwupd/src/fu-engine.c:2905,1
    - Dst: fu_device_get_acquiesce_delay
      Src: /src/fwupd/src/fu-engine.c:2905,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 96
    argCount: 5
    argNames:
    - self
    - release
    - progress
    - flags
    - error
    argTypes:
    - FuEngine*
    - FuRelease*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2910
      start: 2741
    functionDepth: 6
    functionLinenumber: 2741
    functionLinenumberEnd: 2910
    functionName: fu_engine_install_release
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 6
    functionsReached:
    - fu_device_set_update_image
    - fu_device_get_plugin
    - g_object_ref
    - fwupd_release_get_detach_image
    - fu_device_set_update_state
    - fu_engine_install_blob
    - fu_device_get_id_display
    - g_debug
    - fwupd_release_get_detach_caption
    - fu_engine_save_into_backup_remote
    - g_set_error_literal
    - fu_engine_create_reboot_required_file
    - fu_device_get_update_state
    - FU_IS_RELEASE
    - fu_device_get_update_error
    - g_prefix_error_literal
    - fu_engine_add_release_metadata
    - fu_device_get_acquiesce_delay
    - fu_device_has_flag
    - g_string_new
    - g_propagate_error
    - fu_progress_set_status
    - fu_engine_wait_for_acquiesce
    - fu_device_set_update_error
    - fwupd_release_get_checksums
    - FU_IS_ENGINE
    - fu_plugin_list_find_by_name
    - fu_engine_request_get_feature_flags
    - g_return_val_if_fail
    - fu_input_stream_read_bytes
    - g_strcmp0
    - fu_input_stream_compute_checksum
    - fu_release_get_stream
    - fu_device_list_get_by_id
    - g_steal_pointer
    - fu_release_get_device
    - fu_device_set_update_message
    - fu_release_get_request
    - fu_device_has_private_flag
    - fu_device_get_id
    - g_set_object
    - FU_IS_PROGRESS
    - fwupd_release_add_checksum
    - G_N_ELEMENTS
    - g_string_append_printf
    - fu_engine_add_release_plugin_metadata
    - fu_history_add_device
    - g_autoptr
    - FWUPD_RELEASE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_install_release(FuEngine *self,\n\t\t\t  FuRelease
      *release,\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:2925,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:2925,1
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:2926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2927
      start: 2922
    functionDepth: 1
    functionLinenumber: 2922
    functionLinenumberEnd: 2927
    functionName: fu_engine_get_plugins
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - fu_plugin_list_get_all
    - FU_IS_ENGINE
    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:2944,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:2944,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:2945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - name
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2946
      start: 2941
    functionDepth: 1
    functionLinenumber: 2941
    functionLinenumberEnd: 2946
    functionName: fu_engine_get_plugin_by_name
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_plugin_list_find_by_name
    - FU_IS_ENGINE
    linkageType: ''
    returnType: FuPlugin
    signature: 'FuPlugin *

      fu_engine_get_plugin_by_name(FuEngine *self, const gchar *name, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:2953,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:2953,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:2954,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/src/fu-engine.c:2954,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:2955,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/src/fu-engine.c:2958,1
    - Dst: fu_common_get_memory_size
      Src: /src/fwupd/src/fu-engine.c:2960,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:2961,1
    - Dst: fu_engine_emulator_load
      Src: /src/fwupd/src/fu-engine.c:2968,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuEngine*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2969
      start: 2948
    functionDepth: 1
    functionLinenumber: 2948
    functionLinenumberEnd: 2969
    functionName: fu_engine_emulation_load
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_input_stream_size
    - fu_common_get_memory_size
    - g_set_error_literal
    - G_IS_INPUT_STREAM
    - fu_engine_emulator_load
    - FU_IS_ENGINE
    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:2974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuEngine*
    - GOutputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2975
      start: 2971
    functionDepth: 1
    functionLinenumber: 2971
    functionLinenumberEnd: 2975
    functionName: fu_engine_emulation_save
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    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:2990,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:2994,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:2995,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:2997,1
    - Dst: fu_engine_emulator_load_phase
      Src: /src/fwupd/src/fu-engine.c:2998,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-engine.c:3008,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3009,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:3014,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:3019,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3020
      start: 2987
    functionDepth: 1
    functionLinenumber: 2987
    functionLinenumberEnd: 3020
    functionName: fu_engine_get_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 6
    functionsReached:
    - fu_device_list_wait_for_replug
    - fu_device_list_get_by_id
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_device_has_flag
    - fu_engine_emulator_load_phase
    - g_autoptr
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_engine_get_device(FuEngine *self, const gchar *device_id, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/src/fu-engine.c:3030,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3031,1
    - Dst: fu_device_get_battery_level
      Src: /src/fwupd/src/fu-engine.c:3034,1
    - Dst: fu_device_get_battery_level
      Src: /src/fwupd/src/fu-engine.c:3035,1
    - Dst: fu_device_get_battery_threshold
      Src: /src/fwupd/src/fu-engine.c:3035,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:3036,1
    - Dst: fu_device_get_battery_level
      Src: /src/fwupd/src/fu-engine.c:3040,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-engine.c:3048,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3050,1
    - Dst: fu_device_prepare
      Src: /src/fwupd/src/fu-engine.c:3053,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - self
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3054
      start: 3023
    functionDepth: 1
    functionLinenumber: 3023
    functionLinenumberEnd: 3054
    functionName: fu_engine_device_prepare
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_get_battery_level
    - fu_device_get_battery_threshold
    - fu_device_locker_new
    - FU_DEVICE_GET_CLASS
    - g_prefix_error_literal
    - fu_device_prepare
    - g_autoptr
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/src/fu-engine.c:3064,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3065,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3067,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:3068,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-engine.c:3076,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3078,1
    - Dst: fu_device_cleanup
      Src: /src/fwupd/src/fu-engine.c:3081,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - self
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3082
      start: 3057
    functionDepth: 1
    functionLinenumber: 3057
    functionLinenumberEnd: 3082
    functionName: fu_engine_device_cleanup
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_info
    - fu_device_locker_new
    - FU_DEVICE_GET_CLASS
    - g_prefix_error_literal
    - fu_device_has_flag
    - fu_device_cleanup
    - g_autoptr
    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:3090,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3095,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3096,1
    - Dst: fu_power_state_is_ac
      Src: /src/fwupd/src/fu-engine.c:3097,1
    - Dst: fu_context_get_power_state
      Src: /src/fwupd/src/fu-engine.c:3097,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:3098,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:3108,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3109,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/src/fu-engine.c:3110,1
    - Dst: fu_context_get_battery_threshold
      Src: /src/fwupd/src/fu-engine.c:3111,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/src/fu-engine.c:3112,1
    - Dst: fu_context_get_battery_threshold
      Src: /src/fwupd/src/fu-engine.c:3112,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:3113,1
    - Dst: fu_context_get_battery_threshold
      Src: /src/fwupd/src/fu-engine.c:3118,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 4
    argNames:
    - self
    - device
    - flags
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3124
      start: 3084
    functionDepth: 1
    functionLinenumber: 3084
    functionLinenumberEnd: 3124
    functionName: fu_engine_device_check_power
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_context_get_power_state
    - g_set_error_literal
    - fu_device_has_private_flag
    - fu_context_get_battery_threshold
    - fu_device_has_flag
    - fu_power_state_is_ac
    - fu_context_get_battery_level
    - fu_engine_config_get_ignore_power
    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:3134,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine.c:3137,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3139,1
    - Dst: fu_device_prepare_firmware
      Src: /src/fwupd/src/fu-engine.c:3142,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: 3143
      start: 3126
    functionDepth: 2
    functionLinenumber: 3126
    functionLinenumberEnd: 3143
    functionName: fu_engine_prepare_firmware
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_prepare_firmware
    - g_autoptr
    - g_prefix_error_literal
    - fu_engine_get_device
    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:3152,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3154,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine.c:3157,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3159,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-engine.c:3162,1
    - Dst: fu_engine_device_check_power
      Src: /src/fwupd/src/fu-engine.c:3164,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:3165,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine.c:3169,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:3170,1
    - Dst: fu_engine_device_prepare
      Src: /src/fwupd/src/fu-engine.c:3171,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:3174,1
    - Dst: fu_plugin_runner_prepare
      Src: /src/fwupd/src/fu-engine.c:3175,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:3180,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3181,1
    - Dst: fu_engine_emulator_save_phase
      Src: /src/fwupd/src/fu-engine.c:3182,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-engine.c:3191,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3192,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: 3198
      start: 3145
    functionDepth: 2
    functionLinenumber: 3145
    functionLinenumberEnd: 3198
    functionName: fu_engine_prepare
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_engine_emulator_save_phase
    - fu_device_list_wait_for_replug
    - fu_device_to_string
    - g_info
    - fu_device_add_problem
    - fu_engine_device_prepare
    - fu_plugin_runner_prepare
    - g_prefix_error_literal
    - fu_engine_get_device
    - fu_device_has_flag
    - fu_device_set_update_state
    - fu_plugin_list_get_all
    - fu_engine_device_check_power
    - g_autoptr
    - g_ptr_array_index
    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:3207,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3209,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine.c:3212,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3214,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-engine.c:3217,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine.c:3218,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:3219,1
    - Dst: fu_engine_device_cleanup
      Src: /src/fwupd/src/fu-engine.c:3220,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:3223,1
    - Dst: fu_plugin_runner_cleanup
      Src: /src/fwupd/src/fu-engine.c:3224,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:3229,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3230,1
    - Dst: fu_engine_emulator_save_phase
      Src: /src/fwupd/src/fu-engine.c:3231,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-engine.c:3240,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3241,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: 3247
      start: 3200
    functionDepth: 2
    functionLinenumber: 3200
    functionLinenumberEnd: 3247
    functionName: fu_engine_cleanup
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_engine_emulator_save_phase
    - fu_device_list_wait_for_replug
    - fu_device_to_string
    - g_info
    - g_prefix_error_literal
    - fu_engine_get_device
    - fu_engine_device_cleanup
    - fu_plugin_runner_cleanup
    - fu_device_has_flag
    - fu_device_remove_problem
    - fu_plugin_list_get_all
    - g_autoptr
    - g_ptr_array_index
    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: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_literal
      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_detach
      Src: /src/fwupd/src/fu-engine.c:3282,1
    - Dst: fu_device_get_request_cnt
      Src: /src/fwupd/src/fu-engine.c:3287,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/src/fu-engine.c:3289,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:3291,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:3292,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/src/fu-engine.c:3293,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-engine.c:3297,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:3298,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/src/fu-engine.c:3301,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:3306,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3307,1
    - Dst: fu_engine_emulator_save_phase
      Src: /src/fwupd/src/fu-engine.c:3308,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-engine.c:3317,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3318,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: 3324
      start: 3249
    functionDepth: 2
    functionLinenumber: 3249
    functionLinenumberEnd: 3324
    functionName: fu_engine_detach
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_engine_emulator_save_phase
    - fu_engine_get_device
    - fu_device_get_plugin
    - g_strdup_printf
    - fu_device_get_name
    - fu_device_get_request_cnt
    - fu_plugin_runner_detach
    - fu_device_to_string
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_device_has_flag
    - fu_device_get_update_message
    - fu_device_progress_new
    - g_info
    - fu_device_remove_flag
    - fu_plugin_list_find_by_name
    - g_return_val_if_fail
    - fu_device_list_wait_for_replug
    - fu_device_set_update_message
    - fu_device_poll_locker_new
    - g_autoptr
    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:3331,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3332,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3333,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine.c:3336,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3338,1
    - Dst: fu_device_progress_new
      Src: /src/fwupd/src/fu-engine.c:3341,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:3342,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine.c:3344,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:3345,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:3347,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:3347,1
    - Dst: fu_device_poll_locker_new
      Src: /src/fwupd/src/fu-engine.c:3352,1
    - Dst: fu_plugin_runner_attach
      Src: /src/fwupd/src/fu-engine.c:3356,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:3360,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3361,1
    - Dst: fu_engine_emulator_save_phase
      Src: /src/fwupd/src/fu-engine.c:3362,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-engine.c:3371,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3372,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: 3378
      start: 3326
    functionDepth: 2
    functionLinenumber: 3326
    functionLinenumberEnd: 3378
    functionName: fu_engine_attach
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_engine_emulator_save_phase
    - fu_device_list_wait_for_replug
    - fu_device_to_string
    - g_info
    - g_prefix_error_literal
    - fu_engine_get_device
    - fu_plugin_list_find_by_name
    - fu_device_get_plugin
    - fu_plugin_runner_attach
    - fu_device_poll_locker_new
    - fu_device_has_flag
    - fu_device_progress_new
    - g_autoptr
    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:3383,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine.c:3386,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3388,1
    - Dst: fu_device_set_progress
      Src: /src/fwupd/src/fu-engine.c:3391,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: 3393
      start: 3380
    functionDepth: 2
    functionLinenumber: 3380
    functionLinenumberEnd: 3393
    functionName: fu_engine_set_progress
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_set_progress
    - g_autoptr
    - g_prefix_error_literal
    - fu_engine_get_device
    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:3400,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:3402,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:3402,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:3403,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:3404,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:3407,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine.c:3410,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:3411,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:3413,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:3413,1
    - Dst: fu_plugin_runner_activate
      Src: /src/fwupd/src/fu-engine.c:3416,1
    - Dst: fu_engine_emit_device_changed_safe
      Src: /src/fwupd/src/fu-engine.c:3419,1
    - Dst: fu_engine_emit_changed
      Src: /src/fwupd/src/fu-engine.c:3420,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: 3423
      start: 3395
    functionDepth: 2
    functionLinenumber: 3395
    functionLinenumberEnd: 3423
    functionName: fu_engine_activate
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fu_engine_emit_changed
    - fu_device_to_string
    - g_info
    - fu_device_list_get_by_id
    - fu_device_get_plugin
    - fu_engine_emit_device_changed_safe
    - FU_IS_ENGINE
    - fu_plugin_list_find_by_name
    - g_autoptr
    - fu_plugin_runner_activate
    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:3430,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine.c:3433,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3435,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine.c:3438,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:3439,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:3441,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:3441,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3445,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:3446,1
    - Dst: fu_plugin_runner_reload
      Src: /src/fwupd/src/fu-engine.c:3450,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3451,1
    - Dst: fu_engine_md_refresh_device
      Src: /src/fwupd/src/fu-engine.c:3456,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:3459,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3460,1
    - Dst: fu_engine_emulator_save_phase
      Src: /src/fwupd/src/fu-engine.c:3461,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-engine.c:3470,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3471,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3477
      start: 3425
    functionDepth: 2
    functionLinenumber: 3425
    functionLinenumberEnd: 3477
    functionName: fu_engine_reload
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_engine_emulator_save_phase
    - fu_device_list_wait_for_replug
    - fu_device_to_string
    - g_info
    - g_prefix_error_literal
    - fu_engine_get_device
    - fu_device_get_plugin
    - fu_engine_md_refresh_device
    - fu_device_has_flag
    - fu_plugin_list_find_by_name
    - g_autoptr
    - fu_plugin_runner_reload
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_reload(FuEngine *self, const gchar *device_id, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:3487,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:3489,1
    - Dst: fu_plugin_runner_composite_peek_firmware
      Src: /src/fwupd/src/fu-engine.c:3490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - self
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3499
      start: 3479
    functionDepth: 1
    functionLinenumber: 3479
    functionLinenumberEnd: 3499
    functionName: fu_engine_composite_peek_firmware
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_plugin_runner_composite_peek_firmware
    - g_ptr_array_index
    - fu_plugin_list_get_all
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_composite_peek_firmware(FuEngine *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)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3511,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3512,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3513,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3514,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine.c:3517,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3519,1
    - Dst: fu_device_progress_new
      Src: /src/fwupd/src/fu-engine.c:3522,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:3523,1
    - Dst: fu_engine_composite_peek_firmware
      Src: /src/fwupd/src/fu-engine.c:3526,1
    - Dst: fu_device_poll_locker_new
      Src: /src/fwupd/src/fu-engine.c:3530,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine.c:3534,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:3535,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:3537,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:3537,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/src/fu-engine.c:3540,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3547,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3548,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:3550,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:3551,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:3552,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:3553,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:3554,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:3556,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine.c:3561,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:3562,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3565,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:3566,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/src/fu-engine.c:3567,1
    - Dst: fu_plugin_runner_attach
      Src: /src/fwupd/src/fu-engine.c:3568,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:3569,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:3572,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/src/fu-engine.c:3573,1
    - Dst: fu_engine_cleanup
      Src: /src/fwupd/src/fu-engine.c:3574,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:3575,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:3581,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:3581,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:3586,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3587,1
    - Dst: fu_engine_emulator_save_phase
      Src: /src/fwupd/src/fu-engine.c:3588,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:3597,1
    - Dst: fu_device_list_wait_for_replug
      Src: /src/fwupd/src/fu-engine.c:3601,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3602,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 6
    argNames:
    - self
    - device_id
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3608
      start: 3501
    functionDepth: 3
    functionLinenumber: 3501
    functionLinenumberEnd: 3608
    functionName: fu_engine_write_firmware
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_engine_emulator_save_phase
    - fu_engine_composite_peek_firmware
    - fu_progress_reset
    - fu_engine_get_device
    - fu_device_get_plugin
    - fu_engine_set_emulator_phase
    - fu_device_set_update_state
    - fu_engine_cleanup
    - fu_device_to_string
    - g_debug
    - g_prefix_error_literal
    - fu_plugin_runner_attach
    - fu_device_has_flag
    - fu_device_progress_new
    - g_propagate_error
    - g_info
    - g_warning
    - fu_plugin_list_find_by_name
    - g_return_val_if_fail
    - fu_device_list_wait_for_replug
    - g_steal_pointer
    - fu_device_has_private_flag
    - fu_device_poll_locker_new
    - fu_plugin_runner_write_firmware
    - g_error_matches
    - g_autoptr
    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:3617,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3618,1
    - Dst: fu_device_poll_locker_new
      Src: /src/fwupd/src/fu-engine.c:3621,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-engine.c:3626,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3628,1
    - Dst: fu_device_dump_firmware
      Src: /src/fwupd/src/fu-engine.c:3631,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: 3632
      start: 3610
    functionDepth: 1
    functionLinenumber: 3610
    functionLinenumberEnd: 3632
    functionName: fu_engine_firmware_dump
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_device_locker_new
    - g_prefix_error_literal
    - fu_device_poll_locker_new
    - fu_device_dump_firmware
    - g_autoptr
    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:3641,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3642,1
    - Dst: fu_device_poll_locker_new
      Src: /src/fwupd/src/fu-engine.c:3645,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-engine.c:3650,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3652,1
    - Dst: fu_device_read_firmware
      Src: /src/fwupd/src/fu-engine.c:3655,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: 3656
      start: 3634
    functionDepth: 1
    functionLinenumber: 3634
    functionLinenumberEnd: 3656
    functionName: fu_engine_firmware_read
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_device_locker_new
    - g_prefix_error_literal
    - fu_device_poll_locker_new
    - fu_device_read_firmware
    - g_autoptr
    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: 27
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3670,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3671,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3672,1
    - Dst: fu_release_get_stream
      Src: /src/fwupd/src/fu-engine.c:3675,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:3677,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/src/fu-engine.c:3683,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:3686,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/src/fu-engine.c:3694,1
    - Dst: fu_engine_set_progress
      Src: /src/fwupd/src/fu-engine.c:3697,1
    - Dst: fu_progress_get_steps
      Src: /src/fwupd/src/fu-engine.c:3699,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:3700,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:3701,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:3702,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:3703,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:3704,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:3705,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:3706,1
    - Dst: fu_progress_get_steps
      Src: /src/fwupd/src/fu-engine.c:3707,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:3708,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine.c:3717,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3719,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:3724,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:3725,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/src/fu-engine.c:3726,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3728,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:3729,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-engine.c:3730,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:3734,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:3735,1
    - Dst: fu_engine_detach
      Src: /src/fwupd/src/fu-engine.c:3737,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3739,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3742,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3745,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:3748,1
    - Dst: fu_engine_prepare_firmware
      Src: /src/fwupd/src/fu-engine.c:3749,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3752,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/src/fu-engine.c:3757,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/src/fu-engine.c:3758,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:3758,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/src/fu-engine.c:3759,1
    - Dst: fu_firmware_set_filename
      Src: /src/fwupd/src/fu-engine.c:3760,1
    - Dst: fu_release_get_firmware_basename
      Src: /src/fwupd/src/fu-engine.c:3761,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3763,1
    - Dst: fu_engine_write_firmware
      Src: /src/fwupd/src/fu-engine.c:3766,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3769,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3772,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3775,1
    - Dst: fu_engine_prepare_firmware
      Src: /src/fwupd/src/fu-engine.c:3778,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3781,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/src/fu-engine.c:3786,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/src/fu-engine.c:3787,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:3787,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/src/fu-engine.c:3788,1
    - Dst: fu_firmware_set_filename
      Src: /src/fwupd/src/fu-engine.c:3789,1
    - Dst: fu_release_get_firmware_basename
      Src: /src/fwupd/src/fu-engine.c:3790,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3792,1
    - Dst: fu_engine_detach
      Src: /src/fwupd/src/fu-engine.c:3795,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3797,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3800,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3803,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:3806,1
    - Dst: fu_engine_write_firmware
      Src: /src/fwupd/src/fu-engine.c:3807,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3810,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3813,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3816,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:3820,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:3821,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:3826,1
    - Dst: fu_engine_attach
      Src: /src/fwupd/src/fu-engine.c:3827,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3827,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3828,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3831,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:3834,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:3835,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:3840,1
    - Dst: fu_engine_reload
      Src: /src/fwupd/src/fu-engine.c:3841,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3842,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3845,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine.c:3848,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3850,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:3853,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:3854,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 120
    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: 3861
      start: 3658
    functionDepth: 4
    functionLinenumber: 3658
    functionLinenumberEnd: 3861
    functionName: fu_engine_install_loop
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_attach
    - fu_engine_detach
    - fu_firmware_set_version
    - fu_progress_reset
    - fu_progress_add_flag
    - fu_engine_get_device
    - fu_engine_set_emulator_phase
    - fu_engine_prepare_firmware
    - fu_engine_reload
    - g_debug
    - g_set_error_literal
    - fu_release_get_version
    - g_prefix_error_literal
    - fu_device_has_flag
    - fu_engine_set_progress
    - fu_progress_add_step
    - fu_progress_step_done
    - fu_device_remove_flag
    - fu_progress_get_steps
    - fu_progress_get_child
    - fu_device_remove_private_flag
    - fu_progress_set_id
    - fu_release_get_firmware_basename
    - fu_firmware_set_filename
    - fu_firmware_get_filename
    - fu_release_get_stream
    - fu_input_stream_size
    - fu_device_has_private_flag
    - fu_engine_write_firmware
    - fu_firmware_get_version
    - g_autoptr
    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: fu_device_get_id_display
      Src: /src/fwupd/src/fu-engine.c:3874,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3875,1
    - Dst: g_timer_new
      Src: /src/fwupd/src/fu-engine.c:3875,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3876,1
    - Dst: fu_device_progress_new
      Src: /src/fwupd/src/fu-engine.c:3876,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:3878,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:3881,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:3882,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:3883,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:3884,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:3885,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/src/fu-engine.c:3888,1
    - Dst: g_get_real_time
      Src: /src/fwupd/src/fu-engine.c:3888,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:3891,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:3891,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:3892,1
    - Dst: fu_engine_prepare
      Src: /src/fwupd/src/fu-engine.c:3893,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3893,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3895,1
    - Dst: fu_engine_install_loop
      Src: /src/fwupd/src/fu-engine.c:3902,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3908,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:3913,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3921,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:3924,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/src/fu-engine.c:3925,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/src/fu-engine.c:3925,1
    - Dst: fu_history_modify_device
      Src: /src/fwupd/src/fu-engine.c:3927,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:3928,1
    - Dst: fu_engine_set_emulator_phase
      Src: /src/fwupd/src/fu-engine.c:3934,1
    - Dst: fu_engine_cleanup
      Src: /src/fwupd/src/fu-engine.c:3935,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:3935,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:3937,1
    - Dst: fu_engine_emit_device_changed
      Src: /src/fwupd/src/fu-engine.c:3940,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:3941,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/src/fu-engine.c:3941,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: 3943
      start: 3863
    functionDepth: 6
    functionLinenumber: 3863
    functionLinenumberEnd: 3943
    functionName: fu_engine_install_blob
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - fu_progress_add_flag
    - fu_history_modify_device
    - g_get_real_time
    - fu_engine_install_loop
    - fu_engine_set_emulator_phase
    - fu_device_set_update_state
    - g_timer_elapsed
    - fu_engine_cleanup
    - fu_device_get_id_display
    - g_prefix_error_literal
    - fu_device_progress_new
    - g_info
    - fu_progress_add_step
    - fu_device_set_modified_usec
    - fu_progress_step_done
    - fu_engine_emit_device_changed
    - fu_progress_get_child
    - fu_progress_set_id
    - g_return_val_if_fail
    - g_strdup
    - g_set_error
    - fu_device_get_id
    - fu_device_set_install_duration
    - g_timer_new
    - g_autoptr
    - fu_engine_prepare
    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:3948,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:3951,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3952,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:3953,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-engine.c:3956,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:3958,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:3968,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:3969,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:3970,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:3971,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:3975,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:3979,1
    - Dst: fu_history_get_devices
      Src: /src/fwupd/src/fu-engine.c:3984,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:3988,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:3989,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:3990,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:3991,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:3992,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:3994,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3999
      start: 3945
    functionDepth: 6
    functionLinenumber: 3945
    functionLinenumberEnd: 3999
    functionName: fu_engine_get_item_by_id_fallback_history
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_history_get_devices
    - g_set_error
    - g_set_error_literal
    - g_steal_pointer
    - fu_device_get_update_state
    - fu_device_get_id
    - g_object_ref
    - fu_history_get_device_by_id
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_engine_get_item_by_id_fallback_history(FuEngine *self, const gchar *id, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4004,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4005,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-engine.c:4008,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:4010,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:4011,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:4012,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:4015,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:4015,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:4016,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:4019,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:4019,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - self
    - xpath
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4023
      start: 4001
    functionDepth: 1
    functionLinenumber: 4001
    functionLinenumberEnd: 4023
    functionName: fu_engine_search_query_append
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_steal_pointer
    - g_ptr_array_add
    - fwupd_error_convert
    - xb_query_new_full
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_search_query_append(FuEngine *self, const gchar
      *xpath, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-engine.c:4029,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:4032,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:4032,1
    - Dst: fu_engine_search_query_append
      Src: /src/fwupd/src/fu-engine.c:4033,1
    - Dst: fu_engine_search_query_append
      Src: /src/fwupd/src/fu-engine.c:4035,1
    - Dst: fu_engine_search_query_append
      Src: /src/fwupd/src/fu-engine.c:4037,1
    - Dst: fu_engine_search_query_append
      Src: /src/fwupd/src/fu-engine.c:4041,1
    - Dst: fu_engine_search_query_append
      Src: /src/fwupd/src/fu-engine.c:4046,1
    - Dst: fu_engine_search_query_append
      Src: /src/fwupd/src/fu-engine.c:4051,1
    - Dst: fu_engine_search_query_append
      Src: /src/fwupd/src/fu-engine.c:4056,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4064
      start: 4025
    functionDepth: 2
    functionLinenumber: 4025
    functionLinenumberEnd: 4064
    functionName: fu_engine_search_query_create
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - fu_engine_search_query_append
    - g_ptr_array_add
    - g_ptr_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_search_query_create(FuEngine *self, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4069,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4070,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4071,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4072,1
    - Dst: xb_silo_query
      Src: /src/fwupd/src/fu-engine.c:4075,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:4078,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-engine.c:4081,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-engine.c:4082,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-engine.c:4083,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-engine.c:4084,1
    - Dst: xb_silo_query_build_index
      Src: /src/fwupd/src/fu-engine.c:4087,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:4088,1
    - Dst: xb_silo_query_build_index
      Src: /src/fwupd/src/fu-engine.c:4091,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:4095,1
    - Dst: xb_silo_query_build_index
      Src: /src/fwupd/src/fu-engine.c:4098,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:4102,1
    - Dst: xb_silo_query_build_index
      Src: /src/fwupd/src/fu-engine.c:4105,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:4109,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-engine.c:4115,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:4121,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-engine.c:4127,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:4133,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-engine.c:4135,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:4142,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-engine.c:4146,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:4153,1
    - Dst: fu_engine_search_query_create
      Src: /src/fwupd/src/fu-engine.c:4156,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4161
      start: 4066
    functionDepth: 3
    functionLinenumber: 4066
    functionLinenumberEnd: 4161
    functionName: fu_engine_create_silo_index
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_info
    - g_debug
    - xb_silo_query
    - fwupd_error_convert
    - g_prefix_error_literal
    - xb_silo_query_build_index
    - xb_query_new_full
    - fu_engine_search_query_create
    - g_clear_object
    - g_autoptr
    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:4167,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-engine.c:4168,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:4168,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-engine.c:4169,1
    - Dst: XB_IS_SILO
      Src: /src/fwupd/src/fu-engine.c:4169,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-engine.c:4170,1
    - Dst: fu_engine_create_silo_index
      Src: /src/fwupd/src/fu-engine.c:4171,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:4172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - silo
    argTypes:
    - FuEngine*
    - XbSilo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4173
      start: 4164
    functionDepth: 4
    functionLinenumber: 4164
    functionLinenumberEnd: 4173
    functionName: fu_engine_set_silo
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 33
    functionsReached:
    - XB_IS_SILO
    - g_return_if_fail
    - g_set_object
    - fu_engine_create_silo_index
    - g_warning
    - FU_IS_ENGINE
    - 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:4181,1
    - Dst: xb_builder_node_get_element
      Src: /src/fwupd/src/fu-engine.c:4181,1
    - Dst: xb_builder_node_set_element
      Src: /src/fwupd/src/fu-engine.c:4182,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: 4184
      start: 4175
    functionDepth: 0
    functionLinenumber: 4175
    functionLinenumberEnd: 4184
    functionName: fu_engine_appstream_upgrade_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - xb_builder_node_get_element
    - g_strcmp0
    - 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:4193,1
    - Dst: xb_builder_source_ctx_get_stream
      Src: /src/fwupd/src/fu-engine.c:4194,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4195,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4196,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-engine.c:4200,1
    - Dst: fu_cabinet_get_silo
      Src: /src/fwupd/src/fu-engine.c:4203,1
    - Dst: xb_silo_export
      Src: /src/fwupd/src/fu-engine.c:4206,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/src/fu-engine.c:4209,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:4209,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: 4210
      start: 4186
    functionDepth: 1
    functionLinenumber: 4186
    functionLinenumberEnd: 4210
    functionName: fu_engine_builder_cabinet_adapter_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_build_cabinet_from_stream
    - g_memory_input_stream_new_from_data
    - xb_silo_export
    - fu_cabinet_get_silo
    - FU_ENGINE
    - g_steal_pointer
    - xb_builder_source_ctx_get_stream
    - g_autoptr
    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:4215,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-engine.c:4215,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4216,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-engine.c:4216,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:4218,1
    - Dst: xb_builder_source_add_simple_adapter
      Src: /src/fwupd/src/fu-engine.c:4219,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-engine.c:4227,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:4233,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:4236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - self
    - fn
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4237
      start: 4212
    functionDepth: 1
    functionLinenumber: 4212
    functionLinenumberEnd: 4237
    functionName: fu_engine_create_metadata_builder_source
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - xb_builder_source_add_simple_adapter
    - xb_builder_source_new
    - xb_builder_source_load_file
    - g_info
    - g_steal_pointer
    - fwupd_error_convert
    - g_file_new_for_path
    - g_autoptr
    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:4242,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-engine.c:4246,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:4248,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:4252,1
    - Dst: fu_path_get_files
      Src: /src/fwupd/src/fu-engine.c:4255,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4261,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4262,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4263,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4264,1
    - Dst: g_ascii_strdown
      Src: /src/fwupd/src/fu-engine.c:4265,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-engine.c:4268,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:4269,1
    - Dst: fu_engine_create_metadata_builder_source
      Src: /src/fwupd/src/fu-engine.c:4274,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:4276,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/src/fu-engine.c:4281,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/src/fu-engine.c:4282,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/src/fu-engine.c:4288,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:4290,1
    - Dst: xb_builder_source_set_info
      Src: /src/fwupd/src/fu-engine.c:4294,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-engine.c:4295,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - self
    - builder
    - remote
    - error
    argTypes:
    - FuEngine*
    - XbBuilder*
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4298
      start: 4239
    functionDepth: 2
    functionLinenumber: 4239
    functionLinenumberEnd: 4298
    functionName: fu_engine_create_metadata
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_info
    - fwupd_remote_get_id
    - g_set_error
    - fwupd_remote_get_filename_cache
    - g_str_has_suffix
    - xb_builder_node_insert_text
    - xb_builder_node_new
    - xb_builder_import_source
    - g_ascii_strdown
    - g_warning
    - xb_builder_source_set_info
    - fu_engine_create_metadata_builder_source
    - fu_path_get_files
    - g_autoptr
    - g_ptr_array_index
    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:4305,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4306,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4307,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine.c:4310,1
    - Dst: fu_engine_request_add_flag
      Src: /src/fwupd/src/fu-engine.c:4311,1
    - Dst: fu_engine_request_add_flag
      Src: /src/fwupd/src/fu-engine.c:4312,1
    - Dst: fu_engine_request_set_feature_flags
      Src: /src/fwupd/src/fu-engine.c:4313,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-engine.c:4316,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:4318,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:4319,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-engine.c:4320,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:4321,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-engine.c:4327,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4327,1
    - Dst: fu_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:4328,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine.c:4334,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/src/fu-engine.c:4336,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:4343,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-engine.c:4344,1
    - Dst: fu_engine_emit_device_changed_safe
      Src: /src/fwupd/src/fu-engine.c:4345,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:4351,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:4352,1
    - Dst: fu_engine_emit_device_changed_safe
      Src: /src/fwupd/src/fu-engine.c:4353,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4355
      start: 4300
    functionDepth: 2
    functionLinenumber: 4300
    functionLinenumberEnd: 4355
    functionName: fu_engine_ensure_device_supported
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_engine_request_new
    - fu_device_get_id_display
    - fu_engine_get_releases_for_device
    - FU_RELEASE
    - fu_device_add_private_flag
    - fu_engine_request_add_flag
    - fu_device_remove_flag
    - fu_engine_request_set_feature_flags
    - g_warning
    - g_error_matches
    - fu_device_has_flag
    - fu_release_has_flag
    - fu_engine_emit_device_changed_safe
    - g_autoptr
    - g_ptr_array_index
    - fu_device_remove_private_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:4360,1
    - Dst: fu_engine_get_component_by_guids
      Src: /src/fwupd/src/fu-engine.c:4360,1
    - Dst: fu_engine_ensure_device_supported
      Src: /src/fwupd/src/fu-engine.c:4363,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:4367,1
    - Dst: fu_device_ensure_from_component
      Src: /src/fwupd/src/fu-engine.c:4368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4369
      start: 4357
    functionDepth: 3
    functionLinenumber: 4357
    functionLinenumberEnd: 4369
    functionName: fu_engine_md_refresh_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_engine_get_component_by_guids
    - fu_engine_ensure_device_supported
    - fu_device_has_private_flag
    - fu_device_ensure_from_component
    - g_autoptr
    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:4374,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:4374,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4376,1
    - Dst: fu_engine_md_refresh_device
      Src: /src/fwupd/src/fu-engine.c:4377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4379
      start: 4371
    functionDepth: 4
    functionLinenumber: 4371
    functionLinenumberEnd: 4379
    functionName: fu_engine_md_refresh_devices
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_md_refresh_device
    - fu_device_list_get_active
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_engine_md_refresh_devices(FuEngine *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4388,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4389,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/src/fu-engine.c:4392,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:4394,1
    - Dst: fu_path_glob
      Src: /src/fwupd/src/fu-engine.c:4397,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:4399,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4403,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4404,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-engine.c:4404,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4405,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-engine.c:4405,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:4406,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-engine.c:4407,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:4412,1
    - Dst: xb_builder_source_set_prefix
      Src: /src/fwupd/src/fu-engine.c:4415,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-engine.c:4416,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 4
    argNames:
    - self
    - builder
    - path_kind
    - error
    argTypes:
    - FuEngine*
    - XbBuilder*
    - FuPathKind
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4421
      start: 4381
    functionDepth: 1
    functionLinenumber: 4381
    functionLinenumberEnd: 4421
    functionName: fu_engine_load_metadata_store_local
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - xb_builder_source_load_file
    - xb_builder_source_new
    - g_info
    - g_debug
    - fu_context_build_filename
    - xb_builder_import_source
    - xb_builder_source_set_prefix
    - fwupd_error_convert
    - g_ptr_array_index
    - g_file_new_for_path
    - g_autoptr
    - fu_path_glob
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4427,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4428,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4429,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-engine.c:4429,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-engine.c:4432,1
    - Dst: xb_builder_append_guid
      Src: /src/fwupd/src/fu-engine.c:4436,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-engine.c:4440,1
    - Dst: xb_builder_set_profile_flags
      Src: /src/fwupd/src/fu-engine.c:4441,1
    - Dst: fu_remote_list_get_all
      Src: /src/fwupd/src/fu-engine.c:4447,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4450,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4451,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4452,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4453,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4454,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-engine.c:4454,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4456,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-engine.c:4457,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-engine.c:4459,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-engine.c:4460,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-engine.c:4464,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:4465,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:4465,1
    - Dst: fu_engine_create_metadata
      Src: /src/fwupd/src/fu-engine.c:4466,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:4467,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:4468,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-engine.c:4475,1
    - Dst: xb_builder_source_load_file
      Src: /src/fwupd/src/fu-engine.c:4476,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:4481,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:4482,1
    - Dst: xb_builder_fixup_new
      Src: /src/fwupd/src/fu-engine.c:4488,1
    - Dst: xb_builder_fixup_set_max_depth
      Src: /src/fwupd/src/fu-engine.c:4492,1
    - Dst: xb_builder_source_add_fixup
      Src: /src/fwupd/src/fu-engine.c:4493,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/src/fu-engine.c:4496,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/src/fu-engine.c:4497,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/src/fu-engine.c:4503,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:4505,1
    - Dst: xb_builder_source_set_info
      Src: /src/fwupd/src/fu-engine.c:4509,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-engine.c:4512,1
    - Dst: fu_engine_load_metadata_store_local
      Src: /src/fwupd/src/fu-engine.c:4516,1
    - Dst: fu_engine_load_metadata_store_local
      Src: /src/fwupd/src/fu-engine.c:4521,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4530,1
    - Dst: g_file_new_tmp
      Src: /src/fwupd/src/fu-engine.c:4531,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/src/fu-engine.c:4536,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-engine.c:4543,1
    - Dst: xb_builder_ensure
      Src: /src/fwupd/src/fu-engine.c:4545,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:4547,1
    - Dst: fu_engine_create_silo_index
      Src: /src/fwupd/src/fu-engine.c:4552,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 70
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FuEngine*
    - FuEngineLoadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4553
      start: 4423
    functionDepth: 4
    functionLinenumber: 4423
    functionLinenumberEnd: 4553
    functionName: fu_engine_load_metadata_store
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - xb_builder_source_new
    - fwupd_remote_get_kind
    - fwupd_remote_get_filename_cache
    - xb_builder_node_insert_text
    - fu_engine_create_metadata
    - g_clear_object
    - g_ptr_array_index
    - fu_remote_list_get_all
    - xb_builder_import_source
    - g_prefix_error_literal
    - fu_engine_load_metadata_store_local
    - g_file_new_for_path
    - xb_builder_set_profile_flags
    - g_getenv
    - g_info
    - fwupd_remote_get_id
    - fwupd_remote_has_flag
    - xb_builder_fixup_set_max_depth
    - xb_builder_node_new
    - xb_builder_append_guid
    - g_warning
    - xb_builder_source_add_fixup
    - xb_builder_source_set_info
    - xb_builder_ensure
    - g_file_new_tmp
    - xb_builder_source_load_file
    - fu_context_build_filename
    - xb_builder_fixup_new
    - fu_engine_create_silo_index
    - g_file_test
    - g_autoptr
    - xb_builder_new
    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:4558,1
    - Dst: fu_engine_config_get_p2p_policy
      Src: /src/fwupd/src/fu-engine.c:4559,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-engine.c:4561,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/src/fu-engine.c:4563,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-engine.c:4565,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/src/fu-engine.c:4567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - remote
    argTypes:
    - FuEngine*
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4569
      start: 4555
    functionDepth: 1
    functionLinenumber: 4555
    functionLinenumberEnd: 4569
    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_remove_flag
    - fwupd_remote_add_flag
    - fu_engine_config_get_p2p_policy
    linkageType: ''
    returnType: void
    signature: void fu_engine_remote_list_ensure_p2p_policy_remote(FuEngine *self,
      FwupdRemote *remote)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4574,1
    - Dst: fu_remote_list_get_all
      Src: /src/fwupd/src/fu-engine.c:4574,1
    - Dst: fu_idle_set_timeout
      Src: /src/fwupd/src/fu-engine.c:4576,1
    - Dst: fu_engine_config_get_idle_timeout
      Src: /src/fwupd/src/fu-engine.c:4576,1
    - Dst: fu_engine_config_get_esp_location
      Src: /src/fwupd/src/fu-engine.c:4579,1
    - Dst: fu_context_set_esp_location
      Src: /src/fwupd/src/fu-engine.c:4580,1
    - Dst: fu_engine_config_get_esp_location
      Src: /src/fwupd/src/fu-engine.c:4580,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4584,1
    - Dst: fu_engine_remote_list_ensure_p2p_policy_remote
      Src: /src/fwupd/src/fu-engine.c:4585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - config
    - self
    argTypes:
    - FuEngineConfig*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4587
      start: 4571
    functionDepth: 2
    functionLinenumber: 4571
    functionLinenumberEnd: 4587
    functionName: fu_engine_config_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_remote_list_get_all
    - fu_engine_config_get_esp_location
    - fu_context_set_esp_location
    - fu_idle_set_timeout
    - fu_engine_remote_list_ensure_p2p_policy_remote
    - fu_engine_config_get_idle_timeout
    - g_autoptr
    - g_ptr_array_index
    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:4592,1
    - Dst: fu_engine_load_metadata_store
      Src: /src/fwupd/src/fu-engine.c:4593,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:4594,1
    - Dst: fu_engine_md_refresh_devices
      Src: /src/fwupd/src/fu-engine.c:4597,1
    - Dst: fu_security_attrs_remove_all
      Src: /src/fwupd/src/fu-engine.c:4600,1
    - Dst: fu_engine_emit_changed
      Src: /src/fwupd/src/fu-engine.c:4603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4604
      start: 4589
    functionDepth: 5
    functionLinenumber: 4589
    functionLinenumberEnd: 4604
    functionName: fu_engine_metadata_changed
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_engine_emit_changed
    - fu_engine_load_metadata_store
    - fu_security_attrs_remove_all
    - g_warning
    - g_autoptr
    - fu_engine_md_refresh_devices
    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:4609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - remote_list
    - self
    argTypes:
    - FuRemoteList*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4610
      start: 4606
    functionDepth: 6
    functionLinenumber: 4606
    functionLinenumberEnd: 4610
    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:4615,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-engine.c:4617,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:4618,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:4619,1
    - Dst: fwupd_remote_set_priority
      Src: /src/fwupd/src/fu-engine.c:4620,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-engine.c:4620,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-engine.c:4622,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:4623,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:4624,1
    - Dst: fwupd_remote_set_priority
      Src: /src/fwupd/src/fu-engine.c:4625,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-engine.c:4625,1
    - Dst: fu_engine_remote_list_ensure_p2p_policy_remote
      Src: /src/fwupd/src/fu-engine.c:4629,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - remote_list
    - remote
    - self
    argTypes:
    - FuRemoteList*
    - FwupdRemote*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4630
      start: 4612
    functionDepth: 2
    functionLinenumber: 4612
    functionLinenumberEnd: 4630
    functionName: fu_engine_remote_list_added_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fwupd_remote_get_id
    - fwupd_remote_get_kind
    - fwupd_remote_set_priority
    - fu_engine_config_get_release_priority
    - fu_engine_remote_list_ensure_p2p_policy_remote
    - fwupd_remote_get_priority
    linkageType: ''
    returnType: void
    signature: void fu_engine_remote_list_added_cb(FuRemoteList *remote_list, FwupdRemote
      *remote, FuEngine *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-engine.c:4637,1
    - Dst: fu_jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-engine.c:4637,1
    - Dst: fu_jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-engine.c:4639,1
    - Dst: fu_jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-engine.c:4639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4642
      start: 4632
    functionDepth: 1
    functionLinenumber: 4632
    functionLinenumberEnd: 4642
    functionName: fu_engine_sort_jcat_results_timestamp_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_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:4648,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:4652,1
    - Dst: fu_jcat_result_get_method
      Src: /src/fwupd/src/fu-engine.c:4653,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:4654,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:4658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - results
    - error
    argTypes:
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4663
      start: 4644
    functionDepth: 1
    functionLinenumber: 4644
    functionLinenumberEnd: 4663
    functionName: fu_engine_get_newest_signature_jcat_result
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_sort
    - g_set_error_literal
    - g_object_ref
    - fu_jcat_result_get_method
    - g_ptr_array_index
    linkageType: ''
    returnType: FuJcatResult
    signature: 'FuJcatResult *

      fu_engine_get_newest_signature_jcat_result(GPtrArray *results, GError **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4668,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4669,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4670,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4671,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4672,1
    - Dst: fwupd_jcat_file_new
      Src: /src/fwupd/src/fu-engine.c:4672,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-engine.c:4677,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-engine.c:4677,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-engine.c:4680,1
    - Dst: fwupd_remote_get_filename_cache_sig
      Src: /src/fwupd/src/fu-engine.c:4680,1
    - Dst: fwupd_jcat_file_import_stream
      Src: /src/fwupd/src/fu-engine.c:4683,1
    - Dst: fwupd_jcat_file_get_item_default
      Src: /src/fwupd/src/fu-engine.c:4685,1
    - Dst: fu_engine_config_get_only_trust_pq_signatures
      Src: /src/fwupd/src/fu-engine.c:4690,1
    - Dst: fu_jcat_context_verify_item
      Src: /src/fwupd/src/fu-engine.c:4693,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:4695,1
    - Dst: fu_engine_get_newest_signature_jcat_result
      Src: /src/fwupd/src/fu-engine.c:4700,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - self
    - remote
    - error
    argTypes:
    - FuEngine*
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4701
      start: 4665
    functionDepth: 2
    functionLinenumber: 4665
    functionLinenumberEnd: 4701
    functionName: fu_engine_get_system_jcat_result
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_jcat_context_verify_item
    - fu_bytes_get_contents
    - fwupd_jcat_file_import_stream
    - fwupd_jcat_file_get_item_default
    - fwupd_remote_get_filename_cache
    - fwupd_jcat_file_new
    - fu_engine_get_newest_signature_jcat_result
    - fwupd_error_convert
    - fwupd_remote_get_filename_cache_sig
    - g_autoptr
    - fu_engine_config_get_only_trust_pq_signatures
    - fu_input_stream_from_path
    linkageType: ''
    returnType: FuJcatResult
    signature: 'FuJcatResult *

      fu_engine_get_system_jcat_result(FuEngine *self, FwupdRemote *remote, GError
      **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4710,1
    - Dst: FU_IS_JCAT_RESULT
      Src: /src/fwupd/src/fu-engine.c:4710,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4711,1
    - Dst: FU_IS_JCAT_RESULT
      Src: /src/fwupd/src/fu-engine.c:4711,1
    - Dst: fu_jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-engine.c:4713,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:4714,1
    - Dst: fu_jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-engine.c:4720,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:4721,1
    - Dst: fu_jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-engine.c:4727,1
    - Dst: fu_jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-engine.c:4728,1
    - Dst: fu_jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-engine.c:4729,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:4732,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:4739,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:4747,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - jcat_result
    - jcat_result_old
    - error
    argTypes:
    - FuJcatResult*
    - FuJcatResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4749
      start: 4703
    functionDepth: 1
    functionLinenumber: 4703
    functionLinenumberEnd: 4749
    functionName: fu_engine_validate_result_timestamp
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_info
    - g_set_error
    - g_set_error_literal
    - fu_jcat_result_get_timestamp
    - FU_IS_JCAT_RESULT
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_validate_result_timestamp(FuJcatResult *jcat_result,\n\t\t\t\t
      \   FuJcatResult *jcat_result_old,\n\t\t\t\t    GError **error)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4770,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4771,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4772,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4773,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4774,1
    - Dst: fwupd_jcat_file_new
      Src: /src/fwupd/src/fu-engine.c:4774,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4775,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4776,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4777,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4781,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:4781,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4782,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4783,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4784,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4785,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:4788,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-engine.c:4791,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:4792,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/src/fu-engine.c:4801,1
    - Dst: fwupd_jcat_file_import_stream
      Src: /src/fwupd/src/fu-engine.c:4802,1
    - Dst: fu_engine_config_get_only_trust_pq_signatures
      Src: /src/fwupd/src/fu-engine.c:4806,1
    - Dst: fwupd_jcat_file_get_item_default
      Src: /src/fwupd/src/fu-engine.c:4810,1
    - Dst: fu_jcat_context_verify_item
      Src: /src/fwupd/src/fu-engine.c:4813,1
    - Dst: fu_engine_get_newest_signature_jcat_result
      Src: /src/fwupd/src/fu-engine.c:4822,1
    - Dst: fu_engine_get_system_jcat_result
      Src: /src/fwupd/src/fu-engine.c:4828,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:4830,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:4831,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:4833,1
    - Dst: fu_engine_validate_result_timestamp
      Src: /src/fwupd/src/fu-engine.c:4837,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-engine.c:4842,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-engine.c:4842,1
    - Dst: fwupd_remote_ensure_mtime
      Src: /src/fwupd/src/fu-engine.c:4844,1
    - Dst: fu_engine_ensure_passim_client
      Src: /src/fwupd/src/fu-engine.c:4849,1
    - Dst: passim_client_get_version
      Src: /src/fwupd/src/fu-engine.c:4852,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/src/fu-engine.c:4853,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/src/fu-engine.c:4854,1
    - Dst: fu_engine_config_get_p2p_policy
      Src: /src/fwupd/src/fu-engine.c:4855,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-engine.c:4857,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-engine.c:4857,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4858,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4859,1
    - Dst: passim_item_new
      Src: /src/fwupd/src/fu-engine.c:4859,1
    - Dst: passim_item_set_basename
      Src: /src/fwupd/src/fu-engine.c:4860,1
    - Dst: passim_item_set_bytes
      Src: /src/fwupd/src/fu-engine.c:4861,1
    - Dst: passim_item_set_max_age
      Src: /src/fwupd/src/fu-engine.c:4862,1
    - Dst: fwupd_remote_get_refresh_interval
      Src: /src/fwupd/src/fu-engine.c:4862,1
    - Dst: passim_item_set_share_limit
      Src: /src/fwupd/src/fu-engine.c:4863,1
    - Dst: passim_client_publish
      Src: /src/fwupd/src/fu-engine.c:4864,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:4865,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:4866,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:4870,1
    - Dst: passim_item_get_hash
      Src: /src/fwupd/src/fu-engine.c:4870,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-engine.c:4876,1
    - Dst: fwupd_remote_get_filename_cache_sig
      Src: /src/fwupd/src/fu-engine.c:4876,1
    - Dst: fu_engine_load_metadata_store
      Src: /src/fwupd/src/fu-engine.c:4878,1
    - Dst: fu_engine_md_refresh_devices
      Src: /src/fwupd/src/fu-engine.c:4882,1
    - Dst: fu_security_attrs_remove_all
      Src: /src/fwupd/src/fu-engine.c:4885,1
    - Dst: fu_engine_emit_changed
      Src: /src/fwupd/src/fu-engine.c:4888,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 81
    argCount: 5
    argNames:
    - self
    - remote_id
    - bytes_raw
    - bytes_sig
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GBytes*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4890
      start: 4763
    functionDepth: 5
    functionLinenumber: 4763
    functionLinenumberEnd: 4890
    functionName: fu_engine_update_metadata_bytes
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - fu_engine_emit_changed
    - fwupd_jcat_file_get_item_default
    - g_memory_input_stream_new_from_bytes
    - fwupd_remote_get_filename_cache
    - fu_engine_config_get_p2p_policy
    - fwupd_remote_ensure_mtime
    - fu_jcat_context_verify_item
    - passim_client_publish
    - fu_engine_ensure_passim_client
    - g_debug
    - fwupd_remote_get_password
    - fu_bytes_set_contents
    - passim_item_get_hash
    - fwupd_remote_get_refresh_interval
    - g_path_get_basename
    - g_info
    - fwupd_remote_has_flag
    - fwupd_remote_get_username
    - fu_engine_validate_result_timestamp
    - g_warning
    - passim_item_set_bytes
    - fwupd_remote_get_filename_cache_sig
    - FU_IS_ENGINE
    - fu_engine_config_get_only_trust_pq_signatures
    - passim_item_set_basename
    - fu_engine_load_metadata_store
    - passim_client_get_version
    - g_return_val_if_fail
    - passim_item_set_share_limit
    - fu_engine_md_refresh_devices
    - passim_item_set_max_age
    - fwupd_jcat_file_import_stream
    - fu_engine_get_system_jcat_result
    - fu_security_attrs_remove_all
    - g_set_error
    - fwupd_jcat_file_new
    - passim_item_new
    - fu_engine_get_newest_signature_jcat_result
    - g_error_matches
    - g_autoptr
    - fu_remote_list_get_by_id
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4914,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4915,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4916,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4917,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4919,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:4919,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4920,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4921,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4922,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4923,1
    - Dst: fu_unix_seekable_input_stream_new
      Src: /src/fwupd/src/fu-engine.c:4926,1
    - Dst: fu_unix_seekable_input_stream_new
      Src: /src/fwupd/src/fu-engine.c:4929,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/src/fu-engine.c:4935,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/src/fu-engine.c:4941,1
    - Dst: fu_engine_update_metadata_bytes
      Src: /src/fwupd/src/fu-engine.c:4946,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:4948,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - self
    - remote_id
    - fd
    - fd_sig
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - gint
    - gint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4954
      start: 4906
    functionDepth: 6
    functionLinenumber: 4906
    functionLinenumberEnd: 4954
    functionName: fu_engine_update_metadata
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_unix_seekable_input_stream_new
    - fu_input_stream_read_bytes
    - fu_engine_update_metadata_bytes
    - g_set_error_literal
    - FU_IS_ENGINE
    - g_autoptr
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4969,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-engine.c:4969,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4972,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:4972,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4973,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/src/fu-engine.c:4973,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:4974,1
    - Dst: fu_engine_config_get_only_trust_pq_signatures
      Src: /src/fwupd/src/fu-engine.c:4977,1
    - Dst: fu_engine_set_status
      Src: /src/fwupd/src/fu-engine.c:4981,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/src/fu-engine.c:4982,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-engine.c:4982,1
    - Dst: fu_engine_config_get_archive_size_max
      Src: /src/fwupd/src/fu-engine.c:4983,1
    - Dst: fu_cabinet_set_jcat_context
      Src: /src/fwupd/src/fu-engine.c:4984,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/src/fu-engine.c:4985,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-engine.c:4985,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:4987,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuEngine*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4988
      start: 4966
    functionDepth: 1
    functionLinenumber: 4966
    functionLinenumberEnd: 4988
    functionName: fu_engine_build_cabinet_from_stream
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 10
    functionsReached:
    - g_return_val_if_fail
    - fu_cabinet_set_jcat_context
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - g_steal_pointer
    - fu_cabinet_new
    - G_IS_INPUT_STREAM
    - fu_engine_set_status
    - fu_firmware_set_size_max
    - FU_IS_ENGINE
    - fu_engine_config_get_archive_size_max
    - fu_engine_config_get_only_trust_pq_signatures
    - g_autoptr
    linkageType: ''
    returnType: FuCabinet
    signature: 'FuCabinet *

      fu_engine_build_cabinet_from_stream(FuEngine *self, GInputStream *stream, GError
      **error)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4998,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:4999,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine.c:4999,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5000,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5001,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5002,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5003,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5004,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5005,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine.c:5007,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-engine.c:5008,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:5010,1
    - Dst: XB_NODE
      Src: /src/fwupd/src/fu-engine.c:5018,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5018,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5020,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine.c:5023,1
    - Dst: fu_device_list_get_by_guid
      Src: /src/fwupd/src/fu-engine.c:5026,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/src/fu-engine.c:5028,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/src/fu-engine.c:5030,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine.c:5034,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/src/fu-engine.c:5036,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-engine.c:5037,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5038,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-engine.c:5046,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5049,1
    - Dst: fu_release_add_tag
      Src: /src/fwupd/src/fu-engine.c:5050,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine.c:5050,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-engine.c:5055,1
    - Dst: fu_device_set_details_url
      Src: /src/fwupd/src/fu-engine.c:5057,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine.c:5060,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:5061,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine.c:5064,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine.c:5065,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-engine.c:5066,1
    - Dst: xb_node_get_silo
      Src: /src/fwupd/src/fu-engine.c:5066,1
    - Dst: xb_node_query_first_full
      Src: /src/fwupd/src/fu-engine.c:5072,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:5074,1
    - Dst: fu_engine_load_release
      Src: /src/fwupd/src/fu-engine.c:5081,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/src/fu-engine.c:5090,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/src/fu-engine.c:5091,1
    - Dst: fu_device_add_release
      Src: /src/fwupd/src/fu-engine.c:5096,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5096,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5097,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 63
    argCount: 5
    argNames:
    - self
    - request
    - cabinet
    - component
    - error
    argTypes:
    - FuEngine*
    - FuEngineRequest*
    - FuCabinet*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5098
      start: 4990
    functionDepth: 5
    functionLinenumber: 4990
    functionLinenumberEnd: 5098
    functionName: fu_engine_get_result_from_component
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_has_inhibit
    - fu_device_incorporate
    - xb_node_get_silo
    - fu_device_get_guids
    - xb_node_get_attr
    - g_ptr_array_index
    - fu_device_new
    - fu_device_set_details_url
    - fu_device_add_instance_id
    - g_set_error_literal
    - fu_device_inhibit
    - xb_query_new_full
    - xb_node_query_first_full
    - fu_device_list_get_by_guid
    - fu_engine_load_release
    - fu_release_new
    - fu_release_set_device
    - fu_device_convert_instance_ids
    - xb_node_query
    - XB_NODE
    - FWUPD_RELEASE
    - xb_node_query_text
    - fu_release_add_tag
    - g_set_error
    - g_steal_pointer
    - fu_device_add_release
    - g_autoptr
    - xb_node_get_text
    - fu_release_set_request
    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:5105,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:5106,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:5108,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:5109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5112
      start: 5100
    functionDepth: 1
    functionLinenumber: 5100
    functionLinenumberEnd: 5112
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5137,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5138,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5139,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:5139,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5140,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5141,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5143,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:5143,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5144,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/src/fu-engine.c:5144,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5145,1
    - Dst: fu_engine_build_cabinet_from_stream
      Src: /src/fwupd/src/fu-engine.c:5147,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:5149,1
    - Dst: fu_cabinet_get_components
      Src: /src/fwupd/src/fu-engine.c:5152,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-engine.c:5157,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-engine.c:5159,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:5162,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5162,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5167,1
    - Dst: fu_engine_get_releases_for_container_checksum
      Src: /src/fwupd/src/fu-engine.c:5168,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:5174,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5176,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5178,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine.c:5178,1
    - Dst: fu_engine_get_result_from_component
      Src: /src/fwupd/src/fu-engine.c:5180,1
    - Dst: fu_device_add_release
      Src: /src/fwupd/src/fu-engine.c:5183,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5183,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5186,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-engine.c:5188,1
    - Dst: fu_release_set_remote_id
      Src: /src/fwupd/src/fu-engine.c:5192,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:5193,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5198,1
    - Dst: fu_release_add_checksum
      Src: /src/fwupd/src/fu-engine.c:5199,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:5201,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-engine.c:5206,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5208,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 4
    argNames:
    - self
    - request
    - stream
    - error
    argTypes:
    - FuEngine*
    - FuEngineRequest*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5209
      start: 5127
    functionDepth: 6
    functionLinenumber: 5127
    functionLinenumberEnd: 5209
    functionName: fu_engine_get_details
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 4
    functionsReached:
    - fu_device_add_flag
    - fu_engine_build_cabinet_from_stream
    - fu_engine_get_result_from_component
    - fu_cabinet_get_components
    - g_ptr_array_index
    - g_ptr_array_sort
    - g_prefix_error_literal
    - fu_release_set_remote_id
    - g_ptr_array_new_with_free_func
    - fu_release_new
    - fu_release_add_checksum
    - FU_IS_ENGINE
    - g_return_val_if_fail
    - xb_node_query_text
    - fu_engine_get_releases_for_container_checksum
    - fu_input_stream_compute_checksum
    - g_steal_pointer
    - g_ptr_array_add
    - fu_device_add_release
    - G_IS_INPUT_STREAM
    - G_N_ELEMENTS
    - g_autoptr
    - FWUPD_RELEASE
    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:5216,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-engine.c:5217,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:5218,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine.c:5219,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:5225,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:5227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5230
      start: 5211
    functionDepth: 1
    functionLinenumber: 5211
    functionLinenumberEnd: 5230
    functionName: fu_engine_sort_devices_by_priority_name
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_get_priority
    - g_strcmp0
    - fu_device_get_name
    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:5244,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5246,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:5246,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5247,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:5249,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5251,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-engine.c:5257,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5259
      start: 5241
    functionDepth: 1
    functionLinenumber: 5241
    functionLinenumberEnd: 5259
    functionName: fu_engine_get_devices
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 23
    functionsReached:
    - g_return_val_if_fail
    - g_ptr_array_sort
    - g_set_error_literal
    - g_steal_pointer
    - FU_IS_ENGINE
    - fu_device_list_get_active
    - g_autoptr
    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:5274,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5275,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:5278,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:5279,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5281,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-engine.c:5282,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:5283,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:5283,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:5288,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - guid
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5298
      start: 5271
    functionDepth: 1
    functionLinenumber: 5271
    functionLinenumberEnd: 5298
    functionName: fu_engine_get_devices_by_guid
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - fu_device_has_guid
    - g_ptr_array_add
    - g_steal_pointer
    - g_object_ref
    - g_autoptr
    - fu_device_list_get_active
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    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:5313,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5314,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:5317,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:5318,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5320,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:5321,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/src/fu-engine.c:5321,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:5322,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:5322,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:5327,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5336,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - composite_id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5337
      start: 5310
    functionDepth: 1
    functionLinenumber: 5310
    functionLinenumberEnd: 5337
    functionName: fu_engine_get_devices_by_composite_id
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - g_strcmp0
    - g_set_error
    - g_steal_pointer
    - g_ptr_array_add
    - g_object_ref
    - g_autoptr
    - fu_device_get_composite_id
    - fu_device_list_get_active
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    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:5343,1
    - Dst: fu_engine_get_host_security_id
      Src: /src/fwupd/src/fu-engine.c:5344,1
    - Dst: fu_engine_ensure_security_attrs
      Src: /src/fwupd/src/fu-engine.c:5347,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/src/fu-engine.c:5350,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5352,1
    - Dst: fwupd_security_attr_result_to_string
      Src: /src/fwupd/src/fu-engine.c:5354,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-engine.c:5354,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/src/fu-engine.c:5355,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-engine.c:5355,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/src/fu-engine.c:5359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5360
      start: 5340
    functionDepth: 1
    functionLinenumber: 5340
    functionLinenumberEnd: 5360
    functionName: fu_engine_get_history_set_hsi_attrs
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_get_result
    - fwupd_security_attr_result_to_string
    - fwupd_security_attr_get_appstream_id
    - fu_engine_ensure_security_attrs
    - fu_engine_get_host_security_id
    - fu_device_set_metadata
    - g_autoptr
    - fu_security_attrs_get_all
    - g_ptr_array_index
    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:5369,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5371,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-engine.c:5373,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:5375,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:5376,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-engine.c:5381,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5383,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:5389,1
    - Dst: fwupd_release_get_appstream_id
      Src: /src/fwupd/src/fu-engine.c:5389,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5390,1
    - Dst: fwupd_release_get_appstream_id
      Src: /src/fwupd/src/fu-engine.c:5392,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine.c:5396,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5396,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:5402,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:5407,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - self
    - device
    - rel
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5409
      start: 5363
    functionDepth: 4
    functionLinenumber: 5363
    functionLinenumberEnd: 5409
    functionName: fu_engine_fixup_history_device_for_rel
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - xb_node_query_text
    - g_strcmp0
    - fwupd_release_get_appstream_id
    - g_debug
    - FU_RELEASE
    - g_set_error_literal
    - fu_device_get_release_default
    - g_prefix_error_literal
    - fwupd_error_convert
    - xb_node_query_first
    - fu_release_load
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_fixup_history_device_for_rel(FuEngine *self,\n\t\t\t\t
      \      FuDevice *device,\n\t\t\t\t       XbNode *rel,\n\t\t\t\t       GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5417,1
    - Dst: fu_engine_get_releases_for_container_checksum
      Src: /src/fwupd/src/fu-engine.c:5419,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5423,1
    - Dst: fu_engine_fixup_history_device_for_rel
      Src: /src/fwupd/src/fu-engine.c:5424,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:5426,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - self
    - device
    - csum
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5432
      start: 5411
    functionDepth: 5
    functionLinenumber: 5411
    functionLinenumberEnd: 5432
    functionName: fu_engine_fixup_history_device_for_csum
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_releases_for_container_checksum
    - fu_engine_fixup_history_device_for_rel
    - fu_device_has_flag
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_fixup_history_device_for_csum(FuEngine *self,\n\t\t\t\t\tFuDevice
      *device,\n\t\t\t\t\tconst gchar *csum,\n\t\t\t\t\tGError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-engine.c:5441,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5443,1
    - Dst: fwupd_release_get_checksums
      Src: /src/fwupd/src/fu-engine.c:5451,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5453,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5460,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5461,1
    - Dst: fu_engine_fixup_history_device_for_csum
      Src: /src/fwupd/src/fu-engine.c:5462,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:5464,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5470
      start: 5434
    functionDepth: 6
    functionLinenumber: 5434
    functionLinenumberEnd: 5470
    functionName: fu_engine_fixup_history_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error_literal
    - fu_device_get_release_default
    - fu_engine_fixup_history_device_for_csum
    - fwupd_release_get_checksums
    - fu_device_has_flag
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_fixup_history_device(FuEngine *self, FuDevice *device,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5484,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5485,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:5486,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5488,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:5488,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5489,1
    - Dst: fu_history_get_devices
      Src: /src/fwupd/src/fu-engine.c:5491,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5495,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:5496,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:5498,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:5498,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5501,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5508,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/src/fu-engine.c:5509,1
    - Dst: fu_engine_get_history_set_hsi_attrs
      Src: /src/fwupd/src/fu-engine.c:5510,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5516,1
    - Dst: fu_engine_fixup_history_device
      Src: /src/fwupd/src/fu-engine.c:5517,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5521,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5522
      start: 5481
    functionDepth: 7
    functionLinenumber: 5481
    functionLinenumberEnd: 5522
    functionName: fu_engine_get_history
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fu_engine_fixup_history_device
    - fu_history_get_devices
    - fu_engine_get_history_set_hsi_attrs
    - g_set_error_literal
    - g_steal_pointer
    - g_ptr_array_add
    - g_object_ref
    - fu_device_has_private_flag_quark
    - fu_device_has_flag
    - g_autoptr
    - FU_IS_ENGINE
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_engine_get_history(FuEngine *self, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5536,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5538,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:5538,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5539,1
    - Dst: fu_remote_list_get_all
      Src: /src/fwupd/src/fu-engine.c:5541,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5543,1
    - Dst: g_ptr_array_copy
      Src: /src/fwupd/src/fu-engine.c:5551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5552
      start: 5533
    functionDepth: 1
    functionLinenumber: 5533
    functionLinenumberEnd: 5552
    functionName: fu_engine_get_remotes
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - fu_remote_list_get_all
    - g_set_error_literal
    - g_ptr_array_copy
    - FU_IS_ENGINE
    - g_autoptr
    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:5567,1
    - Dst: fu_engine_get_remotes
      Src: /src/fwupd/src/fu-engine.c:5569,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5574,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:5575,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-engine.c:5575,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:5579,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - remote_id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5582
      start: 5564
    functionDepth: 2
    functionLinenumber: 5564
    functionLinenumberEnd: 5582
    functionName: fu_engine_get_remote_by_id
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 7
    functionsReached:
    - fu_engine_get_remotes
    - g_strcmp0
    - fwupd_remote_get_id
    - g_set_error
    - g_autoptr
    - g_ptr_array_index
    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:5587,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5588,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5589,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:5593,1
    - Dst: fu_release_get_branch
      Src: /src/fwupd/src/fu-engine.c:5593,1
    - Dst: fu_release_get_branch
      Src: /src/fwupd/src/fu-engine.c:5593,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine.c:5598,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5598,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5599,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:5600,1
    - Dst: fu_release_compare
      Src: /src/fwupd/src/fu-engine.c:5605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - a
    - b
    - user_data
    argTypes:
    - gconstpointer
    - gconstpointer
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5606
      start: 5584
    functionDepth: 2
    functionLinenumber: 5584
    functionLinenumberEnd: 5606
    functionName: fu_engine_sort_releases_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - FU_RELEASE
    - fu_release_get_version
    - fu_version_compare
    - FU_DEVICE
    - fu_release_compare
    - fu_release_get_branch
    - fu_device_get_version_format
    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:5611,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5615,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:5616,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-engine.c:5617,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - rel
    argTypes:
    - FuEngine*
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5621
      start: 5608
    functionDepth: 1
    functionLinenumber: 5608
    functionLinenumberEnd: 5621
    functionName: fu_engine_check_release_is_approved
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_info
    - g_hash_table_lookup
    - fwupd_release_get_checksums
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_check_release_is_approved(FuEngine *self, FwupdRelease
      *rel)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:5632,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5633,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5634,1
    - Dst: xb_node_query
      Src: /src/fwupd/src/fu-engine.c:5640,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:5642,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:5644,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:5646,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5646,1
    - Dst: fu_engine_request_get_feature_flags
      Src: /src/fwupd/src/fu-engine.c:5649,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5651,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5659,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine.c:5659,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5660,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine.c:5663,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine.c:5664,1
    - Dst: fu_engine_load_release
      Src: /src/fwupd/src/fu-engine.c:5665,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5672,1
    - Dst: fwupd_release_get_install_duration
      Src: /src/fwupd/src/fu-engine.c:5677,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5677,1
    - Dst: fwupd_release_set_install_duration
      Src: /src/fwupd/src/fu-engine.c:5678,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5678,1
    - Dst: fu_device_get_install_duration
      Src: /src/fwupd/src/fu-engine.c:5679,1
    - Dst: fwupd_release_get_locations
      Src: /src/fwupd/src/fu-engine.c:5683,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5683,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-engine.c:5685,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-engine.c:5685,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5686,1
    - Dst: fu_release_get_checksums
      Src: /src/fwupd/src/fu-engine.c:5689,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-engine.c:5691,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-engine.c:5691,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5692,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:5697,1
    - Dst: fu_release_get_branch
      Src: /src/fwupd/src/fu-engine.c:5697,1
    - Dst: fu_device_get_branch
      Src: /src/fwupd/src/fu-engine.c:5697,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:5699,1
    - Dst: fu_release_get_branch
      Src: /src/fwupd/src/fu-engine.c:5700,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5701,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-engine.c:5704,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine.c:5708,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5708,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:5709,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-engine.c:5712,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-engine.c:5714,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/src/fu-engine.c:5717,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine.c:5718,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:5718,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/src/fu-engine.c:5719,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-engine.c:5721,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-engine.c:5725,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5725,1
    - Dst: fu_engine_get_remote_by_id
      Src: /src/fwupd/src/fu-engine.c:5727,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-engine.c:5729,1
    - Dst: fu_engine_check_release_is_approved
      Src: /src/fwupd/src/fu-engine.c:5730,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5730,1
    - Dst: fu_release_add_flag
      Src: /src/fwupd/src/fu-engine.c:5731,1
    - Dst: fwupd_release_get_update_message
      Src: /src/fwupd/src/fu-engine.c:5736,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5736,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/src/fu-engine.c:5737,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/src/fu-engine.c:5738,1
    - Dst: fwupd_release_get_update_image
      Src: /src/fwupd/src/fu-engine.c:5739,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5739,1
    - Dst: fu_device_get_update_image
      Src: /src/fwupd/src/fu-engine.c:5740,1
    - Dst: fu_device_set_update_image
      Src: /src/fwupd/src/fu-engine.c:5741,1
    - Dst: fu_release_get_update_request_id
      Src: /src/fwupd/src/fu-engine.c:5742,1
    - Dst: fu_device_get_update_request_id
      Src: /src/fwupd/src/fu-engine.c:5743,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/src/fu-engine.c:5744,1
    - Dst: fu_device_set_update_request_id
      Src: /src/fwupd/src/fu-engine.c:5746,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:5750,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5750,1
    - Dst: fu_engine_request_has_flag
      Src: /src/fwupd/src/fu-engine.c:5753,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 74
    argCount: 6
    argNames:
    - self
    - request
    - device
    - component
    - releases
    - error
    argTypes:
    - FuEngine*
    - FuEngineRequest*
    - FuDevice*
    - XbNode*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5760
      start: 5623
    functionDepth: 5
    functionLinenumber: 5623
    functionLinenumberEnd: 5760
    functionName: fu_engine_add_releases_for_device_component
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_to_string
    - FWUPD_CODEC
    - fu_device_set_update_image
    - fu_device_get_branch
    - fu_engine_get_remote_by_id
    - fu_device_get_version_lowest
    - g_ptr_array_index
    - fwupd_release_get_remote_id
    - g_debug
    - fwupd_release_get_update_image
    - fu_release_get_version
    - fu_release_get_checksums
    - fu_engine_request_has_flag
    - fu_release_add_flag
    - fu_device_get_update_message
    - g_propagate_error
    - fu_device_set_update_request_id
    - fu_device_get_version_format
    - fu_engine_load_release
    - g_info
    - fwupd_release_get_install_duration
    - fwupd_remote_has_flag
    - fu_release_new
    - fu_release_set_device
    - fwupd_release_get_locations
    - xb_node_query
    - fu_engine_check_release_is_approved
    - fwupd_release_get_update_message
    - fu_engine_request_get_feature_flags
    - fu_device_get_install_duration
    - g_strcmp0
    - fwupd_release_set_install_duration
    - g_steal_pointer
    - g_ptr_array_add
    - fu_version_compare
    - fu_device_set_update_message
    - fu_device_get_update_image
    - fu_device_get_version
    - fu_device_add_request_flag
    - g_error_matches
    - fu_release_get_update_request_id
    - fu_device_get_update_request_id
    - g_autoptr
    - FWUPD_RELEASE
    - fu_release_get_branch
    - fu_release_set_request
    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: 5768
      start: 5762
    functionDepth: 0
    functionLinenumber: 5762
    functionLinenumberEnd: 5768
    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:5777,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5778,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5782,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:5790,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:5791,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:5792,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5794,1
    - Dst: fu_engine_request_has_feature_flag
      Src: /src/fwupd/src/fu-engine.c:5803,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:5804,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5805,1
    - Dst: fu_engine_request_has_feature_flag
      Src: /src/fwupd/src/fu-engine.c:5813,1
    - Dst: fu_device_has_request_flag
      Src: /src/fwupd/src/fu-engine.c:5814,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5815,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-engine.c:5823,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:5824,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5826,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5827,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5828,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:5829,1
    - Dst: XB_QUERY_CONTEXT_INIT
      Src: /src/fwupd/src/fu-engine.c:5829,1
    - Dst: xb_query_context_set_flags
      Src: /src/fwupd/src/fu-engine.c:5831,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/src/fu-engine.c:5832,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/src/fu-engine.c:5832,1
    - Dst: xb_silo_query_with_context
      Src: /src/fwupd/src/fu-engine.c:5833,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5838,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5843,1
    - Dst: XB_NODE
      Src: /src/fwupd/src/fu-engine.c:5845,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5845,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5846,1
    - Dst: fu_engine_add_releases_for_device_component
      Src: /src/fwupd/src/fu-engine.c:5847,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5853,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:5857,1
    - Dst: fu_engine_request_has_flag
      Src: /src/fwupd/src/fu-engine.c:5860,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:5866,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:5867,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:5868,1
    - Dst: fu_engine_get_branch_fallback
      Src: /src/fwupd/src/fu-engine.c:5868,1
    - Dst: fu_device_get_branch
      Src: /src/fwupd/src/fu-engine.c:5868,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:5870,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5870,1
    - Dst: fu_engine_get_branch_fallback
      Src: /src/fwupd/src/fu-engine.c:5872,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-engine.c:5872,1
    - Dst: g_ptr_array_find_with_equal_func
      Src: /src/fwupd/src/fu-engine.c:5873,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:5875,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:5875,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:5878,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5882,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5888,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 64
    argCount: 4
    argNames:
    - self
    - request
    - device
    - error
    argTypes:
    - FuEngine*
    - FuEngineRequest*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5889
      start: 5770
    functionDepth: 6
    functionLinenumber: 5770
    functionLinenumberEnd: 5889
    functionName: fu_engine_get_releases_for_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 7
    functionsReached:
    - fu_device_add_flag
    - fu_device_get_branch
    - fu_engine_request_has_feature_flag
    - fu_device_get_guids
    - xb_query_context_get_bindings
    - xb_silo_query_with_context
    - g_auto
    - fu_engine_get_branch_fallback
    - g_ptr_array_index
    - g_debug
    - g_set_error_literal
    - fu_engine_request_has_flag
    - fu_engine_add_releases_for_device_component
    - fu_device_has_flag
    - g_ptr_array_new_with_free_func
    - xb_value_bindings_bind_str
    - XB_NODE
    - fu_device_has_request_flag
    - fwupd_release_get_branch
    - g_ptr_array_find_with_equal_func
    - g_strdup
    - g_steal_pointer
    - g_ptr_array_add
    - fu_device_has_private_flag
    - fu_device_get_version
    - xb_query_context_set_flags
    - g_autoptr
    - FWUPD_RELEASE
    - XB_QUERY_CONTEXT_INIT
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5904,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:5905,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:5906,1
    - Dst: XB_QUERY_CONTEXT_INIT
      Src: /src/fwupd/src/fu-engine.c:5906,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5908,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:5908,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5909,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5910,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/src/fu-engine.c:5913,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/src/fu-engine.c:5913,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5915,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5916,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5917,1
    - Dst: xb_silo_query_with_context
      Src: /src/fwupd/src/fu-engine.c:5920,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:5922,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:5923,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:5925,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5925,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine.c:5926,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5930,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine.c:5930,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5931,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine.c:5932,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:5939,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5939,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:5944,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - self
    - token
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5945
      start: 5901
    functionDepth: 4
    functionLinenumber: 5901
    functionLinenumberEnd: 5945
    functionName: fu_engine_search
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_ptr_array_index
    - xb_silo_query_with_context
    - fu_release_new
    - g_steal_pointer
    - g_ptr_array_add
    - fwupd_error_convert
    - fu_release_load
    - xb_value_bindings_bind_str
    - xb_query_context_get_bindings
    - FU_IS_ENGINE
    - g_error_matches
    - g_autoptr
    - g_auto
    - g_propagate_error
    - g_ptr_array_new_with_free_func
    - XB_QUERY_CONTEXT_INIT
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_engine_search(FuEngine *self, const gchar *token, GError **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5964,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5965,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5966,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5968,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:5968,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5969,1
    - Dst: FU_IS_ENGINE_REQUEST
      Src: /src/fwupd/src/fu-engine.c:5969,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5970,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:5971,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:5974,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-engine.c:5979,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:5983,1
    - Dst: g_ptr_array_sort_with_data
      Src: /src/fwupd/src/fu-engine.c:5989,1
    - Dst: fu_engine_config_get_release_dedupe
      Src: /src/fwupd/src/fu-engine.c:5992,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:5993,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-engine.c:5994,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:5995,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:5997,1
    - Dst: fu_release_get_checksums
      Src: /src/fwupd/src/fu-engine.c:5998,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6003,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:6005,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6005,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/src/fu-engine.c:6006,1
    - Dst: g_hash_table_add
      Src: /src/fwupd/src/fu-engine.c:6010,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:6010,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:6013,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6014,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:6017,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:6017,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/src/fu-engine.c:6020,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:6024,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 4
    argNames:
    - self
    - request
    - device_id
    - error
    argTypes:
    - FuEngine*
    - FuEngineRequest*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6025
      start: 5958
    functionDepth: 7
    functionLinenumber: 5958
    functionLinenumberEnd: 6025
    functionName: fu_engine_get_releases
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 9
    functionsReached:
    - g_ptr_array_sort_with_data
    - g_strdup_printf
    - g_object_ref
    - g_ptr_array_index
    - FU_IS_ENGINE_REQUEST
    - g_debug
    - g_set_error_literal
    - fu_release_get_version
    - fu_release_get_checksums
    - g_hash_table_new_full
    - g_hash_table_add
    - g_hash_table_contains
    - g_ptr_array_new_with_free_func
    - fu_engine_config_get_release_dedupe
    - FU_IS_ENGINE
    - g_ptr_array_ref
    - g_return_val_if_fail
    - fu_device_list_get_by_id
    - fu_engine_get_releases_for_device
    - g_steal_pointer
    - g_ptr_array_add
    - g_autoptr
    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:6044,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6045,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6046,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6047,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:6047,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6049,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:6049,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6050,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6051,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:6054,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-engine.c:6059,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:6062,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6064,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:6067,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:6068,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine.c:6069,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6071,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:6072,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6073,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:6074,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:6079,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine.c:6080,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6082,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:6083,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6084,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:6085,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:6090,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine.c:6091,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6093,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:6094,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6095,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/src/fu-engine.c:6096,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:6101,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6102,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6103,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-engine.c:6104,1
    - Dst: fu_device_get_branch
      Src: /src/fwupd/src/fu-engine.c:6105,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:6109,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:6109,1
    - Dst: g_string_truncate
      Src: /src/fwupd/src/fu-engine.c:6112,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:6115,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:6119,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:6123,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:6127,1
    - Dst: g_ptr_array_sort_with_data
      Src: /src/fwupd/src/fu-engine.c:6130,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:6131,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: 6132
      start: 6038
    functionDepth: 7
    functionLinenumber: 6038
    functionLinenumberEnd: 6132
    functionName: fu_engine_get_downgrades
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - fu_device_get_branch
    - g_ptr_array_sort_with_data
    - g_object_ref
    - fu_device_get_version_lowest
    - g_ptr_array_index
    - g_debug
    - g_string_new
    - g_string_truncate
    - g_ptr_array_new_with_free_func
    - g_info
    - FU_IS_ENGINE
    - fwupd_release_get_branch
    - g_return_val_if_fail
    - g_set_error
    - fu_device_list_get_by_id
    - fu_engine_get_releases_for_device
    - g_steal_pointer
    - g_ptr_array_add
    - fwupd_release_has_flag
    - fu_device_get_version
    - g_string_append_printf
    - g_autoptr
    - fwupd_release_get_version
    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:6137,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6139,1
    - Dst: g_list_sort
      Src: /src/fwupd/src/fu-engine.c:6139,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/src/fu-engine.c:6139,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:6143,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:6143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6147
      start: 6134
    functionDepth: 0
    functionLinenumber: 6134
    functionLinenumberEnd: 6147
    functionName: fu_engine_get_approved_firmware
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_hash_table_get_keys
    - g_ptr_array_add
    - g_list_sort
    - g_autoptr
    - g_ptr_array_new_with_free_func
    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:6154,1
    - Dst: g_hash_table_add
      Src: /src/fwupd/src/fu-engine.c:6156,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:6156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - checksum
    argTypes:
    - FuEngine*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6157
      start: 6149
    functionDepth: 0
    functionLinenumber: 6149
    functionLinenumberEnd: 6157
    functionName: fu_engine_add_approved_firmware
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_hash_table_new_full
    - g_hash_table_add
    linkageType: ''
    returnType: void
    signature: void fu_engine_add_approved_firmware(FuEngine *self, const gchar *checksum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6162,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6163,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6164,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6165,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-engine.c:6169,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-engine.c:6172,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-engine.c:6172,1
    - Dst: fu_jcat_engine_self_sign
      Src: /src/fwupd/src/fu-engine.c:6173,1
    - Dst: fu_jcat_engine_self_verify
      Src: /src/fwupd/src/fu-engine.c:6176,1
    - Dst: fwupd_jcat_blob_get_data
      Src: /src/fwupd/src/fu-engine.c:6178,1
    - Dst: fwupd_jcat_blob_get_data_as_string
      Src: /src/fwupd/src/fu-engine.c:6183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - self
    - value
    - flags
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - FuJcatSignFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6184
      start: 6159
    functionDepth: 1
    functionLinenumber: 6159
    functionLinenumberEnd: 6184
    functionName: fu_engine_self_sign
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - fwupd_jcat_blob_get_data
    - fu_jcat_context_get_engine
    - g_bytes_new
    - fu_jcat_engine_self_sign
    - fu_jcat_engine_self_verify
    - strlen
    - g_autoptr
    - fwupd_jcat_blob_get_data_as_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_self_sign(FuEngine *self, const gchar *value, FuJcatSignFlags flags,
      GError **error)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6203,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6204,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6205,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6206,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:6206,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6208,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:6208,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6209,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6210,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:6213,1
    - Dst: fu_device_is_updatable
      Src: /src/fwupd/src/fu-engine.c:6218,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:6219,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6227,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:6228,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:6236,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:6237,1
    - Dst: fu_engine_get_releases_for_device
      Src: /src/fwupd/src/fu-engine.c:6245,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:6248,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6250,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:6253,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:6254,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine.c:6255,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6257,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:6258,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6259,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:6260,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:6265,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine.c:6266,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6268,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:6269,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6270,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:6271,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:6276,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine.c:6277,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6279,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:6280,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6281,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-engine.c:6282,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-engine.c:6287,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6288,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6289,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-engine.c:6290,1
    - Dst: fu_device_get_branch
      Src: /src/fwupd/src/fu-engine.c:6291,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:6295,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:6295,1
    - Dst: g_string_truncate
      Src: /src/fwupd/src/fu-engine.c:6298,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:6301,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:6305,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:6309,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:6313,1
    - Dst: g_ptr_array_sort_with_data
      Src: /src/fwupd/src/fu-engine.c:6316,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:6317,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: 6318
      start: 6197
    functionDepth: 7
    functionLinenumber: 6197
    functionLinenumberEnd: 6318
    functionName: fu_engine_get_upgrades
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 6
    functionsReached:
    - fu_device_get_branch
    - g_ptr_array_sort_with_data
    - g_object_ref
    - g_ptr_array_index
    - fwupd_release_get_remote_id
    - g_debug
    - g_set_error_literal
    - fu_device_get_update_state
    - fu_device_has_flag
    - g_string_new
    - g_string_truncate
    - g_ptr_array_new_with_free_func
    - g_info
    - FU_IS_ENGINE
    - fwupd_release_get_branch
    - g_return_val_if_fail
    - g_set_error
    - fu_device_list_get_by_id
    - fu_engine_get_releases_for_device
    - g_steal_pointer
    - g_ptr_array_add
    - fwupd_release_has_flag
    - fu_device_is_updatable
    - fu_device_get_version
    - g_string_append_printf
    - g_autoptr
    - fwupd_release_get_version
    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:6333,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6336,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:6336,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6337,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6338,1
    - Dst: fu_engine_get_item_by_id_fallback_history
      Src: /src/fwupd/src/fu-engine.c:6341,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6346,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:6347,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:6356,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:6356,1
    - Dst: fu_plugin_runner_clear_results
      Src: /src/fwupd/src/fu-engine.c:6358,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:6363,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:6364,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:6367,1
    - Dst: fu_history_modify_device
      Src: /src/fwupd/src/fu-engine.c:6368,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6369
      start: 6330
    functionDepth: 7
    functionLinenumber: 6330
    functionLinenumberEnd: 6369
    functionName: fu_engine_clear_results
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_device_add_flag
    - g_set_error_literal
    - fu_history_modify_device
    - fu_device_get_update_state
    - fu_engine_get_item_by_id_fallback_history
    - fu_device_get_plugin
    - fu_plugin_runner_clear_results
    - fu_device_has_flag
    - fu_device_set_update_state
    - FU_IS_ENGINE
    - fu_plugin_list_find_by_name
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_clear_results(FuEngine *self, const gchar *device_id,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6385,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6387,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:6387,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6388,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:6389,1
    - Dst: fu_engine_get_item_by_id_fallback_history
      Src: /src/fwupd/src/fu-engine.c:6392,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6397,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-engine.c:6398,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:6399,1
    - Dst: fu_engine_fixup_history_device
      Src: /src/fwupd/src/fu-engine.c:6408,1
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-engine.c:6412,1
    - Dst: fwupd_release_get_appstream_id
      Src: /src/fwupd/src/fu-engine.c:6413,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:6414,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6418,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:6423,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-engine.c:6423,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6424
      start: 6381
    functionDepth: 7
    functionLinenumber: 6381
    functionLinenumberEnd: 6424
    functionName: fu_engine_get_results
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - fu_device_get_id_display
    - fu_engine_fixup_history_device
    - fwupd_release_get_appstream_id
    - g_set_error
    - fu_device_get_release_default
    - fu_engine_get_item_by_id_fallback_history
    - fu_device_get_id
    - g_object_ref
    - FWUPD_DEVICE
    - fu_device_has_flag
    - FU_IS_ENGINE
    - g_autoptr
    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:6429,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:6430,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:6431,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6433,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6434,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/src/fu-engine.c:6435,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:6435,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/src/fu-engine.c:6436,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:6437,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/src/fu-engine.c:6438,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6439,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:6440,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:6442,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuEngine*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6444
      start: 6426
    functionDepth: 1
    functionLinenumber: 6426
    functionLinenumberEnd: 6444
    functionName: fu_engine_plugins_startup
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_info
    - fu_plugin_runner_startup
    - fu_plugin_add_flag
    - fu_progress_add_flag
    - fu_progress_set_steps
    - fu_progress_step_done
    - g_error_matches
    - fu_plugin_list_get_all
    - g_autoptr
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    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:6449,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:6450,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:6451,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6453,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6454,1
    - Dst: fu_plugin_runner_ready
      Src: /src/fwupd/src/fu-engine.c:6455,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:6455,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:6456,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/src/fu-engine.c:6457,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6458,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:6459,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:6461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuEngine*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6463
      start: 6446
    functionDepth: 1
    functionLinenumber: 6446
    functionLinenumberEnd: 6463
    functionName: fu_engine_plugins_ready
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_plugin_runner_ready
    - g_info
    - fu_plugin_add_flag
    - fu_progress_add_flag
    - fu_progress_set_steps
    - fu_progress_step_done
    - g_error_matches
    - fu_plugin_list_get_all
    - g_autoptr
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    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:6469,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:6469,1
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:6472,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:6473,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:6474,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6476,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6477,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/src/fu-engine.c:6478,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:6478,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/src/fu-engine.c:6479,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6480,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:6481,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:6483,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6488,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-engine.c:6489,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine.c:6491,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-engine.c:6491,1
    - Dst: g_string_truncate
      Src: /src/fwupd/src/fu-engine.c:6494,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6495,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuEngine*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6497
      start: 6465
    functionDepth: 1
    functionLinenumber: 6465
    functionLinenumberEnd: 6497
    functionName: fu_engine_plugins_coldplug
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_info
    - fu_plugin_get_name
    - fu_plugin_has_flag
    - fu_plugin_add_flag
    - fu_progress_get_child
    - fu_progress_set_steps
    - fu_progress_add_flag
    - fu_progress_step_done
    - g_string_new
    - g_string_append_printf
    - fu_plugin_list_get_all
    - g_string_truncate
    - g_autoptr
    - fu_plugin_runner_coldplug
    - g_ptr_array_index
    - fu_progress_set_id
    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:6502,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6504,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:6505,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6505,1
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:6508,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6510,1
    - Dst: fu_plugin_runner_device_register
      Src: /src/fwupd/src/fu-engine.c:6511,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6514,1
    - Dst: fu_backend_registered
      Src: /src/fwupd/src/fu-engine.c:6515,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine.c:6517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6518
      start: 6499
    functionDepth: 1
    functionLinenumber: 6499
    functionLinenumberEnd: 6518
    functionName: fu_engine_plugin_device_register
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_backend_registered
    - fu_device_has_private_flag
    - fu_device_get_id
    - g_warning
    - fu_plugin_list_get_all
    - fu_context_get_backends
    - g_ptr_array_index
    - 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:6523,1
    - Dst: fu_engine_plugin_device_register
      Src: /src/fwupd/src/fu-engine.c:6524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6525
      start: 6520
    functionDepth: 2
    functionLinenumber: 6520
    functionLinenumberEnd: 6525
    functionName: fu_engine_plugin_device_register_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - FU_ENGINE
    - fu_engine_plugin_device_register
    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:6530,1
    - Dst: fu_plugin_get_priority
      Src: /src/fwupd/src/fu-engine.c:6533,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-engine.c:6533,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6534,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6535,1
    - Dst: fu_plugin_get_priority
      Src: /src/fwupd/src/fu-engine.c:6536,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/src/fu-engine.c:6537,1
    - Dst: fu_plugin_get_priority
      Src: /src/fwupd/src/fu-engine.c:6537,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine.c:6540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6541
      start: 6527
    functionDepth: 1
    functionLinenumber: 6527
    functionLinenumberEnd: 6541
    functionName: fu_engine_plugin_device_added_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_add_device
    - g_info
    - FU_ENGINE
    - fu_device_get_priority
    - fu_device_get_id
    - fu_plugin_get_priority
    - fu_device_set_priority
    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_quark
      Src: /src/fwupd/src/fu-engine.c:6546,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/src/fu-engine.c:6547,1
    - Dst: fu_device_set_parent
      Src: /src/fwupd/src/fu-engine.c:6548,1
    - Dst: fu_engine_ensure_device_supported
      Src: /src/fwupd/src/fu-engine.c:6549,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/src/fu-engine.c:6552,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/src/fu-engine.c:6553,1
    - Dst: fu_device_set_parent
      Src: /src/fwupd/src/fu-engine.c:6554,1
    - Dst: fu_engine_ensure_device_supported
      Src: /src/fwupd/src/fu-engine.c:6555,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/src/fu-engine.c:6558,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/src/fu-engine.c:6559,1
    - Dst: fu_device_set_parent
      Src: /src/fwupd/src/fu-engine.c:6560,1
    - Dst: fu_engine_ensure_device_supported
      Src: /src/fwupd/src/fu-engine.c:6561,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/src/fu-engine.c:6564,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/src/fu-engine.c:6565,1
    - Dst: fu_device_set_parent
      Src: /src/fwupd/src/fu-engine.c:6566,1
    - Dst: fu_engine_ensure_device_supported
      Src: /src/fwupd/src/fu-engine.c:6567,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - self
    - device
    - device_tmp
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6570
      start: 6543
    functionDepth: 3
    functionLinenumber: 6543
    functionLinenumberEnd: 6570
    functionName: fu_engine_adopt_children_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_has_private_flag_quark
    - fu_device_set_parent
    - fu_engine_ensure_device_supported
    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:6575,1
    - Dst: fu_engine_ensure_device_supported
      Src: /src/fwupd/src/fu-engine.c:6576,1
    - Dst: fu_engine_ensure_device_supported
      Src: /src/fwupd/src/fu-engine.c:6577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - device
    - parent
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6578
      start: 6572
    functionDepth: 3
    functionLinenumber: 6572
    functionLinenumberEnd: 6578
    functionName: fu_engine_set_device_parent
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_set_parent
    - fu_engine_ensure_device_supported
    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:6584,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:6584,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-engine.c:6587,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6588,1
    - Dst: fu_engine_adopt_children_device
      Src: /src/fwupd/src/fu-engine.c:6589,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-engine.c:6591,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6593,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/src/fu-engine.c:6594,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-engine.c:6597,1
    - Dst: fu_device_has_parent_physical_id
      Src: /src/fwupd/src/fu-engine.c:6599,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-engine.c:6601,1
    - Dst: fu_engine_set_device_parent
      Src: /src/fwupd/src/fu-engine.c:6602,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-engine.c:6607,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6609,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/src/fu-engine.c:6610,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:6613,1
    - Dst: fu_device_has_parent_backend_id
      Src: /src/fwupd/src/fu-engine.c:6615,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:6616,1
    - Dst: fu_engine_set_device_parent
      Src: /src/fwupd/src/fu-engine.c:6617,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-engine.c:6622,1
    - Dst: fu_device_get_parent_guids
      Src: /src/fwupd/src/fu-engine.c:6623,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6625,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6627,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-engine.c:6628,1
    - Dst: fu_engine_set_device_parent
      Src: /src/fwupd/src/fu-engine.c:6629,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6639,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-engine.c:6640,1
    - Dst: fu_device_get_parent_physical_ids
      Src: /src/fwupd/src/fu-engine.c:6642,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6646,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:6647,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-engine.c:6647,1
    - Dst: fu_engine_set_device_parent
      Src: /src/fwupd/src/fu-engine.c:6648,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6653,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-engine.c:6654,1
    - Dst: fu_device_get_parent_backend_ids
      Src: /src/fwupd/src/fu-engine.c:6656,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6660,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:6661,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:6661,1
    - Dst: fu_engine_set_device_parent
      Src: /src/fwupd/src/fu-engine.c:6662,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-engine.c:6665,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6667,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6669,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-engine.c:6670,1
    - Dst: fu_device_has_parent_guid
      Src: /src/fwupd/src/fu-engine.c:6672,1
    - Dst: fu_engine_set_device_parent
      Src: /src/fwupd/src/fu-engine.c:6673,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 71
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6676
      start: 6580
    functionDepth: 4
    functionLinenumber: 6580
    functionLinenumberEnd: 6676
    functionName: fu_engine_adopt_children
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_id
    - fu_device_has_parent_backend_id
    - g_strcmp0
    - fu_device_has_parent_guid
    - fu_device_get_parent_internal
    - fu_device_has_guid
    - fu_device_get_physical_id
    - fu_device_has_private_flag_quark
    - fu_engine_set_device_parent
    - fu_device_has_parent_physical_id
    - fu_device_get_parent_guids
    - fu_device_get_parent_physical_ids
    - fu_device_get_parent_backend_ids
    - fu_device_get_guids
    - fu_device_list_get_active
    - g_autoptr
    - fu_engine_adopt_children_device
    - g_ptr_array_index
    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:6682,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6683,1
    - Dst: fu_device_get_proxy_internal
      Src: /src/fwupd/src/fu-engine.c:6685,1
    - Dst: fu_device_get_proxy_guid
      Src: /src/fwupd/src/fu-engine.c:6687,1
    - Dst: fu_device_list_get_by_guid
      Src: /src/fwupd/src/fu-engine.c:6692,1
    - Dst: fu_device_get_proxy_guid
      Src: /src/fwupd/src/fu-engine.c:6692,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6694,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6695,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6696,1
    - Dst: fu_device_get_proxy_guid
      Src: /src/fwupd/src/fu-engine.c:6697,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/src/fu-engine.c:6698,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-engine.c:6703,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6705,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:6706,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6708,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:6709,1
    - Dst: fu_device_get_proxy_guid
      Src: /src/fwupd/src/fu-engine.c:6709,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6710,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6711,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6712,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/src/fu-engine.c:6714,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:6721,1
    - Dst: fu_device_get_proxy_guid
      Src: /src/fwupd/src/fu-engine.c:6721,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6722
      start: 6678
    functionDepth: 1
    functionLinenumber: 6678
    functionLinenumberEnd: 6722
    functionName: fu_engine_set_proxy_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_get_proxy_guid
    - g_strcmp0
    - g_info
    - fu_device_get_proxy_internal
    - fu_device_get_id
    - g_warning
    - fu_device_get_guids
    - fu_device_set_proxy
    - fu_device_list_get_by_guid
    - fu_device_list_get_active
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_engine_set_proxy_device(FuEngine *self, FuDevice *device)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6727,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6730,1
    - Dst: fu_history_get_device_by_id
      Src: /src/fwupd/src/fu-engine.c:6736,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6736,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6743,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:6744,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:6745,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/src/fu-engine.c:6747,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:6747,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6748,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine.c:6749,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:6749,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6755,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6756,1
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-engine.c:6757,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine.c:6758,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:6758,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6759,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:6760,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-engine.c:6761,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6762,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:6764,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine.c:6765,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:6766,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6769
      start: 6724
    functionDepth: 6
    functionLinenumber: 6724
    functionLinenumberEnd: 6769
    functionName: fu_engine_device_inherit_history
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_get_id_display
    - g_debug
    - g_info
    - fu_device_get_release_default
    - fu_version_compare
    - fu_device_has_private_flag
    - fu_device_get_id
    - fu_device_get_version
    - fwupd_release_get_version
    - fu_device_has_flag
    - fu_history_get_device_by_id
    - fu_device_set_version_format
    - g_autoptr
    - fwupd_version_format_to_string
    - fu_device_get_version_format
    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:6775,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6779,1
    - Dst: fu_history_has_emulation_tag
      Src: /src/fwupd/src/fu-engine.c:6781,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:6781,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6785,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:6785,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine.c:6786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6787
      start: 6771
    functionDepth: 6
    functionLinenumber: 6771
    functionLinenumberEnd: 6787
    functionName: fu_engine_ensure_device_emulation_tag
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_get_backend_id
    - g_info
    - fu_device_get_id
    - fu_device_has_flag
    - fu_history_has_emulation_tag
    linkageType: ''
    returnType: void
    signature: void fu_engine_ensure_device_emulation_tag(FuEngine *self, FuDevice
      *device)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6794,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-engine.c:6797,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/src/fu-engine.c:6799,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6802,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/src/fu-engine.c:6803,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-engine.c:6804,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:6805,1
    - Dst: fu_engine_config_get_disabled_devices
      Src: /src/fwupd/src/fu-engine.c:6810,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6812,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6814,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:6815,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-engine.c:6816,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6817,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:6820,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6827,1
    - Dst: fu_device_get_protocols
      Src: /src/fwupd/src/fu-engine.c:6828,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-engine.c:6829,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:6830,1
    - Dst: fu_engine_get_component_by_guids
      Src: /src/fwupd/src/fu-engine.c:6834,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6835,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6837,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-engine.c:6838,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6840,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine.c:6840,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6841,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6842,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine.c:6842,1
    - Dst: fu_engine_request_add_flag
      Src: /src/fwupd/src/fu-engine.c:6844,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine.c:6846,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine.c:6847,1
    - Dst: fu_engine_load_release
      Src: /src/fwupd/src/fu-engine.c:6848,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:6855,1
    - Dst: fu_device_add_release
      Src: /src/fwupd/src/fu-engine.c:6858,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-engine.c:6858,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-engine.c:6866,1
    - Dst: fu_device_set_details_url
      Src: /src/fwupd/src/fu-engine.c:6868,1
    - Dst: fu_engine_ensure_device_emulation_tag
      Src: /src/fwupd/src/fu-engine.c:6872,1
    - Dst: fu_engine_ensure_device_supported
      Src: /src/fwupd/src/fu-engine.c:6875,1
    - Dst: fu_engine_adopt_children
      Src: /src/fwupd/src/fu-engine.c:6878,1
    - Dst: fu_engine_set_proxy_device
      Src: /src/fwupd/src/fu-engine.c:6881,1
    - Dst: fu_engine_device_inherit_history
      Src: /src/fwupd/src/fu-engine.c:6884,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6887,1
    - Dst: fu_engine_plugin_device_register
      Src: /src/fwupd/src/fu-engine.c:6888,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:6890,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/src/fu-engine.c:6891,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:6891,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/src/fu-engine.c:6892,1
    - Dst: fu_device_is_updatable
      Src: /src/fwupd/src/fu-engine.c:6896,1
    - Dst: fu_device_get_vendor_ids
      Src: /src/fwupd/src/fu-engine.c:6896,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/src/fu-engine.c:6897,1
    - Dst: fu_device_list_add
      Src: /src/fwupd/src/fu-engine.c:6900,1
    - Dst: fu_device_is_updatable
      Src: /src/fwupd/src/fu-engine.c:6904,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6905,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6906,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:6907,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-engine.c:6908,1
    - Dst: g_critical
      Src: /src/fwupd/src/fu-engine.c:6909,1
    - Dst: fu_device_probe_complete
      Src: /src/fwupd/src/fu-engine.c:6916,1
    - Dst: fu_device_list_depsolve_order
      Src: /src/fwupd/src/fu-engine.c:6919,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:6922,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6924,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:6925,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:6926,1
    - Dst: fu_engine_emulator_save_phase
      Src: /src/fwupd/src/fu-engine.c:6927,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:6932,1
    - Dst: fu_engine_emit_changed
      Src: /src/fwupd/src/fu-engine.c:6935,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 74
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuEngine*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6936
      start: 6789
    functionDepth: 7
    functionLinenumber: 6789
    functionLinenumberEnd: 6936
    functionName: fu_engine_add_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 32
    functionsReached:
    - fu_context_has_flag
    - fu_engine_emulator_save_phase
    - fu_engine_emit_changed
    - g_critical
    - fu_device_get_children
    - fu_engine_plugin_device_register
    - fu_device_get_plugin
    - fu_device_get_protocols
    - fu_engine_config_get_disabled_devices
    - fu_device_get_guids
    - fu_device_list_add
    - g_ptr_array_index
    - fu_device_set_details_url
    - fu_device_get_id_display
    - fu_device_probe_complete
    - fu_device_get_vendor_ids
    - fu_device_has_flag
    - fu_device_inhibit
    - fu_engine_set_proxy_device
    - xb_node_query_first
    - fu_engine_ensure_device_emulation_tag
    - fu_device_get_version_format
    - fu_engine_load_release
    - fu_engine_get_component_by_guids
    - g_info
    - fu_engine_ensure_device_supported
    - fu_release_new
    - fu_release_set_device
    - fu_device_convert_instance_ids
    - fu_engine_request_add_flag
    - g_warning
    - fu_engine_device_inherit_history
    - fu_engine_request_new
    - g_strcmp0
    - xb_node_query_text
    - fu_device_list_depsolve_order
    - fu_device_has_private_flag
    - fu_device_add_release
    - fu_device_is_updatable
    - fu_device_get_version
    - fu_engine_adopt_children
    - fu_version_guess_format
    - g_autoptr
    - FWUPD_RELEASE
    - fu_release_set_request
    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:6941,1
    - Dst: fu_plugin_get_rules
      Src: /src/fwupd/src/fu-engine.c:6942,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:6946,1
    - Dst: fu_idle_inhibit
      Src: /src/fwupd/src/fu-engine.c:6947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - plugin
    - user_data
    argTypes:
    - FuPlugin*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6949
      start: 6938
    functionDepth: 1
    functionLinenumber: 6938
    functionLinenumberEnd: 6949
    functionName: fu_engine_plugin_rules_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - FU_ENGINE
    - fu_idle_inhibit
    - fu_plugin_get_rules
    - g_ptr_array_index
    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:6954,1
    - Dst: fu_security_attrs_remove_all
      Src: /src/fwupd/src/fu-engine.c:6957,1
    - Dst: fu_engine_emit_changed
      Src: /src/fwupd/src/fu-engine.c:6960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - user_data
    argTypes:
    - FuContext*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6961
      start: 6951
    functionDepth: 2
    functionLinenumber: 6951
    functionLinenumberEnd: 6961
    functionName: fu_engine_context_security_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - FU_ENGINE
    - fu_engine_emit_changed
    - 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:6968,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:6972,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:6972,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6974,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:6975,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:6981,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-engine.c:6981,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-engine.c:6981,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:6982,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-engine.c:6982,1
    - Dst: fu_device_list_remove
      Src: /src/fwupd/src/fu-engine.c:6987,1
    - Dst: fu_engine_emit_changed
      Src: /src/fwupd/src/fu-engine.c:6988,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6989
      start: 6963
    functionDepth: 2
    functionLinenumber: 6963
    functionLinenumberEnd: 6989
    functionName: fu_engine_plugin_device_removed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_emit_changed
    - g_strcmp0
    - g_info
    - fu_plugin_get_name
    - fu_device_get_plugin
    - fu_device_list_remove
    - g_autoptr
    - fu_plugin_list_find_by_name
    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:6995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - plugin
    argTypes:
    - FuEngine*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6996
      start: 6992
    functionDepth: 1
    functionLinenumber: 6992
    functionLinenumberEnd: 6996
    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:7007,1
    - Dst: g_array_index
      Src: /src/fwupd/src/fu-engine.c:7009,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - calling_uid
    argTypes:
    - FuEngine*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7013
      start: 6998
    functionDepth: 1
    functionLinenumber: 6998
    functionLinenumberEnd: 7013
    functionName: fu_engine_is_uid_trusted
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - fu_engine_config_get_trusted_uids
    - g_array_index
    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:7018,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-engine.c:7020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - plugin
    argTypes:
    - FuEngine*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7021
      start: 7015
    functionDepth: 1
    functionLinenumber: 7015
    functionLinenumberEnd: 7021
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-engine.c:7028,1
    - Dst: fu_engine_config_get_test_devices
      Src: /src/fwupd/src/fu-engine.c:7030,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - plugin
    argTypes:
    - FuEngine*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7033
      start: 7023
    functionDepth: 1
    functionLinenumber: 7023
    functionLinenumberEnd: 7033
    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:7038,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7040,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:7041,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FuEngine*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7045
      start: 7035
    functionDepth: 1
    functionLinenumber: 7035
    functionLinenumberEnd: 7045
    functionName: fu_engine_is_plugin_name_disabled
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_engine_config_get_disabled_plugins
    - g_ptr_array_index
    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:7053,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/src/fu-engine.c:7054,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FuEngine*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7058
      start: 7047
    functionDepth: 0
    functionLinenumber: 7047
    functionLinenumberEnd: 7058
    functionName: fu_engine_is_plugin_name_enabled
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_pattern_match_simple
    - g_ptr_array_index
    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:7064,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:7064,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-engine.c:7065,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:7066,1
    - Dst: g_string_replace
      Src: /src/fwupd/src/fu-engine.c:7067,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:7068,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-engine.c:7068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - self
    - plugin_glob
    argTypes:
    - FuEngine*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7069
      start: 7060
    functionDepth: 0
    functionLinenumber: 7060
    functionLinenumberEnd: 7069
    functionName: fu_engine_add_plugin_filter
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - g_string_replace
    - g_ptr_array_add
    - g_return_if_fail
    - g_string_free
    - g_string_new
    - FU_IS_ENGINE
    linkageType: ''
    returnType: void
    signature: void fu_engine_add_plugin_filter(FuEngine *self, const gchar *plugin_glob)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7074,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:7075,1
    - Dst: XB_QUERY_CONTEXT_INIT
      Src: /src/fwupd/src/fu-engine.c:7075,1
    - Dst: fu_engine_config_get_enumerate_all_devices
      Src: /src/fwupd/src/fu-engine.c:7077,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7082,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/src/fu-engine.c:7085,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/src/fu-engine.c:7085,1
    - Dst: xb_silo_query_first_with_context
      Src: /src/fwupd/src/fu-engine.c:7086,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - plugin
    - guid
    - self
    argTypes:
    - FuPlugin*
    - gchar*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7091
      start: 7071
    functionDepth: 1
    functionLinenumber: 7071
    functionLinenumberEnd: 7091
    functionName: fu_engine_plugin_check_supported_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_debug
    - xb_silo_query_first_with_context
    - xb_value_bindings_bind_str
    - xb_query_context_get_bindings
    - g_auto
    - fu_engine_config_get_enumerate_all_devices
    - g_autoptr
    - XB_QUERY_CONTEXT_INIT
    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:7096,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:7096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7098
      start: 7093
    functionDepth: 0
    functionLinenumber: 7093
    functionLinenumberEnd: 7098
    functionName: fu_engine_get_config
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ENGINE
    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:7104,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:7104,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/src/fu-engine.c:7105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7107
      start: 7100
    functionDepth: 1
    functionLinenumber: 7100
    functionLinenumberEnd: 7107
    functionName: fu_engine_get_host_vendor
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fu_context_get_hwid_value
    - FU_IS_ENGINE
    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:7113,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:7113,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/src/fu-engine.c:7114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7116
      start: 7109
    functionDepth: 1
    functionLinenumber: 7109
    functionLinenumberEnd: 7116
    functionName: fu_engine_get_host_product
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fu_context_get_hwid_value
    - FU_IS_ENGINE
    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:7121,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:7121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7123
      start: 7118
    functionDepth: 0
    functionLinenumber: 7118
    functionLinenumberEnd: 7123
    functionName: fu_engine_get_host_machine_id
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ENGINE
    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:7128,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:7128,1
    - Dst: fu_engine_config_get_host_bkc
      Src: /src/fwupd/src/fu-engine.c:7129,1
    - Dst: fu_engine_config_get_host_bkc
      Src: /src/fwupd/src/fu-engine.c:7131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7132
      start: 7125
    functionDepth: 1
    functionLinenumber: 7125
    functionLinenumberEnd: 7132
    functionName: fu_engine_get_host_bkc
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_engine_config_get_host_bkc
    - FU_IS_ENGINE
    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:7138,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/src/fu-engine.c:7139,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/src/fu-engine.c:7140,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/src/fu-engine.c:7142,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/src/fu-engine.c:7143,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/src/fu-engine.c:7144,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/src/fu-engine.c:7145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7146
      start: 7135
    functionDepth: 1
    functionLinenumber: 7135
    functionLinenumberEnd: 7146
    functionName: fu_engine_ensure_security_attrs_supported_cpu
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_set_plugin
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - 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:7152,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7153,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/src/fu-engine.c:7154,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/src/fu-engine.c:7155,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/src/fu-engine.c:7156,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/src/fu-engine.c:7157,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/src/fu-engine.c:7159,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7161,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-engine.c:7162,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/src/fu-engine.c:7168,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/src/fu-engine.c:7169,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/src/fu-engine.c:7174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7175
      start: 7148
    functionDepth: 1
    functionLinenumber: 7148
    functionLinenumberEnd: 7175
    functionName: fu_engine_ensure_security_attrs_tainted
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_set_plugin
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fwupd_security_attr_new
    - fwupd_security_attr_set_result_success
    - g_autoptr
    - fu_security_attrs_append
    - g_str_has_prefix
    - fu_engine_config_get_disabled_plugins
    - g_ptr_array_index
    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:7183,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:7183,1
    - Dst: fu_engine_ensure_security_attrs
      Src: /src/fwupd/src/fu-engine.c:7185,1
    - Dst: fu_context_get_chassis_kind
      Src: /src/fwupd/src/fu-engine.c:7188,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:7191,1
    - Dst: fu_smbios_chassis_kind_to_string
      Src: /src/fwupd/src/fu-engine.c:7192,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/src/fu-engine.c:7215,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:7222,1
    - Dst: fu_smbios_chassis_kind_to_string
      Src: /src/fwupd/src/fu-engine.c:7223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - self
    - fwupd_version
    argTypes:
    - FuEngine*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7227
      start: 7178
    functionDepth: 1
    functionLinenumber: 7178
    functionLinenumberEnd: 7227
    functionName: fu_engine_get_host_security_id
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fu_context_get_chassis_kind
    - g_info
    - fu_engine_ensure_security_attrs
    - fu_security_attrs_calculate_hsi
    - g_strdup_printf
    - fu_smbios_chassis_kind_to_string
    - FU_IS_ENGINE
    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:7232,1
    - Dst: fu_engine_get_host_security_id
      Src: /src/fwupd/src/fu-engine.c:7233,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/src/fu-engine.c:7237,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-engine.c:7237,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:7241,1
    - Dst: fu_history_get_security_attrs
      Src: /src/fwupd/src/fu-engine.c:7246,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:7248,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7252,1
    - Dst: fu_security_attrs_equal
      Src: /src/fwupd/src/fu-engine.c:7253,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:7254,1
    - Dst: fu_history_add_security_attribute
      Src: /src/fwupd/src/fu-engine.c:7260,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:7261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7267
      start: 7229
    functionDepth: 6
    functionLinenumber: 7229
    functionLinenumberEnd: 7267
    functionName: fu_engine_record_security_attrs
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_history_get_security_attrs
    - FWUPD_CODEC
    - g_info
    - fu_history_add_security_attribute
    - g_prefix_error_literal
    - fu_security_attrs_equal
    - fwupd_codec_to_json_string
    - fu_engine_get_host_security_id
    - g_autoptr
    - g_ptr_array_index
    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:7272,1
    - Dst: fu_security_attrs_depsolve
      Src: /src/fwupd/src/fu-engine.c:7275,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/src/fu-engine.c:7278,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7280,1
    - Dst: fwupd_security_attr_get_name
      Src: /src/fwupd/src/fu-engine.c:7281,1
    - Dst: fu_security_attr_get_name
      Src: /src/fwupd/src/fu-engine.c:7282,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:7284,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-engine.c:7285,1
    - Dst: fwupd_security_attr_set_name
      Src: /src/fwupd/src/fu-engine.c:7288,1
    - Dst: fwupd_security_attr_get_title
      Src: /src/fwupd/src/fu-engine.c:7290,1
    - Dst: fwupd_security_attr_set_title
      Src: /src/fwupd/src/fu-engine.c:7291,1
    - Dst: fu_security_attr_get_title
      Src: /src/fwupd/src/fu-engine.c:7291,1
    - Dst: fwupd_security_attr_get_description
      Src: /src/fwupd/src/fu-engine.c:7292,1
    - Dst: fwupd_security_attr_set_description
      Src: /src/fwupd/src/fu-engine.c:7293,1
    - Dst: fu_security_attr_get_description
      Src: /src/fwupd/src/fu-engine.c:7294,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7297
      start: 7269
    functionDepth: 2
    functionLinenumber: 7269
    functionLinenumberEnd: 7297
    functionName: fu_engine_security_attrs_depsolve
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_security_attr_get_name
    - fwupd_security_attr_set_name
    - fwupd_security_attr_get_appstream_id
    - fu_security_attr_get_description
    - fwupd_security_attr_get_description
    - fu_security_attr_get_title
    - fu_security_attrs_depsolve
    - g_warning
    - fwupd_security_attr_get_title
    - fwupd_security_attr_get_name
    - fwupd_security_attr_set_title
    - fwupd_security_attr_set_description
    - g_autoptr
    - fu_security_attrs_get_all
    - g_ptr_array_index
    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:7318,1
    - Dst: fu_history_get_security_attrs
      Src: /src/fwupd/src/fu-engine.c:7320,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7324,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7325,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/src/fu-engine.c:7325,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7327,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:7328,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-engine.c:7328,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:7330,1
    - Dst: fwupd_security_attr_get_bios_setting_current_value
      Src: /src/fwupd/src/fu-engine.c:7331,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7333,1
    - Dst: fwupd_security_attr_get_bios_setting_id
      Src: /src/fwupd/src/fu-engine.c:7335,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:7336,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:7342,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: 7347
      start: 7312
    functionDepth: 6
    functionLinenumber: 7312
    functionLinenumberEnd: 7347
    functionName: fu_engine_get_previous_bios_security_attr
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_history_get_security_attrs
    - g_strcmp0
    - fwupd_security_attr_get_bios_setting_current_value
    - g_debug
    - fwupd_security_attr_get_appstream_id
    - g_set_error_literal
    - fwupd_security_attr_get_bios_setting_id
    - g_object_ref
    - g_autoptr
    - fu_security_attrs_get_all
    - g_ptr_array_index
    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:7364,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7365,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:7367,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:7367,1
    - Dst: fu_engine_ensure_security_attrs
      Src: /src/fwupd/src/fu-engine.c:7369,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/src/fu-engine.c:7371,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-engine.c:7374,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:7375,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:7381,1
    - Dst: fwupd_security_attr_get_plugin
      Src: /src/fwupd/src/fu-engine.c:7382,1
    - Dst: fu_plugin_runner_fix_host_security_attr
      Src: /src/fwupd/src/fu-engine.c:7388,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:7389,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:7390,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:7390,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7393,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:7395,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-engine.c:7395,1
    - Dst: fwupd_security_attr_get_bios_setting_id
      Src: /src/fwupd/src/fu-engine.c:7400,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:7401,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/src/fu-engine.c:7407,1
    - Dst: fwupd_security_attr_get_bios_setting_id
      Src: /src/fwupd/src/fu-engine.c:7408,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:7410,1
    - Dst: fwupd_security_attr_get_bios_setting_id
      Src: /src/fwupd/src/fu-engine.c:7414,1
    - Dst: fwupd_bios_setting_write_value
      Src: /src/fwupd/src/fu-engine.c:7417,1
    - Dst: fwupd_security_attr_get_bios_setting_target_value
      Src: /src/fwupd/src/fu-engine.c:7419,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 3
    argNames:
    - self
    - appstream_id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7421
      start: 7359
    functionDepth: 1
    functionLinenumber: 7359
    functionLinenumberEnd: 7421
    functionName: fu_engine_fix_host_security_attr
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - fwupd_security_attr_has_flag
    - fwupd_security_attr_get_plugin
    - fu_context_get_bios_setting
    - fwupd_bios_setting_write_value
    - g_debug
    - g_set_error_literal
    - g_propagate_error
    - g_info
    - fwupd_security_attr_get_appstream_id
    - fwupd_security_attr_get_bios_setting_id
    - fwupd_security_attr_get_bios_setting_target_value
    - FU_IS_ENGINE
    - fu_plugin_list_find_by_name
    - g_return_val_if_fail
    - fu_plugin_runner_fix_host_security_attr
    - g_set_error
    - g_steal_pointer
    - fu_engine_ensure_security_attrs
    - g_error_matches
    - fu_security_attrs_get_by_appstream_id
    - g_autoptr
    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:7438,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7439,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7440,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:7442,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:7442,1
    - Dst: fu_engine_ensure_security_attrs
      Src: /src/fwupd/src/fu-engine.c:7444,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/src/fu-engine.c:7446,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-engine.c:7449,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:7450,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:7456,1
    - Dst: fwupd_security_attr_get_plugin
      Src: /src/fwupd/src/fu-engine.c:7457,1
    - Dst: fu_plugin_runner_undo_host_security_attr
      Src: /src/fwupd/src/fu-engine.c:7463,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:7464,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine.c:7465,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:7465,1
    - Dst: fwupd_security_attr_get_bios_setting_id
      Src: /src/fwupd/src/fu-engine.c:7471,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:7472,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/src/fu-engine.c:7478,1
    - Dst: fwupd_security_attr_get_bios_setting_id
      Src: /src/fwupd/src/fu-engine.c:7479,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:7481,1
    - Dst: fwupd_security_attr_get_bios_setting_id
      Src: /src/fwupd/src/fu-engine.c:7485,1
    - Dst: fwupd_security_attr_get_bios_setting_current_value
      Src: /src/fwupd/src/fu-engine.c:7488,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:7489,1
    - Dst: fu_engine_get_previous_bios_security_attr
      Src: /src/fwupd/src/fu-engine.c:7495,1
    - Dst: fwupd_security_attr_get_bios_setting_current_value
      Src: /src/fwupd/src/fu-engine.c:7498,1
    - Dst: fwupd_bios_setting_write_value
      Src: /src/fwupd/src/fu-engine.c:7502,1
    - Dst: fwupd_security_attr_get_bios_setting_current_value
      Src: /src/fwupd/src/fu-engine.c:7504,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 3
    argNames:
    - self
    - appstream_id
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7506
      start: 7433
    functionDepth: 7
    functionLinenumber: 7433
    functionLinenumberEnd: 7506
    functionName: fu_engine_undo_host_security_attr
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - fwupd_security_attr_has_flag
    - fwupd_security_attr_get_plugin
    - fu_context_get_bios_setting
    - fwupd_bios_setting_write_value
    - g_set_error_literal
    - g_propagate_error
    - fwupd_security_attr_get_bios_setting_id
    - fu_plugin_runner_undo_host_security_attr
    - FU_IS_ENGINE
    - fu_plugin_list_find_by_name
    - fu_engine_get_previous_bios_security_attr
    - g_return_val_if_fail
    - fwupd_security_attr_get_bios_setting_current_value
    - g_set_error
    - g_steal_pointer
    - fu_engine_ensure_security_attrs
    - g_error_matches
    - fu_security_attrs_get_by_appstream_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_undo_host_security_attr(FuEngine *self, const gchar
      *appstream_id, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_json_object_has_node
      Src: /src/fwupd/src/fu-engine.c:7512,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/src/fu-engine.c:7514,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-engine.c:7514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - json_obj
    - error
    argTypes:
    - FuEngine*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7519
      start: 7508
    functionDepth: 1
    functionLinenumber: 7508
    functionLinenumberEnd: 7519
    functionName: fu_engine_security_attrs_from_json
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - fwupd_json_object_has_node
    - fwupd_codec_from_json
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_security_attrs_from_json(FuEngine *self, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7524,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/src/fu-engine.c:7527,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/src/fu-engine.c:7530,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7531,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine.c:7531,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7532,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/src/fu-engine.c:7534,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/src/fu-engine.c:7537,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-engine.c:7537,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/src/fu-engine.c:7539,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-engine.c:7540,1
    - Dst: fu_device_setup
      Src: /src/fwupd/src/fu-engine.c:7541,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine.c:7543,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - self
    - json_obj
    - error
    argTypes:
    - FuEngine*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7548
      start: 7521
    functionDepth: 8
    functionLinenumber: 7521
    functionLinenumberEnd: 7548
    functionName: fu_engine_devices_from_json
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_add_device
    - FWUPD_CODEC
    - fu_device_set_plugin
    - fwupd_json_array_get_size
    - fwupd_codec_from_json
    - fu_device_add_problem
    - fwupd_json_object_get_array
    - fu_device_setup
    - fwupd_json_array_get_object
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_devices_from_json(FuEngine *self, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7553,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7554,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7555,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/src/fu-engine.c:7555,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7556,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-engine.c:7556,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7557,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7558,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7559,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7560,1
    - Dst: fu_context_get_bios_settings
      Src: /src/fwupd/src/fu-engine.c:7560,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/src/fu-engine.c:7563,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/src/fu-engine.c:7564,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/src/fu-engine.c:7565,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/src/fu-engine.c:7568,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/src/fu-engine.c:7569,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/src/fu-engine.c:7570,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/src/fu-engine.c:7571,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/src/fu-engine.c:7572,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/src/fu-engine.c:7575,1
    - Dst: g_file_read
      Src: /src/fwupd/src/fu-engine.c:7575,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-engine.c:7578,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7579,1
    - Dst: G_CONVERTER
      Src: /src/fwupd/src/fu-engine.c:7580,1
    - Dst: g_zlib_decompressor_new
      Src: /src/fwupd/src/fu-engine.c:7580,1
    - Dst: g_converter_input_stream_new
      Src: /src/fwupd/src/fu-engine.c:7581,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:7583,1
    - Dst: fwupd_json_parser_load_from_stream
      Src: /src/fwupd/src/fu-engine.c:7585,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/src/fu-engine.c:7591,1
    - Dst: fu_engine_devices_from_json
      Src: /src/fwupd/src/fu-engine.c:7594,1
    - Dst: fu_engine_security_attrs_from_json
      Src: /src/fwupd/src/fu-engine.c:7596,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/src/fu-engine.c:7598,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-engine.c:7598,1
    - Dst: fu_engine_security_attrs_depsolve
      Src: /src/fwupd/src/fu-engine.c:7603,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 3
    argNames:
    - self
    - fn
    - error
    argTypes:
    - FuEngine*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7608
      start: 7550
    functionDepth: 9
    functionLinenumber: 7550
    functionLinenumberEnd: 7608
    functionName: fu_engine_load_host_emulation
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - FWUPD_CODEC
    - fwupd_codec_from_json
    - fwupd_json_parser_set_max_quoted
    - g_str_has_suffix
    - g_object_ref
    - fwupd_json_parser_set_max_items
    - fu_engine_devices_from_json
    - fwupd_security_attr_set_result
    - fu_engine_security_attrs_from_json
    - fu_engine_security_attrs_depsolve
    - g_file_new_for_path
    - g_zlib_decompressor_new
    - fwupd_json_parser_load_from_stream
    - G_CONVERTER
    - fwupd_json_parser_new
    - fwupd_security_attr_new
    - G_INPUT_STREAM
    - fwupd_json_node_get_object
    - fwupd_security_attr_set_plugin
    - fwupd_security_attr_add_flag
    - g_file_read
    - fu_context_get_bios_settings
    - fu_security_attrs_append
    - g_converter_input_stream_new
    - g_autoptr
    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:7614,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7615,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:7615,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7616,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7617,1
    - Dst: fu_security_attrs_is_valid
      Src: /src/fwupd/src/fu-engine.c:7620,1
    - Dst: fu_engine_ensure_security_attrs_supported_cpu
      Src: /src/fwupd/src/fu-engine.c:7624,1
    - Dst: fu_engine_ensure_security_attrs_tainted
      Src: /src/fwupd/src/fu-engine.c:7625,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7629,1
    - Dst: fu_device_add_security_attrs
      Src: /src/fwupd/src/fu-engine.c:7630,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7635,1
    - Dst: fu_plugin_runner_add_security_attrs
      Src: /src/fwupd/src/fu-engine.c:7636,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/src/fu-engine.c:7640,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7642,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-engine.c:7643,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7645,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-engine.c:7646,1
    - Dst: fwupd_security_attr_get_plugin
      Src: /src/fwupd/src/fu-engine.c:7647,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:7649,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-engine.c:7650,1
    - Dst: fwupd_security_attr_get_plugin
      Src: /src/fwupd/src/fu-engine.c:7651,1
    - Dst: fu_engine_security_attrs_depsolve
      Src: /src/fwupd/src/fu-engine.c:7657,1
    - Dst: fu_engine_record_security_attrs
      Src: /src/fwupd/src/fu-engine.c:7660,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:7661,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7663
      start: 7610
    functionDepth: 7
    functionLinenumber: 7610
    functionLinenumberEnd: 7663
    functionName: fu_engine_ensure_security_attrs
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 4
    functionsReached:
    - fu_security_attrs_is_valid
    - fwupd_security_attr_get_result
    - fu_engine_ensure_security_attrs_tainted
    - fwupd_security_attr_get_plugin
    - fu_device_add_security_attrs
    - g_debug
    - fwupd_security_attr_get_appstream_id
    - fu_plugin_runner_add_security_attrs
    - fu_engine_security_attrs_depsolve
    - g_warning
    - fu_engine_record_security_attrs
    - fu_plugin_list_get_all
    - fu_device_list_get_active
    - g_autoptr
    - fu_engine_ensure_security_attrs_supported_cpu
    - fu_security_attrs_get_all
    - g_ptr_array_index
    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:7668,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:7668,1
    - Dst: fu_engine_ensure_security_attrs
      Src: /src/fwupd/src/fu-engine.c:7669,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine.c:7670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7671
      start: 7665
    functionDepth: 8
    functionLinenumber: 7665
    functionLinenumberEnd: 7671
    functionName: fu_engine_get_host_security_attrs
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_engine_ensure_security_attrs
    - g_object_ref
    - FU_IS_ENGINE
    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:7676,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/src/fu-engine.c:7676,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7677,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:7679,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:7679,1
    - Dst: fu_history_get_security_attrs
      Src: /src/fwupd/src/fu-engine.c:7681,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7685,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7686,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7687,1
    - Dst: fu_security_attrs_compare
      Src: /src/fwupd/src/fu-engine.c:7687,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7689,1
    - Dst: fwupd_security_attr_get_title
      Src: /src/fwupd/src/fu-engine.c:7690,1
    - Dst: fwupd_security_attr_set_title
      Src: /src/fwupd/src/fu-engine.c:7691,1
    - Dst: fu_security_attr_get_title
      Src: /src/fwupd/src/fu-engine.c:7692,1
    - Dst: fwupd_security_attr_get_description
      Src: /src/fwupd/src/fu-engine.c:7694,1
    - Dst: fwupd_security_attr_set_description
      Src: /src/fwupd/src/fu-engine.c:7695,1
    - Dst: fu_security_attr_get_description
      Src: /src/fwupd/src/fu-engine.c:7697,1
    - Dst: fu_security_attrs_append_internal
      Src: /src/fwupd/src/fu-engine.c:7699,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:7704,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - self
    - limit
    - error
    argTypes:
    - FuEngine*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7705
      start: 7673
    functionDepth: 6
    functionLinenumber: 7673
    functionLinenumberEnd: 7705
    functionName: fu_engine_get_host_security_events
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_history_get_security_attrs
    - fu_security_attr_get_description
    - g_steal_pointer
    - fwupd_security_attr_get_description
    - fu_security_attrs_new
    - fu_security_attr_get_title
    - fu_security_attrs_compare
    - fwupd_security_attr_set_description
    - fwupd_security_attr_get_title
    - fwupd_security_attr_set_title
    - fu_security_attrs_append_internal
    - FU_IS_ENGINE
    - g_autoptr
    - g_ptr_array_index
    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:7711,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7712,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:7715,1
    - Dst: fu_progress_set_name
      Src: /src/fwupd/src/fu-engine.c:7716,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:7717,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:7718,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:7719,1
    - Dst: fu_plugin_guess_name_from_fn
      Src: /src/fwupd/src/fu-engine.c:7722,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/src/fu-engine.c:7724,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/src/fu-engine.c:7729,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/src/fu-engine.c:7730,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-engine.c:7731,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7732,1
    - Dst: fu_plugin_open
      Src: /src/fwupd/src/fu-engine.c:7735,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:7736,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - self
    - filename
    - progress
    argTypes:
    - FuEngine*
    - gchar*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7738
      start: 7707
    functionDepth: 2
    functionLinenumber: 7707
    functionLinenumberEnd: 7738
    functionName: fu_engine_load_plugins_filename
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_progress_finished
    - fu_progress_set_name
    - fu_plugin_guess_name_from_fn
    - fu_progress_add_step
    - fu_progress_add_flag
    - fu_progress_step_done
    - fu_plugin_set_name
    - fu_engine_add_plugin
    - g_warning
    - fu_plugin_new
    - g_autoptr
    - fu_plugin_open
    - fu_progress_set_id
    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:7743,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:7744,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7746,1
    - Dst: fu_engine_load_plugins_filename
      Src: /src/fwupd/src/fu-engine.c:7747,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:7747,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - filenames
    - progress
    argTypes:
    - FuEngine*
    - GPtrArray*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7750
      start: 7740
    functionDepth: 3
    functionLinenumber: 7740
    functionLinenumberEnd: 7750
    functionName: fu_engine_load_plugins_filenames
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_steps
    - fu_engine_load_plugins_filename
    - fu_progress_step_done
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    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:7764,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:7765,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7768,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/src/fu-engine.c:7768,1
    - Dst: fu_progress_set_name
      Src: /src/fwupd/src/fu-engine.c:7769,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:7769,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-engine.c:7769,1
    - Dst: fu_engine_add_plugin
      Src: /src/fwupd/src/fu-engine.c:7770,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7771,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuEngine*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7773
      start: 7752
    functionDepth: 2
    functionLinenumber: 7752
    functionLinenumberEnd: 7773
    functionName: fu_engine_load_plugins_builtins
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_name
    - fu_plugin_new_from_gtype
    - fu_plugin_get_name
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_engine_add_plugin
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_engine_load_plugins_builtins(FuEngine *self, FuProgress *progress)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7781,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:7781,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:7784,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:7785,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:7786,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:7787,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:7788,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine.c:7793,1
    - Dst: fu_context_get_path
      Src: /src/fwupd/src/fu-engine.c:7795,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine.c:7798,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7800,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7801,1
    - Dst: fu_path_get_files
      Src: /src/fwupd/src/fu-engine.c:7802,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7804,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7810,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-engine.c:7811,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:7813,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:7813,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7817,1
    - Dst: fu_engine_load_plugins_filenames
      Src: /src/fwupd/src/fu-engine.c:7821,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:7821,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7822,1
    - Dst: fu_engine_load_plugins_builtins
      Src: /src/fwupd/src/fu-engine.c:7826,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:7826,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7827,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - self
    - flags
    - progress
    - error
    argTypes:
    - FuEngine*
    - FuEngineLoadFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7831
      start: 7775
    functionDepth: 4
    functionLinenumber: 7775
    functionLinenumberEnd: 7831
    functionName: fu_engine_load_plugins
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_engine_load_plugins_filenames
    - g_debug
    - fu_progress_add_step
    - fu_progress_add_flag
    - g_str_has_suffix
    - g_ptr_array_add
    - fu_progress_step_done
    - g_strsplit
    - fu_engine_load_plugins_builtins
    - fu_context_get_path
    - g_autoptr
    - g_auto
    - fu_path_get_files
    - g_ptr_array_new_with_free_func
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    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:7836,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7837,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:7837,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7838,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:7838,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:7841,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:7842,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:7844,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-engine.c:7845,1
    - Dst: fu_progress_set_name
      Src: /src/fwupd/src/fu-engine.c:7848,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:7848,1
    - Dst: fu_engine_is_plugin_name_disabled
      Src: /src/fwupd/src/fu-engine.c:7851,1
    - Dst: fu_engine_is_test_plugin_disabled
      Src: /src/fwupd/src/fu-engine.c:7852,1
    - Dst: fu_engine_is_plugin_name_enabled
      Src: /src/fwupd/src/fu-engine.c:7853,1
    - Dst: fu_engine_plugin_allows_enumeration
      Src: /src/fwupd/src/fu-engine.c:7854,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:7855,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:7855,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/src/fu-engine.c:7856,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7857,1
    - Dst: fu_plugin_runner_init
      Src: /src/fwupd/src/fu-engine.c:7862,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-engine.c:7865,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:7866,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:7866,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7867,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:7872,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/src/fu-engine.c:7872,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:7874,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:7876,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/src/fu-engine.c:7876,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:7878,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:7880,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/src/fu-engine.c:7880,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:7882,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:7884,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/src/fu-engine.c:7884,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:7886,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:7888,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/src/fu-engine.c:7888,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:7890,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:7892,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:7898,1
    - Dst: g_strjoinv
      Src: /src/fwupd/src/fu-engine.c:7899,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:7900,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:7904,1
    - Dst: g_strjoinv
      Src: /src/fwupd/src/fu-engine.c:7905,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:7906,1
    - Dst: fu_plugin_list_depsolve
      Src: /src/fwupd/src/fu-engine.c:7910,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuEngine*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7915
      start: 7833
    functionDepth: 2
    functionLinenumber: 7833
    functionLinenumberEnd: 7915
    functionName: fu_engine_plugins_init
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - fu_engine_is_plugin_name_disabled
    - g_ptr_array_index
    - fu_engine_is_plugin_name_enabled
    - g_signal_connect
    - fu_engine_plugin_allows_enumeration
    - fu_progress_set_steps
    - fu_plugin_list_get_all
    - g_ptr_array_new_with_free_func
    - g_info
    - fu_plugin_has_flag
    - fu_engine_is_test_plugin_disabled
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_progress_set_id
    - g_strdup
    - fu_progress_set_name
    - fu_plugin_runner_init
    - FU_PLUGIN
    - fu_plugin_get_name
    - g_ptr_array_add
    - fu_plugin_list_depsolve
    - G_CALLBACK
    - g_strjoinv
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_plugins_init(FuEngine *self, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-engine.c:7924,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7925,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-engine.c:7925,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/src/fu-engine.c:7926,1
    - Dst: g_file_delete
      Src: /src/fwupd/src/fu-engine.c:7927,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7932
      start: 7917
    functionDepth: 0
    functionLinenumber: 7917
    functionLinenumberEnd: 7932
    functionName: fu_engine_cleanup_state
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_file_delete
    - g_file_query_exists
    - G_N_ELEMENTS
    - g_file_new_for_path
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_cleanup_state(GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_path_store
      Src: /src/fwupd/src/fu-engine.c:7937,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7940,1
    - Dst: fu_bios_settings_new
      Src: /src/fwupd/src/fu-engine.c:7940,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7941,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7942,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/src/fu-engine.c:7944,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-engine.c:7951,1
    - Dst: g_dir_open
      Src: /src/fwupd/src/fu-engine.c:7954,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/src/fu-engine.c:7957,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-engine.c:7960,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine.c:7962,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:7963,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-engine.c:7964,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/src/fu-engine.c:7966,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-engine.c:7966,1
    - Dst: fu_bios_settings_to_hash_kv
      Src: /src/fwupd/src/fu-engine.c:7969,1
    - Dst: fu_engine_modify_bios_settings
      Src: /src/fwupd/src/fu-engine.c:7970,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7971
      start: 7934
    functionDepth: 3
    functionLinenumber: 7934
    functionLinenumberEnd: 7971
    functionName: fu_engine_apply_default_bios_settings_policy
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_from_json_string
    - FWUPD_CODEC
    - fu_context_build_filename
    - g_info
    - g_str_has_suffix
    - g_file_get_contents
    - fu_bios_settings_to_hash_kv
    - fu_context_get_path_store
    - g_file_test
    - g_dir_read_name
    - g_dir_open
    - fu_bios_settings_new
    - fu_engine_modify_bios_settings
    - g_autoptr
    - g_build_filename
    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:7978,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-engine.c:7982,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine.c:7982,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:7983,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7984,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7986,1
    - Dst: fu_context_get_bios_settings
      Src: /src/fwupd/src/fu-engine.c:7987,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:7988,1
    - Dst: fu_bios_settings_get_all
      Src: /src/fwupd/src/fu-engine.c:7988,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7991,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/src/fu-engine.c:7995,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:7996,1
    - Dst: fu_engine_apply_default_bios_settings_policy
      Src: /src/fwupd/src/fu-engine.c:7999,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:8000,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8001,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:8003,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - self
    - device
    - added
    argTypes:
    - FuEngine*
    - FuDevice*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8008
      start: 7973
    functionDepth: 4
    functionLinenumber: 7973
    functionLinenumberEnd: 8008
    functionName: fu_engine_check_firmware_attributes
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_context_reload_bios_settings
    - g_strcmp0
    - g_debug
    - fu_bios_settings_get_all
    - fu_udev_device_get_subsystem
    - fu_engine_apply_default_bios_settings_policy
    - g_warning
    - fu_context_get_bios_settings
    - g_error_matches
    - FU_IS_UDEV_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    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:8013,1
    - Dst: fu_engine_check_firmware_attributes
      Src: /src/fwupd/src/fu-engine.c:8016,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8019,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/src/fu-engine.c:8019,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:8019,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:8022,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8024,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:8025,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:8025,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:8026,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-engine.c:8028,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine.c:8029,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:8031,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:8035,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:8036,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:8040,1
    - Dst: fu_plugin_remove_device
      Src: /src/fwupd/src/fu-engine.c:8041,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - backend
    - device
    - self
    argTypes:
    - FuBackend*
    - FuDevice*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8044
      start: 8010
    functionDepth: 5
    functionLinenumber: 8010
    functionLinenumberEnd: 8044
    functionName: fu_engine_backend_device_removed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_id
    - fu_backend_get_name
    - g_strcmp0
    - fu_device_get_id_display
    - fu_plugin_remove_device
    - g_debug
    - g_info
    - fu_engine_check_firmware_attributes
    - fu_plugin_list_find_by_name
    - fu_device_has_private_flag
    - fu_device_get_plugin
    - fu_device_list_get_active
    - g_autoptr
    - g_ptr_array_index
    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:8056,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:8057,1
    - Dst: fu_plugin_runner_backend_device_added
      Src: /src/fwupd/src/fu-engine.c:8062,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:8066,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:8070,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: 8079
      start: 8046
    functionDepth: 1
    functionLinenumber: 8046
    functionLinenumberEnd: 8079
    functionName: fu_engine_backend_device_added_run_plugin
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_id
    - fu_progress_set_name
    - fu_plugin_runner_backend_device_added
    - g_set_error
    - fu_plugin_list_find_by_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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8084,1
    - Dst: fu_device_get_possible_plugins
      Src: /src/fwupd/src/fu-engine.c:8084,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8089,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8090,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-engine.c:8091,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8093,1
    - Dst: fu_device_get_instance_ids
      Src: /src/fwupd/src/fu-engine.c:8096,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-engine.c:8097,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine.c:8098,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:8104,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:8105,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8107,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8108,1
    - Dst: fu_engine_backend_device_added_run_plugin
      Src: /src/fwupd/src/fu-engine.c:8109,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8112,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:8114,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:8115,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8116,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:8118,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:8119,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:8122,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8123,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8126,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - self
    - device
    - progress
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8128
      start: 8081
    functionDepth: 8
    functionLinenumber: 8081
    functionLinenumberEnd: 8128
    functionName: fu_engine_backend_device_added_run_plugins
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_add_device
    - fu_device_get_backend_id
    - g_debug
    - fu_engine_backend_device_added_run_plugin
    - fu_progress_add_flag
    - fu_device_locker_new
    - fu_progress_set_steps
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_device_remove_flag
    - g_warning
    - g_error_matches
    - fu_device_get_possible_plugins
    - g_autoptr
    - fu_device_get_instance_ids
    - g_ptr_array_index
    - fu_progress_set_id
    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:8133,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:8136,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:8137,1
    - Dst: fu_progress_set_name
      Src: /src/fwupd/src/fu-engine.c:8138,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:8138,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8139,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8140,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/src/fu-engine.c:8143,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine.c:8144,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:8144,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8145,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:8145,1
    - Dst: fu_device_set_context
      Src: /src/fwupd/src/fu-engine.c:8149,1
    - Dst: fu_device_probe
      Src: /src/fwupd/src/fu-engine.c:8150,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:8151,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:8152,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:8153,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:8154,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8157,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:8158,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/src/fu-engine.c:8161,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8164,1
    - Dst: fu_engine_ensure_device_emulation_tag
      Src: /src/fwupd/src/fu-engine.c:8167,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/src/fu-engine.c:8170,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/src/fu-engine.c:8171,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-engine.c:8171,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8172,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:8172,1
    - Dst: fu_engine_check_firmware_attributes
      Src: /src/fwupd/src/fu-engine.c:8176,1
    - Dst: fu_engine_backend_device_added_run_plugins
      Src: /src/fwupd/src/fu-engine.c:8179,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8179,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8180,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - self
    - device
    - progress
    argTypes:
    - FuEngine*
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8181
      start: 8130
    functionDepth: 9
    functionLinenumber: 8130
    functionLinenumberEnd: 8181
    functionName: fu_engine_backend_device_added
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_device_set_context
    - fu_device_probe
    - fu_progress_finished
    - fu_device_to_string
    - g_debug
    - g_log_get_debug_enabled
    - fu_engine_ensure_device_emulation_tag
    - fu_progress_add_step
    - fu_progress_step_done
    - FU_DEVICE
    - g_warning
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_device_get_backend_id
    - fu_progress_set_name
    - fu_engine_check_firmware_attributes
    - g_error_matches
    - fu_engine_backend_device_added_run_plugins
    - g_autoptr
    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:8186,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine.c:8186,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8187,1
    - Dst: fu_engine_backend_device_added
      Src: /src/fwupd/src/fu-engine.c:8189,1
    - Dst: fu_device_probe_complete
      Src: /src/fwupd/src/fu-engine.c:8192,1
    - Dst: fu_device_get_possible_plugins
      Src: /src/fwupd/src/fu-engine.c:8195,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8197,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:8198,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/src/fu-engine.c:8199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - backend
    - device
    - self
    argTypes:
    - FuBackend*
    - FuDevice*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8201
      start: 8183
    functionDepth: 10
    functionLinenumber: 8183
    functionLinenumberEnd: 8201
    functionName: fu_engine_backend_device_added_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_probe_complete
    - fu_device_get_backend_id
    - g_debug
    - fu_progress_new
    - 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: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:8206,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8207,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8210,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/src/fu-engine.c:8210,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-engine.c:8210,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:8213,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8215,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:8216,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine.c:8218,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine.c:8218,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:8220,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/src/fu-engine.c:8220,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine.c:8220,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/src/fu-engine.c:8221,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine.c:8221,1
    - Dst: fu_udev_device_emit_changed
      Src: /src/fwupd/src/fu-engine.c:8222,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine.c:8222,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8228,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:8229,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine.c:8231,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:8233,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:8233,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:8234,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8235,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:8235,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/src/fu-engine.c:8236,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8242,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8243,1
    - Dst: fu_plugin_runner_backend_device_changed
      Src: /src/fwupd/src/fu-engine.c:8244,1
    - Dst: g_critical
      Src: /src/fwupd/src/fu-engine.c:8248,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:8250,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:8254,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8255,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-engine.c:8256,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:8260,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-engine.c:8261,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:8262,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 3
    argNames:
    - backend
    - device
    - self
    argTypes:
    - FuBackend*
    - FuDevice*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8266
      start: 8203
    functionDepth: 1
    functionLinenumber: 8203
    functionLinenumberEnd: 8266
    functionName: fu_engine_backend_device_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_critical
    - fu_device_get_physical_id
    - fu_device_incorporate
    - fu_device_list_get_active
    - fu_udev_device_emit_changed
    - g_ptr_array_index
    - g_debug
    - fu_device_has_flag
    - fu_plugin_runner_backend_device_changed
    - fu_plugin_list_get_all
    - fu_udev_device_get_sysfs_path
    - g_warning
    - FU_UDEV_DEVICE
    - fu_device_get_backend_id
    - fu_backend_get_name
    - g_strcmp0
    - fu_plugin_get_name
    - fu_device_get_id
    - g_error_matches
    - FU_IS_UDEV_DEVICE
    - g_autoptr
    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:8273,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/src/fu-engine.c:8276,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine.c:8279,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8281,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:8282,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:8284,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:8290,1
    - Dst: fu_plugin_remove_flag
      Src: /src/fwupd/src/fu-engine.c:8291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - hwid
    argTypes:
    - FuEngine*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8293
      start: 8268
    functionDepth: 1
    functionLinenumber: 8268
    functionLinenumberEnd: 8293
    functionName: fu_engine_load_quirks_for_hwid
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_info
    - fu_context_lookup_quirk_by_id
    - fu_plugin_remove_flag
    - g_strsplit
    - g_autoptr
    - g_auto
    - fu_plugin_list_find_by_name
    linkageType: ''
    returnType: void
    signature: void fu_engine_load_quirks_for_hwid(FuEngine *self, const gchar *hwid)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8301,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8302,1
    - Dst: fu_device_list_get_by_id
      Src: /src/fwupd/src/fu-engine.c:8305,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine.c:8305,1
    - Dst: FU_RELEASE
      Src: /src/fwupd/src/fu-engine.c:8311,1
    - Dst: fu_device_get_release_default
      Src: /src/fwupd/src/fu-engine.c:8311,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine.c:8313,1
    - Dst: fu_engine_get_boot_time
      Src: /src/fwupd/src/fu-engine.c:8322,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:8323,1
    - Dst: fu_release_get_metadata_item
      Src: /src/fwupd/src/fu-engine.c:8323,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:8324,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:8327,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-engine.c:8328,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:8329,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:8329,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8330,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:8332,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:8333,1
    - Dst: fu_device_report_metadata_post
      Src: /src/fwupd/src/fu-engine.c:8340,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/src/fu-engine.c:8341,1
    - Dst: fu_release_add_metadata
      Src: /src/fwupd/src/fu-engine.c:8342,1
    - Dst: fu_history_modify_device_release
      Src: /src/fwupd/src/fu-engine.c:8343,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:8347,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:8353,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine.c:8353,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-engine.c:8356,1
    - Dst: fu_engine_update_release_integrity
      Src: /src/fwupd/src/fu-engine.c:8357,1
    - Dst: fu_plugin_runner_reboot_cleanup
      Src: /src/fwupd/src/fu-engine.c:8360,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:8361,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine.c:8366,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:8366,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:8367,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:8368,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:8370,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:8371,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:8372,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/src/fu-engine.c:8375,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8377,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/src/fu-engine.c:8378,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine.c:8380,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine.c:8380,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine.c:8381,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:8381,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-engine.c:8382,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:8383,1
    - Dst: fu_history_modify_device_release
      Src: /src/fwupd/src/fu-engine.c:8384,1
    - Dst: fu_plugin_runner_get_results
      Src: /src/fwupd/src/fu-engine.c:8391,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:8395,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:8396,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8397,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:8397,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:8398,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:8399,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine.c:8400,1
    - Dst: fu_release_get_version
      Src: /src/fwupd/src/fu-engine.c:8402,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine.c:8403,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/src/fu-engine.c:8404,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/src/fu-engine.c:8406,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:8406,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/src/fu-engine.c:8407,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/src/fu-engine.c:8407,1
    - Dst: fu_history_modify_device_release
      Src: /src/fwupd/src/fu-engine.c:8411,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 68
    argCount: 3
    argNames:
    - self
    - dev_history
    - error
    argTypes:
    - FuEngine*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8412
      start: 8295
    functionDepth: 6
    functionLinenumber: 8295
    functionLinenumberEnd: 8412
    functionName: fu_engine_update_history_device
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_boot_time
    - fu_device_set_version
    - FU_RELEASE
    - fu_device_get_release_default
    - g_hash_table_size
    - fu_device_get_plugin
    - fu_device_set_update_state
    - fu_device_set_version_format
    - g_ptr_array_index
    - fu_device_get_checksums
    - fu_device_get_id_display
    - g_debug
    - g_set_error_literal
    - fu_release_get_metadata_item
    - fu_device_get_update_state
    - g_prefix_error_literal
    - fu_release_get_version
    - fu_device_get_update_error
    - fu_release_add_metadata
    - fu_plugin_runner_reboot_cleanup
    - g_string_new
    - fu_device_get_version_format
    - fu_device_report_metadata_post
    - g_info
    - fu_plugin_has_flag
    - fu_device_set_update_error
    - fu_device_remove_flag
    - fu_plugin_list_find_by_name
    - g_strcmp0
    - fu_history_modify_device_release
    - fu_device_list_get_by_id
    - fu_version_compare
    - fu_plugin_runner_get_results
    - fu_device_get_id
    - fu_device_get_version
    - fu_device_add_checksum
    - g_string_append_printf
    - g_autoptr
    - fu_engine_update_release_integrity
    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:8417,1
    - Dst: fu_history_get_devices
      Src: /src/fwupd/src/fu-engine.c:8420,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8424,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8425,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:8428,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/src/fu-engine.c:8429,1
    - Dst: fu_engine_update_history_device
      Src: /src/fwupd/src/fu-engine.c:8433,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:8434,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8435,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:8439,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8443
      start: 8414
    functionDepth: 7
    functionLinenumber: 8414
    functionLinenumberEnd: 8443
    functionName: fu_engine_update_history_database
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_history_get_devices
    - g_debug
    - fu_device_get_update_state
    - fu_engine_update_history_device
    - g_warning
    - g_error_matches
    - g_autoptr
    - g_ptr_array_index
    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:8448,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/src/fu-engine.c:8448,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8449,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8450,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8451,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-engine.c:8454,1
    - Dst: g_message
      Src: /src/fwupd/src/fu-engine.c:8458,1
    - Dst: fu_jcat_engine_self_sign
      Src: /src/fwupd/src/fu-engine.c:8462,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:8464,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:8465,1
    - Dst: g_message
      Src: /src/fwupd/src/fu-engine.c:8468,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:8471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8472
      start: 8445
    functionDepth: 1
    functionLinenumber: 8445
    functionLinenumberEnd: 8472
    functionName: fu_engine_ensure_client_certificate
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_message
    - fu_jcat_context_get_engine
    - g_info
    - fu_jcat_engine_self_sign
    - g_error_matches
    - g_autoptr
    - g_bytes_new_static
    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:8482,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/src/fu-engine.c:8483,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:8485,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/src/fu-engine.c:8486,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8491,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-engine.c:8492,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:8498,1
    - Dst: fu_context_set_battery_threshold
      Src: /src/fwupd/src/fu-engine.c:8503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8504
      start: 8474
    functionDepth: 1
    functionLinenumber: 8474
    functionLinenumberEnd: 8504
    functionName: fu_engine_context_set_battery_threshold
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_context_get_hwid_replace_value
    - fu_context_lookup_quirk_by_id
    - fu_strtoull
    - fu_context_set_battery_threshold
    - g_warning
    - fwupd_guid_hash_string
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_context_set_battery_threshold(FuContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-engine.c:8513,1
    - Dst: fu_engine_metadata_changed
      Src: /src/fwupd/src/fu-engine.c:8514,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: 8515
      start: 8506
    functionDepth: 6
    functionLinenumber: 8506
    functionLinenumberEnd: 8515
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-engine.c:8523,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8526,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8527,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/src/fu-engine.c:8529,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8535,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-engine.c:8538,1
    - Dst: g_file_monitor_directory
      Src: /src/fwupd/src/fu-engine.c:8539,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:8541,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8544,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8546,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine.c:8548,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine.c:8548,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8553
      start: 8517
    functionDepth: 1
    functionLinenumber: 8517
    functionLinenumberEnd: 8553
    functionName: fu_engine_load_local_metadata_watches
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_file_monitor_directory
    - g_signal_connect
    - g_debug
    - fu_context_build_filename
    - g_steal_pointer
    - g_ptr_array_add
    - g_warning
    - G_N_ELEMENTS
    - G_CALLBACK
    - g_file_new_for_path
    - g_autoptr
    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:8566,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:8568,1
    - Dst: g_strndup
      Src: /src/fwupd/src/fu-engine.c:8576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - hkey
    - subkey
    - value
    - error
    argTypes:
    - HKEY
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8577
      start: 8556
    functionDepth: 0
    functionLinenumber: 8556
    functionLinenumberEnd: 8577
    functionName: fu_engine_win32_registry_get_string
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - RegGetValue
    - g_set_error
    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:8586,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/src/fu-engine.c:8586,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:8589,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:8590,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8592,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8593,1
    - Dst: fu_engine_backend_device_added
      Src: /src/fwupd/src/fu-engine.c:8595,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8595,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8596,1
    - Dst: fu_device_probe_complete
      Src: /src/fwupd/src/fu-engine.c:8599,1
    - Dst: fu_device_get_possible_plugins
      Src: /src/fwupd/src/fu-engine.c:8602,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8604,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-engine.c:8605,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/src/fu-engine.c:8606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - self
    - backend
    - progress
    - error
    argTypes:
    - FuEngine*
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8612
      start: 8580
    functionDepth: 10
    functionLinenumber: 8580
    functionLinenumberEnd: 8612
    functionName: fu_engine_backends_coldplug_backend_add_devices
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_device_probe_complete
    - fu_device_get_backend_id
    - g_debug
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_engine_backend_device_added
    - fu_backend_device_removed
    - fu_device_get_possible_plugins
    - fu_backend_get_devices
    - g_autoptr
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    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:8621,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:8622,1
    - Dst: fu_progress_set_name
      Src: /src/fwupd/src/fu-engine.c:8623,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/src/fu-engine.c:8623,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8624,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8625,1
    - Dst: fu_backend_coldplug
      Src: /src/fwupd/src/fu-engine.c:8628,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8628,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8630,1
    - Dst: fu_engine_backends_coldplug_backend_add_devices
      Src: /src/fwupd/src/fu-engine.c:8633,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8635,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8637,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8640,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-engine.c:8640,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8642,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8644,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-engine.c:8644,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8646,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8648,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-engine.c:8648,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - self
    - backend
    - progress
    - error
    argTypes:
    - FuEngine*
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8653
      start: 8614
    functionDepth: 11
    functionLinenumber: 8614
    functionLinenumberEnd: 8653
    functionName: fu_engine_backends_coldplug_backend
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_name
    - fu_backend_get_name
    - g_signal_connect
    - fu_progress_add_step
    - fu_engine_backends_coldplug_backend_add_devices
    - fu_progress_add_flag
    - fu_progress_step_done
    - fu_backend_coldplug
    - G_CALLBACK
    - FU_BACKEND
    - fu_progress_get_child
    - fu_progress_set_id
    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:8658,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:8659,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-engine.c:8660,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8662,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8663,1
    - Dst: fu_backend_get_enabled
      Src: /src/fwupd/src/fu-engine.c:8665,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8666,1
    - Dst: fu_engine_backends_coldplug_backend
      Src: /src/fwupd/src/fu-engine.c:8669,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8671,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine.c:8673,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:8676,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/src/fu-engine.c:8677,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:8680,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/src/fu-engine.c:8681,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/src/fu-engine.c:8684,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8684,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8686,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuEngine*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8688
      start: 8655
    functionDepth: 12
    functionLinenumber: 8655
    functionLinenumberEnd: 8688
    functionName: fu_engine_backends_coldplug
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_progress_finished
    - fu_backend_get_name
    - g_debug
    - fu_progress_get_child
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_engine_backends_coldplug_backend
    - g_warning
    - g_error_matches
    - fu_context_get_backends
    - g_autoptr
    - fu_backend_get_enabled
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_engine_backends_coldplug(FuEngine *self, FuProgress *progress)
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_backends
      Src: /src/fwupd/src/fu-engine.c:8707,1
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:8708,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-engine.c:8709,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8713,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8714,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8715,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:8717,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine.c:8717,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:8718,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/src/fu-engine.c:8718,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine.c:8719,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-engine.c:8726,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/src/fu-engine.c:8727,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8728,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8729,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8730,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8731,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8732,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8733,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8734,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8735,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8736,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8737,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8738,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8739,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8740,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8741,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8742,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/src/fu-engine.c:8743,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:8746,1
    - Dst: fwupd_version_string
      Src: /src/fwupd/src/fu-engine.c:8746,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine.c:8747,1
    - Dst: fwupd_version_string
      Src: /src/fwupd/src/fu-engine.c:8751,1
    - Dst: fu_context_get_path
      Src: /src/fwupd/src/fu-engine.c:8757,1
    - Dst: fu_jcat_context_set_keyring_path
      Src: /src/fwupd/src/fu-engine.c:8759,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/src/fu-engine.c:8760,1
    - Dst: fu_jcat_context_add_public_keys
      Src: /src/fwupd/src/fu-engine.c:8767,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/src/fu-engine.c:8768,1
    - Dst: fu_jcat_context_add_public_keys
      Src: /src/fwupd/src/fu-engine.c:8775,1
    - Dst: fu_engine_win32_registry_get_string
      Src: /src/fwupd/src/fu-engine.c:8780,1
    - Dst: fu_engine_build_machine_id
      Src: /src/fwupd/src/fu-engine.c:8785,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:8788,1
    - Dst: fu_config_load
      Src: /src/fwupd/src/fu-engine.c:8791,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine.c:8791,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:8794,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8797,1
    - Dst: fu_engine_config_get_esp_location
      Src: /src/fwupd/src/fu-engine.c:8800,1
    - Dst: fu_context_set_esp_location
      Src: /src/fwupd/src/fu-engine.c:8801,1
    - Dst: fu_engine_config_get_esp_location
      Src: /src/fwupd/src/fu-engine.c:8802,1
    - Dst: fu_engine_config_get_test_devices
      Src: /src/fwupd/src/fu-engine.c:8808,1
    - Dst: fu_remote_list_set_lvfs_metadata_format
      Src: /src/fwupd/src/fu-engine.c:8814,1
    - Dst: fu_remote_list_load
      Src: /src/fwupd/src/fu-engine.c:8815,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:8816,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8820,1
    - Dst: fu_engine_ensure_client_certificate
      Src: /src/fwupd/src/fu-engine.c:8824,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8825,1
    - Dst: fu_engine_config_get_approved_firmware
      Src: /src/fwupd/src/fu-engine.c:8828,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8830,1
    - Dst: fu_engine_add_approved_firmware
      Src: /src/fwupd/src/fu-engine.c:8831,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8836,1
    - Dst: fu_history_get_approved_firmware
      Src: /src/fwupd/src/fu-engine.c:8838,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8842,1
    - Dst: fu_engine_add_approved_firmware
      Src: /src/fwupd/src/fu-engine.c:8843,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8846,1
    - Dst: fu_engine_load_plugins
      Src: /src/fwupd/src/fu-engine.c:8849,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8849,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:8850,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8853,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-engine.c:8856,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/src/fu-engine.c:8858,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:8860,1
    - Dst: fu_engine_config_get_esp_location
      Src: /src/fwupd/src/fu-engine.c:8860,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:8861,1
    - Dst: fu_config_set_value
      Src: /src/fwupd/src/fu-engine.c:8862,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine.c:8862,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:8872,1
    - Dst: fu_idle_set_timeout
      Src: /src/fwupd/src/fu-engine.c:8873,1
    - Dst: fu_engine_config_get_idle_timeout
      Src: /src/fwupd/src/fu-engine.c:8873,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/src/fu-engine.c:8880,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine.c:8881,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8882,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/src/fu-engine.c:8886,1
    - Dst: fu_engine_config_get_ignore_efivars_free_space
      Src: /src/fwupd/src/fu-engine.c:8889,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/src/fu-engine.c:8890,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/src/fu-engine.c:8894,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8895,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8902,1
    - Dst: fu_engine_load_metadata_store
      Src: /src/fwupd/src/fu-engine.c:8905,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:8906,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8909,1
    - Dst: fu_engine_load_local_metadata_watches
      Src: /src/fwupd/src/fu-engine.c:8912,1
    - Dst: fu_engine_add_firmware_gtypes
      Src: /src/fwupd/src/fu-engine.c:8916,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-engine.c:8923,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine.c:8924,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/src/fu-engine.c:8926,1
    - Dst: fu_engine_load_host_emulation
      Src: /src/fwupd/src/fu-engine.c:8935,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:8936,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8952,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:8953,1
    - Dst: fu_backend_setup
      Src: /src/fwupd/src/fu-engine.c:8954,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8956,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:8958,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/src/fu-engine.c:8959,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8965,1
    - Dst: fu_engine_cleanup_state
      Src: /src/fwupd/src/fu-engine.c:8968,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:8969,1
    - Dst: fu_engine_plugins_init
      Src: /src/fwupd/src/fu-engine.c:8974,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:8974,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine.c:8975,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8978,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:8981,1
    - Dst: fu_context_get_hwid_guids
      Src: /src/fwupd/src/fu-engine.c:8982,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:8984,1
    - Dst: fu_engine_load_quirks_for_hwid
      Src: /src/fwupd/src/fu-engine.c:8985,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:8988,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine.c:8991,1
    - Dst: fu_engine_context_set_battery_threshold
      Src: /src/fwupd/src/fu-engine.c:8992,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8995,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-engine.c:8995,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:8997,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:8999,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-engine.c:8999,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:9001,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:9003,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-engine.c:9003,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:9005,1
    - Dst: fu_engine_set_status
      Src: /src/fwupd/src/fu-engine.c:9007,1
    - Dst: fu_engine_ensure_context_flag_save_events
      Src: /src/fwupd/src/fu-engine.c:9011,1
    - Dst: fu_engine_plugins_startup
      Src: /src/fwupd/src/fu-engine.c:9012,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:9012,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:9013,1
    - Dst: fu_engine_plugins_coldplug
      Src: /src/fwupd/src/fu-engine.c:9014,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:9014,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:9015,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:9017,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:9018,1
    - Dst: fu_engine_backends_coldplug
      Src: /src/fwupd/src/fu-engine.c:9023,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:9023,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:9024,1
    - Dst: fu_engine_plugins_ready
      Src: /src/fwupd/src/fu-engine.c:9028,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/src/fu-engine.c:9028,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:9029,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:9031,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/src/fu-engine.c:9035,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:9036,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine.c:9036,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:9038,1
    - Dst: fu_backend_add_string
      Src: /src/fwupd/src/fu-engine.c:9039,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:9042,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-engine.c:9043,1
    - Dst: fu_plugin_add_string
      Src: /src/fwupd/src/fu-engine.c:9045,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:9047,1
    - Dst: fu_engine_update_history_database
      Src: /src/fwupd/src/fu-engine.c:9052,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-engine.c:9055,1
    - Dst: fu_engine_update_devices_file
      Src: /src/fwupd/src/fu-engine.c:9058,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine.c:9059,1
    - Dst: fu_engine_set_status
      Src: /src/fwupd/src/fu-engine.c:9061,1
    - Dst: fu_engine_emit_changed
      Src: /src/fwupd/src/fu-engine.c:9065,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 218
    argCount: 4
    argNames:
    - self
    - flags
    - progress
    - error
    argTypes:
    - FuEngine*
    - FuEngineLoadFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9069
      start: 8701
    functionDepth: 13
    functionLinenumber: 8701
    functionLinenumberEnd: 9069
    functionName: fu_engine_load
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 47
    functionsReached:
    - fu_engine_emit_changed
    - fu_backend_setup
    - fu_jcat_context_set_keyring_path
    - g_ptr_array_index
    - fu_history_get_approved_firmware
    - fu_context_set_esp_location
    - g_log_get_debug_enabled
    - fu_engine_ensure_context_flag_save_events
    - fu_engine_add_firmware_gtypes
    - fu_plugin_list_get_all
    - fu_context_get_backends
    - fwupd_version_string
    - fu_engine_plugins_startup
    - g_info
    - fu_config_set_value
    - fu_plugin_get_config_value
    - fu_plugin_list_find_by_name
    - fu_engine_plugins_ready
    - fu_engine_config_get_esp_location
    - fu_engine_config_get_approved_firmware
    - fu_context_get_path
    - fu_context_load_quirks
    - fu_plugin_add_string
    - fu_engine_build_machine_id
    - fu_engine_win32_registry_get_string
    - fu_engine_plugins_coldplug
    - g_return_val_if_fail
    - fu_idle_set_timeout
    - fu_engine_load_local_metadata_watches
    - fu_engine_backends_coldplug
    - fu_context_add_flag
    - fu_progress_add_flag
    - fu_config_load
    - fu_engine_cleanup_state
    - fu_context_load_hwinfo
    - fu_engine_add_approved_firmware
    - g_string_new
    - fu_engine_plugins_init
    - g_getenv
    - fu_plugin_has_flag
    - fu_progress_step_done
    - fu_engine_load_quirks_for_hwid
    - FU_CONFIG
    - fu_engine_config_get_ignore_efivars_free_space
    - fu_engine_load_metadata_store
    - g_strdup
    - g_strcmp0
    - fu_backend_get_name
    - fu_engine_update_history_database
    - fu_context_build_filename
    - fu_remote_list_load
    - fu_jcat_context_add_public_keys
    - FU_IS_PROGRESS
    - fu_engine_ensure_client_certificate
    - fu_context_has_flag
    - fu_engine_config_get_idle_timeout
    - FU_DEVICE_LIST
    - fu_engine_config_get_test_devices
    - fu_context_get_hwid_guids
    - g_signal_connect
    - g_prefix_error_literal
    - fu_remote_list_set_lvfs_metadata_format
    - fu_engine_set_status
    - fu_engine_load_host_emulation
    - fu_backend_add_string
    - fu_engine_update_devices_file
    - fu_progress_add_step
    - g_warning
    - FU_IS_ENGINE
    - fu_engine_load_plugins
    - fu_progress_get_child
    - fu_progress_set_id
    - g_set_error
    - g_file_test
    - G_CALLBACK
    - g_autoptr
    - fu_engine_context_set_battery_threshold
    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:9074,1
    - Dst: g_value_set_object
      Src: /src/fwupd/src/fu-engine.c:9077,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/src/fu-engine.c:9080,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: 9083
      start: 9071
    functionDepth: 0
    functionLinenumber: 9071
    functionLinenumberEnd: 9083
    functionName: fu_engine_get_property
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - FU_ENGINE
    - g_value_set_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    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:9088,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-engine.c:9091,1
    - Dst: g_value_get_object
      Src: /src/fwupd/src/fu-engine.c:9091,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/src/fu-engine.c:9094,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: 9097
      start: 9085
    functionDepth: 0
    functionLinenumber: 9085
    functionLinenumberEnd: 9097
    functionName: fu_engine_set_property
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - FU_ENGINE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_set_object
    - 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:9102,1
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-engine.c:9105,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:9107,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/src/fu-engine.c:9108,1
    - Dst: fu_plugin_list_remove_all
      Src: /src/fwupd/src/fu-engine.c:9110,1
    - Dst: fu_device_list_remove_all
      Src: /src/fwupd/src/fu-engine.c:9113,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/src/fu-engine.c:9115,1
    - Dst: fu_context_get_backends
      Src: /src/fwupd/src/fu-engine.c:9118,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:9120,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/src/fu-engine.c:9121,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-engine.c:9123,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/src/fu-engine.c:9124,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-engine.c:9126,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-engine.c:9128,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9129
      start: 9099
    functionDepth: 1
    functionLinenumber: 9099
    functionLinenumberEnd: 9129
    functionName: fu_engine_dispose
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_plugin_list_remove_all
    - FU_ENGINE
    - g_signal_handlers_disconnect_by_data
    - g_ptr_array_set_size
    - G_OBJECT_CLASS
    - fu_plugin_list_get_all
    - g_clear_object
    - fu_context_get_backends
    - fu_device_list_remove_all
    - g_ptr_array_index
    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:9135,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-engine.c:9151,1
    - Dst: g_quark_from_static_string
      Src: /src/fwupd/src/fu-engine.c:9152,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/src/fu-engine.c:9154,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/src/fu-engine.c:9159,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-engine.c:9168,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-engine.c:9169,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-engine.c:9184,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-engine.c:9185,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-engine.c:9201,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-engine.c:9202,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-engine.c:9218,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-engine.c:9219,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-engine.c:9236,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-engine.c:9237,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-engine.c:9253,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-engine.c:9254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEngineClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9263
      start: 9131
    functionDepth: 0
    functionLinenumber: 9131
    functionLinenumberEnd: 9263
    functionName: fu_engine_class_init
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_quark_from_static_string
    - g_param_spec_object
    - g_signal_new
    - G_OBJECT_CLASS
    - G_TYPE_FROM_CLASS
    - G_N_ELEMENTS
    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:9268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - component_id
    - version
    argTypes:
    - FuEngine*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9269
      start: 9265
    functionDepth: 1
    functionLinenumber: 9265
    functionLinenumberEnd: 9269
    functionName: fu_engine_add_runtime_version
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 1
    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:9274,1
    - Dst: fu_device_list_get_active
      Src: /src/fwupd/src/fu-engine.c:9274,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:9278,1
    - Dst: fu_engine_ensure_device_power_inhibit
      Src: /src/fwupd/src/fu-engine.c:9279,1
    - Dst: fu_engine_ensure_device_lid_inhibit
      Src: /src/fwupd/src/fu-engine.c:9280,1
    - Dst: fu_engine_ensure_device_display_required_inhibit
      Src: /src/fwupd/src/fu-engine.c:9281,1
    - Dst: fu_engine_ensure_device_system_inhibit
      Src: /src/fwupd/src/fu-engine.c:9282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9284
      start: 9271
    functionDepth: 2
    functionLinenumber: 9271
    functionLinenumberEnd: 9284
    functionName: fu_engine_context_power_changed
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_engine_ensure_device_display_required_inhibit
    - fu_engine_ensure_device_lid_inhibit
    - fu_engine_ensure_device_system_inhibit
    - fu_engine_ensure_device_power_inhibit
    - fu_device_list_get_active
    - g_autoptr
    - g_ptr_array_index
    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:9289,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:9290,1
    - Dst: fu_engine_context_power_changed
      Src: /src/fwupd/src/fu-engine.c:9293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - pspec
    - self
    argTypes:
    - FuContext*
    - GParamSpec*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9294
      start: 9286
    functionDepth: 3
    functionLinenumber: 9286
    functionLinenumberEnd: 9294
    functionName: fu_engine_context_power_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_idle_has_inhibit
    - fu_engine_context_power_changed
    - g_debug
    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:9299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - idle
    - self
    argTypes:
    - FuIdle*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9300
      start: 9296
    functionDepth: 1
    functionLinenumber: 9296
    functionLinenumberEnd: 9300
    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:9305,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/src/fu-engine.c:9306,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine.c:9307,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine.c:9308,1
    - Dst: fu_engine_context_power_changed
      Src: /src/fwupd/src/fu-engine.c:9312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - idle
    - pspec
    - self
    argTypes:
    - FuIdle*
    - GParamSpec*
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9314
      start: 9302
    functionDepth: 3
    functionLinenumber: 9302
    functionLinenumberEnd: 9314
    functionName: fu_engine_idle_inhibit_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_idle_has_inhibit
    - g_hash_table_size
    - fu_engine_context_power_changed
    - g_hash_table_remove_all
    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:9319,1
    - Dst: fu_context_get_path_store
      Src: /src/fwupd/src/fu-engine.c:9320,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:9325,1
    - Dst: FU_CONTEXT
      Src: /src/fwupd/src/fu-engine.c:9325,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:9327,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:9329,1
    - Dst: FU_CONTEXT
      Src: /src/fwupd/src/fu-engine.c:9329,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:9331,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:9333,1
    - Dst: FU_CONTEXT
      Src: /src/fwupd/src/fu-engine.c:9333,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:9335,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:9337,1
    - Dst: FU_CONTEXT
      Src: /src/fwupd/src/fu-engine.c:9337,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:9339,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:9341,1
    - Dst: FU_CONTEXT
      Src: /src/fwupd/src/fu-engine.c:9341,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:9343,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:9345,1
    - Dst: FU_CONTEXT
      Src: /src/fwupd/src/fu-engine.c:9345,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:9347,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:9349,1
    - Dst: FU_CONTEXT
      Src: /src/fwupd/src/fu-engine.c:9349,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:9351,1
    - Dst: fu_engine_config_new
      Src: /src/fwupd/src/fu-engine.c:9354,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:9355,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine.c:9355,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:9357,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:9360,1
    - Dst: FU_IDLE
      Src: /src/fwupd/src/fu-engine.c:9360,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:9362,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:9364,1
    - Dst: FU_IDLE
      Src: /src/fwupd/src/fu-engine.c:9364,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:9366,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:9371,1
    - Dst: fu_usb_backend_new
      Src: /src/fwupd/src/fu-engine.c:9371,1
    - Dst: fu_context_add_backend
      Src: /src/fwupd/src/fu-engine.c:9372,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:9375,1
    - Dst: fu_uefi_backend_new
      Src: /src/fwupd/src/fu-engine.c:9375,1
    - Dst: fu_context_add_backend
      Src: /src/fwupd/src/fu-engine.c:9376,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:9380,1
    - Dst: fu_udev_backend_new
      Src: /src/fwupd/src/fu-engine.c:9380,1
    - Dst: fu_context_add_backend
      Src: /src/fwupd/src/fu-engine.c:9381,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine.c:9386,1
    - Dst: fu_bluez_backend_new
      Src: /src/fwupd/src/fu-engine.c:9386,1
    - Dst: fu_context_add_backend
      Src: /src/fwupd/src/fu-engine.c:9387,1
    - Dst: fu_history_new
      Src: /src/fwupd/src/fu-engine.c:9391,1
    - Dst: fu_engine_emulator_new
      Src: /src/fwupd/src/fu-engine.c:9392,1
    - Dst: fu_remote_list_new
      Src: /src/fwupd/src/fu-engine.c:9394,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:9395,1
    - Dst: FU_REMOTE_LIST
      Src: /src/fwupd/src/fu-engine.c:9395,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:9397,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine.c:9399,1
    - Dst: FU_REMOTE_LIST
      Src: /src/fwupd/src/fu-engine.c:9399,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine.c:9401,1
    - Dst: fu_jcat_context_new
      Src: /src/fwupd/src/fu-engine.c:9405,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-engine.c:9406,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-engine.c:9407,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-engine.c:9408,1
    - Dst: fu_engine_add_runtime_version
      Src: /src/fwupd/src/fu-engine.c:9411,1
    - Dst: fu_engine_add_runtime_version
      Src: /src/fwupd/src/fu-engine.c:9412,1
    - Dst: xb_version_string
      Src: /src/fwupd/src/fu-engine.c:9412,1
    - Dst: uname
      Src: /src/fwupd/src/fu-engine.c:9416,1
    - Dst: fu_engine_add_runtime_version
      Src: /src/fwupd/src/fu-engine.c:9417,1
    - Dst: fu_context_add_compile_version
      Src: /src/fwupd/src/fu-engine.c:9420,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine.c:9422,1
    - Dst: fu_context_add_compile_version
      Src: /src/fwupd/src/fu-engine.c:9423,1
    - Dst: fu_context_add_compile_version
      Src: /src/fwupd/src/fu-engine.c:9427,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:9430,1
    - Dst: fu_context_add_compile_version
      Src: /src/fwupd/src/fu-engine.c:9434,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine.c:9438,1
    - Dst: fu_context_add_compile_version
      Src: /src/fwupd/src/fu-engine.c:9442,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-engine.c:9446,1
    - Dst: fu_context_add_compile_version
      Src: /src/fwupd/src/fu-engine.c:9447,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-engine.c:9449,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-engine.c:9453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 52
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9454
      start: 9316
    functionDepth: 2
    functionLinenumber: 9316
    functionLinenumberEnd: 9454
    functionName: fu_engine_constructed
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - fu_udev_backend_new
    - uname
    - G_OBJECT_CLASS
    - g_strdup_printf
    - fu_jcat_context_allow_blob_kind
    - xb_version_string
    - fu_bluez_backend_new
    - fu_remote_list_new
    - fu_uefi_backend_new
    - g_signal_connect
    - fu_context_add_compile_version
    - fu_usb_backend_new
    - fu_history_new
    - g_getenv
    - fu_engine_emulator_new
    - FU_ENGINE
    - fu_jcat_context_new
    - FU_REMOTE_LIST
    - fu_engine_config_new
    - FU_IDLE
    - FU_CONFIG
    - g_strcmp0
    - fu_context_add_backend
    - fu_context_get_path_store
    - G_CALLBACK
    - fu_engine_add_runtime_version
    - g_autoptr
    - FU_CONTEXT
    linkageType: ''
    returnType: void
    signature: void fu_engine_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_list_new
      Src: /src/fwupd/src/fu-engine.c:9459,1
    - Dst: fu_idle_new
      Src: /src/fwupd/src/fu-engine.c:9460,1
    - Dst: fu_plugin_list_new
      Src: /src/fwupd/src/fu-engine.c:9461,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:9462,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/src/fu-engine.c:9463,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:9464,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine.c:9465,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/src/fu-engine.c:9466,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-engine.c:9468,1
    - Dst: passim_client_new
      Src: /src/fwupd/src/fu-engine.c:9470,1
    - Dst: g_resources_register
      Src: /src/fwupd/src/fu-engine.c:9474,1
    - Dst: fu_get_resource
      Src: /src/fwupd/src/fu-engine.c:9474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9475
      start: 9456
    functionDepth: 1
    functionLinenumber: 9456
    functionLinenumberEnd: 9475
    functionName: fu_engine_init
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_main_loop_new
    - passim_client_new
    - g_resources_register
    - fu_idle_new
    - fu_security_attrs_new
    - g_hash_table_new_full
    - g_ptr_array_new_with_free_func
    - fu_plugin_list_new
    - fu_device_list_new
    - fu_get_resource
    linkageType: ''
    returnType: void
    signature: void fu_engine_init(FuEngine *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-engine.c:9480,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine.c:9483,1
    - Dst: g_file_monitor_cancel
      Src: /src/fwupd/src/fu-engine.c:9484,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9488,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9490,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9492,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9494,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9496,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/src/fu-engine.c:9498,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-engine.c:9500,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-engine.c:9502,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9504,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9507,1
    - Dst: g_main_loop_unref
      Src: /src/fwupd/src/fu-engine.c:9509,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-engine.c:9511,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9512,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9513,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9514,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9515,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9516,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9517,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9518,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-engine.c:9519,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-engine.c:9520,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-engine.c:9521,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/src/fu-engine.c:9522,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-engine.c:9523,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-engine.c:9525,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9526
      start: 9477
    functionDepth: 0
    functionLinenumber: 9477
    functionLinenumberEnd: 9526
    functionName: fu_engine_finalize
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 0
    functionsReached:
    - g_source_remove
    - g_ptr_array_unref
    - FU_ENGINE
    - g_object_unref
    - G_OBJECT_CLASS
    - g_main_loop_unref
    - g_free
    - g_file_monitor_cancel
    - g_hash_table_unref
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_engine_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ENGINE
      Src: /src/fwupd/src/fu-engine.c:9531,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-engine.c:9531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9532
      start: 9528
    functionDepth: 0
    functionLinenumber: 9528
    functionLinenumberEnd: 9532
    functionName: fu_engine_new
    functionSourceFile: /src/fwupd/src/fu-engine.c
    functionUses: 40
    functionsReached:
    - FU_ENGINE
    - g_object_new
    linkageType: ''
    returnType: FuEngine
    signature: 'FuEngine *

      fu_engine_new(FuContext *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper-test.c:16,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-helper-test.c:16,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper-test.c:17,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-helper-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper-test.c:18,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-helper-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper-test.c:19,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-helper-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper-test.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper-test.c:23,1
    - Dst: fu_engine_error_array_get_best
      Src: /src/fwupd/src/fu-engine-helper-test.c:26,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-helper-test.c:27,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper-test.c:30,1
    - Dst: g_error_new_literal
      Src: /src/fwupd/src/fu-engine-helper-test.c:30,1
    - Dst: fu_engine_error_array_get_best
      Src: /src/fwupd/src/fu-engine-helper-test.c:31,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-helper-test.c:32,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper-test.c:35,1
    - Dst: g_error_new_literal
      Src: /src/fwupd/src/fu-engine-helper-test.c:35,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper-test.c:36,1
    - Dst: g_error_new_literal
      Src: /src/fwupd/src/fu-engine-helper-test.c:36,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper-test.c:37,1
    - Dst: g_error_new_literal
      Src: /src/fwupd/src/fu-engine-helper-test.c:37,1
    - Dst: fu_engine_error_array_get_best
      Src: /src/fwupd/src/fu-engine-helper-test.c:38,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-helper-test.c:39,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper-test.c:42,1
    - Dst: g_error_new_literal
      Src: /src/fwupd/src/fu-engine-helper-test.c:42,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper-test.c:43,1
    - Dst: g_error_new_literal
      Src: /src/fwupd/src/fu-engine-helper-test.c:43,1
    - Dst: fu_engine_error_array_get_best
      Src: /src/fwupd/src/fu-engine-helper-test.c:44,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-helper-test.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 46
    functionName: fu_engine_error_array_func
    functionSourceFile: /src/fwupd/src/fu-engine-helper-test.c
    functionUses: 0
    functionsReached:
    - g_assert_error
    - g_ptr_array_add
    - g_error_new_literal
    - fu_engine_error_array_get_best
    - g_autoptr
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_engine_error_array_func(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper-test.c:55,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-engine-helper-test.c:57,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-engine-helper-test.c:58,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-engine-helper-test.c:61,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-engine-helper-test.c:62,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-engine-helper-test.c:67,1
    - Dst: fu_engine_build_machine_id
      Src: /src/fwupd/src/fu-engine-helper-test.c:71,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-helper-test.c:72,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-helper-test.c:73,1
    - Dst: fu_engine_build_machine_id
      Src: /src/fwupd/src/fu-engine-helper-test.c:74,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-helper-test.c:75,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-helper-test.c:76,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-helper-test.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 78
    functionName: fu_engine_machine_hash_func
    functionSourceFile: /src/fwupd/src/fu-engine-helper-test.c
    functionUses: 0
    functionsReached:
    - g_file_get_contents
    - g_assert_no_error
    - g_file_test
    - fu_engine_build_machine_id
    - g_test_skip
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_engine_machine_hash_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper-test.c:84,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-helper-test.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper-test.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper-test.c:88,1
    - Dst: fu_efivars_set_secure_boot
      Src: /src/fwupd/src/fu-engine-helper-test.c:91,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/src/fu-engine-helper-test.c:91,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-helper-test.c:92,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-helper-test.c:93,1
    - Dst: fu_engine_integrity_new
      Src: /src/fwupd/src/fu-engine-helper-test.c:95,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-helper-test.c:96,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-helper-test.c:97,1
    - Dst: fu_engine_integrity_to_string
      Src: /src/fwupd/src/fu-engine-helper-test.c:98,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-helper-test.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 100
    functionName: fu_engine_integrity_func
    functionSourceFile: /src/fwupd/src/fu-engine-helper-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - g_debug
    - g_assert_nonnull
    - g_assert_no_error
    - fu_engine_integrity_to_string
    - fu_context_get_efivars
    - fu_context_new_full
    - fu_efivars_set_secure_boot
    - g_autoptr
    - fu_engine_integrity_new
    linkageType: ''
    returnType: void
    signature: void fu_engine_integrity_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-engine-helper-test.c:105,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-helper-test.c:106,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-helper-test.c:107,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-helper-test.c:108,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-engine-helper-test.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-engine-helper-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: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-usb-backend.c:46,1
    - Dst: libusb_get_bus_number
      Src: /src/fwupd/src/fu-usb-backend.c:47,1
    - Dst: libusb_get_device_address
      Src: /src/fwupd/src/fu-usb-backend.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - usb_device
    argTypes:
    - libusb_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: fu_usb_backend_get_usb_device_backend_id
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - libusb_get_device_address
    - g_strdup_printf
    - libusb_get_bus_number
    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:54,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-usb-backend.c:55,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - usb_device
    argTypes:
    - FuUsbBackend*
    - libusb_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 63
    functionName: fu_usb_backend_create_device
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_BACKEND
    - fu_usb_backend_get_usb_device_backend_id
    linkageType: ''
    returnType: FuUsbDevice
    signature: 'FuUsbDevice *

      fu_usb_backend_create_device(FuUsbBackend *self, libusb_device *usb_device)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:69,1
    - Dst: fu_backend_get_context
      Src: /src/fwupd/src/fu-usb-backend.c:70,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-usb-backend.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend.c:75,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-usb-backend.c:78,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-usb-backend.c:79,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-usb-backend.c:80,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-usb-backend.c:87,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-usb-backend.c:88,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-usb-backend.c:91,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-usb-backend.c:92,1
    - Dst: libusb_get_device_list
      Src: /src/fwupd/src/fu-usb-backend.c:97,1
    - Dst: libusb_get_bus_number
      Src: /src/fwupd/src/fu-usb-backend.c:99,1
    - Dst: libusb_get_device_address
      Src: /src/fwupd/src/fu-usb-backend.c:100,1
    - Dst: fu_usb_device_new
      Src: /src/fwupd/src/fu-usb-backend.c:101,1
    - Dst: libusb_free_device_list
      Src: /src/fwupd/src/fu-usb-backend.c:105,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-usb-backend.c:109,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-usb-backend.c:118,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-usb-backend.c:118,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - backend
    - backend_id
    - error
    argTypes:
    - FuBackend*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 119
    functionName: fu_usb_backend_create_device_impl
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_auto
    - fu_usb_device_new
    - g_set_error
    - libusb_free_device_list
    - fu_strtoull
    - g_steal_pointer
    - g_prefix_error
    - libusb_get_device_list
    - g_strsplit
    - g_strv_length
    - FU_DEVICE
    - FU_USB_BACKEND
    - libusb_get_bus_number
    - fu_backend_get_context
    - g_autoptr
    - libusb_get_device_address
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_usb_backend_create_device_impl(FuBackend *backend, const gchar *backend_id,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_backend_get_usb_device_backend_id
      Src: /src/fwupd/src/fu-usb-backend.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend.c:127,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/src/fu-usb-backend.c:129,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:129,1
    - Dst: fu_usb_backend_create_device
      Src: /src/fwupd/src/fu-usb-backend.c:132,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/src/fu-usb-backend.c:133,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:133,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-usb-backend.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - usb_device
    argTypes:
    - FuUsbBackend*
    - libusb_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: fu_usb_backend_add_device
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - fu_backend_lookup_by_id
    - fu_usb_backend_create_device
    - fu_backend_device_added
    - FU_DEVICE
    - FU_BACKEND
    - g_autoptr
    - fu_usb_backend_get_usb_device_backend_id
    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:139,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/src/fu-usb-backend.c:140,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:140,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/src/fu-usb-backend.c:142,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - self
    - usb_device
    argTypes:
    - FuUsbBackend*
    - libusb_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: fu_usb_backend_remove_device
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - fu_backend_device_removed
    - fu_backend_lookup_by_id
    - FU_BACKEND
    - fu_usb_backend_get_usb_device_backend_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:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend.c:150,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/src/fu-usb-backend.c:150,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:150,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-usb-backend.c:153,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-usb-backend.c:158,1
    - Dst: g_list_prepend
      Src: /src/fwupd/src/fu-usb-backend.c:159,1
    - Dst: libusb_get_device_list
      Src: /src/fwupd/src/fu-usb-backend.c:163,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/src/fu-usb-backend.c:165,1
    - Dst: libusb_get_bus_number
      Src: /src/fwupd/src/fu-usb-backend.c:168,1
    - Dst: fu_usb_device_get_bus
      Src: /src/fwupd/src/fu-usb-backend.c:168,1
    - Dst: libusb_get_device_address
      Src: /src/fwupd/src/fu-usb-backend.c:169,1
    - Dst: fu_usb_device_get_address
      Src: /src/fwupd/src/fu-usb-backend.c:170,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/src/fu-usb-backend.c:176,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:176,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-usb-backend.c:176,1
    - Dst: fu_usb_backend_add_device
      Src: /src/fwupd/src/fu-usb-backend.c:181,1
    - Dst: libusb_free_device_list
      Src: /src/fwupd/src/fu-usb-backend.c:183,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 184
    functionName: fu_usb_backend_rescan
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_getenv
    - fu_usb_backend_add_device
    - fu_usb_device_get_bus
    - libusb_free_device_list
    - libusb_get_device_list
    - g_list_prepend
    - fu_usb_device_get_address
    - fu_backend_device_removed
    - FU_DEVICE
    - libusb_get_bus_number
    - libusb_get_device_address
    - FU_USB_DEVICE
    - fu_backend_get_devices
    - g_autoptr
    - FU_BACKEND
    - g_ptr_array_index
    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:189,1
    - Dst: fu_usb_backend_rescan
      Src: /src/fwupd/src/fu-usb-backend.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 192
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_clear_handle_id
      Src: /src/fwupd/src/fu-usb-backend.c:197,1
    - Dst: g_timeout_add
      Src: /src/fwupd/src/fu-usb-backend.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 202
    functionName: fu_usb_backend_ensure_rescan_timeout
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_timeout_add
    - g_clear_handle_id
    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:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - hotplug_poll_interval
    argTypes:
    - FuUsbBackend*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 216
    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:222,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-usb-backend.c:226,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-usb-backend.c:227,1
    - Dst: fu_usb_backend_set_hotplug_poll_interval
      Src: /src/fwupd/src/fu-usb-backend.c:229,1
    - Dst: fu_usb_backend_set_hotplug_poll_interval
      Src: /src/fwupd/src/fu-usb-backend.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - pspec
    - backend
    argTypes:
    - FuDevice*
    - GParamSpec*
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 235
    functionName: fu_usb_backend_device_notify_flags_cb
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - fu_device_has_flag
    - g_debug
    - fu_usb_backend_set_hotplug_poll_interval
    - 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:248,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-usb-backend.c:249,1
    - Dst: libusb_ref_device
      Src: /src/fwupd/src/fu-usb-backend.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - src
    - user_data
    argTypes:
    - gconstpointer
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 253
    functionName: fu_usb_backend_idle_helper_copy
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - libusb_ref_device
    - g_new0
    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:259,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend.c:260,1
    - Dst: g_mutex_lock
      Src: /src/fwupd/src/fu-usb-backend.c:263,1
    - Dst: g_ptr_array_copy
      Src: /src/fwupd/src/fu-usb-backend.c:264,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-usb-backend.c:265,1
    - Dst: g_mutex_unlock
      Src: /src/fwupd/src/fu-usb-backend.c:267,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-usb-backend.c:271,1
    - Dst: fu_usb_backend_add_device
      Src: /src/fwupd/src/fu-usb-backend.c:274,1
    - Dst: fu_usb_backend_remove_device
      Src: /src/fwupd/src/fu-usb-backend.c:277,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 286
    functionName: fu_usb_backend_idle_hotplug_cb
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_mutex_unlock
    - fu_usb_backend_add_device
    - g_ptr_array_set_size
    - g_ptr_array_copy
    - FU_USB_BACKEND
    - g_ptr_array_index
    - fu_usb_backend_remove_device
    - g_autoptr
    - g_mutex_lock
    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:295,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-usb-backend.c:297,1
    - Dst: g_mutex_locker_new
      Src: /src/fwupd/src/fu-usb-backend.c:297,1
    - Dst: g_assert
      Src: /src/fwupd/src/fu-usb-backend.c:299,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-usb-backend.c:301,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-usb-backend.c:302,1
    - Dst: libusb_ref_device
      Src: /src/fwupd/src/fu-usb-backend.c:303,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-usb-backend.c:306,1
    - Dst: g_idle_add
      Src: /src/fwupd/src/fu-usb-backend.c:308,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: 311
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 311
    functionName: LIBUSB_CALL::fu_usb_backend_hotplug_cb
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_idle_add
    - g_new0
    - libusb_ref_device
    - g_assert
    - g_ptr_array_add
    - g_object_ref
    - FU_USB_BACKEND
    - g_autoptr
    - g_mutex_locker_new
    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:316,1
    - Dst: g_atomic_int_get
      Src: /src/fwupd/src/fu-usb-backend.c:321,1
    - Dst: libusb_handle_events_timeout_completed
      Src: /src/fwupd/src/fu-usb-backend.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 324
    functionName: fu_usb_backend_event_thread_cb
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_atomic_int_get
    - FU_USB_BACKEND
    - libusb_handle_events_timeout_completed
    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:333,1
    - Dst: fu_backend_get_context
      Src: /src/fwupd/src/fu-usb-backend.c:334,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:334,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/src/fu-usb-backend.c:335,1
    - Dst: libusb_init_context
      Src: /src/fwupd/src/fu-usb-backend.c:343,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-usb-backend.c:343,1
    - Dst: libusb_init
      Src: /src/fwupd/src/fu-usb-backend.c:345,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-usb-backend.c:348,1
    - Dst: libusb_strerror
      Src: /src/fwupd/src/fu-usb-backend.c:352,1
    - Dst: libusb_set_option
      Src: /src/fwupd/src/fu-usb-backend.c:357,1
    - Dst: libusb_set_debug
      Src: /src/fwupd/src/fu-usb-backend.c:359,1
    - Dst: fu_context_set_data
      Src: /src/fwupd/src/fu-usb-backend.c:361,1
    - Dst: g_thread_new
      Src: /src/fwupd/src/fu-usb-backend.c:369,1
    - Dst: libusb_has_capability
      Src: /src/fwupd/src/fu-usb-backend.c:372,1
    - Dst: libusb_hotplug_register_callback
      Src: /src/fwupd/src/fu-usb-backend.c:373,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-usb-backend.c:384,1
    - Dst: libusb_strerror
      Src: /src/fwupd/src/fu-usb-backend.c:388,1
    - Dst: fu_usb_backend_set_hotplug_poll_interval
      Src: /src/fwupd/src/fu-usb-backend.c:393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - backend
    - flags
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuBackendSetupFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 400
    functionName: fu_usb_backend_setup
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - libusb_strerror
    - libusb_has_capability
    - fu_usb_backend_set_hotplug_poll_interval
    - g_set_error
    - libusb_set_option
    - libusb_set_debug
    - libusb_init_context
    - g_log_get_debug_enabled
    - libusb_hotplug_register_callback
    - fu_context_set_data
    - g_thread_new
    - G_N_ELEMENTS
    - FU_USB_BACKEND
    - fu_backend_get_context
    - FU_BACKEND
    - libusb_init
    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:406,1
    - Dst: fu_usb_backend_rescan
      Src: /src/fwupd/src/fu-usb-backend.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - backend
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 403
    functionDepth: 4
    functionLinenumber: 403
    functionLinenumberEnd: 409
    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:416,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-usb-backend.c:420,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-usb-backend.c:420,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-usb-backend.c:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - backend
    - device
    argTypes:
    - FuBackend*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 425
    functionName: fu_usb_backend_registered
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - G_CALLBACK
    - g_signal_connect
    - FU_IS_USB_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_usb_backend_registered(FuBackend *backend, FuDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dev
    argTypes:
    - libusb_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: libusb_get_parent
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: libusb_device
    signature: 'libusb_device *

      libusb_get_parent(libusb_device *dev)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_BACKEND
      Src: /src/fwupd/src/fu-usb-backend.c:442,1
    - Dst: fu_usb_device_get_dev
      Src: /src/fwupd/src/fu-usb-backend.c:443,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/src/fu-usb-backend.c:443,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-usb-backend.c:448,1
    - Dst: libusb_get_parent
      Src: /src/fwupd/src/fu-usb-backend.c:451,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-usb-backend.c:453,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-usb-backend.c:456,1
    - Dst: fu_usb_backend_create_device
      Src: /src/fwupd/src/fu-usb-backend.c:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - backend
    - device
    - subsystem
    - error
    argTypes:
    - FuBackend*
    - FuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 457
    functionName: fu_usb_backend_get_device_parent
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - fu_usb_backend_create_device
    - libusb_get_parent
    - fu_usb_device_get_dev
    - g_set_error_literal
    - FU_DEVICE
    - FU_USB_BACKEND
    - FU_USB_DEVICE
    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:464,1
    - Dst: g_atomic_int_dec_and_test
      Src: /src/fwupd/src/fu-usb-backend.c:467,1
    - Dst: libusb_hotplug_deregister_callback
      Src: /src/fwupd/src/fu-usb-backend.c:468,1
    - Dst: g_thread_join
      Src: /src/fwupd/src/fu-usb-backend.c:469,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-usb-backend.c:472,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-usb-backend.c:474,1
    - Dst: libusb_exit
      Src: /src/fwupd/src/fu-usb-backend.c:476,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/src/fu-usb-backend.c:477,1
    - Dst: g_mutex_clear
      Src: /src/fwupd/src/fu-usb-backend.c:478,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-usb-backend.c:481,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 482
    functionName: fu_usb_backend_finalize
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_clear_pointer
    - g_source_remove
    - libusb_hotplug_deregister_callback
    - G_OBJECT_CLASS
    - libusb_exit
    - FU_USB_BACKEND
    - g_mutex_clear
    - g_atomic_int_dec_and_test
    - g_thread_join
    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:488,1
    - Dst: libusb_unref_device
      Src: /src/fwupd/src/fu-usb-backend.c:489,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-usb-backend.c:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuUsbBackendIdleHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 491
    functionName: fu_usb_backend_idle_helper_free
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - libusb_unref_device
    - g_free
    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:499,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-usb-backend.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 503
    functionName: fu_usb_backend_init
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - g_mutex_init
    - g_ptr_array_new_with_free_func
    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:508,1
    - Dst: FU_BACKEND_CLASS
      Src: /src/fwupd/src/fu-usb-backend.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbBackendClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 518
    functionName: fu_usb_backend_class_init
    functionSourceFile: /src/fwupd/src/fu-usb-backend.c
    functionUses: 0
    functionsReached:
    - FU_BACKEND_CLASS
    - G_OBJECT_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:523,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-usb-backend.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 524
    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: 16
    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_LIST
    - fu_plugin_get_rules
    - g_info
    - fu_plugin_get_name
    - fu_plugin_has_flag
    - fu_plugin_add_flag
    - fu_plugin_list_find_by_name
    - g_ptr_array_index
    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: 1
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - FU_PLUGIN
    - g_signal_connect
    - FU_IS_PLUGIN
    - fu_plugin_get_name
    - g_ptr_array_add
    - g_return_if_fail
    - g_object_ref
    - FU_IS_PLUGIN_LIST
    - 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_signal_handlers_disconnect_by_data
    - g_return_if_fail
    - g_ptr_array_set_size
    - FU_IS_PLUGIN_LIST
    - g_ptr_array_index
    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: 22
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    - g_set_error_literal
    - g_hash_table_lookup
    - FU_IS_PLUGIN_LIST
    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: 1
    functionsReached:
    - g_return_val_if_fail
    - g_ptr_array_sort
    - fu_plugin_get_rules
    - g_info
    - fu_plugin_get_name
    - g_debug
    - fu_plugin_has_flag
    - g_set_error_literal
    - fu_plugin_add_flag
    - fu_plugin_set_order
    - fu_plugin_set_priority
    - fu_plugin_get_priority
    - FU_IS_PLUGIN_LIST
    - fu_plugin_get_order
    - fu_plugin_list_find_by_name
    - g_ptr_array_index
    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:
    - FU_PLUGIN_LIST
    - g_ptr_array_set_size
    - g_hash_table_remove_all
    - 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:
    - FU_PLUGIN_LIST
    - g_hash_table_unref
    - G_OBJECT_CLASS
    - g_ptr_array_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: 1
    functionsReached:
    - g_object_new
    - FU_PLUGIN_LIST
    linkageType: ''
    returnType: FuPluginList
    signature: 'FuPluginList *

      fu_plugin_list_new(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-test.c:15,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/src/fu-util-test.c:15,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-test.c:16,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/src/fu-util-test.c:16,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/src/fu-util-test.c:20,1
    - Dst: fu_util_device_problem_to_string
      Src: /src/fwupd/src/fu-util-test.c:23,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-util-test.c:24,1
    - Dst: fwupd_release_flag_to_string
      Src: /src/fwupd/src/fu-util-test.c:27,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-util-test.c:30,1
    - Dst: fu_util_release_flag_to_string
      Src: /src/fwupd/src/fu-util-test.c:30,1
    - Dst: fwupd_request_flag_to_string
      Src: /src/fwupd/src/fu-util-test.c:33,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-util-test.c:36,1
    - Dst: fu_util_request_flag_to_string
      Src: /src/fwupd/src/fu-util-test.c:36,1
    - Dst: fwupd_plugin_flag_to_string
      Src: /src/fwupd/src/fu-util-test.c:42,1
    - Dst: fu_util_plugin_flag_to_string
      Src: /src/fwupd/src/fu-util-test.c:45,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-util-test.c:46,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 48
    functionName: fu_util_func
    functionSourceFile: /src/fwupd/src/fu-util-test.c
    functionUses: 0
    functionsReached:
    - fwupd_release_flag_to_string
    - fwupd_client_new
    - g_assert_nonnull
    - fu_util_request_flag_to_string
    - fu_util_device_problem_to_string
    - fu_util_plugin_flag_to_string
    - fwupd_device_problem_to_string
    - fwupd_device_new
    - fwupd_plugin_flag_to_string
    - g_autoptr
    - fu_util_release_flag_to_string
    - fwupd_request_flag_to_string
    linkageType: ''
    returnType: void
    signature: void fu_util_func(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-util-test.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-test.c:112,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-test.c:113,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/src/fu-util-test.c:113,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-test.c:114,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-util-test.c:115,1
    - Dst: g_test_message
      Src: /src/fwupd/src/fu-util-test.c:117,1
    - Dst: fwupd_device_add_flag
      Src: /src/fwupd/src/fu-util-test.c:119,1
    - Dst: fwupd_device_set_version
      Src: /src/fwupd/src/fu-util-test.c:121,1
    - Dst: fwupd_device_set_update_error
      Src: /src/fwupd/src/fu-util-test.c:123,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util-test.c:124,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util-test.c:124,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/src/fu-util-test.c:127,1
    - Dst: fwupd_device_add_flag
      Src: /src/fwupd/src/fu-util-test.c:128,1
    - Dst: fwupd_device_set_parent
      Src: /src/fwupd/src/fu-util-test.c:129,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util-test.c:130,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util-test.c:130,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-util-test.c:133,1
    - Dst: fu_util_is_interesting_device
      Src: /src/fwupd/src/fu-util-test.c:133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 137
    functionName: fu_util_interesting_device_func
    functionSourceFile: /src/fwupd/src/fu-util-test.c
    functionUses: 0
    functionsReached:
    - g_test_message
    - g_ptr_array_add
    - fwupd_device_set_parent
    - fwupd_device_add_flag
    - g_assert_cmpint
    - g_object_ref
    - fwupd_device_set_update_error
    - G_N_ELEMENTS
    - fwupd_device_new
    - g_autoptr
    - fwupd_device_set_version
    - g_ptr_array_new_with_free_func
    - fu_util_is_interesting_device
    linkageType: ''
    returnType: void
    signature: void fu_util_interesting_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-util-test.c:142,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-util-test.c:143,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-util-test.c:144,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-util-test.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-util-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: 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_strfreev
    - g_option_group_unref
    - g_free
    - g_option_group_set_parse_hooks
    - DeregisterEventSource
    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_getenv
    - g_date_time_get_second
    - g_string_append
    - g_date_time_new_now_utc
    - g_date_time_get_microsecond
    - g_strdup_printf
    - g_str_to_ascii
    - g_printerr
    - fu_strpassmask
    - fu_debug_handler_win32
    - g_date_time_get_minute
    - g_string_new
    - g_date_time_get_hour
    - g_autoptr
    - fu_debug_filter_cb
    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:
    - g_strcmp0
    - N_
    - g_getenv
    - g_option_group_add_entries
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_debug_pre_parse_hook(GOptionContext *context, GOptionGroup
      *group, gpointer data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/src/fu-debug.c:287,1
    - Dst: g_log_set_debug_enabled
      Src: /src/fwupd/src/fu-debug.c:288,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-debug.c:290,1
    - Dst: g_log_set_default_handler
      Src: /src/fwupd/src/fu-debug.c:295,1
    - Dst: isatty
      Src: /src/fwupd/src/fu-debug.c:298,1
    - Dst: fileno
      Src: /src/fwupd/src/fu-debug.c:298,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-debug.c:299,1
    - Dst: fu_debug_log_level_to_string
      Src: /src/fwupd/src/fu-debug.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - context
    - group
    - data
    - error
    argTypes:
    - GOptionContext*
    - GOptionGroup*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 304
    functionName: fu_debug_post_parse_hook
    functionSourceFile: /src/fwupd/src/fu-debug.c
    functionUses: 0
    functionsReached:
    - isatty
    - fileno
    - g_log_set_debug_enabled
    - g_setenv
    - g_info
    - fu_debug_log_level_to_string
    - g_log_set_default_handler
    - GLIB_CHECK_VERSION
    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:314,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-debug.c:324,1
    - Dst: GetLastError
      Src: /src/fwupd/src/fu-debug.c:324,1
    - Dst: GetModuleFileNameA
      Src: /src/fwupd/src/fu-debug.c:327,1
    - Dst: RegSetValueExA
      Src: /src/fwupd/src/fu-debug.c:328,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-debug.c:333,1
    - Dst: RegSetValueExA
      Src: /src/fwupd/src/fu-debug.c:334,1
    - Dst: RegCloseKey
      Src: /src/fwupd/src/fu-debug.c:335,1
    - Dst: RegisterEventSourceA
      Src: /src/fwupd/src/fu-debug.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDebug*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 339
    functionName: fu_debug_setup_event_source
    functionSourceFile: /src/fwupd/src/fu-debug.c
    functionUses: 0
    functionsReached:
    - RegisterEventSourceA
    - RegSetValueExA
    - GetModuleFileNameA
    - RegCreateKeyExA
    - g_warning
    - strlen
    - GetLastError
    - RegCloseKey
    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:346,1
    - Dst: g_option_group_new
      Src: /src/fwupd/src/fu-debug.c:348,1
    - Dst: _
      Src: /src/fwupd/src/fu-debug.c:350,1
    - Dst: _
      Src: /src/fwupd/src/fu-debug.c:352,1
    - Dst: g_option_group_set_parse_hooks
      Src: /src/fwupd/src/fu-debug.c:355,1
    - Dst: fu_debug_setup_event_source
      Src: /src/fwupd/src/fu-debug.c:359,1
    - Dst: g_option_group_ref
      Src: /src/fwupd/src/fu-debug.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 362
    functionName: fu_debug_get_option_group
    functionSourceFile: /src/fwupd/src/fu-debug.c
    functionUses: 3
    functionsReached:
    - g_new0
    - g_option_group_ref
    - _
    - g_option_group_new
    - fu_debug_setup_event_source
    - g_option_group_set_parse_hooks
    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_return_val_if_fail
    - g_strstr_len
    - g_utf8_strdown
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_release_uri_get_scheme(const gchar *uri)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_free
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stack
    argTypes:
    - STACK_OF_X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: STACK_OF_X509_free
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-common.c
    functionUses: 0
    functionsReached:
    - sk_X509_free
    linkageType: ''
    returnType: void
    signature: void STACK_OF_X509_free(STACK_OF_X509 *stack)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_peek_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:30,1
    - Dst: BIO_new
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:30,1
    - Dst: BIO_s_mem
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:30,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:34,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:36,1
    - Dst: ERR_print_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:38,1
    - Dst: BIO_get_mem_data
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:39,1
    - Dst: g_strndup
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 41
    functionName: fu_jcat_libcrypto_get_errors
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-common.c
    functionUses: 4
    functionsReached:
    - g_strdup
    - g_strndup
    - BIO_new
    - ERR_peek_error
    - ERR_print_errors
    - BIO_get_mem_data
    - g_autoptr
    - BIO_s_mem
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_jcat_libcrypto_get_errors(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:47,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:48,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:51,1
    - Dst: ERR_set_mark
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:61,1
    - Dst: BIO_new_mem_buf
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:63,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:63,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:65,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:66,1
    - Dst: PEM_read_bio_X509
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:75,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:76,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:77,1
    - Dst: ERR_pop_to_mark
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:85,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - blob
    - error
    argTypes:
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 88
    functionName: fu_jcat_libcrypto_pkcs7_load_crt_from_blob_pem
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-common.c
    functionUses: 4
    functionsReached:
    - g_set_error
    - g_bytes_get_data
    - ERR_set_mark
    - g_steal_pointer
    - ERR_pop_to_mark
    - fu_jcat_libcrypto_get_errors
    - BIO_new_mem_buf
    - g_bytes_get_size
    - g_autoptr
    - PEM_read_bio_X509
    linkageType: ''
    returnType: X509
    signature: 'X509 *

      fu_jcat_libcrypto_pkcs7_load_crt_from_blob_pem(GBytes *blob, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:93,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:94,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:95,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:98,1
    - Dst: ERR_set_mark
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:107,1
    - Dst: d2i_X509
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:110,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:111,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:112,1
    - Dst: ERR_pop_to_mark
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:120,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - blob
    - error
    argTypes:
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 123
    functionName: fu_jcat_libcrypto_pkcs7_load_crt_from_blob_der
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-common.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - d2i_X509
    - g_bytes_get_data
    - ERR_set_mark
    - g_steal_pointer
    - ERR_pop_to_mark
    - fu_jcat_libcrypto_get_errors
    - g_bytes_get_size
    - g_autoptr
    linkageType: ''
    returnType: X509
    signature: 'X509 *

      fu_jcat_libcrypto_pkcs7_load_crt_from_blob_der(GBytes *blob, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:131,1
    - Dst: OSSL_DECODER_CTX_new_for_pkey
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:133,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:141,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:142,1
    - Dst: OSSL_DECODER_from_data
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:150,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:151,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:152,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - blob
    - error
    argTypes:
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 161
    functionName: fu_jcat_libcrypto_pkcs7_load_privkey_from_blob_pem
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-common.c
    functionUses: 2
    functionsReached:
    - OSSL_DECODER_CTX_new_for_pkey
    - g_set_error
    - g_bytes_get_data
    - g_steal_pointer
    - OSSL_DECODER_from_data
    - fu_jcat_libcrypto_get_errors
    - g_autoptr
    linkageType: ''
    returnType: EVP_PKEY
    signature: 'EVP_PKEY *

      fu_jcat_libcrypto_pkcs7_load_privkey_from_blob_pem(GBytes *blob, GError **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:168,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:169,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:170,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:172,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:174,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:175,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:183,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:184,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:185,1
    - Dst: EVP_PKEY_CTX_set_rsa_keygen_bits
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:193,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:194,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:195,1
    - Dst: EVP_PKEY_keygen
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:204,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:205,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:206,1
    - Dst: OSSL_ENCODER_CTX_new_for_pkey
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:214,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:216,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:217,1
    - Dst: OSSL_ENCODER_to_data
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:225,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:226,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:227,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:235,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:235,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 236
    functionName: fu_jcat_libcrypto_pkcs7_create_private_key
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-common.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_keygen_init
    - OSSL_ENCODER_CTX_new_for_pkey
    - g_set_error
    - EVP_PKEY_CTX_new_id
    - g_steal_pointer
    - EVP_PKEY_keygen
    - OSSL_ENCODER_to_data
    - fu_jcat_libcrypto_get_errors
    - g_bytes_new_take
    - EVP_PKEY_CTX_set_rsa_keygen_bits
    - g_autoptr
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_jcat_libcrypto_pkcs7_create_private_key(GError **error)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:245,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:245,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:246,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:246,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:247,1
    - Dst: BASIC_CONSTRAINTS_new
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:247,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:248,1
    - Dst: BN_new
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:248,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:249,1
    - Dst: BIO_new
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:249,1
    - Dst: BIO_s_mem
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:249,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:250,1
    - Dst: X509_new
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:250,1
    - Dst: X509_set_pubkey
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:253,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:254,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:255,1
    - Dst: BN_rand
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:265,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:266,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:267,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:274,1
    - Dst: X509_get_serialNumber
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:274,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:275,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:276,1
    - Dst: ASN1_TIME_set
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:285,1
    - Dst: X509_getm_notBefore
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:285,1
    - Dst: time
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:285,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:286,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:287,1
    - Dst: ASN1_TIME_set_string
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:296,1
    - Dst: X509_getm_notAfter
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:296,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:298,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:299,1
    - Dst: X509_add1_ext_i2d
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:309,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:310,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:311,1
    - Dst: ASN1_BIT_STRING_set_bit
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:320,1
    - Dst: X509_add1_ext_i2d
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:321,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:322,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:323,1
    - Dst: X509_pubkey_digest
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:332,1
    - Dst: EVP_sha1
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:332,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:333,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:334,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:341,1
    - Dst: X509_add1_ext_i2d
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:342,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:343,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:344,1
    - Dst: X509_set_version
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:353,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:354,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:355,1
    - Dst: X509_sign
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:364,1
    - Dst: EVP_sha256
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:364,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:365,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:366,1
    - Dst: PEM_write_bio_X509
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:375,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:376,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:377,1
    - Dst: BIO_get_mem_data
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:385,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:386,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 61
    argCount: 2
    argNames:
    - privkey
    - error
    argTypes:
    - EVP_PKEY*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 387
    functionName: fu_jcat_libcrypto_pkcs7_create_client_certificate
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-common.c
    functionUses: 1
    functionsReached:
    - g_bytes_new
    - X509_pubkey_digest
    - BN_rand
    - BN_to_ASN1_INTEGER
    - ASN1_TIME_set
    - X509_set_pubkey
    - ASN1_TIME_set_string
    - ASN1_OCTET_STRING_new
    - X509_getm_notBefore
    - BIO_s_mem
    - X509_new
    - EVP_sha1
    - PEM_write_bio_X509
    - ASN1_BIT_STRING_new
    - fu_jcat_libcrypto_get_errors
    - X509_sign
    - ASN1_BIT_STRING_set_bit
    - X509_getm_notAfter
    - EVP_sha256
    - BASIC_CONSTRAINTS_new
    - ASN1_OCTET_STRING_set
    - X509_add1_ext_i2d
    - BN_new
    - BIO_new
    - time
    - g_set_error
    - X509_get_serialNumber
    - X509_set_version
    - BIO_get_mem_data
    - g_autoptr
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_jcat_libcrypto_pkcs7_create_client_certificate(EVP_PKEY *privkey, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:392,1
    - Dst: BIO_new
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:392,1
    - Dst: BIO_s_mem
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:392,1
    - Dst: X509_get_issuer_name
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:393,1
    - Dst: X509_NAME_print_ex
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:397,1
    - Dst: fu_jcat_libcrypto_get_errors
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:398,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:399,1
    - Dst: BIO_get_mem_data
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:407,1
    - Dst: g_strndup
      Src: /src/fwupd/src/fu-jcat-libcrypto-common.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - crt
    - error
    argTypes:
    - X509*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 409
    functionName: fu_jcat_libcrypto_x509_get_issuer_name
    functionSourceFile: /src/fwupd/src/fu-jcat-libcrypto-common.c
    functionUses: 1
    functionsReached:
    - g_strndup
    - BIO_new
    - g_set_error
    - X509_NAME_print_ex
    - X509_get_issuer_name
    - fu_jcat_libcrypto_get_errors
    - BIO_get_mem_data
    - g_autoptr
    - BIO_s_mem
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_jcat_libcrypto_x509_get_issuer_name(X509 *crt, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/fwupd/src/fu-engine-requirements.c:21,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:22,1
    - Dst: g_regex_match_simple
      Src: /src/fwupd/src/fu-engine-requirements.c:28,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - version_req
    - version
    - error
    argTypes:
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 40
    functionName: fu_engine_requirements_regex_match
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - strlen
    - g_regex_match_simple
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_requirements_regex_match(const gchar *version_req,
      const gchar *version, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/fwupd/src/fu-engine-requirements.c:45,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:46,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/src/fu-engine-requirements.c:52,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - version_req
    - version
    - error
    argTypes:
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 64
    functionName: fu_engine_requirements_glob_match
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - strlen
    - g_pattern_match_simple
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_requirements_glob_match(const gchar *version_req,
      const gchar *version, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:76,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine-requirements.c:77,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:79,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine-requirements.c:80,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:82,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine-requirements.c:83,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:85,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine-requirements.c:86,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:88,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine-requirements.c:89,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:91,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine-requirements.c:92,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:94,1
    - Dst: fu_engine_requirements_glob_match
      Src: /src/fwupd/src/fu-engine-requirements.c:95,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:96,1
    - Dst: fu_engine_requirements_regex_match
      Src: /src/fwupd/src/fu-engine-requirements.c:97,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:99,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:110,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 5
    argNames:
    - compare
    - version_req
    - version
    - fmt
    - error
    argTypes:
    - gchar*
    - gchar*
    - gchar*
    - FwupdVersionFormat
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 122
    functionName: fu_engine_requirements_require_vercmp_part
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_engine_requirements_glob_match
    - g_set_error
    - fu_version_compare
    - fu_engine_requirements_regex_match
    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:137,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-engine-requirements.c:138,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-engine-requirements.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuEngineRequirementsHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: fu_engine_requirements_helper_free
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_free
    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:147,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - helper
    - fwupd_version_req
    - error
    argTypes:
    - FuEngineRequirementsHelper*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 159
    functionName: fu_engine_requirements_check_fwupd_version
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - fu_version_compare
    - g_set_error
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:170,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:171,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-requirements.c:172,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:175,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-engine-requirements.c:183,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:184,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-requirements.c:192,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-requirements.c:194,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-requirements.c:194,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-engine-requirements.c:195,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/src/fu-engine-requirements.c:197,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-requirements.c:198,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-requirements.c:201,1
    - Dst: fu_engine_requirements_require_vercmp_part
      Src: /src/fwupd/src/fu-engine-requirements.c:202,1
    - Dst: fu_engine_requirements_require_vercmp_part
      Src: /src/fwupd/src/fu-engine-requirements.c:208,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 5
    argNames:
    - req
    - version
    - fmt
    - helper
    - error
    argTypes:
    - XbNode*
    - gchar*
    - FwupdVersionFormat
    - FuEngineRequirementsHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 217
    functionName: fu_engine_requirements_require_vercmp
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error_literal
    - g_pattern_match_simple
    - g_strsplit
    - g_strv_length
    - strlen
    - fu_engine_requirements_require_vercmp_part
    - xb_node_get_attr
    - g_auto
    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:226,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:229,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:229,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:230,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:234,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-requirements.c:240,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-requirements.c:241,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-engine-requirements.c:243,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-engine-requirements.c:244,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:245,1
    - Dst: fu_engine_requirements_require_vercmp
      Src: /src/fwupd/src/fu-engine-requirements.c:253,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine-requirements.c:255,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:258,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: 267
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 267
    functionName: fu_engine_requirements_check_not_child
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - fu_device_get_id_display
    - g_strcmp0
    - g_set_error
    - fu_device_get_children
    - xb_node_get_element
    - fu_device_get_version
    - fu_engine_requirements_require_vercmp
    - g_ptr_array_index
    - fu_device_get_version_format
    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:280,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:282,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-engine-requirements.c:286,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:291,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:293,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-engine-requirements.c:301,1
    - Dst: g_regex_match_simple
      Src: /src/fwupd/src/fu-engine-requirements.c:302,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - self
    - req
    - device
    - error
    argTypes:
    - FuEngine*
    - XbNode*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 314
    functionName: fu_engine_requirements_check_vendor_id
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_strjoin
    - fu_device_get_vendor_ids
    - g_set_error_literal
    - fu_device_get_id
    - xb_node_get_attr
    - g_regex_match_simple
    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:320,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/src/fu-engine-requirements.c:320,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-requirements.c:321,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-engine-requirements.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - guids
    argTypes:
    - FuDevice*
    - gchar**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 327
    functionName: _fu_device_has_guids_any
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:335,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements.c:339,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine-requirements.c:339,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements.c:340,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-requirements.c:341,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:348,1
    - Dst: fu_strtoll
      Src: /src/fwupd/src/fu-engine-requirements.c:350,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-engine-requirements.c:353,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-engine-requirements.c:356,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:357,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-engine-requirements.c:367,1
    - Dst: fu_engine_requirements_check_fwupd_version
      Src: /src/fwupd/src/fu-engine-requirements.c:373,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:374,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:380,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-requirements.c:381,1
    - Dst: fu_engine_requirements_require_vercmp
      Src: /src/fwupd/src/fu-engine-requirements.c:382,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine-requirements.c:385,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:388,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:388,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:389,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:395,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:398,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:409,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:409,1
    - Dst: fu_device_get_version_bootloader
      Src: /src/fwupd/src/fu-engine-requirements.c:410,1
    - Dst: fu_engine_requirements_require_vercmp
      Src: /src/fwupd/src/fu-engine-requirements.c:411,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine-requirements.c:414,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:417,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:417,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:418,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:424,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:427,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:437,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:437,1
    - Dst: fu_engine_requirements_check_vendor_id
      Src: /src/fwupd/src/fu-engine-requirements.c:440,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:444,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:444,1
    - Dst: fu_engine_requirements_check_not_child
      Src: /src/fwupd/src/fu-engine-requirements.c:445,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-requirements.c:452,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:452,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/src/fu-engine-requirements.c:454,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:455,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements.c:466,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements.c:468,1
    - Dst: fu_engine_get_devices_by_guid
      Src: /src/fwupd/src/fu-engine-requirements.c:469,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine-requirements.c:471,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-requirements.c:471,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:476,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:480,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-engine-requirements.c:483,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/src/fu-engine-requirements.c:490,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-requirements.c:492,1
    - Dst: _fu_device_has_guids_any
      Src: /src/fwupd/src/fu-engine-requirements.c:493,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:498,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:502,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-engine-requirements.c:505,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-engine-requirements.c:510,1
    - Dst: _fu_device_has_guids_any
      Src: /src/fwupd/src/fu-engine-requirements.c:515,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-engine-requirements.c:517,1
    - Dst: g_set_error
      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: fu_device_get_children
      Src: /src/fwupd/src/fu-engine-requirements.c:528,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-requirements.c:530,1
    - Dst: _fu_device_has_guids_any
      Src: /src/fwupd/src/fu-engine-requirements.c:531,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:536,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:540,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-engine-requirements.c:543,1
    - Dst: _fu_device_has_guids_any
      Src: /src/fwupd/src/fu-engine-requirements.c:547,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-engine-requirements.c:548,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:549,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:553,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-engine-requirements.c:560,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:561,1
    - Dst: fu_engine_requirements_require_vercmp
      Src: /src/fwupd/src/fu-engine-requirements.c:562,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-engine-requirements.c:564,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:567,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:567,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:568,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine-requirements.c:572,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:574,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:577,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine-requirements.c:581,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 131
    argCount: 4
    argNames:
    - self
    - req
    - helper
    - error
    argTypes:
    - FuEngine*
    - XbNode*
    - FuEngineRequirementsHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 329
    functionDepth: 4
    functionLinenumber: 329
    functionLinenumberEnd: 588
    functionName: fu_engine_requirements_check_firmware
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - fu_engine_get_devices_by_guid
    - fu_device_get_parent_internal
    - fu_device_get_children
    - fwupd_guid_is_valid
    - g_object_ref
    - fu_engine_requirements_check_fwupd_version
    - xb_node_get_attr
    - g_auto
    - fu_device_get_name
    - g_ptr_array_index
    - fu_device_get_id_display
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_engine_requirements_require_vercmp
    - fu_engine_requirements_check_not_child
    - fu_engine_requirements_check_vendor_id
    - g_strsplit
    - _fu_device_has_guids_any
    - fu_device_get_version_format
    - fu_device_get_version_bootloader
    - fu_strtoll
    - g_strcmp0
    - g_set_error
    - fu_release_get_device
    - g_set_object
    - fu_device_get_version
    - g_autoptr
    - xb_node_get_text
    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:596,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements.c:597,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:601,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:602,1
    - Dst: fu_context_get_runtime_version
      Src: /src/fwupd/src/fu-engine-requirements.c:608,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:608,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:610,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:614,1
    - Dst: fu_engine_requirements_require_vercmp
      Src: /src/fwupd/src/fu-engine-requirements.c:617,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:622,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:622,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:623,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:627,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:629,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:632,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:636,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-requirements.c:641,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:642,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:643,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:645,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - self
    - req
    - helper
    - error
    argTypes:
    - FuEngine*
    - XbNode*
    - FuEngineRequirementsHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 590
    functionDepth: 3
    functionLinenumber: 590
    functionLinenumberEnd: 647
    functionName: fu_engine_requirements_check_id
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_debug
    - g_set_error
    - g_set_error_literal
    - fu_context_get_runtime_version
    - fu_engine_requirements_require_vercmp
    - fu_engine_get_context
    - xb_node_get_attr
    - g_autoptr
    - xb_node_get_text
    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:655,1
    - Dst: fu_release_get_device
      Src: /src/fwupd/src/fu-engine-requirements.c:656,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-requirements.c:657,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-requirements.c:660,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:664,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:665,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-requirements.c:673,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:673,1
    - Dst: fu_context_has_hwid_guid
      Src: /src/fwupd/src/fu-engine-requirements.c:675,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-requirements.c:676,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:682,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:686,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - req
    - helper
    - error
    argTypes:
    - FuEngine*
    - XbNode*
    - FuEngineRequirementsHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 688
    functionName: fu_engine_requirements_check_hardware
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - g_set_error_literal
    - fu_release_get_device
    - fu_context_has_hwid_guid
    - g_strsplit
    - fu_device_has_flag
    - fu_engine_get_context
    - g_auto
    - xb_node_get_text
    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:696,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-requirements.c:697,1
    - Dst: fu_engine_requirements_check_fwupd_version
      Src: /src/fwupd/src/fu-engine-requirements.c:700,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:701,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:706,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:707,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-requirements.c:715,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:715,1
    - Dst: fu_context_has_hwid_guid
      Src: /src/fwupd/src/fu-engine-requirements.c:717,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:718,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - self
    - req
    - helper
    - error
    argTypes:
    - FuEngine*
    - XbNode*
    - FuEngineRequirementsHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 729
    functionName: fu_engine_requirements_check_not_hardware
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_context_has_hwid_guid
    - fu_engine_requirements_check_fwupd_version
    - g_strsplit
    - fu_engine_get_context
    - g_auto
    - xb_node_get_text
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine-requirements.c:745,1
    - Dst: fu_engine_requirements_check_fwupd_version
      Src: /src/fwupd/src/fu-engine-requirements.c:750,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:751,1
    - Dst: fu_release_get_remote
      Src: /src/fwupd/src/fu-engine-requirements.c:756,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:758,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-engine-requirements.c:764,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine-requirements.c:765,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:768,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:769,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-engine-requirements.c:775,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:775,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:781,1
    - Dst: fu_release_get_filename
      Src: /src/fwupd/src/fu-engine-requirements.c:786,1
    - Dst: fu_engine_get_host_machine_id
      Src: /src/fwupd/src/fu-engine-requirements.c:787,1
    - Dst: fwupd_remote_get_mtime
      Src: /src/fwupd/src/fu-engine-requirements.c:789,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements.c:793,1
    - Dst: g_str_hash
      Src: /src/fwupd/src/fu-engine-requirements.c:795,1
    - Dst: g_str_hash
      Src: /src/fwupd/src/fu-engine-requirements.c:796,1
    - Dst: fwupd_remote_get_mtime
      Src: /src/fwupd/src/fu-engine-requirements.c:797,1
    - Dst: g_rand_new_with_seed_array
      Src: /src/fwupd/src/fu-engine-requirements.c:798,1
    - Dst: g_rand_int_range
      Src: /src/fwupd/src/fu-engine-requirements.c:799,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:804,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 4
    argNames:
    - self
    - req
    - helper
    - error
    argTypes:
    - FuEngine*
    - XbNode*
    - FuEngineRequirementsHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 731
    functionDepth: 2
    functionLinenumber: 731
    functionLinenumberEnd: 813
    functionName: fu_engine_requirements_check_phased_update
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_rand_int_range
    - g_info
    - fwupd_remote_has_flag
    - fu_strtoull
    - g_set_error_literal
    - g_rand_new_with_seed_array
    - g_prefix_error_literal
    - fu_release_get_remote
    - fu_engine_requirements_check_fwupd_version
    - fu_release_get_filename
    - g_str_hash
    - g_autoptr
    - xb_node_get_text
    - fwupd_remote_get_mtime
    - fu_engine_get_host_machine_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_requirements_check_phased_update(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:821,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-requirements.c:823,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:826,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:827,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-requirements.c:835,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:835,1
    - Dst: fu_engine_request_get_feature_flags
      Src: /src/fwupd/src/fu-engine-requirements.c:836,1
    - Dst: fwupd_feature_flag_from_string
      Src: /src/fwupd/src/fu-engine-requirements.c:842,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:845,1
    - Dst: fu_engine_capability_flags_from_string
      Src: /src/fwupd/src/fu-engine-requirements.c:856,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:865,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - self
    - req
    - helper
    - error
    argTypes:
    - FuEngine*
    - XbNode*
    - FuEngineRequirementsHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 875
    functionName: fu_engine_requirements_check_client
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - fwupd_feature_flag_from_string
    - g_set_error
    - g_set_error_literal
    - fu_release_get_request
    - fu_engine_capability_flags_from_string
    - g_strsplit
    - g_auto
    - xb_node_get_text
    - fu_engine_request_get_feature_flags
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-engine-requirements.c:883,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:886,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:886,1
    - Dst: fu_engine_requirements_check_id
      Src: /src/fwupd/src/fu-engine-requirements.c:887,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:890,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:890,1
    - Dst: fu_engine_requirements_check_firmware
      Src: /src/fwupd/src/fu-engine-requirements.c:891,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:894,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:894,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine-requirements.c:896,1
    - Dst: fu_engine_requirements_check_hardware
      Src: /src/fwupd/src/fu-engine-requirements.c:898,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:900,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:900,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/src/fu-engine-requirements.c:902,1
    - Dst: fu_engine_requirements_check_not_hardware
      Src: /src/fwupd/src/fu-engine-requirements.c:904,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:908,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:908,1
    - Dst: fu_engine_requirements_check_phased_update
      Src: /src/fwupd/src/fu-engine-requirements.c:909,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:912,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:912,1
    - Dst: fu_engine_requirements_check_client
      Src: /src/fwupd/src/fu-engine-requirements.c:913,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:916,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:920,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - self
    - req
    - helper
    - error
    argTypes:
    - FuEngine*
    - XbNode*
    - FuEngineRequirementsHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 877
    functionDepth: 5
    functionLinenumber: 877
    functionLinenumberEnd: 922
    functionName: fu_engine_requirements_check_hard
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - g_strcmp0
    - g_set_error
    - fu_engine_requirements_check_firmware
    - fu_engine_requirements_check_hardware
    - fu_engine_requirements_check_client
    - xb_node_get_element
    - fu_engine_get_context
    - fu_engine_requirements_check_not_hardware
    - fu_engine_requirements_check_id
    - fu_engine_requirements_check_phased_update
    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:930,1
    - Dst: fu_engine_requirements_check_hard
      Src: /src/fwupd/src/fu-engine-requirements.c:931,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine-requirements.c:933,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-engine-requirements.c:936,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-requirements.c:936,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - self
    - req
    - helper
    - error
    argTypes:
    - FuEngine*
    - XbNode*
    - FuEngineRequirementsHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 924
    functionDepth: 6
    functionLinenumber: 924
    functionLinenumberEnd: 940
    functionName: fu_engine_requirements_check_soft
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_info
    - g_steal_pointer
    - fu_engine_requirements_check_hard
    - g_propagate_error
    - g_autoptr
    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:945,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:945,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:946,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:948,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-engine-requirements.c:948,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - req
    argTypes:
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 951
    functionName: fu_engine_requirements_is_specific_req
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - xb_node_get_element
    - g_strcmp0
    - 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:956,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements.c:957,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine-requirements.c:957,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-engine-requirements.c:961,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-requirements.c:961,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-requirements.c:965,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:966,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:966,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-requirements.c:967,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:967,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-engine-requirements.c:968,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-requirements.c:969,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:972,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-engine-requirements.c:976,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-requirements.c:981,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-engine-requirements.c:983,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-engine-requirements.c:986,1
    - Dst: g_string_assign
      Src: /src/fwupd/src/fu-engine-requirements.c:989,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-engine-requirements.c:996,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-requirements.c:996,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - self
    - release
    - error
    argTypes:
    - FuEngine*
    - FuRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 997
    functionName: fu_engine_requirements_get_newest_fwupd_version
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error
    - xb_node_get_attr
    - g_steal_pointer
    - fu_version_compare
    - g_string_free
    - g_strsplit
    - g_strstr_len
    - g_string_assign
    - g_string_new
    - fu_release_get_hard_reqs
    - g_auto
    - g_autoptr
    - xb_node_get_text
    - g_ptr_array_index
    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:1005,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements.c:1008,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-engine-requirements.c:1008,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-requirements.c:1010,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-engine-requirements.c:1010,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-requirements.c:1011,1
    - Dst: FU_IS_RELEASE
      Src: /src/fwupd/src/fu-engine-requirements.c:1011,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-requirements.c:1012,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine-requirements.c:1015,1
    - Dst: fu_engine_requirements_get_newest_fwupd_version
      Src: /src/fwupd/src/fu-engine-requirements.c:1020,1
    - Dst: fu_device_is_updatable
      Src: /src/fwupd/src/fu-engine-requirements.c:1025,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-engine-requirements.c:1026,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:1027,1
    - Dst: fu_release_get_protocol
      Src: /src/fwupd/src/fu-engine-requirements.c:1036,1
    - Dst: fu_device_has_protocol
      Src: /src/fwupd/src/fu-engine-requirements.c:1037,1
    - Dst: fu_release_get_protocol
      Src: /src/fwupd/src/fu-engine-requirements.c:1037,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-engine-requirements.c:1038,1
    - Dst: fu_device_get_protocols
      Src: /src/fwupd/src/fu-engine-requirements.c:1038,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-requirements.c:1039,1
    - Dst: fu_release_get_protocol
      Src: /src/fwupd/src/fu-engine-requirements.c:1043,1
    - Dst: fu_release_get_hard_reqs
      Src: /src/fwupd/src/fu-engine-requirements.c:1049,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-requirements.c:1052,1
    - Dst: fu_engine_requirements_check_hard
      Src: /src/fwupd/src/fu-engine-requirements.c:1053,1
    - Dst: fu_engine_requirements_is_specific_req
      Src: /src/fwupd/src/fu-engine-requirements.c:1055,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:1062,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:1072,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-requirements.c:1082,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-engine-requirements.c:1083,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:1086,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-requirements.c:1094,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine-requirements.c:1101,1
    - Dst: fu_release_get_soft_reqs
      Src: /src/fwupd/src/fu-engine-requirements.c:1106,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-requirements.c:1109,1
    - Dst: fu_engine_requirements_check_soft
      Src: /src/fwupd/src/fu-engine-requirements.c:1110,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 53
    argCount: 4
    argNames:
    - self
    - release
    - flags
    - error
    argTypes:
    - FuEngine*
    - FuRelease*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 999
    functionDepth: 7
    functionLinenumber: 999
    functionLinenumberEnd: 1117
    functionName: fu_engine_requirements_check
    functionSourceFile: /src/fwupd/src/fu-engine-requirements.c
    functionUses: 4
    functionsReached:
    - fu_release_get_protocol
    - fu_strjoin
    - fu_device_get_protocols
    - g_object_ref
    - g_ptr_array_index
    - fu_device_get_id_display
    - g_new0
    - g_set_error_literal
    - fu_engine_requirements_check_hard
    - FU_IS_RELEASE
    - fu_device_has_flag
    - fu_device_has_protocol
    - fu_engine_requirements_is_specific_req
    - g_info
    - fu_engine_requirements_get_newest_fwupd_version
    - FU_IS_ENGINE
    - fu_release_get_soft_reqs
    - g_return_val_if_fail
    - g_set_error
    - fu_engine_requirements_check_soft
    - fu_release_get_device
    - fu_device_has_private_flag
    - fu_device_is_updatable
    - fu_release_get_hard_reqs
    - g_autoptr
    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: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    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:38,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-daemon.c:39,1
    - Dst: FU_IS_DAEMON
      Src: /src/fwupd/src/fu-daemon.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: fu_daemon_get_engine
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 47
    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:46,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-daemon.c:47,1
    - Dst: FU_IS_DAEMON
      Src: /src/fwupd/src/fu-daemon.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - update_in_progress
    argTypes:
    - FuDaemon*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: fu_daemon_set_update_in_progress
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 1
    functionsReached:
    - FU_IS_DAEMON
    - g_return_if_fail
    - GET_PRIVATE
    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:54,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-daemon.c:55,1
    - Dst: FU_IS_DAEMON
      Src: /src/fwupd/src/fu-daemon.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    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:62,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-daemon.c:63,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-daemon.c:64,1
    - Dst: malloc_trim
      Src: /src/fwupd/src/fu-daemon.c:68,1
    - Dst: fu_context_housekeeping
      Src: /src/fwupd/src/fu-daemon.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 77
    functionName: fu_daemon_schedule_housekeeping_cb
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 0
    functionsReached:
    - malloc_trim
    - fu_engine_get_context
    - FU_DAEMON
    - GET_PRIVATE
    - fu_context_housekeeping
    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:82,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-daemon.c:87,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-daemon.c:88,1
    - Dst: g_timeout_add_seconds
      Src: /src/fwupd/src/fu-daemon.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 92
    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:97,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-daemon.c:98,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-daemon.c:99,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-daemon.c:101,1
    - Dst: fu_daemon_stop
      Src: /src/fwupd/src/fu-daemon.c:104,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-daemon.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: fu_daemon_schedule_process_quit_cb
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 0
    functionsReached:
    - g_info
    - g_warning
    - FU_DAEMON
    - g_autoptr
    - fu_daemon_stop
    - GET_PRIVATE
    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:112,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-daemon.c:116,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-daemon.c:122,1
    - Dst: g_idle_add
      Src: /src/fwupd/src/fu-daemon.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 124
    functionName: fu_daemon_schedule_process_quit
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 2
    functionsReached:
    - g_idle_add
    - g_warning
    - 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:130,1
    - Dst: g_malloc0
      Src: /src/fwupd/src/fu-daemon.c:132,1
    - Dst: mlock
      Src: /src/fwupd/src/fu-daemon.c:133,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-daemon.c:134,1
    - Dst: munlock
      Src: /src/fwupd/src/fu-daemon.c:138,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-daemon.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 146
    functionName: fu_daemon_check_syscall_filtering
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 0
    functionsReached:
    - g_getenv
    - mlock
    - g_debug
    - g_set_error_literal
    - g_malloc0
    - munlock
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_daemon_check_syscall_filtering(GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_DAEMON_GET_CLASS
      Src: /src/fwupd/src/fu-daemon.c:151,1
    - Dst: fu_daemon_get_engine
      Src: /src/fwupd/src/fu-daemon.c:152,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-daemon.c:154,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-daemon.c:154,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-daemon.c:155,1
    - Dst: g_timer_new
      Src: /src/fwupd/src/fu-daemon.c:155,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-daemon.c:157,1
    - Dst: FU_IS_DAEMON
      Src: /src/fwupd/src/fu-daemon.c:157,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-daemon.c:158,1
    - Dst: FU_IS_ENGINE
      Src: /src/fwupd/src/fu-daemon.c:158,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-daemon.c:159,1
    - Dst: fu_daemon_check_syscall_filtering
      Src: /src/fwupd/src/fu-daemon.c:162,1
    - Dst: FuDaemonClass*::setup
      Src: /src/fwupd/src/fu-daemon.c:166,1
    - Dst: fu_config_get_value_u64
      Src: /src/fwupd/src/fu-daemon.c:170,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-daemon.c:170,1
    - Dst: fu_engine_get_config
      Src: /src/fwupd/src/fu-daemon.c:170,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/src/fu-daemon.c:174,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-daemon.c:177,1
    - Dst: fu_engine_idle_inhibit
      Src: /src/fwupd/src/fu-daemon.c:178,1
    - Dst: fu_progress_get_profile
      Src: /src/fwupd/src/fu-daemon.c:183,1
    - Dst: fu_progress_traceback
      Src: /src/fwupd/src/fu-daemon.c:184,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-daemon.c:186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - self
    - socket_address
    - error
    argTypes:
    - FuDaemon*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 191
    functionName: fu_daemon_setup
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 2
    functionsReached:
    - g_print
    - g_strdup_printf
    - fu_progress_new
    - FU_IS_DAEMON
    - g_timer_elapsed
    - FU_DAEMON_GET_CLASS
    - fu_daemon_check_syscall_filtering
    - fu_daemon_get_engine
    - fu_progress_get_profile
    - fu_progress_traceback
    - fu_engine_idle_inhibit
    - FU_IS_ENGINE
    - fu_config_get_value_u64
    - FU_CONFIG
    - g_return_val_if_fail
    - fu_engine_get_config
    - FuDaemonClass*::setup
    - g_timer_new
    - g_autoptr
    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:196,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-daemon.c:197,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-daemon.c:199,1
    - Dst: FU_IS_DAEMON
      Src: /src/fwupd/src/fu-daemon.c:199,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-daemon.c:200,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/src/fu-daemon.c:203,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-daemon.c:207,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-daemon.c:208,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-daemon.c:208,1
    - Dst: fu_engine_get_report_metadata
      Src: /src/fwupd/src/fu-daemon.c:210,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-daemon.c:213,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-daemon.c:214,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-daemon.c:215,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-daemon.c:216,1
    - Dst: FuDaemonClass*::start
      Src: /src/fwupd/src/fu-daemon.c:220,1
    - Dst: fu_daemon_schedule_housekeeping
      Src: /src/fwupd/src/fu-daemon.c:223,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/src/fu-daemon.c:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDaemon*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 193
    functionDepth: 4
    functionLinenumber: 193
    functionLinenumberEnd: 226
    functionName: fu_daemon_start
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FuDaemonClass*::start
    - FU_DAEMON_GET_CLASS
    - g_debug
    - fu_daemon_schedule_housekeeping
    - g_log_get_debug_enabled
    - g_main_loop_run
    - FU_IS_DAEMON
    - g_string_new
    - g_string_append_printf
    - fu_engine_get_report_metadata
    - g_hash_table_iter_init
    - g_autoptr
    - g_hash_table_iter_next
    - GET_PRIVATE
    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:231,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-daemon.c:232,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-daemon.c:234,1
    - Dst: FU_IS_DAEMON
      Src: /src/fwupd/src/fu-daemon.c:234,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-daemon.c:235,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-daemon.c:238,1
    - Dst: FuDaemonClass*::stop
      Src: /src/fwupd/src/fu-daemon.c:247,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/src/fu-daemon.c:249,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDaemon*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 251
    functionName: fu_daemon_stop
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_DAEMON_GET_CLASS
    - g_set_error_literal
    - FU_IS_DAEMON
    - g_main_loop_quit
    - FuDaemonClass*::stop
    - GET_PRIVATE
    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:256,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-daemon.c:257,1
    - Dst: fu_context_new
      Src: /src/fwupd/src/fu-daemon.c:257,1
    - Dst: fu_context_load_path_store
      Src: /src/fwupd/src/fu-daemon.c:258,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-daemon.c:259,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/src/fu-daemon.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDaemon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 261
    functionName: fu_daemon_init
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - g_main_loop_new
    - fu_context_load_path_store
    - g_autoptr
    - fu_engine_new
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_daemon_init(FuDaemon *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DAEMON
      Src: /src/fwupd/src/fu-daemon.c:266,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-daemon.c:267,1
    - Dst: g_main_loop_unref
      Src: /src/fwupd/src/fu-daemon.c:270,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-daemon.c:272,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-daemon.c:274,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-daemon.c:276,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-daemon.c:278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 279
    functionName: fu_daemon_finalize
    functionSourceFile: /src/fwupd/src/fu-daemon.c
    functionUses: 0
    functionsReached:
    - g_source_remove
    - g_object_unref
    - G_OBJECT_CLASS
    - g_main_loop_unref
    - FU_DAEMON
    - GET_PRIVATE
    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:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDaemonClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 286
    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: 31
    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_boolean
      Src: /src/fwupd/src/fu-remote.c:95,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-remote.c:96,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/src/fu-remote.c:98,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:100,1
    - Dst: g_key_file_get_boolean
      Src: /src/fwupd/src/fu-remote.c:101,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-remote.c:102,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/src/fu-remote.c:104,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:106,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/src/fu-remote.c:107,1
    - Dst: fwupd_remote_set_title
      Src: /src/fwupd/src/fu-remote.c:108,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:110,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/src/fu-remote.c:111,1
    - Dst: fwupd_remote_set_privacy_uri
      Src: /src/fwupd/src/fu-remote.c:112,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:114,1
    - Dst: fwupd_remote_set_refresh_interval
      Src: /src/fwupd/src/fu-remote.c:115,1
    - Dst: g_key_file_get_uint64
      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_report_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_username
      Src: /src/fwupd/src/fu-remote.c:125,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-remote.c:127,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:129,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/src/fu-remote.c:130,1
    - Dst: fwupd_remote_set_password
      Src: /src/fwupd/src/fu-remote.c:131,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-remote.c:133,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:135,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/src/fu-remote.c:136,1
    - Dst: fwupd_remote_set_firmware_base_uri
      Src: /src/fwupd/src/fu-remote.c:137,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:139,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/src/fu-remote.c:140,1
    - Dst: fwupd_remote_set_order_before
      Src: /src/fwupd/src/fu-remote.c:141,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:143,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/src/fu-remote.c:144,1
    - Dst: fwupd_remote_set_order_after
      Src: /src/fwupd/src/fu-remote.c:145,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:147,1
    - Dst: g_key_file_get_boolean
      Src: /src/fwupd/src/fu-remote.c:148,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-remote.c:149,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/src/fu-remote.c:151,1
    - Dst: g_key_file_has_key
      Src: /src/fwupd/src/fu-remote.c:153,1
    - Dst: g_key_file_get_boolean
      Src: /src/fwupd/src/fu-remote.c:154,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-remote.c:155,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/src/fu-remote.c:157,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote.c:163,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/src/fu-remote.c:163,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-remote.c:164,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/src/fu-remote.c:164,1
    - Dst: fwupd_remote_set_username
      Src: /src/fwupd/src/fu-remote.c:165,1
    - Dst: fwupd_remote_set_password
      Src: /src/fwupd/src/fu-remote.c:166,1
    - Dst: fwupd_remote_set_filename_source
      Src: /src/fwupd/src/fu-remote.c:170,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 94
    argCount: 4
    argNames:
    - self
    - filename
    - cancellable
    - error
    argTypes:
    - FwupdRemote*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 172
    functionName: fu_remote_load_from_filename
    functionSourceFile: /src/fwupd/src/fu-remote.c
    functionUses: 2
    functionsReached:
    - fwupd_remote_set_password
    - fwupd_remote_set_firmware_base_uri
    - fwupd_remote_set_report_uri
    - g_key_file_get_boolean
    - fwupd_remote_set_filename_source
    - fwupd_remote_add_flag
    - fwupd_remote_set_kind
    - g_key_file_has_key
    - fwupd_remote_remove_flag
    - G_IS_CANCELLABLE
    - g_key_file_new
    - g_key_file_get_string
    - fwupd_remote_set_privacy_uri
    - fwupd_remote_get_password
    - g_str_has_prefix
    - fwupd_remote_set_title
    - g_path_get_basename
    - g_key_file_load_from_file
    - fwupd_remote_set_order_after
    - FWUPD_IS_REMOTE
    - fwupd_remote_get_username
    - fwupd_remote_set_id
    - fwupd_remote_set_metadata_uri
    - g_key_file_get_uint64
    - g_return_val_if_fail
    - g_strcmp0
    - fwupd_remote_set_username
    - fwupd_remote_set_refresh_interval
    - fwupd_remote_set_filename_cache
    - g_file_test
    - fwupd_remote_set_order_before
    - g_autoptr
    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: 17
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote.c:192,1
    - Dst: g_key_file_new
      Src: /src/fwupd/src/fu-remote.c:192,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote.c:194,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/src/fu-remote.c:194,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote.c:195,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote.c:196,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/src/fu-remote.c:196,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote.c:197,1
    - Dst: fwupd_remote_get_metadata_uri
      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_metadata_uri
      Src: /src/fwupd/src/fu-remote.c:204,1
    - Dst: fwupd_remote_get_title
      Src: /src/fwupd/src/fu-remote.c:205,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-remote.c:206,1
    - Dst: fwupd_remote_get_title
      Src: /src/fwupd/src/fu-remote.c:206,1
    - Dst: fwupd_remote_get_privacy_uri
      Src: /src/fwupd/src/fu-remote.c:207,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-remote.c:208,1
    - Dst: fwupd_remote_get_privacy_uri
      Src: /src/fwupd/src/fu-remote.c:208,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-remote.c:209,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-remote.c:210,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-remote.c:210,1
    - Dst: fwupd_remote_get_refresh_interval
      Src: /src/fwupd/src/fu-remote.c:211,1
    - Dst: g_key_file_set_uint64
      Src: /src/fwupd/src/fu-remote.c:212,1
    - Dst: fwupd_remote_get_refresh_interval
      Src: /src/fwupd/src/fu-remote.c:215,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/src/fu-remote.c:216,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-remote.c:217,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/src/fu-remote.c:217,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/src/fu-remote.c:218,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-remote.c:219,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/src/fu-remote.c:219,1
    - Dst: fwupd_remote_get_firmware_base_uri
      Src: /src/fwupd/src/fu-remote.c:220,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-remote.c:221,1
    - Dst: fwupd_remote_get_firmware_base_uri
      Src: /src/fwupd/src/fu-remote.c:224,1
    - Dst: fwupd_remote_get_order_after
      Src: /src/fwupd/src/fu-remote.c:225,1
    - Dst: g_strjoinv
      Src: /src/fwupd/src/fu-remote.c:226,1
    - Dst: fwupd_remote_get_order_after
      Src: /src/fwupd/src/fu-remote.c:226,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-remote.c:227,1
    - Dst: fwupd_remote_get_order_before
      Src: /src/fwupd/src/fu-remote.c:229,1
    - Dst: g_strjoinv
      Src: /src/fwupd/src/fu-remote.c:230,1
    - Dst: fwupd_remote_get_order_before
      Src: /src/fwupd/src/fu-remote.c:230,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/src/fu-remote.c:231,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote.c:233,1
    - Dst: g_key_file_set_boolean
      Src: /src/fwupd/src/fu-remote.c:234,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote.c:235,1
    - Dst: g_key_file_set_boolean
      Src: /src/fwupd/src/fu-remote.c:236,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote.c:237,1
    - Dst: g_key_file_set_boolean
      Src: /src/fwupd/src/fu-remote.c:238,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote.c:239,1
    - Dst: g_key_file_set_boolean
      Src: /src/fwupd/src/fu-remote.c:240,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote.c:241,1
    - Dst: g_key_file_set_boolean
      Src: /src/fwupd/src/fu-remote.c:242,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-remote.c:245,1
    - Dst: g_key_file_save_to_file
      Src: /src/fwupd/src/fu-remote.c:247,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 4
    argNames:
    - self
    - filename
    - cancellable
    - error
    argTypes:
    - FwupdRemote*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 248
    functionName: fu_remote_save_to_filename
    functionSourceFile: /src/fwupd/src/fu-remote.c
    functionUses: 5
    functionsReached:
    - fwupd_remote_get_order_before
    - fwupd_remote_get_title
    - g_key_file_set_boolean
    - G_IS_CANCELLABLE
    - g_key_file_new
    - fwupd_remote_get_report_uri
    - fwupd_remote_get_password
    - fwupd_remote_get_firmware_base_uri
    - fwupd_remote_get_refresh_interval
    - g_key_file_set_uint64
    - fwupd_remote_has_flag
    - g_key_file_set_string
    - FWUPD_IS_REMOTE
    - g_key_file_save_to_file
    - fwupd_remote_get_username
    - fwupd_remote_get_order_after
    - fwupd_remote_get_privacy_uri
    - g_return_val_if_fail
    - fwupd_remote_get_metadata_uri
    - g_strjoinv
    - g_autoptr
    - fu_path_mkdir_parent
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote.c:263,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote.c:264,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote.c:266,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/src/fu-remote.c:266,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-remote.c:267,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-remote.c:269,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/src/fu-remote.c:271,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-remote.c:271,1
    - Dst: fu_path_get_files
      Src: /src/fwupd/src/fu-remote.c:272,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-remote.c:274,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-remote.c:276,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-remote.c:276,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-remote.c:280,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote.c:281,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-remote.c:281,1
    - Dst: g_file_delete
      Src: /src/fwupd/src/fu-remote.c:284,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-remote.c:285,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-remote.c:286,1
    - Dst: fwupd_remote_ensure_checksum_sig
      Src: /src/fwupd/src/fu-remote.c:292,1
    - Dst: fwupd_remote_ensure_mtime
      Src: /src/fwupd/src/fu-remote.c:294,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 295
    functionName: fu_remote_clean
    functionSourceFile: /src/fwupd/src/fu-remote.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_remote_ensure_checksum_sig
    - fwupd_remote_get_filename_cache
    - g_steal_pointer
    - FWUPD_IS_REMOTE
    - g_file_delete
    - fwupd_error_convert
    - g_prefix_error
    - g_path_get_dirname
    - g_error_matches
    - g_file_new_for_path
    - fwupd_remote_ensure_mtime
    - g_propagate_error
    - fu_path_get_files
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_remote_clean(FwupdRemote *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    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: 305
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 305
    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:310,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-remote.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_remote_new
    functionSourceFile: /src/fwupd/src/fu-remote.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FWUPD_REMOTE
    linkageType: ''
    returnType: FwupdRemote
    signature: 'FwupdRemote *

      fu_remote_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:19,1
    - Dst: fu_context_new
      Src: /src/fwupd/src/fu-engine-udev-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:21,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-udev-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:22,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-udev-test.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:25,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-udev-test.c:28,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-udev-test.c:29,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-udev-test.c:30,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-udev-test.c:31,1
    - Dst: fu_context_has_backend
      Src: /src/fwupd/src/fu-engine-udev-test.c:34,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-engine-udev-test.c:35,1
    - Dst: fu_engine_add_plugin_filter
      Src: /src/fwupd/src/fu-engine-udev-test.c:40,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-udev-test.c:41,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-udev-test.c:46,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-udev-test.c:47,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine-udev-test.c:50,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-udev-test.c:51,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-udev-test.c:52,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:53,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-engine-udev-test.c:53,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:53,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:54,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/src/fu-engine-udev-test.c:54,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:54,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:55,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/src/fu-engine-udev-test.c:55,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:55,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-udev-test.c:56,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/src/fu-engine-udev-test.c:56,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-udev-test.c:57,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/src/fu-engine-udev-test.c:57,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:58,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine-udev-test.c:58,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:59,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine-udev-test.c:59,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:60,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-engine-udev-test.c:60,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:61,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-engine-udev-test.c:61,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/src/fu-engine-udev-test.c:64,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:64,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-udev-test.c:68,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:69,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:72,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/src/fu-engine-udev-test.c:73,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-udev-test.c:74,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-udev-test.c:75,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:76,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-engine-udev-test.c:76,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:80,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/src/fu-engine-udev-test.c:80,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-udev-test.c:81,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-udev-test.c:82,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:83,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-engine-udev-test.c:83,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:84,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/src/fu-engine-udev-test.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 12
    functionDepth: 14
    functionLinenumber: 12
    functionLinenumberEnd: 85
    functionName: fu_test_engine_udev_hidraw
    functionSourceFile: /src/fwupd/src/fu-engine-udev-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_device_get_logical_id
    - fu_device_get_pid
    - g_assert_nonnull
    - fu_device_get_physical_id
    - fu_engine_get_device
    - fu_device_get_plugin
    - fu_progress_new
    - fu_device_get_name
    - fu_engine_new
    - fu_udev_device_get_devtype
    - fu_context_has_backend
    - g_assert_cmpint
    - fu_engine_add_plugin_filter
    - fu_udev_device_get_subsystem
    - fu_engine_load
    - fu_device_get_vid
    - fu_udev_device_read_sysfs
    - FU_UDEV_DEVICE
    - fu_context_set_path
    - fu_device_get_backend_parent_with_subsystem
    - g_assert_no_error
    - fu_udev_device_get_driver
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_test_engine_udev_hidraw(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:93,1
    - Dst: fu_context_new
      Src: /src/fwupd/src/fu-engine-udev-test.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:95,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-udev-test.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:96,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-udev-test.c:96,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:97,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-udev-test.c:100,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-udev-test.c:101,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-udev-test.c:102,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-udev-test.c:103,1
    - Dst: fu_context_has_backend
      Src: /src/fwupd/src/fu-engine-udev-test.c:106,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-engine-udev-test.c:107,1
    - Dst: fu_engine_add_plugin_filter
      Src: /src/fwupd/src/fu-engine-udev-test.c:112,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-udev-test.c:113,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-udev-test.c:118,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-udev-test.c:119,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine-udev-test.c:122,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-udev-test.c:123,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-udev-test.c:124,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:125,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-engine-udev-test.c:125,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:125,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:126,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/src/fu-engine-udev-test.c:126,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:126,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:127,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/src/fu-engine-udev-test.c:127,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:127,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-udev-test.c:128,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/src/fu-engine-udev-test.c:128,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-udev-test.c:129,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/src/fu-engine-udev-test.c:129,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:130,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine-udev-test.c:130,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:131,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-engine-udev-test.c:131,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:132,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-engine-udev-test.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 87
    functionDepth: 14
    functionLinenumber: 87
    functionLinenumberEnd: 133
    functionName: fu_test_engine_udev_usb
    functionSourceFile: /src/fwupd/src/fu-engine-udev-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_device_get_logical_id
    - fu_device_get_pid
    - g_assert_nonnull
    - fu_device_get_physical_id
    - fu_engine_get_device
    - fu_device_get_plugin
    - fu_progress_new
    - fu_engine_new
    - fu_udev_device_get_devtype
    - fu_context_has_backend
    - g_assert_cmpint
    - fu_engine_add_plugin_filter
    - fu_udev_device_get_subsystem
    - fu_engine_load
    - fu_device_get_vid
    - FU_UDEV_DEVICE
    - fu_context_set_path
    - g_assert_no_error
    - fu_udev_device_get_driver
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_test_engine_udev_usb(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:141,1
    - Dst: fu_context_new
      Src: /src/fwupd/src/fu-engine-udev-test.c:141,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:143,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-udev-test.c:143,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:144,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-udev-test.c:144,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:145,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-udev-test.c:148,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-udev-test.c:149,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-udev-test.c:150,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-udev-test.c:151,1
    - Dst: fu_context_has_backend
      Src: /src/fwupd/src/fu-engine-udev-test.c:154,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-engine-udev-test.c:155,1
    - Dst: fu_engine_add_plugin_filter
      Src: /src/fwupd/src/fu-engine-udev-test.c:160,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-udev-test.c:161,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-udev-test.c:166,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-udev-test.c:167,1
    - Dst: fu_engine_get_plugin_by_name
      Src: /src/fwupd/src/fu-engine-udev-test.c:170,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-engine-udev-test.c:171,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine-udev-test.c:176,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-udev-test.c:177,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-udev-test.c:178,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:179,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-engine-udev-test.c:179,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:179,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:180,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/src/fu-engine-udev-test.c:180,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:180,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:181,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/src/fu-engine-udev-test.c:181,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:181,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-udev-test.c:182,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/src/fu-engine-udev-test.c:182,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-udev-test.c:183,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/src/fu-engine-udev-test.c:183,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-udev-test.c:184,1
    - Dst: fu_v4l_device_get_index
      Src: /src/fwupd/src/fu-engine-udev-test.c:184,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:184,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-udev-test.c:185,1
    - Dst: fu_v4l_device_get_caps
      Src: /src/fwupd/src/fu-engine-udev-test.c:185,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:185,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:186,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine-udev-test.c:186,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:187,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine-udev-test.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 135
    functionDepth: 14
    functionLinenumber: 135
    functionLinenumberEnd: 188
    functionName: fu_test_engine_udev_v4l
    functionSourceFile: /src/fwupd/src/fu-engine-udev-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_device_get_pid
    - g_assert_nonnull
    - fu_engine_get_device
    - fu_device_get_plugin
    - fu_progress_new
    - fu_device_get_name
    - fu_engine_new
    - fu_v4l_device_get_caps
    - fu_udev_device_get_devtype
    - fu_context_has_backend
    - g_assert_cmpint
    - fu_engine_add_plugin_filter
    - fu_udev_device_get_subsystem
    - fu_v4l_device_get_index
    - fu_engine_get_plugin_by_name
    - fu_engine_load
    - fu_device_get_vid
    - FU_V4L_DEVICE
    - FU_UDEV_DEVICE
    - fu_context_set_path
    - g_assert_no_error
    - fu_udev_device_get_driver
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_test_engine_udev_v4l(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:196,1
    - Dst: fu_context_new
      Src: /src/fwupd/src/fu-engine-udev-test.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:197,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:198,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-udev-test.c:198,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:199,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-udev-test.c:199,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:200,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-udev-test.c:203,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-udev-test.c:204,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-udev-test.c:205,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-udev-test.c:206,1
    - Dst: fu_context_has_backend
      Src: /src/fwupd/src/fu-engine-udev-test.c:209,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-engine-udev-test.c:210,1
    - Dst: fu_engine_add_plugin_filter
      Src: /src/fwupd/src/fu-engine-udev-test.c:215,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-udev-test.c:216,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-udev-test.c:221,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-udev-test.c:222,1
    - Dst: fu_engine_get_plugin_by_name
      Src: /src/fwupd/src/fu-engine-udev-test.c:225,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-engine-udev-test.c:226,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine-udev-test.c:231,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-udev-test.c:232,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-udev-test.c:233,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:234,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-engine-udev-test.c:234,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:234,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:235,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/src/fu-engine-udev-test.c:235,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:235,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-udev-test.c:236,1
    - Dst: fu_udev_device_get_number
      Src: /src/fwupd/src/fu-engine-udev-test.c:236,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:236,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:237,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/src/fu-engine-udev-test.c:237,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:237,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:238,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/src/fu-engine-udev-test.c:238,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:238,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-udev-test.c:239,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/src/fu-engine-udev-test.c:239,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-udev-test.c:240,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/src/fu-engine-udev-test.c:240,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-udev-test.c:241,1
    - Dst: fu_device_has_vendor_id
      Src: /src/fwupd/src/fu-engine-udev-test.c:241,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:242,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/src/fu-engine-udev-test.c:242,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:243,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine-udev-test.c:243,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:244,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-engine-udev-test.c:244,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:245,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-engine-udev-test.c:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 190
    functionDepth: 14
    functionLinenumber: 190
    functionLinenumberEnd: 246
    functionName: fu_test_engine_udev_nvme
    functionSourceFile: /src/fwupd/src/fu-engine-udev-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_device_get_logical_id
    - fu_device_get_pid
    - g_assert_nonnull
    - fu_device_get_physical_id
    - fu_engine_get_device
    - fu_device_get_plugin
    - fu_progress_new
    - fu_engine_new
    - fu_udev_device_get_number
    - fu_udev_device_get_devtype
    - fu_context_has_backend
    - g_assert_cmpint
    - fu_engine_add_plugin_filter
    - fu_udev_device_get_subsystem
    - fu_device_get_vendor
    - fu_engine_get_plugin_by_name
    - fu_engine_load
    - fu_device_get_vid
    - FU_UDEV_DEVICE
    - fu_device_has_vendor_id
    - fu_udev_device_get_device_file
    - fu_context_set_path
    - g_assert_no_error
    - fu_udev_device_get_driver
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_test_engine_udev_nvme(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:254,1
    - Dst: fu_context_new
      Src: /src/fwupd/src/fu-engine-udev-test.c:254,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:255,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:256,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-udev-test.c:256,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:257,1
    - Dst: fu_progress_new
      Src: /src/fwupd/src/fu-engine-udev-test.c:257,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-udev-test.c:258,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-udev-test.c:261,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-engine-udev-test.c:262,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-udev-test.c:263,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/src/fu-engine-udev-test.c:264,1
    - Dst: fu_context_has_backend
      Src: /src/fwupd/src/fu-engine-udev-test.c:267,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-engine-udev-test.c:268,1
    - Dst: fu_engine_add_plugin_filter
      Src: /src/fwupd/src/fu-engine-udev-test.c:273,1
    - Dst: fu_engine_load
      Src: /src/fwupd/src/fu-engine-udev-test.c:274,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-udev-test.c:279,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-udev-test.c:280,1
    - Dst: fu_engine_get_plugin_by_name
      Src: /src/fwupd/src/fu-engine-udev-test.c:283,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-engine-udev-test.c:284,1
    - Dst: fu_engine_get_device
      Src: /src/fwupd/src/fu-engine-udev-test.c:289,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-udev-test.c:290,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-udev-test.c:291,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:292,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-engine-udev-test.c:292,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:292,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:293,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/src/fu-engine-udev-test.c:293,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:293,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:294,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/src/fu-engine-udev-test.c:294,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:294,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:295,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/src/fu-engine-udev-test.c:295,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-engine-udev-test.c:295,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-udev-test.c:296,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/src/fu-engine-udev-test.c:296,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-udev-test.c:297,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/src/fu-engine-udev-test.c:297,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:298,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/src/fu-engine-udev-test.c:298,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:299,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-engine-udev-test.c:299,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:300,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-engine-udev-test.c:300,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-udev-test.c:303,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-engine-udev-test.c:303,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-udev-test.c:304,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/src/fu-engine-udev-test.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 248
    functionDepth: 14
    functionLinenumber: 248
    functionLinenumberEnd: 307
    functionName: fu_test_engine_udev_serio
    functionSourceFile: /src/fwupd/src/fu-engine-udev-test.c
    functionUses: 0
    functionsReached:
    - fu_device_has_instance_id
    - fu_context_new
    - fu_device_get_logical_id
    - fu_device_get_pid
    - g_assert_nonnull
    - fu_device_get_physical_id
    - fu_engine_get_device
    - fu_device_get_plugin
    - fu_progress_new
    - fu_device_get_name
    - fu_engine_new
    - fu_udev_device_get_devtype
    - fu_context_has_backend
    - g_assert_cmpint
    - fu_engine_add_plugin_filter
    - fu_udev_device_get_subsystem
    - fu_engine_get_plugin_by_name
    - fu_engine_load
    - fu_device_get_vid
    - FU_UDEV_DEVICE
    - fu_udev_device_get_device_file
    - fu_context_set_path
    - g_assert_no_error
    - fu_udev_device_get_driver
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_test_engine_udev_serio(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-engine-udev-test.c:312,1
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-engine-udev-test.c:313,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-engine-udev-test.c:314,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-udev-test.c:315,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-udev-test.c:316,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-udev-test.c:317,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-udev-test.c:318,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-udev-test.c:319,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-engine-udev-test.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 321
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-engine-udev-test.c
    functionUses: 1
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:32,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine-emulator.c:32,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine-emulator.c:34,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-engine-emulator.c:35,1
    - Dst: fu_engine_emulator_phase_to_string
      Src: /src/fwupd/src/fu-engine-emulator.c:35,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine-emulator.c:37,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-engine-emulator.c:38,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-engine-emulator.c:39,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-emulator.c:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - composite_cnt
    - phase
    - write_cnt
    argTypes:
    - guint
    - FuEngineEmulatorPhase
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 40
    functionName: fu_engine_emulator_phase_to_filename
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 0
    functionsReached:
    - g_string_append
    - g_steal_pointer
    - g_string_free
    - g_string_new
    - g_string_append_printf
    - g_autoptr
    - fu_engine_emulator_phase_to_string
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_engine_emulator_phase_to_filename(guint composite_cnt,\n\t\t\t\t
      \    FuEngineEmulatorPhase phase,\n\t\t\t\t     guint write_cnt)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:51,1
    - Dst: fu_zip_firmware_new
      Src: /src/fwupd/src/fu-engine-emulator.c:51,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-emulator.c:53,1
    - Dst: FU_IS_ENGINE_EMULATOR
      Src: /src/fwupd/src/fu-engine-emulator.c:53,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-emulator.c:54,1
    - Dst: G_IS_OUTPUT_STREAM
      Src: /src/fwupd/src/fu-engine-emulator.c:54,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-emulator.c:55,1
    - Dst: fu_engine_emulator_phase_to_filename
      Src: /src/fwupd/src/fu-engine-emulator.c:58,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/src/fu-engine-emulator.c:61,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-emulator.c:62,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-engine-emulator.c:68,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-engine-emulator.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:70,1
    - Dst: fu_zip_file_new
      Src: /src/fwupd/src/fu-engine-emulator.c:70,1
    - Dst: fu_zip_file_set_compression
      Src: /src/fwupd/src/fu-engine-emulator.c:71,1
    - Dst: FU_ZIP_FILE
      Src: /src/fwupd/src/fu-engine-emulator.c:71,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/src/fu-engine-emulator.c:72,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/src/fu-engine-emulator.c:73,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/src/fu-engine-emulator.c:74,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-emulator.c:79,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-engine-emulator.c:87,1
    - Dst: fu_output_stream_write_bytes
      Src: /src/fwupd/src/fu-engine-emulator.c:90,1
    - Dst: g_output_stream_flush
      Src: /src/fwupd/src/fu-engine-emulator.c:92,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-engine-emulator.c:93,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-emulator.c:98,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuEngineEmulator*
    - GOutputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 100
    functionName: fu_engine_emulator_save
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 1
    functionsReached:
    - fu_firmware_write
    - G_IS_OUTPUT_STREAM
    - fu_firmware_set_bytes
    - fu_zip_firmware_new
    - fu_zip_file_new
    - fu_firmware_add_image
    - g_set_error_literal
    - fu_engine_emulator_phase_to_filename
    - fu_zip_file_set_compression
    - g_hash_table_contains
    - FU_IS_ENGINE_EMULATOR
    - g_hash_table_iter_next
    - fwupd_error_convert
    - g_return_val_if_fail
    - fu_firmware_set_id
    - g_output_stream_flush
    - fu_output_stream_write_bytes
    - g_hash_table_iter_init
    - g_autoptr
    - FU_ZIP_FILE
    - g_hash_table_remove_all
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_emulator_save(FuEngineEmulator *self, GOutputStream
      *stream, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_backends
      Src: /src/fwupd/src/fu-engine-emulator.c:105,1
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-engine-emulator.c:105,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:108,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/src/fu-engine-emulator.c:108,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/src/fu-engine-emulator.c:111,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/src/fu-engine-emulator.c:112,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/src/fu-engine-emulator.c:113,1
    - Dst: fwupd_json_parser_load_from_bytes
      Src: /src/fwupd/src/fu-engine-emulator.c:116,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/src/fu-engine-emulator.c:123,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-emulator.c:129,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/src/fu-engine-emulator.c:130,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-engine-emulator.c:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - self
    - json_blob
    - error
    argTypes:
    - FuEngineEmulator*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 136
    functionName: fu_engine_emulator_load_json_blob
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - FWUPD_CODEC
    - fwupd_codec_from_json
    - fwupd_json_parser_load_from_bytes
    - fwupd_json_parser_set_max_quoted
    - fwupd_json_parser_new
    - fu_engine_get_context
    - fwupd_json_parser_set_max_items
    - fwupd_json_node_get_object
    - fu_context_get_backends
    - g_autoptr
    - g_ptr_array_index
    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:148,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-engine-emulator.c:149,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-emulator.c:151,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-emulator.c:154,1
    - Dst: fu_engine_emulator_load_json_blob
      Src: /src/fwupd/src/fu-engine-emulator.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - self
    - composite_cnt
    - phase
    - write_cnt
    - error
    argTypes:
    - FuEngineEmulator*
    - guint
    - FuEngineEmulatorPhase
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 156
    functionName: fu_engine_emulator_load_phase
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 3
    functionsReached:
    - fu_engine_emulator_load_json_blob
    - fu_engine_emulator_phase_to_filename
    - g_hash_table_lookup
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_emulator_load_phase(FuEngineEmulator *self,\n\t\t\t
      \     guint composite_cnt,\n\t\t\t      FuEngineEmulatorPhase phase,\n\t\t\t
      \     guint write_cnt,\n\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:161,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/src/fu-engine-emulator.c:161,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/src/fu-engine-emulator.c:164,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-emulator.c:166,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:167,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-engine-emulator.c:167,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-emulator.c:170,1
    - Dst: fu_device_add_json
      Src: /src/fwupd/src/fu-engine-emulator.c:172,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/src/fu-engine-emulator.c:173,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/src/fu-engine-emulator.c:175,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-emulator.c:179,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-emulator.c:180,1
    - Dst: fu_device_clear_events
      Src: /src/fwupd/src/fu-engine-emulator.c:182,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - self
    - devices
    - json_obj
    argTypes:
    - FuEngineEmulator*
    - GPtrArray*
    - FwupdJsonObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 184
    functionName: fu_engine_emulator_to_json
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - fwupd_json_object_add_string
    - fu_device_add_json
    - fwupd_json_object_new
    - fwupd_json_array_new
    - fu_device_has_flag
    - fwupd_json_array_add_object
    - fu_device_clear_events
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_engine_emulator_to_json(FuEngineEmulator *self, GPtrArray *devices,
      FwupdJsonObject *json_obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:197,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:198,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-engine-emulator.c:198,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-engine-emulator.c:201,1
    - Dst: fu_engine_emulator_to_json
      Src: /src/fwupd/src/fu-engine-emulator.c:204,1
    - Dst: fu_engine_emulator_phase_to_filename
      Src: /src/fwupd/src/fu-engine-emulator.c:206,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-emulator.c:207,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-engine-emulator.c:208,1
    - Dst: fwupd_json_object_to_bytes
      Src: /src/fwupd/src/fu-engine-emulator.c:209,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-engine-emulator.c:213,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine-emulator.c:214,1
    - Dst: fu_engine_emulator_phase_to_string
      Src: /src/fwupd/src/fu-engine-emulator.c:215,1
    - Dst: g_bytes_compare
      Src: /src/fwupd/src/fu-engine-emulator.c:219,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine-emulator.c:220,1
    - Dst: fu_engine_emulator_phase_to_string
      Src: /src/fwupd/src/fu-engine-emulator.c:221,1
    - Dst: fu_strsafe_bytes
      Src: /src/fwupd/src/fu-engine-emulator.c:225,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine-emulator.c:226,1
    - Dst: fu_engine_emulator_phase_to_string
      Src: /src/fwupd/src/fu-engine-emulator.c:228,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-emulator.c:231,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-emulator.c:231,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-emulator.c:231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 5
    argNames:
    - self
    - composite_cnt
    - phase
    - write_cnt
    - error
    argTypes:
    - FuEngineEmulator*
    - guint
    - FuEngineEmulatorPhase
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 235
    functionName: fu_engine_emulator_save_phase
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 9
    functionsReached:
    - fu_engine_emulator_to_json
    - g_bytes_compare
    - fu_engine_emulator_phase_to_string
    - g_debug
    - fu_engine_get_devices
    - fwupd_json_object_new
    - g_info
    - g_hash_table_lookup
    - fu_strsafe_bytes
    - g_hash_table_insert
    - g_steal_pointer
    - fu_engine_emulator_phase_to_filename
    - g_bytes_get_size
    - g_autoptr
    - fwupd_json_object_to_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_emulator_save_phase(FuEngineEmulator *self,\n\t\t\t
      \     guint composite_cnt,\n\t\t\t      FuEngineEmulatorPhase phase,\n\t\t\t
      \     guint write_cnt,\n\t\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:249,1
    - Dst: fu_engine_emulator_phase_to_filename
      Src: /src/fwupd/src/fu-engine-emulator.c:252,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/src/fu-engine-emulator.c:253,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-engine-emulator.c:254,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-engine-emulator.c:257,1
    - Dst: fu_engine_emulator_phase_to_string
      Src: /src/fwupd/src/fu-engine-emulator.c:258,1
    - Dst: fu_engine_emulator_load_json_blob
      Src: /src/fwupd/src/fu-engine-emulator.c:262,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-emulator.c:265,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-emulator.c:266,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-emulator.c:267,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 6
    argNames:
    - self
    - archive
    - composite_cnt
    - write_cnt
    - got_json
    - error
    argTypes:
    - FuEngineEmulator*
    - FuFirmware*
    - guint
    - guint
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 273
    functionName: fu_engine_emulator_load_phases
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_info
    - fu_engine_emulator_load_json_blob
    - fu_firmware_get_image_by_id_bytes
    - g_steal_pointer
    - fu_engine_emulator_phase_to_filename
    - g_bytes_get_size
    - g_autoptr
    - fu_engine_emulator_phase_to_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_engine_emulator_load_phases(FuEngineEmulator *self,\n\t\t\t
      \      FuFirmware *archive,\n\t\t\t       guint composite_cnt,\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:280,1
    - Dst: fu_zip_firmware_new
      Src: /src/fwupd/src/fu-engine-emulator.c:280,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:281,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/src/fu-engine-emulator.c:281,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-engine-emulator.c:281,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:282,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-emulator.c:284,1
    - Dst: FU_IS_ENGINE_EMULATOR
      Src: /src/fwupd/src/fu-engine-emulator.c:284,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-emulator.c:285,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/src/fu-engine-emulator.c:285,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-emulator.c:286,1
    - Dst: fu_engine_emulator_load_json_blob
      Src: /src/fwupd/src/fu-engine-emulator.c:289,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-engine-emulator.c:291,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/src/fu-engine-emulator.c:294,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-emulator.c:299,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-emulator.c:300,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/src/fu-engine-emulator.c:301,1
    - Dst: fu_engine_emulator_load_json_blob
      Src: /src/fwupd/src/fu-engine-emulator.c:304,1
    - Dst: fu_engine_emulator_load_phases
      Src: /src/fwupd/src/fu-engine-emulator.c:312,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-emulator.c:322,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuEngineEmulator*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 331
    functionName: fu_engine_emulator_load
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_input_stream_read_bytes
    - fu_engine_emulator_load_json_blob
    - g_debug
    - fu_firmware_parse_stream
    - g_set_error_literal
    - fu_zip_firmware_new
    - strlen
    - G_IS_INPUT_STREAM
    - fu_engine_emulator_load_phases
    - FU_IS_ENGINE_EMULATOR
    - g_autoptr
    - g_bytes_new_static
    - g_hash_table_remove_all
    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:336,1
    - Dst: g_value_set_object
      Src: /src/fwupd/src/fu-engine-emulator.c:339,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/src/fu-engine-emulator.c:342,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: 345
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 345
    functionName: fu_engine_emulator_get_property
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 0
    functionsReached:
    - g_value_set_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_ENGINE_EMULATOR
    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:353,1
    - Dst: g_value_dup_object
      Src: /src/fwupd/src/fu-engine-emulator.c:356,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/src/fu-engine-emulator.c:359,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: 362
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 362
    functionName: fu_engine_emulator_set_property
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 0
    functionsReached:
    - g_value_dup_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_ENGINE_EMULATOR
    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:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineEmulator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 369
    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:374,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/src/fu-engine-emulator.c:375,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-engine-emulator.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 377
    functionName: fu_engine_emulator_finalize
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 0
    functionsReached:
    - g_hash_table_unref
    - FU_ENGINE_EMULATOR
    - G_OBJECT_CLASS
    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:382,1
    - Dst: g_clear_object
      Src: /src/fwupd/src/fu-engine-emulator.c:383,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-engine-emulator.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 385
    functionName: fu_engine_emulator_dispose
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 0
    functionsReached:
    - g_clear_object
    - FU_ENGINE_EMULATOR
    - G_OBJECT_CLASS
    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:390,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/src/fu-engine-emulator.c:399,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/src/fu-engine-emulator.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEngineEmulatorClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 405
    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:410,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-engine-emulator.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - engine
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 411
    functionName: fu_engine_emulator_new
    functionSourceFile: /src/fwupd/src/fu-engine-emulator.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_ENGINE_EMULATOR
    linkageType: ''
    returnType: FuEngineEmulator
    signature: 'FuEngineEmulator *

      fu_engine_emulator_new(FuEngine *engine)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-test.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-test.c:23,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-remote-test.c:25,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-remote-test.c:26,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-remote-test.c:27,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-remote-test.c:34,1
    - Dst: fwupd_remote_set_remotes_dir
      Src: /src/fwupd/src/fu-remote-test.c:35,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-remote-test.c:36,1
    - Dst: fu_remote_load_from_filename
      Src: /src/fwupd/src/fu-remote-test.c:37,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:38,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:39,1
    - Dst: fwupd_remote_setup
      Src: /src/fwupd/src/fu-remote-test.c:40,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:41,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:42,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-remote-test.c:43,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-remote-test.c:43,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-remote-test.c:44,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-test.c:44,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-remote-test.c:45,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote-test.c:45,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-remote-test.c:46,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-remote-test.c:46,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-remote-test.c:47,1
    - Dst: fwupd_remote_get_metadata_uri_sig
      Src: /src/fwupd/src/fu-remote-test.c:47,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:48,1
    - Dst: fwupd_remote_get_title
      Src: /src/fwupd/src/fu-remote-test.c:48,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:51,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-remote-test.c:51,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:54,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-remote-test.c:54,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:55,1
    - Dst: fwupd_remote_get_filename_cache_sig
      Src: /src/fwupd/src/fu-remote-test.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 56
    functionName: fu_remote_download_func
    functionSourceFile: /src/fwupd/src/fu-remote-test.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_kind
    - fwupd_remote_new
    - fwupd_remote_get_title
    - fwupd_remote_get_filename_cache
    - g_assert_nonnull
    - fwupd_remote_setup
    - g_strdup_printf
    - fu_remote_load_from_filename
    - fwupd_remote_get_metadata_uri_sig
    - g_assert_cmpint
    - fwupd_remote_get_report_uri
    - fwupd_remote_has_flag
    - g_assert_false
    - fwupd_remote_get_filename_cache_sig
    - fwupd_remote_set_remotes_dir
    - g_assert_no_error
    - fwupd_remote_get_metadata_uri
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - g_build_filename
    - fwupd_remote_get_priority
    linkageType: ''
    returnType: void
    signature: void fu_remote_download_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-test.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-test.c:67,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-remote-test.c:69,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-remote-test.c:70,1
    - Dst: fwupd_remote_set_remotes_dir
      Src: /src/fwupd/src/fu-remote-test.c:71,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-remote-test.c:72,1
    - Dst: fu_remote_load_from_filename
      Src: /src/fwupd/src/fu-remote-test.c:73,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:74,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:75,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-remote-test.c:76,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-remote-test.c:76,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-remote-test.c:77,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-test.c:77,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:78,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote-test.c:78,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:79,1
    - Dst: fwupd_remote_get_firmware_base_uri
      Src: /src/fwupd/src/fu-remote-test.c:79,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:80,1
    - Dst: fwupd_remote_get_agreement
      Src: /src/fwupd/src/fu-remote-test.c:80,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:81,1
    - Dst: fwupd_remote_get_checksum
      Src: /src/fwupd/src/fu-remote-test.c:81,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:82,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-remote-test.c:82,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:85,1
    - Dst: fwupd_remote_get_metadata_uri_sig
      Src: /src/fwupd/src/fu-remote-test.c:85,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/src/fu-remote-test.c:89,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:90,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 92
    functionName: fu_remote_baseuri_func
    functionSourceFile: /src/fwupd/src/fu-remote-test.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_checksum
    - fwupd_remote_get_kind
    - fwupd_remote_new
    - fu_remote_load_from_filename
    - fwupd_remote_get_metadata_uri_sig
    - fwupd_remote_get_agreement
    - g_assert_cmpint
    - fwupd_remote_get_firmware_base_uri
    - fwupd_remote_has_flag
    - fwupd_remote_build_firmware_uri
    - fwupd_remote_set_remotes_dir
    - g_assert_no_error
    - fwupd_remote_get_metadata_uri
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - g_build_filename
    - fwupd_remote_get_priority
    linkageType: ''
    returnType: void
    signature: void fu_remote_baseuri_func(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-test.c:102,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-remote-test.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-test.c:103,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-remote-test.c:103,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-test.c:104,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-test.c:105,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-remote-test.c:107,1
    - Dst: fwupd_remote_set_remotes_dir
      Src: /src/fwupd/src/fu-remote-test.c:108,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-remote-test.c:110,1
    - Dst: fu_remote_load_from_filename
      Src: /src/fwupd/src/fu-remote-test.c:111,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:112,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:113,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:114,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/src/fu-remote-test.c:114,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:115,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/src/fu-remote-test.c:115,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:116,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-remote-test.c:116,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-remote-test.c:119,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote-test.c:119,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-remote-test.c:120,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote-test.c:120,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:121,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote-test.c:121,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:123,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-remote-test.c:124,1
    - Dst: fwupd_remote_get_filename_source
      Src: /src/fwupd/src/fu-remote-test.c:124,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:125,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-remote-test.c:125,1
    - Dst: fwupd_remote_get_remotes_dir
      Src: /src/fwupd/src/fu-remote-test.c:125,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-remote-test.c:126,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/src/fu-remote-test.c:126,1
    - Dst: fwupd_remote_setup
      Src: /src/fwupd/src/fu-remote-test.c:128,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:129,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:130,1
    - Dst: fwupd_remote_get_order_before
      Src: /src/fwupd/src/fu-remote-test.c:132,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-remote-test.c:133,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-remote-test.c:134,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-remote-test.c:134,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:135,1
    - Dst: fwupd_remote_get_order_after
      Src: /src/fwupd/src/fu-remote-test.c:136,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-remote-test.c:137,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-remote-test.c:138,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-remote-test.c:138,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:139,1
    - Dst: fwupd_remote_set_priority
      Src: /src/fwupd/src/fu-remote-test.c:142,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/src/fu-remote-test.c:143,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-remote-test.c:143,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/src/fu-remote-test.c:144,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-remote-test.c:144,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:145,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:146,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:147,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/src/fu-remote-test.c:147,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-remote-test.c:148,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-test.c:148,1
    - Dst: fwupd_remote_load_signature
      Src: /src/fwupd/src/fu-remote-test.c:151,1
    - Dst: fwupd_remote_get_filename_cache_sig
      Src: /src/fwupd/src/fu-remote-test.c:152,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-remote-test.c:155,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-remote-test.c:156,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:160,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:161,1
    - Dst: fwupd_remote_set_filename_source
      Src: /src/fwupd/src/fu-remote-test.c:164,1
    - Dst: fwupd_remote_set_checksum_sig
      Src: /src/fwupd/src/fu-remote-test.c:165,1
    - Dst: fwupd_remote_set_filename_cache
      Src: /src/fwupd/src/fu-remote-test.c:168,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/src/fu-remote-test.c:169,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-remote-test.c:169,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:170,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-remote-test.c:171,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/src/fu-remote-test.c:172,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:197,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 199
    functionName: fu_remote_auth_func
    functionSourceFile: /src/fwupd/src/fu-remote-test.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_order_before
    - FWUPD_CODEC
    - fwupd_remote_set_checksum_sig
    - fwupd_remote_new
    - fwupd_remote_get_filename_source
    - g_str_has_suffix
    - g_assert_nonnull
    - fwupd_remote_set_filename_source
    - fwupd_remote_setup
    - g_strv_length
    - fu_remote_load_from_filename
    - fu_test_compare_lines
    - fwupd_codec_to_variant
    - g_assert_cmpint
    - fwupd_remote_get_report_uri
    - fwupd_remote_get_password
    - fwupd_remote_get_remotes_dir
    - fwupd_remote_has_flag
    - fwupd_remote_get_username
    - fwupd_remote_get_order_after
    - fwupd_codec_from_variant
    - g_assert_false
    - fwupd_remote_get_filename_cache_sig
    - fwupd_remote_set_remotes_dir
    - fwupd_remote_load_signature
    - g_assert_no_error
    - fwupd_remote_set_priority
    - fwupd_remote_set_filename_cache
    - fwupd_codec_to_json_string
    - fwupd_remote_get_age
    - g_error_matches
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - fwupd_remote_get_priority
    linkageType: ''
    returnType: void
    signature: void fu_remote_auth_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-test.c:207,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-remote-test.c:207,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-test.c:208,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-remote-test.c:210,1
    - Dst: fu_remote_load_from_filename
      Src: /src/fwupd/src/fu-remote-test.c:211,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:212,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:213,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-remote-test.c:214,1
    - Dst: fu_remote_load_from_filename
      Src: /src/fwupd/src/fu-remote-test.c:215,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:216,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:217,1
    - Dst: fwupd_remote_setup
      Src: /src/fwupd/src/fu-remote-test.c:218,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:219,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:220,1
    - Dst: fwupd_remote_setup
      Src: /src/fwupd/src/fu-remote-test.c:221,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:222,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:223,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-remote-test.c:224,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote-test.c:224,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:225,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/src/fu-remote-test.c:225,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:226,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/src/fu-remote-test.c:226,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:227,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-remote-test.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 230
    functionName: fu_remote_duplicate_func
    functionSourceFile: /src/fwupd/src/fu-remote-test.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_has_flag
    - fwupd_remote_new
    - g_assert_cmpstr
    - fwupd_remote_get_filename_cache
    - g_assert_no_error
    - fwupd_remote_setup
    - fwupd_remote_get_username
    - g_assert_false
    - fwupd_remote_get_password
    - g_assert_true
    - g_test_build_filename
    - fu_remote_load_from_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_remote_duplicate_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-test.c:237,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-test.c:238,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-remote-test.c:238,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-test.c:239,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-remote-test.c:241,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:242,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-remote-test.c:243,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/src/fu-remote-test.c:244,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-remote-test.c:246,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:254,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:255,1
    - Dst: fu_remote_load_from_filename
      Src: /src/fwupd/src/fu-remote-test.c:257,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:258,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:259,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-remote-test.c:260,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-remote-test.c:260,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:261,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote-test.c:261,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:262,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-remote-test.c:262,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:265,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/src/fu-remote-test.c:265,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:266,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/src/fu-remote-test.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 267
    functionName: fu_remote_empty_credentials_func
    functionSourceFile: /src/fwupd/src/fu-remote-test.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_kind
    - fwupd_remote_new
    - fwupd_remote_has_flag
    - g_assert_cmpstr
    - g_assert_nonnull
    - g_assert_no_error
    - fu_temporary_directory_build
    - g_assert_cmpint
    - fwupd_remote_get_metadata_uri
    - fwupd_remote_get_username
    - fwupd_remote_get_password
    - g_assert_true
    - fu_temporary_directory_new
    - fu_remote_load_from_filename
    - g_autoptr
    - g_file_set_contents
    linkageType: ''
    returnType: void
    signature: void fu_remote_empty_credentials_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-test.c:276,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-test.c:277,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-remote-test.c:280,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-remote-test.c:281,1
    - Dst: fwupd_remote_set_remotes_dir
      Src: /src/fwupd/src/fu-remote-test.c:282,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-remote-test.c:283,1
    - Dst: fu_remote_load_from_filename
      Src: /src/fwupd/src/fu-remote-test.c:284,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:285,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:286,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-remote-test.c:287,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-remote-test.c:287,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-remote-test.c:288,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-remote-test.c:288,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:289,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote-test.c:289,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:290,1
    - Dst: fwupd_remote_get_checksum
      Src: /src/fwupd/src/fu-remote-test.c:290,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:291,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-remote-test.c:291,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:294,1
    - Dst: fwupd_remote_get_metadata_uri_sig
      Src: /src/fwupd/src/fu-remote-test.c:294,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/src/fu-remote-test.c:297,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:298,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 302
    functionName: fu_remote_nopath_func
    functionSourceFile: /src/fwupd/src/fu-remote-test.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_set_remotes_dir
    - fwupd_remote_get_checksum
    - fwupd_remote_get_kind
    - fwupd_remote_new
    - fwupd_remote_has_flag
    - g_assert_cmpstr
    - fwupd_remote_get_metadata_uri_sig
    - g_assert_no_error
    - g_assert_cmpint
    - fwupd_remote_get_metadata_uri
    - fwupd_remote_build_firmware_uri
    - g_assert_true
    - g_test_build_filename
    - fu_remote_load_from_filename
    - g_autoptr
    - g_build_filename
    - fwupd_remote_get_priority
    linkageType: ''
    returnType: void
    signature: void fu_remote_nopath_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-test.c:310,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-test.c:311,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-remote-test.c:311,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-test.c:312,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-test.c:313,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-remote-test.c:315,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-remote-test.c:316,1
    - Dst: fu_remote_load_from_filename
      Src: /src/fwupd/src/fu-remote-test.c:317,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:318,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:319,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-remote-test.c:320,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-remote-test.c:320,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:321,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-remote-test.c:321,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-remote-test.c:322,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-remote-test.c:322,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-remote-test.c:323,1
    - Dst: fwupd_remote_get_metadata_uri_sig
      Src: /src/fwupd/src/fu-remote-test.c:323,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-remote-test.c:324,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-remote-test.c:324,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:325,1
    - Dst: fwupd_remote_get_title
      Src: /src/fwupd/src/fu-remote-test.c:325,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:328,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-remote-test.c:328,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:331,1
    - Dst: fwupd_remote_get_filename_cache_sig
      Src: /src/fwupd/src/fu-remote-test.c:331,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-test.c:332,1
    - Dst: fwupd_remote_get_checksum
      Src: /src/fwupd/src/fu-remote-test.c:332,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/src/fu-remote-test.c:335,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-remote-test.c:335,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/src/fu-remote-test.c:336,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-remote-test.c:336,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:337,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:338,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-remote-test.c:339,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-remote-test.c:339,1
    - Dst: fwupd_remote_set_filename_source
      Src: /src/fwupd/src/fu-remote-test.c:342,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/src/fu-remote-test.c:343,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-remote-test.c:343,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:344,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-remote-test.c:345,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/src/fu-remote-test.c:346,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-test.c:363,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-test.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 365
    functionName: fu_remote_local_func
    functionSourceFile: /src/fwupd/src/fu-remote-test.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - fwupd_remote_get_checksum
    - fwupd_remote_get_kind
    - fwupd_remote_new
    - fwupd_remote_get_title
    - fwupd_remote_get_filename_cache
    - fwupd_remote_set_filename_source
    - g_assert_nonnull
    - fu_remote_load_from_filename
    - fwupd_remote_get_metadata_uri_sig
    - fu_test_compare_lines
    - fwupd_codec_to_variant
    - g_assert_cmpint
    - fwupd_remote_get_report_uri
    - g_assert_null
    - fwupd_remote_has_flag
    - fwupd_codec_from_variant
    - fwupd_remote_get_filename_cache_sig
    - g_assert_no_error
    - fwupd_remote_get_metadata_uri
    - fwupd_codec_to_json_string
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_remote_local_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-remote-test.c:370,1
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-remote-test.c:371,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-remote-test.c:372,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-remote-test.c:373,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-remote-test.c:374,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-remote-test.c:375,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-remote-test.c:376,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-remote-test.c:377,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-remote-test.c:378,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-remote-test.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 380
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-remote-test.c
    functionUses: 1
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-console-test.c:16,1
    - Dst: fu_console_new
      Src: /src/fwupd/src/fu-console-test.c:16,1
    - Dst: fu_console_set_status_length
      Src: /src/fwupd/src/fu-console-test.c:18,1
    - Dst: fu_console_set_percentage_length
      Src: /src/fwupd/src/fu-console-test.c:19,1
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-console-test.c:22,1
    - Dst: g_usleep
      Src: /src/fwupd/src/fu-console-test.c:23,1
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-console-test.c:25,1
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-console-test.c:28,1
    - Dst: g_usleep
      Src: /src/fwupd/src/fu-console-test.c:29,1
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-console-test.c:31,1
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-console-test.c:34,1
    - Dst: g_usleep
      Src: /src/fwupd/src/fu-console-test.c:35,1
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-console-test.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 38
    functionName: fu_console_func
    functionSourceFile: /src/fwupd/src/fu-console-test.c
    functionUses: 0
    functionsReached:
    - g_usleep
    - fu_console_set_percentage_length
    - fu_console_set_progress
    - fu_console_new
    - fu_console_set_status_length
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_console_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setlocale
      Src: /src/fwupd/src/fu-console-test.c:43,1
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-console-test.c:44,1
    - Dst: g_test_slow
      Src: /src/fwupd/src/fu-console-test.c:45,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-console-test.c:46,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-console-test.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-console-test.c
    functionUses: 1
    functionsReached:
    - g_test_slow
    - g_test_add_func
    - g_test_init
    - g_test_run
    - setlocale
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-result.c:41,1
    - Dst: FU_IS_JCAT_RESULT
      Src: /src/fwupd/src/fu-jcat-result.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJcatResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: fu_jcat_result_get_timestamp
    functionSourceFile: /src/fwupd/src/fu-jcat-result.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_JCAT_RESULT
    linkageType: ''
    returnType: gint64
    signature: gint64 fu_jcat_result_get_timestamp(FuJcatResult *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-result.c:56,1
    - Dst: FU_IS_JCAT_RESULT
      Src: /src/fwupd/src/fu-jcat-result.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJcatResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: fu_jcat_result_get_authority
    functionSourceFile: /src/fwupd/src/fu-jcat-result.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_JCAT_RESULT
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_jcat_result_get_authority(FuJcatResult *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-result.c:71,1
    - Dst: FU_IS_JCAT_RESULT
      Src: /src/fwupd/src/fu-jcat-result.c:71,1
    - Dst: fu_jcat_engine_get_kind
      Src: /src/fwupd/src/fu-jcat-result.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJcatResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: fu_jcat_result_get_kind
    functionSourceFile: /src/fwupd/src/fu-jcat-result.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_jcat_engine_get_kind
    - FU_IS_JCAT_RESULT
    linkageType: ''
    returnType: FwupdJcatBlobKind
    signature: FwupdJcatBlobKind fu_jcat_result_get_kind(FuJcatResult *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-result.c:88,1
    - Dst: FU_IS_JCAT_RESULT
      Src: /src/fwupd/src/fu-jcat-result.c:88,1
    - Dst: fu_jcat_engine_get_method
      Src: /src/fwupd/src/fu-jcat-result.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJcatResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: fu_jcat_result_get_method
    functionSourceFile: /src/fwupd/src/fu-jcat-result.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_jcat_engine_get_method
    - FU_IS_JCAT_RESULT
    linkageType: ''
    returnType: FwupdJcatBlobMethod
    signature: FwupdJcatBlobMethod fu_jcat_result_get_method(FuJcatResult *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_RESULT
      Src: /src/fwupd/src/fu-jcat-result.c:97,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-jcat-result.c:98,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/src/fu-jcat-result.c:98,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-result.c:100,1
    - Dst: g_date_time_new_from_unix_utc
      Src: /src/fwupd/src/fu-jcat-result.c:100,1
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/src/fu-jcat-result.c:102,1
    - Dst: g_date_time_format_iso8601
      Src: /src/fwupd/src/fu-jcat-result.c:103,1
    - Dst: g_date_time_format
      Src: /src/fwupd/src/fu-jcat-result.c:105,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-jcat-result.c:107,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-jcat-result.c:111,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/src/fu-jcat-result.c:113,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-jcat-result.c:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 114
    functionName: fu_jcat_result_add_string
    functionSourceFile: /src/fwupd/src/fu-jcat-result.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_add_string
    - FWUPD_CODEC
    - GLIB_CHECK_VERSION
    - g_date_time_format_iso8601
    - G_OBJECT_TYPE_NAME
    - fwupd_codec_string_append
    - FU_JCAT_RESULT
    - g_date_time_format
    - g_autoptr
    - g_date_time_new_from_unix_utc
    linkageType: ''
    returnType: void
    signature: void fu_jcat_result_add_string(FwupdCodec *codec, guint idt, GString
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_RESULT
      Src: /src/fwupd/src/fu-jcat-result.c:119,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-jcat-result.c:121,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-jcat-result.c:122,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-jcat-result.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: fu_jcat_result_finalize
    functionSourceFile: /src/fwupd/src/fu-jcat-result.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - FU_JCAT_RESULT
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_jcat_result_finalize(GObject *object)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_RESULT
      Src: /src/fwupd/src/fu-jcat-result.c:129,1
    - Dst: g_value_set_object
      Src: /src/fwupd/src/fu-jcat-result.c:132,1
    - Dst: g_value_set_int64
      Src: /src/fwupd/src/fu-jcat-result.c:135,1
    - Dst: g_value_set_string
      Src: /src/fwupd/src/fu-jcat-result.c:138,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/src/fu-jcat-result.c:141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 144
    functionName: fu_jcat_result_get_property
    functionSourceFile: /src/fwupd/src/fu-jcat-result.c
    functionUses: 0
    functionsReached:
    - g_value_set_string
    - g_value_set_int64
    - FU_JCAT_RESULT
    - g_value_set_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    linkageType: ''
    returnType: void
    signature: void fu_jcat_result_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_RESULT
      Src: /src/fwupd/src/fu-jcat-result.c:149,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-jcat-result.c:152,1
    - Dst: g_value_get_object
      Src: /src/fwupd/src/fu-jcat-result.c:152,1
    - Dst: g_value_get_int64
      Src: /src/fwupd/src/fu-jcat-result.c:155,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-jcat-result.c:158,1
    - Dst: g_value_dup_string
      Src: /src/fwupd/src/fu-jcat-result.c:159,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/src/fu-jcat-result.c:162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 165
    functionName: fu_jcat_result_set_property
    functionSourceFile: /src/fwupd/src/fu-jcat-result.c
    functionUses: 0
    functionsReached:
    - g_value_dup_string
    - g_value_get_int64
    - g_set_object
    - FU_JCAT_RESULT
    - g_free
    - g_value_get_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    linkageType: ''
    returnType: void
    signature: void fu_jcat_result_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: fu_jcat_result_codec_iface_init
    functionSourceFile: /src/fwupd/src/fu-jcat-result.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_jcat_result_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-jcat-result.c:176,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/src/fu-jcat-result.c:184,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/src/fu-jcat-result.c:189,1
    - Dst: g_param_spec_int64
      Src: /src/fwupd/src/fu-jcat-result.c:191,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/src/fu-jcat-result.c:198,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/src/fu-jcat-result.c:200,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/src/fu-jcat-result.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJcatResultClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 206
    functionName: fu_jcat_result_class_init
    functionSourceFile: /src/fwupd/src/fu-jcat-result.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_object
    - G_OBJECT_CLASS
    - g_param_spec_string
    - g_param_spec_int64
    linkageType: ''
    returnType: void
    signature: void fu_jcat_result_class_init(FuJcatResultClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJcatResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: fu_jcat_result_init
    functionSourceFile: /src/fwupd/src/fu-jcat-result.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_jcat_result_init(FuJcatResult *self)
  - 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
    - fu_polkit_agent_new
    - g_assert_no_error
    - g_assert_true
    - 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:32,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-config.c:32,1
    - Dst: fwupd_report_flag_from_string
      Src: /src/fwupd/src/fu-engine-config.c:34,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-config.c:36,1
    - Dst: fwupd_report_add_flag
      Src: /src/fwupd/src/fu-engine-config.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - report
    - flags_str
    - error
    argTypes:
    - FwupdReport*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 46
    functionName: fu_engine_config_report_from_flags
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 0
    functionsReached:
    - fwupd_report_add_flag
    - g_set_error
    - fwupd_report_flag_from_string
    - g_strsplit
    - g_auto
    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:51,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-config.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-config.c:52,1
    - Dst: fwupd_report_new
      Src: /src/fwupd/src/fu-engine-config.c:52,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-config.c:56,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-config.c:56,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-engine-config.c:57,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-config.c:58,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-engine-config.c:65,1
    - Dst: g_get_os_info
      Src: /src/fwupd/src/fu-engine-config.c:66,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-config.c:68,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-config.c:69,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-config.c:71,1
    - Dst: fwupd_report_add_flag
      Src: /src/fwupd/src/fu-engine-config.c:72,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-engine-config.c:74,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-engine-config.c:80,1
    - Dst: fwupd_report_set_vendor_id
      Src: /src/fwupd/src/fu-engine-config.c:83,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-config.c:85,1
    - Dst: fwupd_report_set_distro_id
      Src: /src/fwupd/src/fu-engine-config.c:86,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-config.c:87,1
    - Dst: fwupd_report_set_distro_variant
      Src: /src/fwupd/src/fu-engine-config.c:88,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-config.c:89,1
    - Dst: fwupd_report_set_distro_version
      Src: /src/fwupd/src/fu-engine-config.c:90,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-config.c:91,1
    - Dst: fwupd_report_set_remote_id
      Src: /src/fwupd/src/fu-engine-config.c:92,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-config.c:93,1
    - Dst: fu_engine_config_report_from_flags
      Src: /src/fwupd/src/fu-engine-config.c:94,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-config.c:97,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-config.c:107,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 3
    argNames:
    - self
    - report_spec
    - error
    argTypes:
    - FuEngineConfig*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 108
    functionName: fu_engine_config_report_from_spec
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 0
    functionsReached:
    - fwupd_report_add_flag
    - fwupd_report_set_remote_id
    - g_get_os_info
    - g_strv_length
    - g_auto
    - fwupd_report_new
    - g_strsplit
    - g_str_has_prefix
    - fwupd_report_set_distro_id
    - fu_strtoull
    - fwupd_report_set_distro_variant
    - fwupd_report_set_distro_version
    - fu_engine_config_report_from_flags
    - g_strdup
    - g_strcmp0
    - g_set_error
    - g_steal_pointer
    - g_prefix_error
    - fwupd_report_set_vendor_id
    - g_autoptr
    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:113,1
    - 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_ptr_array_set_size
      Src: /src/fwupd/src/fu-engine-config.c:124,1
    - Dst: fu_config_get_value_strv
      Src: /src/fwupd/src/fu-engine-config.c:125,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:125,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-config.c:128,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-config.c:128,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-engine-config.c:132,1
    - Dst: fu_config_get_value_strv
      Src: /src/fwupd/src/fu-engine-config.c:133,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:133,1
    - Dst: fu_strstrip
      Src: /src/fwupd/src/fu-engine-config.c:136,1
    - Dst: g_strdelimit
      Src: /src/fwupd/src/fu-engine-config.c:139,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-config.c:140,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-config.c:140,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-engine-config.c:145,1
    - Dst: fu_config_get_value_strv
      Src: /src/fwupd/src/fu-engine-config.c:146,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:146,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-config.c:149,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-config.c:149,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-engine-config.c:153,1
    - Dst: fu_config_get_value_strv
      Src: /src/fwupd/src/fu-engine-config.c:154,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:154,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-config.c:157,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-config.c:157,1
    - Dst: fu_config_get_value
      Src: /src/fwupd/src/fu-engine-config.c:161,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:161,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-engine-config.c:163,1
    - Dst: fu_config_get_value
      Src: /src/fwupd/src/fu-engine-config.c:166,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:166,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-config.c:168,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_autoptr
      Src: /src/fwupd/src/fu-engine-config.c:173,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine-config.c:173,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-engine-config.c:174,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine-config.c:175,1
    - Dst: g_string_truncate
      Src: /src/fwupd/src/fu-engine-config.c:176,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-engine-config.c:178,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-config.c:178,1
    - Dst: g_array_set_size
      Src: /src/fwupd/src/fu-engine-config.c:182,1
    - Dst: fu_config_get_value_strv
      Src: /src/fwupd/src/fu-engine-config.c:183,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:183,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-config.c:187,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-engine-config.c:188,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine-config.c:194,1
    - Dst: g_array_append_val
      Src: /src/fwupd/src/fu-engine-config.c:199,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-engine-config.c:204,1
    - Dst: fu_config_get_value_strv
      Src: /src/fwupd/src/fu-engine-config.c:205,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:205,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-config.c:208,1
    - Dst: fu_engine_config_report_from_spec
      Src: /src/fwupd/src/fu-engine-config.c:210,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-engine-config.c:212,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-config.c:217,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 81
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 220
    functionName: fu_engine_config_reload
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 0
    functionsReached:
    - g_setenv
    - fu_config_get_value_strv
    - g_str_has_suffix
    - g_ptr_array_set_size
    - fu_config_get_value
    - g_strdelimit
    - g_auto
    - g_array_set_size
    - fu_engine_config_report_from_spec
    - g_string_new
    - g_string_truncate
    - fu_strtoull
    - g_warning
    - g_array_append_val
    - FU_CONFIG
    - g_strdup
    - fu_strstrip
    - g_steal_pointer
    - g_ptr_array_add
    - g_string_free
    - g_autoptr
    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:225,1
    - Dst: fu_engine_config_reload
      Src: /src/fwupd/src/fu-engine-config.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - config
    - user_data
    argTypes:
    - FuEngineConfig*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 222
    functionDepth: 4
    functionLinenumber: 222
    functionLinenumberEnd: 227
    functionName: fu_engine_config_changed_cb
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 0
    functionsReached:
    - fu_engine_config_reload
    - FU_ENGINE_CONFIG
    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:232,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: fu_engine_config_get_idle_timeout
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 2
    functionsReached:
    - fu_config_get_value_u64
    - FU_CONFIG
    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:238,1
    - Dst: FU_IS_ENGINE_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 240
    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:245,1
    - Dst: FU_IS_ENGINE_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 247
    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:252,1
    - Dst: FU_IS_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 254
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_find_with_equal_func
      Src: /src/fwupd/src/fu-engine-config.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - scheme
    argTypes:
    - FuEngineConfig*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 263
    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:268,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: fu_engine_config_get_archive_size_max
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 1
    functionsReached:
    - fu_config_get_value_u64
    - FU_CONFIG
    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:274,1
    - Dst: FU_IS_ENGINE_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 276
    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:281,1
    - Dst: FU_IS_ENGINE_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 283
    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:288,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 289
    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:294,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 295
    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:300,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 301
    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:306,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 307
    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:312,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 313
    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:318,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 319
    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:324,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 325
    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:330,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: fu_engine_config_get_only_trust_pq_signatures
    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_only_trust_pq_signatures(FuEngineConfig
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_config_get_value_bool
      Src: /src/fwupd/src/fu-engine-config.c:336,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 337
    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:342,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:342,1
    - Dst: fu_release_priority_from_string
      Src: /src/fwupd/src/fu-engine-config.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: fu_engine_config_get_release_priority
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 1
    functionsReached:
    - FU_CONFIG
    - fu_release_priority_from_string
    - fu_config_get_value
    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:350,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:350,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-config.c:351,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-config.c:351,1
    - Dst: fu_p2p_policy_from_string
      Src: /src/fwupd/src/fu-engine-config.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 355
    functionName: fu_engine_config_get_p2p_policy
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 4
    functionsReached:
    - fu_config_get_value
    - g_strsplit
    - g_auto
    - 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:360,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 361
    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:366,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 367
    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:372,1
    - Dst: FU_IS_ENGINE_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 374
    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:379,1
    - Dst: FU_IS_ENGINE_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 381
    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:386,1
    - Dst: MIN
      Src: /src/fwupd/src/fu-engine-config.c:387,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine-config.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 390
    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:395,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/src/fu-engine-config.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuEngineConfig*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 396
    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:401,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-config.c:402,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-config.c:403,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-config.c:404,1
    - Dst: g_array_new
      Src: /src/fwupd/src/fu-engine-config.c:405,1
    - Dst: g_ptr_array_new_with_free_func
      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_signal_connect
      Src: /src/fwupd/src/fu-engine-config.c:408,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine-config.c:408,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-engine-config.c:409,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-engine-config.c:409,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:412,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:413,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:414,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:415,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:416,1
    - Dst: fu_engine_config_set_default
      Src: /src/fwupd/src/fu-engine-config.c:417,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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngineConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 437
    functionName: fu_engine_config_init
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 0
    functionsReached:
    - g_array_new
    - g_signal_connect
    - fu_engine_config_archive_size_max_default
    - G_CALLBACK
    - fu_engine_config_set_default
    - g_ptr_array_new_with_free_func
    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:442,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-engine-config.c:444,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-engine-config.c:445,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-engine-config.c:446,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-engine-config.c:447,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-engine-config.c:448,1
    - Dst: g_array_unref
      Src: /src/fwupd/src/fu-engine-config.c:449,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-engine-config.c:450,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-engine-config.c:451,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-engine-config.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 454
    functionName: fu_engine_config_finalize
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FU_ENGINE_CONFIG
    - g_array_unref
    - G_OBJECT_CLASS
    - 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:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEngineConfigClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 461
    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:466,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-engine-config.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pstore
    argTypes:
    - FuPathStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: fu_engine_config_new
    functionSourceFile: /src/fwupd/src/fu-engine-config.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_ENGINE_CONFIG
    linkageType: ''
    returnType: FuEngineConfig
    signature: 'FuEngineConfig *

      fu_engine_config_new(FuPathStore *pstore)'
  - 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
    - g_autoptr
    - FU_DAEMON
    - fu_daemon_stop
    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:
    - g_warning
    - g_autoptr
    - FU_DAEMON
    - fu_daemon_stop
    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_info
    - g_warning
    - FU_DAEMON
    - g_autoptr
    - fu_daemon_stop
    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:
    - g_warning
    - g_autoptr
    - g_info
    - fu_daemon_stop
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-main.c:80,1
    - Dst: N_
      Src: /src/fwupd/src/fu-main.c:88,1
    - Dst: N_
      Src: /src/fwupd/src/fu-main.c:96,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main.c:101,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-main.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main.c:103,1
    - Dst: fu_daemon_new
      Src: /src/fwupd/src/fu-main.c:103,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main.c:104,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-main.c:105,1
    - Dst: setlocale
      Src: /src/fwupd/src/fu-main.c:107,1
    - Dst: bindtextdomain
      Src: /src/fwupd/src/fu-main.c:109,1
    - Dst: bind_textdomain_codeset
      Src: /src/fwupd/src/fu-main.c:110,1
    - Dst: textdomain
      Src: /src/fwupd/src/fu-main.c:111,1
    - Dst: g_set_application_name
      Src: /src/fwupd/src/fu-main.c:114,1
    - Dst: _
      Src: /src/fwupd/src/fu-main.c:114,1
    - Dst: g_option_context_new
      Src: /src/fwupd/src/fu-main.c:115,1
    - Dst: g_option_context_add_main_entries
      Src: /src/fwupd/src/fu-main.c:116,1
    - Dst: g_option_context_add_group
      Src: /src/fwupd/src/fu-main.c:117,1
    - Dst: fu_debug_get_option_group
      Src: /src/fwupd/src/fu-main.c:117,1
    - Dst: g_option_context_set_summary
      Src: /src/fwupd/src/fu-main.c:119,1
    - Dst: _
      Src: /src/fwupd/src/fu-main.c:119,1
    - Dst: g_option_context_parse
      Src: /src/fwupd/src/fu-main.c:120,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-main.c:121,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-main.c:128,1
    - Dst: g_strrstr
      Src: /src/fwupd/src/fu-main.c:133,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-main.c:136,1
    - Dst: g_unlink
      Src: /src/fwupd/src/fu-main.c:137,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-main.c:139,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-main.c:141,1
    - Dst: fu_daemon_setup
      Src: /src/fwupd/src/fu-main.c:146,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-main.c:147,1
    - Dst: g_unix_signal_add_full
      Src: /src/fwupd/src/fu-main.c:152,1
    - Dst: g_file_monitor_file
      Src: /src/fwupd/src/fu-main.c:156,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-main.c:157,1
    - Dst: G_FILE_MONITOR
      Src: /src/fwupd/src/fu-main.c:157,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-main.c:159,1
    - Dst: g_memory_monitor_dup_default
      Src: /src/fwupd/src/fu-main.c:163,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-main.c:165,1
    - Dst: G_MEMORY_MONITOR
      Src: /src/fwupd/src/fu-main.c:165,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-main.c:167,1
    - Dst: g_idle_add
      Src: /src/fwupd/src/fu-main.c:174,1
    - Dst: g_timeout_add_seconds
      Src: /src/fwupd/src/fu-main.c:176,1
    - Dst: g_message
      Src: /src/fwupd/src/fu-main.c:179,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-main.c:179,1
    - Dst: fu_daemon_start
      Src: /src/fwupd/src/fu-main.c:180,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-main.c:181,1
    - Dst: sd_notify
      Src: /src/fwupd/src/fu-main.c:187,1
    - Dst: g_file_monitor_cancel
      Src: /src/fwupd/src/fu-main.c:191,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 56
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 75
    functionDepth: 5
    functionLinenumber: 75
    functionLinenumberEnd: 195
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-main.c
    functionUses: 2
    functionsReached:
    - G_MEMORY_MONITOR
    - g_timeout_add_seconds
    - textdomain
    - g_unlink
    - g_file_monitor_file
    - g_option_context_add_main_entries
    - _
    - g_strdup_printf
    - g_set_application_name
    - g_option_context_new
    - g_unix_signal_add_full
    - N_
    - fu_daemon_setup
    - g_signal_connect
    - g_memory_monitor_dup_default
    - bindtextdomain
    - sd_notify
    - g_file_new_for_path
    - g_option_context_parse
    - g_getenv
    - fu_daemon_new
    - g_file_monitor_cancel
    - g_option_context_set_summary
    - G_FILE_MONITOR
    - fu_debug_get_option_group
    - bind_textdomain_codeset
    - g_strdup
    - g_message
    - g_idle_add
    - fu_daemon_start
    - g_strrstr
    - g_option_context_add_group
    - g_file_test
    - g_printerr
    - G_CALLBACK
    - g_autoptr
    - setlocale
    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: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/src/fu-jcat-engine.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_ENGINE
      Src: /src/fwupd/src/fu-jcat-engine.c:36,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-jcat-engine.c:37,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-jcat-engine.c:38,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/src/fu-jcat-engine.c:38,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-jcat-engine.c:39,1
    - Dst: fwupd_jcat_blob_kind_to_string
      Src: /src/fwupd/src/fu-jcat-engine.c:39,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-jcat-engine.c:40,1
    - Dst: fwupd_jcat_blob_method_to_string
      Src: /src/fwupd/src/fu-jcat-engine.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: fu_jcat_engine_add_string
    functionSourceFile: /src/fwupd/src/fu-jcat-engine.c
    functionUses: 0
    functionsReached:
    - FU_JCAT_ENGINE
    - fwupd_jcat_blob_kind_to_string
    - G_OBJECT_TYPE_NAME
    - fwupd_codec_string_append
    - fwupd_jcat_blob_method_to_string
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_jcat_engine_add_string(FwupdCodec *codec, guint idt, GString
      *str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_ENGINE_GET_CLASS
      Src: /src/fwupd/src/fu-jcat-engine.c:49,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-jcat-engine.c:50,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-engine.c:52,1
    - Dst: FU_IS_JCAT_ENGINE
      Src: /src/fwupd/src/fu-jcat-engine.c:52,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-engine.c:60,1
    - Dst: FuJcatEngineClass*::setup
      Src: /src/fwupd/src/fu-jcat-engine.c:66,1
    - Dst: fu_jcat_context_get_public_keys
      Src: /src/fwupd/src/fu-jcat-engine.c:70,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-jcat-engine.c:72,1
    - Dst: FuJcatEngineClass*::add_public_key
      Src: /src/fwupd/src/fu-jcat-engine.c:73,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJcatEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 81
    functionName: fu_jcat_engine_setup
    functionSourceFile: /src/fwupd/src/fu-jcat-engine.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_jcat_context_get_public_keys
    - g_set_error_literal
    - FU_IS_JCAT_ENGINE
    - FuJcatEngineClass*::add_public_key
    - FuJcatEngineClass*::setup
    - FU_JCAT_ENGINE_GET_CLASS
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jcat_engine_setup(FuJcatEngine *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_ENGINE_GET_CLASS
      Src: /src/fwupd/src/fu-jcat-engine.c:102,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-engine.c:103,1
    - Dst: FU_IS_JCAT_ENGINE
      Src: /src/fwupd/src/fu-jcat-engine.c:103,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-engine.c:104,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-engine.c:105,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-engine.c:107,1
    - Dst: fu_jcat_engine_setup
      Src: /src/fwupd/src/fu-jcat-engine.c:113,1
    - Dst: FuJcatEngineClass*::pubkey_verify
      Src: /src/fwupd/src/fu-jcat-engine.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - self
    - blob
    - blob_signature
    - flags
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - GBytes*
    - FuJcatVerifyFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 116
    functionName: fu_jcat_engine_pubkey_verify
    functionSourceFile: /src/fwupd/src/fu-jcat-engine.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - fu_jcat_engine_setup
    - FU_IS_JCAT_ENGINE
    - FuJcatEngineClass*::pubkey_verify
    - FU_JCAT_ENGINE_GET_CLASS
    linkageType: ''
    returnType: FuJcatResult
    signature: "FuJcatResult *\nfu_jcat_engine_pubkey_verify(FuJcatEngine *self,\n\t\t\t
      \    GBytes *blob,\n\t\t\t     GBytes *blob_signature,\n\t\t\t     FuJcatVerifyFlags
      flags,\n\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_ENGINE_GET_CLASS
      Src: /src/fwupd/src/fu-jcat-engine.c:139,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-engine.c:140,1
    - Dst: FU_IS_JCAT_ENGINE
      Src: /src/fwupd/src/fu-jcat-engine.c:140,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-engine.c:141,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-engine.c:142,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-engine.c:143,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-engine.c:145,1
    - Dst: fu_jcat_engine_setup
      Src: /src/fwupd/src/fu-jcat-engine.c:151,1
    - Dst: FuJcatEngineClass*::pubkey_sign
      Src: /src/fwupd/src/fu-jcat-engine.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - self
    - blob
    - cert
    - privkey
    - flags
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - GBytes*
    - GBytes*
    - FuJcatSignFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 154
    functionName: fu_jcat_engine_pubkey_sign
    functionSourceFile: /src/fwupd/src/fu-jcat-engine.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - fu_jcat_engine_setup
    - FU_IS_JCAT_ENGINE
    - FU_JCAT_ENGINE_GET_CLASS
    - FuJcatEngineClass*::pubkey_sign
    linkageType: ''
    returnType: FwupdJcatBlob
    signature: "FwupdJcatBlob *\nfu_jcat_engine_pubkey_sign(FuJcatEngine *self,\n\t\t\t
      \  GBytes *blob,\n\t\t\t   GBytes *cert,\n\t\t\t   GBytes *privkey,\n\t\t\t
      \  FuJcatSignFlags flags,\n\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_ENGINE_GET_CLASS
      Src: /src/fwupd/src/fu-jcat-engine.c:175,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-engine.c:176,1
    - Dst: FU_IS_JCAT_ENGINE
      Src: /src/fwupd/src/fu-jcat-engine.c:176,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-engine.c:177,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-engine.c:178,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-engine.c:180,1
    - Dst: fu_jcat_engine_setup
      Src: /src/fwupd/src/fu-jcat-engine.c:186,1
    - Dst: FuJcatEngineClass*::self_verify
      Src: /src/fwupd/src/fu-jcat-engine.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - self
    - blob
    - blob_signature
    - flags
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - GBytes*
    - FuJcatVerifyFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 189
    functionName: fu_jcat_engine_self_verify
    functionSourceFile: /src/fwupd/src/fu-jcat-engine.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - FuJcatEngineClass*::self_verify
    - fu_jcat_engine_setup
    - FU_IS_JCAT_ENGINE
    - FU_JCAT_ENGINE_GET_CLASS
    linkageType: ''
    returnType: FuJcatResult
    signature: "FuJcatResult *\nfu_jcat_engine_self_verify(FuJcatEngine *self,\n\t\t\t
      \  GBytes *blob,\n\t\t\t   GBytes *blob_signature,\n\t\t\t   FuJcatVerifyFlags
      flags,\n\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_ENGINE_GET_CLASS
      Src: /src/fwupd/src/fu-jcat-engine.c:205,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-engine.c:206,1
    - Dst: FU_IS_JCAT_ENGINE
      Src: /src/fwupd/src/fu-jcat-engine.c:206,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-engine.c:207,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-engine.c:209,1
    - Dst: fu_jcat_engine_setup
      Src: /src/fwupd/src/fu-jcat-engine.c:215,1
    - Dst: FuJcatEngineClass*::self_sign
      Src: /src/fwupd/src/fu-jcat-engine.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - blob
    - flags
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - FuJcatSignFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 218
    functionName: fu_jcat_engine_self_sign
    functionSourceFile: /src/fwupd/src/fu-jcat-engine.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - fu_jcat_engine_setup
    - FU_IS_JCAT_ENGINE
    - FuJcatEngineClass*::self_sign
    - FU_JCAT_ENGINE_GET_CLASS
    linkageType: ''
    returnType: FwupdJcatBlob
    signature: 'FwupdJcatBlob *

      fu_jcat_engine_self_sign(FuJcatEngine *self, GBytes *blob, FuJcatSignFlags flags,
      GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_ENGINE_GET_CLASS
      Src: /src/fwupd/src/fu-jcat-engine.c:233,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-engine.c:234,1
    - Dst: FU_IS_JCAT_ENGINE
      Src: /src/fwupd/src/fu-jcat-engine.c:234,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-engine.c:235,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-engine.c:237,1
    - Dst: fu_jcat_engine_setup
      Src: /src/fwupd/src/fu-jcat-engine.c:243,1
    - Dst: FuJcatEngineClass*::add_public_key_raw
      Src: /src/fwupd/src/fu-jcat-engine.c:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - blob
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 246
    functionName: fu_jcat_engine_add_public_key_raw
    functionSourceFile: /src/fwupd/src/fu-jcat-engine.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - FuJcatEngineClass*::add_public_key_raw
    - fu_jcat_engine_setup
    - FU_IS_JCAT_ENGINE
    - FU_JCAT_ENGINE_GET_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jcat_engine_add_public_key_raw(FuJcatEngine *self, GBytes
      *blob, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-jcat-engine.c:259,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-engine.c:260,1
    - Dst: FU_IS_JCAT_ENGINE
      Src: /src/fwupd/src/fu-jcat-engine.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJcatEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 262
    functionName: fu_jcat_engine_get_kind
    functionSourceFile: /src/fwupd/src/fu-jcat-engine.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_JCAT_ENGINE
    - GET_PRIVATE
    linkageType: ''
    returnType: FwupdJcatBlobKind
    signature: FwupdJcatBlobKind fu_jcat_engine_get_kind(FuJcatEngine *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-jcat-engine.c:275,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-engine.c:276,1
    - Dst: FU_IS_JCAT_ENGINE
      Src: /src/fwupd/src/fu-jcat-engine.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJcatEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: fu_jcat_engine_get_method
    functionSourceFile: /src/fwupd/src/fu-jcat-engine.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_JCAT_ENGINE
    - GET_PRIVATE
    linkageType: ''
    returnType: FwupdJcatBlobMethod
    signature: FwupdJcatBlobMethod fu_jcat_engine_get_method(FuJcatEngine *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-jcat-engine.c:291,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-engine.c:292,1
    - Dst: FU_IS_JCAT_ENGINE
      Src: /src/fwupd/src/fu-jcat-engine.c:292,1
    - Dst: fu_jcat_context_get_keyring_path
      Src: /src/fwupd/src/fu-jcat-engine.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJcatEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 296
    functionName: fu_jcat_engine_get_keyring_path
    functionSourceFile: /src/fwupd/src/fu-jcat-engine.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - fu_jcat_context_get_keyring_path
    - FU_IS_JCAT_ENGINE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_jcat_engine_get_keyring_path(FuJcatEngine *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-jcat-engine.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 302
    functionName: fu_jcat_engine_finalize
    functionSourceFile: /src/fwupd/src/fu-jcat-engine.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_jcat_engine_finalize(GObject *object)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_ENGINE
      Src: /src/fwupd/src/fu-jcat-engine.c:307,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-jcat-engine.c:308,1
    - Dst: g_value_set_object
      Src: /src/fwupd/src/fu-jcat-engine.c:311,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/src/fu-jcat-engine.c:314,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/src/fu-jcat-engine.c:317,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/src/fu-jcat-engine.c:320,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 323
    functionName: fu_jcat_engine_get_property
    functionSourceFile: /src/fwupd/src/fu-jcat-engine.c
    functionUses: 0
    functionsReached:
    - FU_JCAT_ENGINE
    - g_value_set_uint
    - g_value_set_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_jcat_engine_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_ENGINE
      Src: /src/fwupd/src/fu-jcat-engine.c:328,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/src/fu-jcat-engine.c:329,1
    - Dst: g_value_get_object
      Src: /src/fwupd/src/fu-jcat-engine.c:333,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/src/fu-jcat-engine.c:336,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/src/fu-jcat-engine.c:339,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/src/fu-jcat-engine.c:342,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 345
    functionName: fu_jcat_engine_set_property
    functionSourceFile: /src/fwupd/src/fu-jcat-engine.c
    functionUses: 0
    functionsReached:
    - FU_JCAT_ENGINE
    - g_value_get_object
    - g_value_get_uint
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_jcat_engine_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: fu_jcat_engine_codec_iface_init
    functionSourceFile: /src/fwupd/src/fu-jcat-engine.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_jcat_engine_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-jcat-engine.c:356,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/src/fu-jcat-engine.c:363,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/src/fu-jcat-engine.c:368,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/src/fu-jcat-engine.c:370,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/src/fu-jcat-engine.c:377,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/src/fu-jcat-engine.c:379,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/src/fu-jcat-engine.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJcatEngineClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 389
    functionName: fu_jcat_engine_class_init
    functionSourceFile: /src/fwupd/src/fu-jcat-engine.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_uint
    - g_param_spec_object
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_jcat_engine_class_init(FuJcatEngineClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJcatEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: fu_jcat_engine_init
    functionSourceFile: /src/fwupd/src/fu-jcat-engine.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_jcat_engine_init(FuJcatEngine *self)
  - 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: 16
    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: 4
    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: 5
    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: 3
    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: 5
    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:53,1
    - Dst: FU_IS_CABINET
      Src: /src/fwupd/src/fu-cabinet.c:53,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:54,1
    - Dst: FU_IS_JCAT_CONTEXT
      Src: /src/fwupd/src/fu-cabinet.c:54,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-cabinet.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - jcat_context
    argTypes:
    - FuCabinet*
    - FuJcatContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: fu_cabinet_set_jcat_context
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 1
    functionsReached:
    - g_set_object
    - FU_IS_JCAT_CONTEXT
    - g_return_if_fail
    - FU_IS_CABINET
    linkageType: ''
    returnType: void
    signature: void fu_cabinet_set_jcat_context(FuCabinet *self, FuJcatContext *jcat_context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:73,1
    - Dst: FU_IS_CABINET
      Src: /src/fwupd/src/fu-cabinet.c:73,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:74,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-cabinet.c:76,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-cabinet.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCabinet*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: fu_cabinet_get_silo
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_object_ref
    - g_set_error_literal
    - 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:96,1
    - Dst: fu_cab_image_new
      Src: /src/fwupd/src/fu-cabinet.c:96,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:98,1
    - Dst: FU_IS_CABINET
      Src: /src/fwupd/src/fu-cabinet.c:98,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:99,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:100,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/src/fu-cabinet.c:102,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:102,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/src/fu-cabinet.c:103,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:103,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/src/fu-cabinet.c:104,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:104,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - self
    - basename
    - data
    - error
    argTypes:
    - FuCabinet*
    - gchar*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 105
    functionName: fu_cabinet_add_file
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CABINET
    - fu_firmware_set_id
    - fu_firmware_add_image
    - FU_FIRMWARE
    - fu_firmware_set_bytes
    - g_autoptr
    - fu_cab_image_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cabinet_add_file(FuCabinet *self, const gchar *basename,
      GBytes *data, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - 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: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:119,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:121,1
    - Dst: fwupd_jcat_item_new
      Src: /src/fwupd/src/fu-cabinet.c:121,1
    - Dst: fwupd_jcat_file_get_item_by_id
      Src: /src/fwupd/src/fu-cabinet.c:124,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/src/fu-cabinet.c:129,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-cabinet.c:132,1
    - Dst: fwupd_jcat_blob_new_utf8
      Src: /src/fwupd/src/fu-cabinet.c:135,1
    - Dst: fwupd_jcat_item_add_blob
      Src: /src/fwupd/src/fu-cabinet.c:136,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-cabinet.c:139,1
    - Dst: fwupd_jcat_blob_new_utf8
      Src: /src/fwupd/src/fu-cabinet.c:142,1
    - Dst: fwupd_jcat_item_add_blob
      Src: /src/fwupd/src/fu-cabinet.c:143,1
    - Dst: fu_jcat_context_verify_target
      Src: /src/fwupd/src/fu-cabinet.c:145,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-cabinet.c:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 5
    argNames:
    - self
    - basename
    - img_blob
    - jcat_flags
    - error
    argTypes:
    - FuCabinet*
    - gchar*
    - FuFirmware*
    - FuJcatVerifyFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 158
    functionName: fu_cabinet_verify_payload_target
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_compute_checksum
    - fu_firmware_get_stream
    - fwupd_jcat_item_new
    - fu_jcat_context_verify_target
    - g_prefix_error_literal
    - fwupd_jcat_file_get_item_by_id
    - fwupd_jcat_item_add_blob
    - g_autoptr
    - fwupd_jcat_blob_new_utf8
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cabinet_verify_payload_target(FuCabinet *self,\n\t\t\t\t
      const gchar *basename,\n\t\t\t\t FuFirmware *img_blob,\n\t\t\t\t FuJcatVerifyFlags
      jcat_flags,\n\t\t\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:167,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:168,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:169,1
    - Dst: fwupd_jcat_file_get_item_by_id
      Src: /src/fwupd/src/fu-cabinet.c:172,1
    - Dst: fwupd_jcat_item_has_target
      Src: /src/fwupd/src/fu-cabinet.c:177,1
    - Dst: fu_cabinet_verify_payload_target
      Src: /src/fwupd/src/fu-cabinet.c:178,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/src/fu-cabinet.c:186,1
    - Dst: fu_jcat_context_verify_item
      Src: /src/fwupd/src/fu-cabinet.c:189,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-cabinet.c:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - self
    - basename
    - img_blob
    - jcat_flags
    - error
    argTypes:
    - FuCabinet*
    - gchar*
    - FuFirmware*
    - FuJcatVerifyFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 202
    functionName: fu_cabinet_verify_payload
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - fu_jcat_context_verify_item
    - fwupd_jcat_item_has_target
    - fu_firmware_get_bytes
    - fu_cabinet_verify_payload_target
    - fwupd_jcat_file_get_item_by_id
    - g_prefix_error_literal
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cabinet_verify_payload(FuCabinet *self,\n\t\t\t  const
      gchar *basename,\n\t\t\t  FuFirmware *img_blob,\n\t\t\t  FuJcatVerifyFlags jcat_flags,\n\t\t\t
      \ GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-cabinet.c:209,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-cabinet.c:209,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/src/fu-cabinet.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - basename
    - release_flags
    argTypes:
    - FuCabinet*
    - gchar*
    - FwupdReleaseFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 210
    functionName: fu_cabinet_trustlist_add_basename
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - GUINT_TO_POINTER
    linkageType: ''
    returnType: void
    signature: "void fu_cabinet_trustlist_add_basename(FuCabinet *self,\n\t\t\t\t
      \ const gchar *basename,\n\t\t\t\t  FwupdReleaseFlags release_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup_extended
      Src: /src/fwupd/src/fu-cabinet.c:218,1
    - Dst: GPOINTER_TO_UINT
      Src: /src/fwupd/src/fu-cabinet.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - basename
    - release_flags
    argTypes:
    - FuCabinet*
    - gchar*
    - FwupdReleaseFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 222
    functionName: fu_cabinet_trustlist_check_basename
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - g_hash_table_lookup_extended
    - GPOINTER_TO_UINT
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cabinet_trustlist_check_basename(FuCabinet *self,\n\t\t\t\t
      \   const gchar *basename,\n\t\t\t\t    FwupdReleaseFlags *release_flags)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:234,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:235,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:237,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:238,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:239,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:240,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:241,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:242,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:243,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-cabinet.c:253,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-cabinet.c:258,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/src/fu-cabinet.c:260,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-cabinet.c:261,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-cabinet.c:263,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-cabinet.c:265,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-cabinet.c:267,1
    - Dst: g_path_get_basename
      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: g_set_error_literal
      Src: /src/fwupd/src/fu-cabinet.c:280,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-cabinet.c:286,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-cabinet.c:286,1
    - Dst: xb_node_set_data
      Src: /src/fwupd/src/fu-cabinet.c:287,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/src/fu-cabinet.c:290,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/src/fu-cabinet.c:293,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-cabinet.c:295,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-cabinet.c:298,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:298,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-cabinet.c:306,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:317,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-cabinet.c:317,1
    - Dst: xb_node_set_data
      Src: /src/fwupd/src/fu-cabinet.c:318,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:322,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:323,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/src/fu-cabinet.c:324,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-cabinet.c:326,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:329,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-cabinet.c:330,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:335,1
    - Dst: fu_cabinet_trustlist_check_basename
      Src: /src/fwupd/src/fu-cabinet.c:341,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-cabinet.c:342,1
    - Dst: fu_cabinet_verify_payload
      Src: /src/fwupd/src/fu-cabinet.c:345,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-cabinet.c:350,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-cabinet.c:352,1
    - Dst: fu_cabinet_trustlist_add_basename
      Src: /src/fwupd/src/fu-cabinet.c:357,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-cabinet.c:361,1
    - Dst: xb_node_set_data
      Src: /src/fwupd/src/fu-cabinet.c:362,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 84
    argCount: 4
    argNames:
    - self
    - release
    - flags
    - error
    argTypes:
    - FuCabinet*
    - XbNode*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 366
    functionName: fu_cabinet_parse_release
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - fu_firmware_get_image_by_id
    - xb_node_get_attr
    - fu_cabinet_trustlist_check_basename
    - g_set_error_literal
    - xb_node_query_first
    - fwupd_checksum_guess_kind
    - g_path_get_basename
    - g_info
    - fu_strtoull
    - FU_FIRMWARE
    - xb_node_set_data
    - fu_cabinet_verify_payload
    - fu_cabinet_trustlist_add_basename
    - xb_node_query_text
    - g_strcmp0
    - fu_firmware_get_stream
    - fu_input_stream_size
    - g_set_error
    - fu_input_stream_compute_checksum
    - strlen
    - g_autoptr
    - xb_node_get_text
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cabinet_parse_release(FuCabinet *self,\n\t\t\t XbNode
      *release,\n\t\t\t FuFirmwareParseFlags flags,\n\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xb_builder_node_get_attr_as_uint
      Src: /src/fwupd/src/fu-cabinet.c:371,1
    - Dst: xb_builder_node_get_attr_as_uint
      Src: /src/fwupd/src/fu-cabinet.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - bn1
    - bn2
    - user_data
    argTypes:
    - XbBuilderNode*
    - XbBuilderNode*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 378
    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:386,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: 388
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 388
    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:398,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-cabinet.c:400,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:401,1
    - Dst: xb_builder_node_get_element
      Src: /src/fwupd/src/fu-cabinet.c:401,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:403,1
    - Dst: xb_builder_node_get_attr
      Src: /src/fwupd/src/fu-cabinet.c:403,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:405,1
    - Dst: xb_builder_node_get_attr
      Src: /src/fwupd/src/fu-cabinet.c:405,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-cabinet.c:406,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: 409
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 409
    functionName: _xb_builder_node_get_child_by_element_attr
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - xb_builder_node_get_element
    - xb_builder_node_get_attr
    - xb_builder_node_get_children
    - g_object_ref
    - g_ptr_array_index
    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:414,1
    - Dst: _xb_builder_node_get_child_by_element_attr
      Src: /src/fwupd/src/fu-cabinet.c:417,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/src/fu-cabinet.c:424,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:434,1
    - Dst: xb_builder_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:434,1
    - Dst: xb_builder_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:435,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-cabinet.c:436,1
    - Dst: xb_builder_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:437,1
    - Dst: xb_builder_node_set_text
      Src: /src/fwupd/src/fu-cabinet.c:440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - bn
    - type
    - checksum
    argTypes:
    - XbBuilderNode*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 442
    functionName: fu_cabinet_ensure_container_checksum
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - xb_builder_node_get_text
    - g_warning
    - xb_builder_node_set_text
    - xb_builder_node_insert
    - _xb_builder_node_get_child_by_element_attr
    - g_autoptr
    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:450,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:453,1
    - Dst: xb_builder_node_get_element
      Src: /src/fwupd/src/fu-cabinet.c:453,1
    - Dst: fu_cabinet_ensure_container_checksum
      Src: /src/fwupd/src/fu-cabinet.c:456,1
    - Dst: fu_cabinet_ensure_container_checksum
      Src: /src/fwupd/src/fu-cabinet.c:457,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: 459
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 459
    functionName: fu_cabinet_ensure_container_checksum_cb
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - FU_CABINET
    - xb_builder_node_get_element
    - g_strcmp0
    - fu_cabinet_ensure_container_checksum
    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:467,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-cabinet.c:469,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:470,1
    - Dst: xb_builder_node_get_element
      Src: /src/fwupd/src/fu-cabinet.c:470,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:473,1
    - Dst: xb_builder_node_get_attr
      Src: /src/fwupd/src/fu-cabinet.c:473,1
    - Dst: xb_builder_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:474,1
    - Dst: g_ascii_strdown
      Src: /src/fwupd/src/fu-cabinet.c:476,1
    - Dst: xb_builder_node_set_text
      Src: /src/fwupd/src/fu-cabinet.c:477,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: 481
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 481
    functionName: fu_cabinet_fixup_checksum_children
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - xb_builder_node_get_element
    - xb_builder_node_get_text
    - xb_builder_node_get_attr
    - xb_builder_node_get_children
    - g_ascii_strdown
    - xb_builder_node_set_text
    - g_ptr_array_index
    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:489,1
    - Dst: xb_builder_node_get_element
      Src: /src/fwupd/src/fu-cabinet.c:489,1
    - Dst: fu_cabinet_fixup_checksum_children
      Src: /src/fwupd/src/fu-cabinet.c:492,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:493,1
    - Dst: xb_builder_node_get_element
      Src: /src/fwupd/src/fu-cabinet.c:493,1
    - Dst: fu_cabinet_fixup_checksum_children
      Src: /src/fwupd/src/fu-cabinet.c:494,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: 497
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 497
    functionName: fu_cabinet_set_lowercase_checksum_cb
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - fu_cabinet_fixup_checksum_children
    - xb_builder_node_get_element
    - g_strcmp0
    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:505,1
    - Dst: xb_builder_node_add_flag
      Src: /src/fwupd/src/fu-cabinet.c:506,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: 508
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 508
    functionName: fu_cabinet_fixup_strip_inner_text_cb
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - xb_builder_node_get_first_child
    - xb_builder_node_add_flag
    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:517,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:518,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:519,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/src/fu-cabinet.c:519,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:520,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/src/fu-cabinet.c:520,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/src/fu-cabinet.c:524,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/src/fu-cabinet.c:525,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/src/fu-cabinet.c:525,1
    - Dst: xb_builder_source_set_info
      Src: /src/fwupd/src/fu-cabinet.c:526,1
    - Dst: xb_builder_source_set_prefix
      Src: /src/fwupd/src/fu-cabinet.c:529,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/src/fu-cabinet.c:532,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/src/fu-cabinet.c:535,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-cabinet.c:539,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/src/fu-cabinet.c:546,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: 550
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 550
    functionName: fu_cabinet_build_silo_file
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - xb_builder_source_new
    - xb_builder_source_load_bytes
    - fu_firmware_get_bytes
    - g_set_error
    - xb_builder_node_insert_text
    - xb_builder_source_set_prefix
    - xb_builder_node_new
    - xb_builder_import_source
    - xb_builder_source_set_info
    - g_autoptr
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/src/fu-cabinet.c:559,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:560,1
    - Dst: fwupd_jcat_file_get_item_by_id
      Src: /src/fwupd/src/fu-cabinet.c:569,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-cabinet.c:571,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:573,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:574,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:575,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/src/fu-cabinet.c:577,1
    - Dst: fu_jcat_context_verify_item
      Src: /src/fwupd/src/fu-cabinet.c:580,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-cabinet.c:586,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-cabinet.c:588,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-cabinet.c:594,1
    - Dst: fu_cabinet_build_silo_file
      Src: /src/fwupd/src/fu-cabinet.c:595,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-cabinet.c:596,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - self
    - img
    - flags
    - error
    argTypes:
    - FuCabinet*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 602
    functionName: fu_cabinet_build_silo_metainfo
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_jcat_context_verify_item
    - g_info
    - fu_firmware_get_bytes
    - g_prefix_error
    - fwupd_jcat_file_get_item_by_id
    - fu_cabinet_build_silo_file
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cabinet_build_silo_metainfo(FuCabinet *self,\n\t\t\t       FuFirmware
      *img,\n\t\t\t       FuFirmwareParseFlags flags,\n\t\t\t       GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/src/fu-cabinet.c:608,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-cabinet.c:610,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-cabinet.c:616,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:617,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/src/fu-cabinet.c:618,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/src/fu-cabinet.c:622,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/src/fu-cabinet.c:622,1
    - Dst: fwupd_jcat_file_import_stream
      Src: /src/fwupd/src/fu-cabinet.c:624,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-cabinet.c:625,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - self
    - img
    - error
    argTypes:
    - FuCabinet*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 630
    functionName: fu_cabinet_build_jcat_folder
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - g_seekable_seek
    - fwupd_jcat_file_import_stream
    - fu_firmware_get_stream
    - g_set_error_literal
    - g_str_has_suffix
    - g_prefix_error_literal
    - G_SEEKABLE
    - g_autoptr
    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:639,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-cabinet.c:641,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/src/fu-cabinet.c:647,1
    - Dst: fu_cabinet_build_silo_metainfo
      Src: /src/fwupd/src/fu-cabinet.c:648,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - self
    - img
    - flags
    - error
    argTypes:
    - FuCabinet*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 633
    functionDepth: 3
    functionLinenumber: 633
    functionLinenumberEnd: 652
    functionName: fu_cabinet_build_silo_folder
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_cabinet_build_silo_metainfo
    - g_set_error_literal
    - g_str_has_suffix
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cabinet_build_silo_folder(FuCabinet *self,\n\t\t\t     FuFirmware
      *img,\n\t\t\t     FuFirmwareParseFlags flags,\n\t\t\t     GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:657,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:658,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:659,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:660,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:661,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:662,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-cabinet.c:665,1
    - Dst: xb_builder_set_profile_flags
      Src: /src/fwupd/src/fu-cabinet.c:666,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/src/fu-cabinet.c:672,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:672,1
    - Dst: FU_CAB_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:672,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-cabinet.c:675,1
    - Dst: fu_cabinet_build_jcat_folder
      Src: /src/fwupd/src/fu-cabinet.c:676,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-cabinet.c:683,1
    - Dst: fu_cabinet_build_silo_folder
      Src: /src/fwupd/src/fu-cabinet.c:684,1
    - Dst: xb_builder_fixup_new
      Src: /src/fwupd/src/fu-cabinet.c:689,1
    - Dst: xb_builder_fixup_set_max_depth
      Src: /src/fwupd/src/fu-cabinet.c:690,1
    - Dst: xb_builder_add_fixup
      Src: /src/fwupd/src/fu-cabinet.c:691,1
    - Dst: xb_builder_fixup_new
      Src: /src/fwupd/src/fu-cabinet.c:694,1
    - Dst: xb_builder_add_fixup
      Src: /src/fwupd/src/fu-cabinet.c:698,1
    - Dst: xb_builder_fixup_new
      Src: /src/fwupd/src/fu-cabinet.c:700,1
    - Dst: xb_builder_add_fixup
      Src: /src/fwupd/src/fu-cabinet.c:704,1
    - Dst: xb_builder_fixup_new
      Src: /src/fwupd/src/fu-cabinet.c:707,1
    - Dst: xb_builder_add_fixup
      Src: /src/fwupd/src/fu-cabinet.c:711,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/src/fu-cabinet.c:715,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-cabinet.c:717,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-cabinet.c:722,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-cabinet.c:727,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:730,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-cabinet.c:731,1
    - Dst: xb_silo_query_build_index
      Src: /src/fwupd/src/fu-cabinet.c:739,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-cabinet.c:743,1
    - Dst: xb_silo_query_build_index
      Src: /src/fwupd/src/fu-cabinet.c:746,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-cabinet.c:750,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 56
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FuCabinet*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 654
    functionDepth: 4
    functionLinenumber: 654
    functionLinenumberEnd: 756
    functionName: fu_cabinet_build_silo
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - xb_builder_set_profile_flags
    - g_getenv
    - xb_builder_compile
    - fu_cabinet_build_jcat_folder
    - FU_FIRMWARE
    - fu_cabinet_build_silo_folder
    - xb_builder_fixup_new
    - xb_builder_fixup_set_max_depth
    - FU_CAB_FIRMWARE
    - fu_firmware_get_images
    - fwupd_error_convert
    - g_set_error_literal
    - xb_silo_query_build_index
    - xb_silo_query_first
    - g_autoptr
    - xb_node_get_text
    - xb_builder_add_fixup
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cabinet_build_silo(FuCabinet *self, FuFirmwareParseFlags
      flags, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:767,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:768,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:769,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:770,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:771,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:772,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:773,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/src/fu-cabinet.c:776,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:776,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/src/fu-cabinet.c:779,1
    - Dst: fwupd_jcat_file_get_item_by_id
      Src: /src/fwupd/src/fu-cabinet.c:782,1
    - Dst: fwupd_jcat_item_new
      Src: /src/fwupd/src/fu-cabinet.c:784,1
    - Dst: fwupd_jcat_file_add_item
      Src: /src/fwupd/src/fu-cabinet.c:785,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-cabinet.c:790,1
    - Dst: fu_jcat_engine_self_sign
      Src: /src/fwupd/src/fu-cabinet.c:794,1
    - Dst: fwupd_jcat_item_add_blob
      Src: /src/fwupd/src/fu-cabinet.c:797,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-cabinet.c:801,1
    - Dst: fu_jcat_engine_pubkey_sign
      Src: /src/fwupd/src/fu-cabinet.c:805,1
    - Dst: fwupd_jcat_item_add_blob
      Src: /src/fwupd/src/fu-cabinet.c:813,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 7
    argNames:
    - self
    - filename
    - jcat_context
    - jcat_file
    - cert
    - privkey
    - error
    argTypes:
    - FuCabinet*
    - gchar*
    - FuJcatContext*
    - FwupdJcatFile*
    - GBytes*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 758
    functionDepth: 3
    functionLinenumber: 758
    functionLinenumberEnd: 815
    functionName: fu_cabinet_sign_filename
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - fu_jcat_context_get_engine
    - fu_firmware_get_bytes
    - fu_jcat_engine_pubkey_sign
    - fwupd_jcat_item_new
    - FU_FIRMWARE
    - fu_jcat_engine_self_sign
    - fwupd_jcat_file_get_item_by_id
    - fu_firmware_get_image_by_id
    - fwupd_jcat_item_add_blob
    - fwupd_jcat_file_add_item
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cabinet_sign_filename(FuCabinet *self,\n\t\t\t const gchar
      *filename,\n\t\t\t FuJcatContext *jcat_context,\n\t\t\t FwupdJcatFile *jcat_file,\n\t\t\t
      GBytes *cert,\n\t\t\t GBytes *privkey,\n\t\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:820,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:821,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:822,1
    - Dst: fu_cabinet_get_silo
      Src: /src/fwupd/src/fu-cabinet.c:825,1
    - Dst: xb_silo_query
      Src: /src/fwupd/src/fu-cabinet.c:828,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-cabinet.c:833,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-cabinet.c:834,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-cabinet.c:835,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-cabinet.c:836,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-cabinet.c:836,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-cabinet.c:838,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-cabinet.c:838,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-cabinet.c:839,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-cabinet.c:844,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-cabinet.c:845,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-cabinet.c:848,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-cabinet.c:849,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-cabinet.c:849,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - self
    - files
    - error
    argTypes:
    - FuCabinet*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 855
    functionName: fu_cabinet_sign_enumerate_metainfo
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_debug
    - fu_cabinet_get_silo
    - g_steal_pointer
    - xb_silo_query
    - g_ptr_array_add
    - fwupd_error_convert
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    - xb_node_get_text
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cabinet_sign_enumerate_metainfo(FuCabinet *self, GPtrArray
      *files, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:860,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:861,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:862,1
    - Dst: fu_cabinet_get_silo
      Src: /src/fwupd/src/fu-cabinet.c:864,1
    - Dst: xb_silo_query
      Src: /src/fwupd/src/fu-cabinet.c:867,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-cabinet.c:873,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-cabinet.c:874,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-cabinet.c:875,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-cabinet.c:876,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-cabinet.c:876,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-cabinet.c:878,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-cabinet.c:878,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-cabinet.c:879,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-cabinet.c:884,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-cabinet.c:885,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-cabinet.c:888,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-cabinet.c:889,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-cabinet.c:889,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - self
    - files
    - error
    argTypes:
    - FuCabinet*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 895
    functionName: fu_cabinet_sign_enumerate_firmware
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_debug
    - fu_cabinet_get_silo
    - g_steal_pointer
    - xb_silo_query
    - g_ptr_array_add
    - fwupd_error_convert
    - g_error_matches
    - xb_node_get_attr
    - g_propagate_error
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cabinet_sign_enumerate_firmware(FuCabinet *self, GPtrArray
      *files, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:918,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:919,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:920,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-cabinet.c:920,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:921,1
    - Dst: fu_jcat_context_new
      Src: /src/fwupd/src/fu-cabinet.c:921,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:922,1
    - Dst: fwupd_jcat_file_new
      Src: /src/fwupd/src/fu-cabinet.c:922,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:924,1
    - Dst: FU_IS_CABINET
      Src: /src/fwupd/src/fu-cabinet.c:924,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:925,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:926,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:927,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/src/fu-cabinet.c:930,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:930,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:932,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/src/fu-cabinet.c:932,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/src/fu-cabinet.c:935,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/src/fu-cabinet.c:935,1
    - Dst: fwupd_jcat_file_import_stream
      Src: /src/fwupd/src/fu-cabinet.c:937,1
    - Dst: fu_cabinet_sign_enumerate_metainfo
      Src: /src/fwupd/src/fu-cabinet.c:942,1
    - Dst: fu_cabinet_sign_enumerate_firmware
      Src: /src/fwupd/src/fu-cabinet.c:944,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-cabinet.c:948,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-cabinet.c:949,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-cabinet.c:950,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-cabinet.c:952,1
    - Dst: fu_cabinet_sign_filename
      Src: /src/fwupd/src/fu-cabinet.c:953,1
    - Dst: fwupd_jcat_file_export_bytes
      Src: /src/fwupd/src/fu-cabinet.c:964,1
    - Dst: fu_cabinet_add_file
      Src: /src/fwupd/src/fu-cabinet.c:967,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 5
    argNames:
    - self
    - cert
    - privkey
    - flags
    - error
    argTypes:
    - FuCabinet*
    - GBytes*
    - GBytes*
    - FuCabinetSignFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 911
    functionDepth: 4
    functionLinenumber: 911
    functionLinenumberEnd: 968
    functionName: fu_cabinet_sign
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 1
    functionsReached:
    - fwupd_jcat_file_export_bytes
    - fu_firmware_get_image_by_id
    - fu_jcat_context_allow_blob_kind
    - fu_cabinet_add_file
    - g_ptr_array_index
    - fu_cabinet_sign_filename
    - fu_cabinet_sign_enumerate_firmware
    - g_ptr_array_new_with_free_func
    - fu_cabinet_sign_enumerate_metainfo
    - g_seekable_seek
    - fu_jcat_context_new
    - FU_FIRMWARE
    - G_SEEKABLE
    - g_return_val_if_fail
    - FU_IS_CABINET
    - fwupd_jcat_file_import_stream
    - fu_firmware_get_stream
    - fwupd_jcat_file_new
    - g_autoptr
    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:976,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:977,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:978,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:979,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:981,1
    - Dst: FU_IS_CABINET
      Src: /src/fwupd/src/fu-cabinet.c:981,1
    - Dst: g_return_val_if_fail
      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: g_set_error_literal
      Src: /src/fwupd/src/fu-cabinet.c:989,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/src/fu-cabinet.c:997,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-cabinet.c:1004,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/src/fu-cabinet.c:1008,1
    - Dst: fu_cabinet_build_silo
      Src: /src/fwupd/src/fu-cabinet.c:1014,1
    - Dst: xb_silo_query
      Src: /src/fwupd/src/fu-cabinet.c:1018,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-cabinet.c:1020,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-cabinet.c:1029,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-cabinet.c:1038,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:1039,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-cabinet.c:1040,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-cabinet.c:1040,1
    - Dst: xb_node_query_full
      Src: /src/fwupd/src/fu-cabinet.c:1042,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-cabinet.c:1044,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-cabinet.c:1052,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-cabinet.c:1053,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-cabinet.c:1053,1
    - Dst: fu_cabinet_parse_release
      Src: /src/fwupd/src/fu-cabinet.c:1054,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 970
    functionDepth: 5
    functionLinenumber: 970
    functionLinenumberEnd: 1061
    functionName: fu_cabinet_parse
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - FU_CABINET
    - g_return_val_if_fail
    - g_strcmp0
    - FU_IS_CABINET
    - xb_node_query_full
    - g_info
    - fu_input_stream_compute_checksum
    - g_set_error
    - fu_cabinet_parse_release
    - g_set_error_literal
    - FU_FIRMWARE_CLASS
    - xb_silo_query
    - fu_cabinet_build_silo
    - xb_query_new_full
    - xb_node_get_attr
    - g_autoptr
    - g_ptr_array_index
    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:1066,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:1067,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:1069,1
    - Dst: FU_IS_CABINET
      Src: /src/fwupd/src/fu-cabinet.c:1069,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:1070,1
    - Dst: xb_silo_query
      Src: /src/fwupd/src/fu-cabinet.c:1073,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-cabinet.c:1075,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-cabinet.c:1082,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCabinet*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1083
    functionName: fu_cabinet_get_components
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CABINET
    - g_set_error
    - g_steal_pointer
    - xb_silo_query
    - g_autoptr
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_cabinet_get_components(FuCabinet *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-cabinet.c:1088,1
    - Dst: XB_QUERY_CONTEXT_INIT
      Src: /src/fwupd/src/fu-cabinet.c:1088,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:1089,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet.c:1090,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:1092,1
    - Dst: FU_IS_CABINET
      Src: /src/fwupd/src/fu-cabinet.c:1092,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:1093,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-cabinet.c:1094,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-cabinet.c:1096,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-cabinet.c:1101,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/src/fu-cabinet.c:1104,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/src/fu-cabinet.c:1104,1
    - Dst: xb_silo_query_first_with_context
      Src: /src/fwupd/src/fu-cabinet.c:1105,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/src/fu-cabinet.c:1107,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-cabinet.c:1110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FuCabinet*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1111
    functionName: fu_cabinet_get_component
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CABINET
    - g_steal_pointer
    - g_prefix_error_literal
    - fwupd_error_convert
    - xb_value_bindings_bind_str
    - xb_query_new_full
    - xb_query_context_get_bindings
    - g_auto
    - xb_silo_query_first_with_context
    - g_autoptr
    - XB_QUERY_CONTEXT_INIT
    linkageType: ''
    returnType: XbNode
    signature: 'XbNode *

      fu_cabinet_get_component(FuCabinet *self, const gchar *id, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/src/fu-cabinet.c:1116,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet.c:1116,1
    - Dst: xb_builder_new
      Src: /src/fwupd/src/fu-cabinet.c:1117,1
    - Dst: fwupd_jcat_file_new
      Src: /src/fwupd/src/fu-cabinet.c:1118,1
    - Dst: fu_jcat_context_new
      Src: /src/fwupd/src/fu-cabinet.c:1119,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-cabinet.c:1120,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-cabinet.c:1121,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-cabinet.c:1122,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-cabinet.c:1123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCabinet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1113
    functionDepth: 1
    functionLinenumber: 1113
    functionLinenumberEnd: 1124
    functionName: fu_cabinet_init
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - fu_jcat_context_new
    - FU_FIRMWARE
    - fwupd_jcat_file_new
    - g_hash_table_new_full
    - fu_jcat_context_allow_blob_kind
    - fu_firmware_set_size_max
    - xb_builder_new
    linkageType: ''
    returnType: void
    signature: void fu_cabinet_init(FuCabinet *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CABINET
      Src: /src/fwupd/src/fu-cabinet.c:1129,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-cabinet.c:1131,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-cabinet.c:1133,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-cabinet.c:1134,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-cabinet.c:1135,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/src/fu-cabinet.c:1136,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-cabinet.c:1137,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-cabinet.c:1138,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-cabinet.c:1139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1140
    functionName: fu_cabinet_finalize
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 0
    functionsReached:
    - FU_CABINET
    - g_object_unref
    - G_OBJECT_CLASS
    - g_free
    - g_hash_table_unref
    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:1145,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/src/fu-cabinet.c:1146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCabinetClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1142
    functionDepth: 0
    functionLinenumber: 1142
    functionLinenumberEnd: 1149
    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:1161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1162
    functionName: fu_cabinet_new
    functionSourceFile: /src/fwupd/src/fu-cabinet.c
    functionUses: 4
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuCabinet
    signature: 'FuCabinet *

      fu_cabinet_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-client-list-test.c:14,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-client-list-test.c:15,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-client-list-test.c:16,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-client-list-test.c:17,1
    - Dst: fu_client_list_new
      Src: /src/fwupd/src/fu-client-list-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-client-list-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-client-list-test.c:19,1
    - Dst: fu_client_list_get_all
      Src: /src/fwupd/src/fu-client-list-test.c:22,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-client-list-test.c:23,1
    - Dst: fu_client_list_register
      Src: /src/fwupd/src/fu-client-list-test.c:26,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-client-list-test.c:27,1
    - Dst: fu_client_list_get_by_sender
      Src: /src/fwupd/src/fu-client-list-test.c:28,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-client-list-test.c:29,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-client-list-test.c:30,1
    - Dst: fu_client_list_get_all
      Src: /src/fwupd/src/fu-client-list-test.c:31,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-client-list-test.c:32,1
    - Dst: fu_client_list_register
      Src: /src/fwupd/src/fu-client-list-test.c:35,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-client-list-test.c:36,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-client-list-test.c:37,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-client-list-test.c:38,1
    - Dst: fu_client_get_sender
      Src: /src/fwupd/src/fu-client-list-test.c:38,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-client-list-test.c:39,1
    - Dst: fu_client_get_feature_flags
      Src: /src/fwupd/src/fu-client-list-test.c:39,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-client-list-test.c:40,1
    - Dst: fu_client_lookup_hint
      Src: /src/fwupd/src/fu-client-list-test.c:40,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-client-list-test.c:41,1
    - Dst: fu_client_has_flag
      Src: /src/fwupd/src/fu-client-list-test.c:41,1
    - Dst: fu_client_insert_hint
      Src: /src/fwupd/src/fu-client-list-test.c:42,1
    - Dst: fu_client_set_feature_flags
      Src: /src/fwupd/src/fu-client-list-test.c:43,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-client-list-test.c:44,1
    - Dst: fu_client_lookup_hint
      Src: /src/fwupd/src/fu-client-list-test.c:44,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-client-list-test.c:45,1
    - Dst: fu_client_get_feature_flags
      Src: /src/fwupd/src/fu-client-list-test.c:45,1
    - Dst: fu_client_remove_flag
      Src: /src/fwupd/src/fu-client-list-test.c:48,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-client-list-test.c:49,1
    - Dst: fu_client_has_flag
      Src: /src/fwupd/src/fu-client-list-test.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 11
    functionDepth: 3
    functionLinenumber: 11
    functionLinenumberEnd: 50
    functionName: fu_client_list_func
    functionSourceFile: /src/fwupd/src/fu-client-list-test.c
    functionUses: 0
    functionsReached:
    - fu_client_list_new
    - fu_client_list_get_by_sender
    - fu_client_lookup_hint
    - fu_client_set_feature_flags
    - fu_client_remove_flag
    - fu_client_list_get_all
    - g_assert_nonnull
    - g_assert_cmpint
    - g_assert_false
    - fu_client_has_flag
    - fu_client_list_register
    - fu_client_get_sender
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - 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_test_init
      Src: /src/fwupd/src/fu-client-list-test.c:55,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-client-list-test.c:56,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-client-list-test.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-client-list-test.c
    functionUses: 2
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_test_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - 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: fwupd_variant_get_boolean
      Src: /src/fwupd/src/fu-bluez-backend.c:45,1
    - Dst: fwupd_variant_get_boolean
      Src: /src/fwupd/src/fu-bluez-backend.c:46,1
    - Dst: fwupd_variant_get_boolean
      Src: /src/fwupd/src/fu-bluez-backend.c:47,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/src/fu-bluez-backend.c:50,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-bluez-backend.c:50,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-bluez-backend.c:53,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-bluez-backend.c:56,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/src/fu-bluez-backend.c:57,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-bluez-backend.c:57,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-bluez-backend.c:63,1
    - Dst: fwupd_variant_get_boolean
      Src: /src/fwupd/src/fu-bluez-backend.c:65,1
    - Dst: fwupd_variant_get_boolean
      Src: /src/fwupd/src/fu-bluez-backend.c:66,1
    - Dst: fwupd_variant_get_boolean
      Src: /src/fwupd/src/fu-bluez-backend.c:67,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-bluez-backend.c:72,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-bluez-backend.c:80,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/src/fu-bluez-backend.c:81,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-bluez-backend.c:81,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-bluez-backend.c:81,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - self
    - proxy
    argTypes:
    - FuBluezBackend*
    - GDBusProxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 82
    functionName: fu_bluez_backend_object_properties_changed
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - g_dbus_proxy_get_object_path
    - fu_backend_lookup_by_id
    - fu_backend_device_added
    - g_debug
    - g_info
    - FU_DEVICE
    - g_object_new
    - fu_backend_device_removed
    - g_dbus_proxy_get_cached_property
    - FU_BACKEND
    - g_autoptr
    - fwupd_variant_get_boolean
    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:90,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: 91
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 91
    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:96,1
    - Dst: g_dbus_object_get_interface
      Src: /src/fwupd/src/fu-bluez-backend.c:98,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-bluez-backend.c:101,1
    - Dst: G_DBUS_INTERFACE
      Src: /src/fwupd/src/fu-bluez-backend.c:101,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-bluez-backend.c:103,1
    - Dst: fu_bluez_backend_object_properties_changed
      Src: /src/fwupd/src/fu-bluez-backend.c:105,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/src/fu-bluez-backend.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - object
    argTypes:
    - FuBluezBackend*
    - GDBusObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: fu_bluez_backend_object_added
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - G_DBUS_INTERFACE
    - g_signal_connect
    - G_CALLBACK
    - fu_bluez_backend_object_properties_changed
    - G_DBUS_PROXY
    - g_autoptr
    - g_dbus_object_get_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:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - manager
    - object
    - self
    argTypes:
    - GDBusObjectManager*
    - GDBusObject*
    - FuBluezBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 114
    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:121,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/src/fu-bluez-backend.c:124,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-bluez-backend.c:124,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-bluez-backend.c:127,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/src/fu-bluez-backend.c:128,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-bluez-backend.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - manager
    - object
    - self
    argTypes:
    - GDBusObjectManager*
    - GDBusObject*
    - FuBluezBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 129
    functionName: fu_bluez_backend_object_removed_cb
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - fu_backend_lookup_by_id
    - g_info
    - g_dbus_object_get_object_path
    - fu_backend_device_removed
    - FU_BACKEND
    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:143,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-bluez-backend.c:145,1
    - Dst: g_cancellable_cancel
      Src: /src/fwupd/src/fu-bluez-backend.c:146,1
    - Dst: g_main_loop_unref
      Src: /src/fwupd/src/fu-bluez-backend.c:147,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-bluez-backend.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuBluezBackendHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: fu_bluez_backend_helper_free
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - g_source_remove
    - g_cancellable_cancel
    - g_object_unref
    - g_main_loop_unref
    - g_free
    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:158,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/src/fu-bluez-backend.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source_object
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 160
    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:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 169
    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:177,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-bluez-backend.c:178,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-bluez-backend.c:178,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/src/fu-bluez-backend.c:183,1
    - Dst: g_cancellable_new
      Src: /src/fwupd/src/fu-bluez-backend.c:184,1
    - Dst: g_timeout_add
      Src: /src/fwupd/src/fu-bluez-backend.c:186,1
    - Dst: g_dbus_object_manager_client_new_for_bus
      Src: /src/fwupd/src/fu-bluez-backend.c:187,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/src/fu-bluez-backend.c:197,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-bluez-backend.c:200,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-bluez-backend.c:203,1
    - Dst: G_DBUS_OBJECT_MANAGER
      Src: /src/fwupd/src/fu-bluez-backend.c:203,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-bluez-backend.c:205,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-bluez-backend.c:207,1
    - Dst: G_DBUS_OBJECT_MANAGER
      Src: /src/fwupd/src/fu-bluez-backend.c:207,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-bluez-backend.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - backend
    - flags
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuBackendSetupFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 213
    functionName: fu_bluez_backend_setup
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - g_main_loop_new
    - g_new0
    - g_signal_connect
    - FU_BLUEZ_BACKEND
    - g_steal_pointer
    - g_main_loop_run
    - g_cancellable_new
    - G_DBUS_OBJECT_MANAGER
    - g_dbus_object_manager_client_new_for_bus
    - G_CALLBACK
    - g_timeout_add
    - g_autoptr
    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:218,1
    - Dst: g_autolist
      Src: /src/fwupd/src/fu-bluez-backend.c:219,1
    - Dst: g_dbus_object_manager_get_objects
      Src: /src/fwupd/src/fu-bluez-backend.c:224,1
    - Dst: G_DBUS_OBJECT
      Src: /src/fwupd/src/fu-bluez-backend.c:226,1
    - Dst: fu_bluez_backend_object_added
      Src: /src/fwupd/src/fu-bluez-backend.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - backend
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 230
    functionName: fu_bluez_backend_coldplug
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - FU_BLUEZ_BACKEND
    - g_autolist
    - fu_bluez_backend_object_added
    - G_DBUS_OBJECT
    - 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:235,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-bluez-backend.c:237,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-bluez-backend.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 239
    functionName: fu_bluez_backend_finalize
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - FU_BLUEZ_BACKEND
    - g_object_unref
    - 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: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    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:249,1
    - Dst: FU_BACKEND_CLASS
      Src: /src/fwupd/src/fu-bluez-backend.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBluezBackendClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 255
    functionName: fu_bluez_backend_class_init
    functionSourceFile: /src/fwupd/src/fu-bluez-backend.c
    functionUses: 0
    functionsReached:
    - FU_BACKEND_CLASS
    - G_OBJECT_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:260,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-bluez-backend.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 268
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:21,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:22,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:23,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:24,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:25,1
    - Dst: fu_engine_add_runtime_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:36,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:39,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:40,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:41,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:42,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:43,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:44,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:47,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:48,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:49,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:50,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:51,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:52,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-requirements-test.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 15
    functionDepth: 8
    functionLinenumber: 15
    functionLinenumberEnd: 54
    functionName: fu_engine_requirements_missing_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_request_new
    - fu_engine_requirements_check
    - g_assert_true
    - fu_release_new
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - xb_silo_new_from_xml
    - g_assert_false
    - fu_context_new_full
    - fu_engine_add_runtime_version
    - fu_release_load
    - xb_silo_query_first
    - g_autoptr
    - fu_engine_new
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_missing_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:61,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:62,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:62,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:63,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:64,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:65,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:66,1
    - Dst: fu_engine_add_runtime_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:77,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:80,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:81,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:82,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:83,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:84,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:85,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:88,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:89,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:90,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:91,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:92,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:96,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 56
    functionDepth: 8
    functionLinenumber: 56
    functionLinenumberEnd: 98
    functionName: fu_engine_requirements_soft_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_request_new
    - fu_engine_requirements_check
    - g_assert_true
    - fu_release_new
    - g_assert_nonnull
    - g_assert_no_error
    - xb_silo_new_from_xml
    - fu_context_new_full
    - fu_engine_add_runtime_version
    - fu_release_load
    - xb_silo_query_first
    - g_autoptr
    - fu_engine_new
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_soft_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:104,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:105,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:106,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:107,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:108,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:109,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:109,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:110,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:121,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:122,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:123,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:124,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:125,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:126,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:129,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:130,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:131,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:132,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:133,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:134,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-requirements-test.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 100
    functionDepth: 8
    functionLinenumber: 100
    functionLinenumberEnd: 136
    functionName: fu_engine_requirements_client_fail_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_request_new
    - fu_engine_requirements_check
    - g_assert_true
    - fu_release_new
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - xb_silo_new_from_xml
    - g_assert_false
    - fu_context_new_full
    - fu_release_load
    - xb_silo_query_first
    - g_autoptr
    - fu_engine_new
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_client_fail_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:143,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:144,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:144,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:145,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:145,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:146,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:146,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:147,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:147,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:148,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:160,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:161,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:162,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:163,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:164,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:165,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:168,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:169,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:170,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:171,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:172,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:173,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-requirements-test.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 138
    functionDepth: 8
    functionLinenumber: 138
    functionLinenumberEnd: 175
    functionName: fu_engine_requirements_client_invalid_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_request_new
    - fu_engine_requirements_check
    - g_assert_true
    - fu_release_new
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - xb_silo_new_from_xml
    - g_assert_false
    - fu_context_new_full
    - fu_release_load
    - xb_silo_query_first
    - g_autoptr
    - fu_engine_new
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_client_invalid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:181,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:182,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:183,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:183,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:184,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:184,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:185,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:185,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:186,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:186,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:187,1
    - Dst: fu_engine_request_set_feature_flags
      Src: /src/fwupd/src/fu-engine-requirements-test.c:199,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:202,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:203,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:204,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:205,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:206,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:207,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:210,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:211,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:212,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:213,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:214,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:215,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 177
    functionDepth: 8
    functionLinenumber: 177
    functionLinenumberEnd: 217
    functionName: fu_engine_requirements_client_pass_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_request_new
    - fu_engine_requirements_check
    - g_assert_true
    - fu_release_new
    - g_assert_nonnull
    - g_assert_no_error
    - xb_silo_new_from_xml
    - fu_engine_request_set_feature_flags
    - fu_context_new_full
    - fu_release_load
    - xb_silo_query_first
    - g_autoptr
    - fu_engine_new
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_client_pass_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:224,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:225,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:225,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:226,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:226,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:227,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:227,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:228,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:228,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:229,1
    - Dst: fu_context_add_runtime_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:242,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:245,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:246,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:247,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:248,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:249,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:250,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:253,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:254,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:255,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:256,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:257,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:258,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:259,1
    - Dst: fu_context_add_runtime_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 219
    functionDepth: 8
    functionLinenumber: 219
    functionLinenumberEnd: 263
    functionName: fu_engine_requirements_vercmp_glob_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_request_new
    - fu_engine_requirements_check
    - g_assert_true
    - fu_release_new
    - g_assert_nonnull
    - g_assert_no_error
    - xb_silo_new_from_xml
    - fu_context_new_full
    - fu_release_load
    - xb_silo_query_first
    - g_autoptr
    - fu_context_add_runtime_version
    - fu_engine_new
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_vercmp_glob_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:269,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:270,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:271,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:271,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:272,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:272,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:273,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:273,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:274,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:274,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:275,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:288,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:289,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:290,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:291,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:292,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:293,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:296,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:297,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:298,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:299,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:300,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:301,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 265
    functionDepth: 8
    functionLinenumber: 265
    functionLinenumberEnd: 303
    functionName: fu_engine_requirements_vercmp_glob_fallback_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_request_new
    - fu_engine_requirements_check
    - g_assert_true
    - fu_release_new
    - g_assert_nonnull
    - g_assert_no_error
    - xb_silo_new_from_xml
    - fu_context_new_full
    - fu_release_load
    - xb_silo_query_first
    - g_autoptr
    - fu_engine_new
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_vercmp_glob_fallback_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:309,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:310,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:311,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:311,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:312,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:312,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:313,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:313,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:314,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:314,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:315,1
    - Dst: fu_engine_request_set_feature_flags
      Src: /src/fwupd/src/fu-engine-requirements-test.c:327,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:330,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:331,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:332,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:333,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:334,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:335,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:338,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:339,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:340,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:341,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:342,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:343,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 305
    functionDepth: 8
    functionLinenumber: 305
    functionLinenumberEnd: 345
    functionName: fu_engine_requirements_not_hardware_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_request_new
    - fu_engine_requirements_check
    - g_assert_true
    - fu_release_new
    - g_assert_nonnull
    - g_assert_no_error
    - xb_silo_new_from_xml
    - fu_engine_request_set_feature_flags
    - fu_context_new_full
    - fu_release_load
    - xb_silo_query_first
    - g_autoptr
    - fu_engine_new
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_not_hardware_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:351,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:352,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:353,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:353,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:354,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:354,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:355,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:355,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:356,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:356,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:357,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:357,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:358,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:370,1
    - Dst: fu_engine_get_host_machine_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:370,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:373,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:374,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:375,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:376,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:377,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:378,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:381,1
    - Dst: fu_release_set_remote
      Src: /src/fwupd/src/fu-engine-requirements-test.c:382,1
    - Dst: fwupd_remote_set_mtime
      Src: /src/fwupd/src/fu-engine-requirements-test.c:383,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:384,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:385,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:386,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:387,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:388,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:389,1
    - Dst: fwupd_remote_set_mtime
      Src: /src/fwupd/src/fu-engine-requirements-test.c:392,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:393,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:397,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:398,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:401,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:402,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-requirements-test.c:403,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:404,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:407,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:408,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:409,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 347
    functionDepth: 8
    functionLinenumber: 347
    functionLinenumberEnd: 411
    functionName: fu_engine_requirements_phased_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_new
    - g_assert_nonnull
    - fwupd_remote_add_flag
    - fwupd_remote_set_mtime
    - fu_context_new_full
    - fu_engine_new
    - fu_engine_requirements_check
    - xb_silo_query_first
    - fu_release_new
    - xb_silo_new_from_xml
    - g_assert_false
    - fu_release_load
    - fu_release_set_remote
    - fu_engine_get_host_machine_id
    - fu_engine_request_new
    - g_assert_error
    - g_assert_no_error
    - g_clear_error
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_phased_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:417,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:418,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:419,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:419,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:420,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:420,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:421,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:421,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:422,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:422,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:423,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:423,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:424,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:436,1
    - Dst: fu_engine_get_host_machine_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:436,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:439,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:440,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:441,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:442,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:443,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:444,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:447,1
    - Dst: fu_release_set_remote
      Src: /src/fwupd/src/fu-engine-requirements-test.c:448,1
    - Dst: fwupd_remote_set_mtime
      Src: /src/fwupd/src/fu-engine-requirements-test.c:449,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:450,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:451,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:452,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:455,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:456,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-requirements-test.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 413
    functionDepth: 8
    functionLinenumber: 413
    functionLinenumberEnd: 458
    functionName: fu_engine_requirements_phased_old_fwupd_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_new
    - g_assert_nonnull
    - fwupd_remote_set_mtime
    - fu_context_new_full
    - fu_engine_new
    - fu_engine_requirements_check
    - xb_silo_query_first
    - fu_release_new
    - xb_silo_new_from_xml
    - g_assert_false
    - fu_release_load
    - fu_release_set_remote
    - fu_engine_get_host_machine_id
    - fu_engine_request_new
    - g_assert_error
    - g_assert_no_error
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_phased_old_fwupd_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:464,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:464,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:465,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:465,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:466,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:466,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:467,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:467,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:468,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:469,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:470,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:483,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:484,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/src/fu-engine-requirements-test.c:485,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-requirements-test.c:486,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:487,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:488,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:489,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:490,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:493,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:494,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:495,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:496,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:497,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:498,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:501,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:502,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:503,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:504,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:505,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-engine-requirements-test.c:506,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-requirements-test.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 508
    functionName: fu_engine_requirements_version_require_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - g_assert_nonnull
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_device_new
    - fu_device_add_instance_id
    - xb_silo_query_first
    - g_str_has_prefix
    - fu_device_set_version_bootloader
    - fu_release_new
    - fu_device_build_vendor_id_u16
    - fu_release_set_device
    - xb_silo_new_from_xml
    - g_assert_false
    - fu_release_load
    - fu_engine_request_new
    - g_assert_error
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_version_require_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:514,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:514,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:515,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:515,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:516,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:516,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:517,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:517,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:518,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:519,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:520,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:533,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:534,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/src/fu-engine-requirements-test.c:535,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-requirements-test.c:536,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:537,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:538,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:539,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:542,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:543,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:544,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:545,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:546,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:547,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:550,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:551,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:552,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:553,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:554,1
    - Dst: fu_release_check_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:555,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:556,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:557,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-engine-requirements-test.c:558,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-requirements-test.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 510
    functionDepth: 4
    functionLinenumber: 510
    functionLinenumberEnd: 560
    functionName: fu_engine_requirements_version_lowest_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - g_assert_nonnull
    - fu_release_check_version
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_device_new
    - fu_device_add_instance_id
    - xb_silo_query_first
    - g_str_has_prefix
    - fu_release_new
    - fu_device_build_vendor_id_u16
    - fu_release_set_device
    - xb_silo_new_from_xml
    - g_assert_false
    - fu_release_load
    - fu_engine_request_new
    - g_assert_error
    - g_assert_no_error
    - g_assert_true
    - fu_device_set_version_lowest
    - g_autoptr
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_version_lowest_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:566,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:567,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:568,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:568,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:569,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:569,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:570,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:570,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:571,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:571,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:572,1
    - Dst: fu_engine_add_runtime_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:583,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:586,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:587,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:588,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:589,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:590,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:591,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:594,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:595,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:596,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:597,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:598,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:599,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-requirements-test.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 562
    functionDepth: 8
    functionLinenumber: 562
    functionLinenumberEnd: 601
    functionName: fu_engine_requirements_unsupported_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_request_new
    - fu_engine_requirements_check
    - g_assert_true
    - fu_release_new
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - xb_silo_new_from_xml
    - g_assert_false
    - fu_context_new_full
    - fu_engine_add_runtime_version
    - fu_release_load
    - xb_silo_query_first
    - g_autoptr
    - fu_engine_new
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_unsupported_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:607,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:607,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:608,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:608,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:609,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:609,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:610,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:610,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:611,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:611,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:612,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:612,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:613,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:614,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:615,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:633,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:634,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/src/fu-engine-requirements-test.c:635,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-requirements-test.c:636,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:637,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:638,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:639,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:641,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:642,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:643,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-engine-requirements-test.c:644,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:647,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:648,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:649,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:650,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:651,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:652,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:655,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:656,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:657,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:658,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:659,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:660,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:661,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 603
    functionDepth: 8
    functionLinenumber: 603
    functionLinenumberEnd: 663
    functionName: fu_engine_requirements_child_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_child
    - fu_device_set_version
    - g_assert_nonnull
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_engine_new
    - fu_device_new
    - fu_engine_requirements_check
    - fu_device_add_instance_id
    - fu_device_set_physical_id
    - xb_silo_query_first
    - fu_device_set_version_bootloader
    - fu_release_new
    - fu_device_build_vendor_id_u16
    - fu_release_set_device
    - xb_silo_new_from_xml
    - fu_release_load
    - fu_engine_request_new
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_child_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:669,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:669,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:670,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:670,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:671,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:671,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:672,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:672,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:673,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:673,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:674,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:674,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:675,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:676,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:677,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:695,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:696,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/src/fu-engine-requirements-test.c:697,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-requirements-test.c:698,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:699,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:700,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:701,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:703,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:704,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:705,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-engine-requirements-test.c:706,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:709,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:710,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:711,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:712,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:713,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:714,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:717,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:718,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:719,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:720,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:721,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:722,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:723,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:724,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-engine-requirements-test.c:725,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-requirements-test.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 665
    functionDepth: 8
    functionLinenumber: 665
    functionLinenumberEnd: 727
    functionName: fu_engine_requirements_child_fail_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_child
    - fu_device_set_version
    - g_assert_nonnull
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_engine_new
    - fu_device_new
    - fu_engine_requirements_check
    - fu_device_add_instance_id
    - fu_device_set_physical_id
    - xb_silo_query_first
    - fu_device_set_version_bootloader
    - fu_release_new
    - fu_device_build_vendor_id_u16
    - fu_release_set_device
    - xb_silo_new_from_xml
    - g_strstr_len
    - g_assert_false
    - fu_release_load
    - fu_engine_request_new
    - g_assert_error
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_child_fail_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:733,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:733,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:734,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:734,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:735,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:735,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:736,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:736,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:737,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:738,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:739,1
    - Dst: fu_engine_add_runtime_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:753,1
    - Dst: fu_engine_add_runtime_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:754,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:757,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:758,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:759,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:760,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:761,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:762,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:765,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:766,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:767,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:768,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:769,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:770,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 729
    functionDepth: 8
    functionLinenumber: 729
    functionLinenumberEnd: 772
    functionName: fu_engine_requirements_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_engine_request_new
    - fu_engine_requirements_check
    - g_assert_true
    - fu_release_new
    - g_assert_nonnull
    - g_assert_no_error
    - xb_silo_new_from_xml
    - fu_context_new_full
    - fu_engine_add_runtime_version
    - fu_release_load
    - xb_silo_query_first
    - g_autoptr
    - fu_engine_new
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:778,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:778,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:779,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:779,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:780,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:780,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:781,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:781,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:782,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:782,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:783,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:784,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:785,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:808,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:809,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/src/fu-engine-requirements-test.c:810,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-requirements-test.c:811,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-requirements-test.c:812,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:813,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:814,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:815,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:816,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:819,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:820,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:821,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:822,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:823,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:824,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:827,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:828,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:829,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:830,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:831,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:832,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:833,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:834,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:837,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:838,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:839,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:840,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-engine-requirements-test.c:840,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-requirements-test.c:841,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:845,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:846,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:850,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 774
    functionDepth: 8
    functionLinenumber: 774
    functionLinenumberEnd: 853
    functionName: fu_engine_requirements_device_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - fu_device_add_private_flag
    - g_assert_nonnull
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_engine_new
    - fu_device_new
    - fu_engine_requirements_check
    - fu_device_add_instance_id
    - xb_silo_query_first
    - fu_device_set_version_bootloader
    - fu_release_new
    - fu_device_build_vendor_id_u16
    - fu_release_set_device
    - xb_silo_new_from_xml
    - g_strstr_len
    - g_assert_false
    - fu_release_load
    - fu_engine_request_new
    - g_assert_error
    - g_assert_no_error
    - g_clear_error
    - g_assert_true
    - g_autoptr
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:859,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:859,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:860,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:860,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:861,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:861,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:862,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:862,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:863,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:863,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:864,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:865,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:866,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:881,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:882,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-requirements-test.c:883,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:884,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:885,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:886,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:889,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:890,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:891,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:892,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:893,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:894,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:897,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:898,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:899,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:900,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:901,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:902,1
    - Dst: fu_release_get_filename
      Src: /src/fwupd/src/fu-engine-requirements-test.c:902,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:903,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:904,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 855
    functionDepth: 8
    functionLinenumber: 855
    functionLinenumberEnd: 906
    functionName: fu_engine_requirements_device_plain_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - g_assert_nonnull
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_engine_new
    - fu_device_new
    - fu_engine_requirements_check
    - fu_device_add_instance_id
    - xb_silo_query_first
    - fu_release_new
    - fu_device_build_vendor_id_u16
    - fu_release_set_device
    - xb_silo_new_from_xml
    - fu_release_get_filename
    - fu_release_load
    - fu_engine_request_new
    - g_assert_no_error
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_device_plain_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:912,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:912,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:913,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:913,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:914,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:914,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:915,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:915,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:916,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:917,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:918,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:935,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:936,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:937,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:938,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:939,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:942,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:943,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:944,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:945,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:946,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:947,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:950,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:951,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:952,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:953,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:954,1
    - Dst: fu_release_check_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:955,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:956,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:957,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-engine-requirements-test.c:958,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-requirements-test.c:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 908
    functionDepth: 4
    functionLinenumber: 908
    functionLinenumberEnd: 960
    functionName: fu_engine_requirements_version_format_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - g_assert_nonnull
    - fu_release_check_version
    - fu_context_new_full
    - fu_device_set_version_format
    - fu_device_new
    - fu_device_add_instance_id
    - xb_silo_query_first
    - fu_release_new
    - fu_release_set_device
    - xb_silo_new_from_xml
    - g_strstr_len
    - g_assert_false
    - fu_release_load
    - fu_engine_request_new
    - g_assert_error
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_version_format_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:966,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:966,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:967,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:967,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:968,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:968,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:969,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:969,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:970,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:971,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:972,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:984,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:985,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:986,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:987,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:988,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:991,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:992,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:993,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:994,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:995,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:996,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:999,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1000,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1001,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1002,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1003,1
    - Dst: fu_release_check_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1004,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1005,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1006,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1006,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 962
    functionDepth: 4
    functionLinenumber: 962
    functionLinenumberEnd: 1008
    functionName: fu_engine_requirements_only_upgrade_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - g_assert_nonnull
    - fu_release_check_version
    - fu_context_new_full
    - fu_device_new
    - fu_device_add_instance_id
    - xb_silo_query_first
    - fu_release_new
    - fu_release_set_device
    - xb_silo_new_from_xml
    - g_strstr_len
    - g_assert_false
    - fu_release_load
    - fu_engine_request_new
    - g_assert_error
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_only_upgrade_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1014,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1014,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1015,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1015,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1016,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1016,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1017,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1017,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1018,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1019,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1020,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1032,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1033,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1034,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1035,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1036,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1039,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1040,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1041,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1042,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1043,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1044,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1047,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1048,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1049,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1050,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1051,1
    - Dst: fu_release_check_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1052,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1053,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1054,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1054,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1010
    functionDepth: 4
    functionLinenumber: 1010
    functionLinenumberEnd: 1056
    functionName: fu_engine_requirements_only_upgrade_reinstall_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - g_assert_nonnull
    - fu_release_check_version
    - fu_context_new_full
    - fu_device_new
    - fu_device_add_instance_id
    - xb_silo_query_first
    - fu_release_new
    - fu_release_set_device
    - xb_silo_new_from_xml
    - g_strstr_len
    - g_assert_false
    - fu_release_load
    - fu_engine_request_new
    - g_assert_error
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_only_upgrade_reinstall_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1062,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1062,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1063,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1063,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1064,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1064,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1065,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1065,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1066,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1066,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1067,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1067,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1068,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1068,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1069,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1069,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1070,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1070,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1071,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1072,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1073,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1074,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1074,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1092,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1095,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1096,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1097,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1098,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1099,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1100,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1101,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1102,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1103,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1106,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1107,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1108,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1109,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1110,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1111,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1112,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1113,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1114,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1117,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1118,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1119,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1120,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1121,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1122,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1123,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1124,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1125,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1126,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1129,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1130,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1131,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1132,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1133,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1134,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1137,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1138,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1139,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1140,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1141,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1142,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1143,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1144,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1145,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1148,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1149,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1150,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1151,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1152,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1153,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1154,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1155,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1156,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1157,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1158,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1161,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1162,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1163,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1164,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1165,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1166,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1167,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1168,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1171,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1172,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1173,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1058
    functionDepth: 8
    functionLinenumber: 1058
    functionLinenumberEnd: 1175
    functionName: fu_engine_requirements_sibling_device_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_child
    - fu_device_set_version
    - fu_device_add_private_flag
    - g_assert_nonnull
    - fu_context_new_full
    - fu_device_set_version_format
    - xb_silo_new
    - fu_engine_new
    - fu_device_new
    - fu_engine_requirements_check
    - fu_device_add_instance_id
    - fu_engine_set_silo
    - xb_silo_query_first
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_release_new
    - fu_device_build_vendor_id_u16
    - fu_release_set_device
    - fu_device_set_id
    - xb_silo_new_from_xml
    - fu_device_set_name
    - g_assert_false
    - fu_release_load
    - fu_engine_request_new
    - g_assert_error
    - g_assert_no_error
    - g_clear_error
    - g_assert_true
    - g_autoptr
    - fu_device_build_vendor_id
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_sibling_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1181,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1181,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1182,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1182,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1183,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1183,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1184,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1184,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1185,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1185,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1186,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1186,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1187,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1188,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1189,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1190,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1190,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1209,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1212,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1213,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1214,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1215,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1216,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1219,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1220,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1221,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1222,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1223,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1224,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1225,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1226,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1229,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1230,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1231,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1232,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1233,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1234,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1237,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1238,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1239,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1240,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1241,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1242,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1243,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1177
    functionDepth: 8
    functionLinenumber: 1177
    functionLinenumberEnd: 1245
    functionName: fu_engine_requirements_other_device_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - g_assert_nonnull
    - fu_context_new_full
    - fu_device_set_version_format
    - xb_silo_new
    - fu_engine_new
    - fu_device_new
    - fu_engine_requirements_check
    - fu_device_add_instance_id
    - fu_engine_set_silo
    - xb_silo_query_first
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_release_new
    - fu_device_build_vendor_id_u16
    - fu_release_set_device
    - fu_device_set_id
    - xb_silo_new_from_xml
    - fu_device_set_name
    - fu_release_load
    - fu_engine_request_new
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_other_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1250,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1250,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1251,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1251,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1252,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1252,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1253,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1253,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1254,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1254,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1255,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1256,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1256,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1257,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1257,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1258,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1259,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1260,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1261,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1261,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1281,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1283,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1284,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1285,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1286,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1287,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1288,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1289,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1290,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1291,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1292,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1294,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1295,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1296,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1297,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1298,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1299,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1300,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1301,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1302,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1303,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1306,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1307,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1308,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1309,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1312,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1313,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1314,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1315,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1316,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1317,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1320,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1321,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1322,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1323,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1324,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1325,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1328,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1329,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1330,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1331,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1247
    functionDepth: 8
    functionLinenumber: 1247
    functionLinenumberEnd: 1333
    functionName: fu_engine_requirements_protocol_check_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - fu_engine_get_devices
    - g_assert_nonnull
    - fu_context_new_full
    - fu_device_set_version_format
    - xb_silo_new
    - fu_engine_new
    - fu_device_new
    - fu_device_add_instance_id
    - g_assert_cmpint
    - fu_engine_set_silo
    - xb_silo_query_first
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_release_new
    - fu_release_set_device
    - fu_device_set_id
    - xb_silo_new_from_xml
    - fu_device_set_name
    - g_assert_false
    - fu_release_load
    - fu_engine_request_new
    - g_assert_error
    - g_assert_no_error
    - g_clear_error
    - g_assert_true
    - g_autoptr
    - fu_device_build_vendor_id
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_protocol_check_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1339,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1339,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1340,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1340,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1341,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1341,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1342,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1342,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1343,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1343,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1344,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1344,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1345,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1346,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1347,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1348,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1348,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1367,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1370,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1371,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1372,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1373,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1374,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1375,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1376,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1379,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1380,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1381,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1382,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1383,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1384,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1385,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1386,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1387,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1390,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1391,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1392,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1393,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1394,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1395,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1398,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1399,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1400,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1401,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1402,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1403,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1404,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1335
    functionDepth: 8
    functionLinenumber: 1335
    functionLinenumberEnd: 1406
    functionName: fu_engine_requirements_parent_device_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_child
    - fu_device_set_version
    - g_assert_nonnull
    - fu_context_new_full
    - fu_device_set_version_format
    - xb_silo_new
    - fu_engine_new
    - fu_device_new
    - fu_engine_requirements_check
    - fu_device_add_instance_id
    - fu_engine_set_silo
    - xb_silo_query_first
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_release_new
    - fu_device_build_vendor_id_u16
    - fu_release_set_device
    - fu_device_set_id
    - xb_silo_new_from_xml
    - fu_device_set_name
    - fu_release_load
    - fu_engine_request_new
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_parent_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1412,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1412,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1413,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1413,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1414,1
    - Dst: fu_device_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1414,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1415,1
    - Dst: fu_engine_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1415,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1416,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1416,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1417,1
    - Dst: fu_release_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1417,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1418,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1419,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1420,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1421,1
    - Dst: xb_silo_new
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1421,1
    - Dst: fu_engine_set_silo
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1439,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1442,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1443,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1444,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1445,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1446,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1447,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1448,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1449,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1450,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1453,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1454,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1455,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1456,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1457,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1458,1
    - Dst: fu_engine_add_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1459,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1462,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1463,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1464,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1465,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1466,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1467,1
    - Dst: fu_release_set_device
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1470,1
    - Dst: fu_release_set_request
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1471,1
    - Dst: fu_release_load
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1472,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1473,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1474,1
    - Dst: fu_engine_requirements_check
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1475,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1476,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1408
    functionDepth: 8
    functionLinenumber: 1408
    functionLinenumberEnd: 1478
    functionName: fu_engine_requirements_child_device_func
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_child
    - fu_device_set_version
    - g_assert_nonnull
    - fu_context_new_full
    - fu_device_set_version_format
    - xb_silo_new
    - fu_engine_new
    - fu_device_new
    - fu_engine_requirements_check
    - fu_device_add_instance_id
    - fu_engine_set_silo
    - xb_silo_query_first
    - fu_device_add_protocol
    - fu_engine_add_device
    - fu_release_new
    - fu_device_build_vendor_id_u16
    - fu_release_set_device
    - fu_device_set_id
    - xb_silo_new_from_xml
    - fu_device_set_name
    - fu_release_load
    - fu_engine_request_new
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    - fu_release_set_request
    linkageType: ''
    returnType: void
    signature: void fu_engine_requirements_child_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1483,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1484,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1485,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1486,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1487,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1489,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1491,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1493,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1495,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1496,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1498,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1500,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1502,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1504,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1506,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1508,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1509,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1511,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1513,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1514,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1516,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1518,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1520,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1522,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1524,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1526,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1528,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-engine-requirements-test.c:1530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1531
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-engine-requirements-test.c
    functionUses: 2
    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: g_compute_checksum_for_bytes
      Src: /src/fwupd/src/fu-jcat-sha256-engine.c:23,1
    - Dst: fwupd_jcat_blob_new_utf8
      Src: /src/fwupd/src/fu-jcat-sha256-engine.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - engine
    - data
    - flags
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - FuJcatSignFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 25
    functionName: fu_jcat_sha256_engine_self_sign
    functionSourceFile: /src/fwupd/src/fu-jcat-sha256-engine.c
    functionUses: 0
    functionsReached:
    - g_compute_checksum_for_bytes
    - fwupd_jcat_blob_new_utf8
    linkageType: ''
    returnType: FwupdJcatBlob
    signature: "FwupdJcatBlob *\nfu_jcat_sha256_engine_self_sign(FuJcatEngine *engine,\n\t\t\t\tGBytes
      *data,\n\t\t\t\tFuJcatSignFlags flags,\n\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-sha256-engine.c:35,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/src/fu-jcat-sha256-engine.c:37,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-jcat-sha256-engine.c:38,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-jcat-sha256-engine.c:38,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/src/fu-jcat-sha256-engine.c:39,1
    - Dst: fu_strsafe_bytes
      Src: /src/fwupd/src/fu-jcat-sha256-engine.c:40,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-jcat-sha256-engine.c:42,1
    - Dst: FU_JCAT_RESULT
      Src: /src/fwupd/src/fu-jcat-sha256-engine.c:45,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-jcat-sha256-engine.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - engine
    - data
    - blob_signature
    - flags
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - GBytes*
    - FuJcatVerifyFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 46
    functionName: fu_jcat_sha256_engine_self_verify
    functionSourceFile: /src/fwupd/src/fu-jcat-sha256-engine.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - fu_strsafe_bytes
    - g_prefix_error
    - FU_JCAT_RESULT
    - strlen
    - g_object_new
    - fu_bytes_compare
    - g_autoptr
    - g_compute_checksum_for_bytes
    linkageType: ''
    returnType: FuJcatResult
    signature: "FuJcatResult *\nfu_jcat_sha256_engine_self_verify(FuJcatEngine *engine,\n\t\t\t\t
      \ GBytes *data,\n\t\t\t\t  GBytes *blob_signature,\n\t\t\t\t  FuJcatVerifyFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_ENGINE_CLASS
      Src: /src/fwupd/src/fu-jcat-sha256-engine.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJcatSha256EngineClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: fu_jcat_sha256_engine_class_init
    functionSourceFile: /src/fwupd/src/fu-jcat-sha256-engine.c
    functionUses: 0
    functionsReached:
    - FU_JCAT_ENGINE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_jcat_sha256_engine_class_init(FuJcatSha256EngineClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJcatSha256Engine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: fu_jcat_sha256_engine_init
    functionSourceFile: /src/fwupd/src/fu-jcat-sha256-engine.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_jcat_sha256_engine_init(FuJcatSha256Engine *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-sha256-engine.c:64,1
    - Dst: FU_IS_JCAT_CONTEXT
      Src: /src/fwupd/src/fu-jcat-sha256-engine.c:64,1
    - Dst: FU_JCAT_ENGINE
      Src: /src/fwupd/src/fu-jcat-sha256-engine.c:65,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-jcat-sha256-engine.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - FuJcatContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: fu_jcat_sha256_engine_new
    functionSourceFile: /src/fwupd/src/fu-jcat-sha256-engine.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_JCAT_ENGINE
    - FU_IS_JCAT_CONTEXT
    - g_object_new
    linkageType: ''
    returnType: FuJcatEngine
    signature: 'FuJcatEngine *

      fu_jcat_sha256_engine_new(FuJcatContext *context)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-util-common.c:29,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:30,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - text
    - fg_color
    argTypes:
    - gchar*
    - FuConsoleColor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: fu_console_color_format
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strdup_printf
    - g_getenv
    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:43,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util-common.c:45,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/src/fu-util-common.c:48,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/src/fu-util-common.c:49,1
    - Dst: fu_util_device_to_string
      Src: /src/fwupd/src/fu-util-common.c:50,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/src/fu-util-common.c:51,1
    - Dst: FWUPD_REMOTE
      Src: /src/fwupd/src/fu-util-common.c:52,1
    - Dst: fu_util_remote_to_string
      Src: /src/fwupd/src/fu-util-common.c:53,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/src/fu-util-common.c:54,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/src/fu-util-common.c:55,1
    - Dst: fu_util_release_to_string
      Src: /src/fwupd/src/fu-util-common.c:56,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-util-common.c:57,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/src/fu-util-common.c:61,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:63,1
    - Dst: fwupd_client_get_host_vendor
      Src: /src/fwupd/src/fu-util-common.c:64,1
    - Dst: fwupd_client_get_host_product
      Src: /src/fwupd/src/fu-util-common.c:65,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util-common.c:66,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util-common.c:67,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-util-common.c:76,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:78,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:78,1
    - Dst: g_node_next_sibling
      Src: /src/fwupd/src/fu-util-common.c:82,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-util-common.c:83,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:89,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-util-common.c:90,1
    - Dst: g_node_next_sibling
      Src: /src/fwupd/src/fu-util-common.c:90,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:91,1
    - Dst: g_node_next_sibling
      Src: /src/fwupd/src/fu-util-common.c:96,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-util-common.c:97,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-util-common.c:100,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util-common.c:105,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:110,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util-common.c:111,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 2
    argNames:
    - n
    - data
    argTypes:
    - FuUtilNode*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 115
    functionName: fu_util_traverse_tree
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_string_prepend
    - g_strdup_printf
    - g_auto
    - fu_util_release_to_string
    - fwupd_client_get_host_product
    - FWUPD_IS_DEVICE
    - fu_util_device_to_string
    - FWUPD_IS_RELEASE
    - fu_util_remote_to_string
    - g_log_get_debug_enabled
    - g_strsplit
    - g_string_new
    - fwupd_client_get_host_vendor
    - g_string_append
    - g_node_next_sibling
    - g_info
    - FWUPD_IS_REMOTE
    - FWUPD_DEVICE
    - fu_console_print_literal
    - g_node_depth
    - FWUPD_REMOTE
    - g_autoptr
    - FWUPD_RELEASE
    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:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - n
    - data
    argTypes:
    - FuUtilNode*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 123
    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:128,1
    - Dst: g_node_destroy
      Src: /src/fwupd/src/fu-util-common.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - FuUtilNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    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:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - console
    - client
    - n
    argTypes:
    - FuConsole*
    - FwupdClient*
    - FuUtilNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: fu_util_print_node
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 6
    functionsReached:
    - g_node_traverse
    linkageType: ''
    returnType: void
    signature: void fu_util_print_node(FuConsole *console, FwupdClient *client, FuUtilNode
      *n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:143,1
    - Dst: fwupd_device_get_parent
      Src: /src/fwupd/src/fu-util-common.c:144,1
    - Dst: fu_util_is_interesting_device
      Src: /src/fwupd/src/fu-util-common.c:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - devs
    - dev
    argTypes:
    - GPtrArray*
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 150
    functionName: fu_util_is_interesting_child
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - fwupd_device_get_parent
    - g_ptr_array_index
    - fu_util_is_interesting_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_is_interesting_child(GPtrArray *devs, FwupdDevice
      *dev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util-common.c:155,1
    - Dst: fwupd_device_get_update_error
      Src: /src/fwupd/src/fu-util-common.c:157,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util-common.c:159,1
    - Dst: fwupd_device_get_flags
      Src: /src/fwupd/src/fu-util-common.c:162,1
    - Dst: fu_util_is_interesting_child
      Src: /src/fwupd/src/fu-util-common.c:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - devs
    - dev
    argTypes:
    - GPtrArray*
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 167
    functionName: fu_util_is_interesting_device
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 4
    functionsReached:
    - fwupd_device_get_update_error
    - fwupd_device_get_version
    - fu_util_is_interesting_child
    - fwupd_device_has_flag
    - fwupd_device_get_flags
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_is_interesting_device(GPtrArray *devs, FwupdDevice
      *dev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_get_user_cache_dir
      Src: /src/fwupd/src/fu-util-common.c:172,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-util-common.c:173,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-util-common.c:177,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-util-common.c:178,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-util-common.c:182,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-util-common.c:183,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-util-common.c:184,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-util-common.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fn
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 187
    functionName: fu_util_get_user_cache_path
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 2
    functionsReached:
    - g_getenv
    - g_path_get_basename
    - g_file_test
    - g_get_user_cache_dir
    - g_build_filename
    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:192,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:193,1
    - Dst: g_bus_get_sync
      Src: /src/fwupd/src/fu-util-common.c:195,1
    - Dst: g_dbus_connection_call_sync
      Src: /src/fwupd/src/fu-util-common.c:201,1
    - Dst: g_variant_new
      Src: /src/fwupd/src/fu-util-common.c:206,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util-common.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 219
    functionName: fu_util_update_shutdown
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_bus_get_sync
    - g_set_error_literal
    - g_dbus_connection_call_sync
    - g_variant_new
    - g_autoptr
    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:224,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:225,1
    - Dst: g_bus_get_sync
      Src: /src/fwupd/src/fu-util-common.c:227,1
    - Dst: g_dbus_connection_call_sync
      Src: /src/fwupd/src/fu-util-common.c:233,1
    - Dst: g_variant_new
      Src: /src/fwupd/src/fu-util-common.c:238,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util-common.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 251
    functionName: fu_util_update_reboot
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_bus_get_sync
    - g_set_error_literal
    - g_dbus_connection_call_sync
    - g_variant_new
    - g_autoptr
    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:256,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:256,1
    - Dst: fwupd_release_get_description
      Src: /src/fwupd/src/fu-util-common.c:259,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:260,1
    - Dst: fwupd_release_get_description
      Src: /src/fwupd/src/fu-util-common.c:260,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/src/fu-util-common.c:263,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:264,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:268,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:270,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:274,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:279,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:282,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:285,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-common.c:285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - rel
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 286
    functionName: fu_util_get_release_description_with_fallback
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - fwupd_release_get_description
    - g_string_append
    - g_steal_pointer
    - fwupd_release_has_flag
    - g_string_free
    - _
    - g_string_new
    - g_string_append_printf
    - g_autoptr
    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:298,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:298,1
    - 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: fu_version_compare
      Src: /src/fwupd/src/fu-util-common.c:302,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util-common.c:302,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-util-common.c:303,1
    - Dst: fwupd_device_get_version_format
      Src: /src/fwupd/src/fu-util-common.c:304,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:306,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:310,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util-common.c:311,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util-common.c:312,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util-common.c:313,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:315,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:319,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util-common.c:320,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util-common.c:321,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util-common.c:322,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:324,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:328,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util-common.c:329,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util-common.c:330,1
    - Dst: fu_util_get_release_description_with_fallback
      Src: /src/fwupd/src/fu-util-common.c:334,1
    - Dst: fu_util_convert_description
      Src: /src/fwupd/src/fu-util-common.c:336,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:338,1
    - Dst: fwupd_device_get_flags
      Src: /src/fwupd/src/fu-util-common.c:342,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:346,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:347,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:350,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util-common.c:351,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:355,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:358,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:362,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util-common.c:364,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:366,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:371,1
    - Dst: fu_console_box
      Src: /src/fwupd/src/fu-util-common.c:377,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util-common.c:380,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:380,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util-common.c:381,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: 390
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 390
    functionName: fu_util_prompt_warning
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - fwupd_device_get_name
    - g_string_append
    - fu_console_input_bool
    - g_set_error_literal
    - fu_console_box
    - fu_version_compare
    - _
    - fu_device_get_version
    - fwupd_device_get_version
    - g_string_new
    - g_string_append_printf
    - fu_util_get_release_description_with_fallback
    - fu_util_convert_description
    - fwupd_device_get_version_format
    - g_autoptr
    - fwupd_release_get_version
    - fwupd_device_get_flags
    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:397,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:401,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:404,1
    - Dst: fu_util_update_shutdown
      Src: /src/fwupd/src/fu-util-common.c:407,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util-common.c:411,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:415,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:417,1
    - Dst: fu_util_update_reboot
      Src: /src/fwupd/src/fu-util-common.c:420,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - console
    - flags
    - prompt
    - error
    argTypes:
    - FuConsole*
    - FwupdDeviceFlags
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 424
    functionName: fu_util_prompt_complete
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 5
    functionsReached:
    - _
    - fu_util_update_reboot
    - fu_util_update_shutdown
    - fu_console_input_bool
    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:429,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuUtilCmd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 433
    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:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 439
    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:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item1
    - item2
    argTypes:
    - FuUtilCmd**
    - FuUtilCmd**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 445
    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:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 451
    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:460,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-util-common.c:462,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_strsplit
      Src: /src/fwupd/src/fu-util-common.c:467,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-util-common.c:469,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:470,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:472,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:475,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:475,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: 18
    argCount: 5
    argNames:
    - array
    - name
    - arguments
    - description
    - callback
    argTypes:
    - GPtrArray*
    - gchar*
    - gchar*
    - gchar*
    - FuUtilCmdFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 482
    functionName: fu_util_cmd_array_add
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_new0
    - g_return_if_fail
    - g_ptr_array_add
    - _
    - g_strsplit
    - g_strdup_printf
    - g_auto
    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: 5
    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_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:501,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:503,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-util-common.c:506,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:513,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:514,1
    - Dst: FuUtilCmd*::callback
      Src: /src/fwupd/src/fu-util-common.c:515,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util-common.c:519,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:523,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 5
    argNames:
    - array
    - self
    - command
    - values
    - error
    argTypes:
    - GPtrArray*
    - FuUtil*
    - gchar*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 525
    functionName: fu_util_cmd_array_run
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_new0
    - FuUtilCmd*::callback
    - g_print
    - g_set_error_literal
    - _
    - g_strv_length
    - g_auto
    - g_ptr_array_index
    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:535,1
    - Dst: g_ptr_array_index
      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
      Src: /src/fwupd/src/fu-util-common.c:539,1
    - Dst: fu_strwidth
      Src: /src/fwupd/src/fu-util-common.c:540,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:542,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:543,1
    - Dst: fu_strwidth
      Src: /src/fwupd/src/fu-util-common.c:544,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-util-common.c:548,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:549,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-util-common.c:550,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-util-common.c:552,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-util-common.c:554,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:555,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-util-common.c:556,1
    - Dst: g_string_set_size
      Src: /src/fwupd/src/fu-util-common.c:562,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:564,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - array
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 565
    functionName: fu_util_cmd_array_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_string_append
    - g_string_set_size
    - g_string_free
    - g_string_new
    - g_string_append_c
    - fu_strwidth
    - g_ptr_array_index
    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:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - branch
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 575
    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:580,1
    - Dst: fwupd_release_get_categories
      Src: /src/fwupd/src/fu-util-common.c:581,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:584,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:585,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:588,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:588,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:590,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:593,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:593,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:595,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:598,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:598,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:600,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:603,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:603,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:605,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:608,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:608,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:610,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:618,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:618,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:620,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:630,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:630,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:632,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:635,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:635,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:637,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:639,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:639,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:641,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:644,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:644,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:646,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:648,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:648,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:650,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:652,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:652,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:654,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:656,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:656,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:658,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:660,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:660,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:662,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:664,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:664,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:666,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:669,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:669,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:671,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:674,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:674,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:676,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:679,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:679,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:681,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:684,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:684,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:686,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:688,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:688,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:690,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:692,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:692,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:694,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:697,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:697,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:699,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:702,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:702,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:704,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:707,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:707,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:709,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:712,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:712,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:714,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:716,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:716,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:718,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:721,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:721,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:723,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:725,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:725,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:727,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
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:731,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:733,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:733,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:740,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:740,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 100
    argCount: 1
    argNames:
    - release
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 741
    functionName: fu_util_release_get_name
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fwupd_release_get_categories
    - _
    - g_strdup_printf
    - fwupd_release_get_name
    - g_ptr_array_index
    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:750,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-util-common.c:750,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-util-common.c:752,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-util-common.c:753,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-util-common.c:756,1
    - Dst: fwupd_device_flag_from_string
      Src: /src/fwupd/src/fu-util-common.c:757,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:759,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:767,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:771,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:775,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:779,1
    - Dst: fwupd_device_flag_from_string
      Src: /src/fwupd/src/fu-util-common.c:784,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:786,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:794,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:798,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:802,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:806,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 4
    argNames:
    - filter
    - include
    - exclude
    - error
    argTypes:
    - gchar*
    - FwupdDeviceFlags*
    - FwupdDeviceFlags*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 814
    functionName: fu_util_parse_filter_device_flags
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    - fwupd_device_flag_from_string
    - fwupd_device_flag_to_string
    - g_strsplit
    - g_auto
    - g_str_has_prefix
    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:823,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-util-common.c:823,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-util-common.c:825,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-util-common.c:826,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-util-common.c:829,1
    - Dst: fwupd_release_flag_from_string
      Src: /src/fwupd/src/fu-util-common.c:830,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:832,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:840,1
    - Dst: fwupd_release_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:844,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:848,1
    - Dst: fwupd_release_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:852,1
    - Dst: fwupd_release_flag_from_string
      Src: /src/fwupd/src/fu-util-common.c:857,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:859,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:867,1
    - Dst: fwupd_release_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:871,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util-common.c:875,1
    - Dst: fwupd_release_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:879,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 4
    argNames:
    - filter
    - include
    - exclude
    - error
    argTypes:
    - gchar*
    - FwupdReleaseFlags*
    - FwupdReleaseFlags*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 887
    functionName: fu_util_parse_filter_release_flags
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_release_flag_to_string
    - fwupd_release_flag_from_string
    - g_set_error
    - g_strsplit
    - g_auto
    - g_str_has_prefix
    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:901,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:901,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:902,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:903,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:903,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:904,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:905,1
    - Dst: xb_node_get_element
      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: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:907,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:907,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:908,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:909,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:909,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:910,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:910,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:911,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:911,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:912,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-util-common.c:916,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:917,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-util-common.c:917,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - n
    - user_data
    argTypes:
    - XbNode*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 920
    functionName: fu_util_convert_description_head_cb
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - xb_node_get_element
    - g_strcmp0
    - g_string_append
    - xb_node_get_text
    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:929,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:929,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:930,1
    - Dst: xb_node_get_element
      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: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:932,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:932,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:933,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:934,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:934,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:935,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:936,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/src/fu-util-common.c:936,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:937,1
    - Dst: xb_node_get_tail
      Src: /src/fwupd/src/fu-util-common.c:941,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:942,1
    - Dst: xb_node_get_tail
      Src: /src/fwupd/src/fu-util-common.c:942,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - n
    - user_data
    argTypes:
    - XbNode*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 945
    functionName: fu_util_convert_description_tail_cb
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - xb_node_get_element
    - g_strcmp0
    - g_string_append
    - xb_node_get_tail
    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:950,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:950,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:951,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:952,1
    - Dst: xb_silo_new_from_xml
      Src: /src/fwupd/src/fu-util-common.c:959,1
    - Dst: xb_silo_get_root
      Src: /src/fwupd/src/fu-util-common.c:964,1
    - Dst: xb_node_transmogrify
      Src: /src/fwupd/src/fu-util-common.c:965,1
    - Dst: fu_strstrip
      Src: /src/fwupd/src/fu-util-common.c:971,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - xml
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 972
    functionName: fu_util_convert_description
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - fu_strstrip
    - xb_silo_new_from_xml
    - xb_node_transmogrify
    - g_string_new
    - 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:985,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:990,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util-common.c:990,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:997,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util-common.c:997,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1004,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util-common.c:1004,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1010,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util-common.c:1010,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - tmp
    argTypes:
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 1011
    functionName: fu_util_time_to_str
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strdup_printf
    - ngettext
    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:1020,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1025,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1029,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1033,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1037,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1041,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1045,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1049,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1053,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1057,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1061,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1065,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1073,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1081,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1085,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1093,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1097,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1101,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1105,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1109,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1113,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:1127,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1132,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1136,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1140,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1144,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1148,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1152,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1156,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1161,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1165,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 114
    argCount: 1
    argNames:
    - device_flag
    argTypes:
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1013
    functionDepth: 0
    functionLinenumber: 1013
    functionLinenumberEnd: 1170
    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:1179,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1183,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1187,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - request_flag
    argTypes:
    - FwupdRequestFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1194
    functionName: fu_util_request_flag_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_request_flag_to_string(FwupdRequestFlags request_flag)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1201,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1205,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1209,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1213,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - update_state
    argTypes:
    - FwupdUpdateState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1196
    functionDepth: 0
    functionLinenumber: 1196
    functionLinenumberEnd: 1220
    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: 20
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_battery_level
      Src: /src/fwupd/src/fu-util-common.c:1230,1
    - Dst: fwupd_client_get_battery_threshold
      Src: /src/fwupd/src/fu-util-common.c:1231,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1233,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1233,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1235,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1237,1
    - Dst: fwupd_client_get_battery_level
      Src: /src/fwupd/src/fu-util-common.c:1238,1
    - Dst: fwupd_client_get_battery_threshold
      Src: /src/fwupd/src/fu-util-common.c:1239,1
    - Dst: g_strdup
      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:1246,1
    - Dst: fwupd_device_get_battery_threshold
      Src: /src/fwupd/src/fu-util-common.c:1247,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_printf
      Src: /src/fwupd/src/fu-util-common.c:1252,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1252,1
    - Dst: fwupd_device_get_battery_level
      Src: /src/fwupd/src/fu-util-common.c:1253,1
    - Dst: fwupd_device_get_battery_threshold
      Src: /src/fwupd/src/fu-util-common.c:1254,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1258,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1258,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1262,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1262,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1266,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1266,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1270,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1270,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1274,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1274,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1278,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1278,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1282,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1282,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1286,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1286,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1290,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1290,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1294,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1294,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1298,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1298,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1302,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1302,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 57
    argCount: 3
    argNames:
    - client
    - dev
    - problem
    argTypes:
    - FwupdClient*
    - FwupdDevice*
    - FwupdDeviceProblem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1222
    functionDepth: 1
    functionLinenumber: 1222
    functionLinenumberEnd: 1305
    functionName: fu_util_device_problem_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - fwupd_device_get_battery_threshold
    - fwupd_client_get_battery_level
    - _
    - g_strdup_printf
    - fwupd_device_get_battery_level
    - fwupd_client_get_battery_threshold
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_device_problem_to_string(FwupdClient *client, FwupdDevice *dev, FwupdDeviceProblem
      problem)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:1311,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-util-common.c:1311,1
    - Dst: fwupd_device_has_problem
      Src: /src/fwupd/src/fu-util-common.c:1317,1
    - Dst: fu_util_device_problem_to_string
      Src: /src/fwupd/src/fu-util-common.c:1319,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util-common.c:1322,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-common.c:1322,1
    - Dst: fwupd_device_get_update_error
      Src: /src/fwupd/src/fu-util-common.c:1324,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util-common.c:1325,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1325,1
    - Dst: fwupd_device_get_update_error
      Src: /src/fwupd/src/fu-util-common.c:1325,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-common.c:1326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - client
    - dev
    argTypes:
    - FwupdClient*
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1308
    functionDepth: 2
    functionLinenumber: 1308
    functionLinenumberEnd: 1327
    functionName: fu_util_device_problems_to_strings
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - fwupd_device_has_problem
    - g_steal_pointer
    - g_ptr_array_add
    - fu_util_device_problem_to_string
    - g_autoptr
    - fwupd_device_get_update_error
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_util_device_problems_to_strings(FwupdClient *client, FwupdDevice *dev)'
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_device_get_guids
      Src: /src/fwupd/src/fu-util-common.c:1333,1
    - Dst: fwupd_device_get_issues
      Src: /src/fwupd/src/fu-util-common.c:1334,1
    - Dst: fwupd_device_get_vendor_ids
      Src: /src/fwupd/src/fu-util-common.c:1335,1
    - Dst: fwupd_device_get_instance_ids
      Src: /src/fwupd/src/fu-util-common.c:1336,1
    - Dst: fwupd_device_get_flags
      Src: /src/fwupd/src/fu-util-common.c:1339,1
    - Dst: fwupd_device_get_modified
      Src: /src/fwupd/src/fu-util-common.c:1340,1
    - Dst: fwupd_device_get_request_flags
      Src: /src/fwupd/src/fu-util-common.c:1341,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:1342,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:1343,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:1343,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/src/fu-util-common.c:1346,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-util-common.c:1347,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util-common.c:1347,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-util-common.c:1348,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util-common.c:1352,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1355,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1357,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1360,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1360,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util-common.c:1360,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1363,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1363,1
    - Dst: fwupd_device_get_summary
      Src: /src/fwupd/src/fu-util-common.c:1363,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util-common.c:1366,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:1368,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:1368,1
    - Dst: fwupd_device_get_version_build_date
      Src: /src/fwupd/src/fu-util-common.c:1369,1
    - Dst: fwupd_device_get_version_build_date
      Src: /src/fwupd/src/fu-util-common.c:1370,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:1371,1
    - Dst: g_date_time_new_from_unix_utc
      Src: /src/fwupd/src/fu-util-common.c:1371,1
    - Dst: g_date_time_format
      Src: /src/fwupd/src/fu-util-common.c:1373,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:1374,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1378,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1382,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1386,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1386,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1389,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1392,1
    - Dst: fwupd_device_get_version_lowest
      Src: /src/fwupd/src/fu-util-common.c:1393,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1394,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1397,1
    - Dst: fwupd_device_get_version_highest
      Src: /src/fwupd/src/fu-util-common.c:1398,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1399,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1402,1
    - Dst: fwupd_device_get_version_bootloader
      Src: /src/fwupd/src/fu-util-common.c:1403,1
    - Dst: fwupd_device_get_vendor
      Src: /src/fwupd/src/fu-util-common.c:1406,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-util-common.c:1408,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1409,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1411,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1411,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: fu_strjoin
      Src: /src/fwupd/src/fu-util-common.c:1416,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1418,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1418,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1422,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1422,1
    - Dst: fwupd_device_get_details_url
      Src: /src/fwupd/src/fu-util-common.c:1422,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1425,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1428,1
    - Dst: fwupd_device_get_branch
      Src: /src/fwupd/src/fu-util-common.c:1429,1
    - Dst: fwupd_device_get_install_duration
      Src: /src/fwupd/src/fu-util-common.c:1432,1
    - Dst: fu_util_time_to_str
      Src: /src/fwupd/src/fu-util-common.c:1434,1
    - Dst: fwupd_device_get_install_duration
      Src: /src/fwupd/src/fu-util-common.c:1434,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1436,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1436,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1440,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1440,1
    - Dst: fwupd_device_get_serial
      Src: /src/fwupd/src/fu-util-common.c:1440,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/src/fu-util-common.c:1443,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1445,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1448,1
    - Dst: fu_util_update_state_to_string
      Src: /src/fwupd/src/fu-util-common.c:1449,1
    - Dst: fwupd_device_has_problem
      Src: /src/fwupd/src/fu-util-common.c:1453,1
    - Dst: fwupd_device_get_battery_level
      Src: /src/fwupd/src/fu-util-common.c:1454,1
    - Dst: fwupd_device_get_battery_threshold
      Src: /src/fwupd/src/fu-util-common.c:1455,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1459,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1459,1
    - Dst: fwupd_device_get_battery_level
      Src: /src/fwupd/src/fu-util-common.c:1460,1
    - Dst: fwupd_device_get_battery_threshold
      Src: /src/fwupd/src/fu-util-common.c:1461,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1463,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1463,1
    - Dst: fwupd_device_get_battery_level
      Src: /src/fwupd/src/fu-util-common.c:1464,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1466,1
    - Dst: fwupd_device_get_battery_level
      Src: /src/fwupd/src/fu-util-common.c:1466,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1468,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1468,1
    - Dst: fwupd_device_get_problems
      Src: /src/fwupd/src/fu-util-common.c:1473,1
    - Dst: fwupd_device_get_update_error
      Src: /src/fwupd/src/fu-util-common.c:1474,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:1477,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1479,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1479,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1483,1
    - Dst: fwupd_device_has_problem
      Src: /src/fwupd/src/fu-util-common.c:1490,1
    - Dst: fu_util_device_problem_to_string
      Src: /src/fwupd/src/fu-util-common.c:1492,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1495,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:1496,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1497,1
    - Dst: fwupd_codec_string_append_time
      Src: /src/fwupd/src/fu-util-common.c:1503,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1503,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-util-common.c:1506,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:1508,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-util-common.c:1509,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/src/fu-util-common.c:1510,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1511,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:1514,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-util-common.c:1515,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1520,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1522,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1525,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util-common.c:1529,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1532,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1537,1
    - Dst: fu_util_device_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:1541,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1547,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1548,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1552,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1553,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1558,1
    - Dst: fu_util_request_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:1562,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1568,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1569,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1573,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1574,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:1578,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1579,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util-common.c:1582,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:1586,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-common.c:1586,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 136
    argCount: 3
    argNames:
    - client
    - dev
    - idt
    argTypes:
    - FwupdClient*
    - FwupdDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1329
    functionDepth: 2
    functionLinenumber: 1329
    functionLinenumberEnd: 1587
    functionName: fu_util_device_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 4
    functionsReached:
    - fwupd_codec_to_string
    - FWUPD_CODEC
    - g_hash_table_insert
    - fwupd_device_get_guids
    - fwupd_device_get_install_duration
    - fu_util_update_state_to_string
    - fu_strjoin
    - g_hash_table_lookup
    - fwupd_device_get_vendor_ids
    - fwupd_device_get_version_build_date
    - _
    - g_strdup_printf
    - fwupd_device_get_update_state
    - fwupd_device_get_version_bootloader
    - g_date_time_new_from_unix_utc
    - fwupd_device_get_battery_level
    - g_ptr_array_index
    - fwupd_device_get_details_url
    - fu_util_device_flag_to_string
    - g_log_get_debug_enabled
    - g_hash_table_new_full
    - fu_util_request_flag_to_string
    - g_string_new
    - fwupd_device_get_version_highest
    - fwupd_guid_hash_string
    - fwupd_codec_string_append_time
    - fwupd_device_get_branch
    - fwupd_device_get_battery_threshold
    - g_info
    - fwupd_device_get_request_flags
    - fwupd_device_get_id
    - fwupd_codec_string_append
    - fu_console_color_format
    - fwupd_device_get_issues
    - fwupd_device_get_version
    - fwupd_device_get_version_lowest
    - fwupd_device_get_serial
    - fwupd_device_get_update_error
    - fwupd_device_get_problems
    - fu_util_time_to_str
    - fwupd_device_get_flags
    - g_strdup
    - fwupd_device_get_name
    - fwupd_device_get_modified
    - fwupd_device_has_problem
    - fwupd_device_get_summary
    - g_steal_pointer
    - fu_util_device_problem_to_string
    - g_string_free
    - g_date_time_format
    - g_string_append_printf
    - ngettext
    - g_autoptr
    - fwupd_device_get_instance_ids
    - fwupd_device_get_vendor
    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:1592,1
    - Dst: fwupd_plugin_get_name
      Src: /src/fwupd/src/fu-util-common.c:1592,1
    - Dst: fwupd_plugin_get_name
      Src: /src/fwupd/src/fu-util-common.c:1592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item1
    - item2
    argTypes:
    - FwupdPlugin**
    - FwupdPlugin**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1589
    functionDepth: 1
    functionLinenumber: 1589
    functionLinenumberEnd: 1593
    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: 23
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1608,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1608,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1612,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1612,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1616,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1616,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1620,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1620,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1624,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1624,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1627,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1629,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1633,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1633,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1638,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1638,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1642,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1642,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1646,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1646,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1650,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1650,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1654,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1654,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1658,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1658,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1662,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1662,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1666,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1666,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1670,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1670,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1674,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1674,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1678,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1678,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1682,1
    - Dst: fwupd_plugin_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:1682,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 64
    argCount: 1
    argNames:
    - plugin_flag
    argTypes:
    - FwupdPluginFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1595
    functionDepth: 0
    functionLinenumber: 1595
    functionLinenumberEnd: 1683
    functionName: fu_util_plugin_flag_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strdup_printf
    - _
    - fwupd_plugin_flag_to_string
    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:1688,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:1700,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:1705,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:1714,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-common.c:1720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - plugin_flag
    argTypes:
    - FwupdPluginFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1685
    functionDepth: 1
    functionLinenumber: 1685
    functionLinenumberEnd: 1721
    functionName: fu_util_plugin_flag_to_cli_text
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - fu_util_plugin_flag_to_string
    - fu_console_color_format
    - g_steal_pointer
    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:1726,1
    - Dst: fwupd_plugin_get_flags
      Src: /src/fwupd/src/fu-util-common.c:1728,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1730,1
    - Dst: fwupd_plugin_get_name
      Src: /src/fwupd/src/fu-util-common.c:1730,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1733,1
    - Dst: fu_util_plugin_flag_to_cli_text
      Src: /src/fwupd/src/fu-util-common.c:1735,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1736,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1737,1
    - Dst: fu_util_plugin_flag_to_cli_text
      Src: /src/fwupd/src/fu-util-common.c:1744,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:1747,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1748,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:1755,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - plugin
    - idt
    argTypes:
    - FwupdPlugin*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1723
    functionDepth: 2
    functionLinenumber: 1723
    functionLinenumberEnd: 1756
    functionName: fu_util_plugin_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - fwupd_codec_string_append
    - _
    - g_strdup_printf
    - g_string_free
    - fu_util_plugin_flag_to_cli_text
    - g_string_new
    - fwupd_plugin_get_name
    - fwupd_plugin_get_flags
    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:1762,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:1767,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1767,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-util-common.c:1771,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util-common.c:1772,1
    - Dst: g_new0::g_new0
      Src: /src/fwupd/src/fu-util-common.c:1772,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:1775,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:1776,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1778,1
    - Dst: g_strjoinv
      Src: /src/fwupd/src/fu-util-common.c:1784,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - spdx_license
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1758
    functionDepth: 0
    functionLinenumber: 1758
    functionLinenumberEnd: 1785
    functionName: fu_util_license_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - _
    - g_strsplit
    - g_strv_length
    - g_strjoinv
    - g_auto
    - g_new0::g_new0
    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:1792,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1796,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1800,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1804,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1807,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - release_urgency
    argTypes:
    - FwupdReleaseUrgency
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1787
    functionDepth: 0
    functionLinenumber: 1787
    functionLinenumberEnd: 1808
    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:1817,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1821,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1825,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1829,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1833,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1837,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1841,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1845,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1849,1
    - Dst: fwupd_release_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:1853,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - release_flag
    argTypes:
    - FwupdReleaseFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1810
    functionDepth: 0
    functionLinenumber: 1810
    functionLinenumberEnd: 1854
    functionName: fu_util_release_flag_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    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:1862,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1862,1
    - Dst: fwupd_report_get_vendor
      Src: /src/fwupd/src/fu-util-common.c:1862,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1863,1
    - Dst: fwupd_codec_string_append_time
      Src: /src/fwupd/src/fu-util-common.c:1865,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1865,1
    - Dst: fwupd_report_get_created
      Src: /src/fwupd/src/fu-util-common.c:1865,1
    - Dst: fwupd_report_get_distro_id
      Src: /src/fwupd/src/fu-util-common.c:1866,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:1867,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:1867,1
    - Dst: fwupd_report_get_distro_id
      Src: /src/fwupd/src/fu-util-common.c:1867,1
    - Dst: fwupd_report_get_distro_version
      Src: /src/fwupd/src/fu-util-common.c:1868,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:1869,1
    - Dst: fwupd_report_get_distro_version
      Src: /src/fwupd/src/fu-util-common.c:1871,1
    - Dst: fwupd_report_get_distro_variant
      Src: /src/fwupd/src/fu-util-common.c:1872,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:1873,1
    - Dst: fwupd_report_get_distro_variant
      Src: /src/fwupd/src/fu-util-common.c:1875,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1877,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1877,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1879,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1882,1
    - Dst: fwupd_report_get_version_old
      Src: /src/fwupd/src/fu-util-common.c:1883,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1884,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1888,1
    - Dst: fwupd_report_get_metadata_item
      Src: /src/fwupd/src/fu-util-common.c:1889,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - report
    - idt
    - str
    argTypes:
    - FwupdReport*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1856
    functionDepth: 1
    functionLinenumber: 1856
    functionLinenumberEnd: 1890
    functionName: fu_util_report_add_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - fwupd_report_get_vendor
    - fwupd_report_get_distro_variant
    - fwupd_report_get_distro_id
    - fwupd_report_get_distro_version
    - fwupd_report_get_created
    - fwupd_codec_string_append
    - _
    - g_strdup_printf
    - fwupd_report_get_version_old
    - fwupd_report_get_metadata_item
    - g_string_new
    - g_string_append_printf
    - g_autoptr
    - fwupd_codec_string_append_time
    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:1897,1
    - Dst: fwupd_release_get_issues
      Src: /src/fwupd/src/fu-util-common.c:1898,1
    - Dst: fwupd_release_get_tags
      Src: /src/fwupd/src/fu-util-common.c:1899,1
    - Dst: fwupd_release_get_reports
      Src: /src/fwupd/src/fu-util-common.c:1900,1
    - Dst: fwupd_release_get_flags
      Src: /src/fwupd/src/fu-util-common.c:1901,1
    - Dst: fu_util_release_get_name
      Src: /src/fwupd/src/fu-util-common.c:1903,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:1904,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:1904,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-util-common.c:1906,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/src/fu-util-common.c:1906,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1908,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1911,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1911,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util-common.c:1911,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1913,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1916,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-util-common.c:1917,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1918,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1921,1
    - Dst: fwupd_release_get_id
      Src: /src/fwupd/src/fu-util-common.c:1922,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1923,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1926,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-util-common.c:1927,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1928,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1931,1
    - Dst: fwupd_release_get_summary
      Src: /src/fwupd/src/fu-util-common.c:1932,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_name_variant_suffix
      Src: /src/fwupd/src/fu-util-common.c:1937,1
    - Dst: fwupd_release_get_license
      Src: /src/fwupd/src/fu-util-common.c:1938,1
    - Dst: fu_util_license_to_string
      Src: /src/fwupd/src/fu-util-common.c:1940,1
    - Dst: fwupd_release_get_license
      Src: /src/fwupd/src/fu-util-common.c:1940,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1942,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1942,1
    - Dst: fwupd_codec_string_append_size
      Src: /src/fwupd/src/fu-util-common.c:1945,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1945,1
    - Dst: fwupd_release_get_size
      Src: /src/fwupd/src/fu-util-common.c:1945,1
    - Dst: fwupd_codec_string_append_time
      Src: /src/fwupd/src/fu-util-common.c:1947,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1947,1
    - Dst: fwupd_release_get_created
      Src: /src/fwupd/src/fu-util-common.c:1947,1
    - Dst: fwupd_release_get_urgency
      Src: /src/fwupd/src/fu-util-common.c:1948,1
    - Dst: fwupd_release_get_urgency
      Src: /src/fwupd/src/fu-util-common.c:1949,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1950,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1953,1
    - Dst: fu_util_release_urgency_to_string
      Src: /src/fwupd/src/fu-util-common.c:1954,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:1957,1
    - Dst: fu_util_report_add_string
      Src: /src/fwupd/src/fu-util-common.c:1958,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1960,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1963,1
    - Dst: fwupd_release_get_details_url
      Src: /src/fwupd/src/fu-util-common.c:1964,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:1968,1
    - Dst: fwupd_release_get_source_url
      Src: /src/fwupd/src/fu-util-common.c:1969,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1970,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1973,1
    - Dst: fwupd_release_get_sbom_url
      Src: /src/fwupd/src/fu-util-common.c:1974,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1975,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1978,1
    - Dst: fwupd_release_get_vendor
      Src: /src/fwupd/src/fu-util-common.c:1979,1
    - Dst: fwupd_release_get_install_duration
      Src: /src/fwupd/src/fu-util-common.c:1980,1
    - Dst: fu_util_time_to_str
      Src: /src/fwupd/src/fu-util-common.c:1982,1
    - Dst: fwupd_release_get_install_duration
      Src: /src/fwupd/src/fu-util-common.c:1982,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1984,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1984,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1986,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1989,1
    - Dst: fwupd_release_get_update_message
      Src: /src/fwupd/src/fu-util-common.c:1990,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:1991,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1994,1
    - Dst: fwupd_release_get_update_image
      Src: /src/fwupd/src/fu-util-common.c:1995,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:1998,1
    - Dst: fu_util_release_flag_to_string
      Src: /src/fwupd/src/fu-util-common.c:2003,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:2006,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2007,1
    - Dst: fu_util_get_release_description_with_fallback
      Src: /src/fwupd/src/fu-util-common.c:2011,1
    - Dst: fu_util_convert_description
      Src: /src/fwupd/src/fu-util-common.c:2014,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:2016,1
    - Dst: fwupd_release_get_description
      Src: /src/fwupd/src/fu-util-common.c:2016,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2018,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2018,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:2021,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2023,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util-common.c:2027,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2030,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-util-common.c:2034,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2035,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util-common.c:2039,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:2043,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/src/fu-util-common.c:2044,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2051,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2051,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:2054,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-common.c:2054,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 2
    argNames:
    - rel
    - idt
    argTypes:
    - FwupdRelease*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2055
      start: 1892
    functionDepth: 2
    functionLinenumber: 1892
    functionLinenumberEnd: 2055
    functionName: fu_util_release_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - fu_util_release_urgency_to_string
    - fu_strjoin
    - _
    - g_strdup_printf
    - fwupd_release_get_created
    - g_ptr_array_index
    - fwupd_release_get_description
    - fwupd_release_get_remote_id
    - fwupd_release_get_size
    - FWUPD_IS_RELEASE
    - fwupd_release_get_update_image
    - fwupd_release_get_name_variant_suffix
    - g_string_new
    - fu_util_license_to_string
    - fwupd_release_get_details_url
    - fwupd_release_get_source_url
    - fwupd_checksum_guess_kind
    - fwupd_release_get_issues
    - fwupd_release_get_license
    - fwupd_codec_string_append_time
    - fwupd_release_get_install_duration
    - fu_util_report_add_string
    - fwupd_release_get_summary
    - fwupd_codec_string_append
    - fwupd_release_get_vendor
    - fu_util_release_get_name
    - fwupd_release_get_checksums
    - fwupd_release_get_update_message
    - fu_util_convert_description
    - fu_util_get_release_description_with_fallback
    - fwupd_release_get_urgency
    - fu_util_time_to_str
    - fwupd_release_get_branch
    - fu_util_release_flag_to_string
    - g_return_val_if_fail
    - g_strdup
    - fwupd_release_get_tags
    - fwupd_codec_string_append_size
    - fwupd_release_get_flags
    - fwupd_release_get_reports
    - g_steal_pointer
    - g_string_free
    - fwupd_release_get_id
    - ngettext
    - g_autoptr
    - fwupd_release_get_version
    - fwupd_release_get_sbom_url
    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:2060,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:2063,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:2063,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-util-common.c:2065,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/src/fu-util-common.c:2065,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2067,1
    - Dst: fwupd_remote_get_title
      Src: /src/fwupd/src/fu-util-common.c:2067,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2070,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2070,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util-common.c:2070,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2073,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2073,1
    - Dst: fwupd_remote_kind_to_string
      Src: /src/fwupd/src/fu-util-common.c:2073,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2075,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2079,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2080,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-util-common.c:2081,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2082,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2086,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2087,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2089,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2093,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2094,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2099,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2099,1
    - Dst: fwupd_remote_get_checksum
      Src: /src/fwupd/src/fu-util-common.c:2099,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/src/fu-util-common.c:2102,1
    - Dst: fu_util_time_to_str
      Src: /src/fwupd/src/fu-util-common.c:2103,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/src/fu-util-common.c:2103,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2105,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2105,1
    - Dst: fwupd_remote_get_refresh_interval
      Src: /src/fwupd/src/fu-util-common.c:2107,1
    - Dst: fu_util_time_to_str
      Src: /src/fwupd/src/fu-util-common.c:2109,1
    - Dst: fwupd_remote_get_refresh_interval
      Src: /src/fwupd/src/fu-util-common.c:2109,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2111,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2111,1
    - Dst: fwupd_remote_get_priority
      Src: /src/fwupd/src/fu-util-common.c:2113,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:2116,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2118,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2118,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2120,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2124,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2125,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2127,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2127,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/src/fu-util-common.c:2127,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/src/fu-util-common.c:2128,1
    - Dst: g_strnfill
      Src: /src/fwupd/src/fu-util-common.c:2130,1
    - Dst: fu_strwidth
      Src: /src/fwupd/src/fu-util-common.c:2130,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2132,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2132,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2134,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2137,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/src/fu-util-common.c:2138,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2139,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2142,1
    - Dst: fwupd_remote_get_filename_cache_sig
      Src: /src/fwupd/src/fu-util-common.c:2143,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2144,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2147,1
    - Dst: fwupd_remote_get_filename_source
      Src: /src/fwupd/src/fu-util-common.c:2148,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2149,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2152,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-util-common.c:2153,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2154,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2157,1
    - Dst: fwupd_remote_get_metadata_uri_sig
      Src: /src/fwupd/src/fu-util-common.c:2158,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2159,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2162,1
    - Dst: fwupd_remote_get_firmware_base_uri
      Src: /src/fwupd/src/fu-util-common.c:2163,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-util-common.c:2164,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2167,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2167,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/src/fu-util-common.c:2168,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2172,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2173,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:2177,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-common.c:2177,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 2
    argNames:
    - remote
    - idt
    argTypes:
    - FwupdRemote*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2178
      start: 2057
    functionDepth: 1
    functionLinenumber: 2057
    functionLinenumberEnd: 2178
    functionName: fu_util_remote_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - fwupd_remote_get_checksum
    - fwupd_remote_get_kind
    - fwupd_remote_get_title
    - fwupd_remote_get_filename_cache
    - fwupd_remote_get_filename_source
    - _
    - g_strdup_printf
    - fwupd_remote_get_metadata_uri_sig
    - fwupd_remote_get_report_uri
    - fwupd_remote_get_password
    - g_string_new
    - fwupd_remote_get_firmware_base_uri
    - fwupd_remote_get_refresh_interval
    - fwupd_remote_get_id
    - fwupd_remote_has_flag
    - FWUPD_IS_REMOTE
    - fwupd_remote_get_username
    - fwupd_codec_string_append
    - fwupd_remote_get_filename_cache_sig
    - fu_strwidth
    - fu_util_time_to_str
    - fwupd_remote_kind_to_string
    - g_return_val_if_fail
    - g_strnfill
    - g_steal_pointer
    - fwupd_remote_get_metadata_uri
    - g_string_free
    - fwupd_remote_get_age
    - g_autoptr
    - fwupd_remote_get_priority
    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:2183,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2184,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/src/fu-util-common.c:2184,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2186,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2189,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/src/fu-util-common.c:2189,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2191,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2194,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/src/fu-util-common.c:2194,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2196,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2199,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/src/fu-util-common.c:2199,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2201,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2203,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/src/fu-util-common.c:2203,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2205,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2208,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/src/fu-util-common.c:2208,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2210,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2212,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/src/fu-util-common.c:2212,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2214,1
    - Dst: fwupd_request_get_message
      Src: /src/fwupd/src/fu-util-common.c:2218,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - req
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2180
    functionDepth: 1
    functionLinenumber: 2180
    functionLinenumberEnd: 2219
    functionName: fu_util_request_get_message
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_strcmp0
    - fwupd_request_has_flag
    - _
    - fwupd_request_get_id
    - fwupd_request_get_message
    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:2226,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2230,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2234,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2238,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2242,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2246,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2250,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2254,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2258,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2262,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2266,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2270,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2274,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2278,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 1
    argNames:
    - result
    argTypes:
    - FwupdSecurityAttrResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2281
      start: 2221
    functionDepth: 0
    functionLinenumber: 2221
    functionLinenumberEnd: 2281
    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:2289,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2289,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2294,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2296,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - attr
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2301
      start: 2283
    functionDepth: 1
    functionLinenumber: 2283
    functionLinenumberEnd: 2301
    functionName: fu_util_security_attr_get_result
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_get_result
    - fwupd_security_attr_has_flag
    - _
    - fu_util_security_attr_result_to_string
    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:2311,1
    - Dst: dgettext
      Src: /src/fwupd/src/fu-util-common.c:2315,1
    - Dst: fwupd_security_attr_get_name
      Src: /src/fwupd/src/fu-util-common.c:2315,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-util-common.c:2317,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2318,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2319,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2320,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2321,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2323,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2325,1
    - Dst: fu_strwidth
      Src: /src/fwupd/src/fu-util-common.c:2326,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2327,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2328,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:2330,1
    - Dst: fu_util_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2330,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2332,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2333,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:2335,1
    - Dst: fu_util_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2335,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2337,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:2340,1
    - Dst: fu_util_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2340,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2342,1
    - Dst: fwupd_security_attr_get_url
      Src: /src/fwupd/src/fu-util-common.c:2345,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2346,1
    - Dst: fwupd_security_attr_get_url
      Src: /src/fwupd/src/fu-util-common.c:2346,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2348,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2350,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2350,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2352,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - attr
    - str
    - flags
    argTypes:
    - FwupdSecurityAttr*
    - GString*
    - FuSecurityAttrToStringFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2353
      start: 2303
    functionDepth: 2
    functionLinenumber: 2303
    functionLinenumberEnd: 2353
    functionName: fu_util_security_attr_append_str
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_has_flag
    - g_string_append
    - fu_util_security_attr_get_result
    - fwupd_security_attr_get_appstream_id
    - dgettext
    - fu_console_color_format
    - _
    - fwupd_security_attr_get_name
    - g_string_append_printf
    - fu_strwidth
    - fwupd_security_attr_get_url
    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:2368,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2373,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2392,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2397,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2403,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2408,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2414,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2419,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2425,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2430,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2436,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2441,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2446,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2452,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2457,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2463,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2468,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2473,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2478,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2483,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2488,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2493,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-util-common.c:2497,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2499,1
    - Dst: fwupd_security_attr_get_result_fallback
      Src: /src/fwupd/src/fu-util-common.c:2500,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2505,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-util-common.c:2505,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2507,1
    - Dst: fwupd_security_attr_get_result_fallback
      Src: /src/fwupd/src/fu-util-common.c:2508,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:2509,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2513,1
    - Dst: dgettext
      Src: /src/fwupd/src/fu-util-common.c:2514,1
    - Dst: fwupd_security_attr_get_name
      Src: /src/fwupd/src/fu-util-common.c:2514,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:2515,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2518,1
    - Dst: fu_util_security_attr_result_to_string
      Src: /src/fwupd/src/fu-util-common.c:2520,1
    - Dst: fwupd_security_attr_get_result_fallback
      Src: /src/fwupd/src/fu-util-common.c:2521,1
    - Dst: fwupd_security_attr_get_result_fallback
      Src: /src/fwupd/src/fu-util-common.c:2525,1
    - Dst: dgettext
      Src: /src/fwupd/src/fu-util-common.c:2526,1
    - Dst: fwupd_security_attr_get_name
      Src: /src/fwupd/src/fu-util-common.c:2526,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:2527,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2530,1
    - Dst: fu_util_security_attr_result_to_string
      Src: /src/fwupd/src/fu-util-common.c:2532,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2532,1
    - Dst: dgettext
      Src: /src/fwupd/src/fu-util-common.c:2536,1
    - Dst: fwupd_security_attr_get_name
      Src: /src/fwupd/src/fu-util-common.c:2536,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:2537,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2540,1
    - Dst: fu_util_security_attr_result_to_string
      Src: /src/fwupd/src/fu-util-common.c:2542,1
    - Dst: fwupd_security_attr_get_result_fallback
      Src: /src/fwupd/src/fu-util-common.c:2542,1
    - Dst: fu_util_security_attr_result_to_string
      Src: /src/fwupd/src/fu-util-common.c:2543,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2543,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - attr
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2355
    functionDepth: 1
    functionLinenumber: 2355
    functionLinenumberEnd: 2544
    functionName: fu_util_security_event_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_get_result_fallback
    - fwupd_security_attr_get_result
    - g_strcmp0
    - g_strdup
    - fwupd_security_attr_get_appstream_id
    - dgettext
    - _
    - g_strdup_printf
    - fwupd_security_attr_get_name
    - fu_util_security_attr_result_to_string
    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:2549,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:2549,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/src/fu-util-common.c:2552,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:2554,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-util-common.c:2555,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util-common.c:2555,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-util-common.c:2556,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:2561,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:2562,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2568,1
    - Dst: fwupd_security_attr_get_result_fallback
      Src: /src/fwupd/src/fu-util-common.c:2569,1
    - Dst: g_date_time_new_from_unix_utc
      Src: /src/fwupd/src/fu-util-common.c:2573,1
    - Dst: fwupd_security_attr_get_created
      Src: /src/fwupd/src/fu-util-common.c:2573,1
    - Dst: g_date_time_format
      Src: /src/fwupd/src/fu-util-common.c:2574,1
    - Dst: fu_util_security_event_to_string
      Src: /src/fwupd/src/fu-util-common.c:2575,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2578,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:2579,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util-common.c:2581,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2585,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2585,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2587,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:2595,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-common.c:2595,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - events
    - strflags
    argTypes:
    - GPtrArray*
    - FuSecurityAttrToStringFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2596
      start: 2546
    functionDepth: 2
    functionLinenumber: 2546
    functionLinenumberEnd: 2596
    functionName: fu_util_security_events_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - fwupd_codec_to_string
    - fwupd_security_attr_get_result
    - fwupd_security_attr_get_created
    - FWUPD_CODEC
    - fwupd_security_attr_has_flag
    - fu_util_security_event_to_string
    - _
    - g_date_time_new_from_unix_utc
    - g_ptr_array_index
    - g_log_get_debug_enabled
    - g_string_new
    - g_info
    - fu_console_color_format
    - fwupd_security_attr_get_result_fallback
    - g_steal_pointer
    - g_string_free
    - g_date_time_format
    - g_string_append_printf
    - g_autoptr
    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:2601,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:2601,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:2604,1
    - Dst: fwupd_device_get_issues
      Src: /src/fwupd/src/fu-util-common.c:2605,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2609,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2613,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2615,1
    - Dst: fwupd_device_get_vendor
      Src: /src/fwupd/src/fu-util-common.c:2617,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util-common.c:2618,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:2620,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2621,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:2630,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-common.c:2630,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - devices
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2631
      start: 2598
    functionDepth: 1
    functionLinenumber: 2598
    functionLinenumberEnd: 2631
    functionName: fu_util_security_issues_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - fwupd_device_get_name
    - fwupd_device_get_vendor
    - g_steal_pointer
    - g_string_free
    - _
    - fwupd_device_get_issues
    - g_string_new
    - g_string_append_printf
    - g_autoptr
    - g_ptr_array_index
    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:2641,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:2649,1
    - Dst: fwupd_security_attr_get_level
      Src: /src/fwupd/src/fu-util-common.c:2650,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2653,1
    - Dst: fu_util_security_attr_append_str
      Src: /src/fwupd/src/fu-util-common.c:2656,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2659,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2661,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2665,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-util-common.c:2665,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/src/fu-util-common.c:2667,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:2673,1
    - Dst: fwupd_security_attr_get_flags
      Src: /src/fwupd/src/fu-util-common.c:2674,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2678,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2681,1
    - Dst: fwupd_security_attr_flag_to_suffix
      Src: /src/fwupd/src/fu-util-common.c:2682,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util-common.c:2684,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2685,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2687,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2690,1
    - Dst: fu_util_security_attr_append_str
      Src: /src/fwupd/src/fu-util-common.c:2693,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2699,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2703,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2707,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2711,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2716,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2720,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:2724,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 41
    argCount: 2
    argNames:
    - attrs
    - strflags
    argTypes:
    - GPtrArray*
    - FuSecurityAttrToStringFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2725
      start: 2633
    functionDepth: 3
    functionLinenumber: 2633
    functionLinenumberEnd: 2725
    functionName: fu_util_security_attrs_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - fwupd_security_attr_get_result
    - fwupd_security_attr_has_flag
    - g_strcmp0
    - fwupd_security_attr_get_appstream_id
    - fwupd_security_attr_get_flags
    - g_string_free
    - _
    - g_string_new
    - fu_util_security_attr_append_str
    - g_string_append_printf
    - fwupd_security_attr_flag_to_suffix
    - fwupd_security_attr_get_level
    - g_ptr_array_index
    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:2733,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2734,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2735,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2736,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2738,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2739,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2740,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2741,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2727
    functionDepth: 1
    functionLinenumber: 2727
    functionLinenumberEnd: 2745
    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:2757,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:2757,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util-common.c:2760,1
    - Dst: fwupd_device_get_vendor
      Src: /src/fwupd/src/fu-util-common.c:2760,1
    - Dst: fwupd_release_get_vendor
      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:2764,1
    - Dst: fwupd_release_get_vendor
      Src: /src/fwupd/src/fu-util-common.c:2766,1
    - Dst: fwupd_device_get_vendor
      Src: /src/fwupd/src/fu-util-common.c:2767,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2768,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2769,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2771,1
    - Dst: fwupd_device_get_vendor
      Src: /src/fwupd/src/fu-util-common.c:2774,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2775,1
    - Dst: fwupd_release_get_description
      Src: /src/fwupd/src/fu-util-common.c:2779,1
    - Dst: fu_util_convert_description
      Src: /src/fwupd/src/fu-util-common.c:2782,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2785,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util-common.c:2789,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2789,1
    - Dst: fu_util_branch_for_display
      Src: /src/fwupd/src/fu-util-common.c:2790,1
    - Dst: fwupd_device_get_branch
      Src: /src/fwupd/src/fu-util-common.c:2790,1
    - Dst: fu_util_branch_for_display
      Src: /src/fwupd/src/fu-util-common.c:2791,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-util-common.c:2791,1
    - Dst: fu_console_box
      Src: /src/fwupd/src/fu-util-common.c:2792,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util-common.c:2794,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2798,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util-common.c:2800,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: 2808
      start: 2747
    functionDepth: 2
    functionLinenumber: 2747
    functionLinenumberEnd: 2808
    functionName: fu_util_switch_branch_warning
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - g_strcmp0
    - g_string_append
    - fwupd_release_get_description
    - fwupd_device_get_branch
    - g_set_error_literal
    - fu_console_box
    - fwupd_release_get_vendor
    - _
    - g_strdup_printf
    - g_string_new
    - g_string_append_printf
    - fu_util_convert_description
    - fu_util_branch_for_display
    - g_autoptr
    - fwupd_release_get_branch
    - fwupd_device_get_vendor
    - fu_console_input_bool
    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:2814,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:2814,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util-common.c:2816,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2819,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2822,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2823,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2824,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2827,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util-common.c:2828,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:2829,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2831,1
    - Dst: fu_console_box
      Src: /src/fwupd/src/fu-util-common.c:2834,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2834,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util-common.c:2837,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2837,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util-common.c:2838,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - console
    - dev
    - error
    argTypes:
    - FuConsole*
    - FwupdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2810
    functionDepth: 1
    functionLinenumber: 2810
    functionLinenumberEnd: 2845
    functionName: fu_util_prompt_warning_fde
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 2
    functionsReached:
    - g_string_append
    - g_set_error_literal
    - fu_console_box
    - _
    - g_string_new
    - g_string_append_printf
    - fwupd_device_has_flag
    - g_autoptr
    - fu_console_input_bool
    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:2851,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-util-common.c:2854,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - console
    argTypes:
    - FuConsole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2847
    functionDepth: 1
    functionLinenumber: 2847
    functionLinenumberEnd: 2860
    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:2872,1
    - Dst: fu_util_convert_description
      Src: /src/fwupd/src/fu-util-common.c:2875,1
    - Dst: fu_console_box
      Src: /src/fwupd/src/fu-util-common.c:2880,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2880,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util-common.c:2882,1
    - Dst: _
      Src: /src/fwupd/src/fu-util-common.c:2886,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util-common.c:2887,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: 2895
      start: 2862
    functionDepth: 2
    functionLinenumber: 2862
    functionLinenumberEnd: 2895
    functionName: fu_util_modify_remote_warning
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - fwupd_remote_get_agreement
    - g_set_error_literal
    - fu_console_box
    - _
    - fu_util_convert_description
    - fu_console_input_bool
    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:2902,1
    - Dst: curl_url
      Src: /src/fwupd/src/fu-util-common.c:2902,1
    - Dst: curl_url_set
      Src: /src/fwupd/src/fu-util-common.c:2903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - perhaps_url
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2904
      start: 2899
    functionDepth: 0
    functionLinenumber: 2899
    functionLinenumberEnd: 2904
    functionName: fu_util_is_url
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 2
    functionsReached:
    - curl_url_set
    - g_autoptr
    - curl_url
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_is_url(const gchar *perhaps_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:2909,1
    - Dst: fwupd_json_object_to_string
      Src: /src/fwupd/src/fu-util-common.c:2910,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util-common.c:2911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - console
    - json_obj
    argTypes:
    - FuConsole*
    - FwupdJsonObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2912
      start: 2906
    functionDepth: 1
    functionLinenumber: 2906
    functionLinenumberEnd: 2912
    functionName: fu_util_print_json_object
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 11
    functionsReached:
    - fu_console_print_literal
    - g_autoptr
    - fwupd_json_object_to_string
    linkageType: ''
    returnType: void
    signature: void fu_util_print_json_object(FuConsole *console, FwupdJsonObject
      *json_obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:2917,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util-common.c:2917,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:2918,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util-common.c:2918,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/src/fu-util-common.c:2919,1
    - Dst: g_quark_to_string
      Src: /src/fwupd/src/fu-util-common.c:2919,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/src/fu-util-common.c:2920,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/src/fu-util-common.c:2921,1
    - Dst: fwupd_json_object_add_object
      Src: /src/fwupd/src/fu-util-common.c:2922,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-util-common.c:2923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - console
    - error
    argTypes:
    - FuConsole*
    - GError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2924
      start: 2914
    functionDepth: 2
    functionLinenumber: 2914
    functionLinenumberEnd: 2924
    functionName: fu_util_print_error_as_json
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - fu_util_print_json_object
    - g_quark_to_string
    - fwupd_json_object_new
    - fwupd_json_object_add_integer
    - fwupd_json_object_add_object
    - g_autoptr
    - fwupd_json_object_add_string
    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: 2940
      start: 2932
    functionDepth: 0
    functionLinenumber: 2932
    functionLinenumberEnd: 2940
    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:2945,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-util-common.c:2946,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-util-common.c:2947,1
    - Dst: g_strndup
      Src: /src/fwupd/src/fu-util-common.c:2950,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-util-common.c:2952,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-util-common.c:2953,1
    - Dst: g_strndup
      Src: /src/fwupd/src/fu-util-common.c:2956,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util-common.c:2958,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - str
    - dependency_kind
    argTypes:
    - gchar*
    - FuUtilDependencyKind*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2959
      start: 2942
    functionDepth: 0
    functionLinenumber: 2942
    functionLinenumberEnd: 2959
    functionName: fu_util_parse_project_dependency
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strndup
    - g_strdup
    - strlen
    - g_str_has_prefix
    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:2964,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-util-common.c:2965,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-util-common.c:2967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - key
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2970
      start: 2961
    functionDepth: 0
    functionLinenumber: 2961
    functionLinenumberEnd: 2970
    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:2978,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util-common.c:2978,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:2979,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/src/fu-util-common.c:2979,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-util-common.c:2981,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-util-common.c:2982,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:2985,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util-common.c:2985,1
    - Dst: fu_util_print_version_key_valid
      Src: /src/fwupd/src/fu-util-common.c:2988,1
    - Dst: fu_util_parse_project_dependency
      Src: /src/fwupd/src/fu-util-common.c:2990,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/src/fu-util-common.c:2992,1
    - Dst: fu_util_dependency_kind_to_string
      Src: /src/fwupd/src/fu-util-common.c:2995,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/src/fu-util-common.c:2997,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/src/fu-util-common.c:2998,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/src/fu-util-common.c:2999,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/src/fu-util-common.c:3001,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-util-common.c:3002,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - console
    - metadata
    argTypes:
    - FuConsole*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3003
      start: 2972
    functionDepth: 2
    functionLinenumber: 2972
    functionLinenumberEnd: 3003
    functionName: fu_util_project_versions_as_json
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - fwupd_json_object_add_array
    - fu_util_print_json_object
    - fu_util_parse_project_dependency
    - fwupd_json_object_new
    - fu_util_dependency_kind_to_string
    - fwupd_json_array_new
    - fu_util_print_version_key_valid
    - fwupd_json_array_add_object
    - g_hash_table_iter_init
    - g_autoptr
    - g_hash_table_iter_next
    - fwupd_json_object_add_string
    linkageType: ''
    returnType: void
    signature: void fu_util_project_versions_as_json(FuConsole *console, GHashTable
      *metadata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util-common.c:3011,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util-common.c:3011,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-util-common.c:3013,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-util-common.c:3014,1
    - Dst: fu_util_print_version_key_valid
      Src: /src/fwupd/src/fu-util-common.c:3019,1
    - Dst: fu_util_parse_project_dependency
      Src: /src/fwupd/src/fu-util-common.c:3021,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util-common.c:3022,1
    - Dst: fu_util_dependency_kind_to_string
      Src: /src/fwupd/src/fu-util-common.c:3024,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-util-common.c:3028,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util-common.c:3028,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - metadata
    argTypes:
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 3005
    functionDepth: 1
    functionLinenumber: 3005
    functionLinenumberEnd: 3029
    functionName: fu_util_project_versions_to_string
    functionSourceFile: /src/fwupd/src/fu-util-common.c
    functionUses: 1
    functionsReached:
    - fu_util_parse_project_dependency
    - g_steal_pointer
    - fu_util_dependency_kind_to_string
    - fu_util_print_version_key_valid
    - g_string_free
    - g_string_new
    - g_string_append_printf
    - g_hash_table_iter_init
    - g_autoptr
    - g_hash_table_iter_next
    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:3034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3038
      start: 3031
    functionDepth: 0
    functionLinenumber: 3031
    functionLinenumberEnd: 3038
    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_clear_handle_id
      Src: /src/fwupd/src/fu-idle.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIdle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: fu_idle_stop
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 0
    functionsReached:
    - g_clear_handle_id
    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:67,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-idle.c:69,1
    - Dst: fu_idle_inhibit_to_string
      Src: /src/fwupd/src/fu-idle.c:73,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-idle.c:74,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-idle.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIdle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 78
    functionName: fu_idle_emit_inhibit_changed
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 0
    functionsReached:
    - fu_idle_reset
    - g_debug
    - fu_idle_inhibit_to_string
    - g_signal_emit
    - g_ptr_array_index
    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:83,1
    - Dst: FU_IS_IDLE
      Src: /src/fwupd/src/fu-idle.c:83,1
    - Dst: fu_idle_stop
      Src: /src/fwupd/src/fu-idle.c:84,1
    - Dst: fu_idle_has_inhibit
      Src: /src/fwupd/src/fu-idle.c:85,1
    - Dst: fu_idle_start
      Src: /src/fwupd/src/fu-idle.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIdle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: fu_idle_reset
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 3
    functionsReached:
    - FU_IS_IDLE
    - fu_idle_has_inhibit
    - g_return_if_fail
    - fu_idle_start
    - 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:92,1
    - Dst: FU_IS_IDLE
      Src: /src/fwupd/src/fu-idle.c:92,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-idle.c:93,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-idle.c:96,1
    - Dst: fu_idle_inhibit_to_string
      Src: /src/fwupd/src/fu-idle.c:98,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-idle.c:99,1
    - Dst: g_ptr_array_remove_index
      Src: /src/fwupd/src/fu-idle.c:100,1
    - Dst: fu_idle_emit_inhibit_changed
      Src: /src/fwupd/src/fu-idle.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - token
    argTypes:
    - FuIdle*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 105
    functionName: fu_idle_uninhibit
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 2
    functionsReached:
    - g_debug
    - FU_IS_IDLE
    - g_ptr_array_remove_index
    - g_return_if_fail
    - fu_idle_inhibit_to_string
    - fu_idle_emit_inhibit_changed
    - g_ptr_array_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:111,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-idle.c:113,1
    - Dst: FU_IS_IDLE
      Src: /src/fwupd/src/fu-idle.c:113,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-idle.c:114,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-idle.c:116,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-idle.c:117,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-idle.c:119,1
    - Dst: g_random_int_range
      Src: /src/fwupd/src/fu-idle.c:120,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-idle.c:121,1
    - Dst: fu_idle_emit_inhibit_changed
      Src: /src/fwupd/src/fu-idle.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - self
    - inhibit
    - reason
    argTypes:
    - FuIdle*
    - FuIdleInhibit
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 125
    functionName: fu_idle_inhibit
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_new0
    - g_debug
    - FU_IS_IDLE
    - g_ptr_array_add
    - fu_idle_inhibit_to_string
    - g_random_int_range
    - fu_idle_emit_inhibit_changed
    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:130,1
    - Dst: FU_IS_IDLE
      Src: /src/fwupd/src/fu-idle.c:130,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-idle.c:131,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-idle.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - inhibit
    argTypes:
    - FuIdle*
    - FuIdleInhibit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 139
    functionName: fu_idle_has_inhibit
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_IDLE
    - g_ptr_array_index
    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:144,1
    - Dst: FU_IS_IDLE
      Src: /src/fwupd/src/fu-idle.c:144,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-idle.c:145,1
    - Dst: fu_idle_reset
      Src: /src/fwupd/src/fu-idle.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - timeout
    argTypes:
    - FuIdle*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: fu_idle_set_timeout
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 2
    functionsReached:
    - FU_IS_IDLE
    - fu_idle_reset
    - g_return_if_fail
    - g_debug
    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:153,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-idle.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuIdleItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 155
    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:160,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-idle.c:161,1
    - Dst: fu_idle_inhibit
      Src: /src/fwupd/src/fu-idle.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - inhibit
    - reason
    argTypes:
    - FuIdle*
    - FuIdleInhibit
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 164
    functionName: fu_idle_locker_new
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 2
    functionsReached:
    - g_object_ref
    - fu_idle_inhibit
    - g_new0
    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:169,1
    - Dst: fu_idle_uninhibit
      Src: /src/fwupd/src/fu-idle.c:170,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-idle.c:171,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-idle.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - locker
    argTypes:
    - FuIdleLocker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: fu_idle_locker_free
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_return_if_fail
    - g_free
    - fu_idle_uninhibit
    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:178,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-idle.c:182,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-idle.c:183,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-idle.c:192,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-idle.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIdleClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 201
    functionName: fu_idle_class_init
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 0
    functionsReached:
    - G_TYPE_FROM_CLASS
    - g_signal_new
    - 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:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIdle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    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:212,1
    - Dst: fu_idle_stop
      Src: /src/fwupd/src/fu-idle.c:214,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-idle.c:215,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-idle.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 218
    functionName: fu_idle_finalize
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 0
    functionsReached:
    - FU_IDLE
    - fu_idle_stop
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    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:224,1
    - Dst: FU_IDLE
      Src: /src/fwupd/src/fu-idle.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: fu_idle_new
    functionSourceFile: /src/fwupd/src/fu-idle.c
    functionUses: 2
    functionsReached:
    - g_object_new
    - FU_IDLE
    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_flags_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:
    - fwupd_codec_string_append_hex
    - FU_ENGINE_REQUEST
    - fu_engine_request_flags_to_string
    - 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: 26
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ENGINE_REQUEST
    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:
    - g_return_val_if_fail
    - FU_IS_ENGINE_REQUEST
    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:
    - g_return_val_if_fail
    - FU_IS_ENGINE_REQUEST
    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*
    - FuEngineRequestFlags
    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, FuEngineRequestFlags
      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*
    - FuEngineRequestFlags
    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:
    - g_return_val_if_fail
    - FU_IS_ENGINE_REQUEST
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_request_has_flag(FuEngineRequest *self, FuEngineRequestFlags
      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: 6
    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:
    - FU_IS_ENGINE_REQUEST
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - g_strdelimit
    - 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:
    - g_return_val_if_fail
    - FU_IS_ENGINE_REQUEST
    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: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ENGINE_REQUEST
    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: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ENGINE_REQUEST
    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:
    - FU_ENGINE_REQUEST
    - g_free
    - 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: 46
    functionsReached:
    - g_strdup
    - g_object_new
    - FU_ENGINE_REQUEST
    linkageType: ''
    returnType: FuEngineRequest
    signature: 'FuEngineRequest *

      fu_engine_request_new(const gchar *sender)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-device-list.c:68,1
    - Dst: g_info
      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: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: fu_device_list_emit_device_added
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - fu_device_get_id_display
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_device_list_emit_device_added(FuDeviceList *self, FuDevice
      *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-device-list.c:76,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:77,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-device-list.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuDeviceList*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: fu_device_list_emit_device_removed
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - fu_device_get_id_display
    - g_info
    linkageType: ''
    returnType: void
    signature: void fu_device_list_emit_device_removed(FuDeviceList *self, FuDevice
      *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-device-list.c:84,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:85,1
    - Dst: g_signal_emit
      Src: /src/fwupd/src/fu-device-list.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuDeviceList*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: fu_device_list_emit_device_changed
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - fu_device_get_id_display
    - g_info
    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:92,1
    - Dst: g_rw_lock_reader_lock
      Src: /src/fwupd/src/fu-device-list.c:94,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:96,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-device-list.c:99,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:104,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-device-list.c:105,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:107,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:112,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-device-list.c:113,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:115,1
    - Dst: g_rw_lock_reader_unlock
      Src: /src/fwupd/src/fu-device-list.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 121
    functionName: fu_device_list_add_string
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_rw_lock_reader_lock
    - fu_device_get_id
    - fu_device_has_flag
    - g_rw_lock_reader_unlock
    - FU_DEVICE_LIST
    - g_string_append_printf
    - g_ptr_array_index
    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:128,1
    - Dst: g_rw_lock_reader_lock
      Src: /src/fwupd/src/fu-device-list.c:129,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:131,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/src/fu-device-list.c:132,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-device-list.c:133,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-device-list.c:133,1
    - Dst: g_rw_lock_reader_unlock
      Src: /src/fwupd/src/fu-device-list.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuDeviceList*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 137
    functionName: fu_device_list_get_children
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - fu_device_get_parent_internal
    - g_ptr_array_add
    - g_rw_lock_reader_lock
    - g_object_ref
    - g_rw_lock_reader_unlock
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    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:142,1
    - Dst: fu_device_set_order
      Src: /src/fwupd/src/fu-device-list.c:145,1
    - Dst: fu_device_list_get_children
      Src: /src/fwupd/src/fu-device-list.c:148,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:150,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list.c:151,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list.c:153,1
    - Dst: fu_device_list_depsolve_order_full
      Src: /src/fwupd/src/fu-device-list.c:155,1
    - Dst: fu_device_list_depsolve_order_full
      Src: /src/fwupd/src/fu-device-list.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - device
    - depth
    argTypes:
    - FuDeviceList*
    - FuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 160
    functionName: fu_device_list_depsolve_order_full
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 1
    functionsReached:
    - fu_device_set_order
    - fu_device_list_depsolve_order_full
    - fu_device_has_private_flag
    - fu_device_list_get_children
    - g_autoptr
    - g_ptr_array_index
    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:176,1
    - Dst: fu_device_get_root
      Src: /src/fwupd/src/fu-device-list.c:176,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list.c:177,1
    - Dst: fu_device_list_depsolve_order_full
      Src: /src/fwupd/src/fu-device-list.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuDeviceList*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 180
    functionName: fu_device_list_depsolve_order
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 5
    functionsReached:
    - fu_device_has_private_flag
    - g_autoptr
    - fu_device_list_depsolve_order_full
    - fu_device_get_root
    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:198,1
    - Dst: FU_IS_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:198,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-device-list.c:199,1
    - Dst: g_rw_lock_reader_lock
      Src: /src/fwupd/src/fu-device-list.c:201,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:203,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-device-list.c:204,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-device-list.c:204,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:207,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-device-list.c:210,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-device-list.c:210,1
    - Dst: g_rw_lock_reader_unlock
      Src: /src/fwupd/src/fu-device-list.c:212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDeviceList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 214
    functionName: fu_device_list_get_all
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_rw_lock_reader_lock
    - g_ptr_array_add
    - g_object_ref
    - g_rw_lock_reader_unlock
    - g_ptr_array_index
    - g_ptr_array_new_with_free_func
    - FU_IS_DEVICE_LIST
    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:232,1
    - Dst: FU_IS_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:232,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-device-list.c:233,1
    - Dst: g_rw_lock_reader_lock
      Src: /src/fwupd/src/fu-device-list.c:234,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:236,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/src/fu-device-list.c:237,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/src/fu-device-list.c:239,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-device-list.c:241,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-device-list.c:241,1
    - Dst: g_rw_lock_reader_unlock
      Src: /src/fwupd/src/fu-device-list.c:243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDeviceList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 245
    functionName: fu_device_list_get_active
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 14
    functionsReached:
    - g_return_val_if_fail
    - fu_device_has_inhibit
    - g_rw_lock_reader_lock
    - g_ptr_array_add
    - fu_device_has_private_flag_quark
    - g_object_ref
    - g_rw_lock_reader_unlock
    - g_ptr_array_index
    - g_ptr_array_new_with_free_func
    - FU_IS_DEVICE_LIST
    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:250,1
    - Dst: g_rw_lock_reader_locker_new
      Src: /src/fwupd/src/fu-device-list.c:250,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:251,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:253,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuDeviceList*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 263
    functionName: fu_device_list_find_by_device
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_autoptr
    - g_rw_lock_reader_locker_new
    - g_ptr_array_index
    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:268,1
    - Dst: g_rw_lock_reader_locker_new
      Src: /src/fwupd/src/fu-device-list.c:268,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:269,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:271,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-device-list.c:272,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:276,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-device-list.c:279,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuDeviceList*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 283
    functionName: fu_device_list_find_by_guid
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_device_has_guid
    - g_rw_lock_reader_locker_new
    - g_autoptr
    - g_ptr_array_index
    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:290,1
    - Dst: g_rw_lock_reader_locker_new
      Src: /src/fwupd/src/fu-device-list.c:293,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:294,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:296,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-device-list.c:299,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-device-list.c:299,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-device-list.c:300,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-device-list.c:300,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:304,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-device-list.c:307,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-device-list.c:307,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-device-list.c:308,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-device-list.c:308,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 3
    argNames:
    - self
    - physical_id
    - logical_id
    argTypes:
    - FuDeviceList*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 312
    functionName: fu_device_list_find_by_connection
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - fu_device_get_logical_id
    - g_rw_lock_reader_locker_new
    - fu_device_get_physical_id
    - g_autoptr
    - g_ptr_array_index
    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:319,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-device-list.c:319,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-device-list.c:321,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-device-list.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 324
    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:330,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-device-list.c:330,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:332,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-device-list.c:335,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-device-list.c:337,1
    - Dst: g_rw_lock_reader_lock
      Src: /src/fwupd/src/fu-device-list.c:344,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:346,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:347,1
    - Dst: fu_device_get_equivalent_id
      Src: /src/fwupd/src/fu-device-list.c:348,1
    - Dst: strncmp
      Src: /src/fwupd/src/fu-device-list.c:351,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-device-list.c:352,1
    - Dst: g_rw_lock_reader_unlock
      Src: /src/fwupd/src/fu-device-list.c:357,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-device-list.c:359,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-device-list.c:360,1
    - Dst: g_rw_lock_reader_lock
      Src: /src/fwupd/src/fu-device-list.c:364,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:366,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:370,1
    - Dst: fu_device_get_equivalent_id
      Src: /src/fwupd/src/fu-device-list.c:371,1
    - Dst: strncmp
      Src: /src/fwupd/src/fu-device-list.c:373,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-device-list.c:374,1
    - Dst: g_rw_lock_reader_unlock
      Src: /src/fwupd/src/fu-device-list.c:379,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-device-list.c:381,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-device-list.c:382,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-device-list.c:386,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuDeviceList*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 392
    functionName: fu_device_list_filter_by_id
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_ptr_array_sort
    - fu_device_get_equivalent_id
    - strncmp
    - g_set_error
    - g_ptr_array_new
    - g_steal_pointer
    - g_rw_lock_reader_lock
    - g_ptr_array_add
    - fu_device_get_id
    - strlen
    - g_rw_lock_reader_unlock
    - g_autoptr
    - g_ptr_array_index
    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:398,1
    - Dst: fu_device_list_filter_by_id
      Src: /src/fwupd/src/fu-device-list.c:400,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:405,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:407,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-device-list.c:408,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-device-list.c:409,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-device-list.c:410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuDeviceList*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 419
    functionName: fu_device_list_find_by_id
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_list_filter_by_id
    - fu_device_get_priority
    - g_autoptr
    - g_ptr_array_index
    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:435,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-device-list.c:440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuDeviceList*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 441
    functionName: fu_device_list_get_old
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 2
    functionsReached:
    - g_object_ref
    - fu_device_list_find_by_device
    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:446,1
    - Dst: g_rw_lock_reader_locker_new
      Src: /src/fwupd/src/fu-device-list.c:446,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:447,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:449,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:453,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-device-list.c:454,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/src/fu-device-list.c:455,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:463,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:469,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-device-list.c:470,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/src/fu-device-list.c:471,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 2
    argNames:
    - self
    - guids
    argTypes:
    - FuDeviceList*
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 479
    functionName: fu_device_list_get_by_guids_removed
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_device_has_instance_id
    - fu_device_has_guid
    - g_rw_lock_reader_locker_new
    - g_autoptr
    - g_ptr_array_index
    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:485,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list.c:491,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/src/fu-device-list.c:493,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:495,1
    - Dst: fu_device_list_find_by_id
      Src: /src/fwupd/src/fu-device-list.c:497,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:497,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:499,1
    - Dst: fu_device_get_id
      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:502,1
    - Dst: g_rw_lock_writer_lock
      Src: /src/fwupd/src/fu-device-list.c:503,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/src/fu-device-list.c:504,1
    - Dst: g_rw_lock_writer_unlock
      Src: /src/fwupd/src/fu-device-list.c:505,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:510,1
    - Dst: fu_device_list_emit_device_removed
      Src: /src/fwupd/src/fu-device-list.c:511,1
    - Dst: g_rw_lock_writer_lock
      Src: /src/fwupd/src/fu-device-list.c:512,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/src/fu-device-list.c:513,1
    - Dst: g_rw_lock_writer_unlock
      Src: /src/fwupd/src/fu-device-list.c:514,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 516
    functionName: fu_device_list_device_delayed_remove_cb
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_remove
    - g_info
    - fu_device_get_children
    - g_rw_lock_writer_unlock
    - fu_device_has_private_flag
    - fu_device_get_id
    - g_rw_lock_writer_lock
    - FU_DEVICE_LIST
    - fu_device_list_emit_device_removed
    - fu_device_list_find_by_id
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_list_device_delayed_remove_cb(gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/src/fu-device-list.c:521,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:524,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/src/fu-device-list.c:525,1
    - Dst: g_timeout_add
      Src: /src/fwupd/src/fu-device-list.c:527,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/src/fu-device-list.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuDeviceItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 530
    functionName: fu_device_list_remove_with_delay
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_timeout_add
    - fu_device_get_id_display
    - fu_device_get_remove_delay
    - g_info
    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:536,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list.c:538,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:539,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 542
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-device-list.c:565,1
    - Dst: FU_IS_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:565,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-device-list.c:566,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/src/fu-device-list.c:566,1
    - Dst: fu_device_list_find_by_id
      Src: /src/fwupd/src/fu-device-list.c:569,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:569,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:571,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:571,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-device-list.c:576,1
    - Dst: g_clear_handle_id
      Src: /src/fwupd/src/fu-device-list.c:579,1
    - Dst: fu_device_list_should_remove_with_delay
      Src: /src/fwupd/src/fu-device-list.c:582,1
    - Dst: fu_device_list_remove_with_delay
      Src: /src/fwupd/src/fu-device-list.c:583,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list.c:588,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/src/fu-device-list.c:590,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:592,1
    - Dst: fu_device_list_find_by_id
      Src: /src/fwupd/src/fu-device-list.c:594,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:594,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:596,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:596,1
    - Dst: fu_device_list_emit_device_removed
      Src: /src/fwupd/src/fu-device-list.c:599,1
    - Dst: g_rw_lock_writer_lock
      Src: /src/fwupd/src/fu-device-list.c:600,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/src/fu-device-list.c:601,1
    - Dst: g_rw_lock_writer_unlock
      Src: /src/fwupd/src/fu-device-list.c:602,1
    - Dst: fu_device_list_emit_device_removed
      Src: /src/fwupd/src/fu-device-list.c:607,1
    - Dst: g_rw_lock_writer_lock
      Src: /src/fwupd/src/fu-device-list.c:608,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/src/fu-device-list.c:609,1
    - Dst: g_rw_lock_writer_unlock
      Src: /src/fwupd/src/fu-device-list.c:610,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuDeviceList*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 560
    functionDepth: 3
    functionLinenumber: 560
    functionLinenumberEnd: 611
    functionName: fu_device_list_remove
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 10
    functionsReached:
    - fu_device_list_should_remove_with_delay
    - g_ptr_array_remove
    - g_info
    - fu_device_get_children
    - fu_device_list_remove_with_delay
    - FU_IS_DEVICE
    - fu_device_add_private_flag
    - g_return_if_fail
    - g_rw_lock_writer_unlock
    - fu_device_has_private_flag
    - fu_device_get_id
    - g_rw_lock_writer_lock
    - g_clear_handle_id
    - fu_device_list_emit_device_removed
    - g_ptr_array_index
    - fu_device_list_find_by_id
    - FU_IS_DEVICE_LIST
    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:624,1
    - Dst: FU_IS_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:624,1
    - Dst: g_rw_lock_writer_lock
      Src: /src/fwupd/src/fu-device-list.c:626,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-device-list.c:627,1
    - Dst: g_rw_lock_writer_unlock
      Src: /src/fwupd/src/fu-device-list.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDeviceList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 629
    functionName: fu_device_list_remove_all
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - g_ptr_array_set_size
    - g_rw_lock_writer_unlock
    - g_rw_lock_writer_lock
    - FU_IS_DEVICE_LIST
    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:634,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:636,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/src/fu-device-list.c:637,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/src/fu-device-list.c:638,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list.c:641,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:644,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/src/fu-device-list.c:645,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:649,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - self
    - device_new
    - device_old
    argTypes:
    - FuDeviceList*
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 655
    functionName: fu_device_list_add_missing_guids
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - fu_device_has_instance_id
    - g_info
    - fu_device_has_guid
    - fu_device_has_private_flag
    - fu_device_get_guids
    - fu_device_add_instance_id_full
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_device_list_add_missing_guids(FuDeviceList *self, FuDevice
      *device_new, FuDevice *device_old)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:661,1
    - Dst: g_critical
      Src: /src/fwupd/src/fu-device-list.c:663,1
    - Dst: g_rw_lock_writer_lock
      Src: /src/fwupd/src/fu-device-list.c:666,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/src/fu-device-list.c:667,1
    - Dst: g_rw_lock_writer_unlock
      Src: /src/fwupd/src/fu-device-list.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - data
    - where_the_object_was
    argTypes:
    - gpointer
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 669
    functionName: fu_device_list_item_finalized_cb
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_remove
    - g_critical
    - g_rw_lock_writer_unlock
    - g_rw_lock_writer_lock
    - FU_DEVICE_LIST
    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:674,1
    - Dst: fu_device_remove_children
      Src: /src/fwupd/src/fu-device-list.c:675,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-device-list.c:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - item
    - device
    argTypes:
    - FuDeviceItem*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 677
    functionName: fu_device_list_item_set_device_old
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - fu_device_set_parent
    - g_set_object
    - 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:684,1
    - Dst: G_OBJECT
      Src: /src/fwupd/src/fu-device-list.c:684,1
    - Dst: g_object_weak_ref
      Src: /src/fwupd/src/fu-device-list.c:687,1
    - Dst: G_OBJECT
      Src: /src/fwupd/src/fu-device-list.c:687,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-device-list.c:689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - item
    - device
    argTypes:
    - FuDeviceItem*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 690
    functionName: fu_device_list_item_set_device
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_object_weak_unref
    - g_object_weak_ref
    - G_OBJECT
    - g_set_object
    linkageType: ''
    returnType: void
    signature: void fu_device_list_item_set_device(FuDeviceItem *item, FuDevice *device)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_clear_handle_id
      Src: /src/fwupd/src/fu-device-list.c:698,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:701,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:702,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:702,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-device-list.c:703,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:706,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:707,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:708,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-device-list.c:709,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/src/fu-device-list.c:712,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-device-list.c:715,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-device-list.c:715,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-device-list.c:716,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - FuDeviceList*
    - FuDeviceItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 717
    functionName: fu_device_list_clear_wait_for_replug
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_to_string
    - FWUPD_CODEC
    - g_info
    - g_debug
    - fu_device_remove_flag
    - fu_device_get_id
    - fu_device_has_flag
    - g_clear_handle_id
    - fu_device_remove_private_flag
    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:723,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:724,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/src/fu-device-list.c:725,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/src/fu-device-list.c:726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 728
    functionName: _fu_device_incorporate_problem_update_in_progress
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - fu_device_add_problem
    - fu_device_remove_problem
    - fu_device_has_problem
    - g_info
    linkageType: ''
    returnType: void
    signature: void _fu_device_incorporate_problem_update_in_progress(FuDevice *self,
      FuDevice *donor)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_replace
      Src: /src/fwupd/src/fu-device-list.c:736,1
    - Dst: fu_device_list_add_missing_guids
      Src: /src/fwupd/src/fu-device-list.c:739,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/src/fu-device-list.c:742,1
    - Dst: _fu_device_incorporate_problem_update_in_progress
      Src: /src/fwupd/src/fu-device-list.c:749,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-device-list.c:752,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-device-list.c:752,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-device-list.c:753,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/src/fu-device-list.c:754,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:755,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-device-list.c:756,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-device-list.c:756,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-device-list.c:757,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/src/fu-device-list.c:758,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list.c:762,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:763,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-device-list.c:764,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/src/fu-device-list.c:765,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:766,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/src/fu-device-list.c:767,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/src/fu-device-list.c:767,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/src/fu-device-list.c:768,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/src/fu-device-list.c:769,1
    - Dst: fu_device_incorporate_flag
      Src: /src/fwupd/src/fu-device-list.c:773,1
    - Dst: fu_device_incorporate_flag
      Src: /src/fwupd/src/fu-device-list.c:776,1
    - Dst: fu_device_incorporate_flag
      Src: /src/fwupd/src/fu-device-list.c:777,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:780,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-device-list.c:781,1
    - Dst: fu_device_incorporate_flag
      Src: /src/fwupd/src/fu-device-list.c:784,1
    - Dst: fu_device_list_item_set_device_old
      Src: /src/fwupd/src/fu-device-list.c:787,1
    - Dst: fu_device_list_item_set_device
      Src: /src/fwupd/src/fu-device-list.c:788,1
    - Dst: fu_device_list_emit_device_changed
      Src: /src/fwupd/src/fu-device-list.c:789,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-device-list.c:792,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-device-list.c:792,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-device-list.c:793,1
    - Dst: fu_device_list_clear_wait_for_replug
      Src: /src/fwupd/src/fu-device-list.c:796,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - self
    - item
    - device
    argTypes:
    - FuDeviceList*
    - FuDeviceItem*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 730
    functionDepth: 2
    functionLinenumber: 730
    functionLinenumberEnd: 797
    functionName: fu_device_list_replace
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fwupd_codec_to_string
    - _fu_device_incorporate_problem_update_in_progress
    - FWUPD_CODEC
    - fu_device_set_version
    - fu_device_list_emit_device_changed
    - fu_device_list_clear_wait_for_replug
    - fu_device_incorporate
    - fu_device_incorporate_flag
    - fu_device_set_version_format
    - fu_device_get_version_raw
    - g_debug
    - fu_device_list_item_set_device_old
    - fu_device_has_flag
    - fu_device_get_version_format
    - g_info
    - fu_device_set_version_raw
    - fu_device_replace
    - fu_device_list_add_missing_guids
    - fu_device_has_private_flag
    - fu_device_get_version
    - fu_device_list_item_set_device
    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:826,1
    - Dst: FU_IS_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:826,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-device-list.c:827,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/src/fu-device-list.c:827,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/src/fu-device-list.c:830,1
    - Dst: fu_device_list_find_by_id
      Src: /src/fwupd/src/fu-device-list.c:833,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:833,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:837,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:837,1
    - Dst: fu_device_list_clear_wait_for_replug
      Src: /src/fwupd/src/fu-device-list.c:838,1
    - Dst: fu_device_list_emit_device_changed
      Src: /src/fwupd/src/fu-device-list.c:839,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:845,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:845,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/src/fu-device-list.c:846,1
    - Dst: _fu_device_incorporate_problem_update_in_progress
      Src: /src/fwupd/src/fu-device-list.c:848,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/src/fu-device-list.c:849,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-device-list.c:853,1
    - Dst: fu_device_list_item_set_device
      Src: /src/fwupd/src/fu-device-list.c:854,1
    - Dst: fu_device_list_clear_wait_for_replug
      Src: /src/fwupd/src/fu-device-list.c:855,1
    - Dst: fu_device_list_emit_device_changed
      Src: /src/fwupd/src/fu-device-list.c:856,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:861,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-device-list.c:862,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/src/fu-device-list.c:862,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-device-list.c:863,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-device-list.c:863,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-device-list.c:863,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:865,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:866,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-device-list.c:867,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-device-list.c:868,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-device-list.c:869,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:874,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:874,1
    - Dst: fu_device_list_replace
      Src: /src/fwupd/src/fu-device-list.c:875,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/src/fu-device-list.c:876,1
    - Dst: fu_device_list_find_by_connection
      Src: /src/fwupd/src/fu-device-list.c:881,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/src/fu-device-list.c:882,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/src/fu-device-list.c:883,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:885,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:887,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-device-list.c:888,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-device-list.c:889,1
    - Dst: fu_device_list_replace
      Src: /src/fwupd/src/fu-device-list.c:890,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/src/fu-device-list.c:891,1
    - Dst: fu_device_list_get_by_guids_removed
      Src: /src/fwupd/src/fu-device-list.c:896,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/src/fu-device-list.c:896,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list.c:898,1
    - Dst: fu_device_get_counterpart_guids
      Src: /src/fwupd/src/fu-device-list.c:898,1
    - Dst: fu_device_list_get_by_guids_removed
      Src: /src/fwupd/src/fu-device-list.c:899,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/src/fu-device-list.c:902,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:903,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:905,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-device-list.c:906,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/src/fu-device-list.c:907,1
    - Dst: fu_device_list_replace
      Src: /src/fwupd/src/fu-device-list.c:908,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/src/fu-device-list.c:909,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:912,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:914,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/src/fu-device-list.c:918,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-device-list.c:921,1
    - Dst: fu_device_list_item_set_device
      Src: /src/fwupd/src/fu-device-list.c:923,1
    - Dst: g_rw_lock_writer_lock
      Src: /src/fwupd/src/fu-device-list.c:924,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-device-list.c:925,1
    - Dst: g_rw_lock_writer_unlock
      Src: /src/fwupd/src/fu-device-list.c:926,1
    - Dst: fu_device_list_emit_device_added
      Src: /src/fwupd/src/fu-device-list.c:927,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 62
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuDeviceList*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 821
    functionDepth: 3
    functionLinenumber: 821
    functionLinenumberEnd: 928
    functionName: fu_device_list_add
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 16
    functionsReached:
    - fu_device_get_logical_id
    - _fu_device_incorporate_problem_update_in_progress
    - fu_device_list_emit_device_changed
    - fu_device_list_find_by_connection
    - fu_device_get_physical_id
    - fu_device_list_clear_wait_for_replug
    - fu_device_incorporate
    - fu_device_get_priority
    - fu_device_get_plugin
    - fu_device_list_emit_device_added
    - fu_device_get_guids
    - g_new0
    - fu_device_get_counterpart_guids
    - fu_device_has_flag
    - g_info
    - fu_device_convert_instance_ids
    - fu_device_remove_flag
    - fu_device_list_find_by_id
    - FU_IS_DEVICE_LIST
    - fu_device_remove_private_flag
    - g_strcmp0
    - fu_device_list_replace
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_set_object
    - fu_device_has_private_flag
    - g_ptr_array_add
    - fu_device_get_id
    - g_rw_lock_writer_unlock
    - g_rw_lock_writer_lock
    - fu_device_list_item_set_device
    - g_autoptr
    - fu_device_list_get_by_guids_removed
    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:946,1
    - Dst: FU_IS_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:946,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:947,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:948,1
    - Dst: fu_device_list_find_by_guid
      Src: /src/fwupd/src/fu-device-list.c:949,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-device-list.c:951,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-device-list.c:952,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - guid
    - error
    argTypes:
    - FuDeviceList*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 942
    functionDepth: 2
    functionLinenumber: 942
    functionLinenumberEnd: 954
    functionName: fu_device_list_get_by_guid
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fu_device_list_find_by_guid
    - g_set_error
    - g_object_ref
    - FU_IS_DEVICE_LIST
    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:959,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:961,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:962,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-device-list.c:963,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-device-list.c:964,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-device-list.c:964,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDeviceList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 967
    functionName: fu_device_list_get_wait_for_replug
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_add
    - g_object_ref
    - fu_device_has_flag
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    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:986,1
    - Dst: g_timer_new
      Src: /src/fwupd/src/fu-device-list.c:986,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list.c:987,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list.c:988,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:990,1
    - Dst: FU_IS_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:990,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:991,1
    - Dst: fu_device_list_get_wait_for_replug
      Src: /src/fwupd/src/fu-device-list.c:994,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:996,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:1002,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/src/fu-device-list.c:1003,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/src/fu-device-list.c:1004,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-device-list.c:1010,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:1014,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-device-list.c:1019,1
    - Dst: g_usleep
      Src: /src/fwupd/src/fu-device-list.c:1020,1
    - Dst: g_main_context_iteration
      Src: /src/fwupd/src/fu-device-list.c:1021,1
    - Dst: fu_device_list_get_wait_for_replug
      Src: /src/fwupd/src/fu-device-list.c:1024,1
    - Dst: g_timer_elapsed
      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_autoptr
      Src: /src/fwupd/src/fu-device-list.c:1032,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-device-list.c:1032,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-device-list.c:1037,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-device-list.c:1037,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-device-list.c:1038,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-device-list.c:1042,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/src/fu-device-list.c:1043,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-device-list.c:1044,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-device-list.c:1044,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/src/fu-device-list.c:1044,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-device-list.c:1046,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-device-list.c:1047,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-device-list.c:1056,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDeviceList*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 982
    functionDepth: 2
    functionLinenumber: 982
    functionLinenumberEnd: 1058
    functionName: fu_device_list_wait_for_replug
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 11
    functionsReached:
    - fwupd_codec_to_string
    - FWUPD_CODEC
    - fu_strjoin
    - g_timer_elapsed
    - g_ptr_array_index
    - g_debug
    - g_ptr_array_new_with_free_func
    - fu_device_list_get_wait_for_replug
    - g_usleep
    - g_info
    - fu_device_get_remove_delay
    - fu_device_remove_flag
    - g_warning
    - FU_IS_DEVICE_LIST
    - g_return_val_if_fail
    - g_strdup
    - g_set_error
    - g_ptr_array_add
    - fu_device_get_id
    - g_timer_new
    - g_autoptr
    - g_main_context_iteration
    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:1078,1
    - Dst: FU_IS_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:1078,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:1079,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-device-list.c:1080,1
    - Dst: fu_device_list_find_by_id
      Src: /src/fwupd/src/fu-device-list.c:1083,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-device-list.c:1088,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuDeviceList*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1073
    functionDepth: 3
    functionLinenumber: 1073
    functionLinenumberEnd: 1089
    functionName: fu_device_list_get_by_id
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 16
    functionsReached:
    - g_return_val_if_fail
    - g_object_ref
    - fu_device_list_find_by_id
    - FU_IS_DEVICE_LIST
    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:1095,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-device-list.c:1097,1
    - Dst: fu_device_list_item_set_device
      Src: /src/fwupd/src/fu-device-list.c:1098,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-device-list.c:1099,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuDeviceItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1100
    functionName: fu_device_list_item_free
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_free
    - g_source_remove
    - 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: 1106
      start: 1102
    functionDepth: 0
    functionLinenumber: 1102
    functionLinenumberEnd: 1106
    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:1111,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/src/fu-device-list.c:1114,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-device-list.c:1116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1117
    functionName: fu_device_list_dispose
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_set_size
    - FU_DEVICE_LIST
    - G_OBJECT_CLASS
    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:1122,1
    - Dst: g_quark_from_static_string
      Src: /src/fwupd/src/fu-device-list.c:1127,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-device-list.c:1136,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-device-list.c:1137,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-device-list.c:1153,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-device-list.c:1154,1
    - Dst: g_signal_new
      Src: /src/fwupd/src/fu-device-list.c:1170,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/src/fu-device-list.c:1171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDeviceListClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1180
    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_quark_from_static_string
    - 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:1185,1
    - Dst: g_rw_lock_init
      Src: /src/fwupd/src/fu-device-list.c:1186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDeviceList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1187
    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:1192,1
    - Dst: g_rw_lock_clear
      Src: /src/fwupd/src/fu-device-list.c:1194,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-device-list.c:1195,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-device-list.c:1197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1198
    functionName: fu_device_list_finalize
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 0
    functionsReached:
    - g_rw_lock_clear
    - FU_DEVICE_LIST
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    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:1213,1
    - Dst: FU_DEVICE_LIST
      Src: /src/fwupd/src/fu-device-list.c:1214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1209
    functionDepth: 0
    functionLinenumber: 1209
    functionLinenumberEnd: 1215
    functionName: fu_device_list_new
    functionSourceFile: /src/fwupd/src/fu-device-list.c
    functionUses: 15
    functionsReached:
    - g_object_new
    - FU_DEVICE_LIST
    linkageType: ''
    returnType: FuDeviceList
    signature: 'FuDeviceList *

      fu_device_list_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-plugin-list-test.c:17,1
    - Dst: fu_plugin_list_new
      Src: /src/fwupd/src/fu-plugin-list-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-plugin-list-test.c:18,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/src/fu-plugin-list-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-plugin-list-test.c:19,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/src/fu-plugin-list-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-plugin-list-test.c:20,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/src/fu-plugin-list-test.c:22,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/src/fu-plugin-list-test.c:23,1
    - Dst: fu_plugin_list_add
      Src: /src/fwupd/src/fu-plugin-list-test.c:26,1
    - Dst: fu_plugin_list_add
      Src: /src/fwupd/src/fu-plugin-list-test.c:27,1
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-plugin-list-test.c:28,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-plugin-list-test.c:29,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-plugin-list-test.c:32,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-plugin-list-test.c:33,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-plugin-list-test.c:34,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-plugin-list-test.c:35,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-plugin-list-test.c:35,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-plugin-list-test.c:38,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-plugin-list-test.c:39,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-plugin-list-test.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 12
    functionDepth: 2
    functionLinenumber: 12
    functionLinenumberEnd: 41
    functionName: fu_plugin_list_func
    functionSourceFile: /src/fwupd/src/fu-plugin-list-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_name
    - g_assert_cmpstr
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - g_assert_null
    - fu_plugin_set_name
    - fu_plugin_new
    - fu_plugin_list_add
    - fu_plugin_list_get_all
    - fu_plugin_list_find_by_name
    - g_autoptr
    - fu_plugin_list_new
    linkageType: ''
    returnType: void
    signature: void fu_plugin_list_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-plugin-list-test.c:49,1
    - Dst: fu_plugin_list_new
      Src: /src/fwupd/src/fu-plugin-list-test.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-plugin-list-test.c:50,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/src/fu-plugin-list-test.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-plugin-list-test.c:51,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/src/fu-plugin-list-test.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-plugin-list-test.c:52,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/src/fu-plugin-list-test.c:54,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/src/fu-plugin-list-test.c:55,1
    - Dst: fu_plugin_list_add
      Src: /src/fwupd/src/fu-plugin-list-test.c:58,1
    - Dst: fu_plugin_list_add
      Src: /src/fwupd/src/fu-plugin-list-test.c:59,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/src/fu-plugin-list-test.c:60,1
    - Dst: fu_plugin_list_depsolve
      Src: /src/fwupd/src/fu-plugin-list-test.c:61,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-plugin-list-test.c:62,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-plugin-list-test.c:63,1
    - Dst: fu_plugin_list_get_all
      Src: /src/fwupd/src/fu-plugin-list-test.c:64,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-plugin-list-test.c:65,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-plugin-list-test.c:66,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-plugin-list-test.c:67,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/src/fu-plugin-list-test.c:67,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-plugin-list-test.c:68,1
    - Dst: fu_plugin_get_order
      Src: /src/fwupd/src/fu-plugin-list-test.c:68,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-plugin-list-test.c:69,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-plugin-list-test.c:69,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/src/fu-plugin-list-test.c:72,1
    - Dst: fu_plugin_list_depsolve
      Src: /src/fwupd/src/fu-plugin-list-test.c:73,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-plugin-list-test.c:74,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-plugin-list-test.c:75,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-plugin-list-test.c:76,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-plugin-list-test.c:77,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-plugin-list-test.c:78,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-plugin-list-test.c:79,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-plugin-list-test.c:79,1
    - Dst: fu_plugin_list_find_by_name
      Src: /src/fwupd/src/fu-plugin-list-test.c:80,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-plugin-list-test.c:81,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-plugin-list-test.c:82,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-plugin-list-test.c:83,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/src/fu-plugin-list-test.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 84
    functionName: fu_plugin_list_depsolve_func
    functionSourceFile: /src/fwupd/src/fu-plugin-list-test.c
    functionUses: 0
    functionsReached:
    - g_assert_nonnull
    - g_ptr_array_index
    - g_assert_cmpint
    - fu_plugin_list_add
    - fu_plugin_list_get_all
    - fu_plugin_list_new
    - fu_plugin_has_flag
    - fu_plugin_set_name
    - g_assert_false
    - fu_plugin_new
    - fu_plugin_list_find_by_name
    - fu_plugin_add_rule
    - fu_plugin_get_name
    - g_assert_no_error
    - fu_plugin_list_depsolve
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - fu_plugin_get_order
    linkageType: ''
    returnType: void
    signature: void fu_plugin_list_depsolve_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-plugin-list-test.c:89,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-plugin-list-test.c:90,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-plugin-list-test.c:91,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-plugin-list-test.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-plugin-list-test.c
    functionUses: 2
    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: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:34,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:35,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:36,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:37,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:38,1
    - Dst: fu_jcat_context_new
      Src: /src/fwupd/src/fu-jcat-test.c:38,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:41,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-jcat-test.c:46,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-jcat-test.c:49,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:50,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:51,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-jcat-test.c:52,1
    - Dst: fu_jcat_engine_get_kind
      Src: /src/fwupd/src/fu-jcat-test.c:52,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-jcat-test.c:53,1
    - Dst: fu_jcat_engine_get_method
      Src: /src/fwupd/src/fu-jcat-test.c:53,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:56,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-test.c:57,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:58,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:59,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/src/fu-jcat-test.c:60,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-jcat-test.c:60,1
    - Dst: fu_jcat_engine_self_verify
      Src: /src/fwupd/src/fu-jcat-test.c:61,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:66,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:67,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-jcat-test.c:68,1
    - Dst: fu_jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-jcat-test.c:68,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-jcat-test.c:69,1
    - Dst: fu_jcat_result_get_authority
      Src: /src/fwupd/src/fu-jcat-test.c:69,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:72,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-test.c:73,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:74,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:75,1
    - Dst: fu_jcat_engine_self_verify
      Src: /src/fwupd/src/fu-jcat-test.c:76,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-jcat-test.c:81,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-jcat-test.c:82,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-jcat-test.c:83,1
    - Dst: fu_jcat_engine_self_sign
      Src: /src/fwupd/src/fu-jcat-test.c:86,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:87,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:88,1
    - Dst: fwupd_jcat_blob_get_data_as_string
      Src: /src/fwupd/src/fu-jcat-test.c:89,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-jcat-test.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 91
    functionName: fu_jcat_sha256_engine_func
    functionSourceFile: /src/fwupd/src/fu-jcat-test.c
    functionUses: 0
    functionsReached:
    - g_assert_nonnull
    - fu_jcat_context_allow_blob_kind
    - fu_jcat_context_get_engine
    - fu_jcat_engine_self_sign
    - g_assert_cmpint
    - fu_jcat_engine_get_method
    - g_assert_null
    - g_bytes_new_static
    - fwupd_jcat_blob_get_data_as_string
    - fu_jcat_context_new
    - fu_bytes_get_contents
    - g_assert_error
    - fu_jcat_engine_get_kind
    - g_assert_no_error
    - fu_jcat_engine_self_verify
    - g_clear_error
    - strlen
    - fu_jcat_result_get_timestamp
    - fu_jcat_result_get_authority
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_jcat_sha256_engine_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:103,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:104,1
    - Dst: fu_jcat_context_new
      Src: /src/fwupd/src/fu-jcat-test.c:104,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:105,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:107,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-jcat-test.c:113,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-jcat-test.c:116,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:117,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:118,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-jcat-test.c:119,1
    - Dst: fu_jcat_engine_get_kind
      Src: /src/fwupd/src/fu-jcat-test.c:119,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-jcat-test.c:120,1
    - Dst: fu_jcat_engine_get_method
      Src: /src/fwupd/src/fu-jcat-test.c:120,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:123,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-test.c:124,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:125,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:126,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/src/fu-jcat-test.c:127,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-jcat-test.c:127,1
    - Dst: fu_jcat_engine_self_verify
      Src: /src/fwupd/src/fu-jcat-test.c:128,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:133,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:134,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-jcat-test.c:135,1
    - Dst: fu_jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-jcat-test.c:135,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-jcat-test.c:136,1
    - Dst: fu_jcat_result_get_authority
      Src: /src/fwupd/src/fu-jcat-test.c:136,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:139,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-test.c:140,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:141,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:142,1
    - Dst: fu_jcat_engine_self_verify
      Src: /src/fwupd/src/fu-jcat-test.c:143,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-jcat-test.c:148,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-jcat-test.c:149,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-jcat-test.c:150,1
    - Dst: fu_jcat_engine_self_sign
      Src: /src/fwupd/src/fu-jcat-test.c:153,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:154,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:155,1
    - Dst: fwupd_jcat_blob_get_data_as_string
      Src: /src/fwupd/src/fu-jcat-test.c:156,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-jcat-test.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 158
    functionName: fu_jcat_sha512_engine_func
    functionSourceFile: /src/fwupd/src/fu-jcat-test.c
    functionUses: 0
    functionsReached:
    - g_assert_nonnull
    - fu_jcat_context_allow_blob_kind
    - fu_jcat_context_get_engine
    - fu_jcat_engine_self_sign
    - g_assert_cmpint
    - fu_jcat_engine_get_method
    - g_assert_null
    - g_bytes_new_static
    - fwupd_jcat_blob_get_data_as_string
    - fu_jcat_context_new
    - fu_bytes_get_contents
    - g_assert_error
    - fu_jcat_engine_get_kind
    - g_assert_no_error
    - fu_jcat_engine_self_verify
    - g_clear_error
    - strlen
    - fu_jcat_result_get_timestamp
    - fu_jcat_result_get_authority
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_jcat_sha512_engine_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:168,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:169,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:170,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:171,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:172,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:173,1
    - Dst: fu_jcat_context_new
      Src: /src/fwupd/src/fu-jcat-test.c:173,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:174,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:175,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:176,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:179,1
    - Dst: fu_jcat_context_add_public_keys
      Src: /src/fwupd/src/fu-jcat-test.c:180,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-jcat-test.c:181,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-jcat-test.c:185,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:189,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:190,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-jcat-test.c:191,1
    - Dst: fu_jcat_engine_get_kind
      Src: /src/fwupd/src/fu-jcat-test.c:191,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-jcat-test.c:192,1
    - Dst: fu_jcat_engine_get_method
      Src: /src/fwupd/src/fu-jcat-test.c:192,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:195,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-test.c:196,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:197,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:198,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:199,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-test.c:200,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:201,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:202,1
    - Dst: fu_jcat_engine_pubkey_verify
      Src: /src/fwupd/src/fu-jcat-test.c:203,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:208,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:209,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-jcat-test.c:210,1
    - Dst: fu_jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-jcat-test.c:210,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-jcat-test.c:211,1
    - Dst: fu_jcat_result_get_authority
      Src: /src/fwupd/src/fu-jcat-test.c:211,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:217,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-test.c:218,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:219,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:220,1
    - Dst: fu_jcat_engine_pubkey_verify
      Src: /src/fwupd/src/fu-jcat-test.c:221,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-jcat-test.c:226,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-jcat-test.c:227,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-jcat-test.c:228,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:231,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-test.c:232,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:233,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:234,1
    - Dst: fu_jcat_engine_pubkey_verify
      Src: /src/fwupd/src/fu-jcat-test.c:235,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-jcat-test.c:240,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-jcat-test.c:241,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-jcat-test.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 53
    argCount: 1
    argNames:
    - test_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 243
    functionName: fwupd_jcat_pkcs7_engine_func
    functionSourceFile: /src/fwupd/src/fu-jcat-test.c
    functionUses: 0
    functionsReached:
    - g_assert_nonnull
    - fu_jcat_context_allow_blob_kind
    - fu_jcat_context_get_engine
    - g_assert_cmpint
    - fu_jcat_engine_pubkey_verify
    - fu_jcat_engine_get_method
    - g_assert_null
    - fu_jcat_context_new
    - fu_bytes_get_contents
    - g_assert_error
    - fu_jcat_engine_get_kind
    - g_assert_no_error
    - g_clear_error
    - fu_jcat_context_add_public_keys
    - fu_jcat_result_get_timestamp
    - fu_jcat_result_get_authority
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_pkcs7_engine_func(gconstpointer test_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:252,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:253,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:254,1
    - Dst: fu_jcat_context_new
      Src: /src/fwupd/src/fu-jcat-test.c:254,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:255,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:256,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:257,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:258,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:259,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:260,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-jcat-test.c:268,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-jcat-test.c:272,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:276,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:277,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/src/fu-jcat-test.c:279,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:280,1
    - Dst: fu_jcat_engine_self_sign
      Src: /src/fwupd/src/fu-jcat-test.c:282,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:283,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:284,1
    - Dst: fu_jcat_engine_self_verify
      Src: /src/fwupd/src/fu-jcat-test.c:285,1
    - Dst: fwupd_jcat_blob_get_data
      Src: /src/fwupd/src/fu-jcat-test.c:287,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:290,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:291,1
    - Dst: g_object_set
      Src: /src/fwupd/src/fu-jcat-test.c:294,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-jcat-test.c:295,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-jcat-test.c:295,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-test.c:296,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-jcat-test.c:297,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/src/fu-jcat-test.c:297,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/src/fu-jcat-test.c:300,1
    - Dst: fu_jcat_engine_self_verify
      Src: /src/fwupd/src/fu-jcat-test.c:301,1
    - Dst: fwupd_jcat_blob_get_data
      Src: /src/fwupd/src/fu-jcat-test.c:303,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-jcat-test.c:306,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-jcat-test.c:307,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-jcat-test.c:308,1
    - Dst: g_dir_make_tmp
      Src: /src/fwupd/src/fu-jcat-test.c:311,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:312,1
    - Dst: fu_jcat_context_set_keyring_path
      Src: /src/fwupd/src/fu-jcat-test.c:313,1
    - Dst: fu_jcat_engine_self_sign
      Src: /src/fwupd/src/fu-jcat-test.c:317,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:318,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:319,1
    - Dst: fu_jcat_engine_self_verify
      Src: /src/fwupd/src/fu-jcat-test.c:322,1
    - Dst: fwupd_jcat_blob_get_data
      Src: /src/fwupd/src/fu-jcat-test.c:324,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-jcat-test.c:327,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-jcat-test.c:328,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-jcat-test.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 1
    argNames:
    - test_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 330
    functionName: fwupd_jcat_pkcs7_engine_self_signed_func
    functionSourceFile: /src/fwupd/src/fu-jcat-test.c
    functionUses: 0
    functionsReached:
    - fwupd_jcat_blob_get_data
    - fwupd_codec_to_string
    - FWUPD_CODEC
    - g_assert_nonnull
    - fu_jcat_context_allow_blob_kind
    - fu_jcat_context_set_keyring_path
    - fu_jcat_context_get_engine
    - g_debug
    - fu_jcat_engine_self_sign
    - g_object_set
    - g_assert_null
    - g_bytes_new_static
    - fu_jcat_context_new
    - g_pattern_match_simple
    - g_dir_make_tmp
    - g_assert_error
    - g_assert_no_error
    - fu_jcat_engine_self_verify
    - g_clear_error
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_pkcs7_engine_self_signed_func(gconstpointer test_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:338,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:339,1
    - Dst: fu_jcat_context_new
      Src: /src/fwupd/src/fu-jcat-test.c:339,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:340,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:341,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:342,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:343,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:344,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-jcat-test.c:352,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:353,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:354,1
    - Dst: fu_jcat_context_set_keyring_path
      Src: /src/fwupd/src/fu-jcat-test.c:357,1
    - Dst: fu_temporary_directory_get_path
      Src: /src/fwupd/src/fu-jcat-test.c:357,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-jcat-test.c:361,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:365,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:366,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/src/fu-jcat-test.c:368,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:369,1
    - Dst: fu_jcat_engine_self_sign
      Src: /src/fwupd/src/fu-jcat-test.c:371,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-jcat-test.c:375,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-jcat-test.c:376,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:379,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:380,1
    - Dst: fu_jcat_engine_self_verify
      Src: /src/fwupd/src/fu-jcat-test.c:381,1
    - Dst: fwupd_jcat_blob_get_data
      Src: /src/fwupd/src/fu-jcat-test.c:383,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-jcat-test.c:386,1
    - Dst: g_test_skip
      Src: /src/fwupd/src/fu-jcat-test.c:387,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:390,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:391,1
    - Dst: g_object_set
      Src: /src/fwupd/src/fu-jcat-test.c:394,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-jcat-test.c:395,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-jcat-test.c:395,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-test.c:396,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-jcat-test.c:397,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 1
    argNames:
    - test_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 398
    functionName: fwupd_jcat_pkcs7_engine_self_signed_pq_func
    functionSourceFile: /src/fwupd/src/fu-jcat-test.c
    functionUses: 0
    functionsReached:
    - fwupd_jcat_blob_get_data
    - fwupd_codec_to_string
    - FWUPD_CODEC
    - g_assert_nonnull
    - fu_jcat_context_set_keyring_path
    - fu_jcat_context_get_engine
    - fu_temporary_directory_get_path
    - g_debug
    - fu_jcat_engine_self_sign
    - fu_temporary_directory_new
    - g_object_set
    - g_bytes_new_static
    - fu_jcat_context_new
    - g_assert_no_error
    - fu_jcat_engine_self_verify
    - g_error_matches
    - g_test_skip
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_pkcs7_engine_self_signed_pq_func(gconstpointer test_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:407,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:408,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:409,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:410,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:411,1
    - Dst: fu_jcat_context_new
      Src: /src/fwupd/src/fu-jcat-test.c:411,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:412,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:413,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:414,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:415,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:418,1
    - Dst: fu_jcat_context_add_public_keys
      Src: /src/fwupd/src/fu-jcat-test.c:419,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-jcat-test.c:420,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-jcat-test.c:421,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-jcat-test.c:424,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:425,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:426,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-jcat-test.c:427,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:428,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:429,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-jcat-test.c:430,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-jcat-test.c:431,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-jcat-test.c:432,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-jcat-test.c:433,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:436,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-test.c:437,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:438,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:439,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:440,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-test.c:441,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:442,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:443,1
    - Dst: fwupd_jcat_blob_new
      Src: /src/fwupd/src/fu-jcat-test.c:444,1
    - Dst: fu_jcat_context_verify_blob
      Src: /src/fwupd/src/fu-jcat-test.c:445,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:450,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:451,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-jcat-test.c:452,1
    - Dst: fu_jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-jcat-test.c:452,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-jcat-test.c:453,1
    - Dst: fu_jcat_result_get_authority
      Src: /src/fwupd/src/fu-jcat-test.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 456
    functionName: fu_jcat_context_verify_blob_func
    functionSourceFile: /src/fwupd/src/fu-jcat-test.c
    functionUses: 0
    functionsReached:
    - fu_jcat_context_verify_blob
    - fu_jcat_context_get_engine
    - fu_bytes_get_contents
    - fwupd_jcat_blob_new
    - fu_jcat_context_new
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - g_clear_error
    - fu_jcat_context_add_public_keys
    - fu_jcat_result_get_authority
    - fu_jcat_result_get_timestamp
    - fu_jcat_context_allow_blob_kind
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fu_jcat_context_verify_blob_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:464,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:465,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:466,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:467,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:468,1
    - Dst: fu_jcat_context_new
      Src: /src/fwupd/src/fu-jcat-test.c:468,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:469,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:472,1
    - Dst: fu_jcat_context_add_public_keys
      Src: /src/fwupd/src/fu-jcat-test.c:473,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:476,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-test.c:477,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:478,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:479,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:480,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-test.c:481,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:482,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:483,1
    - Dst: fwupd_jcat_blob_new
      Src: /src/fwupd/src/fu-jcat-test.c:484,1
    - Dst: fu_jcat_context_verify_blob
      Src: /src/fwupd/src/fu-jcat-test.c:487,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-jcat-test.c:492,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-jcat-test.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 494
    functionName: fu_jcat_context_verify_blob_disallow_func
    functionSourceFile: /src/fwupd/src/fu-jcat-test.c
    functionUses: 0
    functionsReached:
    - fu_jcat_context_verify_blob
    - fu_bytes_get_contents
    - fwupd_jcat_blob_new
    - fu_jcat_context_new
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - fu_jcat_context_add_public_keys
    - g_test_build_filename
    - g_autoptr
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fu_jcat_context_verify_blob_disallow_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:503,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:504,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:505,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:506,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:507,1
    - Dst: fwupd_jcat_item_new
      Src: /src/fwupd/src/fu-jcat-test.c:507,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:508,1
    - Dst: fu_jcat_context_new
      Src: /src/fwupd/src/fu-jcat-test.c:508,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:509,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:510,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:511,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:512,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:515,1
    - Dst: fu_jcat_context_add_public_keys
      Src: /src/fwupd/src/fu-jcat-test.c:516,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-jcat-test.c:517,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-jcat-test.c:518,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-jcat-test.c:521,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:522,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:523,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-jcat-test.c:524,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:525,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:526,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:529,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-test.c:530,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:531,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:532,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:533,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-test.c:534,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:535,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:536,1
    - Dst: fwupd_jcat_blob_new
      Src: /src/fwupd/src/fu-jcat-test.c:537,1
    - Dst: fwupd_jcat_item_add_blob
      Src: /src/fwupd/src/fu-jcat-test.c:538,1
    - Dst: fu_jcat_context_verify_item
      Src: /src/fwupd/src/fu-jcat-test.c:539,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:545,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:546,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-jcat-test.c:547,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-jcat-test.c:548,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-jcat-test.c:549,1
    - Dst: fu_jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-jcat-test.c:549,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-jcat-test.c:550,1
    - Dst: fu_jcat_result_get_authority
      Src: /src/fwupd/src/fu-jcat-test.c:550,1
    - Dst: fu_jcat_context_verify_item
      Src: /src/fwupd/src/fu-jcat-test.c:555,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-jcat-test.c:561,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-jcat-test.c:562,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-jcat-test.c:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 564
    functionName: fu_jcat_context_verify_item_sign_func
    functionSourceFile: /src/fwupd/src/fu-jcat-test.c
    functionUses: 0
    functionsReached:
    - g_assert_nonnull
    - fu_jcat_context_allow_blob_kind
    - g_ptr_array_index
    - fu_jcat_context_verify_item
    - fu_jcat_context_get_engine
    - fwupd_jcat_blob_new
    - g_assert_cmpint
    - fwupd_jcat_item_add_blob
    - g_assert_null
    - fu_jcat_context_new
    - fu_bytes_get_contents
    - fwupd_jcat_item_new
    - g_assert_error
    - g_assert_no_error
    - g_clear_error
    - fu_jcat_context_add_public_keys
    - fu_jcat_result_get_timestamp
    - fu_jcat_result_get_authority
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_jcat_context_verify_item_sign_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:573,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:574,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:575,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:576,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:577,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:578,1
    - Dst: fwupd_jcat_item_new
      Src: /src/fwupd/src/fu-jcat-test.c:578,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:579,1
    - Dst: fwupd_jcat_item_new
      Src: /src/fwupd/src/fu-jcat-test.c:579,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:580,1
    - Dst: fu_jcat_context_new
      Src: /src/fwupd/src/fu-jcat-test.c:580,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:581,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:582,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:585,1
    - Dst: fu_jcat_context_add_public_keys
      Src: /src/fwupd/src/fu-jcat-test.c:586,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-jcat-test.c:587,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-jcat-test.c:588,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-jcat-test.c:591,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:592,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:593,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:596,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-test.c:597,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:598,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:599,1
    - Dst: fu_jcat_engine_self_sign
      Src: /src/fwupd/src/fu-jcat-test.c:601,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:602,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:603,1
    - Dst: fwupd_jcat_item_add_blob
      Src: /src/fwupd/src/fu-jcat-test.c:604,1
    - Dst: fwupd_jcat_item_add_blob
      Src: /src/fwupd/src/fu-jcat-test.c:607,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:608,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-test.c:613,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:614,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:615,1
    - Dst: fwupd_jcat_blob_new
      Src: /src/fwupd/src/fu-jcat-test.c:617,1
    - Dst: fwupd_jcat_blob_set_target
      Src: /src/fwupd/src/fu-jcat-test.c:618,1
    - Dst: fwupd_jcat_item_add_blob
      Src: /src/fwupd/src/fu-jcat-test.c:619,1
    - Dst: fu_jcat_context_verify_target
      Src: /src/fwupd/src/fu-jcat-test.c:622,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:629,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:630,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-jcat-test.c:631,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-jcat-test.c:632,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-jcat-test.c:633,1
    - Dst: fu_jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-jcat-test.c:633,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-jcat-test.c:634,1
    - Dst: fu_jcat_result_get_authority
      Src: /src/fwupd/src/fu-jcat-test.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 566
    functionDepth: 3
    functionLinenumber: 566
    functionLinenumberEnd: 635
    functionName: fu_jcat_context_verify_item_target_func
    functionSourceFile: /src/fwupd/src/fu-jcat-test.c
    functionUses: 0
    functionsReached:
    - fwupd_jcat_blob_set_target
    - fu_jcat_context_verify_target
    - g_assert_nonnull
    - fu_jcat_context_allow_blob_kind
    - g_ptr_array_index
    - fu_jcat_context_get_engine
    - fwupd_jcat_blob_new
    - fu_jcat_engine_self_sign
    - g_assert_cmpint
    - fwupd_jcat_item_add_blob
    - fu_jcat_context_new
    - fu_bytes_get_contents
    - fwupd_jcat_item_new
    - g_assert_no_error
    - fu_jcat_context_add_public_keys
    - fu_jcat_result_get_timestamp
    - fu_jcat_result_get_authority
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_jcat_context_verify_item_target_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:643,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:644,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:645,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:646,1
    - Dst: fwupd_jcat_item_new
      Src: /src/fwupd/src/fu-jcat-test.c:646,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:647,1
    - Dst: fu_jcat_context_new
      Src: /src/fwupd/src/fu-jcat-test.c:647,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:648,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:649,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:650,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-test.c:651,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:656,1
    - Dst: fu_jcat_context_add_public_keys
      Src: /src/fwupd/src/fu-jcat-test.c:657,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-jcat-test.c:658,1
    - Dst: fu_jcat_context_allow_blob_kind
      Src: /src/fwupd/src/fu-jcat-test.c:659,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-jcat-test.c:662,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:663,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:664,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-jcat-test.c:665,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:666,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:667,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-jcat-test.c:670,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-jcat-test.c:671,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:672,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:673,1
    - Dst: fwupd_jcat_blob_new_utf8
      Src: /src/fwupd/src/fu-jcat-test.c:674,1
    - Dst: fwupd_jcat_item_add_blob
      Src: /src/fwupd/src/fu-jcat-test.c:675,1
    - Dst: fu_jcat_context_verify_item
      Src: /src/fwupd/src/fu-jcat-test.c:676,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-jcat-test.c:682,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-jcat-test.c:683,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-jcat-test.c:684,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-jcat-test.c:685,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/src/fu-jcat-test.c:686,1
    - Dst: fu_jcat_result_get_timestamp
      Src: /src/fwupd/src/fu-jcat-test.c:686,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-jcat-test.c:687,1
    - Dst: fu_jcat_result_get_authority
      Src: /src/fwupd/src/fu-jcat-test.c:687,1
    - Dst: fu_jcat_context_verify_item
      Src: /src/fwupd/src/fu-jcat-test.c:690,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-jcat-test.c:696,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-jcat-test.c:697,1
    - Dst: g_clear_error
      Src: /src/fwupd/src/fu-jcat-test.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 699
    functionName: fu_jcat_context_verify_item_csum_func
    functionSourceFile: /src/fwupd/src/fu-jcat-test.c
    functionUses: 0
    functionsReached:
    - g_assert_nonnull
    - fu_jcat_context_allow_blob_kind
    - g_ptr_array_index
    - fu_jcat_context_verify_item
    - fu_jcat_context_get_engine
    - g_assert_cmpint
    - fwupd_jcat_item_add_blob
    - g_assert_null
    - fu_jcat_context_new
    - fwupd_jcat_blob_new_utf8
    - fu_bytes_get_contents
    - fwupd_jcat_item_new
    - g_assert_error
    - g_assert_no_error
    - g_clear_error
    - fu_jcat_context_add_public_keys
    - fu_jcat_result_get_timestamp
    - fu_jcat_result_get_authority
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_jcat_context_verify_item_csum_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-jcat-test.c:704,1
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-jcat-test.c:707,1
    - Dst: g_log_set_fatal_mask
      Src: /src/fwupd/src/fu-jcat-test.c:710,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-jcat-test.c:712,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-jcat-test.c:713,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-jcat-test.c:714,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-jcat-test.c:715,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-jcat-test.c:719,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-jcat-test.c:722,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-jcat-test.c:727,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-jcat-test.c:730,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/src/fu-jcat-test.c:735,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-jcat-test.c:739,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-jcat-test.c:740,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-jcat-test.c:742,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-jcat-test.c:743,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-jcat-test.c:744,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-jcat-test.c:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 747
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-jcat-test.c
    functionUses: 2
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_log_set_fatal_mask
    - g_test_add_data_func
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-engine-helper.c:29,1
    - Dst: fu_context_add_firmware_gtypes
      Src: /src/fwupd/src/fu-engine-helper.c:30,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/src/fu-engine-helper.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: fu_engine_add_firmware_gtypes
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 1
    functionsReached:
    - fu_context_add_firmware_gtype
    - fu_context_add_firmware_gtypes
    - fu_engine_get_context
    linkageType: ''
    returnType: void
    signature: void fu_engine_add_firmware_gtypes(FuEngine *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:41,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-engine-helper.c:42,1
    - Dst: fu_engine_get_releases
      Src: /src/fwupd/src/fu-engine-helper.c:45,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-engine-helper.c:45,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-helper.c:51,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-engine-helper.c:60,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-engine-helper.c:61,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-engine-helper.c:62,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-helper.c:70,1
    - Dst: fwupd_release_has_tag
      Src: /src/fwupd/src/fu-engine-helper.c:72,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-engine-helper.c:73,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-helper.c:78,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - self
    - request
    - dev
    - host_bkc
    - error
    argTypes:
    - FuEngine*
    - FuEngineRequest*
    - FwupdDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 34
    functionDepth: 8
    functionLinenumber: 34
    functionLinenumberEnd: 83
    functionName: fu_engine_get_release_with_tag
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_engine_get_releases
    - fwupd_device_get_id
    - g_set_error_literal
    - fwupd_release_has_tag
    - g_strsplit
    - g_strv_length
    - g_object_ref
    - g_auto
    - g_autoptr
    - g_ptr_array_index
    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: 17
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-engine-helper.c:88,1
    - Dst: fu_engine_get_host_bkc
      Src: /src/fwupd/src/fu-engine-helper.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:95,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-engine-helper.c:95,1
    - Dst: fu_engine_request_new
      Src: /src/fwupd/src/fu-engine-helper.c:99,1
    - Dst: fu_engine_request_set_feature_flags
      Src: /src/fwupd/src/fu-engine-helper.c:100,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-engine-helper.c:105,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-helper.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:109,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/src/fu-engine-helper.c:112,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/src/fu-engine-helper.c:118,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/src/fu-engine-helper.c:119,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-helper.c:125,1
    - Dst: fu_engine_get_upgrades
      Src: /src/fwupd/src/fu-engine-helper.c:128,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-engine-helper.c:128,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-helper.c:135,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:136,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/src/fu-engine-helper.c:139,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/src/fu-engine-helper.c:141,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-engine-helper.c:146,1
    - Dst: fu_engine_get_release_with_tag
      Src: /src/fwupd/src/fu-engine-helper.c:148,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-engine-helper.c:155,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-engine-helper.c:155,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-engine-helper.c:156,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-engine-helper.c:163,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine-helper.c:164,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-engine-helper.c:164,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/src/fu-engine-helper.c:167,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-engine-helper.c:178,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-engine-helper.c:183,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine-helper.c:184,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-engine-helper.c:186,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-engine-helper.c:190,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine-helper.c:191,1
    - Dst: _
      Src: /src/fwupd/src/fu-engine-helper.c:193,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-engine-helper.c:194,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-engine-helper.c:196,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine-helper.c:197,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-engine-helper.c:199,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-engine-helper.c:203,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine-helper.c:204,1
    - Dst: _
      Src: /src/fwupd/src/fu-engine-helper.c:207,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-engine-helper.c:209,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-engine-helper.c:211,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine-helper.c:212,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-engine-helper.c:214,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-engine-helper.c:218,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-engine-helper.c:219,1
    - Dst: _
      Src: /src/fwupd/src/fu-engine-helper.c:222,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-engine-helper.c:224,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-helper.c:228,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-engine-helper.c:229,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 73
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 85
    functionDepth: 9
    functionLinenumber: 85
    functionLinenumberEnd: 230
    functionName: fu_engine_update_motd
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 1
    functionsReached:
    - fu_engine_get_devices
    - fwupd_device_get_update_state
    - _
    - fu_engine_get_context
    - g_ptr_array_index
    - g_debug
    - fu_device_has_flag
    - g_string_new
    - g_getenv
    - g_string_append
    - fwupd_device_get_id
    - fwupd_release_get_version
    - fwupd_device_get_version
    - fu_engine_get_host_bkc
    - fu_engine_request_new
    - g_strcmp0
    - fu_engine_get_upgrades
    - fu_context_build_filename
    - fu_engine_request_set_feature_flags
    - fu_engine_get_release_with_tag
    - g_string_append_printf
    - ngettext
    - g_autoptr
    - g_build_filename
    - g_file_set_contents
    - fu_path_mkdir_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_engine_update_motd(FuEngine *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_engine_get_context
      Src: /src/fwupd/src/fu-engine-helper.c:235,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:237,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-engine-helper.c:237,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:238,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:239,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:240,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/src/fu-engine-helper.c:243,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-helper.c:249,1
    - Dst: fu_engine_config_get_show_device_private
      Src: /src/fwupd/src/fu-engine-helper.c:253,1
    - Dst: fu_engine_get_config
      Src: /src/fwupd/src/fu-engine-helper.c:253,1
    - Dst: fu_engine_get_devices
      Src: /src/fwupd/src/fu-engine-helper.c:256,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-engine-helper.c:258,1
    - Dst: fwupd_json_object_to_string
      Src: /src/fwupd/src/fu-engine-helper.c:260,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-engine-helper.c:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEngine*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 262
    functionName: fu_engine_update_devices_file
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 2
    functionsReached:
    - fu_context_build_filename
    - g_debug
    - fwupd_json_object_new
    - fu_engine_get_devices
    - fu_engine_get_config
    - fu_engine_config_get_show_device_private
    - fu_engine_get_context
    - fwupd_codec_array_to_json
    - g_autoptr
    - g_file_set_contents
    - fwupd_json_object_to_string
    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:267,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-engine-helper.c:268,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-helper.c:268,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-helper.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - id
    - blob
    argTypes:
    - GHashTable*
    - gchar*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 269
    functionName: fu_engine_integrity_add_measurement
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - g_compute_checksum_for_bytes
    - g_steal_pointer
    linkageType: ''
    returnType: void
    signature: void fu_engine_integrity_add_measurement(GHashTable *self, const gchar
      *id, GBytes *blob)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-engine-helper.c:280,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:282,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/src/fu-engine-helper.c:285,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-engine-helper.c:288,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-engine-helper.c:289,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine-helper.c:290,1
    - Dst: fu_engine_integrity_add_measurement
      Src: /src/fwupd/src/fu-engine-helper.c:291,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - self
    argTypes:
    - FuContext*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 294
    functionName: fu_engine_integrity_measure_acpi
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 0
    functionsReached:
    - fu_bytes_get_contents
    - fu_context_build_filename
    - g_strdup_printf
    - fu_engine_integrity_add_measurement
    - G_N_ELEMENTS
    - g_bytes_get_size
    - g_autoptr
    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:299,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-engine-helper.c:322,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:323,1
    - Dst: fu_efivars_get_data_bytes
      Src: /src/fwupd/src/fu-engine-helper.c:324,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine-helper.c:326,1
    - Dst: fu_engine_integrity_add_measurement
      Src: /src/fwupd/src/fu-engine-helper.c:327,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:333,1
    - Dst: fu_efivars_get_boot_data
      Src: /src/fwupd/src/fu-engine-helper.c:333,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-engine-helper.c:334,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine-helper.c:336,1
    - Dst: fu_memmem_safe
      Src: /src/fwupd/src/fu-engine-helper.c:337,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-engine-helper.c:337,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-engine-helper.c:338,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-engine-helper.c:343,1
    - Dst: fu_engine_integrity_add_measurement
      Src: /src/fwupd/src/fu-engine-helper.c:346,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - self
    argTypes:
    - FuContext*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 349
    functionName: fu_engine_integrity_measure_uefi
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 0
    functionsReached:
    - fu_efivars_get_data_bytes
    - g_debug
    - g_bytes_get_data
    - fu_memmem_safe
    - g_strdup_printf
    - fu_context_get_efivars
    - fu_engine_integrity_add_measurement
    - fu_efivars_get_boot_data
    - G_N_ELEMENTS
    - g_bytes_get_size
    - g_autoptr
    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:354,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-engine-helper.c:354,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-helper.c:356,1
    - Dst: fu_engine_integrity_measure_uefi
      Src: /src/fwupd/src/fu-engine-helper.c:358,1
    - Dst: fu_engine_integrity_measure_acpi
      Src: /src/fwupd/src/fu-engine-helper.c:359,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/src/fu-engine-helper.c:362,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-helper.c:363,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-engine-helper.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - error
    argTypes:
    - FuContext*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 369
    functionName: fu_engine_integrity_new
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - g_steal_pointer
    - g_hash_table_size
    - g_hash_table_new_full
    - fu_engine_integrity_measure_acpi
    - g_autoptr
    - 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:376,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-helper.c:376,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-helper.c:378,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/src/fu-engine-helper.c:381,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-engine-helper.c:385,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-engine-helper.c:386,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper.c:387,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-engine-helper.c:388,1
    - Dst: fu_strjoin
      Src: /src/fwupd/src/fu-engine-helper.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 391
    functionName: fu_engine_integrity_to_string
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_strjoin
    - g_hash_table_size
    - g_ptr_array_add
    - g_strdup_printf
    - g_autoptr
    - g_hash_table_iter_init
    - g_ptr_array_new_with_free_func
    - g_hash_table_iter_next
    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:397,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine-helper.c:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - errors
    - error_code
    argTypes:
    - GPtrArray*
    - FwupdError
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 402
    functionName: fu_engine_error_array_find
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 0
    functionsReached:
    - g_error_matches
    - g_ptr_array_index
    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:409,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine-helper.c:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - errors
    - error_code
    argTypes:
    - GPtrArray*
    - FwupdError
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 414
    functionName: fu_engine_error_array_count
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 0
    functionsReached:
    - g_error_matches
    - g_ptr_array_index
    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:420,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-engine-helper.c:423,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - errors
    - error_codes
    argTypes:
    - GPtrArray*
    - FwupdError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 432
    functionName: fu_engine_error_array_matches_any
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 0
    functionsReached:
    - g_error_matches
    - g_ptr_array_index
    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:464,1
    - Dst: fu_engine_error_array_matches_any
      Src: /src/fwupd/src/fu-engine-helper.c:465,1
    - Dst: g_error_new
      Src: /src/fwupd/src/fu-engine-helper.c:466,1
    - Dst: fu_engine_error_array_count
      Src: /src/fwupd/src/fu-engine-helper.c:472,1
    - Dst: fu_engine_error_array_matches_any
      Src: /src/fwupd/src/fu-engine-helper.c:473,1
    - Dst: g_error_new
      Src: /src/fwupd/src/fu-engine-helper.c:474,1
    - Dst: fu_engine_error_array_find
      Src: /src/fwupd/src/fu-engine-helper.c:481,1
    - Dst: g_error_copy
      Src: /src/fwupd/src/fu-engine-helper.c:483,1
    - Dst: g_error_new
      Src: /src/fwupd/src/fu-engine-helper.c:487,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - errors
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 488
    functionName: fu_engine_error_array_get_best
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 3
    functionsReached:
    - g_error_new
    - g_error_copy
    - fu_engine_error_array_matches_any
    - fu_engine_error_array_find
    - fu_engine_error_array_count
    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:507,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-engine-helper.c:509,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-engine-helper.c:512,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-helper.c:514,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-engine-helper.c:515,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-engine-helper.c:518,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-engine-helper.c:518,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper.c:521,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine-helper.c:521,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper.c:522,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-engine-helper.c:524,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper.c:525,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-helper.c:525,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper.c:526,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-helper.c:526,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper.c:527,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-helper.c:527,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-engine-helper.c:529,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-helper.c:529,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-engine-helper.c:531,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-engine-helper.c:532,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-helper.c:538,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-engine-helper.c:544,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-engine-helper.c:547,1
    - Dst: g_checksum_new
      Src: /src/fwupd/src/fu-engine-helper.c:554,1
    - Dst: g_checksum_update
      Src: /src/fwupd/src/fu-engine-helper.c:556,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-engine-helper.c:556,1
    - Dst: g_checksum_update
      Src: /src/fwupd/src/fu-engine-helper.c:557,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-engine-helper.c:558,1
    - Dst: g_checksum_get_string
      Src: /src/fwupd/src/fu-engine-helper.c:558,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 2
    argNames:
    - salt
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 559
    functionName: fu_engine_build_machine_id
    functionSourceFile: /src/fwupd/src/fu-engine-helper.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_getenv
    - g_set_error_literal
    - g_file_get_contents
    - g_ptr_array_add
    - g_checksum_new
    - g_checksum_update
    - g_file_test
    - g_checksum_get_string
    - strlen
    - g_ptr_array_new_with_free_func
    - g_autoptr
    - g_build_filename
    - g_ptr_array_index
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_engine_build_machine_id(const gchar *salt, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/src/fu-jcat-sha512-engine.c:23,1
    - Dst: fwupd_jcat_blob_new_utf8
      Src: /src/fwupd/src/fu-jcat-sha512-engine.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - engine
    - data
    - flags
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - FuJcatSignFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 25
    functionName: fu_jcat_sha512_engine_self_sign
    functionSourceFile: /src/fwupd/src/fu-jcat-sha512-engine.c
    functionUses: 0
    functionsReached:
    - g_compute_checksum_for_bytes
    - fwupd_jcat_blob_new_utf8
    linkageType: ''
    returnType: FwupdJcatBlob
    signature: "FwupdJcatBlob *\nfu_jcat_sha512_engine_self_sign(FuJcatEngine *engine,\n\t\t\t\tGBytes
      *data,\n\t\t\t\tFuJcatSignFlags flags,\n\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-sha512-engine.c:35,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/src/fu-jcat-sha512-engine.c:37,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-jcat-sha512-engine.c:38,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-jcat-sha512-engine.c:38,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/src/fu-jcat-sha512-engine.c:39,1
    - Dst: fu_strsafe_bytes
      Src: /src/fwupd/src/fu-jcat-sha512-engine.c:40,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-jcat-sha512-engine.c:42,1
    - Dst: FU_JCAT_RESULT
      Src: /src/fwupd/src/fu-jcat-sha512-engine.c:45,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-jcat-sha512-engine.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - engine
    - data
    - blob_signature
    - flags
    - error
    argTypes:
    - FuJcatEngine*
    - GBytes*
    - GBytes*
    - FuJcatVerifyFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 46
    functionName: fu_jcat_sha512_engine_self_verify
    functionSourceFile: /src/fwupd/src/fu-jcat-sha512-engine.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - fu_strsafe_bytes
    - g_prefix_error
    - FU_JCAT_RESULT
    - strlen
    - g_object_new
    - fu_bytes_compare
    - g_autoptr
    - g_compute_checksum_for_bytes
    linkageType: ''
    returnType: FuJcatResult
    signature: "FuJcatResult *\nfu_jcat_sha512_engine_self_verify(FuJcatEngine *engine,\n\t\t\t\t
      \ GBytes *data,\n\t\t\t\t  GBytes *blob_signature,\n\t\t\t\t  FuJcatVerifyFlags
      flags,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_ENGINE_CLASS
      Src: /src/fwupd/src/fu-jcat-sha512-engine.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJcatSha512EngineClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: fu_jcat_sha512_engine_class_init
    functionSourceFile: /src/fwupd/src/fu-jcat-sha512-engine.c
    functionUses: 0
    functionsReached:
    - FU_JCAT_ENGINE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_jcat_sha512_engine_class_init(FuJcatSha512EngineClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJcatSha512Engine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: fu_jcat_sha512_engine_init
    functionSourceFile: /src/fwupd/src/fu-jcat-sha512-engine.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_jcat_sha512_engine_init(FuJcatSha512Engine *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-sha512-engine.c:64,1
    - Dst: FU_IS_JCAT_CONTEXT
      Src: /src/fwupd/src/fu-jcat-sha512-engine.c:64,1
    - Dst: FU_JCAT_ENGINE
      Src: /src/fwupd/src/fu-jcat-sha512-engine.c:65,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-jcat-sha512-engine.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - FuJcatContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: fu_jcat_sha512_engine_new
    functionSourceFile: /src/fwupd/src/fu-jcat-sha512-engine.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_JCAT_ENGINE
    - FU_IS_JCAT_CONTEXT
    - g_object_new
    linkageType: ''
    returnType: FuJcatEngine
    signature: 'FuJcatEngine *

      fu_jcat_sha512_engine_new(FuJcatContext *context)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-udev-backend.c:46,1
    - Dst: g_error_free
      Src: /src/fwupd/src/fu-udev-backend.c:48,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-udev-backend.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuUdevBackendColdplugCacheItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: fu_udev_backend_coldplug_cache_item_free
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_free
    - g_error_free
    linkageType: ''
    returnType: void
    signature: void fu_udev_backend_coldplug_cache_item_free(FuUdevBackendColdplugCacheItem
      *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/src/fu-udev-backend.c:58,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-udev-backend.c:59,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-udev-backend.c:60,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-udev-backend.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - fn
    - udev_device
    argTypes:
    - FuUdevBackend*
    - gchar*
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: fu_udev_backend_coldplug_cache_add_device
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_object_ref
    - g_hash_table_insert
    - g_new0
    linkageType: ''
    returnType: void
    signature: "void fu_udev_backend_coldplug_cache_add_device(FuUdevBackend *self,\n\t\t\t\t\t
      \ const gchar *fn,\n\t\t\t\t\t  FuUdevDevice *udev_device)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/src/fu-udev-backend.c:68,1
    - Dst: g_error_copy
      Src: /src/fwupd/src/fu-udev-backend.c:69,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-udev-backend.c:70,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-udev-backend.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - fn
    - error
    argTypes:
    - FuUdevBackend*
    - gchar*
    - GError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: fu_udev_backend_coldplug_cache_add_error
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - g_new0
    - g_error_copy
    linkageType: ''
    returnType: void
    signature: void fu_udev_backend_coldplug_cache_add_error(FuUdevBackend *self,
      const gchar *fn, GError *error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:77,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/src/fu-udev-backend.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - backend
    - idt
    - str
    argTypes:
    - FuBackend*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: fu_udev_backend_to_string
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_BACKEND
    - fwupd_codec_string_append_bool
    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:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:86,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-udev-backend.c:89,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-udev-backend.c:89,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/src/fu-udev-backend.c:91,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:91,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-udev-backend.c:91,1
    - Dst: fu_device_probe_invalidate
      Src: /src/fwupd/src/fu-udev-backend.c:94,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-udev-backend.c:95,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-udev-backend.c:97,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-udev-backend.c:98,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/src/fu-udev-backend.c:101,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:101,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:101,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/src/fu-udev-backend.c:105,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:105,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - dpaux_device
    argTypes:
    - FuUdevBackend*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 108
    functionName: fu_udev_backend_rescan_dpaux_device
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_id
    - fu_backend_lookup_by_id
    - fu_backend_device_added
    - g_debug
    - fu_device_probe_invalidate
    - fu_device_locker_new
    - FU_DEVICE
    - fu_backend_device_removed
    - FU_BACKEND
    - g_autoptr
    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:113,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-udev-backend.c:115,1
    - Dst: fu_udev_backend_rescan_dpaux_device
      Src: /src/fwupd/src/fu-udev-backend.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: fu_udev_backend_rescan_dpaux_devices_cb
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_BACKEND
    - fu_udev_backend_rescan_dpaux_device
    - g_ptr_array_index
    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:126,1
    - Dst: g_timeout_add_seconds
      Src: /src/fwupd/src/fu-udev-backend.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 131
    functionName: fu_udev_backend_rescan_dpaux_devices
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_timeout_add_seconds
    - g_source_remove
    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:141,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:142,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-udev-backend.c:145,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/src/fu-udev-backend.c:145,1
    - Dst: fu_path_make_absolute
      Src: /src/fwupd/src/fu-udev-backend.c:146,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-udev-backend.c:148,1
    - Dst: fu_udev_backend_create_device
      Src: /src/fwupd/src/fu-udev-backend.c:151,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-udev-backend.c:153,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-udev-backend.c:156,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:156,1
    - Dst: fu_device_probe
      Src: /src/fwupd/src/fu-udev-backend.c:157,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:157,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-udev-backend.c:158,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-udev-backend.c:160,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-udev-backend.c:163,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:163,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/src/fu-udev-backend.c:164,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:164,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/src/fu-udev-backend.c:165,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:165,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - self
    - udev_device
    argTypes:
    - FuUdevBackend*
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 166
    functionName: fu_udev_backend_create_ddc_proxy
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - fu_udev_device_get_sysfs_path
    - g_debug
    - fu_device_add_private_flag
    - g_build_filename
    - FU_DEVICE
    - fu_udev_backend_create_device
    - g_warning
    - g_error_matches
    - fu_device_set_proxy_gtype
    - fu_device_set_proxy
    - g_autoptr
    - 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:189,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:190,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - subsystem
    - devtype
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 196
    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:201,1
    - Dst: fu_backend_get_context
      Src: /src/fwupd/src/fu-udev-backend.c:202,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:202,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:203,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:207,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:207,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:207,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-udev-backend.c:209,1
    - Dst: fu_udev_device_get_sysfs_path
      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: g_str_has_prefix
      Src: /src/fwupd/src/fu-udev-backend.c:210,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-udev-backend.c:210,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-udev-backend.c:211,1
    - Dst: fu_udev_backend_get_gtype_for_subsystem_devtype
      Src: /src/fwupd/src/fu-udev-backend.c:221,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:222,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:222,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/src/fu-udev-backend.c:223,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:223,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-udev-backend.c:225,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-udev-backend.c:227,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:227,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/src/fu-udev-backend.c:228,1
    - Dst: fu_device_probe
      Src: /src/fwupd/src/fu-udev-backend.c:229,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-udev-backend.c:230,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:236,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:236,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:236,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/src/fu-udev-backend.c:237,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:237,1
    - Dst: fu_udev_backend_create_ddc_proxy
      Src: /src/fwupd/src/fu-udev-backend.c:241,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:241,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:244,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:244,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:245,1
    - Dst: fu_udev_device_get_subsystem_devtype
      Src: /src/fwupd/src/fu-udev-backend.c:247,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:247,1
    - Dst: fu_context_get_plugin_names_for_udev_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:250,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-udev-backend.c:253,1
    - Dst: fu_device_add_possible_plugin
      Src: /src/fwupd/src/fu-udev-backend.c:254,1
    - Dst: g_getenv
      Src: /src/fwupd/src/fu-udev-backend.c:260,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/src/fu-udev-backend.c:261,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-udev-backend.c:262,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - backend
    - donor
    - error
    argTypes:
    - FuBackend*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 263
    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
    - fu_device_add_possible_plugin
    - fu_device_add_private_flag
    - fu_device_incorporate
    - FU_UDEV_BACKEND
    - g_object_ref
    - g_object_new
    - g_ptr_array_index
    - fu_device_probe
    - fu_udev_backend_get_gtype_for_subsystem_devtype
    - fu_udev_device_get_devtype
    - g_prefix_error_literal
    - g_str_has_prefix
    - fu_udev_device_get_subsystem
    - fu_udev_device_add_open_flag
    - fu_context_get_plugin_names_for_udev_subsystem
    - g_getenv
    - g_path_get_basename
    - fu_udev_device_get_sysfs_path
    - fu_udev_device_get_subsystem_devtype
    - FU_UDEV_DEVICE
    - FU_BACKEND
    - g_strcmp0
    - g_set_error
    - g_steal_pointer
    - fu_backend_get_context
    - g_autoptr
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_udev_backend_create_device_for_donor(FuBackend *backend, FuDevice *donor,
      GError **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_backend_get_context
      Src: /src/fwupd/src/fu-udev-backend.c:268,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:268,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:269,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:270,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:271,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-udev-backend.c:276,1
    - Dst: g_error_copy
      Src: /src/fwupd/src/fu-udev-backend.c:280,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-udev-backend.c:283,1
    - Dst: fu_udev_device_new
      Src: /src/fwupd/src/fu-udev-backend.c:288,1
    - Dst: fu_device_probe
      Src: /src/fwupd/src/fu-udev-backend.c:289,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:289,1
    - Dst: fu_udev_backend_coldplug_cache_add_error
      Src: /src/fwupd/src/fu-udev-backend.c:290,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/src/fu-udev-backend.c:291,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-udev-backend.c:292,1
    - Dst: fu_udev_backend_create_device_for_donor
      Src: /src/fwupd/src/fu-udev-backend.c:296,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:296,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:297,1
    - Dst: fu_udev_backend_coldplug_cache_add_error
      Src: /src/fwupd/src/fu-udev-backend.c:300,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-udev-backend.c:301,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-udev-backend.c:301,1
    - Dst: fu_udev_backend_coldplug_cache_add_device
      Src: /src/fwupd/src/fu-udev-backend.c:304,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:304,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:305,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-udev-backend.c:305,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - self
    - fn
    - error
    argTypes:
    - FuUdevBackend*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 306
    functionName: fu_udev_backend_create_device
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 1
    functionsReached:
    - fu_device_probe
    - fu_udev_backend_coldplug_cache_add_device
    - fu_udev_device_new
    - g_error_copy
    - g_hash_table_lookup
    - g_steal_pointer
    - fu_udev_backend_create_device_for_donor
    - g_propagate_error
    - FU_DEVICE
    - g_object_ref
    - fu_udev_backend_coldplug_cache_add_error
    - fu_backend_get_context
    - FU_BACKEND
    - g_autoptr
    - FU_UDEV_DEVICE
    - g_propagate_prefixed_error
    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:312,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:312,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-udev-backend.c:314,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-udev-backend.c:314,1
    - Dst: fu_udev_backend_rescan_dpaux_devices
      Src: /src/fwupd/src/fu-udev-backend.c:315,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:320,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:321,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/src/fu-udev-backend.c:323,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:323,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-udev-backend.c:325,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/src/fu-udev-backend.c:326,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:326,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/src/fu-udev-backend.c:330,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:330,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:330,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/src/fu-udev-backend.c:336,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:336,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:336,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuUdevBackend*
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 337
    functionName: fu_udev_backend_device_add_from_device
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_id
    - g_strcmp0
    - fu_backend_device_added
    - g_debug
    - fu_device_locker_new
    - g_ptr_array_add
    - FU_DEVICE
    - g_object_ref
    - g_autoptr
    - fu_udev_backend_rescan_dpaux_devices
    - FU_BACKEND
    - fu_udev_device_get_subsystem
    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:345,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:345,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-udev-backend.c:347,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/src/fu-udev-backend.c:350,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:351,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:351,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:351,1
    - Dst: fu_udev_backend_rescan_dpaux_devices
      Src: /src/fwupd/src/fu-udev-backend.c:353,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/src/fu-udev-backend.c:355,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - sysfs_path
    argTypes:
    - FuUdevBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 357
    functionName: fu_udev_backend_remove_device
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_remove
    - fu_backend_lookup_by_id
    - g_strcmp0
    - g_debug
    - fu_backend_device_removed
    - fu_udev_backend_rescan_dpaux_devices
    - FU_UDEV_DEVICE
    - FU_BACKEND
    - fu_udev_device_get_subsystem
    linkageType: ''
    returnType: void
    signature: void fu_udev_backend_remove_device(FuUdevBackend *self, const gchar
      *sysfs_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_number
      Src: /src/fwupd/src/fu-udev-backend.c:364,1
    - Dst: fu_udev_device_get_number
      Src: /src/fwupd/src/fu-udev-backend.c:364,1
    - Dst: fu_udev_device_get_number
      Src: /src/fwupd/src/fu-udev-backend.c:366,1
    - Dst: fu_udev_device_get_number
      Src: /src/fwupd/src/fu-udev-backend.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 369
    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:375,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:376,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:377,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-udev-backend.c:378,1
    - Dst: g_dir_open
      Src: /src/fwupd/src/fu-udev-backend.c:380,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-udev-backend.c:382,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-udev-backend.c:383,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/src/fu-udev-backend.c:386,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-udev-backend.c:387,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:389,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:390,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-udev-backend.c:392,1
    - Dst: fu_path_make_absolute
      Src: /src/fwupd/src/fu-udev-backend.c:394,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-udev-backend.c:396,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/src/fu-udev-backend.c:401,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-udev-backend.c:402,1
    - Dst: fu_udev_backend_create_device
      Src: /src/fwupd/src/fu-udev-backend.c:405,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-udev-backend.c:407,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-udev-backend.c:409,1
    - Dst: g_hash_table_add
      Src: /src/fwupd/src/fu-udev-backend.c:414,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-udev-backend.c:414,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-udev-backend.c:415,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-udev-backend.c:415,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-udev-backend.c:419,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-udev-backend.c:421,1
    - Dst: fu_udev_backend_device_add_from_device
      Src: /src/fwupd/src/fu-udev-backend.c:422,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 2
    argNames:
    - self
    - fn
    argTypes:
    - FuUdevBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 371
    functionDepth: 4
    functionLinenumber: 371
    functionLinenumberEnd: 424
    functionName: fu_udev_backend_coldplug_subsystem
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_sort
    - g_dir_open
    - g_debug
    - g_hash_table_contains
    - g_steal_pointer
    - g_ptr_array_add
    - g_hash_table_add
    - g_file_test
    - fu_udev_backend_create_device
    - g_warning
    - g_error_matches
    - g_dir_read_name
    - g_autoptr
    - fu_path_make_absolute
    - fu_udev_backend_device_add_from_device
    - g_ptr_array_new_with_free_func
    - g_build_filename
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_udev_backend_coldplug_subsystem(FuUdevBackend *self, const
      gchar *fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/src/fu-udev-backend.c:430,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:430,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-udev-backend.c:433,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-udev-backend.c:434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 444
    functionName: fu_udev_backend_devnode_wait_cb
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_device_file
    - g_file_test
    - FU_UDEV_DEVICE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_backend_devnode_wait_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: fu_backend_get_context
      Src: /src/fwupd/src/fu-udev-backend.c:452,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:452,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:458,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:459,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:460,1
    - Dst: fu_context_get_path
      Src: /src/fwupd/src/fu-udev-backend.c:462,1
    - Dst: fu_struct_udev_monitor_netlink_header_parse_bytes
      Src: /src/fwupd/src/fu-udev-backend.c:467,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/src/fu-udev-backend.c:471,1
    - Dst: fu_struct_udev_monitor_netlink_header_get_properties_off
      Src: /src/fwupd/src/fu-udev-backend.c:472,1
    - Dst: fu_struct_udev_monitor_netlink_header_get_properties_len
      Src: /src/fwupd/src/fu-udev-backend.c:473,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-udev-backend.c:479,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-udev-backend.c:482,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/src/fu-udev-backend.c:484,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-udev-backend.c:487,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-udev-backend.c:488,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-udev-backend.c:489,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:492,1
    - Dst: fu_udev_action_from_string
      Src: /src/fwupd/src/fu-udev-backend.c:493,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-udev-backend.c:495,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:506,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-udev-backend.c:507,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/src/fu-udev-backend.c:512,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:512,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:515,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:516,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:516,1
    - Dst: fu_udev_backend_rescan_dpaux_devices
      Src: /src/fwupd/src/fu-udev-backend.c:518,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-udev-backend.c:519,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:519,1
    - Dst: fu_udev_backend_remove_device
      Src: /src/fwupd/src/fu-udev-backend.c:524,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-udev-backend.c:531,1
    - Dst: fu_udev_device_new
      Src: /src/fwupd/src/fu-udev-backend.c:537,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:539,1
    - Dst: fu_udev_device_set_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:540,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:541,1
    - Dst: fu_udev_device_set_devtype
      Src: /src/fwupd/src/fu-udev-backend.c:542,1
    - Dst: fu_udev_device_add_property
      Src: /src/fwupd/src/fu-udev-backend.c:544,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-udev-backend.c:548,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-udev-backend.c:554,1
    - Dst: fu_backend_device_changed
      Src: /src/fwupd/src/fu-udev-backend.c:560,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:560,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:560,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:565,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-udev-backend.c:567,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:574,1
    - Dst: fu_udev_backend_create_device_for_donor
      Src: /src/fwupd/src/fu-udev-backend.c:574,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:574,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:575,1
    - Dst: fu_udev_backend_device_add_from_device
      Src: /src/fwupd/src/fu-udev-backend.c:581,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-udev-backend.c:584,1
    - Dst: fu_strsplit_bytes
      Src: /src/fwupd/src/fu-udev-backend.c:584,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-udev-backend.c:586,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-udev-backend.c:587,1
    - Dst: fu_context_get_path
      Src: /src/fwupd/src/fu-udev-backend.c:593,1
    - Dst: fu_udev_action_from_string
      Src: /src/fwupd/src/fu-udev-backend.c:597,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-udev-backend.c:599,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:600,1
    - Dst: fu_udev_backend_create_device
      Src: /src/fwupd/src/fu-udev-backend.c:601,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/src/fu-udev-backend.c:604,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:604,1
    - Dst: fu_udev_backend_device_add_from_device
      Src: /src/fwupd/src/fu-udev-backend.c:611,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-udev-backend.c:613,1
    - Dst: fu_udev_backend_remove_device
      Src: /src/fwupd/src/fu-udev-backend.c:614,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-udev-backend.c:616,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/src/fu-udev-backend.c:617,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:617,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-udev-backend.c:619,1
    - Dst: fu_backend_device_changed
      Src: /src/fwupd/src/fu-udev-backend.c:625,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:625,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 116
    argCount: 3
    argNames:
    - self
    - blob
    - error
    argTypes:
    - FuUdevBackend*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 449
    functionDepth: 4
    functionLinenumber: 449
    functionLinenumberEnd: 631
    functionName: fu_udev_backend_netlink_parse_blob
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - fu_backend_lookup_by_id
    - fu_strsplit_bytes
    - fu_udev_backend_create_device_for_donor
    - g_strv_length
    - fu_backend_device_changed
    - fu_context_get_path
    - g_auto
    - fu_udev_backend_rescan_dpaux_devices
    - fu_memstrsafe
    - g_set_error_literal
    - g_strsplit
    - fu_udev_backend_create_device
    - fu_udev_backend_remove_device
    - fu_udev_device_get_subsystem
    - fu_udev_device_new
    - fu_struct_udev_monitor_netlink_header_parse_bytes
    - fu_struct_udev_monitor_netlink_header_get_properties_len
    - g_bytes_get_data
    - FU_DEVICE
    - fu_udev_action_from_string
    - fu_bytes_new_offset
    - FU_UDEV_DEVICE
    - FU_BACKEND
    - fu_udev_backend_device_add_from_device
    - fu_struct_udev_monitor_netlink_header_get_properties_off
    - g_strcmp0
    - fu_udev_device_add_property
    - g_set_error
    - fu_udev_device_set_devtype
    - g_set_object
    - fu_device_retry_full
    - strlen
    - fu_backend_get_context
    - g_autoptr
    - g_build_filename
    - fu_udev_device_set_subsystem
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_backend_netlink_parse_blob(FuUdevBackend *self, GBytes
      *blob, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:636,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:641,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:642,1
    - Dst: recvfrom
      Src: /src/fwupd/src/fu-udev-backend.c:645,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-udev-backend.c:657,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-udev-backend.c:664,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-udev-backend.c:668,1
    - Dst: fu_udev_backend_netlink_parse_blob
      Src: /src/fwupd/src/fu-udev-backend.c:669,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-udev-backend.c:670,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-udev-backend.c:671,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-udev-backend.c:672,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-udev-backend.c:675,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - fd
    - condition
    - user_data
    argTypes:
    - gint
    - GIOCondition
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 633
    functionDepth: 5
    functionLinenumber: 633
    functionLinenumberEnd: 679
    functionName: fu_udev_backend_netlink_cb
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - g_debug
    - FU_UDEV_BACKEND
    - g_warning
    - g_error_matches
    - recvfrom
    - fu_udev_backend_netlink_parse_blob
    - g_autoptr
    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:686,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:693,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-udev-backend.c:697,1
    - Dst: socket
      Src: /src/fwupd/src/fu-udev-backend.c:704,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-udev-backend.c:706,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/src/fu-udev-backend.c:710,1
    - Dst: bind
      Src: /src/fwupd/src/fu-udev-backend.c:713,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-udev-backend.c:714,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/src/fu-udev-backend.c:718,1
    - Dst: g_unix_fd_source_new
      Src: /src/fwupd/src/fu-udev-backend.c:721,1
    - Dst: g_source_set_static_name
      Src: /src/fwupd/src/fu-udev-backend.c:722,1
    - Dst: g_source_set_callback
      Src: /src/fwupd/src/fu-udev-backend.c:723,1
    - Dst: g_source_set_can_recurse
      Src: /src/fwupd/src/fu-udev-backend.c:724,1
    - Dst: g_source_attach
      Src: /src/fwupd/src/fu-udev-backend.c:725,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUdevBackend*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 729
    functionName: fu_udev_backend_netlink_setup
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_source_set_static_name
    - g_source_set_callback
    - g_set_error
    - socket
    - g_set_error_literal
    - g_unix_fd_source_new
    - bind
    - getpid
    - g_source_attach
    - fwupd_strerror
    - g_autoptr
    - g_source_set_can_recurse
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_backend_netlink_setup(FuUdevBackend *self, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_backend_get_context
      Src: /src/fwupd/src/fu-udev-backend.c:734,1
    - Dst: FU_UDEV_BACKEND
      Src: /src/fwupd/src/fu-udev-backend.c:735,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:737,1
    - Dst: fu_context_get_udev_subsystems
      Src: /src/fwupd/src/fu-udev-backend.c:737,1
    - Dst: fu_context_get_path
      Src: /src/fwupd/src/fu-udev-backend.c:739,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/src/fu-udev-backend.c:744,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/src/fu-udev-backend.c:745,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-udev-backend.c:747,1
    - Dst: g_strstr_len
      Src: /src/fwupd/src/fu-udev-backend.c:752,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-udev-backend.c:753,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-udev-backend.c:757,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-udev-backend.c:758,1
    - Dst: fu_udev_backend_coldplug_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:759,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-udev-backend.c:760,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-udev-backend.c:763,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-udev-backend.c:764,1
    - Dst: fu_udev_backend_coldplug_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:765,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-udev-backend.c:766,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/src/fu-udev-backend.c:769,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/src/fu-udev-backend.c:773,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - backend
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 731
    functionDepth: 5
    functionLinenumber: 731
    functionLinenumberEnd: 776
    functionName: fu_udev_backend_coldplug
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_hash_table_remove_all
    - fu_udev_backend_coldplug_subsystem
    - fu_context_get_udev_subsystems
    - fu_progress_set_steps
    - fu_progress_step_done
    - g_file_test
    - FU_UDEV_BACKEND
    - g_strstr_len
    - fu_context_get_path
    - fu_backend_get_context
    - g_autoptr
    - g_build_filename
    - g_ptr_array_index
    - fu_progress_set_id
    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:784,1
    - Dst: fu_udev_backend_netlink_setup
      Src: /src/fwupd/src/fu-udev-backend.c:788,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-udev-backend.c:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - backend
    - flags
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuBackendSetupFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 796
    functionName: fu_udev_backend_setup
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_BACKEND
    - g_prefix_error_literal
    - fu_udev_backend_netlink_setup
    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:804,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:806,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/src/fu-udev-backend.c:809,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-udev-backend.c:813,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-udev-backend.c:813,1
    - Dst: fu_udev_backend_get_gtype_for_subsystem_devtype
      Src: /src/fwupd/src/fu-udev-backend.c:814,1
    - Dst: g_strconcat
      Src: /src/fwupd/src/fu-udev-backend.c:816,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/src/fu-udev-backend.c:816,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:816,1
    - Dst: g_strconcat
      Src: /src/fwupd/src/fu-udev-backend.c:822,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/src/fu-udev-backend.c:822,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:822,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-udev-backend.c:826,1
    - Dst: fu_backend_get_context
      Src: /src/fwupd/src/fu-udev-backend.c:828,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/src/fu-udev-backend.c:832,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:832,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:833,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-udev-backend.c:833,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-udev-backend.c:836,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/src/fu-udev-backend.c:836,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:836,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-udev-backend.c:838,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-udev-backend.c:845,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-udev-backend.c:846,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-udev-backend.c:857,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/src/fu-udev-backend.c:860,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:861,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-udev-backend.c:861,1
    - Dst: fu_udev_backend_create_device
      Src: /src/fwupd/src/fu-udev-backend.c:865,1
    - Dst: fu_udev_device_match_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:867,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-udev-backend.c:869,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-udev-backend.c:869,1
    - Dst: fu_udev_device_set_subsystem
      Src: /src/fwupd/src/fu-udev-backend.c:870,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:872,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-udev-backend.c:872,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-udev-backend.c:875,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-udev-backend.c:876,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-udev-backend.c:880,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-udev-backend.c:881,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-udev-backend.c:885,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 4
    argNames:
    - backend
    - device
    - subsystem
    - error
    argTypes:
    - FuBackend*
    - FuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 798
    functionDepth: 4
    functionLinenumber: 798
    functionLinenumberEnd: 891
    functionName: fu_udev_backend_get_device_parent
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_UDEV_BACKEND
    - g_object_new
    - g_free
    - g_auto
    - fu_udev_device_match_subsystem
    - fu_udev_backend_get_gtype_for_subsystem_devtype
    - g_set_error_literal
    - g_strsplit
    - g_path_get_dirname
    - fu_device_has_flag
    - fu_udev_backend_create_device
    - fu_udev_device_get_sysfs_path
    - FU_DEVICE
    - g_warning
    - FU_UDEV_DEVICE
    - g_strconcat
    - g_strdup
    - g_strcmp0
    - g_set_error
    - g_steal_pointer
    - g_file_test
    - g_error_matches
    - fu_backend_get_context
    - g_autoptr
    - fu_udev_device_set_subsystem
    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:896,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/src/fu-udev-backend.c:897,1
    - Dst: fu_udev_backend_create_device
      Src: /src/fwupd/src/fu-udev-backend.c:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - backend
    - backend_id
    - error
    argTypes:
    - FuBackend*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 893
    functionDepth: 4
    functionLinenumber: 893
    functionLinenumberEnd: 898
    functionName: fu_udev_backend_create_device_impl
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - FU_UDEV_BACKEND
    - fu_udev_backend_create_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:903,1
    - Dst: g_source_remove
      Src: /src/fwupd/src/fu-udev-backend.c:905,1
    - Dst: g_close
      Src: /src/fwupd/src/fu-udev-backend.c:907,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/src/fu-udev-backend.c:908,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/src/fu-udev-backend.c:909,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-udev-backend.c:910,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-udev-backend.c:911,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 912
    functionName: fu_udev_backend_finalize
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - g_source_remove
    - g_ptr_array_unref
    - g_close
    - G_OBJECT_CLASS
    - FU_UDEV_BACKEND
    - g_hash_table_unref
    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:917,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/src/fu-udev-backend.c:919,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-udev-backend.c:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 924
    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:929,1
    - Dst: FU_BACKEND_CLASS
      Src: /src/fwupd/src/fu-udev-backend.c:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUdevBackendClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 938
    functionName: fu_udev_backend_class_init
    functionSourceFile: /src/fwupd/src/fu-udev-backend.c
    functionUses: 0
    functionsReached:
    - FU_BACKEND_CLASS
    - G_OBJECT_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:943,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-udev-backend.c:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 951
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list-test.c:16,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/src/fu-remote-list-test.c:16,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-remote-list-test.c:22,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/src/fu-remote-list-test.c:25,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-list-test.c:26,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-remote-list-test.c:27,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-remote-list-test.c:28,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/src/fu-remote-list-test.c:29,1
    - Dst: fu_path_store_set_tmpdir
      Src: /src/fwupd/src/fu-remote-list-test.c:30,1
    - Dst: fu_path_store_set_tmpdir
      Src: /src/fwupd/src/fu-remote-list-test.c:31,1
    - Dst: fu_remote_list_new
      Src: /src/fwupd/src/fu-remote-list-test.c:32,1
    - Dst: fu_remote_list_set_lvfs_metadata_format
      Src: /src/fwupd/src/fu-remote-list-test.c:34,1
    - Dst: fu_remote_list_load
      Src: /src/fwupd/src/fu-remote-list-test.c:35,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-list-test.c:36,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-remote-list-test.c:37,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-remote-list-test.c:40,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-list-test.c:41,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-remote-list-test.c:42,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-list-test.c:43,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-remote-list-test.c:43,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-remote-list-test.c:48,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-list-test.c:49,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-remote-list-test.c:50,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-list-test.c:51,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-remote-list-test.c:51,1
    - Dst: fu_remote_list_get_by_id
      Src: /src/fwupd/src/fu-remote-list-test.c:56,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-remote-list-test.c:57,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-remote-list-test.c:58,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-remote-list-test.c:59,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/src/fu-remote-list-test.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 11
    functionDepth: 7
    functionLinenumber: 11
    functionLinenumberEnd: 62
    functionName: fu_remote_list_repair_func
    functionSourceFile: /src/fwupd/src/fu-remote-list-test.c
    functionUses: 0
    functionsReached:
    - fu_remote_list_new
    - fu_path_store_set_path
    - fu_remote_list_load
    - g_assert_nonnull
    - g_assert_no_error
    - fu_path_store_set_tmpdir
    - fwupd_remote_get_metadata_uri
    - fu_remote_list_set_lvfs_metadata_format
    - g_test_build_filename
    - g_assert_true
    - fu_temporary_directory_new
    - g_assert_cmpstr
    - g_autoptr
    - fu_remote_list_get_by_id
    - fu_path_store_new
    linkageType: ''
    returnType: void
    signature: void fu_remote_list_repair_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-remote-list-test.c:67,1
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-remote-list-test.c:68,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-remote-list-test.c:69,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-remote-list-test.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-remote-list-test.c
    functionUses: 2
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-util.c:84,1
    - Dst: fwupd_client_get_status
      Src: /src/fwupd/src/fu-util.c:85,1
    - Dst: fwupd_client_get_percentage_full
      Src: /src/fwupd/src/fu-util.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - object
    - pspec
    - self
    argTypes:
    - GObject*
    - GParamSpec*
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: fu_util_client_notify_cb
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_percentage_full
    - fwupd_client_get_status
    - fu_console_set_progress
    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:93,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/src/fu-util.c:97,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util.c:102,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:102,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:103,1
    - Dst: fwupd_request_get_message
      Src: /src/fwupd/src/fu-util.c:103,1
    - Dst: fu_console_set_progress_title
      Src: /src/fwupd/src/fu-util.c:104,1
    - Dst: fu_console_beep
      Src: /src/fwupd/src/fu-util.c:105,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/src/fu-util.c:109,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:110,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - client
    - request
    - self
    argTypes:
    - FwupdClient*
    - FwupdRequest*
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 111
    functionName: fu_util_update_device_request_cb
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_console_beep
    - fwupd_request_get_kind
    - fu_console_set_progress_title
    - g_ptr_array_add
    - fu_console_color_format
    - _
    - g_strdup_printf
    - g_object_ref
    - fwupd_request_get_message
    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:123,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:125,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:130,1
    - Dst: fwupd_device_get_composite_id
      Src: /src/fwupd/src/fu-util.c:130,1
    - Dst: fwupd_device_get_composite_id
      Src: /src/fwupd/src/fu-util.c:131,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-util.c:132,1
    - Dst: fwupd_device_get_status
      Src: /src/fwupd/src/fu-util.c:137,1
    - Dst: fwupd_device_get_status
      Src: /src/fwupd/src/fu-util.c:138,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:139,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:140,1
    - Dst: fwupd_status_to_string
      Src: /src/fwupd/src/fu-util.c:141,1
    - Dst: fwupd_device_get_status
      Src: /src/fwupd/src/fu-util.c:141,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:148,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:148,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:148,1
    - Dst: fu_console_set_progress_title
      Src: /src/fwupd/src/fu-util.c:149,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:152,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:152,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:152,1
    - Dst: fu_console_set_progress_title
      Src: /src/fwupd/src/fu-util.c:153,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:156,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:156,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:156,1
    - Dst: fu_console_set_progress_title
      Src: /src/fwupd/src/fu-util.c:157,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-util.c:159,1
    - Dst: g_set_object
      Src: /src/fwupd/src/fu-util.c:161,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - client
    - device
    - self
    argTypes:
    - FwupdClient*
    - FwupdDevice*
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 162
    functionName: fu_util_update_device_changed_cb
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fwupd_device_get_name
    - g_debug
    - fwupd_device_get_composite_id
    - fwupd_device_get_status
    - fu_console_set_progress_title
    - g_set_object
    - _
    - g_strdup_printf
    - g_warning
    - fwupd_device_has_flag
    - fwupd_status_to_string
    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:169,1
    - Dst: fwupd_device_array_filter_flags
      Src: /src/fwupd/src/fu-util.c:172,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:181,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:183,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:187,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:188,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:190,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:195,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:203,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:203,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:205,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:206,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:209,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:210,1
    - Dst: fu_console_input_uint
      Src: /src/fwupd/src/fu-util.c:213,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:213,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:215,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:221,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:222,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - self
    - devices
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 223
    functionName: fu_util_prompt_for_device
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 12
    functionsReached:
    - fu_console_print
    - fwupd_device_get_name
    - g_set_error_literal
    - fwupd_device_get_id
    - _
    - g_object_ref
    - fu_console_input_uint
    - g_autoptr
    - fwupd_device_array_filter_flags
    - g_ptr_array_index
    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:228,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:229,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:230,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-util.c:230,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:231,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-util.c:231,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:232,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:233,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:238,1
    - Dst: fwupd_client_get_history
      Src: /src/fwupd/src/fu-util.c:243,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:245,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:247,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:247,1
    - Dst: fwupd_client_get_remotes
      Src: /src/fwupd/src/fu-util.c:252,1
    - Dst: g_hash_table_new
      Src: /src/fwupd/src/fu-util.c:255,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:257,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:259,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-util.c:261,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:263,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-util.c:264,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:265,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/src/fu-util.c:266,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:267,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-util.c:268,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:270,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:271,1
    - Dst: fwupd_remote_get_title
      Src: /src/fwupd/src/fu-util.c:271,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:282,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/src/fu-util.c:283,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-util.c:287,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:291,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:293,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-util.c:297,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:299,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:299,1
    - Dst: g_hash_table_lookup
      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_update_state
      Src: /src/fwupd/src/fu-util.c:309,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:310,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/src/fu-util.c:311,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:312,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:314,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:315,1
    - Dst: fwupd_update_state_to_string
      Src: /src/fwupd/src/fu-util.c:316,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/src/fu-util.c:316,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:322,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:326,1
    - Dst: fu_console_line
      Src: /src/fwupd/src/fu-util.c:330,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:334,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:336,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:338,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/src/fu-util.c:339,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:340,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:342,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util.c:343,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util.c:344,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:350,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:352,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:354,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/src/fu-util.c:355,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:356,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:358,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util.c:359,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util.c:360,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:365,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:367,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:370,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:374,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:376,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:377,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:381,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:384,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:385,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-util.c:386,1
    - Dst: fwupd_client_modify_remote
      Src: /src/fwupd/src/fu-util.c:388,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:397,1
    - Dst: fu_util_report_history
      Src: /src/fwupd/src/fu-util.c:406,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:411,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:415,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:418,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:419,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-util.c:420,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:422,1
    - Dst: fwupd_client_modify_remote
      Src: /src/fwupd/src/fu-util.c:425,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 117
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 438
    functionName: fu_util_perhaps_show_unreported
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - fwupd_remote_get_title
    - fwupd_client_get_remotes
    - g_hash_table_lookup
    - fwupd_device_get_update_state
    - _
    - g_ptr_array_index
    - fu_console_input_bool
    - fwupd_update_state_to_string
    - fu_console_print
    - fwupd_release_get_remote_id
    - g_debug
    - g_set_error_literal
    - g_hash_table_new
    - fwupd_remote_get_report_uri
    - fwupd_device_get_release_default
    - g_propagate_error
    - fwupd_remote_get_id
    - fwupd_remote_has_flag
    - g_ptr_array_new
    - fwupd_device_get_id
    - fu_console_print_literal
    - fwupd_device_get_version
    - fwupd_client_modify_remote
    - fwupd_device_get_name
    - fu_util_report_history
    - fwupd_client_get_history
    - g_steal_pointer
    - g_ptr_array_add
    - g_error_matches
    - fu_console_line
    - fwupd_device_match_flags
    - fwupd_device_has_flag
    - g_autoptr
    - fwupd_release_get_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_perhaps_show_unreported(FuUtil *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:444,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-util.c:445,1
    - Dst: fu_util_is_interesting_device
      Src: /src/fwupd/src/fu-util.c:449,1
    - Dst: fwupd_device_get_parent
      Src: /src/fwupd/src/fu-util.c:451,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-util.c:452,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:452,1
    - Dst: fu_util_build_device_tree
      Src: /src/fwupd/src/fu-util.c:453,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - self
    - root
    - devs
    - dev
    argTypes:
    - FuUtil*
    - FuUtilNode*
    - GPtrArray*
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 456
    functionName: fu_util_build_device_tree
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 3
    functionsReached:
    - fwupd_device_get_parent
    - g_node_append_data
    - g_object_ref
    - fwupd_device_match_flags
    - fu_util_build_device_tree
    - g_ptr_array_index
    - fu_util_is_interesting_device
    linkageType: ''
    returnType: void
    signature: void fu_util_build_device_tree(FuUtil *self, FuUtilNode *root, GPtrArray
      *devs, FwupdDevice *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:461,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util.c:461,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:462,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/src/fu-util.c:462,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:465,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:466,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util.c:466,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:467,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/src/fu-util.c:471,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util.c:471,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/src/fu-util.c:472,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/src/fu-util.c:474,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-util.c:475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - rels
    argTypes:
    - FuUtil*
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 476
    functionName: fu_util_get_releases_as_json
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - FWUPD_CODEC
    - fu_util_print_json_object
    - fwupd_json_object_new
    - fwupd_codec_to_json
    - fwupd_json_array_new
    - fwupd_json_array_add_object
    - fwupd_release_match_flags
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_util_get_releases_as_json(FuUtil *self, GPtrArray *rels)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:481,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util.c:481,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:482,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/src/fu-util.c:482,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:485,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:486,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:487,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:488,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util.c:488,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-util.c:491,1
    - Dst: fwupd_client_get_releases
      Src: /src/fwupd/src/fu-util.c:497,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:498,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:502,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:505,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:506,1
    - Dst: fwupd_device_add_release
      Src: /src/fwupd/src/fu-util.c:510,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/src/fu-util.c:515,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util.c:515,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/src/fu-util.c:516,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/src/fu-util.c:518,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-util.c:519,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - self
    - devs
    argTypes:
    - FuUtil*
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 520
    functionName: fu_util_get_devices_as_json
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 1
    functionsReached:
    - fwupd_json_object_add_array
    - FWUPD_CODEC
    - fwupd_device_add_release
    - fu_util_print_json_object
    - g_debug
    - fwupd_json_object_new
    - fwupd_device_get_id
    - fwupd_codec_to_json
    - fwupd_json_array_new
    - fwupd_json_array_add_object
    - fwupd_device_match_flags
    - fwupd_release_match_flags
    - g_autoptr
    - fwupd_client_get_releases
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_util_get_devices_as_json(FuUtil *self, GPtrArray *devs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:526,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:527,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:528,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:532,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:534,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:536,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:541,1
    - Dst: fu_util_get_device_by_id
      Src: /src/fwupd/src/fu-util.c:542,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:545,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:547,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:554,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:558,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:565,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 566
    functionName: fu_util_check_reboot_needed
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_devices
    - g_set_error_literal
    - fu_util_get_device_by_id
    - _
    - g_strv_length
    - fwupd_device_has_flag
    - g_autoptr
    - g_ptr_array_index
    - fu_util_prompt_complete
    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:571,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-util.c:571,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:572,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:575,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-util.c:576,1
    - Dst: fu_util_get_device_by_id
      Src: /src/fwupd/src/fu-util.c:578,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:581,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:584,1
    - Dst: fu_util_get_devices_as_json
      Src: /src/fwupd/src/fu-util.c:591,1
    - Dst: fu_util_build_device_tree
      Src: /src/fwupd/src/fu-util.c:597,1
    - Dst: g_node_n_children
      Src: /src/fwupd/src/fu-util.c:598,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:599,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:603,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-util.c:606,1
    - Dst: fu_util_perhaps_show_unreported
      Src: /src/fwupd/src/fu-util.c:609,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 613
    functionName: fu_util_get_devices
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_devices
    - g_node_new
    - fu_util_print_node
    - g_set_error_literal
    - fu_util_get_device_by_id
    - g_ptr_array_add
    - fu_util_perhaps_show_unreported
    - _
    - g_strv_length
    - fu_util_get_devices_as_json
    - g_autoptr
    - fu_util_build_device_tree
    - g_ptr_array_new_with_free_func
    - g_node_n_children
    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:618,1
    - Dst: fwupd_client_get_plugins
      Src: /src/fwupd/src/fu-util.c:621,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-util.c:624,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:626,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util.c:626,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-util.c:627,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-util.c:628,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:634,1
    - Dst: fu_util_plugin_to_string
      Src: /src/fwupd/src/fu-util.c:635,1
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/src/fu-util.c:635,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:636,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 615
    functionDepth: 3
    functionLinenumber: 615
    functionLinenumberEnd: 641
    functionName: fu_util_get_plugins
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_sort
    - fu_util_print_json_object
    - fwupd_client_get_plugins
    - fwupd_json_object_new
    - fu_util_plugin_to_string
    - FWUPD_PLUGIN
    - fu_console_print_literal
    - fwupd_codec_array_to_json
    - g_autoptr
    - g_ptr_array_index
    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:647,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-util.c:650,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:651,1
    - Dst: fu_util_is_url
      Src: /src/fwupd/src/fu-util.c:652,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:653,1
    - Dst: fu_util_get_user_cache_path
      Src: /src/fwupd/src/fu-util.c:656,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-util.c:657,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:658,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/src/fu-util.c:659,1
    - Dst: fwupd_client_download_bytes
      Src: /src/fwupd/src/fu-util.c:661,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/src/fu-util.c:670,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:672,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - self
    - perhapsfn
    - error
    argTypes:
    - FuUtil*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 673
    functionName: fu_util_download_if_required
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - fwupd_client_download_bytes
    - g_steal_pointer
    - g_file_test
    - fu_bytes_set_contents
    - g_autoptr
    - fu_util_get_user_cache_path
    - fu_util_is_url
    - fu_path_mkdir_parent
    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:682,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:682,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:686,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:687,1
    - Dst: fu_util_request_get_message
      Src: /src/fwupd/src/fu-util.c:687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 689
    functionName: fu_util_display_current_message
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 5
    functionsReached:
    - _
    - fu_util_request_get_message
    - fu_console_print_literal
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_util_display_current_message(FuUtil *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_unref
      Src: /src/fwupd/src/fu-util.c:704,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-util.c:705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuUtilDeviceTestHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 706
    functionName: fu_util_device_test_helper_free
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_hash_table_unref
    - g_free
    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:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 713
    functionName: fu_util_device_test_helper_new
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_new0
    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:720,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-util.c:721,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:723,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-util.c:724,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:728,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:728,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:731,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:737,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - devices
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 738
    functionName: fu_util_filter_devices
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_steal_pointer
    - g_ptr_array_add
    - g_object_ref
    - fwupd_device_match_flags
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_util_filter_devices(FuUtil *self, GPtrArray *devices, GError **error)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:750,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:751,1
    - Dst: fwupd_json_object_get_string_with_default
      Src: /src/fwupd/src/fu-util.c:754,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:757,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/src/fu-util.c:758,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/src/fu-util.c:759,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/src/fu-util.c:761,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/src/fu-util.c:764,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/src/fu-util.c:767,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/src/fu-util.c:768,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:771,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:772,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/src/fu-util.c:774,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:778,1
    - Dst: fwupd_client_get_devices_by_guid
      Src: /src/fwupd/src/fu-util.c:780,1
    - Dst: fu_util_filter_devices
      Src: /src/fwupd/src/fu-util.c:783,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:787,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:794,1
    - Dst: fwupd_device_has_protocol
      Src: /src/fwupd/src/fu-util.c:795,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:797,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util.c:803,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:805,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:807,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:809,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/src/fu-util.c:814,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:816,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util.c:816,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:817,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util.c:821,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/src/fu-util.c:828,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:830,1
    - Dst: fwupd_device_get_version_bootloader
      Src: /src/fwupd/src/fu-util.c:830,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:831,1
    - Dst: fwupd_device_get_version_bootloader
      Src: /src/fwupd/src/fu-util.c:835,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/src/fu-util.c:842,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:844,1
    - Dst: fwupd_device_get_branch
      Src: /src/fwupd/src/fu-util.c:844,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:845,1
    - Dst: fwupd_device_get_branch
      Src: /src/fwupd/src/fu-util.c:849,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util.c:859,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:859,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:860,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:861,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:863,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 80
    argCount: 5
    argNames:
    - self
    - helper
    - json_obj
    - json_object_result
    - error
    argTypes:
    - FuUtil*
    - FuUtilDeviceTestHelper*
    - FwupdJsonObject*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 740
    functionDepth: 2
    functionLinenumber: 740
    functionLinenumberEnd: 868
    functionName: fu_util_device_test_component
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - _
    - g_object_ref
    - fwupd_device_get_version_bootloader
    - g_ptr_array_index
    - fu_console_print
    - fwupd_json_array_get_size
    - fwupd_json_array_get_string
    - g_debug
    - g_set_error_literal
    - fwupd_json_object_get_array
    - fwupd_json_object_get_string_with_default
    - fwupd_device_get_branch
    - fu_console_color_format
    - fwupd_client_get_devices_by_guid
    - fwupd_device_get_version
    - fwupd_json_object_get_string
    - fwupd_device_has_protocol
    - fwupd_json_object_add_string
    - fu_util_filter_devices
    - g_strcmp0
    - g_set_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_device_test_component(FuUtil *self,\n\t\t\t      FuUtilDeviceTestHelper
      *helper,\n\t\t\t      FwupdJsonObject *json_obj,\n\t\t\t      FwupdJsonObject
      *json_object_result,\n\t\t\t      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:873,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:875,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:879,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:880,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:881,1
    - Dst: fwupd_client_modify_device
      Src: /src/fwupd/src/fu-util.c:883,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:884,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:889,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:890,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/src/fu-util.c:893,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:894,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 902
    functionName: fu_util_device_test_remove_emulated_devices
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_modify_device
    - fwupd_client_get_devices
    - g_debug
    - fwupd_device_get_id
    - g_steal_pointer
    - g_error_matches
    - fwupd_device_has_flag
    - g_autoptr
    - g_ptr_array_index
    - g_propagate_prefixed_error
    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:907,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-util.c:909,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:910,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/src/fu-util.c:911,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:912,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/src/fu-util.c:915,1
    - Dst: fwupd_remote_get_firmware_base_uri
      Src: /src/fwupd/src/fu-util.c:918,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:919,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:920,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:922,1
    - Dst: fwupd_remote_get_firmware_base_uri
      Src: /src/fwupd/src/fu-util.c:922,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - maybe_basename
    - error
    argTypes:
    - FuUtil*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 923
    functionName: fu_util_maybe_expand_basename
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_debug
    - g_strdup_printf
    - fwupd_remote_get_firmware_base_uri
    - fwupd_client_get_remote_by_id
    - g_str_has_prefix
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_util_maybe_expand_basename(FuUtil *self, const gchar *maybe_basename, GError
      **error)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:933,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:939,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/src/fu-util.c:942,1
    - Dst: fu_util_maybe_expand_basename
      Src: /src/fwupd/src/fu-util.c:944,1
    - Dst: fu_util_download_if_required
      Src: /src/fwupd/src/fu-util.c:948,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:950,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:954,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/src/fu-util.c:955,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/src/fu-util.c:962,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/src/fu-util.c:966,1
    - Dst: fwupd_client_emulation_load
      Src: /src/fwupd/src/fu-util.c:969,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:973,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:974,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/src/fu-util.c:978,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:979,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/src/fu-util.c:987,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:991,1
    - Dst: fu_util_maybe_expand_basename
      Src: /src/fwupd/src/fu-util.c:993,1
    - Dst: fu_util_download_if_required
      Src: /src/fwupd/src/fu-util.c:996,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:998,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/src/fu-util.c:1003,1
    - Dst: fwupd_client_install
      Src: /src/fwupd/src/fu-util.c:1008,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:1014,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/src/fu-util.c:1016,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-util.c:1021,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:1023,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:1031,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:1031,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/src/fu-util.c:1037,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/src/fu-util.c:1040,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1041,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/src/fu-util.c:1042,1
    - Dst: fu_util_device_test_component
      Src: /src/fwupd/src/fu-util.c:1045,1
    - Dst: fu_util_device_test_remove_emulated_devices
      Src: /src/fwupd/src/fu-util.c:1055,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-util.c:1056,1
    - Dst: fwupd_json_object_add_boolean
      Src: /src/fwupd/src/fu-util.c:1062,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 85
    argCount: 5
    argNames:
    - self
    - helper
    - json_obj
    - json_object_result
    - error
    argTypes:
    - FuUtil*
    - FuUtilDeviceTestHelper*
    - FwupdJsonObject*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 925
    functionDepth: 3
    functionLinenumber: 925
    functionLinenumberEnd: 1064
    functionName: fu_util_device_test_step
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_json_array_get_object
    - fu_console_print
    - fu_util_download_if_required
    - g_debug
    - fwupd_json_array_get_size
    - g_prefix_error_literal
    - fwupd_json_object_get_array
    - g_propagate_error
    - fu_util_maybe_expand_basename
    - fwupd_client_install
    - fu_util_device_test_component
    - fu_util_device_test_remove_emulated_devices
    - fu_console_color_format
    - fwupd_json_object_get_string
    - fwupd_json_object_add_string
    - g_strdup
    - g_steal_pointer
    - g_prefix_error
    - fwupd_client_emulation_load
    - fwupd_json_object_add_boolean
    - g_error_matches
    - g_autoptr
    - g_propagate_prefixed_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_util_device_test_step(FuUtil *self,\n\t\t\t FuUtilDeviceTestHelper
      *helper,\n\t\t\t FwupdJsonObject *json_obj,\n\t\t\t FwupdJsonObject *json_object_result,\n\t\t\t
      GError **error)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1075,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1076,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1077,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1078,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/src/fu-util.c:1078,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1079,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1080,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1081,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/src/fu-util.c:1081,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1082,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/src/fu-util.c:1085,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/src/fu-util.c:1086,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/src/fu-util.c:1087,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/src/fu-util.c:1090,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/src/fu-util.c:1093,1
    - Dst: fwupd_json_parser_load_from_bytes
      Src: /src/fwupd/src/fu-util.c:1097,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-util.c:1099,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/src/fu-util.c:1102,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/src/fu-util.c:1107,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/src/fu-util.c:1109,1
    - Dst: fwupd_json_object_get_boolean_with_default
      Src: /src/fwupd/src/fu-util.c:1110,1
    - Dst: fwupd_json_object_add_boolean
      Src: /src/fwupd/src/fu-util.c:1116,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/src/fu-util.c:1118,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-util.c:1121,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/src/fu-util.c:1122,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/src/fu-util.c:1124,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:1127,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/src/fu-util.c:1138,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/src/fu-util.c:1142,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/src/fu-util.c:1143,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/src/fu-util.c:1145,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:1148,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/src/fu-util.c:1160,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/src/fu-util.c:1163,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/src/fu-util.c:1166,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/src/fu-util.c:1168,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1169,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1170,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util.c:1170,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/src/fu-util.c:1172,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/src/fu-util.c:1175,1
    - Dst: fu_util_device_test_step
      Src: /src/fwupd/src/fu-util.c:1176,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 86
    argCount: 5
    argNames:
    - self
    - helper
    - filename
    - json_object_result
    - error
    argTypes:
    - FuUtil*
    - FuUtilDeviceTestHelper*
    - gchar*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1066
    functionDepth: 4
    functionLinenumber: 1066
    functionLinenumberEnd: 1187
    functionName: fu_util_device_test_filename
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - fwupd_json_object_add_array
    - fwupd_json_parser_load_from_bytes
    - fwupd_json_parser_set_max_quoted
    - g_hash_table_lookup
    - fwupd_json_array_new
    - fwupd_json_object_get_boolean_with_default
    - fwupd_json_array_get_object
    - fwupd_json_parser_set_max_items
    - fwupd_json_array_get_size
    - fwupd_json_array_get_string
    - fwupd_json_object_new
    - g_prefix_error_literal
    - fwupd_json_object_get_array
    - fwupd_json_array_add_object
    - fu_util_device_test_step
    - fwupd_json_parser_new
    - fwupd_json_object_get_string
    - fwupd_json_node_get_object
    - fwupd_json_object_add_string
    - g_strcmp0
    - fu_bytes_get_contents
    - fwupd_json_object_add_boolean
    - g_autoptr
    - fwupd_json_object_get_integer_with_default
    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     FwupdJsonObject *json_object_result,\n\t\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/src/fu-util.c:1197,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-util.c:1198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuUtilInhibitHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1194
    functionDepth: 0
    functionLinenumber: 1194
    functionLinenumberEnd: 1199
    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:1207,1
    - Dst: fwupd_client_uninhibit
      Src: /src/fwupd/src/fu-util.c:1209,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-util.c:1213,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/src/fu-util.c:1215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuUtilInhibitHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1203
    functionDepth: 1
    functionLinenumber: 1203
    functionLinenumberEnd: 1217
    functionName: fu_util_inhibit_timeout_cb
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_warning
    - g_autoptr
    - fwupd_client_uninhibit
    - g_main_loop_quit
    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:1224,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-util.c:1224,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1225,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util.c:1225,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1227,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1229,1
    - Dst: fu_strtoull
      Src: /src/fwupd/src/fu-util.c:1230,1
    - Dst: fwupd_client_inhibit
      Src: /src/fwupd/src/fu-util.c:1241,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1245,1
    - Dst: g_timeout_source_new
      Src: /src/fwupd/src/fu-util.c:1245,1
    - Dst: g_source_set_callback
      Src: /src/fwupd/src/fu-util.c:1246,1
    - Dst: g_source_attach
      Src: /src/fwupd/src/fu-util.c:1250,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:1254,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1254,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:1255,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:1257,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1259,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:1261,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:1264,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1264,1
    - Dst: fu_console_box
      Src: /src/fwupd/src/fu-util.c:1266,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1266,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/src/fu-util.c:1267,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1269
    functionName: fu_util_inhibit
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_inhibit
    - g_string_append
    - g_new0
    - g_timeout_source_new
    - g_source_set_callback
    - fu_strtoull
    - fu_console_box
    - g_main_loop_run
    - _
    - g_strv_length
    - g_string_new
    - g_source_attach
    - g_string_append_printf
    - g_autoptr
    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:1275,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1276,1
    - Dst: fwupd_client_uninhibit
      Src: /src/fwupd/src/fu-util.c:1284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1271
    functionDepth: 1
    functionLinenumber: 1271
    functionLinenumberEnd: 1285
    functionName: fu_util_uninhibit
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_strv_length
    - g_set_error_literal
    - fwupd_client_uninhibit
    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:1297,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1297,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/src/fu-util.c:1298,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/src/fu-util.c:1300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - client
    - device
    - helper
    argTypes:
    - FwupdClient*
    - FwupdDevice*
    - FuUtilWaitHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1293
    functionDepth: 1
    functionLinenumber: 1293
    functionLinenumberEnd: 1303
    functionName: fu_util_device_wait_added_cb
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_device_has_guid
    - fwupd_device_get_id
    - g_strcmp0
    - g_main_loop_quit
    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:1309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1311
    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:1316,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1317,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1318,1
    - Dst: g_timeout_source_new_seconds
      Src: /src/fwupd/src/fu-util.c:1318,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1319,1
    - Dst: g_timer_new
      Src: /src/fwupd/src/fu-util.c:1319,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1323,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1324,1
    - Dst: fwupd_client_get_device_by_id
      Src: /src/fwupd/src/fu-util.c:1332,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:1335,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1335,1
    - Dst: fwupd_client_get_devices_by_guid
      Src: /src/fwupd/src/fu-util.c:1338,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:1341,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1341,1
    - Dst: fu_console_set_progress
      Src: /src/fwupd/src/fu-util.c:1346,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-util.c:1347,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-util.c:1347,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-util.c:1349,1
    - Dst: g_source_set_callback
      Src: /src/fwupd/src/fu-util.c:1351,1
    - Dst: g_source_attach
      Src: /src/fwupd/src/fu-util.c:1352,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/src/fu-util.c:1353,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:1357,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/src/fu-util.c:1362,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:1367,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1369,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/src/fu-util.c:1370,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1372
    functionName: fu_util_device_wait
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_source_set_callback
    - fwupd_client_get_device_by_id
    - g_main_loop_run
    - _
    - g_strv_length
    - g_timer_elapsed
    - fu_console_print
    - g_signal_connect
    - g_set_error_literal
    - fu_console_set_progress
    - g_source_attach
    - fwupd_client_get_devices_by_guid
    - fu_console_print_literal
    - FWUPD_CLIENT
    - g_timeout_source_new_seconds
    - g_set_error
    - G_CALLBACK
    - g_timer_new
    - g_autoptr
    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:1378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1374
    functionDepth: 1
    functionLinenumber: 1374
    functionLinenumberEnd: 1379
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1387,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/src/fu-util.c:1387,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1393,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1394,1
    - Dst: fwupd_client_get_report_metadata
      Src: /src/fwupd/src/fu-util.c:1403,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1409,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util.c:1409,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/src/fu-util.c:1410,1
    - Dst: fu_util_device_test_filename
      Src: /src/fwupd/src/fu-util.c:1411,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:1416,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1423,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util.c:1423,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/src/fu-util.c:1424,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-util.c:1425,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1431,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util.c:1431,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:1432,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util.c:1435,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-util.c:1437,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:1445,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1450,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1454,1
    - Dst: fu_util_perhaps_show_unreported
      Src: /src/fwupd/src/fu-util.c:1462,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 4
    argNames:
    - self
    - values
    - helper
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - FuUtilDeviceTestHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1381
    functionDepth: 5
    functionLinenumber: 1381
    functionLinenumberEnd: 1467
    functionName: fu_util_device_test_full
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_report_metadata
    - fwupd_json_object_add_array
    - fu_util_print_json_object
    - g_set_error
    - fwupd_json_object_new
    - g_set_error_literal
    - fu_util_perhaps_show_unreported
    - g_prefix_error
    - fu_util_device_test_filename
    - fwupd_json_array_new
    - fu_console_print_full
    - g_strv_length
    - fwupd_json_array_add_object
    - g_string_new
    - g_string_append_printf
    - ngettext
    - g_autoptr
    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:1472,1
    - Dst: fu_util_device_test_helper_new
      Src: /src/fwupd/src/fu-util.c:1472,1
    - Dst: fu_util_device_test_full
      Src: /src/fwupd/src/fu-util.c:1476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1469
    functionDepth: 6
    functionLinenumber: 1469
    functionLinenumberEnd: 1477
    functionName: fu_util_device_emulate
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_device_test_full
    - g_autoptr
    - fu_util_device_test_helper_new
    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:1482,1
    - Dst: fu_util_device_test_helper_new
      Src: /src/fwupd/src/fu-util.c:1482,1
    - Dst: fu_util_device_test_full
      Src: /src/fwupd/src/fu-util.c:1484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1479
    functionDepth: 6
    functionLinenumber: 1479
    functionLinenumberEnd: 1485
    functionName: fu_util_device_test
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_device_test_full
    - g_autoptr
    - fu_util_device_test_helper_new
    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:1491,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1494,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1495,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/src/fu-util.c:1503,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-util.c:1505,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:1506,1
    - Dst: fwupd_client_download_bytes
      Src: /src/fwupd/src/fu-util.c:1513,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/src/fu-util.c:1520,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-util.c:1521,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-util.c:1522,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1487
    functionDepth: 1
    functionLinenumber: 1487
    functionLinenumberEnd: 1524
    functionName: fu_util_download
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_path_get_basename
    - g_set_error
    - g_bytes_get_data
    - g_set_error_literal
    - g_file_test
    - g_strv_length
    - g_bytes_get_size
    - g_autoptr
    - g_file_set_contents
    - fwupd_client_download_bytes
    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:1531,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1534,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1536,1
    - Dst: fu_util_get_device_by_id
      Src: /src/fwupd/src/fu-util.c:1537,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1540,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1542,1
    - Dst: fu_util_download_if_required
      Src: /src/fwupd/src/fu-util.c:1552,1
    - Dst: fu_util_prompt_warning_fde
      Src: /src/fwupd/src/fu-util.c:1558,1
    - Dst: fwupd_client_install
      Src: /src/fwupd/src/fu-util.c:1562,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-util.c:1570,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:1574,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:1579,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1526
    functionDepth: 2
    functionLinenumber: 1526
    functionLinenumberEnd: 1580
    functionName: fu_util_local_install
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_install
    - fu_util_download_if_required
    - g_debug
    - fwupd_device_get_id
    - g_set_error_literal
    - fu_util_get_device_by_id
    - g_strv_length
    - fu_util_display_current_message
    - fu_util_prompt_warning_fde
    - g_autoptr
    - fu_util_prompt_complete
    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:1585,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1586,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-util.c:1586,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1589,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1590,1
    - Dst: fwupd_client_get_details
      Src: /src/fwupd/src/fu-util.c:1600,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1604,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util.c:1604,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-util.c:1605,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-util.c:1606,1
    - Dst: fu_util_build_device_tree
      Src: /src/fwupd/src/fu-util.c:1610,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-util.c:1611,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1582
    functionDepth: 2
    functionLinenumber: 1582
    functionLinenumberEnd: 1614
    functionName: fu_util_get_details
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_node_new
    - fu_util_print_json_object
    - fu_util_print_node
    - fwupd_json_object_new
    - g_set_error_literal
    - fwupd_client_get_details
    - g_strv_length
    - fu_util_build_device_tree
    - fwupd_codec_array_to_json
    - g_autoptr
    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:1627,1
    - Dst: fwupd_client_get_report_metadata
      Src: /src/fwupd/src/fu-util.c:1630,1
    - Dst: fwupd_client_build_report_history
      Src: /src/fwupd/src/fu-util.c:1633,1
    - Dst: fwupd_client_self_sign
      Src: /src/fwupd/src/fu-util.c:1643,1
    - Dst: fwupd_remote_build_report_uri
      Src: /src/fwupd/src/fu-util.c:1653,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:1657,1
    - Dst: fu_console_print_kv
      Src: /src/fwupd/src/fu-util.c:1658,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1658,1
    - Dst: fu_console_print_kv
      Src: /src/fwupd/src/fu-util.c:1659,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1659,1
    - Dst: fu_console_print_kv
      Src: /src/fwupd/src/fu-util.c:1661,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1661,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:1662,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1662,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1663,1
    - Dst: fwupd_client_upload_report
      Src: /src/fwupd/src/fu-util.c:1672,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:1683,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:1684,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1688,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: 1694
      start: 1616
    functionDepth: 1
    functionLinenumber: 1616
    functionLinenumberEnd: 1694
    functionName: fu_util_report_history_for_remote
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_report_metadata
    - fu_console_print
    - fwupd_client_upload_report
    - g_strcmp0
    - fwupd_remote_has_flag
    - g_set_error_literal
    - fwupd_client_build_report_history
    - _
    - fu_console_print_kv
    - fwupd_client_self_sign
    - fwupd_remote_build_report_uri
    - g_autoptr
    - fu_console_input_bool
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1699,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1700,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util.c:1700,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/src/fu-util.c:1704,1
    - Dst: fu_util_report_history_for_remote
      Src: /src/fwupd/src/fu-util.c:1707,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:1716,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:1717,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1717,1
    - Dst: fwupd_client_modify_device
      Src: /src/fwupd/src/fu-util.c:1718,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1719,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:1728,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util.c:1731,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:1735,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - devices
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1696
    functionDepth: 2
    functionLinenumber: 1696
    functionLinenumberEnd: 1737
    functionName: fu_util_report_history_force
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_modify_device
    - g_debug
    - fwupd_device_get_id
    - fu_console_print_literal
    - g_string_new
    - fu_util_report_history_for_remote
    - fwupd_client_get_remote_by_id
    - g_string_append_printf
    - ngettext
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_report_history_force(FuUtil *self, GPtrArray *devices,
      GError **error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1742,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1743,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-util.c:1744,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1745,1
    - Dst: fwupd_client_get_history
      Src: /src/fwupd/src/fu-util.c:1748,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:1751,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:1754,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1758,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1760,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/src/fu-util.c:1761,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:1761,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:1766,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-util.c:1770,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:1775,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:1776,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1776,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/src/fu-util.c:1782,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/src/fu-util.c:1783,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:1784,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1785,1
    - Dst: fwupd_update_state_to_string
      Src: /src/fwupd/src/fu-util.c:1786,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/src/fu-util.c:1786,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:1789,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:1789,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1794,1
    - Dst: fwupd_client_get_report_metadata
      Src: /src/fwupd/src/fu-util.c:1802,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:1808,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1811,1
    - Dst: fu_zip_firmware_new
      Src: /src/fwupd/src/fu-util.c:1811,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1812,1
    - Dst: fu_zip_file_new
      Src: /src/fwupd/src/fu-util.c:1812,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1813,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1814,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1815,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-util.c:1815,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:1818,1
    - Dst: fwupd_client_build_report_history
      Src: /src/fwupd/src/fu-util.c:1819,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-util.c:1826,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-util.c:1826,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/src/fu-util.c:1827,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/src/fu-util.c:1828,1
    - Dst: fu_zip_file_set_compression
      Src: /src/fwupd/src/fu-util.c:1829,1
    - Dst: FU_ZIP_FILE
      Src: /src/fwupd/src/fu-util.c:1829,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/src/fu-util.c:1830,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1836,1
    - Dst: fu_zip_file_new
      Src: /src/fwupd/src/fu-util.c:1836,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1837,1
    - Dst: fwupd_client_self_sign
      Src: /src/fwupd/src/fu-util.c:1839,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-util.c:1846,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-util.c:1846,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/src/fu-util.c:1847,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/src/fu-util.c:1848,1
    - Dst: fu_zip_file_set_compression
      Src: /src/fwupd/src/fu-util.c:1849,1
    - Dst: FU_ZIP_FILE
      Src: /src/fwupd/src/fu-util.c:1849,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/src/fu-util.c:1851,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:1856,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1856,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/src/fu-util.c:1857,1
    - Dst: fu_firmware_write_file
      Src: /src/fwupd/src/fu-util.c:1858,1
    - Dst: fu_console_print_kv
      Src: /src/fwupd/src/fu-util.c:1862,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1862,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 80
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1739
    functionDepth: 1
    functionLinenumber: 1739
    functionLinenumberEnd: 1867
    functionName: fu_util_report_export
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_report_metadata
    - g_bytes_new
    - fwupd_device_get_update_state
    - g_object_ref
    - g_strv_length
    - fu_zip_firmware_new
    - fu_firmware_set_bytes
    - g_strdup_printf
    - fu_console_print_kv
    - _
    - g_ptr_array_index
    - fwupd_update_state_to_string
    - fu_zip_file_new
    - g_debug
    - fu_firmware_add_image
    - g_set_error_literal
    - fwupd_client_build_report_history
    - fwupd_device_has_guid
    - fu_zip_file_set_compression
    - fwupd_client_self_sign
    - g_file_new_for_path
    - g_ptr_array_new_with_free_func
    - fu_firmware_write_file
    - g_ptr_array_new
    - fwupd_device_get_id
    - g_strcmp0
    - fu_firmware_set_id
    - fwupd_client_get_history
    - g_ptr_array_add
    - strlen
    - fwupd_device_match_flags
    - fwupd_device_has_flag
    - g_autoptr
    - FU_ZIP_FILE
    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:1873,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1874,1
    - Dst: fwupd_client_get_history
      Src: /src/fwupd/src/fu-util.c:1878,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:1881,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:1886,1
    - Dst: fwupd_device_remove_flag
      Src: /src/fwupd/src/fu-util.c:1887,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:1893,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:1894,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:1895,1
    - Dst: g_get_prgname
      Src: /src/fwupd/src/fu-util.c:1895,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:1896,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:1900,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:1901,1
    - Dst: fwupd_client_get_remotes
      Src: /src/fwupd/src/fu-util.c:1907,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:1911,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1912,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:1916,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:1917,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:1917,1
    - Dst: fu_util_report_history_for_remote
      Src: /src/fwupd/src/fu-util.c:1922,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:1927,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:1929,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:1929,1
    - Dst: fu_util_report_history_force
      Src: /src/fwupd/src/fu-util.c:1940,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1941,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:1950,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:1951,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1951,1
    - Dst: fwupd_client_modify_device
      Src: /src/fwupd/src/fu-util.c:1952,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:1953,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:1962,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 3
    argNames:
    - self
    - only_automatic_reports
    - error
    argTypes:
    - FuUtil*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1964
      start: 1869
    functionDepth: 3
    functionLinenumber: 1869
    functionLinenumberEnd: 1964
    functionName: fu_util_report_history_full
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_remotes
    - _
    - g_strdup_printf
    - fu_util_report_history_force
    - g_autoptr
    - g_ptr_array_index
    - fu_console_print
    - fwupd_device_remove_flag
    - g_debug
    - g_set_error_literal
    - g_propagate_error
    - fwupd_remote_get_id
    - fwupd_remote_has_flag
    - fwupd_device_get_id
    - fu_console_print_literal
    - fwupd_client_modify_device
    - fwupd_device_get_name
    - fwupd_client_get_history
    - g_steal_pointer
    - g_error_matches
    - fu_util_report_history_for_remote
    - fwupd_device_has_flag
    - g_get_prgname
    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:1969,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:1970,1
    - Dst: fu_util_report_history_full
      Src: /src/fwupd/src/fu-util.c:1976,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1966
    functionDepth: 4
    functionLinenumber: 1966
    functionLinenumberEnd: 1977
    functionName: fu_util_report_history
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 1
    functionsReached:
    - fu_util_report_history_full
    - g_strv_length
    - g_set_error_literal
    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:1982,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1983,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-util.c:1983,1
    - Dst: fwupd_client_get_history
      Src: /src/fwupd/src/fu-util.c:1986,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:1992,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util.c:1992,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-util.c:1993,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-util.c:1994,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2000,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-util.c:2004,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-util.c:2008,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2008,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/src/fu-util.c:2010,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-util.c:2013,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2013,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-util.c:2016,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 1979
    functionDepth: 2
    functionLinenumber: 1979
    functionLinenumberEnd: 2019
    functionName: fu_util_get_history
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_node_new
    - fu_util_print_json_object
    - fu_util_print_node
    - fwupd_json_object_new
    - g_node_append_data
    - fwupd_client_get_history
    - g_object_ref
    - fwupd_device_get_release_default
    - fwupd_device_match_flags
    - fwupd_codec_array_to_json
    - g_autoptr
    - g_ptr_array_index
    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:2024,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2025,1
    - Dst: fwupd_client_get_devices_by_guid
      Src: /src/fwupd/src/fu-util.c:2027,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-util.c:2030,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2035,1
    - Dst: fwupd_client_get_device_by_id
      Src: /src/fwupd/src/fu-util.c:2042,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FuUtil*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 2021
    functionDepth: 1
    functionLinenumber: 2021
    functionLinenumberEnd: 2043
    functionName: fu_util_get_device_by_id
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 3
    functionsReached:
    - fwupd_client_get_device_by_id
    - g_set_error_literal
    - fu_util_prompt_for_device
    - fwupd_guid_is_valid
    - fwupd_client_get_devices_by_guid
    - g_autoptr
    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:2048,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:2051,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:2052,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:2053,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:2054,1
    - Dst: fu_util_get_device_by_id
      Src: /src/fwupd/src/fu-util.c:2056,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2060,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:2068,1
    - Dst: fu_util_prompt_for_device
      Src: /src/fwupd/src/fu-util.c:2071,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2072
      start: 2045
    functionDepth: 2
    functionLinenumber: 2045
    functionLinenumberEnd: 2072
    functionName: fu_util_get_device_or_prompt
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_devices
    - g_debug
    - g_set_error_literal
    - fu_util_get_device_by_id
    - fu_util_prompt_for_device
    - g_strv_length
    - g_autoptr
    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:2080,1
    - Dst: fwupd_client_get_releases
      Src: /src/fwupd/src/fu-util.c:2083,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2084,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2092,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-util.c:2093,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util.c:2093,1
    - Dst: fwupd_device_get_version_format
      Src: /src/fwupd/src/fu-util.c:2095,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2096,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:2101,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:2106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - device
    - version
    - error
    argTypes:
    - FuUtil*
    - FwupdDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 2074
    functionDepth: 1
    functionLinenumber: 2074
    functionLinenumberEnd: 2108
    functionName: fu_util_get_release_for_device_version
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_device_get_name
    - g_set_error
    - fwupd_device_get_id
    - fu_version_compare
    - fwupd_release_get_version
    - g_object_ref
    - fwupd_device_get_version_format
    - g_autoptr
    - fwupd_client_get_releases
    - g_ptr_array_index
    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:2113,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:2115,1
    - Dst: fwupd_client_clear_results
      Src: /src/fwupd/src/fu-util.c:2119,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2110
    functionDepth: 3
    functionLinenumber: 2110
    functionLinenumberEnd: 2123
    functionName: fu_util_clear_results
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_clear_results
    - fwupd_device_get_id
    - g_autoptr
    - fu_util_get_device_or_prompt
    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:2128,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:2131,1
    - Dst: fwupd_client_verify_update
      Src: /src/fwupd/src/fu-util.c:2135,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2136,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:2139,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:2139,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2144,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2125
    functionDepth: 3
    functionLinenumber: 2125
    functionLinenumberEnd: 2147
    functionName: fu_util_verify_update
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_device_get_name
    - fwupd_device_get_id
    - g_prefix_error
    - fwupd_client_verify_update
    - _
    - fu_console_print_literal
    - fu_util_get_device_or_prompt
    - g_autoptr
    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:2152,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/src/fu-util.c:2155,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2158,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2161,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2162,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2165,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:2168,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2168,1
    - Dst: fwupd_client_modify_remote
      Src: /src/fwupd/src/fu-util.c:2170,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:2171,1
    - Dst: fu_util_modify_remote_warning
      Src: /src/fwupd/src/fu-util.c:2177,1
    - Dst: fwupd_client_refresh_remote
      Src: /src/fwupd/src/fu-util.c:2181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2186
      start: 2149
    functionDepth: 3
    functionLinenumber: 2149
    functionLinenumberEnd: 2186
    functionName: fu_util_download_metadata_enable_lvfs
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_id
    - fu_util_modify_remote_warning
    - fwupd_client_refresh_remote
    - _
    - fu_console_print_literal
    - fwupd_client_get_remote_by_id
    - fwupd_client_modify_remote
    - 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:2191,1
    - Dst: fwupd_client_get_remotes
      Src: /src/fwupd/src/fu-util.c:2195,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2199,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:2200,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-util.c:2202,1
    - Dst: fwupd_remote_needs_refresh
      Src: /src/fwupd/src/fu-util.c:2205,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:2207,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:2208,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/src/fu-util.c:2209,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/src/fu-util.c:2210,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/src/fu-util.c:2211,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2214,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - self
    - age_oldest
    - error
    argTypes:
    - FuUtil*
    - guint64*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2188
    functionDepth: 1
    functionLinenumber: 2188
    functionLinenumberEnd: 2223
    functionName: fu_util_check_oldest_remote
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fwupd_remote_get_id
    - fwupd_remote_has_flag
    - fwupd_remote_get_kind
    - fwupd_client_get_remotes
    - g_set_error_literal
    - fwupd_remote_needs_refresh
    - fwupd_remote_get_age
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_check_oldest_remote(FuUtil *self, guint64 *age_oldest,
      GError **error)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2232,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2233,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2234,1
    - Dst: fwupd_client_get_remotes
      Src: /src/fwupd/src/fu-util.c:2236,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2240,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:2241,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-util.c:2243,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:2246,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/src/fu-util.c:2247,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/src/fu-util.c:2248,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:2249,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:2250,1
    - Dst: fwupd_remote_needs_refresh
      Src: /src/fwupd/src/fu-util.c:2254,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:2255,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:2256,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/src/fu-util.c:2257,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:2261,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2263,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:2264,1
    - Dst: fwupd_client_refresh_remote
      Src: /src/fwupd/src/fu-util.c:2265,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:2278,1
    - Dst: fu_util_download_metadata_enable_lvfs
      Src: /src/fwupd/src/fu-util.c:2282,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:2288,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2293,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:2302,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2308,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:2309,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:2311,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2317,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2317,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-util.c:2320,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2325,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-util.c:2327,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util.c:2332,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-util.c:2336,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util.c:2341,1
    - Dst: fu_util_report_history_full
      Src: /src/fwupd/src/fu-util.c:2350,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:2351,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:2352,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:2352,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:2355,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 66
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2225
    functionDepth: 4
    functionLinenumber: 2225
    functionLinenumberEnd: 2360
    functionName: fu_util_download_metadata
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 1
    functionsReached:
    - fu_util_report_history_full
    - fwupd_client_get_devices
    - fwupd_remote_get_kind
    - fwupd_client_get_remotes
    - fwupd_remote_needs_refresh
    - _
    - g_ptr_array_index
    - fu_console_print
    - g_debug
    - fwupd_remote_get_password
    - fu_util_download_metadata_enable_lvfs
    - g_propagate_error
    - fwupd_remote_get_id
    - fwupd_remote_has_flag
    - fwupd_client_refresh_remote
    - fwupd_remote_get_username
    - fu_console_print_full
    - fu_console_print_literal
    - g_set_error
    - g_steal_pointer
    - fwupd_remote_get_age
    - g_error_matches
    - ngettext
    - fwupd_device_has_flag
    - g_autoptr
    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:2365,1
    - Dst: fu_util_download_metadata
      Src: /src/fwupd/src/fu-util.c:2366,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:2367,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2368,1
    - Dst: fwupd_client_update_metadata
      Src: /src/fwupd/src/fu-util.c:2376,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2388,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2388,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2390
      start: 2362
    functionDepth: 1
    functionLinenumber: 2362
    functionLinenumberEnd: 2390
    functionName: fu_util_refresh
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - _
    - g_strv_length
    - fu_console_print_literal
    - fu_util_download_metadata
    - 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:2396,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2397,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:2399,1
    - Dst: fwupd_client_get_results
      Src: /src/fwupd/src/fu-util.c:2403,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2404,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2410,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util.c:2410,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/src/fu-util.c:2411,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util.c:2411,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-util.c:2412,1
    - Dst: fu_util_device_to_string
      Src: /src/fwupd/src/fu-util.c:2415,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2418
      start: 2392
    functionDepth: 3
    functionLinenumber: 2392
    functionLinenumberEnd: 2418
    functionName: fu_util_get_results
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_print_json_object
    - FWUPD_CODEC
    - fwupd_json_object_new
    - fwupd_device_get_id
    - fu_util_device_to_string
    - fwupd_codec_to_json
    - fu_console_print_literal
    - fu_util_get_device_or_prompt
    - g_autoptr
    - fwupd_client_get_results
    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:2423,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2424,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:2427,1
    - Dst: fwupd_client_get_releases
      Src: /src/fwupd/src/fu-util.c:2432,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2433,1
    - Dst: fu_util_get_releases_as_json
      Src: /src/fwupd/src/fu-util.c:2441,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2447,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2447,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/src/fu-util.c:2450,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2452,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:2454,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-util.c:2458,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util.c:2458,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2459,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2462,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-util.c:2462,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2464,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:2465,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-util.c:2469,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2469,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-util.c:2471,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2475
      start: 2420
    functionDepth: 3
    functionLinenumber: 2420
    functionLinenumberEnd: 2475
    functionName: fu_util_get_releases
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_to_string
    - fu_util_get_releases_as_json
    - FWUPD_CODEC
    - g_node_new
    - fu_util_print_node
    - g_node_append_data
    - fwupd_device_get_id
    - g_log_get_debug_enabled
    - _
    - g_object_ref
    - fu_console_print_literal
    - fu_util_get_device_or_prompt
    - fwupd_release_match_flags
    - g_autoptr
    - fwupd_client_get_releases
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_releases(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2480,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:2483,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2484,1
    - Dst: fwupd_client_search
      Src: /src/fwupd/src/fu-util.c:2492,1
    - Dst: fu_util_get_releases_as_json
      Src: /src/fwupd/src/fu-util.c:2498,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2503,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2507,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/src/fu-util.c:2510,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2512,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:2514,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-util.c:2518,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util.c:2518,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2519,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2522,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-util.c:2522,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2524,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:2525,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-util.c:2529,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2529,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-util.c:2531,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2535
      start: 2477
    functionDepth: 3
    functionLinenumber: 2477
    functionLinenumberEnd: 2535
    functionName: fu_util_search
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_to_string
    - fu_util_get_releases_as_json
    - FWUPD_CODEC
    - g_node_new
    - fu_util_print_node
    - fwupd_client_search
    - g_node_append_data
    - g_set_error_literal
    - g_log_get_debug_enabled
    - _
    - g_object_ref
    - g_strv_length
    - fu_console_print_literal
    - fwupd_release_match_flags
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_search(FuUtil *self, gchar **values, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2542,1
    - Dst: fwupd_release_array_filter_flags
      Src: /src/fwupd/src/fu-util.c:2545,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2554,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2555,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:2559,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2559,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2561,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:2562,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util.c:2565,1
    - Dst: fu_console_input_uint
      Src: /src/fwupd/src/fu-util.c:2568,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2568,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2570,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2576,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - self
    - rels_unfiltered
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2578
      start: 2537
    functionDepth: 1
    functionLinenumber: 2537
    functionLinenumberEnd: 2578
    functionName: fu_util_prompt_for_release
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_console_print
    - fwupd_release_array_filter_flags
    - g_set_error_literal
    - _
    - g_object_ref
    - fu_console_input_uint
    - g_autoptr
    - fwupd_release_get_version
    - g_ptr_array_index
    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:2583,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:2586,1
    - Dst: fwupd_client_verify
      Src: /src/fwupd/src/fu-util.c:2590,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2591,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:2594,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:2594,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2599,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2602
      start: 2580
    functionDepth: 3
    functionLinenumber: 2580
    functionLinenumberEnd: 2602
    functionName: fu_util_verify
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_device_get_name
    - fwupd_device_get_id
    - g_prefix_error
    - _
    - fwupd_client_verify
    - fu_console_print_literal
    - fu_util_get_device_or_prompt
    - g_autoptr
    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:2607,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:2610,1
    - Dst: fwupd_client_unlock
      Src: /src/fwupd/src/fu-util.c:2614,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2614,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:2618,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:2620,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:2623,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2604
    functionDepth: 3
    functionLinenumber: 2604
    functionLinenumberEnd: 2624
    functionName: fu_util_unlock
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_device_get_id
    - fu_util_get_device_or_prompt
    - fwupd_device_has_flag
    - fwupd_client_unlock
    - 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:2634,1
    - Dst: fu_util_check_oldest_remote
      Src: /src/fwupd/src/fu-util.c:2638,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:2647,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util.c:2650,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:2656,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2660,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2662,1
    - Dst: fu_util_download_metadata
      Src: /src/fwupd/src/fu-util.c:2667,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2626
    functionDepth: 2
    functionLinenumber: 2626
    functionLinenumberEnd: 2668
    functionName: fu_util_perhaps_refresh_remotes
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_console_print
    - g_debug
    - _
    - fu_util_check_oldest_remote
    - ngettext
    - fu_util_download_metadata
    - fu_console_input_bool
    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:2673,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util.c:2673,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2674,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/src/fu-util.c:2674,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2677,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2678,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2679,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2680,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util.c:2680,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:2683,1
    - Dst: fwupd_client_get_upgrades
      Src: /src/fwupd/src/fu-util.c:2687,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2688,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:2692,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2696,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:2697,1
    - Dst: fwupd_device_add_release
      Src: /src/fwupd/src/fu-util.c:2701,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/src/fu-util.c:2705,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-util.c:2705,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/src/fu-util.c:2706,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/src/fu-util.c:2708,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-util.c:2709,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - self
    - devices
    argTypes:
    - FuUtil*
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2710
      start: 2670
    functionDepth: 2
    functionLinenumber: 2670
    functionLinenumberEnd: 2710
    functionName: fu_util_get_updates_as_json
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 1
    functionsReached:
    - fwupd_client_get_upgrades
    - fwupd_json_object_add_array
    - FWUPD_CODEC
    - fwupd_device_add_release
    - fu_util_print_json_object
    - g_debug
    - fwupd_json_object_new
    - fwupd_device_get_id
    - fwupd_codec_to_json
    - fwupd_json_array_new
    - fwupd_json_array_add_object
    - fwupd_device_has_flag
    - fwupd_release_match_flags
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_util_get_updates_as_json(FuUtil *self, GPtrArray *devices)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2715,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2717,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-util.c:2717,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2718,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-util.c:2718,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2719,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-util.c:2719,1
    - Dst: fu_util_perhaps_refresh_remotes
      Src: /src/fwupd/src/fu-util.c:2722,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:2726,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:2727,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-util.c:2731,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:2732,1
    - Dst: fu_util_get_device_by_id
      Src: /src/fwupd/src/fu-util.c:2733,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:2735,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:2742,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-util.c:2745,1
    - Dst: fu_util_get_updates_as_json
      Src: /src/fwupd/src/fu-util.c:2749,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2754,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2755,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2756,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:2760,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:2761,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-util.c:2763,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:2767,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:2768,1
    - Dst: fwupd_client_get_upgrades
      Src: /src/fwupd/src/fu-util.c:2774,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2775,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:2779,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:2781,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-util.c:2784,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2784,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2788,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:2789,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-util.c:2793,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2793,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2799,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2802,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2804,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:2805,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:2805,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2809,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2812,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2814,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:2815,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:2815,1
    - Dst: fu_util_perhaps_show_unreported
      Src: /src/fwupd/src/fu-util.c:2820,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2825,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2829,1
    - Dst: g_node_n_nodes
      Src: /src/fwupd/src/fu-util.c:2833,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2834,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2838,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-util.c:2842,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 80
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2846
      start: 2712
    functionDepth: 3
    functionLinenumber: 2712
    functionLinenumberEnd: 2846
    functionName: fu_util_get_updates
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_upgrades
    - fwupd_client_get_devices
    - g_node_n_nodes
    - fu_util_print_node
    - _
    - g_object_ref
    - g_strv_length
    - fwupd_release_match_flags
    - g_ptr_array_index
    - g_ptr_array_sort
    - fu_console_print
    - g_node_new
    - g_debug
    - fu_util_get_updates_as_json
    - g_set_error_literal
    - fu_util_perhaps_show_unreported
    - g_ptr_array_new_with_free_func
    - g_ptr_array_new
    - fwupd_device_get_id
    - fu_util_get_device_by_id
    - fu_console_print_literal
    - fwupd_device_get_name
    - g_set_error
    - g_node_append_data
    - g_ptr_array_add
    - fwupd_device_match_flags
    - fu_util_perhaps_refresh_remotes
    - fwupd_device_has_flag
    - g_autoptr
    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:2851,1
    - Dst: g_node_new
      Src: /src/fwupd/src/fu-util.c:2851,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2852,1
    - Dst: fwupd_client_get_remotes
      Src: /src/fwupd/src/fu-util.c:2854,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2858,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util.c:2858,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-util.c:2859,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-util.c:2860,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:2866,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2866,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2871,1
    - Dst: g_node_append_data
      Src: /src/fwupd/src/fu-util.c:2872,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2872,1
    - Dst: fu_util_print_node
      Src: /src/fwupd/src/fu-util.c:2874,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2877
      start: 2848
    functionDepth: 2
    functionLinenumber: 2848
    functionLinenumberEnd: 2877
    functionName: fu_util_get_remotes
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_node_new
    - fu_util_print_json_object
    - fu_util_print_node
    - fwupd_json_object_new
    - g_node_append_data
    - fwupd_client_get_remotes
    - _
    - g_object_ref
    - fu_console_print_literal
    - fwupd_codec_array_to_json
    - g_autoptr
    - g_ptr_array_index
    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:2882,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util.c:2883,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-util.c:2883,1
    - Dst: fwupd_client_get_releases
      Src: /src/fwupd/src/fu-util.c:2886,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2887,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2893,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:2894,1
    - Dst: fwupd_release_has_tag
      Src: /src/fwupd/src/fu-util.c:2899,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2900,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2905,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: 2910
      start: 2879
    functionDepth: 1
    functionLinenumber: 2879
    functionLinenumberEnd: 2910
    functionName: fu_util_get_release_with_tag
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_device_get_id
    - g_set_error_literal
    - fwupd_release_has_tag
    - g_strsplit
    - g_object_ref
    - g_auto
    - fwupd_release_match_flags
    - g_autoptr
    - fwupd_client_get_releases
    - g_ptr_array_index
    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:2915,1
    - Dst: fwupd_client_get_releases
      Src: /src/fwupd/src/fu-util.c:2918,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2919,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:2925,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:2926,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:2930,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-util.c:2930,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:2931,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2935,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - self
    - dev
    - branch
    - error
    argTypes:
    - FuUtil*
    - FwupdDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2940
      start: 2912
    functionDepth: 1
    functionLinenumber: 2912
    functionLinenumberEnd: 2940
    functionName: fu_util_get_release_with_branch
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fwupd_device_get_id
    - g_set_error_literal
    - g_object_ref
    - fwupd_release_match_flags
    - g_autoptr
    - fwupd_client_get_releases
    - fwupd_release_get_branch
    - g_ptr_array_index
    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:2945,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:2946,1
    - Dst: g_get_prgname
      Src: /src/fwupd/src/fu-util.c:2946,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2947,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2948,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:2949,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util.c:2949,1
    - Dst: fu_util_get_release_with_tag
      Src: /src/fwupd/src/fu-util.c:2956,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:2958,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:2959,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:2960,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:2960,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:2963,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:2963,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:2968,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util.c:2968,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util.c:2968,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:2973,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2973,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:2974,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:2975,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2979,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util.c:2980,1
    - Dst: fu_console_box
      Src: /src/fwupd/src/fu-util.c:2983,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2987,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:2992,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:2992,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:2993,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - self
    - dev
    - rel
    - error
    argTypes:
    - FuUtil*
    - FwupdDevice*
    - FwupdRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3002
      start: 2942
    functionDepth: 2
    functionLinenumber: 2942
    functionLinenumberEnd: 3002
    functionName: fu_util_prompt_warning_bkc
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - _
    - g_strdup_printf
    - fu_console_input_bool
    - g_debug
    - g_set_error_literal
    - g_string_new
    - g_propagate_error
    - g_string_append
    - fwupd_device_get_id
    - fwupd_device_get_version
    - g_get_prgname
    - g_strcmp0
    - g_steal_pointer
    - fu_console_box
    - g_error_matches
    - fwupd_client_get_host_bkc
    - g_string_append_printf
    - fu_util_get_release_with_tag
    - g_autoptr
    - fwupd_release_get_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_prompt_warning_bkc(FuUtil *self, FwupdDevice *dev,
      FwupdRelease *rel, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3008,1
    - Dst: fwupd_checksum_get_best
      Src: /src/fwupd/src/fu-util.c:3011,1
    - Dst: fwupd_release_get_checksums
      Src: /src/fwupd/src/fu-util.c:3011,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:3013,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:3018,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3022,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3023,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3024,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:3027,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:3027,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:3027,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:3031,1
    - Dst: fwupd_device_get_composite_id
      Src: /src/fwupd/src/fu-util.c:3031,1
    - Dst: fwupd_device_get_composite_id
      Src: /src/fwupd/src/fu-util.c:3032,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:3036,1
    - Dst: fwupd_client_get_releases
      Src: /src/fwupd/src/fu-util.c:3038,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:3039,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:3043,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3049,1
    - Dst: fwupd_release_has_checksum
      Src: /src/fwupd/src/fu-util.c:3053,1
    - Dst: fu_version_compare
      Src: /src/fwupd/src/fu-util.c:3055,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util.c:3055,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/src/fu-util.c:3056,1
    - Dst: fwupd_device_get_version_format
      Src: /src/fwupd/src/fu-util.c:3057,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:3060,1
    - Dst: fwupd_client_get_host_vendor
      Src: /src/fwupd/src/fu-util.c:3061,1
    - Dst: fwupd_client_get_host_product
      Src: /src/fwupd/src/fu-util.c:3062,1
    - Dst: fu_util_prompt_warning
      Src: /src/fwupd/src/fu-util.c:3063,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 4
    argNames:
    - self
    - dev
    - rel
    - error
    argTypes:
    - FuUtil*
    - FwupdDevice*
    - FwupdRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3071
      start: 3004
    functionDepth: 3
    functionLinenumber: 3004
    functionLinenumberEnd: 3071
    functionName: fu_util_prompt_warning_composite
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_devices
    - fwupd_checksum_get_best
    - g_strdup_printf
    - fwupd_client_get_host_product
    - g_ptr_array_index
    - fwupd_release_has_checksum
    - g_debug
    - fwupd_client_get_releases
    - fwupd_client_get_host_vendor
    - fwupd_device_get_id
    - fwupd_release_get_checksums
    - fu_util_prompt_warning
    - fwupd_device_get_version_format
    - g_strcmp0
    - fwupd_device_get_composite_id
    - fu_version_compare
    - fu_device_get_version
    - fwupd_device_has_flag
    - g_autoptr
    - fwupd_release_get_version
    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:3079,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:3080,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3081,1
    - Dst: fu_util_device_problems_to_strings
      Src: /src/fwupd/src/fu-util.c:3081,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:3084,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3086,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3089,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-util.c:3090,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3096,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3100,1
    - Dst: fwupd_client_get_host_product
      Src: /src/fwupd/src/fu-util.c:3104,1
    - Dst: fu_util_prompt_warning
      Src: /src/fwupd/src/fu-util.c:3105,1
    - Dst: fu_util_prompt_warning_fde
      Src: /src/fwupd/src/fu-util.c:3107,1
    - Dst: fu_util_prompt_warning_composite
      Src: /src/fwupd/src/fu-util.c:3109,1
    - Dst: fu_util_prompt_warning_bkc
      Src: /src/fwupd/src/fu-util.c:3111,1
    - Dst: fwupd_client_install_release
      Src: /src/fwupd/src/fu-util.c:3114,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - self
    - dev
    - rel
    - error
    argTypes:
    - FuUtil*
    - FwupdDevice*
    - FwupdRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3121
      start: 3073
    functionDepth: 4
    functionLinenumber: 3073
    functionLinenumberEnd: 3121
    functionName: fu_util_update_device_with_release
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_console_print
    - fu_util_prompt_warning_composite
    - fwupd_device_get_name
    - g_set_error_literal
    - fwupd_client_install_release
    - _
    - fu_console_print_full
    - fu_util_prompt_warning_bkc
    - fu_util_prompt_warning_fde
    - fu_util_prompt_warning
    - fwupd_device_has_flag
    - g_autoptr
    - fu_util_device_problems_to_strings
    - fwupd_client_get_host_product
    - g_ptr_array_index
    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:3126,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3127,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-util.c:3128,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:3129,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/src/fu-util.c:3132,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/src/fu-util.c:3133,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:3138,1
    - Dst: fu_util_report_history
      Src: /src/fwupd/src/fu-util.c:3139,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:3140,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-util.c:3141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - self
    - rel
    - error
    argTypes:
    - FuUtil*
    - FwupdRelease*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3145
      start: 3123
    functionDepth: 5
    functionLinenumber: 3123
    functionLinenumberEnd: 3145
    functionName: fu_util_maybe_send_reports
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_release_get_remote_id
    - fu_util_report_history
    - g_debug
    - fwupd_remote_has_flag
    - g_warning
    - g_error_matches
    - fwupd_client_get_remote_by_id
    - g_autoptr
    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:3151,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3152,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-util.c:3152,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3153,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-util.c:3153,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3154,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/src/fu-util.c:3154,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3157,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3165,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3173,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/src/fu-util.c:3174,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/src/fu-util.c:3174,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:3175,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:3185,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/src/fu-util.c:3189,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3191,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:3192,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3193,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3194,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3195,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3196,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:3201,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:3202,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:3204,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:3205,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3210,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/src/fu-util.c:3212,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:3212,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3217,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-util.c:3219,1
    - Dst: fwupd_client_get_upgrades
      Src: /src/fwupd/src/fu-util.c:3226,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:3227,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:3231,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:3233,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3237,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:3238,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:3242,1
    - Dst: fwupd_device_get_problems
      Src: /src/fwupd/src/fu-util.c:3249,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:3250,1
    - Dst: fu_util_update_device_with_release
      Src: /src/fwupd/src/fu-util.c:3254,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:3256,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:3257,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:3258,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-util.c:3263,1
    - Dst: fu_util_maybe_send_reports
      Src: /src/fwupd/src/fu-util.c:3266,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-util.c:3269,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:3272,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:3272,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:3278,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:3278,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3285,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3288,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3290,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:3291,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:3291,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3295,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3298,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3300,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:3301,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:3301,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3305,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3308,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3310,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:3311,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:3311,1
    - Dst: fwupd_device_has_problem
      Src: /src/fwupd/src/fu-util.c:3315,1
    - Dst: fu_util_device_problem_to_string
      Src: /src/fwupd/src/fu-util.c:3317,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:3320,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3327,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:3336,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:3340,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 125
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3341
      start: 3147
    functionDepth: 6
    functionLinenumber: 3147
    functionLinenumberEnd: 3341
    functionName: fu_util_update
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_upgrades
    - fwupd_client_get_devices
    - fu_util_update_device_with_release
    - fwupd_guid_is_valid
    - _
    - g_object_ref
    - g_strv_length
    - fwupd_release_match_flags
    - g_ptr_array_index
    - g_ptr_array_sort
    - fu_console_print
    - g_debug
    - g_set_error_literal
    - fwupd_device_has_guid
    - fu_util_display_current_message
    - g_propagate_error
    - g_ptr_array_new
    - fwupd_device_get_id
    - g_warning
    - fu_console_print_literal
    - fwupd_device_get_problems
    - fu_util_prompt_complete
    - g_strcmp0
    - fwupd_device_get_name
    - fwupd_device_has_problem
    - g_set_error
    - g_steal_pointer
    - g_ptr_array_add
    - fu_util_device_problem_to_string
    - fu_util_maybe_send_reports
    - g_error_matches
    - fwupd_device_match_flags
    - fwupd_device_has_flag
    - fwupd_device_id_is_valid
    - g_autoptr
    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:3346,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3347,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3348,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/src/fu-util.c:3356,1
    - Dst: fwupd_client_modify_remote
      Src: /src/fwupd/src/fu-util.c:3359,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:3360,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3371,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3371,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3373
      start: 3343
    functionDepth: 1
    functionLinenumber: 3343
    functionLinenumberEnd: 3373
    functionName: fu_util_remote_modify
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_id
    - g_set_error_literal
    - _
    - g_strv_length
    - fu_console_print_literal
    - fwupd_client_get_remote_by_id
    - fwupd_client_modify_remote
    - 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:3378,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3379,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3380,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/src/fu-util.c:3386,1
    - Dst: fu_util_modify_remote_warning
      Src: /src/fwupd/src/fu-util.c:3389,1
    - Dst: fwupd_client_modify_remote
      Src: /src/fwupd/src/fu-util.c:3391,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:3392,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-util.c:3403,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3405,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3405,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:3409,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3413,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3415,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3417,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3417,1
    - Dst: fwupd_client_refresh_remote
      Src: /src/fwupd/src/fu-util.c:3421,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3429,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3429,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3431
      start: 3375
    functionDepth: 3
    functionLinenumber: 3375
    functionLinenumberEnd: 3431
    functionName: fu_util_remote_enable
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_id
    - fu_util_modify_remote_warning
    - fwupd_remote_get_kind
    - g_set_error_literal
    - fwupd_client_refresh_remote
    - _
    - g_strv_length
    - fu_console_print_literal
    - fwupd_client_get_remote_by_id
    - fwupd_client_modify_remote
    - 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:3436,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3437,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3438,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/src/fu-util.c:3444,1
    - Dst: fwupd_client_clean_remote
      Src: /src/fwupd/src/fu-util.c:3447,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:3448,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3457,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3457,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3459
      start: 3433
    functionDepth: 1
    functionLinenumber: 3433
    functionLinenumberEnd: 3459
    functionName: fu_util_remote_clean
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_id
    - g_set_error_literal
    - _
    - g_strv_length
    - fu_console_print_literal
    - fwupd_client_get_remote_by_id
    - fwupd_client_clean_remote
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_remote_clean(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3464,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3466,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3467,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/src/fu-util.c:3475,1
    - Dst: fwupd_client_modify_remote
      Src: /src/fwupd/src/fu-util.c:3478,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3490,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3490,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/src/fu-util.c:3493,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/src/fu-util.c:3494,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:3496,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3500,1
    - Dst: fwupd_client_clean_remote
      Src: /src/fwupd/src/fu-util.c:3501,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3506,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3508,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3514
      start: 3461
    functionDepth: 1
    functionLinenumber: 3461
    functionLinenumberEnd: 3514
    functionName: fu_util_remote_disable
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_kind
    - g_set_error_literal
    - _
    - g_strv_length
    - fu_console_print_literal
    - fwupd_remote_get_age
    - fwupd_client_get_remote_by_id
    - fwupd_client_modify_remote
    - fwupd_client_clean_remote
    - g_autoptr
    - fu_console_input_bool
    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:3520,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3521,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3522,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3523,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3526,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:3534,1
    - Dst: fwupd_client_get_downgrades
      Src: /src/fwupd/src/fu-util.c:3539,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:3540,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:3547,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3547,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:3547,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:3548,1
    - Dst: fu_util_prompt_for_release
      Src: /src/fwupd/src/fu-util.c:3553,1
    - Dst: fu_util_update_device_with_release
      Src: /src/fwupd/src/fu-util.c:3560,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-util.c:3562,1
    - Dst: fu_util_maybe_send_reports
      Src: /src/fwupd/src/fu-util.c:3565,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-util.c:3568,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:3571,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:3571,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:3582,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:3586,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3587
      start: 3516
    functionDepth: 6
    functionLinenumber: 3516
    functionLinenumberEnd: 3587
    functionName: fu_util_downgrade
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_prompt_for_release
    - fu_util_update_device_with_release
    - fwupd_device_get_name
    - g_debug
    - fwupd_device_get_id
    - g_set_error_literal
    - g_steal_pointer
    - fwupd_client_get_downgrades
    - g_prefix_error
    - _
    - g_strdup_printf
    - fu_util_display_current_message
    - fu_util_maybe_send_reports
    - g_warning
    - fu_util_get_device_or_prompt
    - g_propagate_error
    - g_autoptr
    - 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:3593,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3594,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3595,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:3598,1
    - Dst: fu_util_get_release_for_device_version
      Src: /src/fwupd/src/fu-util.c:3604,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util.c:3604,1
    - Dst: fu_util_update_device_with_release
      Src: /src/fwupd/src/fu-util.c:3611,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-util.c:3613,1
    - Dst: fu_util_maybe_send_reports
      Src: /src/fwupd/src/fu-util.c:3616,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-util.c:3619,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:3622,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:3622,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:3633,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:3637,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3638
      start: 3589
    functionDepth: 6
    functionLinenumber: 3589
    functionLinenumberEnd: 3638
    functionName: fu_util_reinstall
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_update_device_with_release
    - g_debug
    - g_steal_pointer
    - fu_util_get_release_for_device_version
    - fu_util_display_current_message
    - fwupd_device_get_version
    - fu_util_maybe_send_reports
    - g_warning
    - fu_util_get_device_or_prompt
    - 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:3644,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3645,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3646,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3649,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-util.c:3650,1
    - Dst: fu_util_is_url
      Src: /src/fwupd/src/fu-util.c:3650,1
    - Dst: fu_util_local_install
      Src: /src/fwupd/src/fu-util.c:3651,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:3656,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3661,1
    - Dst: fu_util_get_release_for_device_version
      Src: /src/fwupd/src/fu-util.c:3662,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3666,1
    - Dst: fwupd_client_get_releases
      Src: /src/fwupd/src/fu-util.c:3667,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:3668,1
    - Dst: fu_util_prompt_for_release
      Src: /src/fwupd/src/fu-util.c:3673,1
    - Dst: fu_util_update_device_with_release
      Src: /src/fwupd/src/fu-util.c:3680,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-util.c:3682,1
    - Dst: fu_util_maybe_send_reports
      Src: /src/fwupd/src/fu-util.c:3685,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-util.c:3688,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:3691,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:3691,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:3702,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:3706,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3707
      start: 3640
    functionDepth: 6
    functionLinenumber: 3640
    functionLinenumberEnd: 3707
    functionName: fu_util_install
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 1
    functionsReached:
    - fu_util_prompt_for_release
    - fu_util_update_device_with_release
    - g_debug
    - fu_util_local_install
    - fwupd_device_get_id
    - g_steal_pointer
    - fu_util_get_release_for_device_version
    - g_file_test
    - g_strv_length
    - fu_util_display_current_message
    - fu_util_maybe_send_reports
    - g_warning
    - fu_util_get_device_or_prompt
    - g_propagate_error
    - g_autoptr
    - fwupd_client_get_releases
    - fu_util_is_url
    - 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:3712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3713
      start: 3709
    functionDepth: 0
    functionLinenumber: 3709
    functionLinenumberEnd: 3713
    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:3720,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3721,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3722,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-util.c:3722,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3723,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3724,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:3729,1
    - Dst: fwupd_client_get_releases
      Src: /src/fwupd/src/fu-util.c:3734,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:3735,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3743,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-util.c:3744,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/src/fu-util.c:3745,1
    - Dst: g_ptr_array_find_with_equal_func
      Src: /src/fwupd/src/fu-util.c:3749,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:3751,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:3751,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3755,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3758,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:3763,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3763,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3765,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:3766,1
    - Dst: fu_util_branch_for_display
      Src: /src/fwupd/src/fu-util.c:3769,1
    - Dst: fu_console_input_uint
      Src: /src/fwupd/src/fu-util.c:3773,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3773,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3775,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3781,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:3785,1
    - Dst: fwupd_device_get_branch
      Src: /src/fwupd/src/fu-util.c:3785,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:3786,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:3790,1
    - Dst: fu_util_branch_for_display
      Src: /src/fwupd/src/fu-util.c:3791,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3797,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:3798,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/src/fu-util.c:3798,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:3799,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:3804,1
    - Dst: fu_util_branch_for_display
      Src: /src/fwupd/src/fu-util.c:3808,1
    - Dst: fu_util_switch_branch_warning
      Src: /src/fwupd/src/fu-util.c:3813,1
    - Dst: fu_util_update_device_with_release
      Src: /src/fwupd/src/fu-util.c:3820,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-util.c:3822,1
    - Dst: fu_util_maybe_send_reports
      Src: /src/fwupd/src/fu-util.c:3825,1
    - Dst: g_warning
      Src: /src/fwupd/src/fu-util.c:3828,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:3831,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:3831,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:3842,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:3846,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 77
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3847
      start: 3715
    functionDepth: 6
    functionLinenumber: 3715
    functionLinenumberEnd: 3847
    functionName: fu_util_switch_branch
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_update_device_with_release
    - fu_util_switch_branch_warning
    - _
    - g_object_ref
    - g_strv_length
    - fwupd_release_match_flags
    - g_ptr_array_index
    - fu_console_print
    - g_debug
    - g_set_error_literal
    - fu_util_display_current_message
    - g_propagate_error
    - g_ptr_array_new_with_free_func
    - fwupd_client_get_releases
    - fu_console_input_uint
    - fwupd_device_get_branch
    - fwupd_device_get_id
    - g_warning
    - fu_util_branch_for_display
    - fwupd_release_get_branch
    - g_ptr_array_find_with_equal_func
    - fu_util_prompt_complete
    - g_strdup
    - g_strcmp0
    - fwupd_device_get_name
    - g_set_error
    - g_steal_pointer
    - g_ptr_array_add
    - fu_util_maybe_send_reports
    - fu_util_get_device_or_prompt
    - g_autoptr
    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:3852,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3856,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:3858,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3862,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:3863,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3868,1
    - Dst: fu_util_get_device_by_id
      Src: /src/fwupd/src/fu-util.c:3869,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-util.c:3872,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:3873,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:3874,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3877,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3886,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:3895,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/src/fu-util.c:3896,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/src/fu-util.c:3900,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:3902,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3906,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/src/fu-util.c:3907,1
    - Dst: fwupd_client_activate
      Src: /src/fwupd/src/fu-util.c:3908,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:3910,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3920,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3920,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3922
      start: 3849
    functionDepth: 2
    functionLinenumber: 3849
    functionLinenumberEnd: 3922
    functionName: fu_util_activate
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_devices
    - fu_console_print
    - fwupd_device_get_name
    - g_set_error_literal
    - fu_util_get_device_by_id
    - g_ptr_array_add
    - fwupd_device_get_id
    - _
    - g_strv_length
    - fwupd_client_activate
    - fu_console_print_literal
    - fwupd_device_match_flags
    - fwupd_device_has_flag
    - g_ptr_array_new_with_free_func
    - g_autoptr
    - g_ptr_array_index
    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:3927,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3930,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3931,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-util.c:3939,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/src/fu-util.c:3941,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-util.c:3943,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-util.c:3945,1
    - Dst: fwupd_client_set_approved_firmware
      Src: /src/fwupd/src/fu-util.c:3949,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3953
      start: 3924
    functionDepth: 1
    functionLinenumber: 3924
    functionLinenumberEnd: 3953
    functionName: fu_util_set_approved_firmware
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_set_approved_firmware
    - g_set_error_literal
    - g_file_get_contents
    - g_file_test
    - g_strsplit
    - g_strv_length
    - g_auto
    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:3958,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util.c:3958,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:3959,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/src/fu-util.c:3959,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/src/fu-util.c:3962,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/src/fu-util.c:3963,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-util.c:3964,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - csums
    argTypes:
    - FuUtil*
    - gchar**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3965
      start: 3955
    functionDepth: 2
    functionLinenumber: 3955
    functionLinenumberEnd: 3965
    functionName: fu_util_get_checksums_as_json
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - fu_util_print_json_object
    - fwupd_json_object_new
    - fwupd_json_array_new
    - fwupd_json_array_add_string
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_util_get_checksums_as_json(FuUtil *self, gchar **csums)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util.c:3970,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3973,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:3974,1
    - Dst: fwupd_client_get_approved_firmware
      Src: /src/fwupd/src/fu-util.c:3982,1
    - Dst: fu_util_get_checksums_as_json
      Src: /src/fwupd/src/fu-util.c:3986,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3989,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3992,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:3992,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:3994,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-util.c:3998,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:3998,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:4000,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4003
      start: 3967
    functionDepth: 3
    functionLinenumber: 3967
    functionLinenumberEnd: 4003
    functionName: fu_util_get_approved_firmware
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_console_print
    - fu_util_get_checksums_as_json
    - g_set_error_literal
    - _
    - g_strv_length
    - fu_console_print_literal
    - fwupd_client_get_approved_firmware
    - ngettext
    - g_auto
    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:4009,1
    - Dst: fwupd_client_modify_config
      Src: /src/fwupd/src/fu-util.c:4010,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:4017,1
    - Dst: fwupd_client_modify_config
      Src: /src/fwupd/src/fu-util.c:4018,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4026,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:4037,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4041,1
    - Dst: fu_util_quit
      Src: /src/fwupd/src/fu-util.c:4045,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/src/fu-util.c:4047,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4051,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4051,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4053
      start: 4005
    functionDepth: 2
    functionLinenumber: 4005
    functionLinenumberEnd: 4053
    functionName: fu_util_modify_config
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_modify_config
    - g_set_error_literal
    - _
    - g_strv_length
    - fu_console_print_literal
    - fu_util_quit
    - fwupd_client_connect
    - fu_console_input_bool
    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:4059,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4060,1
    - Dst: fwupd_client_reset_config
      Src: /src/fwupd/src/fu-util.c:4066,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:4073,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4077,1
    - Dst: fu_util_quit
      Src: /src/fwupd/src/fu-util.c:4080,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/src/fu-util.c:4082,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4086,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4086,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4088
      start: 4055
    functionDepth: 2
    functionLinenumber: 4055
    functionLinenumberEnd: 4088
    functionName: fu_util_reset_config
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_reset_config
    - g_set_error_literal
    - _
    - g_strv_length
    - fu_console_print_literal
    - fu_util_quit
    - fwupd_client_connect
    - fu_console_input_bool
    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:4093,1
    - Dst: fwupd_client_get_remotes
      Src: /src/fwupd/src/fu-util.c:4096,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:4101,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:4102,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-util.c:4104,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:4105,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4114
      start: 4090
    functionDepth: 1
    functionLinenumber: 4090
    functionLinenumberEnd: 4114
    functionName: fu_util_get_remote_with_report_uri
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_has_flag
    - fwupd_client_get_remotes
    - g_set_error_literal
    - g_object_ref
    - fwupd_remote_get_report_uri
    - g_autoptr
    - g_ptr_array_index
    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:4123,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4124,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4125,1
    - Dst: fu_util_get_remote_with_report_uri
      Src: /src/fwupd/src/fu-util.c:4128,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:4130,1
    - Dst: fwupd_client_get_report_metadata
      Src: /src/fwupd/src/fu-util.c:4135,1
    - Dst: fwupd_client_build_report_security
      Src: /src/fwupd/src/fu-util.c:4138,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:4144,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:4145,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4149,1
    - Dst: fwupd_remote_get_title
      Src: /src/fwupd/src/fu-util.c:4151,1
    - Dst: fwupd_client_self_sign
      Src: /src/fwupd/src/fu-util.c:4158,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:4169,1
    - Dst: fu_console_print_kv
      Src: /src/fwupd/src/fu-util.c:4170,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4171,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/src/fu-util.c:4172,1
    - Dst: fu_console_print_kv
      Src: /src/fwupd/src/fu-util.c:4173,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4173,1
    - Dst: fu_console_print_kv
      Src: /src/fwupd/src/fu-util.c:4175,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4175,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:4176,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4176,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4177,1
    - Dst: fwupd_remote_build_report_uri
      Src: /src/fwupd/src/fu-util.c:4186,1
    - Dst: fwupd_client_upload_report
      Src: /src/fwupd/src/fu-util.c:4189,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4198,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4200,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:4203,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:4204,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4208,1
    - Dst: fwupd_client_modify_remote
      Src: /src/fwupd/src/fu-util.c:4209,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:4210,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 3
    argNames:
    - self
    - attrs
    - error
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4220
      start: 4116
    functionDepth: 2
    functionLinenumber: 4116
    functionLinenumberEnd: 4220
    functionName: fu_util_upload_security
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_report_metadata
    - fwupd_client_upload_report
    - g_debug
    - fwupd_remote_get_id
    - fwupd_remote_has_flag
    - fwupd_remote_get_title
    - g_set_error_literal
    - fwupd_client_modify_remote
    - _
    - fwupd_remote_build_report_uri
    - fu_console_print_kv
    - fwupd_remote_get_report_uri
    - fu_console_print_literal
    - fwupd_client_self_sign
    - fu_console_input_bool
    - fu_util_get_remote_with_report_uri
    - g_autoptr
    - fwupd_client_build_report_security
    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:4225,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4226,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util.c:4226,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-util.c:4229,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-util.c:4233,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-util.c:4240,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:4242,1
    - Dst: fwupd_device_get_issues
      Src: /src/fwupd/src/fu-util.c:4243,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-util.c:4246,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-util.c:4246,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/src/fu-util.c:4249,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-util.c:4254,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - self
    - attrs
    - events
    - devices
    argTypes:
    - FuUtil*
    - GPtrArray*
    - GPtrArray*
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4255
      start: 4222
    functionDepth: 2
    functionLinenumber: 4222
    functionLinenumberEnd: 4255
    functionName: fu_util_security_as_json
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_print_json_object
    - fwupd_json_object_new
    - g_ptr_array_add
    - fwupd_device_get_issues
    - g_object_ref
    - g_autoptr
    - fwupd_codec_array_to_json
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_util_security_as_json(FuUtil *self, GPtrArray *attrs, GPtrArray
      *events, GPtrArray *devices)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_host_bkc
      Src: /src/fwupd/src/fu-util.c:4260,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4262,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:4268,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:4272,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4273,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4274,1
    - Dst: fu_util_get_release_with_tag
      Src: /src/fwupd/src/fu-util.c:4278,1
    - Dst: fu_device_get_branch
      Src: /src/fwupd/src/fu-util.c:4279,1
    - Dst: fu_util_get_release_with_branch
      Src: /src/fwupd/src/fu-util.c:4280,1
    - Dst: fu_device_get_branch
      Src: /src/fwupd/src/fu-util.c:4282,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4285,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:4292,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:4293,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:4294,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:4295,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:4299,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:4299,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:4304,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util.c:4304,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util.c:4304,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:4308,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:4309,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/src/fu-util.c:4310,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/src/fu-util.c:4311,1
    - Dst: fu_util_update_device_with_release
      Src: /src/fwupd/src/fu-util.c:4312,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:4313,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:4314,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:4315,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:4319,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:4319,1
    - Dst: fu_util_display_current_message
      Src: /src/fwupd/src/fu-util.c:4322,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4328,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:4337,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:4342,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4343
      start: 4257
    functionDepth: 5
    functionLinenumber: 4257
    functionLinenumberEnd: 4343
    functionName: fu_util_sync
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_update_device_with_release
    - fwupd_client_get_devices
    - fu_device_get_branch
    - g_ptr_array_index
    - g_debug
    - g_set_error_literal
    - fu_util_display_current_message
    - g_propagate_error
    - fu_util_get_release_with_branch
    - fwupd_device_get_id
    - fwupd_device_get_version
    - fu_util_prompt_complete
    - g_strcmp0
    - g_steal_pointer
    - g_error_matches
    - fwupd_client_get_host_bkc
    - fu_util_get_release_with_tag
    - g_autoptr
    - fwupd_release_get_version
    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:4348,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util.c:4348,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4349,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util.c:4349,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:4351,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4354,1
    - Dst: fwupd_security_attr_get_title
      Src: /src/fwupd/src/fu-util.c:4355,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:4357,1
    - Dst: fwupd_security_attr_get_description
      Src: /src/fwupd/src/fu-util.c:4357,1
    - Dst: fwupd_security_attr_get_bios_setting_id
      Src: /src/fwupd/src/fu-util.c:4359,1
    - Dst: fwupd_security_attr_get_bios_setting_current_value
      Src: /src/fwupd/src/fu-util.c:4360,1
    - Dst: fwupd_security_attr_get_bios_setting_target_value
      Src: /src/fwupd/src/fu-util.c:4361,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:4362,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:4363,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4366,1
    - Dst: fwupd_security_attr_get_bios_setting_id
      Src: /src/fwupd/src/fu-util.c:4369,1
    - Dst: fwupd_security_attr_get_bios_setting_current_value
      Src: /src/fwupd/src/fu-util.c:4370,1
    - Dst: fwupd_security_attr_get_bios_setting_target_value
      Src: /src/fwupd/src/fu-util.c:4371,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:4372,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:4373,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4375,1
    - Dst: fwupd_security_attr_get_kernel_target_value
      Src: /src/fwupd/src/fu-util.c:4379,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:4380,1
    - Dst: fwupd_security_attr_get_kernel_current_value
      Src: /src/fwupd/src/fu-util.c:4381,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:4382,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4385,1
    - Dst: fwupd_security_attr_get_kernel_current_value
      Src: /src/fwupd/src/fu-util.c:4387,1
    - Dst: fwupd_security_attr_get_kernel_target_value
      Src: /src/fwupd/src/fu-util.c:4388,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:4390,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4393,1
    - Dst: fwupd_security_attr_get_kernel_target_value
      Src: /src/fwupd/src/fu-util.c:4395,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:4397,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-util.c:4398,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4400,1
    - Dst: fu_console_box
      Src: /src/fwupd/src/fu-util.c:4406,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:4409,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4409,1
    - Dst: fwupd_client_fix_host_security_attr
      Src: /src/fwupd/src/fu-util.c:4411,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-util.c:4412,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuUtil*
    - FwupdSecurityAttr*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4420
      start: 4345
    functionDepth: 1
    functionLinenumber: 4345
    functionLinenumberEnd: 4420
    functionName: fu_util_security_fix_attr
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_get_kernel_current_value
    - g_string_append
    - fwupd_security_attr_get_bios_setting_current_value
    - fwupd_security_attr_get_kernel_target_value
    - fwupd_client_fix_host_security_attr
    - fwupd_security_attr_get_appstream_id
    - fu_console_box
    - fwupd_security_attr_get_description
    - fwupd_security_attr_get_bios_setting_id
    - _
    - fwupd_security_attr_get_bios_setting_target_value
    - fwupd_security_attr_get_title
    - g_string_new
    - g_string_append_printf
    - g_autoptr
    - fu_console_input_bool
    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:4426,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4427,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4428,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4429,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4433,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4437,1
    - Dst: fwupd_client_get_host_security_attrs
      Src: /src/fwupd/src/fu-util.c:4442,1
    - Dst: fwupd_client_get_host_security_events
      Src: /src/fwupd/src/fu-util.c:4447,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:4452,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:4453,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:4455,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:4455,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:4461,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:4463,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:4464,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:4464,1
    - Dst: fu_util_security_as_json
      Src: /src/fwupd/src/fu-util.c:4471,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:4475,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4478,1
    - Dst: fwupd_client_get_host_security_id
      Src: /src/fwupd/src/fu-util.c:4479,1
    - Dst: fu_util_security_attrs_to_string
      Src: /src/fwupd/src/fu-util.c:4486,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4487,1
    - Dst: fu_util_security_events_to_string
      Src: /src/fwupd/src/fu-util.c:4491,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4493,1
    - Dst: fu_util_security_issues_to_string
      Src: /src/fwupd/src/fu-util.c:4498,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4500,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:4505,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:4506,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/src/fu-util.c:4506,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:4516,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util.c:4517,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/src/fu-util.c:4518,1
    - Dst: fu_util_security_fix_attr
      Src: /src/fwupd/src/fu-util.c:4519,1
    - Dst: fu_util_upload_security
      Src: /src/fwupd/src/fu-util.c:4527,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:4534,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4540
      start: 4422
    functionDepth: 4
    functionLinenumber: 4422
    functionLinenumberEnd: 4540
    functionName: fu_util_security
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_devices
    - fu_util_security_events_to_string
    - fwupd_security_attr_has_flag
    - _
    - fwupd_client_get_host_security_events
    - fwupd_client_get_host_security_attrs
    - g_ptr_array_index
    - fu_console_print
    - g_debug
    - g_set_error_literal
    - fu_util_security_fix_attr
    - g_propagate_error
    - fu_util_security_issues_to_string
    - fwupd_security_attr_get_appstream_id
    - fu_console_print_literal
    - fu_util_upload_security
    - fu_util_prompt_complete
    - fu_util_security_attrs_to_string
    - g_strcmp0
    - g_steal_pointer
    - fwupd_client_get_host_security_id
    - fu_util_security_as_json
    - g_error_matches
    - g_autoptr
    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: 4548
      start: 4542
    functionDepth: 0
    functionLinenumber: 4542
    functionLinenumberEnd: 4548
    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:4555,1
    - Dst: g_cancellable_cancel
      Src: /src/fwupd/src/fu-util.c:4556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4558
      start: 4551
    functionDepth: 0
    functionLinenumber: 4551
    functionLinenumberEnd: 4558
    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:4565,1
    - Dst: g_unix_signal_source_new
      Src: /src/fwupd/src/fu-util.c:4565,1
    - Dst: g_source_set_callback
      Src: /src/fwupd/src/fu-util.c:4566,1
    - Dst: g_source_attach
      Src: /src/fwupd/src/fu-util.c:4567,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:4567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4569
      start: 4561
    functionDepth: 0
    functionLinenumber: 4561
    functionLinenumberEnd: 4569
    functionName: fu_util_setup_signal_handlers
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_source_set_callback
    - g_steal_pointer
    - g_unix_signal_source_new
    - g_source_attach
    - g_autoptr
    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:4578,1
    - Dst: g_main_context_iteration
      Src: /src/fwupd/src/fu-util.c:4579,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-util.c:4582,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-util.c:4585,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-util.c:4586,1
    - Dst: g_main_loop_unref
      Src: /src/fwupd/src/fu-util.c:4587,1
    - Dst: g_main_context_unref
      Src: /src/fwupd/src/fu-util.c:4588,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-util.c:4589,1
    - Dst: g_object_unref
      Src: /src/fwupd/src/fu-util.c:4590,1
    - Dst: g_option_context_free
      Src: /src/fwupd/src/fu-util.c:4591,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-util.c:4592,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4593
      start: 4571
    functionDepth: 1
    functionLinenumber: 4571
    functionLinenumberEnd: 4593
    functionName: fu_util_private_free
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_object_unref
    - fwupd_client_disconnect
    - g_main_loop_unref
    - g_free
    - g_main_context_unref
    - g_option_context_free
    - g_main_context_iteration
    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:4598,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4601,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4605,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:4609,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-util.c:4610,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4614,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4621
      start: 4595
    functionDepth: 1
    functionLinenumber: 4595
    functionLinenumberEnd: 4621
    functionName: fu_util_check_daemon_version
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error
    - g_set_error_literal
    - fwupd_client_get_daemon_version
    - _
    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:4629,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-util.c:4632,1
    - Dst: g_file_test
      Src: /src/fwupd/src/fu-util.c:4633,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4645
      start: 4623
    functionDepth: 0
    functionLinenumber: 4623
    functionLinenumberEnd: 4645
    functionName: fu_util_check_polkit_actions
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_file_test
    - g_set_error_literal
    - g_getenv
    - g_build_filename
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_check_polkit_actions(GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4656,1
    - Dst: fwupd_client_get_plugins
      Src: /src/fwupd/src/fu-util.c:4662,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:4668,1
    - Dst: fwupd_plugin_has_flag
      Src: /src/fwupd/src/fu-util.c:4669,1
    - Dst: fwupd_plugin_has_flag
      Src: /src/fwupd/src/fu-util.c:4671,1
    - Dst: fwupd_plugin_get_flags
      Src: /src/fwupd/src/fu-util.c:4673,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4688,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util.c:4688,1
    - Dst: fu_util_plugin_flag_to_string
      Src: /src/fwupd/src/fu-util.c:4691,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:4694,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:4695,1
    - Dst: fwupd_plugin_flag_to_string
      Src: /src/fwupd/src/fu-util.c:4696,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:4698,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4698,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-util.c:4699,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUtil*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4704
      start: 4652
    functionDepth: 1
    functionLinenumber: 4652
    functionLinenumberEnd: 4704
    functionName: fu_util_show_plugin_warnings
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 1
    functionsReached:
    - fwupd_plugin_has_flag
    - fwupd_client_get_plugins
    - fu_util_plugin_flag_to_string
    - g_strdup_printf
    - _
    - fu_console_print_full
    - g_string_new
    - g_string_append_printf
    - fwupd_plugin_flag_to_string
    - g_autoptr
    - fwupd_plugin_get_flags
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_util_show_plugin_warnings(FuUtil *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4709,1
    - Dst: fu_util_bios_settings_parse_argv
      Src: /src/fwupd/src/fu-util.c:4711,1
    - Dst: fwupd_client_modify_bios_setting
      Src: /src/fwupd/src/fu-util.c:4714,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-util.c:4715,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/src/fu-util.c:4723,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/src/fu-util.c:4724,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:4727,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4727,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4730,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:4736,1
    - Dst: fu_util_prompt_complete
      Src: /src/fwupd/src/fu-util.c:4740,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - self
    - input
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4741
      start: 4706
    functionDepth: 2
    functionLinenumber: 4706
    functionLinenumberEnd: 4741
    functionName: fu_util_set_bios_setting
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_util_bios_settings_parse_argv
    - fwupd_client_modify_bios_setting
    - g_prefix_error_literal
    - _
    - 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:4746,1
    - Dst: fwupd_client_get_bios_settings
      Src: /src/fwupd/src/fu-util.c:4749,1
    - Dst: fu_util_bios_setting_console_print
      Src: /src/fwupd/src/fu-util.c:4753,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-util.c:4758,1
    - Dst: fu_util_bios_setting_matches_args
      Src: /src/fwupd/src/fu-util.c:4759,1
    - Dst: fu_util_bios_setting_to_string
      Src: /src/fwupd/src/fu-util.c:4760,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4761,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4766,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4770,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4774,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4778,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4782
      start: 4743
    functionDepth: 3
    functionLinenumber: 4743
    functionLinenumberEnd: 4782
    functionName: fu_util_get_bios_setting
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_util_bios_setting_matches_args
    - g_set_error_literal
    - fu_util_bios_setting_to_string
    - fwupd_client_get_bios_settings
    - _
    - fu_console_print_literal
    - fu_util_bios_setting_console_print
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_get_bios_setting(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4788,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4792,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:4796,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4797,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4802,1
    - Dst: fwupd_client_fix_host_security_attr
      Src: /src/fwupd/src/fu-util.c:4805,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4812,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4812,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4814
      start: 4784
    functionDepth: 1
    functionLinenumber: 4784
    functionLinenumberEnd: 4814
    functionName: fu_util_security_fix
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fix_host_security_attr
    - g_set_error_literal
    - _
    - g_strv_length
    - fu_console_print_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_security_fix(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4819,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/src/fu-util.c:4819,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/src/fu-util.c:4821,1
    - Dst: fu_util_print_json_object
      Src: /src/fwupd/src/fu-util.c:4822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - hwids_keys
    - hwids_values
    argTypes:
    - FuUtil*
    - GStrv
    - GStrv
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4823
      start: 4816
    functionDepth: 2
    functionLinenumber: 4816
    functionLinenumberEnd: 4823
    functionName: fu_util_hwids_as_json
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_new
    - fu_util_print_json_object
    - g_autoptr
    - fwupd_json_object_add_string
    linkageType: ''
    returnType: void
    signature: void fu_util_hwids_as_json(FuUtil *self, GStrv hwids_keys, GStrv hwids_values)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util.c:4828,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util.c:4829,1
    - Dst: fwupd_client_get_hwids
      Src: /src/fwupd/src/fu-util.c:4831,1
    - Dst: fu_util_hwids_as_json
      Src: /src/fwupd/src/fu-util.c:4833,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4838,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4839,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/src/fu-util.c:4841,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:4843,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4847,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4848,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-util.c:4851,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/src/fu-util.c:4852,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-util.c:4854,1
    - Dst: g_strjoinv
      Src: /src/fwupd/src/fu-util.c:4855,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:4856,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4861
      start: 4825
    functionDepth: 3
    functionLinenumber: 4825
    functionLinenumberEnd: 4861
    functionName: fu_util_hwids
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fu_console_print
    - fu_util_hwids_as_json
    - fwupd_guid_is_valid
    - g_strsplit
    - fu_console_print_literal
    - fwupd_client_get_hwids
    - g_strjoinv
    - g_auto
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_hwids(FuUtil *self, gchar **values, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4869,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4870,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:4871,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/src/fu-util.c:4874,1
    - Dst: fwupd_remote_build_report_uri
      Src: /src/fwupd/src/fu-util.c:4877,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/src/fu-util.c:4882,1
    - Dst: fwupd_client_get_report_metadata
      Src: /src/fwupd/src/fu-util.c:4885,1
    - Dst: fwupd_client_build_report_devices
      Src: /src/fwupd/src/fu-util.c:4888,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4894,1
    - Dst: fu_console_print_kv
      Src: /src/fwupd/src/fu-util.c:4902,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4902,1
    - Dst: fu_console_print_kv
      Src: /src/fwupd/src/fu-util.c:4903,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4903,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:4904,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4907,1
    - Dst: fwupd_remote_get_title
      Src: /src/fwupd/src/fu-util.c:4910,1
    - Dst: fu_console_input_bool
      Src: /src/fwupd/src/fu-util.c:4911,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4915,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4917,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4918,1
    - Dst: fwupd_client_upload_report
      Src: /src/fwupd/src/fu-util.c:4927,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4939,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4941,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4945
      start: 4863
    functionDepth: 1
    functionLinenumber: 4863
    functionLinenumberEnd: 4945
    functionName: fu_util_report_devices
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_report_metadata
    - fwupd_client_get_devices
    - fu_console_print
    - fwupd_client_upload_report
    - fwupd_remote_get_title
    - g_set_error_literal
    - _
    - fu_console_print_kv
    - fu_console_print_literal
    - fwupd_client_get_remote_by_id
    - fwupd_client_build_report_devices
    - fwupd_remote_build_report_uri
    - g_autoptr
    - fu_console_input_bool
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_report_devices(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4951,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4955,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:4959,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:4960,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4965,1
    - Dst: fwupd_client_undo_host_security_attr
      Src: /src/fwupd/src/fu-util.c:4968,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:4978,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:4978,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4980
      start: 4947
    functionDepth: 1
    functionLinenumber: 4947
    functionLinenumberEnd: 4980
    functionName: fu_util_security_undo
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_undo_host_security_attr
    - g_set_error_literal
    - _
    - g_strv_length
    - fu_console_print_literal
    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:4985,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:4989,1
    - Dst: fwupd_client_modify_device
      Src: /src/fwupd/src/fu-util.c:4992,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:4993,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4998
      start: 4982
    functionDepth: 3
    functionLinenumber: 4982
    functionLinenumberEnd: 4998
    functionName: fu_util_emulation_tag
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_modify_device
    - fwupd_device_get_id
    - g_autoptr
    - fu_util_get_device_or_prompt
    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:5003,1
    - Dst: fu_util_get_device_or_prompt
      Src: /src/fwupd/src/fu-util.c:5007,1
    - Dst: fwupd_client_modify_device
      Src: /src/fwupd/src/fu-util.c:5010,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/src/fu-util.c:5011,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5016
      start: 5000
    functionDepth: 3
    functionLinenumber: 5000
    functionLinenumberEnd: 5016
    functionName: fu_util_emulation_untag
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_modify_device
    - fwupd_device_get_id
    - g_autoptr
    - fu_util_get_device_or_prompt
    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:5022,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:5023,1
    - Dst: fwupd_client_emulation_save
      Src: /src/fwupd/src/fu-util.c:5031,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5032
      start: 5018
    functionDepth: 1
    functionLinenumber: 5018
    functionLinenumberEnd: 5032
    functionName: fu_util_emulation_save
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_client_emulation_save
    - g_strv_length
    - g_set_error_literal
    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:5038,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:5039,1
    - Dst: fwupd_client_emulation_load
      Src: /src/fwupd/src/fu-util.c:5045,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5046
      start: 5034
    functionDepth: 1
    functionLinenumber: 5034
    functionLinenumberEnd: 5046
    functionName: fu_util_emulation_load
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_strv_length
    - g_set_error_literal
    - fwupd_client_emulation_load
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_emulation_load(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:5052,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:5055,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:5058,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/src/fu-util.c:5060,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:5065,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:5066,1
    - Dst: fu_console_input_string
      Src: /src/fwupd/src/fu-util.c:5068,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5071,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:5074,1
    - Dst: g_strv_length
      Src: /src/fwupd/src/fu-util.c:5083,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-util.c:5084,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-util.c:5086,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:5088,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5091,1
    - Dst: fu_console_input_string
      Src: /src/fwupd/src/fu-util.c:5094,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5097,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-util.c:5100,1
    - Dst: fwupd_remote_set_username
      Src: /src/fwupd/src/fu-util.c:5109,1
    - Dst: fwupd_remote_set_password
      Src: /src/fwupd/src/fu-util.c:5110,1
    - Dst: fwupd_client_refresh_remote
      Src: /src/fwupd/src/fu-util.c:5111,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/src/fu-util.c:5116,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:5117,1
    - Dst: g_propagate_error
      Src: /src/fwupd/src/fu-util.c:5118,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-util.c:5118,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:5121,1
    - Dst: fu_util_modify_remote_warning
      Src: /src/fwupd/src/fu-util.c:5125,1
    - Dst: fwupd_remote_save_user_secrets
      Src: /src/fwupd/src/fu-util.c:5127,1
    - Dst: fwupd_client_modify_remote
      Src: /src/fwupd/src/fu-util.c:5129,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/src/fu-util.c:5130,1
    - Dst: fwupd_client_refresh_remote
      Src: /src/fwupd/src/fu-util.c:5136,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:5144,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5144,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 3
    argNames:
    - self
    - values
    - error
    argTypes:
    - FuUtil*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5146
      start: 5048
    functionDepth: 3
    functionLinenumber: 5048
    functionLinenumberEnd: 5146
    functionName: fu_util_enable_remote_auth
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_set_password
    - fu_util_modify_remote_warning
    - _
    - g_strv_length
    - fwupd_client_get_remote_by_id
    - fu_console_print
    - g_debug
    - g_set_error_literal
    - fu_console_input_string
    - g_propagate_error
    - fwupd_remote_save_user_secrets
    - fwupd_remote_get_id
    - fwupd_client_refresh_remote
    - fwupd_remote_has_flag
    - fu_console_print_literal
    - fwupd_client_modify_remote
    - g_strdup
    - g_strcmp0
    - fwupd_remote_set_username
    - g_steal_pointer
    - g_error_matches
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_util_enable_remote_auth(FuUtil *self, gchar **values, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:5151,1
    - Dst: fwupd_client_get_report_metadata
      Src: /src/fwupd/src/fu-util.c:5155,1
    - Dst: fu_util_project_versions_as_json
      Src: /src/fwupd/src/fu-util.c:5161,1
    - Dst: fu_util_project_versions_to_string
      Src: /src/fwupd/src/fu-util.c:5164,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:5165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5167
      start: 5148
    functionDepth: 3
    functionLinenumber: 5148
    functionLinenumberEnd: 5167
    functionName: fu_util_version
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 1
    functionsReached:
    - fwupd_client_get_report_metadata
    - fu_console_print_literal
    - fu_util_project_versions_as_json
    - g_autoptr
    - fu_util_project_versions_to_string
    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:5173,1
    - Dst: fu_console_setup
      Src: /src/fwupd/src/fu-util.c:5176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5177
      start: 5169
    functionDepth: 1
    functionLinenumber: 5169
    functionLinenumberEnd: 5177
    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:5183,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:5186,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5186,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/src/fu-util.c:5187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cancellable
    - user_data
    argTypes:
    - GCancellable*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5188
      start: 5179
    functionDepth: 1
    functionLinenumber: 5179
    functionLinenumberEnd: 5188
    functionName: fu_util_cancelled_cb
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 0
    functionsReached:
    - g_main_loop_is_running
    - fu_console_print_literal
    - _
    - g_main_loop_quit
    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:5194,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-util.c:5197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUtil*
    - GError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5198
      start: 5190
    functionDepth: 3
    functionLinenumber: 5190
    functionLinenumberEnd: 5198
    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:5216,1
    - Dst: g_new0
      Src: /src/fwupd/src/fu-util.c:5216,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:5217,1
    - Dst: g_date_time_new_now_utc
      Src: /src/fwupd/src/fu-util.c:5217,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:5218,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:5219,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:5220,1
    - Dst: fu_util_cmd_array_new
      Src: /src/fwupd/src/fu-util.c:5220,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:5222,1
    - Dst: fu_polkit_agent_new
      Src: /src/fwupd/src/fu-util.c:5222,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5234,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5242,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5250,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5258,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5266,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5274,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5282,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5290,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5298,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5306,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5314,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5322,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: N_
      Src: /src/fwupd/src/fu-util.c:5354,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5362,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5370,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5378,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5386,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5394,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5402,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5411,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5420,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5428,1
    - Dst: N_
      Src: /src/fwupd/src/fu-util.c:5436,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-util.c:5446,1
    - Dst: setlocale
      Src: /src/fwupd/src/fu-util.c:5449,1
    - Dst: bindtextdomain
      Src: /src/fwupd/src/fu-util.c:5451,1
    - Dst: bind_textdomain_codeset
      Src: /src/fwupd/src/fu-util.c:5452,1
    - Dst: textdomain
      Src: /src/fwupd/src/fu-util.c:5453,1
    - Dst: g_set_prgname
      Src: /src/fwupd/src/fu-util.c:5454,1
    - Dst: fu_util_get_prgname
      Src: /src/fwupd/src/fu-util.c:5454,1
    - Dst: fwupd_error_quark
      Src: /src/fwupd/src/fu-util.c:5457,1
    - Dst: g_main_context_new
      Src: /src/fwupd/src/fu-util.c:5460,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/src/fu-util.c:5461,1
    - Dst: fu_console_new
      Src: /src/fwupd/src/fu-util.c:5462,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-util.c:5463,1
    - Dst: fu_console_set_main_context
      Src: /src/fwupd/src/fu-util.c:5464,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5467,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5469,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5471,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5473,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:5489,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5491,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5495,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5497,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5500,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5502,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5504,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5507,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5509,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5511,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5514,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5516,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5518,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5521,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5523,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5526,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5529,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5531,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5534,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5537,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5539,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5541,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5544,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5546,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5548,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5551,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5553,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5555,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5558,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5560,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5562,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5565,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5567,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5569,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5572,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5574,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5576,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5580,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5582,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5585,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5587,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5589,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5592,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5594,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5596,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5599,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5601,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5603,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5606,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5608,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5610,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5613,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5615,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5617,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5620,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5622,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5624,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5627,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5629,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5631,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5634,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5636,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5638,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5641,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5643,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5645,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5649,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5651,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5654,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5656,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5658,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5661,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5663,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5665,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5668,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5670,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5672,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5675,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5677,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5679,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5682,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5684,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5686,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5690,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5692,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5696,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5698,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:5721,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5723,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5725,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5728,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5730,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5732,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5735,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5737,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5739,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5742,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5744,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5746,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5750,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5752,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5756,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5758,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5760,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5763,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5765,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5767,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5770,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5772,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5774,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5777,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5779,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5781,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5784,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5786,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5788,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5791,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5793,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5795,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5798,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5800,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5802,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5805,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5807,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5809,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5813,1
    - Dst: fu_util_cmd_array_add
      Src: /src/fwupd/src/fu-util.c:5815,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5819,1
    - Dst: g_cancellable_new
      Src: /src/fwupd/src/fu-util.c:5823,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-util.c:5824,1
    - Dst: G_CANCELLABLE
      Src: /src/fwupd/src/fu-util.c:5824,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-util.c:5826,1
    - Dst: fu_util_cmd_array_sort
      Src: /src/fwupd/src/fu-util.c:5830,1
    - Dst: fu_util_setup_interactive
      Src: /src/fwupd/src/fu-util.c:5833,1
    - Dst: g_info
      Src: /src/fwupd/src/fu-util.c:5834,1
    - Dst: fu_console_set_interactive
      Src: /src/fwupd/src/fu-util.c:5846,1
    - Dst: g_option_context_new
      Src: /src/fwupd/src/fu-util.c:5849,1
    - Dst: fu_util_cmd_array_to_string
      Src: /src/fwupd/src/fu-util.c:5850,1
    - Dst: g_option_context_set_summary
      Src: /src/fwupd/src/fu-util.c:5851,1
    - Dst: g_option_context_set_description
      Src: /src/fwupd/src/fu-util.c:5852,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5855,1
    - Dst: g_set_application_name
      Src: /src/fwupd/src/fu-util.c:5860,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5860,1
    - Dst: g_option_context_add_main_entries
      Src: /src/fwupd/src/fu-util.c:5861,1
    - Dst: g_option_context_parse
      Src: /src/fwupd/src/fu-util.c:5862,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:5864,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5867,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-util.c:5874,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5878,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-util.c:5881,1
    - Dst: g_date_time_get_year
      Src: /src/fwupd/src/fu-util.c:5886,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-util.c:5887,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5892,1
    - Dst: fu_util_parse_filter_device_flags
      Src: /src/fwupd/src/fu-util.c:5898,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:5904,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5904,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:5905,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-util.c:5906,1
    - Dst: fu_util_parse_filter_release_flags
      Src: /src/fwupd/src/fu-util.c:5911,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:5918,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5918,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:5919,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-util.c:5920,1
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/src/fu-util.c:5927,1
    - Dst: g_log_set_debug_enabled
      Src: /src/fwupd/src/fu-util.c:5928,1
    - Dst: g_setenv
      Src: /src/fwupd/src/fu-util.c:5930,1
    - Dst: g_log_set_handler
      Src: /src/fwupd/src/fu-util.c:5933,1
    - Dst: fu_util_setup_signal_handlers
      Src: /src/fwupd/src/fu-util.c:5937,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:5962,1
    - Dst: fu_polkit_agent_open
      Src: /src/fwupd/src/fu-util.c:5963,1
    - Dst: fu_console_print
      Src: /src/fwupd/src/fu-util.c:5964,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/src/fu-util.c:5972,1
    - Dst: fwupd_client_set_main_context
      Src: /src/fwupd/src/fu-util.c:5973,1
    - Dst: fwupd_client_download_set_retries
      Src: /src/fwupd/src/fu-util.c:5974,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-util.c:5975,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-util.c:5975,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-util.c:5977,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-util.c:5979,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-util.c:5979,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-util.c:5981,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-util.c:5983,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-util.c:5983,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-util.c:5985,1
    - Dst: g_signal_connect
      Src: /src/fwupd/src/fu-util.c:5987,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/src/fu-util.c:5987,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/src/fu-util.c:5989,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/src/fu-util.c:5993,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:5995,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:5998,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-util.c:5999,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:6002,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:6002,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-util.c:6003,1
    - Dst: fwupd_client_get_tainted
      Src: /src/fwupd/src/fu-util.c:6007,1
    - Dst: fu_console_print_full
      Src: /src/fwupd/src/fu-util.c:6008,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:6012,1
    - Dst: fu_util_version
      Src: /src/fwupd/src/fu-util.c:6018,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-util.c:6019,1
    - Dst: fu_util_show_plugin_warnings
      Src: /src/fwupd/src/fu-util.c:6027,1
    - Dst: fu_util_show_unsupported_warning
      Src: /src/fwupd/src/fu-util.c:6030,1
    - Dst: fwupd_client_set_user_agent_for_package
      Src: /src/fwupd/src/fu-util.c:6034,1
    - Dst: g_get_prgname
      Src: /src/fwupd/src/fu-util.c:6034,1
    - Dst: fu_util_check_daemon_version
      Src: /src/fwupd/src/fu-util.c:6038,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-util.c:6039,1
    - Dst: fu_util_check_polkit_actions
      Src: /src/fwupd/src/fu-util.c:6044,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-util.c:6045,1
    - Dst: fwupd_client_set_feature_flags
      Src: /src/fwupd/src/fu-util.c:6057,1
    - Dst: g_prefix_error
      Src: /src/fwupd/src/fu-util.c:6062,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:6062,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-util.c:6063,1
    - Dst: fu_util_cmd_array_run
      Src: /src/fwupd/src/fu-util.c:6068,1
    - Dst: g_critical
      Src: /src/fwupd/src/fu-util.c:6073,1
    - Dst: fu_util_print_error
      Src: /src/fwupd/src/fu-util.c:6077,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:6079,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-util.c:6080,1
    - Dst: g_get_prgname
      Src: /src/fwupd/src/fu-util.c:6080,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-util.c:6081,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-util.c:6081,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-util.c:6084,1
    - Dst: _
      Src: /src/fwupd/src/fu-util.c:6084,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-util.c:6085,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:6086,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:6088,1
    - Dst: g_error_matches
      Src: /src/fwupd/src/fu-util.c:6090,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 221
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6097
      start: 5200
    functionDepth: 3
    functionLinenumber: 5200
    functionLinenumberEnd: 6097
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-util.c
    functionUses: 3
    functionsReached:
    - fu_util_version
    - g_critical
    - fu_console_set_interactive
    - g_setenv
    - g_date_time_new_now_utc
    - textdomain
    - g_log_set_debug_enabled
    - fu_util_setup_signal_handlers
    - g_option_context_add_main_entries
    - fu_util_parse_filter_release_flags
    - _
    - g_strdup_printf
    - g_set_application_name
    - g_cancellable_new
    - fwupd_client_download_set_retries
    - g_option_context_new
    - fu_util_show_unsupported_warning
    - fu_util_cmd_array_run
    - fwupd_client_connect
    - fu_console_print
    - N_
    - fwupd_client_set_user_agent_for_package
    - g_new0
    - g_signal_connect
    - g_debug
    - fu_util_get_prgname
    - fu_polkit_agent_new
    - fwupd_client_set_feature_flags
    - bindtextdomain
    - fu_util_cmd_array_sort
    - fu_util_cmd_array_to_string
    - g_string_new
    - fu_console_set_main_context
    - fu_util_parse_filter_device_flags
    - g_ptr_array_new_with_free_func
    - G_CANCELLABLE
    - g_option_context_parse
    - fu_polkit_agent_open
    - fu_util_cmd_array_new
    - g_main_loop_new
    - g_info
    - fu_util_show_plugin_warnings
    - fwupd_client_set_main_context
    - g_log_set_handler
    - g_date_time_get_year
    - fu_console_new
    - fu_console_print_full
    - fu_console_print_literal
    - FWUPD_CLIENT
    - g_get_prgname
    - fu_util_setup_interactive
    - fwupd_error_quark
    - g_option_context_set_summary
    - bind_textdomain_codeset
    - GLIB_CHECK_VERSION
    - g_set_prgname
    - fu_util_print_error
    - fu_util_cmd_array_add
    - fu_util_check_polkit_actions
    - fwupd_client_new
    - fu_util_check_daemon_version
    - g_main_context_new
    - g_prefix_error
    - fwupd_client_get_tainted
    - g_option_context_set_description
    - g_error_matches
    - G_CALLBACK
    - g_string_append_printf
    - g_autoptr
    - setlocale
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:15,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:20,1
    - Dst: gnutls_x509_trust_list_iter_get_ca
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:22,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:26,1
    - Dst: gnutls_strerror
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:30,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:37,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - tl
    - error
    argTypes:
    - gnutls_x509_trust_list_t
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 46
    functionName: fu_jcat_gnutls_ensure_trust_list_valid
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-common.c
    functionUses: 1
    functionsReached:
    - gnutls_x509_trust_list_iter_get_ca
    - g_set_error
    - g_set_error_literal
    - gnutls_strerror
    - g_auto
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jcat_gnutls_ensure_trust_list_valid(gnutls_x509_trust_list_t
      tl, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:51,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:52,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:55,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - d
    - blob
    - error
    argTypes:
    - gnutls_datum_t*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: fu_jcat_gnutls_datum_from_bytes
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-common.c
    functionUses: 2
    functionsReached:
    - g_bytes_get_data
    - g_set_error_literal
    - g_bytes_get_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jcat_gnutls_datum_from_bytes(gnutls_datum_t *d, GBytes
      *blob, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:65,1
    - Dst: gnutls_x509_crt_init
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:68,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:69,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:70,1
    - Dst: fu_jcat_gnutls_datum_from_bytes
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:75,1
    - Dst: gnutls_x509_crt_import
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:77,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:78,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:79,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - blob
    - format
    - error
    argTypes:
    - GBytes*
    - gnutls_x509_crt_fmt_t
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 83
    functionName: fu_jcat_gnutls_pkcs7_load_crt_from_blob
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-common.c
    functionUses: 3
    functionsReached:
    - gnutls_x509_crt_import
    - fu_jcat_gnutls_rc_to_error
    - g_steal_pointer
    - fu_jcat_gnutls_datum_from_bytes
    - g_prefix_error_literal
    - gnutls_x509_crt_init
    - g_auto
    linkageType: ''
    returnType: gnutls_x509_crt_t
    signature: gnutls_x509_crt_t fu_jcat_gnutls_pkcs7_load_crt_from_blob(GBytes *blob,
      gnutls_x509_crt_fmt_t format, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:90,1
    - Dst: gnutls_privkey_init
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:93,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:94,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:95,1
    - Dst: fu_jcat_gnutls_datum_from_bytes
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:98,1
    - Dst: gnutls_privkey_import_x509_raw
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:100,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:101,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:102,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - blob
    - error
    argTypes:
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 106
    functionName: fu_jcat_gnutls_pkcs7_load_privkey_from_blob
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-common.c
    functionUses: 2
    functionsReached:
    - fu_jcat_gnutls_rc_to_error
    - g_steal_pointer
    - fu_jcat_gnutls_datum_from_bytes
    - g_prefix_error_literal
    - gnutls_privkey_import_x509_raw
    - gnutls_privkey_init
    - g_auto
    linkageType: ''
    returnType: gnutls_privkey_t
    signature: gnutls_privkey_t fu_jcat_gnutls_pkcs7_load_privkey_from_blob(GBytes
      *blob, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:111,1
    - Dst: gnutls_pubkey_init
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:115,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:116,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:117,1
    - Dst: gnutls_pubkey_import_privkey
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:120,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:121,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:122,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - privkey
    - error
    argTypes:
    - gnutls_privkey_t
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 128
    functionName: fu_jcat_gnutls_pkcs7_load_pubkey_from_privkey
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-common.c
    functionUses: 1
    functionsReached:
    - gnutls_pubkey_init
    - gnutls_pubkey_import_privkey
    - fu_jcat_gnutls_rc_to_error
    - g_steal_pointer
    - g_prefix_error_literal
    - g_auto
    linkageType: ''
    returnType: gnutls_pubkey_t
    signature: gnutls_pubkey_t fu_jcat_gnutls_pkcs7_load_pubkey_from_privkey(gnutls_privkey_t
      privkey, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:133,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:134,1
    - Dst: gnutls_x509_dn_init
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:136,1
    - Dst: gnutls_x509_dn_import
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:139,1
    - Dst: gnutls_calloc
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:142,1
    - Dst: gnutls_x509_dn_get_str2
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:146,1
    - Dst: g_strndup
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - raw
    argTypes:
    - gnutls_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 150
    functionName: fu_jcat_gnutls_pkcs7_datum_to_dn_str
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-common.c
    functionUses: 1
    functionsReached:
    - g_strndup
    - gnutls_calloc
    - gnutls_x509_dn_get_str2
    - gnutls_x509_dn_import
    - gnutls_x509_dn_init
    - g_auto
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_jcat_gnutls_pkcs7_datum_to_dn_str(const gnutls_datum_t *raw)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:159,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:160,1
    - Dst: gnutls_x509_privkey_init
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:163,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:164,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:165,1
    - Dst: gnutls_sec_param_to_pk_bits
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:170,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:172,1
    - Dst: gnutls_pk_algorithm_get_name
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:176,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:179,1
    - Dst: gnutls_pk_algorithm_get_name
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:179,1
    - Dst: gnutls_x509_privkey_generate2
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:180,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:181,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:182,1
    - Dst: gnutls_x509_privkey_verify_params
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:185,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:186,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:187,1
    - Dst: gnutls_x509_privkey_export2
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:192,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:193,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:194,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:198,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - algo
    - error
    argTypes:
    - gnutls_pk_algorithm_t
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 199
    functionName: fu_jcat_gnutls_pkcs7_create_private_key
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-common.c
    functionUses: 1
    functionsReached:
    - g_bytes_new
    - g_debug
    - g_set_error
    - fu_jcat_gnutls_rc_to_error
    - gnutls_pk_algorithm_get_name
    - g_prefix_error_literal
    - gnutls_x509_privkey_export2
    - gnutls_x509_privkey_generate2
    - gnutls_sec_param_to_pk_bits
    - gnutls_x509_privkey_init
    - g_auto
    - g_autoptr
    - gnutls_x509_privkey_verify_params
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_jcat_gnutls_pkcs7_create_private_key(gnutls_pk_algorithm_t algo, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:208,1
    - Dst: gnutls_sign_get_name
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:212,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - algo
    - error
    argTypes:
    - gnutls_sign_algorithm_t
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 221
    functionName: fu_jcat_gnutls_pkcs7_ensure_sign_algo_pq_safe
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-common.c
    functionUses: 1
    functionsReached:
    - g_set_error_literal
    - gnutls_sign_get_name
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jcat_gnutls_pkcs7_ensure_sign_algo_pq_safe(gnutls_sign_algorithm_t
      algo, GError **error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:233,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:234,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:235,1
    - Dst: fu_jcat_gnutls_pkcs7_load_pubkey_from_privkey
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:238,1
    - Dst: gnutls_pubkey_get_preferred_hash_algorithm
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:242,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:243,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:244,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:247,1
    - Dst: gnutls_digest_get_name
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:247,1
    - Dst: gnutls_x509_crt_init
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:250,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:251,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:252,1
    - Dst: gnutls_x509_crt_set_pubkey
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:257,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:258,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:259,1
    - Dst: gnutls_rnd
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:264,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:265,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:266,1
    - Dst: gnutls_x509_crt_set_serial
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:270,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:271,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:272,1
    - Dst: gnutls_x509_crt_set_activation_time
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:277,1
    - Dst: time
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:277,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:278,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:279,1
    - Dst: gnutls_x509_crt_set_expiration_time
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:284,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:285,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:286,1
    - Dst: gnutls_x509_crt_set_basic_constraints
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:291,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:292,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:293,1
    - Dst: gnutls_x509_crt_set_key_usage
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:298,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:299,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:300,1
    - Dst: gnutls_x509_crt_get_key_id
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:305,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:306,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:307,1
    - Dst: gnutls_x509_crt_set_subject_key_id
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:310,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:311,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:312,1
    - Dst: gnutls_x509_crt_set_version
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:317,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:318,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:319,1
    - Dst: gnutls_x509_crt_privkey_sign
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:324,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:325,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:326,1
    - Dst: gnutls_x509_crt_export2
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:331,1
    - Dst: fu_jcat_gnutls_rc_to_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:332,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:333,1
    - Dst: g_bytes_new
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:337,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 81
    argCount: 2
    argNames:
    - privkey
    - error
    argTypes:
    - gnutls_privkey_t
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 338
    functionName: fu_jcat_gnutls_pkcs7_create_client_certificate
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-common.c
    functionUses: 1
    functionsReached:
    - g_bytes_new
    - fu_jcat_gnutls_pkcs7_load_pubkey_from_privkey
    - g_auto
    - gnutls_x509_crt_privkey_sign
    - g_debug
    - gnutls_x509_crt_get_key_id
    - g_prefix_error_literal
    - gnutls_x509_crt_set_activation_time
    - gnutls_x509_crt_set_key_usage
    - gnutls_rnd
    - gnutls_digest_get_name
    - gnutls_x509_crt_init
    - gnutls_x509_crt_set_pubkey
    - gnutls_x509_crt_set_version
    - gnutls_x509_crt_export2
    - time
    - gnutls_x509_crt_set_subject_key_id
    - fu_jcat_gnutls_rc_to_error
    - gnutls_x509_crt_set_basic_constraints
    - gnutls_pubkey_get_preferred_hash_algorithm
    - gnutls_x509_crt_set_expiration_time
    - gnutls_x509_crt_set_serial
    - g_autoptr
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_jcat_gnutls_pkcs7_create_client_certificate(gnutls_privkey_t privkey, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:343,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:343,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:347,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - level
    - msg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 349
    functionName: fu_jcat_gnutls_global_log_cb
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-common.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_strsplit
    - g_debug
    linkageType: ''
    returnType: void
    signature: void fu_jcat_gnutls_global_log_cb(int level, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_global_set_log_level
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:354,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:354,1
    - Dst: gnutls_global_set_log_function
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: fu_jcat_gnutls_global_init
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-common.c
    functionUses: 1
    functionsReached:
    - gnutls_global_set_log_function
    - g_log_get_debug_enabled
    - gnutls_global_set_log_level
    linkageType: ''
    returnType: void
    signature: void fu_jcat_gnutls_global_init(void)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:402,1
    - Dst: gnutls_strerror
      Src: /src/fwupd/src/fu-jcat-gnutls-common.c:402,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 2
    argNames:
    - rc
    - error
    argTypes:
    - int
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 404
    functionName: fu_jcat_gnutls_rc_to_error
    functionSourceFile: /src/fwupd/src/fu-jcat-gnutls-common.c
    functionUses: 10
    functionsReached:
    - gnutls_strerror
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jcat_gnutls_rc_to_error(int rc, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:18,1
    - Dst: fu_cab_firmware_new
      Src: /src/fwupd/src/fu-cabinet-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:20,1
    - Dst: fu_cab_firmware_set_compressed
      Src: /src/fwupd/src/fu-cabinet-test.c:22,1
    - Dst: va_start
      Src: /src/fwupd/src/fu-cabinet-test.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:29,1
    - Dst: fu_cab_image_new
      Src: /src/fwupd/src/fu-cabinet-test.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:30,1
    - Dst: va_arg
      Src: /src/fwupd/src/fu-cabinet-test.c:33,1
    - Dst: va_arg
      Src: /src/fwupd/src/fu-cabinet-test.c:38,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-cabinet-test.c:41,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/src/fu-cabinet-test.c:44,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-cabinet-test.c:44,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/src/fu-cabinet-test.c:45,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:45,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/src/fu-cabinet-test.c:46,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:46,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/src/fu-cabinet-test.c:47,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:47,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:47,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:48,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-cabinet-test.c:49,1
    - Dst: va_end
      Src: /src/fwupd/src/fu-cabinet-test.c:51,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/src/fu-cabinet-test.c:54,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:54,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:55,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-cabinet-test.c:56,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-cabinet-test.c:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - compressed
    argTypes:
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 58
    functionName: fu_test_build_cab
    functionSourceFile: /src/fwupd/src/fu-cabinet-test.c
    functionUses: 1
    functionsReached:
    - fu_firmware_write
    - g_assert_nonnull
    - fu_cab_firmware_set_compressed
    - fu_firmware_set_bytes
    - fu_cab_firmware_new
    - g_debug
    - fu_firmware_add_image
    - g_bytes_new_static
    - FU_FIRMWARE
    - fu_cab_image_new
    - va_end
    - fu_firmware_set_id
    - g_steal_pointer
    - g_assert_no_error
    - va_arg
    - strlen
    - g_assert_true
    - g_autoptr
    - va_start
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_test_build_cab(gboolean compressed, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:65,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-cabinet-test.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:66,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:67,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:69,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/src/fu-cabinet-test.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:70,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/src/fu-cabinet-test.c:70,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:71,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:72,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/src/fu-cabinet-test.c:74,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/src/fu-cabinet-test.c:79,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:80,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-cabinet-test.c:81,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/src/fu-cabinet-test.c:82,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:82,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:87,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-cabinet-test.c:88,1
    - Dst: fu_cabinet_add_file
      Src: /src/fwupd/src/fu-cabinet-test.c:91,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:92,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-cabinet-test.c:93,1
    - Dst: fu_cabinet_add_file
      Src: /src/fwupd/src/fu-cabinet-test.c:96,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:97,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-cabinet-test.c:98,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/src/fu-cabinet-test.c:101,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:101,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:102,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-cabinet-test.c:103,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/src/fu-cabinet-test.c:104,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:104,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:105,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-cabinet-test.c:106,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-cabinet-test.c:107,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/src/fu-cabinet-test.c:107,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/src/fu-cabinet-test.c:110,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:110,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-cabinet-test.c:111,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-cabinet-test.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 113
    functionName: fu_cabinet_func
    functionSourceFile: /src/fwupd/src/fu-cabinet-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_bytes
    - fu_firmware_parse_stream
    - g_bytes_get_data
    - FU_FIRMWARE
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - fu_firmware_get_image_by_id
    - fu_cabinet_new
    - g_autoptr
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - fu_input_stream_from_path
    - g_assert_null
    - g_bytes_new_static
    - fu_cabinet_add_file
    linkageType: ''
    returnType: void
    signature: void fu_cabinet_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:120,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-cabinet-test.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:122,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:123,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:124,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:127,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-cabinet-test.c:130,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-cabinet-test.c:154,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:154,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:159,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-cabinet-test.c:160,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-cabinet-test.c:163,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:164,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-cabinet-test.c:165,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-cabinet-test.c:166,1
    - Dst: xb_node_get_silo
      Src: /src/fwupd/src/fu-cabinet-test.c:166,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:170,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-cabinet-test.c:171,1
    - Dst: xb_node_query_first_full
      Src: /src/fwupd/src/fu-cabinet-test.c:172,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:173,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-cabinet-test.c:174,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-cabinet-test.c:175,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-cabinet-test.c:175,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-cabinet-test.c:176,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-cabinet-test.c:177,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-cabinet-test.c:178,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/src/fu-cabinet-test.c:178,1
    - Dst: xb_node_get_data
      Src: /src/fwupd/src/fu-cabinet-test.c:179,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-cabinet-test.c:180,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-cabinet-test.c:181,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:182,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-cabinet-test.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 184
    functionName: fu_cabinet_success_func
    functionSourceFile: /src/fwupd/src/fu-cabinet-test.c
    functionUses: 0
    functionsReached:
    - fu_test_build_cab
    - xb_node_get_attr
    - FU_FIRMWARE
    - fu_cabinet_get_component
    - g_assert_no_error
    - g_assert_nonnull
    - fu_cabinet_new
    - fu_firmware_parse_bytes
    - xb_node_get_silo
    - xb_query_new_full
    - xb_node_query_first
    - xb_node_query_first_full
    - g_assert_true
    - xb_node_get_data
    - g_assert_cmpstr
    - g_autoptr
    - xb_node_get_text
    linkageType: ''
    returnType: void
    signature: void fu_cabinet_success_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:190,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:191,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:192,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:193,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:194,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:195,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-cabinet-test.c:195,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:196,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-cabinet-test.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:197,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-cabinet-test.c:197,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:198,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-cabinet-test.c:198,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-cabinet-test.c:201,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-cabinet-test.c:227,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:227,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:232,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-cabinet-test.c:233,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-cabinet-test.c:236,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-cabinet-test.c:262,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:262,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:267,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-cabinet-test.c:268,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-cabinet-test.c:271,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-cabinet-test.c:299,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:299,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:304,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-cabinet-test.c:305,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-cabinet-test.c:308,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-cabinet-test.c:331,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:331,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:336,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-cabinet-test.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 338
    functionName: fu_cabinet_artifact_func
    functionSourceFile: /src/fwupd/src/fu-cabinet-test.c
    functionUses: 0
    functionsReached:
    - fu_test_build_cab
    - FU_FIRMWARE
    - g_assert_no_error
    - fu_cabinet_new
    - fu_firmware_parse_bytes
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_cabinet_artifact_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:345,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-cabinet-test.c:345,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:346,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:347,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:348,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:349,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:350,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:351,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-cabinet-test.c:354,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-cabinet-test.c:369,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:369,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:374,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-cabinet-test.c:375,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-cabinet-test.c:378,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:379,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-cabinet-test.c:380,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-cabinet-test.c:381,1
    - Dst: xb_node_get_silo
      Src: /src/fwupd/src/fu-cabinet-test.c:381,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:385,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-cabinet-test.c:386,1
    - Dst: xb_node_query_first_full
      Src: /src/fwupd/src/fu-cabinet-test.c:387,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:388,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-cabinet-test.c:389,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-cabinet-test.c:390,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-cabinet-test.c:390,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/src/fu-cabinet-test.c:391,1
    - Dst: g_assert_null
      Src: /src/fwupd/src/fu-cabinet-test.c:392,1
    - Dst: xb_node_get_data
      Src: /src/fwupd/src/fu-cabinet-test.c:393,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-cabinet-test.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 395
    functionName: fu_cabinet_unsigned_func
    functionSourceFile: /src/fwupd/src/fu-cabinet-test.c
    functionUses: 0
    functionsReached:
    - fu_test_build_cab
    - xb_node_get_attr
    - FU_FIRMWARE
    - fu_cabinet_get_component
    - g_assert_no_error
    - g_assert_nonnull
    - fu_cabinet_new
    - fu_firmware_parse_bytes
    - xb_node_get_silo
    - xb_query_new_full
    - xb_node_query_first
    - xb_node_query_first_full
    - g_assert_true
    - xb_node_get_data
    - g_assert_cmpstr
    - g_autoptr
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fu_cabinet_unsigned_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:401,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-cabinet-test.c:401,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:402,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:403,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-cabinet-test.c:406,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-cabinet-test.c:425,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:425,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:430,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-cabinet-test.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 432
    functionName: fu_cabinet_sha256_func
    functionSourceFile: /src/fwupd/src/fu-cabinet-test.c
    functionUses: 0
    functionsReached:
    - fu_test_build_cab
    - FU_FIRMWARE
    - g_assert_no_error
    - fu_cabinet_new
    - fu_firmware_parse_bytes
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_cabinet_sha256_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:439,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-cabinet-test.c:439,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:440,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:441,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:442,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:443,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:444,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-cabinet-test.c:447,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-cabinet-test.c:462,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:462,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:467,1
    - Dst: g_assert_true
      Src: /src/fwupd/src/fu-cabinet-test.c:468,1
    - Dst: fu_cabinet_get_component
      Src: /src/fwupd/src/fu-cabinet-test.c:471,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:472,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-cabinet-test.c:473,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/src/fu-cabinet-test.c:474,1
    - Dst: xb_node_get_silo
      Src: /src/fwupd/src/fu-cabinet-test.c:474,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:478,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-cabinet-test.c:479,1
    - Dst: xb_node_query_first_full
      Src: /src/fwupd/src/fu-cabinet-test.c:480,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/src/fu-cabinet-test.c:481,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-cabinet-test.c:482,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/src/fu-cabinet-test.c:483,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/src/fu-cabinet-test.c:483,1
    - Dst: xb_node_get_data
      Src: /src/fwupd/src/fu-cabinet-test.c:484,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/src/fu-cabinet-test.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 486
    functionName: fu_cabinet_folder_func
    functionSourceFile: /src/fwupd/src/fu-cabinet-test.c
    functionUses: 0
    functionsReached:
    - fu_test_build_cab
    - xb_node_get_attr
    - FU_FIRMWARE
    - fu_cabinet_get_component
    - g_assert_no_error
    - g_assert_nonnull
    - fu_cabinet_new
    - fu_firmware_parse_bytes
    - xb_node_get_silo
    - xb_query_new_full
    - xb_node_query_first_full
    - g_assert_true
    - xb_node_get_data
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_cabinet_folder_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:492,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-cabinet-test.c:492,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:493,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:494,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-cabinet-test.c:496,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-cabinet-test.c:497,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:497,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-cabinet-test.c:502,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-cabinet-test.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 504
    functionName: fu_cabinet_error_no_metadata_func
    functionSourceFile: /src/fwupd/src/fu-cabinet-test.c
    functionUses: 0
    functionsReached:
    - fu_test_build_cab
    - FU_FIRMWARE
    - g_assert_error
    - fu_cabinet_new
    - fu_firmware_parse_bytes
    - g_assert_false
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_cabinet_error_no_metadata_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:510,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-cabinet-test.c:510,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:511,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:512,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-cabinet-test.c:514,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-cabinet-test.c:533,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:533,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-cabinet-test.c:538,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-cabinet-test.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 540
    functionName: fu_cabinet_error_wrong_size_func
    functionSourceFile: /src/fwupd/src/fu-cabinet-test.c
    functionUses: 0
    functionsReached:
    - fu_test_build_cab
    - FU_FIRMWARE
    - g_assert_error
    - fu_cabinet_new
    - fu_firmware_parse_bytes
    - g_assert_false
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_cabinet_error_wrong_size_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:546,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-cabinet-test.c:546,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:547,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:548,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-cabinet-test.c:550,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-cabinet-test.c:567,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:567,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-cabinet-test.c:572,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-cabinet-test.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 574
    functionName: fu_cabinet_error_missing_file_func
    functionSourceFile: /src/fwupd/src/fu-cabinet-test.c
    functionUses: 0
    functionsReached:
    - fu_test_build_cab
    - FU_FIRMWARE
    - g_assert_error
    - fu_cabinet_new
    - fu_firmware_parse_bytes
    - g_assert_false
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_cabinet_error_missing_file_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:580,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-cabinet-test.c:580,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:581,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:582,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-cabinet-test.c:584,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/src/fu-cabinet-test.c:599,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:599,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-cabinet-test.c:600,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:600,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-cabinet-test.c:605,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-cabinet-test.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 607
    functionName: fu_cabinet_error_size_func
    functionSourceFile: /src/fwupd/src/fu-cabinet-test.c
    functionUses: 0
    functionsReached:
    - fu_test_build_cab
    - FU_FIRMWARE
    - g_assert_error
    - fu_cabinet_new
    - fu_firmware_parse_bytes
    - g_assert_false
    - fu_firmware_set_size_max
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_cabinet_error_size_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:613,1
    - Dst: fu_cabinet_new
      Src: /src/fwupd/src/fu-cabinet-test.c:613,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:614,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-cabinet-test.c:615,1
    - Dst: fu_test_build_cab
      Src: /src/fwupd/src/fu-cabinet-test.c:617,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/src/fu-cabinet-test.c:635,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/src/fu-cabinet-test.c:635,1
    - Dst: g_assert_error
      Src: /src/fwupd/src/fu-cabinet-test.c:640,1
    - Dst: g_assert_false
      Src: /src/fwupd/src/fu-cabinet-test.c:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 642
    functionName: fu_cabinet_error_wrong_checksum_func
    functionSourceFile: /src/fwupd/src/fu-cabinet-test.c
    functionUses: 0
    functionsReached:
    - fu_test_build_cab
    - FU_FIRMWARE
    - g_assert_error
    - fu_cabinet_new
    - fu_firmware_parse_bytes
    - g_assert_false
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_cabinet_error_wrong_checksum_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/src/fu-cabinet-test.c:647,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-cabinet-test.c:648,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-cabinet-test.c:649,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-cabinet-test.c:650,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-cabinet-test.c:651,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-cabinet-test.c:652,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-cabinet-test.c:653,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-cabinet-test.c:654,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-cabinet-test.c:655,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-cabinet-test.c:656,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-cabinet-test.c:658,1
    - Dst: g_test_add_func
      Src: /src/fwupd/src/fu-cabinet-test.c:659,1
    - Dst: g_test_run
      Src: /src/fwupd/src/fu-cabinet-test.c:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 661
    functionName: main
    functionSourceFile: /src/fwupd/src/fu-cabinet-test.c
    functionUses: 3
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_test_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 8
    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
    - Dst: isatty
      Src: /src/fwupd/src/fu-console.c:100,1
    - Dst: fileno
      Src: /src/fwupd/src/fu-console.c:100,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-console.c:101,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuConsole*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 108
    functionName: fu_console_setup
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 2
    functionsReached:
    - GetStdHandle
    - isatty
    - fileno
    - g_set_error
    - g_set_error_literal
    - SetConsoleOutputCP
    - SetConsoleCP
    - GetConsoleMode
    - GetLastError
    - SetConsoleMode
    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:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConsole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 116
    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:122,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConsole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 127
    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:133,1
    - Dst: fu_console_reset_line
      Src: /src/fwupd/src/fu-console.c:137,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:138,1
    - Dst: fu_strwidth
      Src: /src/fwupd/src/fu-console.c:141,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-console.c:142,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:145,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - title
    - msg
    argTypes:
    - FuConsole*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 149
    functionName: fu_console_print_kv
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 4
    functionsReached:
    - g_print
    - g_strsplit
    - fu_console_reset_line
    - g_auto
    - fu_strwidth
    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:158,1
    - Dst: fflush
      Src: /src/fwupd/src/fu-console.c:160,1
    - Dst: fgets
      Src: /src/fwupd/src/fu-console.c:162,1
    - Dst: g_strdelimit
      Src: /src/fwupd/src/fu-console.c:164,1
    - Dst: g_strndup
      Src: /src/fwupd/src/fu-console.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - prompt
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 166
    functionName: readline
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - fgets
    - fflush
    - g_print
    - g_strdelimit
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      readline(const gchar *prompt)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/fwupd/src/fu-console.c:179,1
    - Dst: g_strdup_vprintf
      Src: /src/fwupd/src/fu-console.c:180,1
    - Dst: va_end
      Src: /src/fwupd/src/fu-console.c:181,1
    - Dst: fu_console_reset_line
      Src: /src/fwupd/src/fu-console.c:184,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-console.c:189,1
    - Dst: readline
      Src: /src/fwupd/src/fu-console.c:191,1
    - Dst: sscanf
      Src: /src/fwupd/src/fu-console.c:197,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-console.c:204,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-console.c:204,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-console.c:205,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:208,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-console.c:210,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-console.c:211,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-console.c:211,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - maxnum
    - format
    argTypes:
    - FuConsole*
    - guint
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 215
    functionName: fu_console_input_uint
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 7
    functionsReached:
    - va_end
    - g_string_append
    - g_steal_pointer
    - g_string_free
    - _
    - g_strdup_printf
    - sscanf
    - fu_console_reset_line
    - g_string_new
    - g_string_append_printf
    - g_autoptr
    - va_start
    - g_strdup_vprintf
    - readline
    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:225,1
    - Dst: g_strdup_vprintf
      Src: /src/fwupd/src/fu-console.c:226,1
    - Dst: va_end
      Src: /src/fwupd/src/fu-console.c:227,1
    - Dst: fu_console_reset_line
      Src: /src/fwupd/src/fu-console.c:230,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-console.c:235,1
    - Dst: readline
      Src: /src/fwupd/src/fu-console.c:238,1
    - Dst: strlen
      Src: /src/fwupd/src/fu-console.c:240,1
    - Dst: g_ascii_toupper
      Src: /src/fwupd/src/fu-console.c:242,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-console.c:243,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-console.c:245,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-console.c:249,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-console.c:249,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-console.c:250,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:253,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-console.c:256,1
    - Dst: g_string_free
      Src: /src/fwupd/src/fu-console.c:257,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-console.c:257,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - self
    - def
    - format
    argTypes:
    - FuConsole*
    - gboolean
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 261
    functionName: fu_console_input_bool
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 19
    functionsReached:
    - va_end
    - g_strcmp0
    - g_string_append
    - g_steal_pointer
    - g_string_free
    - _
    - g_strdup_printf
    - strlen
    - g_string_new
    - fu_console_reset_line
    - g_string_append_printf
    - g_ascii_toupper
    - g_autoptr
    - va_start
    - g_strdup_vprintf
    - readline
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_console_input_bool(FuConsole *self, gboolean def, const
      gchar *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/fwupd/src/fu-console.c:270,1
    - Dst: g_strdup_vprintf
      Src: /src/fwupd/src/fu-console.c:271,1
    - Dst: va_end
      Src: /src/fwupd/src/fu-console.c:272,1
    - Dst: fu_console_reset_line
      Src: /src/fwupd/src/fu-console.c:275,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-console.c:276,1
    - Dst: readline
      Src: /src/fwupd/src/fu-console.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - format
    argTypes:
    - FuConsole*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 278
    functionName: fu_console_input_string
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 1
    functionsReached:
    - va_end
    - g_strdup_printf
    - fu_console_reset_line
    - va_start
    - g_strdup_vprintf
    - readline
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_console_input_string(FuConsole *self, const gchar *format, ...)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/src/fu-console.c:283,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-console.c:284,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-console.c:284,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-console.c:285,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-console.c:285,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-console.c:294,1
    - Dst: fu_strwidth
      Src: /src/fwupd/src/fu-console.c:297,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-console.c:298,1
    - Dst: g_string_truncate
      Src: /src/fwupd/src/fu-console.c:304,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-console.c:305,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-console.c:305,1
    - Dst: g_string_truncate
      Src: /src/fwupd/src/fu-console.c:306,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-console.c:307,1
    - Dst: g_string_truncate
      Src: /src/fwupd/src/fu-console.c:312,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-console.c:313,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-console.c:313,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-console.c:315,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - text
    - line_len
    argTypes:
    - gchar*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 316
    functionName: fu_console_strsplit_words
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_steal_pointer
    - g_ptr_array_add
    - g_strsplit
    - g_string_new
    - g_string_append_printf
    - g_autoptr
    - g_auto
    - fu_strwidth
    - g_string_truncate
    - g_ptr_array_new_with_free_func
    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:327,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:328,1
    - Dst: fu_strwidth
      Src: /src/fwupd/src/fu-console.c:331,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:332,1
    - Dst: fu_strwidth
      Src: /src/fwupd/src/fu-console.c:335,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:337,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:339,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: 340
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 340
    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:345,1
    - Dst: g_string_new_len
      Src: /src/fwupd/src/fu-console.c:345,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-console.c:347,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-console.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - width
    argTypes:
    - FuConsole*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 349
    functionName: fu_console_line
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 1
    functionsReached:
    - fu_console_print_literal
    - g_autoptr
    - g_string_new_len
    - g_string_append
    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:359,1
    - Dst: fu_console_box_line
      Src: /src/fwupd/src/fu-console.c:360,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-console.c:364,1
    - Dst: fu_console_strsplit_words
      Src: /src/fwupd/src/fu-console.c:364,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-console.c:366,1
    - Dst: fu_console_box_line
      Src: /src/fwupd/src/fu-console.c:367,1
    - Dst: fu_console_box_line
      Src: /src/fwupd/src/fu-console.c:373,1
    - Dst: g_auto
      Src: /src/fwupd/src/fu-console.c:378,1
    - Dst: g_strsplit
      Src: /src/fwupd/src/fu-console.c:378,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-console.c:380,1
    - Dst: fu_console_strsplit_words
      Src: /src/fwupd/src/fu-console.c:380,1
    - Dst: fu_console_box_line
      Src: /src/fwupd/src/fu-console.c:383,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-console.c:389,1
    - Dst: fu_console_box_line
      Src: /src/fwupd/src/fu-console.c:390,1
    - Dst: fu_console_box_line
      Src: /src/fwupd/src/fu-console.c:397,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - self
    - title
    - body
    - width
    argTypes:
    - FuConsole*
    - gchar*
    - gchar*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 398
    functionName: fu_console_box
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 7
    functionsReached:
    - fu_console_box_line
    - g_strsplit
    - fu_console_reset_line
    - g_auto
    - g_autoptr
    - fu_console_strsplit_words
    - g_ptr_array_index
    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:406,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:410,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:414,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:418,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:422,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:426,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:430,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:434,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:438,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:442,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:446,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:451,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:458,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 1
    argNames:
    - status
    argTypes:
    - FwupdStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 459
    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: 475
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 475
    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: fwupd_percentage_is_valid
      Src: /src/fwupd/src/fu-console.c:484,1
    - Dst: g_timer_start
      Src: /src/fwupd/src/fu-console.c:485,1
    - Dst: _fu_status_is_predictable
      Src: /src/fwupd/src/fu-console.c:491,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/src/fu-console.c:495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - percentage
    argTypes:
    - FuConsole*
    - gdouble
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 500
    functionName: fu_console_estimate_ready
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - _fu_status_is_predictable
    - fwupd_percentage_is_valid
    - g_timer_start
    - g_timer_elapsed
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_console_estimate_ready(FuConsole *self, gdouble percentage)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-console.c:512,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:512,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/src/fu-console.c:515,1
    - Dst: ngettext
      Src: /src/fwupd/src/fu-console.c:517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConsole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 519
    functionName: fu_console_time_remaining_str
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strdup_printf
    - _
    - ngettext
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_console_time_remaining_str(FuConsole *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-console.c:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - frac
    argTypes:
    - gdouble
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 530
    functionName: fu_console_get_progress_part
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - G_N_ELEMENTS
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_console_get_progress_part(gdouble frac)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-console.c:537,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-console.c:537,1
    - Dst: fu_console_erase_line
      Src: /src/fwupd/src/fu-console.c:544,1
    - Dst: fu_console_status_to_string
      Src: /src/fwupd/src/fu-console.c:547,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-console.c:548,1
    - Dst: fu_strwidth
      Src: /src/fwupd/src/fu-console.c:549,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-console.c:550,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-console.c:553,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-console.c:556,1
    - Dst: fwupd_percentage_is_valid
      Src: /src/fwupd/src/fu-console.c:557,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-console.c:561,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-console.c:562,1
    - Dst: fu_console_get_progress_part
      Src: /src/fwupd/src/fu-console.c:562,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-console.c:564,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-console.c:577,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-console.c:578,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/src/fu-console.c:578,1
    - Dst: g_string_append_c
      Src: /src/fwupd/src/fu-console.c:580,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-console.c:582,1
    - Dst: fu_console_estimate_ready
      Src: /src/fwupd/src/fu-console.c:585,1
    - Dst: fu_console_time_remaining_str
      Src: /src/fwupd/src/fu-console.c:586,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/src/fu-console.c:588,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:592,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConsole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 594
    functionName: fu_console_refresh
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - fu_console_erase_line
    - g_string_append
    - fwupd_percentage_is_valid
    - fu_console_estimate_ready
    - g_print
    - fu_console_time_remaining_str
    - g_string_new
    - G_N_ELEMENTS
    - g_string_append_printf
    - g_string_append_c
    - fu_strwidth
    - fu_console_status_to_string
    - g_autoptr
    - fu_console_get_progress_part
    linkageType: ''
    returnType: void
    signature: void fu_console_refresh(FuConsole *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-console.c:608,1
    - Dst: g_string_new
      Src: /src/fwupd/src/fu-console.c:608,1
    - Dst: va_start
      Src: /src/fwupd/src/fu-console.c:610,1
    - Dst: g_string_append_vprintf
      Src: /src/fwupd/src/fu-console.c:611,1
    - Dst: va_end
      Src: /src/fwupd/src/fu-console.c:612,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-console.c:615,1
    - Dst: fu_console_color_format
      Src: /src/fwupd/src/fu-console.c:619,1
    - Dst: _
      Src: /src/fwupd/src/fu-console.c:619,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-console.c:620,1
    - Dst: g_string_prepend
      Src: /src/fwupd/src/fu-console.c:621,1
    - Dst: g_string_append
      Src: /src/fwupd/src/fu-console.c:626,1
    - Dst: fu_console_reset_line
      Src: /src/fwupd/src/fu-console.c:628,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-console.c:630,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:632,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - self
    - flags
    - format
    argTypes:
    - FuConsole*
    - FuConsolePrintFlags
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 634
    functionName: fu_console_print_full
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 12
    functionsReached:
    - va_end
    - g_string_prepend
    - g_string_append
    - g_print
    - g_string_append_vprintf
    - fu_console_color_format
    - _
    - g_printerr
    - g_string_new
    - fu_console_reset_line
    - g_autoptr
    - va_start
    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:639,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - FuConsole*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 636
    functionDepth: 2
    functionLinenumber: 636
    functionLinenumberEnd: 641
    functionName: fu_console_print_literal
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 82
    functionsReached:
    - g_print
    - fu_console_reset_line
    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:656,1
    - Dst: g_strdup_vprintf
      Src: /src/fwupd/src/fu-console.c:657,1
    - Dst: va_end
      Src: /src/fwupd/src/fu-console.c:658,1
    - Dst: fu_console_print_literal
      Src: /src/fwupd/src/fu-console.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - format
    argTypes:
    - FuConsole*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 650
    functionDepth: 3
    functionLinenumber: 650
    functionLinenumberEnd: 660
    functionName: fu_console_print
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 47
    functionsReached:
    - va_end
    - fu_console_print_literal
    - va_start
    - 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:674,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:675,1
    - Dst: fu_console_refresh
      Src: /src/fwupd/src/fu-console.c:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - title
    argTypes:
    - FuConsole*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 669
    functionDepth: 3
    functionLinenumber: 669
    functionLinenumberEnd: 677
    functionName: fu_console_set_progress_title
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 4
    functionsReached:
    - fu_console_erase_line
    - g_print
    - fu_console_refresh
    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:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - main_ctx
    argTypes:
    - FuConsole*
    - GMainContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 690
    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:696,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConsole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 706
    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:711,1
    - Dst: fu_console_spin_inc
      Src: /src/fwupd/src/fu-console.c:714,1
    - Dst: fu_console_refresh
      Src: /src/fwupd/src/fu-console.c:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 708
    functionDepth: 3
    functionLinenumber: 708
    functionLinenumberEnd: 720
    functionName: fu_console_spin_cb
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - FU_CONSOLE
    - fu_console_spin_inc
    - fu_console_refresh
    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:726,1
    - Dst: g_timer_start
      Src: /src/fwupd/src/fu-console.c:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConsole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 736
    functionName: fu_console_spin_end
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - g_source_destroy
    - g_timer_start
    linkageType: ''
    returnType: void
    signature: void fu_console_spin_end(FuConsole *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_timeout_source_new
      Src: /src/fwupd/src/fu-console.c:743,1
    - Dst: g_source_set_callback
      Src: /src/fwupd/src/fu-console.c:744,1
    - Dst: g_source_attach
      Src: /src/fwupd/src/fu-console.c:745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConsole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 746
    functionName: fu_console_spin_start
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - g_source_attach
    - g_timeout_source_new
    - 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:759,1
    - Dst: FU_IS_CONSOLE
      Src: /src/fwupd/src/fu-console.c:759,1
    - Dst: fwupd_percentage_is_valid
      Src: /src/fwupd/src/fu-console.c:771,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-console.c:772,1
    - Dst: fu_console_status_to_string
      Src: /src/fwupd/src/fu-console.c:772,1
    - Dst: g_printerr
      Src: /src/fwupd/src/fu-console.c:774,1
    - Dst: fu_console_status_to_string
      Src: /src/fwupd/src/fu-console.c:774,1
    - Dst: g_get_monotonic_time
      Src: /src/fwupd/src/fu-console.c:783,1
    - Dst: fu_console_spin_inc
      Src: /src/fwupd/src/fu-console.c:784,1
    - Dst: fu_console_refresh
      Src: /src/fwupd/src/fu-console.c:785,1
    - Dst: fwupd_percentage_is_valid
      Src: /src/fwupd/src/fu-console.c:790,1
    - Dst: fu_console_spin_end
      Src: /src/fwupd/src/fu-console.c:791,1
    - Dst: fu_console_spin_start
      Src: /src/fwupd/src/fu-console.c:793,1
    - Dst: fu_console_refresh
      Src: /src/fwupd/src/fu-console.c:797,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - self
    - status
    - percentage
    argTypes:
    - FuConsole*
    - FwupdStatus
    - gdouble
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 756
    functionDepth: 3
    functionLinenumber: 756
    functionLinenumberEnd: 798
    functionName: fu_console_set_progress
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 7
    functionsReached:
    - fwupd_percentage_is_valid
    - FU_IS_CONSOLE
    - g_return_if_fail
    - fu_console_spin_inc
    - fu_console_spin_end
    - g_printerr
    - g_get_monotonic_time
    - fu_console_spin_start
    - fu_console_status_to_string
    - fu_console_refresh
    linkageType: ''
    returnType: void
    signature: void fu_console_set_progress(FuConsole *self, FwupdStatus status, gdouble
      percentage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-console.c:810,1
    - Dst: FU_IS_CONSOLE
      Src: /src/fwupd/src/fu-console.c:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - interactive
    argTypes:
    - FuConsole*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 812
    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:824,1
    - Dst: FU_IS_CONSOLE
      Src: /src/fwupd/src/fu-console.c:824,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-console.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - len
    argTypes:
    - FuConsole*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 827
    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:839,1
    - Dst: FU_IS_CONSOLE
      Src: /src/fwupd/src/fu-console.c:839,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-console.c:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - len
    argTypes:
    - FuConsole*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 842
    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:849,1
    - Dst: g_print
      Src: /src/fwupd/src/fu-console.c:850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - count
    argTypes:
    - FuConsole*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 852
    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:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConsole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 862
    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:867,1
    - Dst: fu_console_reset_line
      Src: /src/fwupd/src/fu-console.c:869,1
    - Dst: g_source_destroy
      Src: /src/fwupd/src/fu-console.c:871,1
    - Dst: g_main_context_unref
      Src: /src/fwupd/src/fu-console.c:873,1
    - Dst: g_timer_destroy
      Src: /src/fwupd/src/fu-console.c:874,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-console.c:876,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 864
    functionDepth: 2
    functionLinenumber: 864
    functionLinenumberEnd: 877
    functionName: fu_console_finalize
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 0
    functionsReached:
    - g_timer_destroy
    - g_source_destroy
    - FU_CONSOLE
    - G_OBJECT_CLASS
    - g_main_context_unref
    - fu_console_reset_line
    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:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuConsoleClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 884
    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:895,1
    - Dst: FU_CONSOLE
      Src: /src/fwupd/src/fu-console.c:896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 897
    functionName: fu_console_new
    functionSourceFile: /src/fwupd/src/fu-console.c
    functionUses: 3
    functionsReached:
    - g_object_new
    - FU_CONSOLE
    linkageType: ''
    returnType: FuConsole
    signature: 'FuConsole *

      fu_console_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_JCAT_CONTEXT
      Src: /src/fwupd/src/fu-jcat-context.c:37,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-jcat-context.c:38,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-jcat-context.c:39,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/src/fu-jcat-context.c:40,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-jcat-context.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: fu_jcat_context_finalize
    functionSourceFile: /src/fwupd/src/fu-jcat-context.c
    functionUses: 0
    functionsReached:
    - FU_JCAT_CONTEXT
    - g_free
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    linkageType: ''
    returnType: void
    signature: void fu_jcat_context_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/src/fu-jcat-context.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJcatContextClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: fu_jcat_context_class_init
    functionSourceFile: /src/fwupd/src/fu-jcat-context.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_jcat_context_class_init(FuJcatContextClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-jcat-context.c:54,1
    - Dst: g_get_user_data_dir
      Src: /src/fwupd/src/fu-jcat-context.c:54,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-jcat-context.c:55,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-jcat-context.c:56,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-jcat-context.c:58,1
    - Dst: fu_jcat_sha256_engine_new
      Src: /src/fwupd/src/fu-jcat-context.c:58,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-jcat-context.c:59,1
    - Dst: fu_jcat_sha512_engine_new
      Src: /src/fwupd/src/fu-jcat-context.c:59,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-jcat-context.c:61,1
    - Dst: fu_jcat_gnutls_pkcs7_engine_new
      Src: /src/fwupd/src/fu-jcat-context.c:61,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-jcat-context.c:64,1
    - Dst: fu_jcat_libcrypto_pkcs7_engine_new
      Src: /src/fwupd/src/fu-jcat-context.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJcatContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: fu_jcat_context_init
    functionSourceFile: /src/fwupd/src/fu-jcat-context.c
    functionUses: 0
    functionsReached:
    - fu_jcat_sha512_engine_new
    - fu_jcat_gnutls_pkcs7_engine_new
    - fu_jcat_libcrypto_pkcs7_engine_new
    - g_ptr_array_add
    - g_get_user_data_dir
    - g_ptr_array_new_with_free_func
    - g_build_filename
    - fu_jcat_sha256_engine_new
    linkageType: ''
    returnType: void
    signature: void fu_jcat_context_init(FuJcatContext *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:79,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:80,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-jcat-context.c:82,1
    - Dst: FU_IS_JCAT_CONTEXT
      Src: /src/fwupd/src/fu-jcat-context.c:82,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-jcat-context.c:83,1
    - Dst: g_dir_open
      Src: /src/fwupd/src/fu-jcat-context.c:86,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-context.c:88,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/src/fu-jcat-context.c:91,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-jcat-context.c:92,1
    - Dst: g_build_filename
      Src: /src/fwupd/src/fu-jcat-context.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - path
    argTypes:
    - FuJcatContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 93
    functionName: fu_jcat_context_add_public_keys
    functionSourceFile: /src/fwupd/src/fu-jcat-context.c
    functionUses: 8
    functionsReached:
    - g_debug
    - g_return_if_fail
    - g_ptr_array_add
    - g_dir_read_name
    - g_dir_open
    - FU_IS_JCAT_CONTEXT
    - g_autoptr
    - g_build_filename
    linkageType: ''
    returnType: void
    signature: void fu_jcat_context_add_public_keys(FuJcatContext *self, const gchar
      *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJcatContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: fu_jcat_context_get_public_keys
    functionSourceFile: /src/fwupd/src/fu-jcat-context.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_jcat_context_get_public_keys(FuJcatContext *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-jcat-context.c:112,1
    - Dst: FU_IS_JCAT_CONTEXT
      Src: /src/fwupd/src/fu-jcat-context.c:112,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-jcat-context.c:113,1
    - Dst: g_free
      Src: /src/fwupd/src/fu-jcat-context.c:114,1
    - Dst: g_strdup
      Src: /src/fwupd/src/fu-jcat-context.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - path
    argTypes:
    - FuJcatContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: fu_jcat_context_set_keyring_path
    functionSourceFile: /src/fwupd/src/fu-jcat-context.c
    functionUses: 3
    functionsReached:
    - g_strdup
    - FU_IS_JCAT_CONTEXT
    - g_return_if_fail
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_jcat_context_set_keyring_path(FuJcatContext *self, const gchar
      *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-context.c:129,1
    - Dst: FU_IS_JCAT_CONTEXT
      Src: /src/fwupd/src/fu-jcat-context.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJcatContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: fu_jcat_context_get_keyring_path
    functionSourceFile: /src/fwupd/src/fu-jcat-context.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_JCAT_CONTEXT
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_jcat_context_get_keyring_path(FuJcatContext *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - kind
    argTypes:
    - FuJcatContext*
    - FwupdJcatBlobKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: fu_jcat_context_is_blob_kind_allowed
    functionSourceFile: /src/fwupd/src/fu-jcat-context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jcat_context_is_blob_kind_allowed(FuJcatContext *self,
      FwupdJcatBlobKind kind)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-context.c:155,1
    - Dst: FU_IS_JCAT_CONTEXT
      Src: /src/fwupd/src/fu-jcat-context.c:155,1
    - Dst: fu_jcat_context_is_blob_kind_allowed
      Src: /src/fwupd/src/fu-jcat-context.c:157,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-context.c:158,1
    - Dst: fwupd_jcat_blob_kind_to_string
      Src: /src/fwupd/src/fu-jcat-context.c:162,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-jcat-context.c:166,1
    - Dst: fu_jcat_engine_get_kind
      Src: /src/fwupd/src/fu-jcat-context.c:167,1
    - Dst: g_object_ref
      Src: /src/fwupd/src/fu-jcat-context.c:168,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-context.c:170,1
    - Dst: fwupd_jcat_blob_kind_to_string
      Src: /src/fwupd/src/fu-jcat-context.c:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - kind
    - error
    argTypes:
    - FuJcatContext*
    - FwupdJcatBlobKind
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 176
    functionName: fu_jcat_context_get_engine
    functionSourceFile: /src/fwupd/src/fu-jcat-context.c
    functionUses: 14
    functionsReached:
    - g_return_val_if_fail
    - fwupd_jcat_blob_kind_to_string
    - g_set_error
    - fu_jcat_engine_get_kind
    - g_object_ref
    - fu_jcat_context_is_blob_kind_allowed
    - FU_IS_JCAT_CONTEXT
    - g_ptr_array_index
    linkageType: ''
    returnType: FuJcatEngine
    signature: 'FuJcatEngine *

      fu_jcat_context_get_engine(FuJcatContext *self, FwupdJcatBlobKind kind, GError
      **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:198,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-context.c:200,1
    - Dst: FU_IS_JCAT_CONTEXT
      Src: /src/fwupd/src/fu-jcat-context.c:200,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-context.c:201,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-context.c:202,1
    - Dst: FWUPD_IS_JCAT_BLOB
      Src: /src/fwupd/src/fu-jcat-context.c:202,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-jcat-context.c:205,1
    - Dst: fwupd_jcat_blob_get_kind
      Src: /src/fwupd/src/fu-jcat-context.c:205,1
    - Dst: fwupd_jcat_blob_get_data
      Src: /src/fwupd/src/fu-jcat-context.c:208,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-context.c:210,1
    - Dst: fu_jcat_engine_get_method
      Src: /src/fwupd/src/fu-jcat-context.c:216,1
    - Dst: fu_jcat_engine_self_verify
      Src: /src/fwupd/src/fu-jcat-context.c:217,1
    - Dst: fu_jcat_engine_pubkey_verify
      Src: /src/fwupd/src/fu-jcat-context.c:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - self
    - data
    - blob
    - flags
    - error
    argTypes:
    - FuJcatContext*
    - GBytes*
    - FwupdJcatBlob*
    - FuJcatVerifyFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 219
    functionName: fu_jcat_context_verify_blob
    functionSourceFile: /src/fwupd/src/fu-jcat-context.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fwupd_jcat_blob_get_data
    - fu_jcat_context_get_engine
    - g_set_error_literal
    - fu_jcat_engine_self_verify
    - fu_jcat_engine_pubkey_verify
    - g_autoptr
    - fu_jcat_engine_get_method
    - FU_IS_JCAT_CONTEXT
    - FWUPD_IS_JCAT_BLOB
    - fwupd_jcat_blob_get_kind
    linkageType: ''
    returnType: FuJcatResult
    signature: "FuJcatResult *\nfu_jcat_context_verify_blob(FuJcatContext *self,\n\t\t\t
      \   GBytes *data,\n\t\t\t    FwupdJcatBlob *blob,\n\t\t\t    FuJcatVerifyFlags
      flags,\n\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-jcat-context.c:234,1
    - Dst: FU_IS_JCAT_CONTEXT
      Src: /src/fwupd/src/fu-jcat-context.c:234,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/src/fu-jcat-context.c:235,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/src/fu-jcat-context.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - kind
    argTypes:
    - FuJcatContext*
    - FwupdJcatBlobKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 237
    functionName: fu_jcat_context_allow_blob_kind
    functionSourceFile: /src/fwupd/src/fu-jcat-context.c
    functionUses: 12
    functionsReached:
    - FU_IS_JCAT_CONTEXT
    - g_return_if_fail
    - FU_BIT_SET
    linkageType: ''
    returnType: void
    signature: void fu_jcat_context_allow_blob_kind(FuJcatContext *self, FwupdJcatBlobKind
      kind)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:262,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:263,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-jcat-context.c:264,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-context.c:266,1
    - Dst: FU_IS_JCAT_CONTEXT
      Src: /src/fwupd/src/fu-jcat-context.c:266,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-context.c:267,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-context.c:268,1
    - Dst: FWUPD_IS_JCAT_ITEM
      Src: /src/fwupd/src/fu-jcat-context.c:268,1
    - Dst: fwupd_jcat_item_get_blobs
      Src: /src/fwupd/src/fu-jcat-context.c:271,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-context.c:273,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-jcat-context.c:282,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:283,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:284,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:285,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-jcat-context.c:289,1
    - Dst: fwupd_jcat_blob_get_kind
      Src: /src/fwupd/src/fu-jcat-context.c:289,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-context.c:291,1
    - Dst: fu_jcat_engine_get_method
      Src: /src/fwupd/src/fu-jcat-context.c:294,1
    - Dst: fu_jcat_engine_self_verify
      Src: /src/fwupd/src/fu-jcat-context.c:296,1
    - Dst: fwupd_jcat_blob_get_data
      Src: /src/fwupd/src/fu-jcat-context.c:298,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/src/fu-jcat-context.c:302,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-jcat-context.c:305,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-jcat-context.c:305,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-context.c:308,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-jcat-context.c:317,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:319,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:320,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:321,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-jcat-context.c:324,1
    - Dst: fwupd_jcat_blob_get_kind
      Src: /src/fwupd/src/fu-jcat-context.c:324,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-context.c:326,1
    - Dst: fu_jcat_engine_get_method
      Src: /src/fwupd/src/fu-jcat-context.c:329,1
    - Dst: fu_jcat_engine_pubkey_verify
      Src: /src/fwupd/src/fu-jcat-context.c:331,1
    - Dst: fwupd_jcat_blob_get_data
      Src: /src/fwupd/src/fu-jcat-context.c:333,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-context.c:337,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-jcat-context.c:340,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-jcat-context.c:340,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-context.c:341,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-jcat-context.c:342,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-jcat-context.c:342,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-context.c:346,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-context.c:355,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-jcat-context.c:363,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 5
    argNames:
    - self
    - data
    - item
    - flags
    - error
    argTypes:
    - FuJcatContext*
    - GBytes*
    - FwupdJcatItem*
    - FuJcatVerifyFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 364
    functionName: fu_jcat_context_verify_item
    functionSourceFile: /src/fwupd/src/fu-jcat-context.c
    functionUses: 6
    functionsReached:
    - fwupd_jcat_blob_get_data
    - fwupd_codec_to_string
    - FWUPD_CODEC
    - fwupd_jcat_item_get_blobs
    - g_ptr_array_index
    - fu_jcat_context_get_engine
    - g_debug
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_jcat_engine_pubkey_verify
    - fu_jcat_engine_get_method
    - g_ptr_array_new_with_free_func
    - FWUPD_IS_JCAT_ITEM
    - FU_IS_JCAT_CONTEXT
    - fwupd_jcat_blob_get_kind
    - g_return_val_if_fail
    - g_steal_pointer
    - g_ptr_array_add
    - fu_jcat_engine_self_verify
    - g_autoptr
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfu_jcat_context_verify_item(FuJcatContext *self,\n\t\t\t
      \   GBytes *data,\n\t\t\t    FwupdJcatItem *item,\n\t\t\t    FuJcatVerifyFlags
      flags,\n\t\t\t    GError **error)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:387,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:388,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/src/fu-jcat-context.c:389,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-context.c:391,1
    - Dst: FU_IS_JCAT_CONTEXT
      Src: /src/fwupd/src/fu-jcat-context.c:391,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-context.c:392,1
    - Dst: FWUPD_IS_JCAT_ITEM
      Src: /src/fwupd/src/fu-jcat-context.c:392,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/src/fu-jcat-context.c:393,1
    - Dst: FWUPD_IS_JCAT_ITEM
      Src: /src/fwupd/src/fu-jcat-context.c:393,1
    - Dst: fwupd_jcat_item_get_blobs
      Src: /src/fwupd/src/fu-jcat-context.c:396,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-context.c:398,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-jcat-context.c:407,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:408,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:409,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:410,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-jcat-context.c:416,1
    - Dst: fwupd_jcat_blob_get_kind
      Src: /src/fwupd/src/fu-jcat-context.c:416,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-context.c:418,1
    - Dst: fu_jcat_engine_get_method
      Src: /src/fwupd/src/fu-jcat-context.c:421,1
    - Dst: fwupd_jcat_item_get_blob_by_kind
      Src: /src/fwupd/src/fu-jcat-context.c:423,1
    - Dst: fwupd_jcat_blob_get_kind
      Src: /src/fwupd/src/fu-jcat-context.c:424,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-context.c:427,1
    - Dst: fwupd_jcat_blob_get_data_as_string
      Src: /src/fwupd/src/fu-jcat-context.c:432,1
    - Dst: fwupd_jcat_blob_get_data_as_string
      Src: /src/fwupd/src/fu-jcat-context.c:433,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-context.c:435,1
    - Dst: g_strcmp0
      Src: /src/fwupd/src/fu-jcat-context.c:441,1
    - Dst: g_set_error
      Src: /src/fwupd/src/fu-jcat-context.c:442,1
    - Dst: fwupd_jcat_blob_kind_to_string
      Src: /src/fwupd/src/fu-jcat-context.c:446,1
    - Dst: fwupd_jcat_blob_get_kind
      Src: /src/fwupd/src/fu-jcat-context.c:446,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-jcat-context.c:451,1
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-jcat-context.c:451,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-context.c:454,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/src/fu-jcat-context.c:463,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:465,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:466,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:467,1
    - Dst: g_autoptr
      Src: /src/fwupd/src/fu-jcat-context.c:468,1
    - Dst: fu_jcat_context_get_engine
      Src: /src/fwupd/src/fu-jcat-context.c:471,1
    - Dst: fwupd_jcat_blob_get_kind
      Src: /src/fwupd/src/fu-jcat-context.c:471,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-context.c:473,1
    - Dst: fu_jcat_engine_get_method
      Src: /src/fwupd/src/fu-jcat-context.c:476,1
    - Dst: fwupd_jcat_blob_get_target
      Src: /src/fwupd/src/fu-jcat-context.c:478,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-context.c:479,1
    - Dst: fwupd_jcat_item_get_blob_by_kind
      Src: /src/fwupd/src/fu-jcat-context.c:482,1
    - Dst: fwupd_jcat_blob_get_target
      Src: /src/fwupd/src/fu-jcat-context.c:483,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-context.c:486,1
    - Dst: fwupd_jcat_blob_kind_to_string
      Src: /src/fwupd/src/fu-jcat-context.c:487,1
    - Dst: fwupd_jcat_blob_get_target
      Src: /src/fwupd/src/fu-jcat-context.c:487,1
    - Dst: fu_jcat_engine_pubkey_verify
      Src: /src/fwupd/src/fu-jcat-context.c:491,1
    - Dst: fwupd_jcat_blob_get_data
      Src: /src/fwupd/src/fu-jcat-context.c:492,1
    - Dst: fwupd_jcat_blob_get_data
      Src: /src/fwupd/src/fu-jcat-context.c:493,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-context.c:497,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/src/fu-jcat-context.c:500,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/src/fu-jcat-context.c:500,1
    - Dst: g_debug
      Src: /src/fwupd/src/fu-jcat-context.c:501,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/src/fu-jcat-context.c:502,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-jcat-context.c:502,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-context.c:506,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/src/fu-jcat-context.c:515,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/src/fu-jcat-context.c:523,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 88
    argCount: 5
    argNames:
    - self
    - item_target
    - item
    - flags
    - error
    argTypes:
    - FuJcatContext*
    - FwupdJcatItem*
    - FwupdJcatItem*
    - FuJcatVerifyFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 524
    functionName: fu_jcat_context_verify_target
    functionSourceFile: /src/fwupd/src/fu-jcat-context.c
    functionUses: 2
    functionsReached:
    - fwupd_jcat_blob_get_data
    - fwupd_codec_to_string
    - FWUPD_CODEC
    - fwupd_jcat_blob_kind_to_string
    - fwupd_jcat_item_get_blob_by_kind
    - fwupd_jcat_item_get_blobs
    - g_object_new
    - g_ptr_array_index
    - fu_jcat_context_get_engine
    - g_debug
    - g_set_error_literal
    - fu_jcat_engine_pubkey_verify
    - fu_jcat_engine_get_method
    - g_ptr_array_new_with_free_func
    - fwupd_jcat_blob_get_data_as_string
    - FWUPD_IS_JCAT_ITEM
    - FU_IS_JCAT_CONTEXT
    - fwupd_jcat_blob_get_kind
    - g_return_val_if_fail
    - g_strcmp0
    - g_set_error
    - g_steal_pointer
    - g_ptr_array_add
    - fwupd_jcat_blob_get_target
    - g_autoptr
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfu_jcat_context_verify_target(FuJcatContext *self,\n\t\t\t
      \     FwupdJcatItem *item_target,\n\t\t\t      FwupdJcatItem *item,\n\t\t\t
      \     FuJcatVerifyFlags flags,\n\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/src/fu-jcat-context.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 537
    functionName: fu_jcat_context_new
    functionSourceFile: /src/fwupd/src/fu-jcat-context.c
    functionUses: 14
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuJcatContext
    signature: 'FuJcatContext *

      fu_jcat_context_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: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:70,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:71,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    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:87,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:88,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - created
    argTypes:
    - FwupdReport*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: fwupd_report_set_created
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_REPORT
    - g_return_if_fail
    - GET_PRIVATE
    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:105,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:106,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 108
    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:122,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:123,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:123,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:126,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:129,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-report.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - version_old
    argTypes:
    - FwupdReport*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 131
    functionName: fwupd_report_set_version_old
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_REPORT
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:146,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:147,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 149
    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:163,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:164,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:164,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:167,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:170,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-report.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - vendor
    argTypes:
    - FwupdReport*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 172
    functionName: fwupd_report_set_vendor
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_REPORT
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:188,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:189,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 191
    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:206,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:207,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - vendor_id
    argTypes:
    - FwupdReport*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: fwupd_report_set_vendor_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_REPORT
    - g_return_if_fail
    - GET_PRIVATE
    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:224,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:225,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    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:241,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:242,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:242,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:245,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:248,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-report.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device_name
    argTypes:
    - FwupdReport*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 250
    functionName: fwupd_report_set_device_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_REPORT
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:265,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:266,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 268
    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:282,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:283,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:283,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:286,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:289,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-report.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - distro_id
    argTypes:
    - FwupdReport*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 291
    functionName: fwupd_report_set_distro_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_REPORT
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:306,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:307,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 309
    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:323,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:324,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:324,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:327,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:330,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-report.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - distro_variant
    argTypes:
    - FwupdReport*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 332
    functionName: fwupd_report_set_distro_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_REPORT
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:347,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:348,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 350
    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:364,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:365,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:365,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:368,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:371,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-report.c:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - remote_id
    argTypes:
    - FwupdReport*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 373
    functionName: fwupd_report_set_remote_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_REPORT
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:388,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:389,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 391
    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:405,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:406,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:406,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:409,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:412,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-report.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - distro_version
    argTypes:
    - FwupdReport*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 414
    functionName: fwupd_report_set_distro_version
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_REPORT
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:429,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:430,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 432
    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:447,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:448,1
    - Dst: FWUPD_IS_REPORT
      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_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:450,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-report.c:451,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-report.c:451,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-report.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdReport*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 452
    functionName: fwupd_report_add_metadata_item
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - FWUPD_IS_REPORT
    - g_return_if_fail
    - GET_PRIVATE
    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:468,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:469,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:469,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:470,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-report.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FwupdReport*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 472
    functionName: fwupd_report_get_metadata_item
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_hash_table_lookup
    - 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:477,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:478,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:481,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:484,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:487,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:490,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:493,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:496,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:499,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:502,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:505,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:508,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:511,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-report.c:514,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:517,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:520,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:523,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-report.c:526,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:529,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:532,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupd/fwupd-report.c:534,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:535,1
    - Dst: fwupd_variant_from_hash_kv
      Src: /src/fwupd/libfwupd/fwupd-report.c:538,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-report.c:541,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-report.c:544,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - GVariantBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 546
    functionName: fwupd_report_add_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - FWUPD_REPORT
    - fwupd_variant_from_hash_kv
    - g_variant_builder_add
    - g_hash_table_size
    - g_variant_new_string
    - g_variant_new_uint64
    - g_variant_new_uint32
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_report_add_variant(FwupdCodec *codec, GVariantBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:551,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:552,1
    - Dst: fwupd_report_set_distro_id
      Src: /src/fwupd/libfwupd/fwupd-report.c:553,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:553,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:556,1
    - Dst: fwupd_report_set_distro_variant
      Src: /src/fwupd/libfwupd/fwupd-report.c:557,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:557,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:560,1
    - Dst: fwupd_report_set_distro_version
      Src: /src/fwupd/libfwupd/fwupd-report.c:561,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:561,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:564,1
    - Dst: fwupd_report_set_vendor
      Src: /src/fwupd/libfwupd/fwupd-report.c:565,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:565,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:568,1
    - Dst: fwupd_report_set_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-report.c:569,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-report.c:569,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:572,1
    - Dst: fwupd_report_set_device_name
      Src: /src/fwupd/libfwupd/fwupd-report.c:573,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:573,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:576,1
    - Dst: fwupd_report_set_created
      Src: /src/fwupd/libfwupd/fwupd-report.c:577,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-report.c:577,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:580,1
    - Dst: fwupd_report_set_version_old
      Src: /src/fwupd/libfwupd/fwupd-report.c:581,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:581,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:584,1
    - Dst: fwupd_report_set_remote_id
      Src: /src/fwupd/libfwupd/fwupd-report.c:585,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:585,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:588,1
    - Dst: fwupd_report_set_flags
      Src: /src/fwupd/libfwupd/fwupd-report.c:589,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-report.c:589,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-report.c:592,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-report.c:593,1
    - Dst: fwupd_variant_to_hash_kv
      Src: /src/fwupd/libfwupd/fwupd-report.c:593,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupd/fwupd-report.c:596,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-report.c:597,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdReport*
    - gchar*
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 601
    functionName: fwupd_report_from_key_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - fwupd_report_set_remote_id
    - fwupd_variant_get_uint64
    - fwupd_report_set_flags
    - fwupd_report_set_vendor
    - fwupd_report_set_created
    - fwupd_report_set_distro_id
    - GET_PRIVATE
    - fwupd_variant_get_uint32
    - fwupd_report_set_distro_variant
    - fwupd_variant_get_string
    - fwupd_report_set_distro_version
    - g_hash_table_unref
    - fwupd_variant_to_hash_kv
    - fwupd_report_set_version_old
    - g_strcmp0
    - g_steal_pointer
    - fwupd_report_set_device_name
    - fwupd_report_set_vendor_id
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_report_from_key_value(FwupdReport *self, const gchar *key,
      GVariant *value)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:606,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:607,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-report.c:608,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:611,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:616,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:618,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:623,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:628,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:633,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:635,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-report.c:637,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-report.c:643,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-report.c:643,1
    - Dst: fwupd_report_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:648,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:649,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-report.c:651,1
    - Dst: g_list_sort
      Src: /src/fwupd/libfwupd/fwupd-report.c:655,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupd/fwupd-report.c:655,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-report.c:658,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:659,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 661
    functionName: fwupd_report_add_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - FWUPD_REPORT
    - fwupd_json_object_add_array
    - fwupd_report_flag_to_string
    - g_hash_table_get_keys
    - g_hash_table_lookup
    - g_list_sort
    - fwupd_json_array_new
    - fwupd_json_array_add_string
    - fwupd_json_object_add_integer
    - g_autoptr
    - fwupd_json_object_add_string
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_report_add_json(FwupdCodec *codec, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-report.c:666,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-report.c:666,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-report.c:670,1
    - Dst: fwupd_report_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:670,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:673,1
    - Dst: fwupd_report_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-report.c:673,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-report.c:675,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:677,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - report_flags
    argTypes:
    - GString*
    - guint
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 678
    functionName: fwupd_report_string_append_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - g_string_append
    - fwupd_report_flag_to_string
    - fwupd_codec_string_append
    - g_string_new
    - g_string_append_printf
    - g_string_truncate
    - g_autoptr
    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:683,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:684,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-report.c:685,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:687,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:688,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:689,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:690,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:691,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:692,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-report.c:693,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:694,1
    - Dst: fwupd_report_string_append_flags
      Src: /src/fwupd/libfwupd/fwupd-report.c:695,1
    - Dst: g_list_sort
      Src: /src/fwupd/libfwupd/fwupd-report.c:698,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupd/fwupd-report.c:698,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-report.c:701,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-report.c:702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 680
    functionDepth: 2
    functionLinenumber: 680
    functionLinenumberEnd: 704
    functionName: fwupd_report_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - FWUPD_REPORT
    - g_hash_table_get_keys
    - fwupd_report_string_append_flags
    - g_hash_table_lookup
    - g_list_sort
    - fwupd_codec_string_append
    - fwupd_codec_string_append_int
    - g_autoptr
    - GET_PRIVATE
    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:719,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:720,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 722
    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:736,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:737,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:737,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-report.c:741,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-report.c:741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdReport*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 742
    functionName: fwupd_report_set_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - FWUPD_IS_REPORT
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:756,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:757,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:757,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-report.c:763,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-report.c:763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdReport*
    - FwupdReportFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 764
    functionName: fwupd_report_add_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 3
    functionsReached:
    - g_object_notify
    - FWUPD_IS_REPORT
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:778,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:779,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:779,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-report.c:785,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-report.c:785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdReport*
    - FwupdReportFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 786
    functionName: fwupd_report_remove_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - FWUPD_IS_REPORT
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:802,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-report.c:803,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdReport*
    - FwupdReportFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 805
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:810,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:811,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupd/fwupd-report.c:814,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-report.c:817,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: 820
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 820
    functionName: fwupd_report_get_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - FWUPD_REPORT
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_set_uint64
    - GET_PRIVATE
    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:825,1
    - Dst: fwupd_report_set_flags
      Src: /src/fwupd/libfwupd/fwupd-report.c:828,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-report.c:828,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-report.c:831,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: 834
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 834
    functionName: fwupd_report_set_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - FWUPD_REPORT
    - g_value_get_uint64
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - fwupd_report_set_flags
    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:839,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupd/fwupd-report.c:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 841
    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:846,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-report.c:847,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:849,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:850,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:851,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:852,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:853,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:854,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-report.c:855,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupd/fwupd-report.c:856,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-report.c:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 859
    functionName: fwupd_report_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - FWUPD_REPORT
    - G_OBJECT_CLASS
    - g_free
    - g_hash_table_unref
    - GET_PRIVATE
    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:864,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupd/fwupd-report.c:878,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-report.c:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdReportClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 886
    functionName: fwupd_report_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_uint64
    - 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:891,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/libfwupd/fwupd-report.c:894,1
    - Dst: fwupd_report_from_key_value
      Src: /src/fwupd/libfwupd/fwupd-report.c:895,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupd/fwupd-report.c:896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - codec
    - iter
    argTypes:
    - FwupdCodec*
    - GVariantIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 888
    functionDepth: 2
    functionLinenumber: 888
    functionLinenumberEnd: 898
    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: 907
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 907
    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:922,1
    - Dst: FWUPD_REPORT
      Src: /src/fwupd/libfwupd/fwupd-report.c:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 924
    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: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:71,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:71,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-request.c:72,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupd/fwupd-request.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: fwupd_request_emit_invalidate
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - g_return_if_fail
    - FWUPD_IS_REQUEST
    - g_debug
    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:89,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:90,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: fwupd_request_get_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REQUEST
    - GET_PRIVATE
    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:106,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:107,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:107,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:110,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-request.c:113,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-request.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FwupdRequest*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 115
    functionName: fwupd_request_set_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_REQUEST
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:130,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:131,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: fwupd_request_get_device_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REQUEST
    - GET_PRIVATE
    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:147,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:148,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:148,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:151,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-request.c:154,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-request.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device_id
    argTypes:
    - FwupdRequest*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: fwupd_request_set_device_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_REQUEST
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:171,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:172,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: fwupd_request_get_created
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REQUEST
    - GET_PRIVATE
    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:188,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:189,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - created
    argTypes:
    - FwupdRequest*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: fwupd_request_set_created
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_REQUEST
    - GET_PRIVATE
    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:196,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:197,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-request.c:200,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:203,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-request.c:206,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-request.c:209,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-request.c:212,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:215,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-request.c:218,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:221,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-request.c:224,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:227,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-request.c:230,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-request.c:233,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-request.c:236,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-request.c:239,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - GVariantBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 241
    functionName: fwupd_request_add_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_variant_builder_add
    - g_variant_new_string
    - g_variant_new_uint64
    - FWUPD_REQUEST
    - g_variant_new_uint32
    - GET_PRIVATE
    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:246,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/libfwupd/fwupd-request.c:247,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:247,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:250,1
    - Dst: fwupd_request_set_created
      Src: /src/fwupd/libfwupd/fwupd-request.c:251,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-request.c:251,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:254,1
    - Dst: fwupd_request_set_device_id
      Src: /src/fwupd/libfwupd/fwupd-request.c:255,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:255,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:258,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/libfwupd/fwupd-request.c:259,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:259,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:262,1
    - Dst: fwupd_request_set_image
      Src: /src/fwupd/libfwupd/fwupd-request.c:263,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:263,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:266,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/libfwupd/fwupd-request.c:267,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-request.c:267,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:270,1
    - Dst: fwupd_request_set_flags
      Src: /src/fwupd/libfwupd/fwupd-request.c:271,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-request.c:271,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdRequest*
    - gchar*
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 274
    functionName: fwupd_request_from_key_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - fwupd_variant_get_uint64
    - g_strcmp0
    - fwupd_request_set_message
    - fwupd_request_set_kind
    - fwupd_variant_get_uint32
    - fwupd_request_set_id
    - fwupd_request_set_device_id
    - fwupd_request_set_image
    - fwupd_variant_get_string
    - fwupd_request_set_flags
    - fwupd_request_set_created
    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:289,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:290,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:290,1
    - Dst: fwupd_request_has_flag
      Src: /src/fwupd/libfwupd/fwupd-request.c:297,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:298,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:300,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:302,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:304,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:306,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:308,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:310,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 316
    functionName: fwupd_request_get_message
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FWUPD_IS_REQUEST
    - fwupd_request_has_flag
    - GET_PRIVATE
    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:330,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:331,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:331,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:334,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-request.c:337,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-request.c:338,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-request.c:339,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-request.c:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - message
    argTypes:
    - FwupdRequest*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 340
    functionName: fwupd_request_set_message
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 3
    functionsReached:
    - g_strdup
    - g_object_notify
    - g_strcmp0
    - FWUPD_IS_REQUEST
    - g_return_if_fail
    - g_free
    - G_OBJECT
    - GET_PRIVATE
    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:355,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:356,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 358
    functionName: fwupd_request_get_image
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REQUEST
    - GET_PRIVATE
    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:372,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:373,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:373,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-request.c:376,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-request.c:379,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-request.c:380,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-request.c:381,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-request.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - image
    argTypes:
    - FwupdRequest*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 382
    functionName: fwupd_request_set_image
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_object_notify
    - g_strcmp0
    - FWUPD_IS_REQUEST
    - g_return_if_fail
    - g_free
    - G_OBJECT
    - GET_PRIVATE
    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:397,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:398,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 400
    functionName: fwupd_request_get_kind
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REQUEST
    - GET_PRIVATE
    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:414,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:415,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:415,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-request.c:419,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-request.c:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - kind
    argTypes:
    - FwupdRequest*
    - FwupdRequestKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 420
    functionName: fwupd_request_set_kind
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 3
    functionsReached:
    - g_object_notify
    - FWUPD_IS_REQUEST
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:435,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:436,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 438
    functionName: fwupd_request_get_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REQUEST
    - GET_PRIVATE
    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:452,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:453,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:453,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-request.c:460,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-request.c:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdRequest*
    - FwupdRequestFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 461
    functionName: fwupd_request_set_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - FWUPD_IS_REQUEST
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:475,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:476,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdRequest*
    - FwupdRequestFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 478
    functionName: fwupd_request_add_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 2
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_REQUEST
    - GET_PRIVATE
    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:492,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:493,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdRequest*
    - FwupdRequestFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 495
    functionName: fwupd_request_remove_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_REQUEST
    - GET_PRIVATE
    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:511,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-request.c:512,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdRequest*
    - FwupdRequestFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 514
    functionName: fwupd_request_has_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REQUEST
    - GET_PRIVATE
    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:519,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:520,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-request.c:521,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-request.c:523,1
    - Dst: fwupd_request_kind_to_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:526,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-request.c:528,1
    - Dst: fwupd_request_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:531,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-request.c:532,1
    - Dst: fwupd_codec_string_append_time
      Src: /src/fwupd/libfwupd/fwupd-request.c:533,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-request.c:534,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-request.c:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 536
    functionName: fwupd_request_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append
    - FWUPD_REQUEST
    - GET_PRIVATE
    - fwupd_request_flag_to_string
    - fwupd_codec_string_append_time
    - fwupd_request_kind_to_string
    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:541,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:542,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:545,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:548,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:551,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:554,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-request.c:557,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupd/fwupd-request.c:560,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-request.c:563,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: 566
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 566
    functionName: fwupd_request_get_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_value_set_uint
    - g_value_set_string
    - g_value_set_uint64
    - FWUPD_REQUEST
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    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:571,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/libfwupd/fwupd-request.c:574,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:574,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/libfwupd/fwupd-request.c:577,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:577,1
    - Dst: fwupd_request_set_image
      Src: /src/fwupd/libfwupd/fwupd-request.c:580,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:580,1
    - Dst: fwupd_request_set_device_id
      Src: /src/fwupd/libfwupd/fwupd-request.c:583,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:583,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/libfwupd/fwupd-request.c:586,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-request.c:586,1
    - Dst: fwupd_request_set_flags
      Src: /src/fwupd/libfwupd/fwupd-request.c:589,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-request.c:589,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-request.c:592,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: 595
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 595
    functionName: fwupd_request_set_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - fwupd_request_set_message
    - fwupd_request_set_kind
    - fwupd_request_set_id
    - fwupd_request_set_image
    - g_value_get_string
    - fwupd_request_set_device_id
    - fwupd_request_set_flags
    - g_value_get_uint64
    - FWUPD_REQUEST
    - g_value_get_uint
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    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:600,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:601,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-request.c:603,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-request.c:604,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-request.c:605,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-request.c:606,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-request.c:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 609
    functionName: fwupd_request_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_free
    - FWUPD_REQUEST
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_request_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-request.c:614,1
    - Dst: g_get_real_time
      Src: /src/fwupd/libfwupd/fwupd-request.c:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 616
    functionName: fwupd_request_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_get_real_time
    - GET_PRIVATE
    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:621,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupd/fwupd-request.c:637,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupd/fwupd-request.c:638,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupd/fwupd-request.c:640,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:655,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-request.c:656,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-request.c:665,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-request.c:672,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupd/fwupd-request.c:681,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-request.c:688,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:697,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-request.c:702,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:712,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-request.c:713,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-request.c:722,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-request.c:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdRequestClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 728
    functionName: fwupd_request_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_uint
    - g_param_spec_uint64
    - g_signal_new
    - G_OBJECT_CLASS
    - G_STRUCT_OFFSET
    - g_param_spec_string
    - G_TYPE_FROM_CLASS
    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:733,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/libfwupd/fwupd-request.c:736,1
    - Dst: fwupd_request_from_key_value
      Src: /src/fwupd/libfwupd/fwupd-request.c:737,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupd/fwupd-request.c:738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - codec
    - iter
    argTypes:
    - FwupdCodec*
    - GVariantIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 730
    functionDepth: 2
    functionLinenumber: 730
    functionLinenumberEnd: 740
    functionName: fwupd_request_from_variant_iter
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 0
    functionsReached:
    - g_variant_unref
    - g_variant_iter_next
    - FWUPD_REQUEST
    - 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: 748
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 748
    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:763,1
    - Dst: FWUPD_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-request.c:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 765
    functionName: fwupd_request_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request.c
    functionUses: 2
    functionsReached:
    - g_object_new
    - FWUPD_REQUEST
    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: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 73
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:67,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:68,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: fwupd_bios_setting_get_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_BIOS_SETTING
    - GET_PRIVATE
    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:83,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:84,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:84,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:87,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:90,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: fwupd_bios_setting_set_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_BIOS_SETTING
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:107,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:108,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: fwupd_bios_setting_get_read_only
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_BIOS_SETTING
    - GET_PRIVATE
    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:125,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:126,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - val
    argTypes:
    - FwupdBiosSetting*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: fwupd_bios_setting_set_read_only
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_BIOS_SETTING
    - g_return_if_fail
    - GET_PRIVATE
    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:143,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:144,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: fwupd_bios_setting_get_filename
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_BIOS_SETTING
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_bios_setting_get_filename(FwupdBiosSetting *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:161,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:162,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:162,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:165,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:168,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - filename
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 170
    functionName: fwupd_bios_setting_set_filename
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_BIOS_SETTING
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_set_filename(FwupdBiosSetting *self, const
      gchar *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:186,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:187,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: fwupd_bios_setting_get_lower_bound
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_BIOS_SETTING
    - GET_PRIVATE
    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:205,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:206,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: fwupd_bios_setting_get_upper_bound
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_BIOS_SETTING
    - GET_PRIVATE
    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:223,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:224,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: fwupd_bios_setting_get_scalar_increment
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_BIOS_SETTING
    - GET_PRIVATE
    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:241,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:242,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - val
    argTypes:
    - FwupdBiosSetting*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: fwupd_bios_setting_set_upper_bound
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_BIOS_SETTING
    - g_return_if_fail
    - GET_PRIVATE
    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:259,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:260,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - val
    argTypes:
    - FwupdBiosSetting*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 262
    functionName: fwupd_bios_setting_set_lower_bound
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_BIOS_SETTING
    - g_return_if_fail
    - GET_PRIVATE
    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:276,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:277,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - val
    argTypes:
    - FwupdBiosSetting*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 279
    functionName: fwupd_bios_setting_set_scalar_increment
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_BIOS_SETTING
    - g_return_if_fail
    - GET_PRIVATE
    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:294,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:295,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 297
    functionName: fwupd_bios_setting_get_kind
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_BIOS_SETTING
    - GET_PRIVATE
    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:311,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:312,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - type
    argTypes:
    - FwupdBiosSetting*
    - FwupdBiosSettingKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: fwupd_bios_setting_set_kind
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_BIOS_SETTING
    - g_return_if_fail
    - GET_PRIVATE
    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:328,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:329,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:329,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:332,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:335,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 337
    functionName: fwupd_bios_setting_set_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_BIOS_SETTING
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:351,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:352,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:352,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:355,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:358,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - path
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 360
    functionName: fwupd_bios_setting_set_path
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_BIOS_SETTING
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:374,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:375,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:375,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:378,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:381,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - description
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 383
    functionName: fwupd_bios_setting_set_description
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_BIOS_SETTING
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:389,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:391,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:393,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:395,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - key
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 398
    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:404,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:406,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:408,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - key
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 413
    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:434,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:439,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:439,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:440,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:443,1
    - Dst: g_utf8_strdown
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:451,1
    - Dst: fwupd_bios_setting_key_is_positive
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:452,1
    - Dst: fwupd_bios_setting_key_is_negative
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:453,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:455,1
    - Dst: g_utf8_strdown
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:456,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:461,1
    - Dst: fwupd_bios_setting_key_is_positive
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:464,1
    - Dst: fwupd_bios_setting_key_is_negative
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:465,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:469,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 476
    functionName: fwupd_bios_setting_map_possible_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fwupd_bios_setting_key_is_positive
    - g_strcmp0
    - FWUPD_IS_BIOS_SETTING
    - g_set_error
    - g_utf8_strdown
    - fwupd_bios_setting_key_is_negative
    - g_ptr_array_index
    - GET_PRIVATE
    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:492,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:493,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:493,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:494,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:500,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - val
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 505
    functionName: fwupd_bios_setting_has_possible_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FWUPD_IS_BIOS_SETTING
    - g_ptr_array_index
    - GET_PRIVATE
    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:520,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:521,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:521,1
    - Dst: fwupd_bios_setting_has_possible_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:523,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:525,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - possible_value
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 526
    functionName: fwupd_bios_setting_add_possible_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - FWUPD_IS_BIOS_SETTING
    - fwupd_bios_setting_has_possible_value
    - g_ptr_array_add
    - g_return_if_fail
    - GET_PRIVATE
    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:541,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:542,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:542,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 545
    functionName: fwupd_bios_setting_get_possible_values
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_BIOS_SETTING
    - GET_PRIVATE
    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:560,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:561,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 563
    functionName: fwupd_bios_setting_get_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_BIOS_SETTING
    - GET_PRIVATE
    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:578,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:579,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 581
    functionName: fwupd_bios_setting_get_path
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_BIOS_SETTING
    - GET_PRIVATE
    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:597,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:598,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 600
    functionName: fwupd_bios_setting_get_description
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_BIOS_SETTING
    - GET_PRIVATE
    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:617,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:618,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 620
    functionName: fwupd_bios_setting_get_current_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_BIOS_SETTING
    - GET_PRIVATE
    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:635,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:638,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:641,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 643
    functionName: fwupd_bios_setting_set_current_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    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:652,1
    - Dst: g_ascii_strtoull
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:656,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:657,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:658,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - str
    - value
    - error
    argTypes:
    - gchar*
    - guint64*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 662
    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:667,1
    - Dst: _fu_strtoull_simple
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:671,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:674,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:685,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:698,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:700,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:711,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:727,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 732
    functionName: fwupd_bios_setting_validate_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - strlen
    - _fu_strtoull_simple
    - 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:752,1
    - Dst: FWUPD_BIOS_SETTING_GET_CLASS
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:753,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:755,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:755,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:756,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:757,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:760,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:761,1
    - Dst: fwupd_bios_setting_get_read_only
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:771,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:772,1
    - Dst: fwupd_bios_setting_map_possible_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:782,1
    - Dst: fwupd_bios_setting_validate_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:788,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:793,1
    - Dst: FwupdBiosSettingClass*::write_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:798,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 799
    functionName: fwupd_bios_setting_write_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fwupd_bios_setting_map_possible_value
    - g_strcmp0
    - FWUPD_IS_BIOS_SETTING
    - g_set_error
    - g_set_error_literal
    - FWUPD_BIOS_SETTING_GET_CLASS
    - fwupd_bios_setting_validate_value
    - FwupdBiosSettingClass*::write_value
    - fwupd_bios_setting_get_read_only
    - GET_PRIVATE
    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:804,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:804,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:808,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - trusted
    argTypes:
    - FwupdBiosSetting*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 811
    functionName: fwupd_bios_setting_trusted
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FWUPD_IS_BIOS_SETTING
    - fwupd_bios_setting_get_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_bios_setting_trusted(FwupdBiosSetting *self, gboolean
      trusted)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:816,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:817,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_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:827,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:830,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:833,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:836,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:839,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:842,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:845,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:848,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:851,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:853,1
    - Dst: g_variant_new_boolean
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:856,1
    - Dst: fwupd_bios_setting_trusted
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:858,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:859,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:862,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:866,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:869,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:870,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:873,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:875,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:878,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:883,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:886,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:887,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:890,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - GVariantBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 893
    functionName: fwupd_bios_setting_add_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_variant_builder_add
    - g_variant_new_strv
    - FWUPD_BIOS_SETTING
    - g_variant_new_string
    - g_variant_new_uint64
    - g_variant_new_boolean
    - fwupd_bios_setting_trusted
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_add_variant(FwupdCodec *codec, GVariantBuilder
      *builder, FwupdCodecFlags flags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:898,1
    - Dst: fwupd_bios_setting_set_kind
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:899,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:899,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:902,1
    - Dst: fwupd_bios_setting_set_id
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:903,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:903,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:906,1
    - Dst: fwupd_bios_setting_set_name
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:907,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:907,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:910,1
    - Dst: fwupd_bios_setting_set_path
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:911,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:911,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:914,1
    - Dst: fwupd_bios_setting_set_current_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:915,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:915,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:918,1
    - Dst: fwupd_bios_setting_set_filename
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:919,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:919,1
    - Dst: g_strcmp0
      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: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:923,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:926,1
    - Dst: fwupd_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:927,1
    - Dst: fwupd_bios_setting_add_possible_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:929,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:932,1
    - Dst: fwupd_bios_setting_set_lower_bound
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:933,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:933,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:936,1
    - Dst: fwupd_bios_setting_set_upper_bound
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:937,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:937,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:940,1
    - Dst: fwupd_bios_setting_set_scalar_increment
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:941,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:941,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:944,1
    - Dst: fwupd_bios_setting_set_read_only
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:945,1
    - Dst: fwupd_variant_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:945,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 895
    functionDepth: 2
    functionLinenumber: 895
    functionLinenumberEnd: 948
    functionName: fwupd_bios_setting_from_key_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - fwupd_variant_get_uint64
    - g_strcmp0
    - fwupd_bios_setting_set_scalar_increment
    - fwupd_bios_setting_set_filename
    - fwupd_bios_setting_set_upper_bound
    - fwupd_variant_get_boolean
    - fwupd_variant_get_string
    - fwupd_bios_setting_set_read_only
    - fwupd_bios_setting_set_lower_bound
    - fwupd_variant_get_strv
    - fwupd_bios_setting_set_description
    - fwupd_bios_setting_set_kind
    - fwupd_bios_setting_set_name
    - fwupd_bios_setting_set_path
    - fwupd_bios_setting_add_possible_value
    - fwupd_bios_setting_set_id
    - fwupd_bios_setting_set_current_value
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_from_key_value(FwupdBiosSetting *self, const
      gchar *key, GVariant *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:953,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:956,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:958,1
    - Dst: fwupd_bios_setting_set_kind
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:964,1
    - Dst: fwupd_bios_setting_set_id
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:965,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:967,1
    - Dst: fwupd_bios_setting_set_name
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:969,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:971,1
    - Dst: fwupd_bios_setting_set_description
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:972,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:974,1
    - Dst: fwupd_bios_setting_set_path
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:975,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:977,1
    - Dst: fwupd_bios_setting_set_current_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:978,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:980,1
    - Dst: fwupd_bios_setting_set_filename
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:983,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:985,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:986,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:990,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:991,1
    - Dst: fwupd_bios_setting_add_possible_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:992,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:995,1
    - Dst: fwupd_bios_setting_set_lower_bound
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1001,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1002,1
    - Dst: fwupd_bios_setting_set_upper_bound
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1008,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1009,1
    - Dst: fwupd_bios_setting_set_scalar_increment
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1016,1
    - Dst: fwupd_json_object_get_boolean_with_default
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1017,1
    - Dst: fwupd_bios_setting_set_read_only
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1023,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - codec
    - json_obj
    - error
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 950
    functionDepth: 2
    functionLinenumber: 950
    functionLinenumberEnd: 1026
    functionName: fwupd_bios_setting_from_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - fwupd_bios_setting_set_filename
    - fwupd_bios_setting_set_kind
    - fwupd_json_object_get_boolean_with_default
    - fwupd_bios_setting_set_current_value
    - fwupd_json_array_get_size
    - fwupd_json_array_get_string
    - FWUPD_BIOS_SETTING
    - fwupd_json_object_get_array
    - fwupd_bios_setting_set_name
    - fwupd_bios_setting_set_upper_bound
    - fwupd_bios_setting_set_lower_bound
    - fwupd_json_object_get_string
    - fwupd_bios_setting_set_path
    - fwupd_bios_setting_set_id
    - fwupd_bios_setting_set_scalar_increment
    - fwupd_bios_setting_set_read_only
    - fwupd_bios_setting_add_possible_value
    - fwupd_bios_setting_set_description
    - g_autoptr
    - fwupd_json_object_get_integer_with_default
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_bios_setting_from_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1031,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1032,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1035,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1037,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1041,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1043,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1045,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1050,1
    - Dst: fwupd_json_object_add_boolean
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1054,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1057,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1060,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1060,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1062,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1063,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1065,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1072,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1075,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1079,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1085
    functionName: fwupd_bios_setting_add_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - FWUPD_BIOS_SETTING
    - fwupd_json_array_new
    - fwupd_json_array_add_string
    - fwupd_json_object_add_integer
    - fwupd_json_object_add_boolean
    - g_ptr_array_index
    - g_autoptr
    - fwupd_json_object_add_string
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_setting_add_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, FwupdCodecFlags flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1090,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1091,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1093,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1094,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1095,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1096,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1097,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1098,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1102,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1106,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1112,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1113,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1121,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1125,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1087
    functionDepth: 1
    functionLinenumber: 1087
    functionLinenumberEnd: 1137
    functionName: fwupd_bios_setting_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - FWUPD_BIOS_SETTING
    - fwupd_codec_string_append
    - fwupd_codec_string_append_int
    - g_ptr_array_index
    - GET_PRIVATE
    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:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdBiosSettingClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1139
    functionDepth: 0
    functionLinenumber: 1139
    functionLinenumberEnd: 1144
    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:1149,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1146
    functionDepth: 0
    functionLinenumber: 1146
    functionLinenumberEnd: 1151
    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:1156,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1157,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1159,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1160,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1161,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1162,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1163,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1164,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1165,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1168
    functionName: fwupd_bios_setting_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FWUPD_BIOS_SETTING
    - G_OBJECT_CLASS
    - g_free
    - GET_PRIVATE
    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:1173,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1176,1
    - Dst: fwupd_bios_setting_from_key_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1177,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - codec
    - iter
    argTypes:
    - FwupdCodec*
    - GVariantIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1170
    functionDepth: 3
    functionLinenumber: 1170
    functionLinenumberEnd: 1180
    functionName: fwupd_bios_setting_from_variant_iter
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - g_variant_iter_next
    - FWUPD_BIOS_SETTING
    - g_variant_unref
    - fwupd_bios_setting_from_key_value
    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: 1190
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1190
    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:1208,1
    - Dst: fwupd_bios_setting_set_name
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1210,1
    - Dst: fwupd_bios_setting_set_path
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1212,1
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/libfwupd/fwupd-bios-setting.c:1214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - name
    - path
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1203
    functionDepth: 1
    functionLinenumber: 1203
    functionLinenumberEnd: 1215
    functionName: fwupd_bios_setting_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting.c
    functionUses: 0
    functionsReached:
    - fwupd_bios_setting_set_path
    - g_object_new
    - FWUPD_BIOS_SETTING
    - fwupd_bios_setting_set_name
    linkageType: ''
    returnType: FwupdBiosSetting
    signature: 'FwupdBiosSetting *

      fwupd_bios_setting_new(const gchar *name, const gchar *path)'
  - 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_error_free
    - g_ptr_array_unref
    - g_variant_unref
    - g_object_unref
    - g_main_context_pop_thread_default
    - g_bytes_unref
    - g_main_loop_unref
    - g_free
    - g_main_context_unref
    - g_hash_table_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_main_loop_new
    - g_main_context_push_thread_default
    - fwupd_client_get_main_context
    - g_new0
    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
    - FWUPD_CLIENT
    - g_main_loop_quit
    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_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect_async
    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:
    - FWUPD_CLIENT
    - fwupd_client_quit_finish
    - g_main_loop_quit
    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_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_quit_async
    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
    - FWUPD_CLIENT
    - g_main_loop_quit
    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_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_get_devices_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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
    - FWUPD_CLIENT
    - g_main_loop_quit
    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_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - fwupd_client_get_plugins_async
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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
    - FWUPD_CLIENT
    - g_main_loop_quit
    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: 4
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_get_history_async
    - fwupd_client_connect
    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:
    - fwupd_client_get_releases_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_get_releases_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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_search_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:343,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:343,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: fwupd_client_search_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - FWUPD_CLIENT
    - fwupd_client_search_finish
    linkageType: ''
    returnType: void
    signature: void fwupd_client_search_cb(GObject *source, GAsyncResult *res, gpointer
      user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:366,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:368,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:368,1
    - Dst: g_return_val_if_fail
      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_IS_CANCELLABLE
      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: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:374,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:378,1
    - Dst: fwupd_client_search_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:379,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:380,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:382,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:382,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:385,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - token
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 386
    functionName: fwupd_client_search
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - fwupd_client_search_async
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfwupd_client_search(FwupdClient *self,\n\t\t    const
      gchar *token,\n\t\t    GCancellable *cancellable,\n\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_client_get_downgrades_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:393,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:393,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 395
    functionName: fwupd_client_get_downgrades_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_downgrades_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:416,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:418,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:418,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:419,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:420,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:420,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:421,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:424,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:428,1
    - Dst: fwupd_client_get_downgrades_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:429,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:434,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:436,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:436,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:439,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: 440
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 440
    functionName: fwupd_client_get_downgrades
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_get_downgrades_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:446,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:446,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 448
    functionName: fwupd_client_get_upgrades_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_upgrades_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:469,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:471,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:471,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:472,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:473,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:473,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:474,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:477,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:481,1
    - Dst: fwupd_client_get_upgrades_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:482,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:487,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:489,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:489,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:492,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: 493
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 493
    functionName: fwupd_client_get_upgrades
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_get_upgrades_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:500,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:500,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 502
    functionName: fwupd_client_get_details_bytes_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_details_bytes_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:523,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:525,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:525,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:526,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:527,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:527,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:528,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:531,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:535,1
    - Dst: fwupd_client_get_details_bytes_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:536,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:541,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:543,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:543,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - bytes
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - GBytes*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 517
    functionDepth: 3
    functionLinenumber: 517
    functionLinenumberEnd: 547
    functionName: fwupd_client_get_details_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_get_details_bytes_async
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:555,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:555,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 557
    functionName: fwupd_client_get_details_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_details_bytes_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:580,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:581,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:583,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:583,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:584,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:585,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:585,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:586,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:589,1
    - Dst: fwupd_unix_input_stream_from_fn
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:593,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:596,1
    - Dst: fwupd_client_get_details_stream_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:597,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:602,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:604,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:604,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:607,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:609,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - self
    - filename
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 573
    functionDepth: 3
    functionLinenumber: 573
    functionLinenumberEnd: 615
    functionName: fwupd_client_get_details
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_unix_input_stream_from_fn
    - g_set_error_literal
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - fwupd_client_get_details_stream_async
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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: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_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - FWUPD_CLIENT
    - fwupd_client_verify_finish
    - g_main_loop_quit
    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: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_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:657,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:658,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:660,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:660,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: 664
      start: 638
    functionDepth: 3
    functionLinenumber: 638
    functionLinenumberEnd: 664
    functionName: fwupd_client_verify
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_verify_async
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:670,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:670,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 672
    functionName: fwupd_client_verify_update_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_verify_update_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:693,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:695,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:695,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:696,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:697,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:697,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:698,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:701,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:705,1
    - Dst: fwupd_client_verify_update_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:706,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: 17
    argCount: 4
    argNames:
    - self
    - device_id
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 687
    functionDepth: 3
    functionLinenumber: 687
    functionLinenumberEnd: 717
    functionName: fwupd_client_verify_update
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_verify_update_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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: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_unlock_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_unlock_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:746,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:748,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:748,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:749,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:750,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:750,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:751,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:754,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:758,1
    - Dst: fwupd_client_unlock_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:759,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:760,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:762,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:762,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: 766
      start: 740
    functionDepth: 3
    functionLinenumber: 740
    functionLinenumberEnd: 766
    functionName: fwupd_client_unlock
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - fwupd_client_unlock_async
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:772,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:772,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 774
    functionName: fwupd_client_inhibit_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - FWUPD_CLIENT
    - fwupd_client_inhibit_finish
    - g_main_loop_quit
    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: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_inhibit_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:812,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:813,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:815,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:815,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:818,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - reason
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 793
    functionDepth: 3
    functionLinenumber: 793
    functionLinenumberEnd: 819
    functionName: fwupd_client_inhibit
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - fwupd_client_inhibit_async
    - g_autoptr
    - fwupd_client_connect
    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:825,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:825,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 827
    functionName: fwupd_client_uninhibit_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_uninhibit_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:848,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:850,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:850,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:851,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:852,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:852,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:853,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:856,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:860,1
    - Dst: fwupd_client_uninhibit_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:861,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:866,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:868,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:868,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: 872
      start: 842
    functionDepth: 3
    functionLinenumber: 842
    functionLinenumberEnd: 872
    functionName: fwupd_client_uninhibit
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_uninhibit_async
    - fwupd_client_connect
    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:878,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:878,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 880
    functionName: fwupd_client_modify_config_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_modify_config_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:906,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:908,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:908,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:909,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:910,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:911,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:912,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:912,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:913,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:916,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:920,1
    - Dst: fwupd_client_modify_config_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:921,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:928,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:930,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:930,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: 934
      start: 898
    functionDepth: 3
    functionLinenumber: 898
    functionLinenumberEnd: 934
    functionName: fwupd_client_modify_config
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    - fwupd_client_modify_config_async
    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:940,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:940,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 942
    functionName: fwupd_client_reset_config_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_reset_config_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:964,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:966,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:966,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:967,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:968,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:968,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:969,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:972,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:976,1
    - Dst: fwupd_client_reset_config_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:977,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:982,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:984,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:984,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - section
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 958
    functionDepth: 3
    functionLinenumber: 958
    functionLinenumberEnd: 988
    functionName: fwupd_client_reset_config
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_reset_config_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:994,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:994,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 996
    functionName: fwupd_client_activate_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_activate_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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: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_activate_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1031,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1032,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1034,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1034,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: 1038
      start: 1012
    functionDepth: 3
    functionLinenumber: 1012
    functionLinenumberEnd: 1038
    functionName: fwupd_client_activate
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_activate_async
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:1044,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1044,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1046
    functionName: fwupd_client_clear_results_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_clear_results_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:1067,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1069,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1069,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1070,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1071,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1071,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1072,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1075,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1079,1
    - Dst: fwupd_client_clear_results_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1080,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1085,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1087,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1087,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: 1091
      start: 1061
    functionDepth: 3
    functionLinenumber: 1061
    functionLinenumberEnd: 1091
    functionName: fwupd_client_clear_results
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    - 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:1097,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1097,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1093
    functionDepth: 1
    functionLinenumber: 1093
    functionLinenumberEnd: 1099
    functionName: fwupd_client_get_results_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_results_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:1120,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1122,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1122,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1123,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1124,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1124,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1125,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1128,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1132,1
    - Dst: fwupd_client_get_results_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1133,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1138,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1140,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1140,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1143,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: 1144
      start: 1114
    functionDepth: 3
    functionLinenumber: 1114
    functionLinenumberEnd: 1144
    functionName: fwupd_client_get_results
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_get_results_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:1151,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1151,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1146
    functionDepth: 1
    functionLinenumber: 1146
    functionLinenumberEnd: 1153
    functionName: fwupd_client_modify_bios_setting_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_modify_bios_setting_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:1175,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1177,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1177,1
    - Dst: g_return_val_if_fail
      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_modify_bios_setting_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1188,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1193,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1195,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - settings
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - GHashTable*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1169
    functionDepth: 3
    functionLinenumber: 1169
    functionLinenumberEnd: 1199
    functionName: fwupd_client_modify_bios_setting
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_modify_bios_setting_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:1206,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1206,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1201
    functionDepth: 1
    functionLinenumber: 1201
    functionLinenumberEnd: 1208
    functionName: fwupd_client_get_bios_settings_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - FWUPD_CLIENT
    - fwupd_client_get_bios_settings_finish
    - g_main_loop_quit
    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:1225,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1227,1
    - Dst: FWUPD_IS_CLIENT
      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: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1228,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1229,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1232,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1236,1
    - Dst: fwupd_client_get_bios_settings_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1237,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1241,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1243,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1243,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1222
    functionDepth: 3
    functionLinenumber: 1222
    functionLinenumberEnd: 1247
    functionName: fwupd_client_get_bios_settings
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - fwupd_client_get_bios_settings_async
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:1254,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1254,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1249
    functionDepth: 1
    functionLinenumber: 1249
    functionLinenumberEnd: 1256
    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:1273,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1275,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1275,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1276,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1276,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1277,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1280,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1284,1
    - Dst: fwupd_client_get_host_security_attrs_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1285,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1289,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1291,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1291,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1294,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1270
    functionDepth: 3
    functionLinenumber: 1270
    functionLinenumberEnd: 1295
    functionName: fwupd_client_get_host_security_attrs
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - fwupd_client_get_host_security_attrs_async
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:1302,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1302,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1297
    functionDepth: 1
    functionLinenumber: 1297
    functionLinenumberEnd: 1304
    functionName: fwupd_client_get_host_security_events_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - FWUPD_CLIENT
    - fwupd_client_get_host_security_events_finish
    - g_main_loop_quit
    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:1325,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1327,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1327,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1328,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1328,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1329,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1332,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1336,1
    - Dst: fwupd_client_get_host_security_events_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1337,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1342,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1344,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1344,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - limit
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - guint
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1319
    functionDepth: 3
    functionLinenumber: 1319
    functionLinenumberEnd: 1348
    functionName: fwupd_client_get_host_security_events
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_get_host_security_events_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:1355,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1355,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1350
    functionDepth: 1
    functionLinenumber: 1350
    functionLinenumberEnd: 1357
    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
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:1378,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1380,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1380,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1381,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1382,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1382,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1383,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1386,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1390,1
    - Dst: fwupd_client_get_device_by_id_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1391,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1396,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1398,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1398,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1401,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: 1402
      start: 1372
    functionDepth: 3
    functionLinenumber: 1372
    functionLinenumberEnd: 1402
    functionName: fwupd_client_get_device_by_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - fwupd_client_get_device_by_id_async
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:1409,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1409,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1404
    functionDepth: 1
    functionLinenumber: 1404
    functionLinenumberEnd: 1411
    functionName: fwupd_client_get_devices_by_guid_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_devices_by_guid_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:1433,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1435,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1435,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1436,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1437,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1437,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1438,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1441,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1445,1
    - Dst: fwupd_client_get_devices_by_guid_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1446,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1451,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1453,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1453,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - guid
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1427
    functionDepth: 3
    functionLinenumber: 1427
    functionLinenumberEnd: 1457
    functionName: fwupd_client_get_devices_by_guid
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_get_devices_by_guid_async
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:1464,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1464,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1460
    functionDepth: 1
    functionLinenumber: 1460
    functionLinenumberEnd: 1466
    functionName: fwupd_client_install_fd_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - FWUPD_CLIENT
    - fwupd_client_install_bytes_finish
    - g_main_loop_quit
    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:1493,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1494,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1496,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1496,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1497,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1498,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1499,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1499,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1500,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1503,1
    - Dst: fwupd_unix_input_stream_from_fn
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1507,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1512,1
    - Dst: fwupd_client_install_stream_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1513,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1521,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1523,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1523,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1528,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: 1534
      start: 1484
    functionDepth: 3
    functionLinenumber: 1484
    functionLinenumberEnd: 1534
    functionName: fwupd_client_install
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_unix_input_stream_from_fn
    - g_set_error_literal
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_install_stream_async
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:1540,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1540,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1536
    functionDepth: 1
    functionLinenumber: 1536
    functionLinenumberEnd: 1542
    functionName: fwupd_client_install_bytes_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - FWUPD_CLIENT
    - fwupd_client_install_bytes_finish
    - g_main_loop_quit
    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:1567,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1569,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1569,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1570,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1571,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1572,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1572,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1573,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1576,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1580,1
    - Dst: fwupd_client_install_bytes_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1581,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1588,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1590,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1590,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: 1594
      start: 1559
    functionDepth: 3
    functionLinenumber: 1559
    functionLinenumberEnd: 1594
    functionName: fwupd_client_install_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_install_bytes_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:1600,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1600,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1595
    functionDepth: 1
    functionLinenumber: 1595
    functionLinenumberEnd: 1602
    functionName: fwupd_client_install_release_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - FWUPD_CLIENT
    - fwupd_client_install_release_finish
    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:1629,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1631,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1631,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1632,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1632,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1633,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1633,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1634,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1634,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1635,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1638,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1642,1
    - Dst: fwupd_client_install_release_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1643,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1651,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1653,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1653,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: 1657
      start: 1620
    functionDepth: 3
    functionLinenumber: 1620
    functionLinenumberEnd: 1657
    functionName: fwupd_client_install_release
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - FWUPD_IS_DEVICE
    - FWUPD_IS_RELEASE
    - fwupd_client_install_release_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:1665,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1665,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1660
    functionDepth: 1
    functionLinenumber: 1660
    functionLinenumberEnd: 1667
    functionName: fwupd_client_update_metadata_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - FWUPD_CLIENT
    - fwupd_client_update_metadata_bytes_finish
    - g_main_loop_quit
    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:1699,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1700,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1701,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1703,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1703,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1704,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1705,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1706,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1707,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1707,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1708,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1711,1
    - Dst: fwupd_unix_input_stream_from_fn
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1714,1
    - Dst: fwupd_unix_input_stream_from_fn
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1717,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1722,1
    - Dst: fwupd_client_update_metadata_stream_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1723,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1730,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1732,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1732,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1737,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: 1743
      start: 1690
    functionDepth: 3
    functionLinenumber: 1690
    functionLinenumberEnd: 1743
    functionName: fwupd_client_update_metadata
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_unix_input_stream_from_fn
    - g_set_error_literal
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_update_metadata_stream_async
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:1750,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1750,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1745
    functionDepth: 1
    functionLinenumber: 1745
    functionLinenumberEnd: 1752
    functionName: fwupd_client_update_metadata_bytes_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - FWUPD_CLIENT
    - fwupd_client_update_metadata_bytes_finish
    - g_main_loop_quit
    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:1782,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1784,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1784,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1785,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1786,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1787,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1788,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1788,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1789,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1792,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1796,1
    - Dst: fwupd_client_update_metadata_bytes_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1797,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1804,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1806,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1806,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: 1810
      start: 1774
    functionDepth: 3
    functionLinenumber: 1774
    functionLinenumberEnd: 1810
    functionName: fwupd_client_update_metadata_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_update_metadata_bytes_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:1816,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1816,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1812
    functionDepth: 1
    functionLinenumber: 1812
    functionLinenumberEnd: 1818
    functionName: fwupd_client_refresh_remote_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - FWUPD_CLIENT
    - fwupd_client_refresh_remote_finish
    - g_main_loop_quit
    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:1841,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1843,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1843,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1844,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1844,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1845,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1845,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1846,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1849,1
    - Dst: fwupd_client_refresh_remote_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1850,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1856,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1858,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1858,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: 1862
      start: 1834
    functionDepth: 2
    functionLinenumber: 1834
    functionLinenumberEnd: 1862
    functionName: fwupd_client_refresh_remote
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_REMOTE
    - FWUPD_IS_CLIENT
    - fwupd_client_refresh_remote_async
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    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:1868,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1868,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1864
    functionDepth: 1
    functionLinenumber: 1864
    functionLinenumberEnd: 1870
    functionName: fwupd_client_modify_remote_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - FWUPD_CLIENT
    - fwupd_client_modify_remote_finish
    - g_main_loop_quit
    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:1897,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1899,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1899,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1900,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1901,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1902,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1903,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1903,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1904,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1907,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1911,1
    - Dst: fwupd_client_modify_remote_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1912,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1919,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1921,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1921,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: 1925
      start: 1889
    functionDepth: 3
    functionLinenumber: 1889
    functionLinenumberEnd: 1925
    functionName: fwupd_client_modify_remote
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_modify_remote_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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_clean_remote_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1931,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1931,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1933
      start: 1927
    functionDepth: 1
    functionLinenumber: 1927
    functionLinenumberEnd: 1933
    functionName: fwupd_client_clean_remote_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - FWUPD_CLIENT
    - fwupd_client_clean_remote_finish
    - g_main_loop_quit
    linkageType: ''
    returnType: void
    signature: void fwupd_client_clean_remote_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1956,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1958,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1958,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1959,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1960,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1960,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1961,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1964,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1968,1
    - Dst: fwupd_client_clean_remote_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1969,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1974,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1976,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1976,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - remote_id
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1950
    functionDepth: 3
    functionLinenumber: 1950
    functionLinenumberEnd: 1980
    functionName: fwupd_client_clean_remote
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_clean_remote_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_client_clean_remote(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_report_metadata_finish
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1987,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1987,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:1988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1982
    functionDepth: 1
    functionLinenumber: 1982
    functionLinenumberEnd: 1989
    functionName: fwupd_client_get_report_metadata_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_report_metadata_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:2006,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2008,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2008,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2009,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2009,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2010,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2013,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2017,1
    - Dst: fwupd_client_get_report_metadata_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2018,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2022,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2024,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2024,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2027,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 2003
    functionDepth: 3
    functionLinenumber: 2003
    functionLinenumberEnd: 2028
    functionName: fwupd_client_get_report_metadata
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    - fwupd_client_get_report_metadata_async
    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:2034,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2034,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2036
      start: 2030
    functionDepth: 1
    functionLinenumber: 2030
    functionLinenumberEnd: 2036
    functionName: fwupd_client_modify_device_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - FWUPD_CLIENT
    - fwupd_client_modify_device_finish
    - g_main_loop_quit
    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:2064,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2066,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2066,1
    - Dst: g_return_val_if_fail
      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_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2070,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2070,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2071,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2074,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2078,1
    - Dst: fwupd_client_modify_device_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2079,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2086,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2088,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2088,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - self
    - device_id
    - key
    - value
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - gchar*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2056
    functionDepth: 3
    functionLinenumber: 2056
    functionLinenumberEnd: 2092
    functionName: fwupd_client_modify_device
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_modify_device_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:2098,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2098,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2094
    functionDepth: 1
    functionLinenumber: 2094
    functionLinenumberEnd: 2100
    functionName: fwupd_client_get_remotes_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_remotes_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:2117,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2119,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2119,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2120,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2120,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2121,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2124,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2128,1
    - Dst: fwupd_client_get_remotes_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2129,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2130,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2132,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2132,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2114
    functionDepth: 3
    functionLinenumber: 2114
    functionLinenumberEnd: 2136
    functionName: fwupd_client_get_remotes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_get_remotes_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:2142,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2143,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - remotes
    - remote_id
    argTypes:
    - GPtrArray*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2138
    functionDepth: 1
    functionLinenumber: 2138
    functionLinenumberEnd: 2147
    functionName: fwupd_client_get_remote_by_id_noref
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_ptr_array_index
    - fwupd_remote_get_id
    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:2169,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2171,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2171,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2172,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2173,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2173,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2174,1
    - Dst: fwupd_client_get_remotes
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2177,1
    - Dst: fwupd_client_get_remote_by_id_noref
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2180,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2182,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - remote_id
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2162
    functionDepth: 4
    functionLinenumber: 2162
    functionLinenumberEnd: 2192
    functionName: fwupd_client_get_remote_by_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 10
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_get_remote_by_id_noref
    - g_set_error
    - fwupd_client_get_remotes
    - FWUPD_IS_CLIENT
    - g_object_ref
    - g_autoptr
    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:2199,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2199,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2194
    functionDepth: 1
    functionLinenumber: 2194
    functionLinenumberEnd: 2201
    functionName: fwupd_client_get_approved_firmware_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_approved_firmware_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:2218,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2221,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2221,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2222,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2222,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2223,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2226,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2230,1
    - Dst: fwupd_client_get_approved_firmware_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2231,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2235,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2237,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2237,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2240,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2242,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2215
    functionDepth: 3
    functionLinenumber: 2215
    functionLinenumberEnd: 2246
    functionName: fwupd_client_get_approved_firmware
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_strdup
    - g_new0
    - g_steal_pointer
    - fwupd_client_get_approved_firmware_async
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    - g_ptr_array_index
    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:2253,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2253,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2248
    functionDepth: 1
    functionLinenumber: 2248
    functionLinenumberEnd: 2255
    functionName: fwupd_client_set_approved_firmware_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - FWUPD_CLIENT
    - fwupd_client_set_approved_firmware_finish
    - g_main_loop_quit
    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:2276,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2277,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2277,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2279,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2279,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2280,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2281,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2281,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2282,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2285,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2290,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2290,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2293,1
    - Dst: fwupd_client_set_approved_firmware_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2294,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2299,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2301,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2301,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - self
    - checksums
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar**
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2270
    functionDepth: 3
    functionLinenumber: 2270
    functionLinenumberEnd: 2305
    functionName: fwupd_client_set_approved_firmware
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_strdup
    - fwupd_client_set_approved_firmware_async
    - g_steal_pointer
    - g_ptr_array_add
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_autoptr
    - g_propagate_error
    - g_ptr_array_new_with_free_func
    - fwupd_client_connect
    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: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2322,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2322,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2323,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2323,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2324,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2327
      start: 2319
    functionDepth: 0
    functionLinenumber: 2319
    functionLinenumberEnd: 2327
    functionName: fwupd_client_get_blocked_firmware
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_set_error_literal
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: gchar
    signature: 'gchar **

      fwupd_client_get_blocked_firmware(FwupdClient *self, GCancellable *cancellable,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2348,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2348,1
    - Dst: g_return_val_if_fail
      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: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - self
    - checksums
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar**
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2354
      start: 2342
    functionDepth: 0
    functionLinenumber: 2342
    functionLinenumberEnd: 2354
    functionName: fwupd_client_set_blocked_firmware
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_set_error_literal
    - FWUPD_IS_CLIENT
    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:2361,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2361,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2363
      start: 2356
    functionDepth: 1
    functionLinenumber: 2356
    functionLinenumberEnd: 2363
    functionName: fwupd_client_set_feature_flags_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - FWUPD_CLIENT
    - fwupd_client_set_feature_flags_finish
    - g_main_loop_quit
    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:2388,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2390,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2390,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2391,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2391,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2392,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2395,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2399,1
    - Dst: fwupd_client_set_feature_flags_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2400,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2405,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2407,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2407,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: 2411
      start: 2382
    functionDepth: 3
    functionLinenumber: 2382
    functionLinenumberEnd: 2411
    functionName: fwupd_client_set_feature_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_set_feature_flags_async
    - fwupd_client_connect
    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:2417,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2417,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2419
      start: 2413
    functionDepth: 1
    functionLinenumber: 2413
    functionLinenumberEnd: 2419
    functionName: fwupd_client_self_sign_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_self_sign_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:2442,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2444,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2444,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2445,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2446,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2446,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2447,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2450,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2454,1
    - Dst: fwupd_client_self_sign_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2455,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2461,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2463,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2463,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2466,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: 2467
      start: 2435
    functionDepth: 3
    functionLinenumber: 2435
    functionLinenumberEnd: 2467
    functionName: fwupd_client_self_sign
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_self_sign_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:2474,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2474,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2469
    functionDepth: 1
    functionLinenumber: 2469
    functionLinenumberEnd: 2476
    functionName: fwupd_client_download_bytes_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_download_bytes_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:2500,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2502,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2502,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2503,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2504,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2504,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2505,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2506,1
    - Dst: fwupd_client_get_user_agent
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2506,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2509,1
    - Dst: fwupd_client_download_bytes_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2510,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2516,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2518,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2518,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2521,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: 2522
      start: 2493
    functionDepth: 2
    functionLinenumber: 2493
    functionLinenumberEnd: 2522
    functionName: fwupd_client_download_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_download_bytes_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - fwupd_client_get_user_agent
    - g_propagate_error
    - g_autoptr
    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:2549,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2550,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2552,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2552,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2553,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2554,1
    - Dst: G_IS_FILE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2554,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2555,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2555,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2556,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2557,1
    - Dst: fwupd_client_get_user_agent
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2557,1
    - Dst: fwupd_client_download_bytes
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2560,1
    - Dst: G_OUTPUT_STREAM
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2564,1
    - Dst: g_file_replace
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2564,1
    - Dst: g_output_stream_write_bytes
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2567,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: 2573
      start: 2540
    functionDepth: 3
    functionLinenumber: 2540
    functionLinenumberEnd: 2573
    functionName: fwupd_client_download_file
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - G_OUTPUT_STREAM
    - g_file_replace
    - g_output_stream_write_bytes
    - FWUPD_IS_CLIENT
    - G_IS_FILE
    - fwupd_client_get_user_agent
    - g_autoptr
    - fwupd_client_download_bytes
    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:2579,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2579,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2575
    functionDepth: 1
    functionLinenumber: 2575
    functionLinenumberEnd: 2581
    functionName: fwupd_client_upload_bytes_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - FWUPD_CLIENT
    - fwupd_client_upload_bytes_finish
    - g_main_loop_quit
    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:2609,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2611,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2611,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2612,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2613,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2614,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2614,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2615,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2618,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2622,1
    - Dst: fwupd_client_upload_bytes_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2623,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2631,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2633,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2633,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2636,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: 2637
      start: 2600
    functionDepth: 3
    functionLinenumber: 2600
    functionLinenumberEnd: 2637
    functionName: fwupd_client_upload_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    - fwupd_client_upload_bytes_async
    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:2643,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2643,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2645
      start: 2639
    functionDepth: 1
    functionLinenumber: 2639
    functionLinenumberEnd: 2645
    functionName: fwupd_client_upload_report_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_upload_report_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:2673,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2675,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2675,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2676,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2677,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2678,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2678,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2679,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2682,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2686,1
    - Dst: fwupd_client_upload_report_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2687,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2695,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2697,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2697,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2700,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: 2701
      start: 2664
    functionDepth: 3
    functionLinenumber: 2664
    functionLinenumberEnd: 2701
    functionName: fwupd_client_upload_report
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_upload_report_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:2707,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2707,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2709
      start: 2703
    functionDepth: 1
    functionLinenumber: 2703
    functionLinenumberEnd: 2709
    functionName: fwupd_client_emulation_load_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_emulation_load_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:2732,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2734,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2734,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2735,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2736,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2736,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2737,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2740,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2744,1
    - Dst: fwupd_client_emulation_load_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2745,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2750,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2752,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2752,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - filename
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2726
    functionDepth: 3
    functionLinenumber: 2726
    functionLinenumberEnd: 2756
    functionName: fwupd_client_emulation_load
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - fwupd_client_emulation_load_async
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:2762,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2762,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2764
      start: 2758
    functionDepth: 1
    functionLinenumber: 2758
    functionLinenumberEnd: 2764
    functionName: fwupd_client_emulation_save_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_emulation_save_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:2792,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2794,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2794,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2795,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2795,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2796,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2799,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2803,1
    - Dst: fwupd_client_emulation_save_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2804,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2809,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2811,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2811,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - self
    - filename
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2815
      start: 2786
    functionDepth: 3
    functionLinenumber: 2786
    functionLinenumberEnd: 2815
    functionName: fwupd_client_emulation_save
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - fwupd_client_emulation_save_async
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_connect
    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:2822,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2822,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2824
      start: 2817
    functionDepth: 1
    functionLinenumber: 2817
    functionLinenumberEnd: 2824
    functionName: fwupd_client_fix_host_security_attr_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fix_host_security_attr_finish
    - FWUPD_CLIENT
    - g_main_loop_quit
    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:2845,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2847,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2847,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2848,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2849,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2849,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2850,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2853,1
    - Dst: fwupd_client_fix_host_security_attr_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2854,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2859,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2861,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2861,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: 2865
      start: 2839
    functionDepth: 2
    functionLinenumber: 2839
    functionLinenumberEnd: 2865
    functionName: fwupd_client_fix_host_security_attr
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - fwupd_client_fix_host_security_attr_async
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    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:2872,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2872,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2874
      start: 2867
    functionDepth: 1
    functionLinenumber: 2867
    functionLinenumberEnd: 2874
    functionName: fwupd_client_undo_host_security_attr_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 0
    functionsReached:
    - FWUPD_CLIENT
    - fwupd_client_undo_host_security_attr_finish
    - g_main_loop_quit
    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:2895,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2897,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2897,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2898,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2899,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2899,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2900,1
    - Dst: fwupd_client_helper_new
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2903,1
    - Dst: fwupd_client_undo_host_security_attr_async
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2904,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2909,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2911,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client-sync.c:2911,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: 2915
      start: 2889
    functionDepth: 2
    functionLinenumber: 2889
    functionLinenumberEnd: 2915
    functionName: fwupd_client_undo_host_security_attr
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-sync.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - G_IS_CANCELLABLE
    - g_steal_pointer
    - FWUPD_IS_CLIENT
    - g_main_loop_run
    - fwupd_client_helper_new
    - g_propagate_error
    - g_autoptr
    - fwupd_client_undo_host_security_attr_async
    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: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:39,1
    - Dst: FWUPD_IS_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:39,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:40,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:41,1
    - Dst: fwupd_json_node_get_kind
      Src: /src/fwupd/libfwupd/fwupd-codec.c:43,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:45,1
    - Dst: fwupd_json_node_get_raw
      Src: /src/fwupd/libfwupd/fwupd-codec.c:48,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:50,1
    - Dst: fwupd_json_node_get_string
      Src: /src/fwupd/libfwupd/fwupd-codec.c:53,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:55,1
    - Dst: fwupd_json_node_get_array
      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_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-codec.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:59,1
    - Dst: fwupd_json_array_get_node
      Src: /src/fwupd/libfwupd/fwupd-codec.c:60,1
    - Dst: fwupd_codec_add_string_from_json_node
      Src: /src/fwupd/libfwupd/fwupd-codec.c:61,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:64,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/libfwupd/fwupd-codec.c:64,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-codec.c:65,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:66,1
    - Dst: fwupd_json_object_get_size
      Src: /src/fwupd/libfwupd/fwupd-codec.c:67,1
    - Dst: fwupd_json_object_get_key_for_index
      Src: /src/fwupd/libfwupd/fwupd-codec.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:70,1
    - Dst: fwupd_json_object_get_node_for_index
      Src: /src/fwupd/libfwupd/fwupd-codec.c:71,1
    - Dst: fwupd_codec_add_string_from_json_node
      Src: /src/fwupd/libfwupd/fwupd-codec.c:72,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - self
    - member_name
    - json_node
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - gchar*
    - FwupdJsonNode*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 79
    functionName: fwupd_codec_add_string_from_json_node
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 1
    functionsReached:
    - g_strcmp0
    - fwupd_json_object_get_key_for_index
    - fwupd_json_array_get_size
    - fwupd_json_array_get_node
    - fwupd_json_node_get_string
    - g_return_if_fail
    - fwupd_codec_string_append
    - fwupd_json_node_get_array
    - fwupd_json_node_get_raw
    - fwupd_json_object_get_node_for_index
    - FWUPD_IS_CODEC
    - fwupd_json_node_get_object
    - g_autoptr
    - fwupd_codec_add_string_from_json_node
    - fwupd_json_node_get_kind
    - fwupd_json_object_get_size
    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      FwupdJsonNode *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:96,1
    - Dst: FWUPD_IS_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:96,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:97,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:99,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupd/fwupd-codec.c:99,1
    - Dst: FWUPD_CODEC_GET_IFACE
      Src: /src/fwupd/libfwupd/fwupd-codec.c:100,1
    - Dst: FwupdCodecInterface*::add_string
      Src: /src/fwupd/libfwupd/fwupd-codec.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:106,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupd/fwupd-codec.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:107,1
    - Dst: fwupd_json_node_new_object
      Src: /src/fwupd/libfwupd/fwupd-codec.c:107,1
    - Dst: FwupdCodecInterface*::add_json
      Src: /src/fwupd/libfwupd/fwupd-codec.c:108,1
    - Dst: fwupd_codec_add_string_from_json_node
      Src: /src/fwupd/libfwupd/fwupd-codec.c:109,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-codec.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - self
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 113
    functionName: fwupd_codec_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 3
    functionsReached:
    - g_critical
    - FwupdCodecInterface*::add_string
    - fwupd_json_object_new
    - g_return_if_fail
    - G_OBJECT_TYPE_NAME
    - fwupd_codec_string_append
    - FWUPD_IS_CODEC
    - FwupdCodecInterface*::add_json
    - g_autoptr
    - fwupd_codec_add_string_from_json_node
    - fwupd_json_node_new_object
    - FWUPD_CODEC_GET_IFACE
    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:130,1
    - Dst: FWUPD_IS_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:130,1
    - Dst: FWUPD_CODEC_GET_IFACE
      Src: /src/fwupd/libfwupd/fwupd-codec.c:132,1
    - Dst: FwupdCodecInterface*::to_string
      Src: /src/fwupd/libfwupd/fwupd-codec.c:134,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-codec.c:136,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupd/fwupd-codec.c:137,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupd/fwupd-codec.c:138,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-codec.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdCodec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: fwupd_codec_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 16
    functionsReached:
    - g_return_val_if_fail
    - fwupd_codec_add_string
    - g_critical
    - g_string_free
    - FwupdCodecInterface*::to_string
    - g_string_new
    - FWUPD_IS_CODEC
    - FWUPD_CODEC_GET_IFACE
    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:161,1
    - Dst: FWUPD_IS_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:161,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:162,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:163,1
    - Dst: FWUPD_CODEC_GET_IFACE
      Src: /src/fwupd/libfwupd/fwupd-codec.c:165,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-codec.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - json_obj
    - error
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 174
    functionName: fwupd_codec_from_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - FWUPD_IS_CODEC
    - FWUPD_CODEC_GET_IFACE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_codec_from_json(FwupdCodec *self, FwupdJsonObject *json_obj,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:191,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/libfwupd/fwupd-codec.c:191,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:192,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:193,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:195,1
    - Dst: FWUPD_IS_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:195,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:196,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:197,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/libfwupd/fwupd-codec.c:200,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/libfwupd/fwupd-codec.c:201,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/libfwupd/fwupd-codec.c:202,1
    - Dst: fwupd_json_parser_load_from_data
      Src: /src/fwupd/libfwupd/fwupd-codec.c:204,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupd/fwupd-codec.c:206,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/libfwupd/fwupd-codec.c:209,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupd/fwupd-codec.c:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - self
    - json
    - error
    argTypes:
    - FwupdCodec*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 213
    functionName: fwupd_codec_from_json_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_parser_set_max_depth
    - fwupd_json_parser_set_max_items
    - fwupd_codec_from_json
    - fwupd_json_parser_set_max_quoted
    - fwupd_json_parser_load_from_data
    - g_prefix_error
    - fwupd_json_parser_new
    - FWUPD_IS_CODEC
    - fwupd_json_node_get_object
    - g_autoptr
    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:230,1
    - Dst: FWUPD_IS_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:230,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:231,1
    - Dst: FWUPD_CODEC_GET_IFACE
      Src: /src/fwupd/libfwupd/fwupd-codec.c:233,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-codec.c:235,1
    - Dst: FwupdCodecInterface*::add_json
      Src: /src/fwupd/libfwupd/fwupd-codec.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 239
    functionName: fwupd_codec_to_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 8
    functionsReached:
    - g_critical
    - g_return_if_fail
    - FWUPD_IS_CODEC
    - FwupdCodecInterface*::add_json
    - FWUPD_CODEC_GET_IFACE
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_to_json(FwupdCodec *self, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:256,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:257,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupd/fwupd-codec.c:257,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:259,1
    - Dst: FWUPD_IS_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:259,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:260,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupd/fwupd-codec.c:262,1
    - Dst: fwupd_json_object_to_string
      Src: /src/fwupd/libfwupd/fwupd-codec.c:263,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupd/fwupd-codec.c:264,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-codec.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FwupdCodec*
    - FwupdCodecFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 265
    functionName: fwupd_codec_to_json_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_object_new
    - g_steal_pointer
    - fwupd_codec_to_json
    - g_string_free
    - FWUPD_IS_CODEC
    - g_autoptr
    - fwupd_json_object_to_string
    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:284,1
    - Dst: FWUPD_IS_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:284,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:285,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:286,1
    - Dst: FWUPD_CODEC_GET_IFACE
      Src: /src/fwupd/libfwupd/fwupd-codec.c:288,1
    - Dst: g_variant_get_type_string
      Src: /src/fwupd/libfwupd/fwupd-codec.c:293,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-codec.c:294,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:295,1
    - Dst: g_variant_get
      Src: /src/fwupd/libfwupd/fwupd-codec.c:296,1
    - Dst: FwupdCodecInterface*::from_variant_iter
      Src: /src/fwupd/libfwupd/fwupd-codec.c:297,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-codec.c:298,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:299,1
    - Dst: g_variant_get
      Src: /src/fwupd/libfwupd/fwupd-codec.c:300,1
    - Dst: FwupdCodecInterface*::from_variant_iter
      Src: /src/fwupd/libfwupd/fwupd-codec.c:301,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-codec.c:303,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-codec.c:312,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FwupdCodec*
    - GVariant*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 317
    functionName: fwupd_codec_from_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FwupdCodecInterface*::from_variant_iter
    - g_strcmp0
    - g_variant_get_type_string
    - g_set_error
    - g_set_error_literal
    - FWUPD_IS_CODEC
    - g_autoptr
    - g_variant_get
    - FWUPD_CODEC_GET_IFACE
    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:335,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:336,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:338,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:339,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-codec.c:341,1
    - Dst: g_variant_get_child_value
      Src: /src/fwupd/libfwupd/fwupd-codec.c:342,1
    - Dst: g_variant_n_children
      Src: /src/fwupd/libfwupd/fwupd-codec.c:343,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:345,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-codec.c:345,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:346,1
    - Dst: g_variant_get_child_value
      Src: /src/fwupd/libfwupd/fwupd-codec.c:346,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-codec.c:347,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:347,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-codec.c:349,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-codec.c:349,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-codec.c:351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - value
    - gtype
    - error
    argTypes:
    - GVariant*
    - GType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 352
    functionName: fwupd_codec_array_from_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_CODEC
    - g_steal_pointer
    - g_ptr_array_add
    - fwupd_codec_from_variant
    - g_object_new
    - g_variant_get_child_value
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_variant_n_children
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_codec_array_from_variant(GVariant *value, GType gtype, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:371,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-codec.c:371,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:373,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:374,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:375,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:378,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-codec.c:378,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:379,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupd/fwupd-codec.c:379,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupd/fwupd-codec.c:380,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/libfwupd/fwupd-codec.c:381,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-codec.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - array
    - member_name
    - json_obj
    - flags
    argTypes:
    - GPtrArray*
    - gchar*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 384
    functionName: fwupd_codec_array_to_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 11
    functionsReached:
    - fwupd_json_object_add_array
    - FWUPD_CODEC
    - fwupd_json_object_new
    - g_return_if_fail
    - fwupd_codec_to_json
    - fwupd_json_array_new
    - fwupd_json_array_add_object
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: "void fwupd_codec_array_to_json(GPtrArray *array,\n\t\t\t  const gchar
      *member_name,\n\t\t\t  FwupdJsonObject *json_obj,\n\t\t\t  FwupdCodecFlags flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:402,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupd/fwupd-codec.c:404,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupd/fwupd-codec.c:404,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:406,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-codec.c:406,1
    - Dst: g_variant_builder_add_value
      Src: /src/fwupd/libfwupd/fwupd-codec.c:407,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-codec.c:407,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-codec.c:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - array
    - flags
    argTypes:
    - GPtrArray*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 410
    functionName: fwupd_codec_array_to_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 8
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_CODEC
    - g_variant_builder_init
    - fwupd_codec_to_variant
    - g_variant_builder_add_value
    - G_VARIANT_TYPE
    - g_variant_new
    - g_ptr_array_index
    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:428,1
    - Dst: FWUPD_IS_CODEC
      Src: /src/fwupd/libfwupd/fwupd-codec.c:428,1
    - Dst: FWUPD_CODEC_GET_IFACE
      Src: /src/fwupd/libfwupd/fwupd-codec.c:430,1
    - Dst: FwupdCodecInterface*::to_variant
      Src: /src/fwupd/libfwupd/fwupd-codec.c:432,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupd/fwupd-codec.c:435,1
    - Dst: FwupdCodecInterface*::add_variant
      Src: /src/fwupd/libfwupd/fwupd-codec.c:436,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-codec.c:437,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-codec.c:440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 442
    functionName: fwupd_codec_to_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 10
    functionsReached:
    - g_return_val_if_fail
    - FwupdCodecInterface*::add_variant
    - g_critical
    - g_variant_builder_init
    - FwupdCodecInterface*::to_variant
    - g_variant_new
    - FWUPD_IS_CODEC
    - FWUPD_CODEC_GET_IFACE
    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:450,1
    - Dst: g_utf8_get_char
      Src: /src/fwupd/libfwupd/fwupd-codec.c:453,1
    - Dst: g_unichar_iswide
      Src: /src/fwupd/libfwupd/fwupd-codec.c:454,1
    - Dst: g_unichar_iszerowidth
      Src: /src/fwupd/libfwupd/fwupd-codec.c:456,1
    - Dst: g_utf8_next_char
      Src: /src/fwupd/libfwupd/fwupd-codec.c:458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - text
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 461
    functionName: _fu_strwidth
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_utf8_next_char
    - g_utf8_get_char
    - g_unichar_iswide
    - g_unichar_iszerowidth
    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:480,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:481,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:482,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:488,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-codec.c:490,1
    - Dst: _fu_strwidth
      Src: /src/fwupd/libfwupd/fwupd-codec.c:491,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-codec.c:496,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupd/fwupd-codec.c:497,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:508,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:511,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - value
    argTypes:
    - GString*
    - guint
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 512
    functionName: fwupd_codec_string_append
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 20
    functionsReached:
    - g_string_append
    - g_return_if_fail
    - g_strsplit
    - g_string_append_printf
    - g_auto
    - _fu_strwidth
    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:530,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:531,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-codec.c:536,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - value
    argTypes:
    - GString*
    - guint
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 538
    functionName: fwupd_codec_string_append_int
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 2
    functionsReached:
    - g_strdup_printf
    - g_return_if_fail
    - fwupd_codec_string_append
    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:556,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:557,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-codec.c:562,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - value
    argTypes:
    - GString*
    - guint
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 564
    functionName: fwupd_codec_string_append_hex
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 3
    functionsReached:
    - g_strdup_printf
    - g_return_if_fail
    - fwupd_codec_string_append
    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:580,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:581,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - value
    argTypes:
    - GString*
    - guint
    - gchar*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 577
    functionDepth: 2
    functionLinenumber: 577
    functionLinenumberEnd: 583
    functionName: fwupd_codec_string_append_bool
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 2
    functionsReached:
    - g_return_if_fail
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_string_append_bool(GString *str, guint idt, const
      gchar *key, gboolean value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-codec.c:600,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:602,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:603,1
    - Dst: g_date_time_new_from_unix_utc
      Src: /src/fwupd/libfwupd/fwupd-codec.c:609,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupd/fwupd-codec.c:611,1
    - Dst: g_date_time_format
      Src: /src/fwupd/libfwupd/fwupd-codec.c:614,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - value
    argTypes:
    - GString*
    - guint
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 616
    functionName: fwupd_codec_string_append_time
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 4
    functionsReached:
    - g_return_if_fail
    - fwupd_codec_string_append
    - g_warning
    - g_date_time_format
    - g_autoptr
    - g_date_time_new_from_unix_utc
    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:634,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:635,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupd/fwupd-codec.c:640,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-codec.c:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - value
    argTypes:
    - GString*
    - guint
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 629
    functionDepth: 2
    functionLinenumber: 629
    functionLinenumberEnd: 642
    functionName: fwupd_codec_string_append_size
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 1
    functionsReached:
    - g_format_size
    - g_return_if_fail
    - fwupd_codec_string_append
    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:660,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:661,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-codec.c:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - json_obj
    - key
    - value
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 665
    functionName: fwupd_codec_json_append
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - fwupd_json_object_add_string
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_json_append(FwupdJsonObject *json_obj, const gchar
      *key, const gchar *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:683,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:684,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-codec.c:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - json_obj
    - key
    - value
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 686
    functionName: fwupd_codec_json_append_int
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_integer
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_json_append_int(FwupdJsonObject *json_obj, const gchar
      *key, guint64 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:704,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:705,1
    - Dst: fwupd_json_object_add_boolean
      Src: /src/fwupd/libfwupd/fwupd-codec.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - json_obj
    - key
    - value
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 707
    functionName: fwupd_codec_json_append_bool
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_boolean
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_json_append_bool(FwupdJsonObject *json_obj, const
      gchar *key, gboolean value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:725,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:726,1
    - Dst: fwupd_json_object_add_array_strv
      Src: /src/fwupd/libfwupd/fwupd-codec.c:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - json_obj
    - key
    - value
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - gchar**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 731
    functionName: fwupd_codec_json_append_strv
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array_strv
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_json_append_strv(FwupdJsonObject *json_obj, const
      gchar *key, gchar **value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:749,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-codec.c:750,1
    - Dst: fwupd_json_object_add_object_map
      Src: /src/fwupd/libfwupd/fwupd-codec.c:754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - json_obj
    - key
    - value
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 755
    functionName: fwupd_codec_json_append_map
    functionSourceFile: /src/fwupd/libfwupd/fwupd-codec.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_object_map
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_codec_json_append_map(FwupdJsonObject *json_obj, 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: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 106
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/fwupd/libfwupd/fwupd-client.c:139,1
    - Dst: curl_mime_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:141,1
    - Dst: curl_slist_free_all
      Src: /src/fwupd/libfwupd/fwupd-client.c:143,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:145,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FwupdCurlHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 147
    functionName: fwupd_client_curl_helper_free
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - curl_easy_cleanup
    - g_free
    - curl_slist_free_all
    - curl_mime_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:161,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:162,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:163,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FwupdClientContextHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: fwupd_client_context_helper_free
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_clear_object
    - g_object_unref
    - g_free
    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:171,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:173,1
    - Dst: g_main_context_is_owner
      Src: /src/fwupd/libfwupd/fwupd-client.c:173,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:176,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client.c:176,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:179,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupd/fwupd-client.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - property_name
    argTypes:
    - FwupdClient*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 181
    functionName: fwupd_client_context_object_notify
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - g_strcmp0
    - g_return_if_fail
    - g_main_context_is_owner
    - g_signal_emit
    - G_OBJECT
    - GET_PRIVATE
    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:187,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:188,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:189,1
    - Dst: g_mutex_locker_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:189,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:191,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:194,1
    - Dst: fwupd_client_context_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:198,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:199,1
    - Dst: fwupd_request_emit_invalidate
      Src: /src/fwupd/libfwupd/fwupd-client.c:200,1
    - Dst: FWUPD_REQUEST
      Src: /src/fwupd/libfwupd/fwupd-client.c:200,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupd/fwupd-client.c:205,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupd/fwupd-client.c:207,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:212,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 215
    functionName: fwupd_client_context_idle_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - fwupd_client_context_object_notify
    - g_ptr_array_set_size
    - g_signal_emit
    - FWUPD_CLIENT
    - FWUPD_REQUEST
    - g_ptr_array_index
    - g_autoptr
    - fwupd_request_emit_invalidate
    - g_mutex_locker_new
    - GET_PRIVATE
    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:220,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:221,1
    - Dst: g_mutex_locker_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:221,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:227,1
    - Dst: g_idle_source_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:227,1
    - Dst: g_source_set_callback
      Src: /src/fwupd/libfwupd/fwupd-client.c:228,1
    - Dst: g_source_attach
      Src: /src/fwupd/libfwupd/fwupd-client.c:229,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - helper
    argTypes:
    - FwupdClient*
    - FwupdClientContextHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 234
    functionName: fwupd_client_context_helper
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_idle_source_new
    - g_source_set_callback
    - g_return_if_fail
    - g_ptr_array_add
    - g_source_attach
    - g_autoptr
    - g_mutex_locker_new
    - GET_PRIVATE
    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:240,1
    - Dst: g_main_context_is_owner
      Src: /src/fwupd/libfwupd/fwupd-client.c:244,1
    - Dst: fwupd_client_context_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:245,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client.c:250,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:251,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:252,1
    - Dst: fwupd_client_context_helper
      Src: /src/fwupd/libfwupd/fwupd-client.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - property_name
    argTypes:
    - FwupdClient*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 254
    functionName: fwupd_client_object_notify
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_new0
    - fwupd_client_context_helper
    - g_main_context_is_owner
    - g_object_ref
    - fwupd_client_context_object_notify
    - GET_PRIVATE
    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:260,1
    - Dst: g_main_context_is_owner
      Src: /src/fwupd/libfwupd/fwupd-client.c:264,1
    - Dst: fwupd_request_emit_invalidate
      Src: /src/fwupd/libfwupd/fwupd-client.c:265,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client.c:270,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:271,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:272,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client.c:273,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:273,1
    - Dst: fwupd_client_context_helper
      Src: /src/fwupd/libfwupd/fwupd-client.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - request
    argTypes:
    - FwupdClient*
    - FwupdRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 275
    functionName: fwupd_client_request_invalidate
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_new0
    - fwupd_client_context_helper
    - g_main_context_is_owner
    - g_object_ref
    - G_OBJECT
    - fwupd_request_emit_invalidate
    - GET_PRIVATE
    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:281,1
    - Dst: g_main_context_is_owner
      Src: /src/fwupd/libfwupd/fwupd-client.c:285,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupd/fwupd-client.c:286,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client.c:291,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:292,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:294,1
    - Dst: fwupd_client_context_helper
      Src: /src/fwupd/libfwupd/fwupd-client.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - self
    - signal_id
    - payload
    argTypes:
    - FwupdClient*
    - guint
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 296
    functionName: fwupd_client_signal_emit_object
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_new0
    - fwupd_client_context_helper
    - g_main_context_is_owner
    - g_signal_emit
    - g_object_ref
    - GET_PRIVATE
    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:302,1
    - Dst: g_main_context_is_owner
      Src: /src/fwupd/libfwupd/fwupd-client.c:306,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupd/fwupd-client.c:307,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client.c:312,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:313,1
    - Dst: fwupd_client_context_helper
      Src: /src/fwupd/libfwupd/fwupd-client.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 316
    functionName: fwupd_client_signal_emit_changed
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_new0
    - fwupd_client_context_helper
    - g_main_context_is_owner
    - g_signal_emit
    - g_object_ref
    - GET_PRIVATE
    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:322,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client.c:322,1
    - Dst: g_get_os_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:326,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:328,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:328,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:332,1
    - Dst: g_strjoinv
      Src: /src/fwupd/libfwupd/fwupd-client.c:333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 334
    functionName: fwupd_client_build_user_agent_os_release
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_ptr_array_add
    - g_get_os_info
    - g_strjoinv
    - g_autoptr
    - g_ptr_array_new_with_free_func
    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:344,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client.c:344,1
    - Dst: uname
      Src: /src/fwupd/libfwupd/fwupd-client.c:348,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:349,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-client.c:350,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:359,1
    - Dst: setlocale
      Src: /src/fwupd/libfwupd/fwupd-client.c:359,1
    - Dst: g_strdelimit
      Src: /src/fwupd/libfwupd/fwupd-client.c:362,1
    - Dst: g_strdelimit
      Src: /src/fwupd/libfwupd/fwupd-client.c:363,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:364,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:364,1
    - Dst: fwupd_client_build_user_agent_os_release
      Src: /src/fwupd/libfwupd/fwupd-client.c:368,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:370,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:370,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:375,1
    - Dst: g_strjoinv
      Src: /src/fwupd/libfwupd/fwupd-client.c:376,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 377
    functionName: fwupd_client_build_user_agent_system
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - uname
    - g_steal_pointer
    - g_ptr_array_add
    - g_strdup_printf
    - g_strdelimit
    - fwupd_client_build_user_agent_os_release
    - g_strjoinv
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - setlocale
    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:382,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:383,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:383,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-client.c:388,1
    - Dst: fwupd_client_build_user_agent_system
      Src: /src/fwupd/libfwupd/fwupd-client.c:391,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:396,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-client.c:397,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupd/fwupd-client.c:397,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:400,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-client.c:401,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:404,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:405,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:405,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 406
    functionName: fwupd_client_rebuild_user_agent
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_getenv
    - g_strcmp0
    - fwupd_client_build_user_agent_system
    - g_steal_pointer
    - g_string_free
    - g_free
    - g_string_new
    - g_string_append_printf
    - g_autoptr
    - GET_PRIVATE
    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:411,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:414,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:417,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:418,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - host_vendor
    argTypes:
    - FwupdClient*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 420
    functionName: fwupd_client_set_host_vendor
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - fwupd_client_object_notify
    - g_free
    - GET_PRIVATE
    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:425,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:428,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:431,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:432,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - host_product
    argTypes:
    - FwupdClient*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 434
    functionName: fwupd_client_set_host_product
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - fwupd_client_object_notify
    - g_free
    - GET_PRIVATE
    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:439,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:442,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:445,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:446,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - host_machine_id
    argTypes:
    - FwupdClient*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 448
    functionName: fwupd_client_set_host_machine_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - fwupd_client_object_notify
    - g_free
    - GET_PRIVATE
    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:453,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:456,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:459,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:460,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - host_security_id
    argTypes:
    - FwupdClient*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 462
    functionName: fwupd_client_set_host_security_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - fwupd_client_object_notify
    - g_free
    - GET_PRIVATE
    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:476,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:479,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:482,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:483,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:484,1
    - Dst: fwupd_client_rebuild_user_agent
      Src: /src/fwupd/libfwupd/fwupd-client.c:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - daemon_version
    argTypes:
    - FwupdClient*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 486
    functionName: fwupd_client_set_daemon_version
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - fwupd_client_object_notify
    - g_free
    - fwupd_client_rebuild_user_agent
    - GET_PRIVATE
    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:500,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:501,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - retries
    argTypes:
    - FwupdClient*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 503
    functionName: fwupd_client_download_set_retries
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    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:508,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:511,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:515,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:518,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:519,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - host_bkc
    argTypes:
    - FwupdClient*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 521
    functionName: fwupd_client_set_host_bkc
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - fwupd_client_object_notify
    - g_free
    - GET_PRIVATE
    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:526,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:530,1
    - Dst: fwupd_status_to_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:530,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - status
    argTypes:
    - FwupdClient*
    - FwupdStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 532
    functionName: fwupd_client_set_status
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_object_notify
    - fwupd_status_to_string
    - g_debug
    - GET_PRIVATE
    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:537,1
    - Dst: fwupd_percentage_delta_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:538,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:541,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - percentage
    argTypes:
    - FwupdClient*
    - gdouble
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 544
    functionName: fwupd_client_set_percentage
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_object_notify
    - fwupd_percentage_delta_notify
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_percentage(FwupdClient *self, gdouble percentage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:549,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:553,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client.c:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - battery_level
    argTypes:
    - FwupdClient*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 554
    functionName: fwupd_client_set_battery_level
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - G_OBJECT
    - GET_PRIVATE
    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:559,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:563,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client.c:563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - battery_threshold
    argTypes:
    - FwupdClient*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 564
    functionName: fwupd_client_set_battery_threshold
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - G_OBJECT
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_battery_threshold(FwupdClient *self, guint32
      battery_threshold)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:572,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:573,1
    - Dst: g_variant_dict_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:576,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: fwupd_client_set_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:581,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-client.c:581,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:583,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:584,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:585,1
    - Dst: fwupd_variant_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:587,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:588,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:591,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:592,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:593,1
    - Dst: fwupd_variant_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:595,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:596,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_percentage
      Src: /src/fwupd/libfwupd/fwupd-client.c:603,1
    - Dst: fwupd_variant_get_double
      Src: /src/fwupd/libfwupd/fwupd-client.c:603,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:604,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:605,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:606,1
    - Dst: fwupd_client_set_percentage
      Src: /src/fwupd/libfwupd/fwupd-client.c:608,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-client.c:608,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:610,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:611,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:612,1
    - Dst: fwupd_client_set_battery_level
      Src: /src/fwupd/libfwupd/fwupd-client.c:614,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-client.c:614,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:616,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:617,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:618,1
    - Dst: fwupd_client_set_battery_threshold
      Src: /src/fwupd/libfwupd/fwupd-client.c:620,1
    - Dst: fwupd_variant_get_uint32
      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_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-client.c:626,1
    - Dst: fwupd_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:629,1
    - Dst: fwupd_client_set_host_bkc
      Src: /src/fwupd/libfwupd/fwupd-client.c:631,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:631,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:633,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:634,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:635,1
    - Dst: fwupd_client_set_host_vendor
      Src: /src/fwupd/libfwupd/fwupd-client.c:637,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:637,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:639,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:640,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:641,1
    - Dst: fwupd_client_set_host_product
      Src: /src/fwupd/libfwupd/fwupd-client.c:643,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:643,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:645,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:646,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:647,1
    - Dst: fwupd_client_set_host_machine_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:649,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:649,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:651,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:652,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:653,1
    - Dst: fwupd_client_set_host_security_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:655,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:655,1
    - Dst: g_variant_dict_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:657,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:658,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:659,1
    - Dst: fwupd_variant_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:661,1
    - Dst: fwupd_client_object_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:662,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 106
    argCount: 4
    argNames:
    - proxy
    - changed_properties
    - invalidated_properties
    - self
    argTypes:
    - GDBusProxy*
    - GVariant*
    - GStrv
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 566
    functionDepth: 4
    functionLinenumber: 566
    functionLinenumberEnd: 665
    functionName: fwupd_client_properties_changed_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_object_notify
    - fwupd_client_set_host_machine_id
    - fwupd_client_set_percentage
    - g_variant_dict_contains
    - fwupd_client_set_battery_threshold
    - fwupd_variant_get_double
    - fwupd_client_set_host_vendor
    - fwupd_client_set_host_security_id
    - g_dbus_proxy_get_cached_property
    - fwupd_variant_get_boolean
    - GET_PRIVATE
    - fwupd_client_set_host_bkc
    - fwupd_client_set_battery_level
    - fwupd_variant_get_uint32
    - fwupd_variant_get_string
    - g_variant_dict_new
    - fwupd_client_set_status
    - fwupd_client_set_daemon_version
    - fwupd_client_set_host_product
    - g_autoptr
    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:670,1
    - Dst: g_dbus_proxy_get_name_owner
      Src: /src/fwupd/libfwupd/fwupd-client.c:671,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:674,1
    - Dst: fwupd_client_set_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:679,1
    - Dst: fwupd_client_signal_emit_changed
      Src: /src/fwupd/libfwupd/fwupd-client.c:680,1
    - Dst: fwupd_client_signal_emit_changed
      Src: /src/fwupd/libfwupd/fwupd-client.c:682,1
    - Dst: fwupd_client_set_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:684,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:688,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:689,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 667
    functionDepth: 3
    functionLinenumber: 667
    functionLinenumberEnd: 690
    functionName: fwupd_client_update_proxy_name_owner
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_steal_pointer
    - g_free
    - fwupd_client_signal_emit_changed
    - fwupd_client_set_status
    - g_dbus_proxy_get_name_owner
    - GET_PRIVATE
    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:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - proxy
    - pspec
    - self
    argTypes:
    - GDBusProxy*
    - GParamSpec*
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 692
    functionDepth: 4
    functionLinenumber: 692
    functionLinenumberEnd: 696
    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:705,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:706,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:707,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:708,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:709,1
    - Dst: fwupd_client_signal_emit_changed
      Src: /src/fwupd/libfwupd/fwupd-client.c:710,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:713,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:714,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:715,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-client.c:715,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupd/fwupd-client.c:716,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:719,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:719,1
    - Dst: fwupd_client_signal_emit_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:720,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client.c:720,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:723,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:724,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:725,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-client.c:725,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupd/fwupd-client.c:726,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:729,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:729,1
    - Dst: fwupd_client_signal_emit_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:730,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client.c:730,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:733,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:734,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:735,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-client.c:735,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupd/fwupd-client.c:736,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:739,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:739,1
    - Dst: fwupd_client_signal_emit_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:740,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client.c:740,1
    - Dst: fwupd_device_get_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:743,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-client.c:745,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:745,1
    - Dst: fwupd_client_request_invalidate
      Src: /src/fwupd/libfwupd/fwupd-client.c:747,1
    - Dst: g_hash_table_remove
      Src: /src/fwupd/libfwupd/fwupd-client.c:748,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:749,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:754,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:755,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:755,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:756,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-client.c:756,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupd/fwupd-client.c:757,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:760,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:760,1
    - Dst: fwupd_client_signal_emit_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:761,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client.c:761,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:764,1
    - Dst: fwupd_request_get_device_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:765,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-client.c:766,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:767,1
    - Dst: fwupd_request_get_device_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:767,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:768,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:772,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: 773
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 773
    functionName: fwupd_client_signal_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - g_hash_table_insert
    - g_hash_table_lookup
    - fwupd_device_get_status
    - g_object_ref
    - g_hash_table_remove
    - g_debug
    - fwupd_request_get_kind
    - GET_PRIVATE
    - fwupd_request_new
    - fwupd_client_signal_emit_object
    - fwupd_device_get_id
    - fwupd_client_request_invalidate
    - fwupd_codec_from_variant
    - fwupd_request_get_device_id
    - g_warning
    - fwupd_device_new
    - G_OBJECT
    - g_strdup
    - g_strcmp0
    - fwupd_client_signal_emit_changed
    - fwupd_request_get_id
    - g_autoptr
    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:789,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:790,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:790,1
    - Dst: g_main_context_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:792,1
    - Dst: g_main_context_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 794
    functionName: fwupd_client_get_main_context
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_main_context_ref
    - g_main_context_new
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    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:808,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:809,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:809,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:812,1
    - Dst: g_main_context_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - main_ctx
    argTypes:
    - FwupdClient*
    - GMainContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 815
    functionName: fwupd_client_set_main_context
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - g_main_context_ref
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_clear_pointer
    - GET_PRIVATE
    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:833,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:835,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:835,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:836,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:840,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupd/fwupd-client.c:843,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:844,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdClient*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 851
    functionName: fwupd_client_ensure_networking
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - FWUPD_IS_CLIENT
    - g_strstr_len
    - GET_PRIVATE
    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:860,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:861,1
    - Dst: fwupd_percentage_delta_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:866,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:867,1
    - Dst: fwupd_client_set_percentage
      Src: /src/fwupd/libfwupd/fwupd-client.c:868,1
    - Dst: fwupd_percentage_delta_notify
      Src: /src/fwupd/libfwupd/fwupd-client.c:871,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:872,1
    - Dst: fwupd_client_set_percentage
      Src: /src/fwupd/libfwupd/fwupd-client.c:873,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: 877
      start: 853
    functionDepth: 3
    functionLinenumber: 853
    functionLinenumberEnd: 877
    functionName: fwupd_client_progress_callback_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_info
    - fwupd_client_set_percentage
    - FWUPD_CLIENT
    - fwupd_percentage_delta_notify
    - GET_PRIVATE
    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:885,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-client.c:886,1
    - Dst: g_proxy_resolver_lookup
      Src: /src/fwupd/libfwupd/fwupd-client.c:888,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:890,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:893,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - helper
    - url
    - error
    argTypes:
    - FwupdClient*
    - FwupdCurlHelper*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 898
    functionName: fwupd_client_curl_helper_set_proxy
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - curl_easy_setopt
    - g_prefix_error
    - g_proxy_resolver_lookup
    - g_auto
    - GET_PRIVATE
    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:903,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:904,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client.c:904,1
    - Dst: fwupd_client_ensure_networking
      Src: /src/fwupd/libfwupd/fwupd-client.c:907,1
    - Dst: curl_easy_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:911,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:913,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupd/fwupd-client.c:919,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:920,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:921,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:924,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:925,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:926,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:927,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:928,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:929,1
    - Dst: CURL_AT_LEAST_VERSION
      Src: /src/fwupd/libfwupd/fwupd-client.c:930,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:931,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:932,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:934,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:935,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:940,1
    - Dst: CURL_AT_LEAST_VERSION
      Src: /src/fwupd/libfwupd/fwupd-client.c:942,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:943,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:947,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:948,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdClient*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 949
    functionName: fwupd_client_curl_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_getenv
    - curl_easy_setopt
    - g_new0
    - g_set_error_literal
    - g_steal_pointer
    - curl_easy_init
    - fwupd_client_ensure_networking
    - g_autoptr
    - CURL_AT_LEAST_VERSION
    - GET_PRIVATE
    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:954,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:954,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:955,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:956,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:958,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:958,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-client.c:961,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:962,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:963,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:966,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:967,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:967,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:972,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 973
    functionName: fwupd_client_set_hints_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - g_debug
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - g_error_matches
    - g_task_return_boolean
    - G_DBUS_PROXY
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_client_set_hints_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:978,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:978,1
    - Dst: g_task_get_source_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:982,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:983,1
    - Dst: g_task_get_cancellable
      Src: /src/fwupd/libfwupd/fwupd-client.c:984,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:985,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:986,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:987,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:988,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:989,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:990,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:991,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:992,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:993,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:994,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:995,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:996,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:997,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:998,1
    - Dst: g_dbus_proxy_new_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1000,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1002,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1002,1
    - Dst: g_mutex_locker_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1007,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:1009,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1012,1
    - Dst: fwupd_client_update_proxy_name_owner
      Src: /src/fwupd/libfwupd/fwupd-client.c:1013,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupd/fwupd-client.c:1016,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1016,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1018,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupd/fwupd-client.c:1020,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1020,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1022,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupd/fwupd-client.c:1024,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1024,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1026,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1028,1
    - Dst: fwupd_client_set_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-client.c:1030,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:1030,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1031,1
    - Dst: fwupd_variant_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:1033,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1034,1
    - Dst: fwupd_client_set_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:1036,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-client.c:1036,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1037,1
    - Dst: fwupd_variant_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:1039,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1040,1
    - Dst: fwupd_client_set_host_product
      Src: /src/fwupd/libfwupd/fwupd-client.c:1042,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:1042,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1043,1
    - Dst: fwupd_client_set_host_vendor
      Src: /src/fwupd/libfwupd/fwupd-client.c:1045,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:1045,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1046,1
    - Dst: fwupd_client_set_host_machine_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:1048,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:1048,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1049,1
    - Dst: fwupd_client_set_host_security_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:1051,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:1051,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1052,1
    - Dst: fwupd_client_set_host_bkc
      Src: /src/fwupd/libfwupd/fwupd-client.c:1054,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:1054,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1055,1
    - Dst: fwupd_variant_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:1057,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:1059,1
    - Dst: g_variant_n_children
      Src: /src/fwupd/libfwupd/fwupd-client.c:1061,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client.c:1062,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client.c:1063,1
    - Dst: g_variant_get_child
      Src: /src/fwupd/libfwupd/fwupd-client.c:1067,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:1068,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:1069,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:1074,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1074,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:1075,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupd/fwupd-client.c:1076,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:1079,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:1083,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1085,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1090,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 80
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 975
    functionDepth: 4
    functionLinenumber: 975
    functionLinenumberEnd: 1091
    functionName: fwupd_client_connect_get_proxy_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_set_host_machine_id
    - g_variant_new
    - g_task_return_boolean
    - G_DBUS_PROXY
    - g_mutex_locker_new
    - g_task_get_cancellable
    - g_signal_connect
    - g_new0
    - g_variant_builder_init
    - fwupd_client_set_host_vendor
    - fwupd_client_set_host_security_id
    - g_dbus_proxy_get_cached_property
    - fwupd_variant_get_boolean
    - g_hash_table_iter_next
    - GET_PRIVATE
    - fwupd_client_set_host_bkc
    - g_dbus_proxy_new_finish
    - fwupd_client_update_proxy_name_owner
    - fwupd_variant_get_uint32
    - fwupd_variant_get_string
    - g_variant_get_child
    - fwupd_client_set_status
    - g_dbus_proxy_call
    - fwupd_client_set_daemon_version
    - g_strdup
    - g_task_return_error
    - g_variant_builder_add
    - g_task_get_source_object
    - G_TASK
    - g_steal_pointer
    - fwupd_client_set_host_product
    - G_CALLBACK
    - G_VARIANT_TYPE
    - g_hash_table_iter_init
    - g_autoptr
    - g_variant_n_children
    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:1096,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1096,1
    - Dst: g_task_get_cancellable
      Src: /src/fwupd/libfwupd/fwupd-client.c:1097,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1098,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1099,1
    - Dst: g_dbus_connection_new_for_address_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1101,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1103,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1103,1
    - Dst: g_dbus_proxy_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1106,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1115
    functionName: fwupd_client_connect_get_connection_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_get_cancellable
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_new
    - g_dbus_connection_new_for_address_finish
    - g_autoptr
    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:1138,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupd/fwupd-client.c:1139,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1141,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1141,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1142,1
    - Dst: g_mutex_locker_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1142,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1144,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1144,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1145,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1145,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1147,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:1150,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:1154,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:1161,1
    - Dst: g_strrstr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1166,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-client.c:1167,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:1169,1
    - Dst: g_dbus_connection_new_for_address
      Src: /src/fwupd/libfwupd/fwupd-client.c:1175,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1180,1
    - Dst: g_dbus_proxy_new_for_bus
      Src: /src/fwupd/libfwupd/fwupd-client.c:1185,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - self
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1194
    functionName: fwupd_client_connect_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_getenv
    - g_strdup
    - g_task_new
    - g_dbus_connection_new_for_address
    - g_dbus_proxy_new_for_bus
    - g_strrstr
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_strdup_printf
    - g_task_return_boolean
    - g_autoptr
    - g_mutex_locker_new
    - GET_PRIVATE
    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:1211,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1211,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1212,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:1212,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1213,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:1214,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1208
    functionDepth: 0
    functionLinenumber: 1208
    functionLinenumberEnd: 1215
    functionName: fwupd_client_connect_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:1235,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1236,1
    - Dst: g_mutex_locker_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1236,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1238,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1238,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1239,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1241,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:1245,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:1248,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:1249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdClient*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1253
    functionName: fwupd_client_disconnect
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_signal_handlers_disconnect_by_data
    - g_set_error_literal
    - FWUPD_IS_CLIENT
    - g_clear_object
    - g_autoptr
    - g_mutex_locker_new
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_disconnect(FwupdClient *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1258,1
    - Dst: g_task_get_source_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:1258,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1258,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1259,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1260,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1260,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1261,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1262,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1264,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1264,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-client.c:1266,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:1267,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1269,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1270,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1270,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:1276,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:1277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1255
    functionDepth: 1
    functionLinenumber: 1255
    functionLinenumberEnd: 1278
    functionName: fwupd_client_quit_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_clear_object
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - g_debug
    - g_task_get_source_object
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - FWUPD_CLIENT
    - g_error_matches
    - g_task_return_boolean
    - G_DBUS_PROXY
    - g_autoptr
    - GET_PRIVATE
    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:1299,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1300,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1302,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1302,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1303,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1303,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1304,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1307,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:1308,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:1309,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1317
    functionName: fwupd_client_quit_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:1334,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1334,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1335,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:1335,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1336,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:1337,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1331
    functionDepth: 0
    functionLinenumber: 1331
    functionLinenumberEnd: 1338
    functionName: fwupd_client_quit_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_quit_finish(FwupdClient *self, GAsyncResult *res,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strrstr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1348,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:1353,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:1354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1340
    functionDepth: 0
    functionLinenumber: 1340
    functionLinenumberEnd: 1356
    functionName: fwupd_client_strip_error
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_free
    - g_strrstr
    linkageType: ''
    returnType: void
    signature: void fwupd_client_strip_error(GError *error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1363,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-client.c:1366,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-client.c:1367,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-client.c:1368,1
    - Dst: fwupd_client_strip_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1371,1
    - Dst: g_dbus_error_is_remote_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1376,1
    - Dst: g_dbus_error_get_remote_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1380,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupd/fwupd-client.c:1383,1
    - Dst: fwupd_error_from_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:1385,1
    - Dst: g_dbus_error_strip_remote_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1390,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1358
    functionDepth: 1
    functionLinenumber: 1358
    functionLinenumberEnd: 1391
    functionName: fwupd_client_fixup_dbus_error
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - g_dbus_error_get_remote_error
    - g_dbus_error_is_remote_error
    - g_return_if_fail
    - fwupd_client_strip_error
    - g_dbus_error_strip_remote_error
    - g_error_matches
    - g_str_has_prefix
    - fwupd_error_from_string
    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:1396,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1396,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1397,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1398,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1399,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1401,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1401,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1403,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1404,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1404,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:1407,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1409,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1409,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1414,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1393
    functionDepth: 2
    functionLinenumber: 1393
    functionLinenumberEnd: 1415
    functionName: fwupd_client_get_host_security_attrs_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - G_DBUS_PROXY
    - g_autoptr
    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:1437,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1438,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1440,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1440,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1441,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1441,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1442,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1445,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:1446,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:1447,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1454,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: 1455
      start: 1431
    functionDepth: 0
    functionLinenumber: 1431
    functionLinenumberEnd: 1455
    functionName: fwupd_client_get_host_security_attrs_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:1472,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1472,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1473,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:1473,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1474,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1475,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1469
    functionDepth: 0
    functionLinenumber: 1469
    functionLinenumberEnd: 1476
    functionName: fwupd_client_get_host_security_attrs_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:1481,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1481,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1482,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1483,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1485,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1485,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1487,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1488,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1488,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:1493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1478
    functionDepth: 2
    functionLinenumber: 1478
    functionLinenumberEnd: 1494
    functionName: fwupd_client_modify_bios_setting_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - g_task_return_boolean
    - G_DBUS_PROXY
    - g_autoptr
    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:1516,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1520,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1522,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1522,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1523,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1524,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:1524,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1525,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1525,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1526,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1529,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:1530,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:1531,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1531,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:1532,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupd/fwupd-client.c:1533,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:1536,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:1538,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1540,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1545,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - self
    - settings
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GHashTable*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1509
    functionDepth: 0
    functionLinenumber: 1509
    functionLinenumberEnd: 1546
    functionName: fwupd_client_modify_bios_setting_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_dbus_proxy_call
    - g_task_new
    - g_variant_builder_add
    - g_variant_builder_init
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_hash_table_size
    - g_variant_new
    - G_VARIANT_TYPE
    - g_hash_table_iter_init
    - g_autoptr
    - g_hash_table_iter_next
    - GET_PRIVATE
    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:1563,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1563,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1564,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:1564,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1565,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:1566,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1560
    functionDepth: 0
    functionLinenumber: 1560
    functionLinenumberEnd: 1567
    functionName: fwupd_client_modify_bios_setting_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:1572,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1572,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1573,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1574,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1575,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1577,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1577,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1579,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1580,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1580,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:1583,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1585,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1585,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1590,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1569
    functionDepth: 2
    functionLinenumber: 1569
    functionLinenumberEnd: 1591
    functionName: fwupd_client_get_bios_settings_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - G_DBUS_PROXY
    - g_autoptr
    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:1613,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1614,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1616,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1616,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1617,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1617,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1618,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1621,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:1622,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:1623,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1630,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: 1631
      start: 1607
    functionDepth: 0
    functionLinenumber: 1607
    functionLinenumberEnd: 1631
    functionName: fwupd_client_get_bios_settings_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:1648,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1648,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1649,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:1649,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1650,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1651,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1652
      start: 1645
    functionDepth: 0
    functionLinenumber: 1645
    functionLinenumberEnd: 1652
    functionName: fwupd_client_get_bios_settings_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:1657,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1657,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1658,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1659,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1660,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1662,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1662,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1664,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1665,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1665,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:1668,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1670,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1670,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1675,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1654
    functionDepth: 2
    functionLinenumber: 1654
    functionLinenumberEnd: 1676
    functionName: fwupd_client_get_host_security_events_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - G_DBUS_PROXY
    - g_autoptr
    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:1700,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1701,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1703,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1703,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1704,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1704,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1705,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1708,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:1709,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:1710,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1712,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - self
    - limit
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - guint
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1693
    functionDepth: 0
    functionLinenumber: 1693
    functionLinenumberEnd: 1718
    functionName: fwupd_client_get_host_security_events_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:1735,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1735,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1736,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:1736,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1737,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1738,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1732
    functionDepth: 0
    functionLinenumber: 1732
    functionLinenumberEnd: 1739
    functionName: fwupd_client_get_host_security_events_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_host_security_events_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1744,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1744,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1745,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1746,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1747,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1748,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1750,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1750,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1752,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1753,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1753,1
    - Dst: g_variant_is_of_type
      Src: /src/fwupd/libfwupd/fwupd-client.c:1756,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1756,1
    - Dst: g_task_return_new_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:1757,1
    - Dst: g_variant_get_child_value
      Src: /src/fwupd/libfwupd/fwupd-client.c:1763,1
    - Dst: fwupd_variant_to_hash_kv
      Src: /src/fwupd/libfwupd/fwupd-client.c:1764,1
    - Dst: g_task_return_new_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:1766,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1774,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1774,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1741
    functionDepth: 2
    functionLinenumber: 1741
    functionLinenumberEnd: 1775
    functionName: fwupd_client_get_report_metadata_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - g_task_return_new_error_literal
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - g_variant_is_of_type
    - G_VARIANT_TYPE
    - g_variant_get_child_value
    - G_DBUS_PROXY
    - g_autoptr
    - fwupd_variant_to_hash_kv
    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:1797,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1798,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1800,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1800,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1801,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1801,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1802,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1805,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:1806,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:1807,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1791
    functionDepth: 0
    functionLinenumber: 1791
    functionLinenumberEnd: 1815
    functionName: fwupd_client_get_report_metadata_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:1832,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1832,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1833,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:1833,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1834,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1835,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1829
    functionDepth: 0
    functionLinenumber: 1829
    functionLinenumberEnd: 1836
    functionName: fwupd_client_get_report_metadata_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:1841,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1841,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1842,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1843,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1844,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1846,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1846,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1848,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1849,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1849,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:1852,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1854,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1854,1
    - Dst: fwupd_device_array_ensure_parents
      Src: /src/fwupd/libfwupd/fwupd-client.c:1857,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1860,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1860,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1838
    functionDepth: 2
    functionLinenumber: 1838
    functionLinenumberEnd: 1861
    functionName: fwupd_client_get_devices_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - fwupd_device_array_ensure_parents
    - G_DBUS_PROXY
    - g_autoptr
    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:1883,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1884,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1886,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1886,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1887,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1887,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1888,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1891,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:1892,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:1893,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1900,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: 1901
      start: 1877
    functionDepth: 0
    functionLinenumber: 1877
    functionLinenumberEnd: 1901
    functionName: fwupd_client_get_devices_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:1918,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1918,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1919,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:1919,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1920,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1921,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1915
    functionDepth: 0
    functionLinenumber: 1915
    functionLinenumberEnd: 1922
    functionName: fwupd_client_get_devices_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:1927,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:1927,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1928,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1929,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1930,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:1932,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:1932,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1934,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1935,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1935,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:1938,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:1940,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1940,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1945,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1924
    functionDepth: 2
    functionLinenumber: 1924
    functionLinenumberEnd: 1946
    functionName: fwupd_client_get_plugins_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - G_DBUS_PROXY
    - g_autoptr
    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:1968,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:1969,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1971,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:1971,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1972,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:1972,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:1973,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:1976,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:1977,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:1978,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:1985,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: 1986
      start: 1962
    functionDepth: 0
    functionLinenumber: 1962
    functionLinenumberEnd: 1986
    functionName: fwupd_client_get_plugins_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:2003,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2003,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2004,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2004,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2005,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2006,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2006,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 2000
    functionDepth: 0
    functionLinenumber: 2000
    functionLinenumberEnd: 2007
    functionName: fwupd_client_get_plugins_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:2012,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2012,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2013,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2014,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2015,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2017,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:2017,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2019,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2020,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2020,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:2023,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2025,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2025,1
    - Dst: fwupd_device_array_ensure_parents
      Src: /src/fwupd/libfwupd/fwupd-client.c:2028,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2031,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2031,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2009
    functionDepth: 2
    functionLinenumber: 2009
    functionLinenumberEnd: 2032
    functionName: fwupd_client_get_history_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - fwupd_device_array_ensure_parents
    - G_DBUS_PROXY
    - g_autoptr
    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:2054,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2055,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2057,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2057,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2058,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2058,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2059,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2062,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:2063,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:2064,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2071,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: 2072
      start: 2048
    functionDepth: 0
    functionLinenumber: 2048
    functionLinenumberEnd: 2072
    functionName: fwupd_client_get_history_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:2089,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2089,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2090,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2090,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2091,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2092,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2086
    functionDepth: 0
    functionLinenumber: 2086
    functionLinenumberEnd: 2093
    functionName: fwupd_client_get_history_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:2100,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2100,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2101,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2102,1
    - Dst: g_task_get_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:2103,1
    - Dst: fwupd_client_get_devices_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2105,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2105,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2107,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2107,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-client.c:2112,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:2114,1
    - Dst: strncmp
      Src: /src/fwupd/libfwupd/fwupd-client.c:2115,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:2115,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2117,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2130,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:2131,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2142
      start: 2095
    functionDepth: 1
    functionLinenumber: 2095
    functionLinenumberEnd: 2142
    functionName: fwupd_client_get_device_by_id_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - g_task_return_error
    - strncmp
    - fwupd_device_get_id
    - G_TASK
    - g_steal_pointer
    - g_task_get_task_data
    - fwupd_client_get_devices_finish
    - g_object_ref
    - strlen
    - FWUPD_CLIENT
    - g_task_return_new_error
    - g_autoptr
    - g_ptr_array_index
    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:2166,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2167,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2169,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2169,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2170,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2171,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2171,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2172,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2175,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:2176,1
    - Dst: g_task_set_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:2177,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:2177,1
    - Dst: fwupd_client_get_devices_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:2178,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - self
    - device_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2182
      start: 2159
    functionDepth: 1
    functionLinenumber: 2159
    functionLinenumberEnd: 2182
    functionName: fwupd_client_get_device_by_id_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_set_task_data
    - g_strdup
    - g_task_new
    - fwupd_client_get_devices_async
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_autoptr
    - GET_PRIVATE
    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:2199,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2199,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2200,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2200,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2201,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2202,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2196
    functionDepth: 0
    functionLinenumber: 2196
    functionLinenumberEnd: 2203
    functionName: fwupd_client_get_device_by_id_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:2208,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2208,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2209,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2210,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2211,1
    - Dst: g_task_get_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:2212,1
    - Dst: fwupd_client_get_devices_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2215,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2215,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2217,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2217,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client.c:2222,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:2224,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2225,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:2226,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:2226,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2231,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2240,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2205
    functionDepth: 1
    functionLinenumber: 2205
    functionLinenumberEnd: 2241
    functionName: fwupd_client_get_devices_by_guid_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_ptr_array_add
    - g_task_get_task_data
    - fwupd_client_get_devices_finish
    - fwupd_device_has_guid
    - g_object_ref
    - FWUPD_CLIENT
    - g_task_return_new_error
    - g_ptr_array_new_with_free_func
    - g_autoptr
    - g_ptr_array_index
    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:2266,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2267,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2269,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2269,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2270,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2271,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2271,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2272,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2275,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:2276,1
    - Dst: g_task_set_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:2277,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:2277,1
    - Dst: fwupd_client_get_devices_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:2278,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - self
    - guid
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2282
      start: 2259
    functionDepth: 1
    functionLinenumber: 2259
    functionLinenumberEnd: 2282
    functionName: fwupd_client_get_devices_by_guid_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_set_task_data
    - g_strdup
    - g_task_new
    - fwupd_client_get_devices_async
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_autoptr
    - GET_PRIVATE
    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:2299,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2299,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2300,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2300,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2301,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2302,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2303
      start: 2296
    functionDepth: 0
    functionLinenumber: 2296
    functionLinenumberEnd: 2303
    functionName: fwupd_client_get_devices_by_guid_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:2308,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2308,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2309,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2310,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2311,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2313,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:2313,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2315,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2316,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2316,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:2319,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2321,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2321,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2326,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2327
      start: 2305
    functionDepth: 2
    functionLinenumber: 2305
    functionLinenumberEnd: 2327
    functionName: fwupd_client_get_releases_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - G_DBUS_PROXY
    - g_autoptr
    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:2351,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2352,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2354,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2354,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2355,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2356,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2356,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2357,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2360,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:2361,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:2362,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2364,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2369,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: 2370
      start: 2344
    functionDepth: 0
    functionLinenumber: 2344
    functionLinenumberEnd: 2370
    functionName: fwupd_client_get_releases_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:2387,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2387,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2388,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2388,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2389,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2390,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2391
      start: 2384
    functionDepth: 0
    functionLinenumber: 2384
    functionLinenumberEnd: 2391
    functionName: fwupd_client_get_releases_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:2396,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2396,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2397,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2398,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2399,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2401,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:2401,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2403,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2404,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2404,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:2407,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2409,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2409,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2414,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2415
      start: 2393
    functionDepth: 2
    functionLinenumber: 2393
    functionLinenumberEnd: 2415
    functionName: fwupd_client_search_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - G_DBUS_PROXY
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_client_search_cb(GObject *source, GAsyncResult *res, gpointer
      user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2439,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2440,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2442,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2442,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2443,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2444,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2444,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2445,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2448,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:2449,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:2450,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2452,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - self
    - token
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2458
      start: 2432
    functionDepth: 0
    functionLinenumber: 2432
    functionLinenumberEnd: 2458
    functionName: fwupd_client_search_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_search_async(FwupdClient *self,\n\t\t\t  const gchar
      *token,\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:2475,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2475,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2476,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2476,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2477,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2478,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2472
    functionDepth: 0
    functionLinenumber: 2472
    functionLinenumberEnd: 2479
    functionName: fwupd_client_search_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_search_finish(FwupdClient *self, GAsyncResult *res, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2484,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2484,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2485,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2486,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2487,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2489,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:2489,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2491,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2492,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2492,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:2495,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2497,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2497,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2502,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2503
      start: 2481
    functionDepth: 2
    functionLinenumber: 2481
    functionLinenumberEnd: 2503
    functionName: fwupd_client_get_downgrades_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - G_DBUS_PROXY
    - g_autoptr
    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:2527,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2528,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2530,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2530,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2531,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2532,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2532,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2533,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2536,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:2537,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:2538,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2540,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2545,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: 2546
      start: 2520
    functionDepth: 0
    functionLinenumber: 2520
    functionLinenumberEnd: 2546
    functionName: fwupd_client_get_downgrades_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:2563,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2563,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2564,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2564,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2565,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2566,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2560
    functionDepth: 0
    functionLinenumber: 2560
    functionLinenumberEnd: 2567
    functionName: fwupd_client_get_downgrades_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:2572,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2572,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2573,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2574,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2575,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2577,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:2577,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2579,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2580,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2580,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:2583,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2585,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2585,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2590,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2591
      start: 2569
    functionDepth: 2
    functionLinenumber: 2569
    functionLinenumberEnd: 2591
    functionName: fwupd_client_get_upgrades_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - G_DBUS_PROXY
    - g_autoptr
    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:2615,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2616,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2618,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2618,1
    - Dst: g_return_if_fail
      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_IS_CANCELLABLE
      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_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2624,1
    - Dst: g_task_set_source_tag
      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
    - device_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2608
    functionDepth: 0
    functionLinenumber: 2608
    functionLinenumberEnd: 2634
    functionName: fwupd_client_get_upgrades_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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: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_pointer
      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_get_upgrades_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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: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_modify_config_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - g_task_return_boolean
    - G_DBUS_PROXY
    - g_autoptr
    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:2699,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2700,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2702,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2702,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2703,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2704,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2705,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2706,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2706,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2707,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2710,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:2711,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:2712,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2714,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2719,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 7
    argNames:
    - self
    - section
    - key
    - value
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - gchar*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2720
      start: 2690
    functionDepth: 0
    functionLinenumber: 2690
    functionLinenumberEnd: 2720
    functionName: fwupd_client_modify_config_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:2737,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2737,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2738,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2738,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2739,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2740,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2734
    functionDepth: 0
    functionLinenumber: 2734
    functionLinenumberEnd: 2741
    functionName: fwupd_client_modify_config_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:2746,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2746,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2747,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2748,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2750,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:2750,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2752,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2753,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2753,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2759
      start: 2743
    functionDepth: 2
    functionLinenumber: 2743
    functionLinenumberEnd: 2759
    functionName: fwupd_client_reset_config_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - g_task_return_boolean
    - G_DBUS_PROXY
    - g_autoptr
    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:2781,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2782,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2784,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2784,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2785,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2786,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2786,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2787,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2790,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:2791,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:2792,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2794,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2799,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - self
    - section
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2800
      start: 2774
    functionDepth: 0
    functionLinenumber: 2774
    functionLinenumberEnd: 2800
    functionName: fwupd_client_reset_config_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:2817,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2817,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2818,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2818,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2819,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2820,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2821
      start: 2814
    functionDepth: 0
    functionLinenumber: 2814
    functionLinenumberEnd: 2821
    functionName: fwupd_client_reset_config_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:2826,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2826,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2827,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2828,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2830,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:2830,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2832,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2833,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2833,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2839
      start: 2823
    functionDepth: 2
    functionLinenumber: 2823
    functionLinenumberEnd: 2839
    functionName: fwupd_client_activate_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - g_task_return_boolean
    - G_DBUS_PROXY
    - g_autoptr
    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:2861,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2862,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2864,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2864,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2865,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2866,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2866,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2867,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2870,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:2871,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:2872,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2874,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - self
    - device_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2880
      start: 2854
    functionDepth: 0
    functionLinenumber: 2854
    functionLinenumberEnd: 2880
    functionName: fwupd_client_activate_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:2897,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2897,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2898,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2898,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2899,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2900,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2900,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2901
      start: 2894
    functionDepth: 0
    functionLinenumber: 2894
    functionLinenumberEnd: 2901
    functionName: fwupd_client_activate_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:2906,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2906,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2907,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2908,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2910,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:2910,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2912,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2913,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2913,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2919
      start: 2903
    functionDepth: 2
    functionLinenumber: 2903
    functionLinenumberEnd: 2919
    functionName: fwupd_client_verify_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - g_task_return_boolean
    - G_DBUS_PROXY
    - g_autoptr
    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:2940,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2941,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2943,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2943,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2944,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2945,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:2945,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2946,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2949,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:2950,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:2951,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:2953,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - self
    - device_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2959
      start: 2933
    functionDepth: 0
    functionLinenumber: 2933
    functionLinenumberEnd: 2959
    functionName: fwupd_client_verify_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:2976,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:2976,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2977,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:2977,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:2978,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2979,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2980
      start: 2973
    functionDepth: 0
    functionLinenumber: 2973
    functionLinenumberEnd: 2980
    functionName: fwupd_client_verify_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:2985,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:2985,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2986,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:2987,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:2989,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:2989,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2991,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:2992,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:2992,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:2997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2998
      start: 2982
    functionDepth: 2
    functionLinenumber: 2982
    functionLinenumberEnd: 2998
    functionName: fwupd_client_verify_update_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - g_task_return_boolean
    - G_DBUS_PROXY
    - g_autoptr
    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:3019,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3020,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3022,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3022,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3023,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3024,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3024,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3025,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3028,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:3029,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:3030,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3032,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - self
    - device_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3038
      start: 3012
    functionDepth: 0
    functionLinenumber: 3012
    functionLinenumberEnd: 3038
    functionName: fwupd_client_verify_update_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:3055,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3055,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3056,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:3056,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3057,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:3058,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3059
      start: 3052
    functionDepth: 0
    functionLinenumber: 3052
    functionLinenumberEnd: 3059
    functionName: fwupd_client_verify_update_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:3064,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3064,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3065,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3066,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:3068,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:3068,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3070,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3071,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3071,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:3076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3077
      start: 3061
    functionDepth: 2
    functionLinenumber: 3061
    functionLinenumberEnd: 3077
    functionName: fwupd_client_unlock_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - g_task_return_boolean
    - G_DBUS_PROXY
    - g_autoptr
    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:3098,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3099,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3101,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3101,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3102,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3103,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3103,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3104,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3107,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:3108,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:3109,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3111,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - self
    - device_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3117
      start: 3091
    functionDepth: 0
    functionLinenumber: 3091
    functionLinenumberEnd: 3117
    functionName: fwupd_client_unlock_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:3134,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3134,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3135,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:3135,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3136,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:3137,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3138
      start: 3131
    functionDepth: 0
    functionLinenumber: 3131
    functionLinenumberEnd: 3138
    functionName: fwupd_client_unlock_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:3143,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3143,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3144,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3145,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:3147,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:3147,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3149,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3150,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3150,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:3155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3156
      start: 3140
    functionDepth: 2
    functionLinenumber: 3140
    functionLinenumberEnd: 3156
    functionName: fwupd_client_clear_results_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - g_task_return_boolean
    - G_DBUS_PROXY
    - g_autoptr
    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:3177,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3178,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3180,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3180,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3181,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3182,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3182,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3183,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3186,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:3187,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:3188,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3190,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - self
    - device_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3196
      start: 3170
    functionDepth: 0
    functionLinenumber: 3170
    functionLinenumberEnd: 3196
    functionName: fwupd_client_clear_results_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:3213,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3213,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3214,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:3214,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3215,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:3216,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3217
      start: 3210
    functionDepth: 0
    functionLinenumber: 3210
    functionLinenumberEnd: 3217
    functionName: fwupd_client_clear_results_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:3222,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3222,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3223,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3223,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3224,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3225,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:3227,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:3227,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3229,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3230,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3230,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:3233,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-client.c:3233,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3234,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3234,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3239,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3240
      start: 3219
    functionDepth: 2
    functionLinenumber: 3219
    functionLinenumberEnd: 3240
    functionName: fwupd_client_get_results_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - FWUPD_CODEC
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - fwupd_codec_from_variant
    - g_dbus_proxy_call_finish
    - fwupd_device_new
    - G_DBUS_PROXY
    - g_autoptr
    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:3264,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3265,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3267,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3267,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3268,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3269,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3269,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3270,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3273,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:3274,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:3275,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3277,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3282,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: 3283
      start: 3257
    functionDepth: 0
    functionLinenumber: 3257
    functionLinenumberEnd: 3283
    functionName: fwupd_client_get_results_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:3300,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3300,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3301,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:3301,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3302,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3303,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3304
      start: 3297
    functionDepth: 0
    functionLinenumber: 3297
    functionLinenumberEnd: 3304
    functionName: fwupd_client_get_results_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:3311,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3312,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3313,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3313,1
    - Dst: g_dbus_connection_send_message_with_reply_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:3315,1
    - Dst: G_DBUS_CONNECTION
      Src: /src/fwupd/libfwupd/fwupd-client.c:3315,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3319,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3320,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3320,1
    - Dst: g_dbus_message_to_gerror
      Src: /src/fwupd/libfwupd/fwupd-client.c:3323,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3324,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3325,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3325,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:3330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3331
      start: 3308
    functionDepth: 2
    functionLinenumber: 3308
    functionLinenumberEnd: 3331
    functionName: fwupd_client_install_stream_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_CONNECTION
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - g_dbus_connection_send_message_with_reply_finish
    - G_TASK
    - g_steal_pointer
    - g_dbus_message_to_gerror
    - g_task_return_boolean
    - g_autoptr
    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:3343,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3345,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3346,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3347,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3347,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:3350,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:3353,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:3354,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:3354,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:3356,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:3359,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:3361,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-client.c:3364,1
    - Dst: g_unix_fd_list_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3367,1
    - Dst: g_unix_fd_list_append
      Src: /src/fwupd/libfwupd/fwupd-client.c:3368,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:3368,1
    - Dst: g_dbus_message_new_method_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:3369,1
    - Dst: g_dbus_message_set_unix_fd_list
      Src: /src/fwupd/libfwupd/fwupd-client.c:3373,1
    - Dst: g_dbus_message_set_body
      Src: /src/fwupd/libfwupd/fwupd-client.c:3376,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3378,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:3378,1
    - Dst: g_dbus_connection_send_message_with_reply
      Src: /src/fwupd/libfwupd/fwupd-client.c:3379,1
    - Dst: g_dbus_proxy_get_connection
      Src: /src/fwupd/libfwupd/fwupd-client.c:3379,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    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: 3387
      start: 3333
    functionDepth: 0
    functionLinenumber: 3333
    functionLinenumberEnd: 3387
    functionName: fwupd_client_install_stream_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - g_dbus_proxy_get_connection
    - g_task_new
    - g_unix_fd_list_append
    - g_variant_builder_add
    - g_variant_builder_init
    - g_dbus_message_new_method_call
    - g_unix_input_stream_get_fd
    - g_dbus_message_set_unix_fd_list
    - g_dbus_connection_send_message_with_reply
    - g_dbus_message_set_body
    - g_steal_pointer
    - g_variant_new_string
    - g_variant_new_uint64
    - g_unix_fd_list_new
    - g_variant_new
    - g_autoptr
    - GET_PRIVATE
    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:3418,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3419,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3420,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3422,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3422,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3423,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3423,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3424,1
    - Dst: fwupd_unix_input_stream_from_bytes
      Src: /src/fwupd/libfwupd/fwupd-client.c:3427,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3429,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3429,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:3430,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3431,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3431,1
    - Dst: fwupd_client_install_stream_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:3436,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3445,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3445,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:3446,1
    - Dst: g_task_return_new_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:3447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    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: 3452
      start: 3408
    functionDepth: 1
    functionLinenumber: 3408
    functionLinenumberEnd: 3452
    functionName: fwupd_client_install_bytes_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_task_return_error
    - fwupd_unix_input_stream_from_bytes
    - g_task_return_new_error_literal
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - fwupd_client_install_stream_async
    - g_autoptr
    - GET_PRIVATE
    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:3469,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3469,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3470,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:3470,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3471,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:3472,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3473
      start: 3466
    functionDepth: 0
    functionLinenumber: 3466
    functionLinenumberEnd: 3473
    functionName: fwupd_client_install_bytes_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:3503,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3504,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3505,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3507,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3507,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3508,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3509,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3510,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3510,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3511,1
    - Dst: fwupd_unix_input_stream_from_fn
      Src: /src/fwupd/libfwupd/fwupd-client.c:3514,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3516,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3516,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:3517,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3518,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3518,1
    - Dst: fwupd_client_install_stream_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:3523,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3532,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3532,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:3533,1
    - Dst: g_task_return_new_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:3534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    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: 3539
      start: 3493
    functionDepth: 1
    functionLinenumber: 3493
    functionLinenumberEnd: 3539
    functionName: fwupd_client_install_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_task_return_error
    - g_task_return_new_error_literal
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - fwupd_client_install_stream_async
    - g_autoptr
    - fwupd_unix_input_stream_from_fn
    - GET_PRIVATE
    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:3556,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3556,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3557,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:3557,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3558,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:3559,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3560
      start: 3553
    functionDepth: 0
    functionLinenumber: 3553
    functionLinenumberEnd: 3560
    functionName: fwupd_client_install_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:3572,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:3573,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:3574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - FwupdClientInstallReleaseData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3575
      start: 3569
    functionDepth: 0
    functionLinenumber: 3569
    functionLinenumberEnd: 3575
    functionName: fwupd_client_install_release_data_free
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_free
    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:3580,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3581,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3581,1
    - Dst: fwupd_client_install_release_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:3583,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3583,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_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:3589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3590
      start: 3577
    functionDepth: 1
    functionLinenumber: 3577
    functionLinenumberEnd: 3590
    functionName: fwupd_client_install_release_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - fwupd_client_install_release_finish
    - FWUPD_CLIENT
    - g_task_return_boolean
    - g_autoptr
    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:3595,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3596,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3596,1
    - Dst: fwupd_client_install_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:3598,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3598,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3599,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3599,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:3604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3605
      start: 3592
    functionDepth: 1
    functionLinenumber: 3592
    functionLinenumberEnd: 3605
    functionName: fwupd_client_install_release_bytes_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - FWUPD_CLIENT
    - fwupd_client_install_bytes_finish
    - g_task_return_boolean
    - g_autoptr
    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:3610,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3611,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3612,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3612,1
    - Dst: g_task_get_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:3613,1
    - Dst: g_task_get_cancellable
      Src: /src/fwupd/libfwupd/fwupd-client.c:3615,1
    - Dst: fwupd_client_download_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:3619,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3619,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3621,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3621,1
    - Dst: fwupd_checksum_get_best
      Src: /src/fwupd/libfwupd/fwupd-client.c:3626,1
    - Dst: fwupd_release_get_checksums
      Src: /src/fwupd/libfwupd/fwupd-client.c:3626,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:3627,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupd/fwupd-client.c:3628,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:3629,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3630,1
    - Dst: fwupd_client_install_bytes_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:3639,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3639,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:3640,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3646
      start: 3607
    functionDepth: 2
    functionLinenumber: 3607
    functionLinenumberEnd: 3646
    functionName: fwupd_client_install_release_download_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_task_get_cancellable
    - g_task_return_error
    - fwupd_client_download_bytes_finish
    - fwupd_checksum_guess_kind
    - fwupd_client_install_bytes_async
    - G_TASK
    - g_steal_pointer
    - fwupd_checksum_get_best
    - fwupd_device_get_id
    - g_task_get_task_data
    - fwupd_release_get_checksums
    - FWUPD_CLIENT
    - g_task_return_new_error
    - g_autoptr
    - g_compute_checksum_for_bytes
    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:3651,1
    - Dst: curl_url
      Src: /src/fwupd/libfwupd/fwupd-client.c:3651,1
    - Dst: curl_url_set
      Src: /src/fwupd/libfwupd/fwupd-client.c:3652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - perhaps_url
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3653
      start: 3648
    functionDepth: 0
    functionLinenumber: 3648
    functionLinenumberEnd: 3653
    functionName: fwupd_client_is_url_http
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - curl_url_set
    - g_autoptr
    - curl_url
    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:3660,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupd/fwupd-client.c:3660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - perhaps_url
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3661
      start: 3655
    functionDepth: 0
    functionLinenumber: 3655
    functionLinenumberEnd: 3661
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3666,1
    - Dst: curl_url
      Src: /src/fwupd/libfwupd/fwupd-client.c:3666,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3667,1
    - Dst: curl_url_set
      Src: /src/fwupd/libfwupd/fwupd-client.c:3670,1
    - Dst: curl_url_get
      Src: /src/fwupd/libfwupd/fwupd-client.c:3672,1
    - Dst: g_strv_contains
      Src: /src/fwupd/libfwupd/fwupd-client.c:3675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - url
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3676
      start: 3663
    functionDepth: 0
    functionLinenumber: 3663
    functionLinenumberEnd: 3676
    functionName: fwupd_client_is_localhost
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - curl_url
    - g_strv_contains
    - curl_url_get
    - g_autoptr
    - curl_url_set
    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:3683,1
    - Dst: fwupd_client_is_localhost
      Src: /src/fwupd/libfwupd/fwupd-client.c:3685,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - perhaps_url
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3688
      start: 3678
    functionDepth: 1
    functionLinenumber: 3678
    functionLinenumberEnd: 3688
    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:3696,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3697,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3698,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3698,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3699,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client.c:3699,1
    - Dst: g_task_get_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:3700,1
    - Dst: g_task_get_cancellable
      Src: /src/fwupd/libfwupd/fwupd-client.c:3701,1
    - Dst: fwupd_client_get_remote_by_id_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:3704,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3704,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3706,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3706,1
    - Dst: fwupd_release_get_locations
      Src: /src/fwupd/libfwupd/fwupd-client.c:3711,1
    - Dst: g_task_return_new_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:3713,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:3719,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:3722,1
    - Dst: fwupd_client_is_url_http
      Src: /src/fwupd/libfwupd/fwupd-client.c:3723,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/libfwupd/fwupd-client.c:3723,1
    - Dst: fwupd_remote_get_filename_cache
      Src: /src/fwupd/libfwupd/fwupd-client.c:3724,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/libfwupd/fwupd-client.c:3725,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupd/fwupd-client.c:3726,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:3727,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupd/fwupd-client.c:3728,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:3729,1
    - Dst: fwupd_client_install_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:3734,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3734,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:3735,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3740,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-client.c:3745,1
    - Dst: fwupd_checksum_get_by_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:3747,1
    - Dst: fwupd_release_get_checksums
      Src: /src/fwupd/libfwupd/fwupd-client.c:3747,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupd/fwupd-client.c:3751,1
    - Dst: fwupd_release_get_filename
      Src: /src/fwupd/libfwupd/fwupd-client.c:3751,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:3752,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-client.c:3753,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:3761,1
    - Dst: fwupd_client_is_url_p2p
      Src: /src/fwupd/libfwupd/fwupd-client.c:3762,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:3763,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:3763,1
    - Dst: fwupd_client_is_url_http
      Src: /src/fwupd/libfwupd/fwupd-client.c:3764,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/libfwupd/fwupd-client.c:3766,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3768,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3768,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:3771,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3771,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:3773,1
    - Dst: g_task_return_new_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:3777,1
    - Dst: fwupd_client_download_bytes2_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:3785,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3785,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3790,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3791
      start: 3690
    functionDepth: 2
    functionLinenumber: 3690
    functionLinenumberEnd: 3791
    functionName: fwupd_client_install_release_remote_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_get_kind
    - fwupd_remote_get_filename_cache
    - fwupd_client_get_remote_by_id_finish
    - g_task_get_task_data
    - g_strdup_printf
    - fwupd_client_download_bytes2_async
    - fwupd_release_get_filename
    - g_ptr_array_index
    - fwupd_checksum_get_by_kind
    - g_task_get_cancellable
    - g_debug
    - fwupd_client_is_url_http
    - g_path_get_dirname
    - g_str_has_prefix
    - g_ptr_array_new_with_free_func
    - fwupd_client_install_async
    - g_path_get_basename
    - fwupd_remote_has_flag
    - fwupd_remote_build_firmware_uri
    - fwupd_device_get_id
    - fwupd_release_get_locations
    - fwupd_client_is_url_p2p
    - fwupd_release_get_checksums
    - FWUPD_CLIENT
    - g_strdup
    - g_task_return_error
    - g_task_return_new_error_literal
    - G_TASK
    - g_steal_pointer
    - g_ptr_array_add
    - g_autoptr
    - g_build_filename
    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:3798,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client.c:3798,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3800,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3801,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:3804,1
    - Dst: fwupd_client_is_url_p2p
      Src: /src/fwupd/libfwupd/fwupd-client.c:3806,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:3808,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:3808,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:3811,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3817,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - locations
    - download_flags
    - error
    argTypes:
    - GPtrArray*
    - FwupdClientDownloadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3818
      start: 3793
    functionDepth: 2
    functionLinenumber: 3793
    functionLinenumberEnd: 3818
    functionName: fwupd_client_filter_locations
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_set_error_literal
    - g_steal_pointer
    - g_ptr_array_add
    - fwupd_client_is_url_p2p
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    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:3849,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3850,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3854,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3854,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3855,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3855,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3856,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3856,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3857,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:3857,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3858,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3861,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:3862,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client.c:3863,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:3864,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:3865,1
    - Dst: g_task_set_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:3868,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:3871,1
    - Dst: fwupd_client_download_bytes2_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:3873,1
    - Dst: fwupd_release_get_locations
      Src: /src/fwupd/libfwupd/fwupd-client.c:3874,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3878,1
    - Dst: fwupd_client_get_remote_by_id_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:3883,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3887,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    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: 3888
      start: 3839
    functionDepth: 1
    functionLinenumber: 3839
    functionLinenumberEnd: 3888
    functionName: fwupd_client_install_release_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_set_task_data
    - fwupd_release_get_remote_id
    - g_task_new
    - g_new0
    - fwupd_client_get_remote_by_id_async
    - FWUPD_IS_DEVICE
    - FWUPD_IS_RELEASE
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - fwupd_release_get_locations
    - g_object_ref
    - fwupd_client_download_bytes2_async
    - g_autoptr
    - GET_PRIVATE
    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:3905,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:3905,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3906,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:3906,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:3907,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:3908,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3909
      start: 3902
    functionDepth: 0
    functionLinenumber: 3902
    functionLinenumberEnd: 3909
    functionName: fwupd_client_install_release_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:3916,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3917,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3918,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3919,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:3919,1
    - Dst: g_dbus_connection_send_message_with_reply_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:3921,1
    - Dst: G_DBUS_CONNECTION
      Src: /src/fwupd/libfwupd/fwupd-client.c:3921,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3925,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3926,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3926,1
    - Dst: g_dbus_message_to_gerror
      Src: /src/fwupd/libfwupd/fwupd-client.c:3929,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3930,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3931,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3931,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:3935,1
    - Dst: g_dbus_message_get_body
      Src: /src/fwupd/libfwupd/fwupd-client.c:3935,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:3937,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3937,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3942,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3942,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3943
      start: 3913
    functionDepth: 2
    functionLinenumber: 3913
    functionLinenumberEnd: 3943
    functionName: fwupd_client_get_details_stream_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_CONNECTION
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - g_dbus_connection_send_message_with_reply_finish
    - G_TASK
    - g_steal_pointer
    - g_dbus_message_to_gerror
    - fwupd_codec_array_from_variant
    - g_dbus_message_get_body
    - g_autoptr
    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:3952,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:3953,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3954,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3955,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:3956,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3956,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:3959,1
    - Dst: g_unix_fd_list_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3962,1
    - Dst: g_unix_fd_list_append
      Src: /src/fwupd/libfwupd/fwupd-client.c:3963,1
    - Dst: g_dbus_message_new_method_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:3964,1
    - Dst: g_dbus_message_set_unix_fd_list
      Src: /src/fwupd/libfwupd/fwupd-client.c:3968,1
    - Dst: g_dbus_message_set_body
      Src: /src/fwupd/libfwupd/fwupd-client.c:3971,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:3971,1
    - Dst: g_dbus_connection_send_message_with_reply
      Src: /src/fwupd/libfwupd/fwupd-client.c:3972,1
    - Dst: g_dbus_proxy_get_connection
      Src: /src/fwupd/libfwupd/fwupd-client.c:3972,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:3979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - self
    - istr
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GUnixInputStream*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3980
      start: 3945
    functionDepth: 0
    functionLinenumber: 3945
    functionLinenumberEnd: 3980
    functionName: fwupd_client_get_details_stream_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - g_dbus_proxy_get_connection
    - g_task_new
    - g_unix_fd_list_append
    - g_dbus_message_new_method_call
    - g_dbus_connection_send_message_with_reply
    - g_unix_input_stream_get_fd
    - g_dbus_message_set_unix_fd_list
    - g_steal_pointer
    - g_dbus_message_set_body
    - g_unix_fd_list_new
    - g_variant_new
    - g_autoptr
    - GET_PRIVATE
    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:4003,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4004,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4005,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4007,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4007,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4008,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4008,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4009,1
    - Dst: fwupd_unix_input_stream_from_bytes
      Src: /src/fwupd/libfwupd/fwupd-client.c:4012,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4014,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4014,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:4015,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4016,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4016,1
    - Dst: fwupd_client_get_details_stream_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:4021,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4023,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4023,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:4024,1
    - Dst: g_task_return_new_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:4025,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 5
    argNames:
    - self
    - bytes
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GBytes*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4030
      start: 3995
    functionDepth: 1
    functionLinenumber: 3995
    functionLinenumberEnd: 4030
    functionName: fwupd_client_get_details_bytes_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_task_return_error
    - fwupd_unix_input_stream_from_bytes
    - g_task_return_new_error_literal
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - fwupd_client_get_details_stream_async
    - g_autoptr
    - GET_PRIVATE
    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:4047,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4047,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4048,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:4048,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4049,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4050,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4051
      start: 4044
    functionDepth: 0
    functionLinenumber: 4044
    functionLinenumberEnd: 4051
    functionName: fwupd_client_get_details_bytes_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:4073,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4074,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4075,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4077,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4077,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4078,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4079,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4079,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4080,1
    - Dst: fwupd_unix_input_stream_from_fn
      Src: /src/fwupd/libfwupd/fwupd-client.c:4083,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4085,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4085,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:4086,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4087,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4087,1
    - Dst: fwupd_client_get_details_stream_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:4092,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4094,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4094,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:4095,1
    - Dst: g_task_return_new_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:4096,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 5
    argNames:
    - self
    - filename
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4101
      start: 4065
    functionDepth: 1
    functionLinenumber: 4065
    functionLinenumberEnd: 4101
    functionName: fwupd_client_get_details_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_task_return_error
    - g_task_return_new_error_literal
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - fwupd_client_get_details_stream_async
    - g_autoptr
    - fwupd_unix_input_stream_from_fn
    - GET_PRIVATE
    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:4118,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4118,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4119,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:4119,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4120,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4121,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4122
      start: 4115
    functionDepth: 0
    functionLinenumber: 4115
    functionLinenumberEnd: 4122
    functionName: fwupd_client_get_details_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:4137,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4138,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4140
      start: 4134
    functionDepth: 0
    functionLinenumber: 4134
    functionLinenumberEnd: 4140
    functionName: fwupd_client_get_percentage
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    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:4155,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4156,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4158
      start: 4152
    functionDepth: 0
    functionLinenumber: 4152
    functionLinenumberEnd: 4158
    functionName: fwupd_client_get_percentage_full
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    linkageType: ''
    returnType: gdouble
    signature: gdouble fwupd_client_get_percentage_full(FwupdClient *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4173,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4174,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4176
      start: 4170
    functionDepth: 0
    functionLinenumber: 4170
    functionLinenumberEnd: 4176
    functionName: fwupd_client_get_daemon_version
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    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:4191,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4192,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4194
      start: 4188
    functionDepth: 0
    functionLinenumber: 4188
    functionLinenumberEnd: 4194
    functionName: fwupd_client_get_host_bkc
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    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:4209,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4210,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4212
      start: 4206
    functionDepth: 0
    functionLinenumber: 4206
    functionLinenumberEnd: 4212
    functionName: fwupd_client_get_host_product
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    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:4227,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4228,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4230
      start: 4224
    functionDepth: 0
    functionLinenumber: 4224
    functionLinenumberEnd: 4230
    functionName: fwupd_client_get_host_vendor
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    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:4245,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4246,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4248
      start: 4242
    functionDepth: 0
    functionLinenumber: 4242
    functionLinenumberEnd: 4248
    functionName: fwupd_client_get_host_machine_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    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:4263,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4264,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4266
      start: 4260
    functionDepth: 0
    functionLinenumber: 4260
    functionLinenumberEnd: 4266
    functionName: fwupd_client_get_host_security_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_client_get_host_security_id(FwupdClient *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4281,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4282,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4282,1
    - Dst: g_strdupv
      Src: /src/fwupd/libfwupd/fwupd-client.c:4284,1
    - Dst: g_strdupv
      Src: /src/fwupd/libfwupd/fwupd-client.c:4286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - keys
    - values
    argTypes:
    - FwupdClient*
    - GStrv*
    - GStrv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4287
      start: 4278
    functionDepth: 0
    functionLinenumber: 4278
    functionLinenumberEnd: 4287
    functionName: fwupd_client_get_hwids
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_strdupv
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_hwids(FwupdClient *self, GStrv *keys, GStrv *values)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4302,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4303,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4305
      start: 4299
    functionDepth: 0
    functionLinenumber: 4299
    functionLinenumberEnd: 4305
    functionName: fwupd_client_get_battery_level
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    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:4321,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4322,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4324
      start: 4318
    functionDepth: 0
    functionLinenumber: 4318
    functionLinenumberEnd: 4324
    functionName: fwupd_client_get_battery_threshold
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    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:4339,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4340,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4342
      start: 4336
    functionDepth: 0
    functionLinenumber: 4336
    functionLinenumberEnd: 4342
    functionName: fwupd_client_get_status
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    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:4357,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4358,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4360
      start: 4354
    functionDepth: 0
    functionLinenumber: 4354
    functionLinenumberEnd: 4360
    functionName: fwupd_client_get_tainted
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    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:4375,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4376,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4378
      start: 4372
    functionDepth: 0
    functionLinenumber: 4372
    functionLinenumberEnd: 4378
    functionName: fwupd_client_get_only_trusted
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    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:4393,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4394,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4396
      start: 4390
    functionDepth: 0
    functionLinenumber: 4390
    functionLinenumberEnd: 4396
    functionName: fwupd_client_get_daemon_interactive
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    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:4403,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4404,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4405,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4405,1
    - Dst: g_dbus_connection_send_message_with_reply_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:4407,1
    - Dst: G_DBUS_CONNECTION
      Src: /src/fwupd/libfwupd/fwupd-client.c:4407,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4411,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4412,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4412,1
    - Dst: g_dbus_message_to_gerror
      Src: /src/fwupd/libfwupd/fwupd-client.c:4415,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4416,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4417,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4417,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:4422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4423
      start: 4400
    functionDepth: 2
    functionLinenumber: 4400
    functionLinenumberEnd: 4423
    functionName: fwupd_client_update_metadata_stream_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_CONNECTION
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - g_dbus_connection_send_message_with_reply_finish
    - G_TASK
    - g_steal_pointer
    - g_dbus_message_to_gerror
    - g_task_return_boolean
    - g_autoptr
    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:4434,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4435,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4436,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4437,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4437,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:4440,1
    - Dst: g_unix_fd_list_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4443,1
    - Dst: g_unix_fd_list_append
      Src: /src/fwupd/libfwupd/fwupd-client.c:4444,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:4444,1
    - Dst: g_unix_fd_list_append
      Src: /src/fwupd/libfwupd/fwupd-client.c:4445,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:4445,1
    - Dst: g_dbus_message_new_method_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:4446,1
    - Dst: g_dbus_message_set_unix_fd_list
      Src: /src/fwupd/libfwupd/fwupd-client.c:4450,1
    - Dst: g_dbus_message_set_body
      Src: /src/fwupd/libfwupd/fwupd-client.c:4453,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4454,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:4456,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:4457,1
    - Dst: g_dbus_connection_send_message_with_reply
      Src: /src/fwupd/libfwupd/fwupd-client.c:4458,1
    - Dst: g_dbus_proxy_get_connection
      Src: /src/fwupd/libfwupd/fwupd-client.c:4458,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    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: 4466
      start: 4425
    functionDepth: 0
    functionLinenumber: 4425
    functionLinenumberEnd: 4466
    functionName: fwupd_client_update_metadata_stream_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - g_dbus_proxy_get_connection
    - g_task_new
    - g_unix_fd_list_append
    - g_dbus_message_new_method_call
    - g_dbus_connection_send_message_with_reply
    - g_unix_input_stream_get_fd
    - g_dbus_message_set_unix_fd_list
    - g_steal_pointer
    - g_dbus_message_set_body
    - g_unix_fd_list_new
    - g_variant_new
    - g_autoptr
    - GET_PRIVATE
    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:4502,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4503,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4504,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4505,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4507,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4507,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4508,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4509,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4510,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4511,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4511,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4512,1
    - Dst: fwupd_unix_input_stream_from_bytes
      Src: /src/fwupd/libfwupd/fwupd-client.c:4515,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4517,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4517,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:4518,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4519,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4519,1
    - Dst: fwupd_unix_input_stream_from_bytes
      Src: /src/fwupd/libfwupd/fwupd-client.c:4522,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4524,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4524,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:4525,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4526,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4526,1
    - Dst: fwupd_client_update_metadata_stream_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:4531,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4539,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4539,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:4540,1
    - Dst: g_task_return_new_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:4541,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    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: 4546
      start: 4492
    functionDepth: 1
    functionLinenumber: 4492
    functionLinenumberEnd: 4546
    functionName: fwupd_client_update_metadata_bytes_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_task_return_error
    - fwupd_unix_input_stream_from_bytes
    - g_task_return_new_error_literal
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - fwupd_client_update_metadata_stream_async
    - g_autoptr
    - GET_PRIVATE
    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:4563,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4563,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4564,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:4564,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4565,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:4566,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4567
      start: 4560
    functionDepth: 0
    functionLinenumber: 4560
    functionLinenumberEnd: 4567
    functionName: fwupd_client_update_metadata_bytes_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:4580,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:4582,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:4583,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:4584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - FwupdClientRefreshRemoteData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4585
      start: 4576
    functionDepth: 0
    functionLinenumber: 4576
    functionLinenumberEnd: 4585
    functionName: fwupd_client_refresh_remote_data_free
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_bytes_unref
    - g_free
    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:4590,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4591,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4591,1
    - Dst: fwupd_client_update_metadata_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:4594,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4594,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4595,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4595,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:4600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4601
      start: 4587
    functionDepth: 1
    functionLinenumber: 4587
    functionLinenumberEnd: 4601
    functionName: fwupd_client_refresh_remote_update_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - FWUPD_CLIENT
    - g_task_return_boolean
    - g_autoptr
    - fwupd_client_update_metadata_bytes_finish
    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:4606,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4607,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4608,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4608,1
    - Dst: g_task_get_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:4609,1
    - Dst: g_task_get_source_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:4610,1
    - Dst: g_task_get_cancellable
      Src: /src/fwupd/libfwupd/fwupd-client.c:4611,1
    - Dst: fwupd_client_download_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:4614,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4614,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4616,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:4618,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4619,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4619,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4622,1
    - Dst: fwupd_remote_get_checksum_metadata
      Src: /src/fwupd/libfwupd/fwupd-client.c:4625,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:4627,1
    - Dst: fwupd_remote_get_checksum_metadata
      Src: /src/fwupd/libfwupd/fwupd-client.c:4627,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupd/fwupd-client.c:4629,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:4630,1
    - Dst: fwupd_remote_get_checksum_metadata
      Src: /src/fwupd/libfwupd/fwupd-client.c:4630,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4631,1
    - Dst: fwupd_remote_get_checksum_metadata
      Src: /src/fwupd/libfwupd/fwupd-client.c:4635,1
    - Dst: fwupd_client_update_metadata_bytes_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:4642,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:4643,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4648,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4649
      start: 4603
    functionDepth: 2
    functionLinenumber: 4603
    functionLinenumberEnd: 4649
    functionName: fwupd_client_refresh_remote_metadata_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_update_metadata_bytes_async
    - g_strcmp0
    - g_task_get_cancellable
    - g_task_return_error
    - fwupd_remote_get_id
    - g_task_get_source_object
    - fwupd_client_download_bytes_finish
    - fwupd_checksum_guess_kind
    - G_TASK
    - g_steal_pointer
    - g_prefix_error
    - fwupd_remote_get_checksum_metadata
    - g_task_get_task_data
    - FWUPD_CLIENT
    - g_task_return_new_error
    - g_autoptr
    - g_compute_checksum_for_bytes
    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:4654,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4655,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4656,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4656,1
    - Dst: g_task_get_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:4657,1
    - Dst: g_task_get_source_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:4658,1
    - Dst: g_task_get_cancellable
      Src: /src/fwupd/libfwupd/fwupd-client.c:4659,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4660,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client.c:4660,1
    - Dst: fwupd_client_download_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:4663,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4663,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4665,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:4667,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4668,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4668,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4671,1
    - Dst: fwupd_remote_load_signature_bytes
      Src: /src/fwupd/libfwupd/fwupd-client.c:4672,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:4673,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4674,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4674,1
    - Dst: fwupd_remote_get_checksum
      Src: /src/fwupd/libfwupd/fwupd-client.c:4679,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:4681,1
    - Dst: fwupd_remote_get_checksum
      Src: /src/fwupd/libfwupd/fwupd-client.c:4681,1
    - Dst: g_compute_checksum_for_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:4682,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:4684,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:4685,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:4686,1
    - Dst: fwupd_remote_get_checksum
      Src: /src/fwupd/libfwupd/fwupd-client.c:4686,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:4687,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:4688,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:4689,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-client.c:4695,1
    - Dst: fwupd_remote_get_checksum_metadata
      Src: /src/fwupd/libfwupd/fwupd-client.c:4696,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/libfwupd/fwupd-client.c:4697,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/libfwupd/fwupd-client.c:4698,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupd/fwupd-client.c:4700,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/libfwupd/fwupd-client.c:4700,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:4701,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-client.c:4702,1
    - Dst: fwupd_remote_get_checksum_metadata
      Src: /src/fwupd/libfwupd/fwupd-client.c:4704,1
    - Dst: fwupd_remote_build_metadata_uri
      Src: /src/fwupd/libfwupd/fwupd-client.c:4707,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4709,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4709,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:4712,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4712,1
    - Dst: fwupd_client_download_bytes2_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:4714,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4719,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4720
      start: 4651
    functionDepth: 1
    functionLinenumber: 4651
    functionLinenumberEnd: 4720
    functionName: fwupd_client_refresh_remote_signature_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_load_signature_bytes
    - fwupd_remote_get_checksum
    - fwupd_client_download_bytes_finish
    - g_task_get_task_data
    - g_strdup_printf
    - fwupd_client_download_bytes2_async
    - g_task_return_boolean
    - g_task_get_cancellable
    - fwupd_remote_build_metadata_uri
    - g_prefix_error_literal
    - fwupd_remote_get_password
    - fwupd_checksum_guess_kind
    - g_ptr_array_new_with_free_func
    - g_compute_checksum_for_data
    - g_path_get_basename
    - g_info
    - fwupd_remote_get_id
    - fwupd_remote_has_flag
    - g_bytes_get_data
    - fwupd_remote_get_checksum_metadata
    - fwupd_remote_get_username
    - FWUPD_CLIENT
    - g_strcmp0
    - g_task_return_error
    - g_task_get_source_object
    - G_TASK
    - g_steal_pointer
    - g_prefix_error
    - fwupd_remote_get_metadata_uri
    - g_ptr_array_add
    - g_bytes_get_size
    - g_autoptr
    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:4749,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4750,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4752,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4752,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4753,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4753,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4754,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4754,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4756,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:4757,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client.c:4758,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:4760,1
    - Dst: g_task_set_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:4761,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4762,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:4766,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:4767,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:4768,1
    - Dst: fwupd_remote_kind_to_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:4769,1
    - Dst: fwupd_remote_get_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:4769,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:4770,1
    - Dst: fwupd_remote_get_metadata_uri_sig
      Src: /src/fwupd/libfwupd/fwupd-client.c:4775,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/libfwupd/fwupd-client.c:4776,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4777,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:4781,1
    - Dst: fwupd_remote_build_metadata_sig_uri
      Src: /src/fwupd/libfwupd/fwupd-client.c:4786,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4788,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4788,1
    - Dst: fwupd_client_download_bytes_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:4791,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4796,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 6
    argNames:
    - self
    - remote
    - download_flags
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - FwupdRemote*
    - FwupdClientDownloadFlags
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4797
      start: 4739
    functionDepth: 1
    functionLinenumber: 4739
    functionLinenumberEnd: 4797
    functionName: fwupd_client_refresh_remote_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - g_task_set_task_data
    - g_task_new
    - fwupd_remote_build_metadata_sig_uri
    - fwupd_remote_get_kind
    - FWUPD_IS_CLIENT
    - g_object_ref
    - g_task_return_boolean
    - fwupd_remote_get_metadata_uri_sig
    - G_IS_CANCELLABLE
    - g_new0
    - g_debug
    - fwupd_remote_get_id
    - fwupd_client_download_bytes_async
    - FWUPD_IS_REMOTE
    - fwupd_remote_kind_to_string
    - g_task_return_error
    - g_steal_pointer
    - g_return_if_fail
    - fwupd_remote_get_metadata_uri
    - g_task_return_new_error
    - g_autoptr
    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:4814,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4814,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4815,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:4815,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4816,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:4817,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4818
      start: 4811
    functionDepth: 0
    functionLinenumber: 4811
    functionLinenumberEnd: 4818
    functionName: fwupd_client_refresh_remote_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_refresh_remote_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4823,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4823,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4824,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4825,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4826,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:4828,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:4828,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4830,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4831,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4831,1
    - Dst: fwupd_codec_array_from_variant
      Src: /src/fwupd/libfwupd/fwupd-client.c:4834,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4836,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4836,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:4842,1
    - Dst: fwupd_remote_load_user_secrets
      Src: /src/fwupd/libfwupd/fwupd-client.c:4843,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4844,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4844,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4850,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4850,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4851
      start: 4820
    functionDepth: 2
    functionLinenumber: 4820
    functionLinenumberEnd: 4851
    functionName: fwupd_client_get_remotes_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - fwupd_remote_load_user_secrets
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - fwupd_codec_array_from_variant
    - G_DBUS_PROXY
    - g_autoptr
    - g_ptr_array_index
    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:4873,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4874,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4876,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4876,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4877,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4877,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4878,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4881,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:4882,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:4883,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4890,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: 4891
      start: 4867
    functionDepth: 0
    functionLinenumber: 4867
    functionLinenumberEnd: 4891
    functionName: fwupd_client_get_remotes_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:4908,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4908,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4909,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:4909,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4910,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4911,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4912
      start: 4905
    functionDepth: 0
    functionLinenumber: 4905
    functionLinenumberEnd: 4912
    functionName: fwupd_client_get_remotes_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:4917,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4918,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4918,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4919,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4920,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client.c:4920,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4921,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:4923,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:4923,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4925,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:4926,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4926,1
    - Dst: g_variant_get
      Src: /src/fwupd/libfwupd/fwupd-client.c:4930,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:4932,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:4932,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4935,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4935,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4936
      start: 4914
    functionDepth: 2
    functionLinenumber: 4914
    functionLinenumberEnd: 4936
    functionName: fwupd_client_get_approved_firmware_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_ptr_array_add
    - g_dbus_proxy_call_finish
    - g_autoptr
    - g_auto
    - G_DBUS_PROXY
    - g_ptr_array_new_with_free_func
    - g_variant_get
    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:4958,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:4959,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4961,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4961,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4962,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:4962,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4963,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:4966,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:4967,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:4968,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4976
      start: 4952
    functionDepth: 0
    functionLinenumber: 4952
    functionLinenumberEnd: 4976
    functionName: fwupd_client_get_approved_firmware_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:4993,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:4993,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:4994,1
    - Dst: g_task_is_valid
      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_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:4996,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:4996,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4997
      start: 4990
    functionDepth: 0
    functionLinenumber: 4990
    functionLinenumberEnd: 4997
    functionName: fwupd_client_get_approved_firmware_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:5002,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5002,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5003,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5004,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:5006,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:5006,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5008,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5009,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5009,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5014,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5015
      start: 4999
    functionDepth: 2
    functionLinenumber: 4999
    functionLinenumberEnd: 5015
    functionName: fwupd_client_set_approved_firmware_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - g_task_return_boolean
    - G_DBUS_PROXY
    - g_autoptr
    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:5036,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5037,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-client.c:5038,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5040,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5040,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5041,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5041,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5042,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5045,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:5046,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-client.c:5047,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:5049,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:5050,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:5052,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5054,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5059,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - self
    - checksums
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GPtrArray*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5060
      start: 5029
    functionDepth: 0
    functionLinenumber: 5029
    functionLinenumberEnd: 5060
    functionName: fwupd_client_set_approved_firmware_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_strdup
    - g_task_new
    - g_new0
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_auto
    - g_dbus_proxy_call
    - g_autoptr
    - g_ptr_array_index
    - GET_PRIVATE
    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:5077,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5077,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5078,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:5078,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5079,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5080,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5080,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5081
      start: 5074
    functionDepth: 0
    functionLinenumber: 5074
    functionLinenumberEnd: 5081
    functionName: fwupd_client_set_approved_firmware_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_set_approved_firmware_finish(FwupdClient *self,
      GAsyncResult *res, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5103,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5104,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5106,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5106,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5107,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5107,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5108,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5111,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:5112,1
    - Dst: g_task_return_new_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:5113,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: 5117
      start: 5097
    functionDepth: 0
    functionLinenumber: 5097
    functionLinenumberEnd: 5117
    functionName: fwupd_client_get_blocked_firmware_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_task_return_new_error_literal
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_autoptr
    - GET_PRIVATE
    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:5134,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5134,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5135,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:5135,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5136,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5137,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5138
      start: 5131
    functionDepth: 0
    functionLinenumber: 5131
    functionLinenumberEnd: 5138
    functionName: fwupd_client_get_blocked_firmware_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_client_get_blocked_firmware_finish(FwupdClient *self, GAsyncResult *res,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5159,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5160,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5162,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5162,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5163,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5163,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5164,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5166,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:5167,1
    - Dst: g_task_return_new_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:5168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - self
    - checksums
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GPtrArray*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5172
      start: 5152
    functionDepth: 0
    functionLinenumber: 5152
    functionLinenumberEnd: 5172
    functionName: fwupd_client_set_blocked_firmware_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_task_return_new_error_literal
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_autoptr
    - GET_PRIVATE
    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:5189,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5189,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5190,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:5190,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5191,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5192,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5193
      start: 5186
    functionDepth: 0
    functionLinenumber: 5186
    functionLinenumberEnd: 5193
    functionName: fwupd_client_set_blocked_firmware_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:5198,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5198,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5199,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5200,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:5202,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:5202,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5204,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5205,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5205,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5211
      start: 5195
    functionDepth: 2
    functionLinenumber: 5195
    functionLinenumberEnd: 5211
    functionName: fwupd_client_set_feature_flags_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - g_task_return_boolean
    - G_DBUS_PROXY
    - g_autoptr
    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:5234,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5235,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5237,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5237,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5238,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5238,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5239,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5242,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:5243,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:5244,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5246,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - self
    - feature_flags
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - FwupdFeatureFlags
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5252
      start: 5227
    functionDepth: 0
    functionLinenumber: 5227
    functionLinenumberEnd: 5252
    functionName: fwupd_client_set_feature_flags_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:5269,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5269,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5270,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:5270,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5271,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5272,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5273
      start: 5266
    functionDepth: 0
    functionLinenumber: 5266
    functionLinenumberEnd: 5273
    functionName: fwupd_client_set_feature_flags_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:5279,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5279,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5280,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5281,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:5283,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:5283,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5285,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5286,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5286,1
    - Dst: g_variant_get
      Src: /src/fwupd/libfwupd/fwupd-client.c:5291,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5292,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5293
      start: 5275
    functionDepth: 2
    functionLinenumber: 5275
    functionLinenumberEnd: 5293
    functionName: fwupd_client_self_sign_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - G_DBUS_PROXY
    - g_autoptr
    - g_variant_get
    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:5319,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5321,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5323,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5323,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5324,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5325,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5325,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5326,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:5329,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:5331,1
    - Dst: g_variant_new_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5334,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:5337,1
    - Dst: g_variant_new_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5337,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5341,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:5342,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:5343,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5345,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 6
    argNames:
    - self
    - value
    - flags
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - FwupdSelfSignFlags
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5351
      start: 5311
    functionDepth: 0
    functionLinenumber: 5311
    functionLinenumberEnd: 5351
    functionName: fwupd_client_self_sign_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_variant_builder_add
    - g_variant_builder_init
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new_boolean
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:5368,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5368,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5369,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:5369,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5370,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5371,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5372
      start: 5365
    functionDepth: 0
    functionLinenumber: 5365
    functionLinenumberEnd: 5372
    functionName: fwupd_client_self_sign_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:5377,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5377,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5378,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5379,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:5381,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:5381,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5383,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5384,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5384,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5390
      start: 5374
    functionDepth: 2
    functionLinenumber: 5374
    functionLinenumberEnd: 5390
    functionName: fwupd_client_modify_remote_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - g_task_return_boolean
    - G_DBUS_PROXY
    - g_autoptr
    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:5415,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5416,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5418,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5418,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5419,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5420,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5421,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5422,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5422,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5423,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5426,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:5427,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:5428,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5430,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    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: 5436
      start: 5406
    functionDepth: 0
    functionLinenumber: 5406
    functionLinenumberEnd: 5436
    functionName: fwupd_client_modify_remote_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:5453,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5453,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5454,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:5454,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5455,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5456,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5457
      start: 5450
    functionDepth: 0
    functionLinenumber: 5450
    functionLinenumberEnd: 5457
    functionName: fwupd_client_modify_remote_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:5462,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5462,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5463,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5464,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:5466,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:5466,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5468,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5469,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5469,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5475
      start: 5459
    functionDepth: 2
    functionLinenumber: 5459
    functionLinenumberEnd: 5475
    functionName: fwupd_client_clean_remote_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - g_task_return_boolean
    - G_DBUS_PROXY
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_client_clean_remote_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5496,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5497,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5499,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5499,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5500,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5501,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5501,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5502,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5505,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:5506,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:5507,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5509,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5514,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: 5515
      start: 5489
    functionDepth: 0
    functionLinenumber: 5489
    functionLinenumberEnd: 5515
    functionName: fwupd_client_clean_remote_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: "void fwupd_client_clean_remote_async(FwupdClient *self,\n\t\t\t\tconst
      gchar *remote_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:5532,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5532,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5533,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:5533,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5534,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5535,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5536
      start: 5529
    functionDepth: 0
    functionLinenumber: 5529
    functionLinenumberEnd: 5536
    functionName: fwupd_client_clean_remote_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_clean_remote_finish(FwupdClient *self, GAsyncResult
      *res, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5541,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5541,1
    - 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_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:5545,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:5545,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5547,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5548,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5548,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5554
      start: 5538
    functionDepth: 2
    functionLinenumber: 5538
    functionLinenumberEnd: 5554
    functionName: fwupd_client_modify_device_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - g_task_return_boolean
    - G_DBUS_PROXY
    - g_autoptr
    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:5580,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5581,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5583,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5583,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5584,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5585,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5586,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5587,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5587,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5588,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5591,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:5592,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:5593,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5595,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    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: 5601
      start: 5571
    functionDepth: 0
    functionLinenumber: 5571
    functionLinenumberEnd: 5601
    functionName: fwupd_client_modify_device_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:5618,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5618,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5619,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:5619,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5620,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:5621,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5622
      start: 5615
    functionDepth: 0
    functionLinenumber: 5615
    functionLinenumberEnd: 5622
    functionName: fwupd_client_modify_device_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:5628,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:5629,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:5629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - remotes
    - remote_id
    argTypes:
    - GPtrArray*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5633
      start: 5624
    functionDepth: 1
    functionLinenumber: 5624
    functionLinenumberEnd: 5633
    functionName: fwupd_client_get_remote_by_id_noref
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_strcmp0
    - g_ptr_array_index
    - fwupd_remote_get_id
    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:5639,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5639,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5640,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5641,1
    - Dst: g_task_get_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:5642,1
    - Dst: fwupd_client_get_remotes_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:5644,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5644,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5646,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5646,1
    - Dst: fwupd_client_get_remote_by_id_noref
      Src: /src/fwupd/libfwupd/fwupd-client.c:5650,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5652,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5661,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-client.c:5661,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5662
      start: 5635
    functionDepth: 1
    functionLinenumber: 5635
    functionLinenumberEnd: 5662
    functionName: fwupd_client_get_remote_by_id_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - fwupd_client_get_remotes_finish
    - g_task_return_error
    - fwupd_client_get_remote_by_id_noref
    - G_TASK
    - g_steal_pointer
    - g_task_get_task_data
    - g_object_ref
    - FWUPD_CLIENT
    - g_task_return_new_error
    - g_autoptr
    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:5683,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5684,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5686,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5686,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5687,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5688,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:5688,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5689,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5692,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:5693,1
    - Dst: g_task_set_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:5694,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:5694,1
    - Dst: fwupd_client_get_remotes_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:5695,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - self
    - remote_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5699
      start: 5676
    functionDepth: 1
    functionLinenumber: 5676
    functionLinenumberEnd: 5699
    functionName: fwupd_client_get_remote_by_id_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_set_task_data
    - g_strdup
    - g_task_new
    - fwupd_client_get_remotes_async
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_autoptr
    - GET_PRIVATE
    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:5716,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5716,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5717,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:5717,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5718,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5719,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:5719,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5720
      start: 5713
    functionDepth: 0
    functionLinenumber: 5713
    functionLinenumberEnd: 5720
    functionName: fwupd_client_get_remote_by_id_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:5735,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5737,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5737,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5738,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:5741,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:5744,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:5745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - user_agent
    argTypes:
    - FwupdClient*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5746
      start: 5732
    functionDepth: 0
    functionLinenumber: 5732
    functionLinenumberEnd: 5746
    functionName: fwupd_client_set_user_agent
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_free
    - GET_PRIVATE
    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:5763,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5764,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5766
      start: 5760
    functionDepth: 0
    functionLinenumber: 5760
    functionLinenumberEnd: 5766
    functionName: fwupd_client_get_user_agent
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    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:5791,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5793,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:5793,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5794,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:5795,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:5797,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:5798,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupd/fwupd-client.c:5799,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:5800,1
    - Dst: fwupd_client_rebuild_user_agent
      Src: /src/fwupd/libfwupd/fwupd-client.c:5801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - self
    - package_name
    - package_version
    argTypes:
    - FwupdClient*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5802
      start: 5786
    functionDepth: 3
    functionLinenumber: 5786
    functionLinenumberEnd: 5802
    functionName: fwupd_client_set_user_agent_for_package
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_path_get_basename
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_free
    - fwupd_client_rebuild_user_agent
    - GET_PRIVATE
    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:5809,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: 5811
      start: 5804
    functionDepth: 0
    functionLinenumber: 5804
    functionLinenumberEnd: 5811
    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:5821,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5822,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5823,1
    - Dst: fwupd_client_set_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:5826,1
    - Dst: fwupd_client_set_percentage
      Src: /src/fwupd/libfwupd/fwupd-client.c:5827,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupd/fwupd-client.c:5830,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-client.c:5831,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupd/fwupd-client.c:5832,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-client.c:5833,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:5835,1
    - Dst: g_subprocess_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5839,1
    - Dst: g_subprocess_communicate
      Src: /src/fwupd/libfwupd/fwupd-client.c:5842,1
    - Dst: g_subprocess_get_exit_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:5844,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:5846,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupd/fwupd-client.c:5847,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5848,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:5855,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - self
    - url
    - cancellable
    - error
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5856
      start: 5813
    functionDepth: 3
    functionLinenumber: 5813
    functionLinenumberEnd: 5856
    functionName: fwupd_client_download_ipfs
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strndup
    - g_set_error
    - g_bytes_get_data
    - g_steal_pointer
    - g_strdup_printf
    - fwupd_client_set_percentage
    - g_subprocess_communicate
    - fwupd_client_set_status
    - g_subprocess_get_exit_status
    - g_str_has_prefix
    - g_autoptr
    - g_subprocess_new
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5864,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5864,1
    - Dst: fwupd_client_is_localhost
      Src: /src/fwupd/libfwupd/fwupd-client.c:5867,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupd/fwupd-client.c:5867,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5868,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5869,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5871,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5872,1
    - Dst: fwupd_client_set_status
      Src: /src/fwupd/libfwupd/fwupd-client.c:5875,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:5876,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_percentage
      Src: /src/fwupd/libfwupd/fwupd-client.c:5883,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5885,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5894,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5901,1
    - Dst: curl_easy_strerror
      Src: /src/fwupd/libfwupd/fwupd-client.c:5905,1
    - Dst: curl_easy_getinfo
      Src: /src/fwupd/libfwupd/fwupd-client.c:5910,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:5911,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupd/fwupd-client.c:5913,1
    - Dst: MIN
      Src: /src/fwupd/libfwupd/fwupd-client.c:5913,1
    - Dst: g_str_is_ascii
      Src: /src/fwupd/libfwupd/fwupd-client.c:5914,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5915,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:5922,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupd/fwupd-client.c:5929,1
    - Dst: MIN
      Src: /src/fwupd/libfwupd/fwupd-client.c:5929,1
    - Dst: g_str_is_ascii
      Src: /src/fwupd/libfwupd/fwupd-client.c:5930,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5931,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5939,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupd/fwupd-client.c:5947,1
    - Dst: MIN
      Src: /src/fwupd/libfwupd/fwupd-client.c:5947,1
    - Dst: g_str_is_ascii
      Src: /src/fwupd/libfwupd/fwupd-client.c:5948,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5949,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5957,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:5965,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 4
    argNames:
    - self
    - curl
    - url
    - error
    argTypes:
    - FwupdClient*
    - CURL*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5966
      start: 5858
    functionDepth: 3
    functionLinenumber: 5858
    functionLinenumberEnd: 5966
    functionName: fwupd_client_download_http
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - g_getenv
    - curl_easy_setopt
    - curl_easy_getinfo
    - g_info
    - g_set_error
    - g_bytes_new
    - curl_easy_strerror
    - g_str_is_ascii
    - g_set_error_literal
    - fwupd_client_is_localhost
    - curl_easy_perform
    - g_byte_array_new
    - fwupd_client_set_percentage
    - MIN
    - fwupd_client_set_status
    - g_autoptr
    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:5971,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5974
      start: 5968
    functionDepth: 0
    functionLinenumber: 5968
    functionLinenumberEnd: 5974
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5980,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5981,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:5982,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupd/fwupd-client.c:5984,1
    - Dst: g_uri_parse
      Src: /src/fwupd/libfwupd/fwupd-client.c:5987,1
    - Dst: g_network_address_parse
      Src: /src/fwupd/libfwupd/fwupd-client.c:5991,1
    - Dst: g_uri_get_host
      Src: /src/fwupd/libfwupd/fwupd-client.c:5991,1
    - Dst: g_uri_get_port
      Src: /src/fwupd/libfwupd/fwupd-client.c:5991,1
    - Dst: g_network_monitor_get_default
      Src: /src/fwupd/libfwupd/fwupd-client.c:5995,1
    - Dst: g_network_monitor_can_reach
      Src: /src/fwupd/libfwupd/fwupd-client.c:5996,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:5997,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - url
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6006
      start: 5976
    functionDepth: 0
    functionLinenumber: 5976
    functionLinenumberEnd: 6006
    functionName: fwupd_client_test_network
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_uri_parse
    - g_getenv
    - g_network_monitor_can_reach
    - g_uri_get_port
    - g_set_error
    - g_uri_get_host
    - g_network_monitor_get_default
    - g_network_address_parse
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_test_network(const gchar *url, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6011,1
    - Dst: fwupd_client_test_network
      Src: /src/fwupd/libfwupd/fwupd-client.c:6015,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6019,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6020,1
    - Dst: fwupd_client_download_http
      Src: /src/fwupd/libfwupd/fwupd-client.c:6022,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6024,1
    - Dst: fwupd_client_download_error_is_fatal
      Src: /src/fwupd/libfwupd/fwupd-client.c:6026,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6027,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6027,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:6030,1
    - Dst: g_usleep
      Src: /src/fwupd/libfwupd/fwupd-client.c:6031,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - self
    - curl
    - url
    - error
    argTypes:
    - FwupdClient*
    - CURL*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6034
      start: 6008
    functionDepth: 4
    functionLinenumber: 6008
    functionLinenumberEnd: 6034
    functionName: fwupd_client_download_http_retry
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_usleep
    - fwupd_client_test_network
    - g_debug
    - g_steal_pointer
    - fwupd_client_download_error_is_fatal
    - fwupd_client_download_http
    - g_propagate_error
    - g_autoptr
    - GET_PRIVATE
    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:6041,1
    - Dst: g_task_get_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:6042,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6043,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:6046,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6047,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:6048,1
    - Dst: fwupd_client_curl_helper_set_proxy
      Src: /src/fwupd/libfwupd/fwupd-client.c:6049,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6050,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6050,1
    - Dst: fwupd_client_is_url_http
      Src: /src/fwupd/libfwupd/fwupd-client.c:6053,1
    - Dst: fwupd_client_download_http_retry
      Src: /src/fwupd/libfwupd/fwupd-client.c:6054,1
    - Dst: fwupd_client_is_url_ipfs
      Src: /src/fwupd/libfwupd/fwupd-client.c:6057,1
    - Dst: fwupd_client_download_ipfs
      Src: /src/fwupd/libfwupd/fwupd-client.c:6058,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6062,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6070,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6070,1
    - Dst: fwupd_client_set_percentage
      Src: /src/fwupd/libfwupd/fwupd-client.c:6073,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:6074,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6076,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6076,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - task
    - source_object
    - task_data
    - cancellable
    argTypes:
    - GTask*
    - gpointer
    - gpointer
    - GCancellable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6077
      start: 6035
    functionDepth: 5
    functionLinenumber: 6035
    functionLinenumberEnd: 6077
    functionName: fwupd_client_download_bytes_thread_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - fwupd_client_download_http_retry
    - g_task_return_error
    - fwupd_client_download_ipfs
    - g_info
    - fwupd_client_is_url_http
    - fwupd_client_is_url_ipfs
    - g_set_error
    - g_steal_pointer
    - g_task_get_task_data
    - fwupd_client_set_percentage
    - FWUPD_CLIENT
    - fwupd_client_curl_helper_set_proxy
    - g_autoptr
    - g_ptr_array_index
    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:6088,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6089,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6090,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6092,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6092,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6093,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6094,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6094,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6097,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:6098,1
    - Dst: fwupd_client_curl_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6099,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6101,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6101,1
    - Dst: fwupd_client_filter_locations
      Src: /src/fwupd/libfwupd/fwupd-client.c:6104,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6106,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6106,1
    - Dst: g_task_set_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:6109,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6110,1
    - Dst: g_task_run_in_thread
      Src: /src/fwupd/libfwupd/fwupd-client.c:6114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 6
    argNames:
    - self
    - urls
    - flags
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - GPtrArray*
    - FwupdClientDownloadFlags
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6115
      start: 6080
    functionDepth: 3
    functionLinenumber: 6080
    functionLinenumberEnd: 6115
    functionName: fwupd_client_download_bytes2_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 3
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_set_task_data
    - g_task_new
    - g_task_return_error
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_task_run_in_thread
    - fwupd_client_curl_new
    - fwupd_client_filter_locations
    - g_autoptr
    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:6146,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client.c:6146,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6148,1
    - Dst: FWUPD_IS_CLIENT
      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_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-client.c:6153,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:6153,1
    - Dst: fwupd_client_download_bytes2_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:6154,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: 6155
      start: 6138
    functionDepth: 4
    functionLinenumber: 6138
    functionLinenumberEnd: 6155
    functionName: fwupd_client_download_bytes_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - G_IS_CANCELLABLE
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_ptr_array_add
    - fwupd_client_download_bytes2_async
    - g_autoptr
    - g_ptr_array_new_with_free_func
    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:6172,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6172,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6173,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:6173,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6174,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6175,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6176
      start: 6169
    functionDepth: 0
    functionLinenumber: 6169
    functionLinenumberEnd: 6176
    functionName: fwupd_client_download_bytes_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:6184,1
    - Dst: g_task_get_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:6185,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6188,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6188,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:6190,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:6191,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:6194,1
    - Dst: curl_easy_perform
      Src: /src/fwupd/libfwupd/fwupd-client.c:6195,1
    - Dst: fwupd_client_set_percentage
      Src: /src/fwupd/libfwupd/fwupd-client.c:6196,1
    - Dst: curl_easy_getinfo
      Src: /src/fwupd/libfwupd/fwupd-client.c:6199,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:6200,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6202,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6209,1
    - Dst: curl_easy_strerror
      Src: /src/fwupd/libfwupd/fwupd-client.c:6213,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6217,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6218,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: 6220
      start: 6178
    functionDepth: 3
    functionLinenumber: 6178
    functionLinenumberEnd: 6220
    functionName: fwupd_client_upload_bytes_thread_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - curl_easy_setopt
    - curl_easy_getinfo
    - g_info
    - g_bytes_new
    - curl_easy_strerror
    - g_task_get_task_data
    - curl_easy_perform
    - g_byte_array_new
    - fwupd_client_set_percentage
    - FWUPD_CLIENT
    - g_task_return_new_error
    - g_autoptr
    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:6255,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6256,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6257,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6258,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6260,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6260,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6261,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6262,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6263,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6263,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6264,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6267,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:6268,1
    - Dst: fwupd_client_curl_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6269,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6271,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6271,1
    - Dst: curl_mime_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:6278,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:6279,1
    - Dst: curl_mime_addpart
      Src: /src/fwupd/libfwupd/fwupd-client.c:6280,1
    - Dst: curl_mime_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:6281,1
    - Dst: curl_mime_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6282,1
    - Dst: curl_mime_addpart
      Src: /src/fwupd/libfwupd/fwupd-client.c:6284,1
    - Dst: curl_mime_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:6285,1
    - Dst: curl_mime_name
      Src: /src/fwupd/libfwupd/fwupd-client.c:6286,1
    - Dst: curl_slist_append
      Src: /src/fwupd/libfwupd/fwupd-client.c:6289,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:6290,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:6291,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:6292,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-client.c:6292,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:6293,1
    - Dst: fwupd_client_is_localhost
      Src: /src/fwupd/libfwupd/fwupd-client.c:6297,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupd/fwupd-client.c:6297,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:6298,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:6299,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:6301,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:6302,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:6305,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/libfwupd/fwupd-client.c:6306,1
    - Dst: g_task_set_task_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:6307,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6308,1
    - Dst: g_task_run_in_thread
      Src: /src/fwupd/libfwupd/fwupd-client.c:6310,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: 6311
      start: 6245
    functionDepth: 2
    functionLinenumber: 6245
    functionLinenumberEnd: 6311
    functionName: fwupd_client_upload_bytes_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - g_task_set_task_data
    - g_task_new
    - curl_mime_init
    - FWUPD_IS_CLIENT
    - G_IS_CANCELLABLE
    - g_task_run_in_thread
    - GET_PRIVATE
    - g_getenv
    - curl_easy_setopt
    - g_info
    - curl_mime_name
    - fwupd_client_is_localhost
    - fwupd_client_curl_new
    - curl_mime_addpart
    - curl_mime_data
    - g_task_return_error
    - curl_slist_append
    - g_steal_pointer
    - g_return_if_fail
    - strlen
    - g_autoptr
    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:6328,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6328,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6329,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:6329,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6330,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6331,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6332
      start: 6325
    functionDepth: 0
    functionLinenumber: 6325
    functionLinenumberEnd: 6332
    functionName: fwupd_client_upload_bytes_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fwupd_client_upload_bytes_finish(FwupdClient *self, GAsyncResult *res, GError
      **error)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6341,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6342,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6343,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6343,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6344,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6345,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6346,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6346,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/libfwupd/fwupd-client.c:6349,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/libfwupd/fwupd-client.c:6350,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/libfwupd/fwupd-client.c:6351,1
    - Dst: fwupd_client_upload_bytes_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:6354,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6354,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:6356,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6357,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6357,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:6362,1
    - Dst: g_task_return_new_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:6363,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupd/fwupd-client.c:6371,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:6371,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:6371,1
    - Dst: fwupd_json_parser_load_from_data
      Src: /src/fwupd/libfwupd/fwupd-client.c:6372,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6374,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:6382,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6384,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6384,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:6389,1
    - Dst: fwupd_json_object_get_boolean_with_default
      Src: /src/fwupd/libfwupd/fwupd-client.c:6392,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6397,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6397,1
    - Dst: g_task_return_new_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6401,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-client.c:6411,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:6412,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:6412,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:6417,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6420,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6420,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 49
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6421
      start: 6334
    functionDepth: 1
    functionLinenumber: 6334
    functionLinenumberEnd: 6421
    functionName: fwupd_client_upload_report_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - fwupd_json_parser_set_max_quoted
    - fwupd_json_object_get_boolean_with_default
    - fwupd_json_parser_set_max_items
    - g_prefix_error_literal
    - fwupd_client_upload_bytes_finish
    - g_task_return_pointer
    - g_info
    - g_bytes_get_data
    - fwupd_json_parser_new
    - FWUPD_CLIENT
    - fwupd_json_object_get_string
    - fwupd_json_node_get_object
    - g_strdup
    - g_strndup
    - g_task_return_error
    - g_task_return_new_error_literal
    - G_TASK
    - g_steal_pointer
    - fwupd_json_parser_load_from_data
    - g_bytes_get_size
    - g_task_return_new_error
    - g_autoptr
    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:6456,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6457,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6459,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6459,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6460,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6461,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6462,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6462,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6463,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6465,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:6466,1
    - Dst: fwupd_client_upload_bytes_async
      Src: /src/fwupd/libfwupd/fwupd-client.c:6467,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    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: 6475
      start: 6446
    functionDepth: 3
    functionLinenumber: 6446
    functionLinenumberEnd: 6475
    functionName: fwupd_client_upload_report_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_autoptr
    - fwupd_client_upload_bytes_async
    - GET_PRIVATE
    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:6492,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6492,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6493,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:6493,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6494,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6495,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6496
      start: 6489
    functionDepth: 0
    functionLinenumber: 6489
    functionLinenumberEnd: 6496
    functionName: fwupd_client_upload_report_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:6502,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6502,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6503,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6504,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:6506,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:6506,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6508,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6509,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6509,1
    - Dst: g_variant_get
      Src: /src/fwupd/libfwupd/fwupd-client.c:6514,1
    - Dst: g_task_return_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6515,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6516
      start: 6498
    functionDepth: 2
    functionLinenumber: 6498
    functionLinenumberEnd: 6516
    functionName: fwupd_client_inhibit_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_task_return_pointer
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - G_DBUS_PROXY
    - g_autoptr
    - g_variant_get
    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:6540,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6541,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6543,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6543,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6544,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6545,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6545,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6546,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6549,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:6550,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:6551,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6553,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - self
    - reason
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6559
      start: 6533
    functionDepth: 0
    functionLinenumber: 6533
    functionLinenumberEnd: 6559
    functionName: fwupd_client_inhibit_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:6577,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6577,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6578,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:6578,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6579,1
    - Dst: g_task_propagate_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6580,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6581
      start: 6574
    functionDepth: 0
    functionLinenumber: 6574
    functionLinenumberEnd: 6581
    functionName: fwupd_client_inhibit_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - g_task_propagate_pointer
    - G_TASK
    - FWUPD_IS_CLIENT
    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:6586,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6586,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6587,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6588,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:6590,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:6590,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6592,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6593,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6593,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:6598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6599
      start: 6583
    functionDepth: 2
    functionLinenumber: 6583
    functionLinenumberEnd: 6599
    functionName: fwupd_client_uninhibit_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - g_task_return_boolean
    - G_DBUS_PROXY
    - g_autoptr
    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:6620,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6621,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6623,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6623,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6624,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6625,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6625,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6626,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6629,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:6630,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:6631,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6633,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - self
    - inhibit_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6639
      start: 6613
    functionDepth: 0
    functionLinenumber: 6613
    functionLinenumberEnd: 6639
    functionName: fwupd_client_uninhibit_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:6656,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6656,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6657,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:6657,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6658,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:6659,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6660
      start: 6653
    functionDepth: 0
    functionLinenumber: 6653
    functionLinenumberEnd: 6660
    functionName: fwupd_client_uninhibit_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:6675,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6677,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6677,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6678,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-client.c:6680,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:6680,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-client.c:6680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdClient*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6681
      start: 6672
    functionDepth: 0
    functionLinenumber: 6672
    functionLinenumberEnd: 6681
    functionName: fwupd_client_add_hint
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - GET_PRIVATE
    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:6687,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6687,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6688,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6689,1
    - Dst: g_dbus_connection_send_message_with_reply_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:6691,1
    - Dst: G_DBUS_CONNECTION
      Src: /src/fwupd/libfwupd/fwupd-client.c:6691,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_dbus_message_to_gerror
      Src: /src/fwupd/libfwupd/fwupd-client.c:6699,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6700,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6701,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6701,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:6706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6707
      start: 6684
    functionDepth: 2
    functionLinenumber: 6684
    functionLinenumberEnd: 6707
    functionName: fwupd_client_emulation_load_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_CONNECTION
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - g_dbus_connection_send_message_with_reply_finish
    - G_TASK
    - g_steal_pointer
    - g_dbus_message_to_gerror
    - g_task_return_boolean
    - g_autoptr
    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:6732,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6733,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6734,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6735,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6735,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6736,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6737,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6739,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6739,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6740,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6741,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6741,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6742,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:6745,1
    - Dst: fwupd_unix_input_stream_from_fn
      Src: /src/fwupd/libfwupd/fwupd-client.c:6747,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6749,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6749,1
    - Dst: g_unix_fd_list_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6754,1
    - Dst: g_unix_fd_list_append
      Src: /src/fwupd/libfwupd/fwupd-client.c:6755,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:6755,1
    - Dst: g_dbus_message_new_method_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:6756,1
    - Dst: g_dbus_message_set_unix_fd_list
      Src: /src/fwupd/libfwupd/fwupd-client.c:6760,1
    - Dst: g_dbus_message_set_body
      Src: /src/fwupd/libfwupd/fwupd-client.c:6763,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6763,1
    - Dst: g_unix_input_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:6763,1
    - Dst: g_dbus_connection_send_message_with_reply
      Src: /src/fwupd/libfwupd/fwupd-client.c:6764,1
    - Dst: g_dbus_proxy_get_connection
      Src: /src/fwupd/libfwupd/fwupd-client.c:6764,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6771,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6773,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6773,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:6774,1
    - Dst: g_task_return_new_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:6775,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 5
    argNames:
    - self
    - filename
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6780
      start: 6724
    functionDepth: 1
    functionLinenumber: 6724
    functionLinenumberEnd: 6780
    functionName: fwupd_client_emulation_load_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - g_task_new
    - g_unix_fd_list_append
    - g_dbus_message_new_method_call
    - FWUPD_IS_CLIENT
    - g_variant_new
    - G_IS_CANCELLABLE
    - g_dbus_connection_send_message_with_reply
    - fwupd_unix_input_stream_from_fn
    - GET_PRIVATE
    - g_dbus_proxy_get_connection
    - g_unix_input_stream_get_fd
    - g_task_return_error
    - g_task_return_new_error_literal
    - g_steal_pointer
    - g_return_if_fail
    - g_dbus_message_set_unix_fd_list
    - g_dbus_message_set_body
    - g_unix_fd_list_new
    - g_autoptr
    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:6797,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6797,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6798,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:6798,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6799,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:6800,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6801
      start: 6794
    functionDepth: 0
    functionLinenumber: 6794
    functionLinenumberEnd: 6801
    functionName: fwupd_client_emulation_load_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:6807,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6807,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6808,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6809,1
    - Dst: g_dbus_connection_send_message_with_reply_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:6811,1
    - Dst: G_DBUS_CONNECTION
      Src: /src/fwupd/libfwupd/fwupd-client.c:6811,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6815,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6816,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6816,1
    - Dst: g_dbus_message_to_gerror
      Src: /src/fwupd/libfwupd/fwupd-client.c:6819,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6820,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6821,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6821,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:6826,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6827
      start: 6804
    functionDepth: 2
    functionLinenumber: 6804
    functionLinenumberEnd: 6827
    functionName: fwupd_client_emulation_save_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - G_DBUS_CONNECTION
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - g_dbus_connection_send_message_with_reply_finish
    - G_TASK
    - g_steal_pointer
    - g_dbus_message_to_gerror
    - g_task_return_boolean
    - g_autoptr
    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:6860,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6861,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6862,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6863,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6863,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6864,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6865,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6867,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6867,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6868,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6869,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6869,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6870,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:6873,1
    - Dst: fwupd_unix_output_stream_from_fn
      Src: /src/fwupd/libfwupd/fwupd-client.c:6875,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6877,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6877,1
    - Dst: g_unix_fd_list_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6882,1
    - Dst: g_unix_fd_list_append
      Src: /src/fwupd/libfwupd/fwupd-client.c:6883,1
    - Dst: g_unix_output_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:6883,1
    - Dst: g_dbus_message_new_method_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:6884,1
    - Dst: g_dbus_message_set_unix_fd_list
      Src: /src/fwupd/libfwupd/fwupd-client.c:6888,1
    - Dst: g_dbus_message_set_body
      Src: /src/fwupd/libfwupd/fwupd-client.c:6891,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6891,1
    - Dst: g_unix_output_stream_get_fd
      Src: /src/fwupd/libfwupd/fwupd-client.c:6891,1
    - Dst: g_dbus_connection_send_message_with_reply
      Src: /src/fwupd/libfwupd/fwupd-client.c:6892,1
    - Dst: g_dbus_proxy_get_connection
      Src: /src/fwupd/libfwupd/fwupd-client.c:6892,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6899,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6901,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6901,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:6902,1
    - Dst: g_task_return_new_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:6903,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 5
    argNames:
    - self
    - filename
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6908
      start: 6852
    functionDepth: 1
    functionLinenumber: 6852
    functionLinenumberEnd: 6908
    functionName: fwupd_client_emulation_save_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - g_task_new
    - g_unix_fd_list_append
    - g_dbus_message_new_method_call
    - FWUPD_IS_CLIENT
    - g_variant_new
    - G_IS_CANCELLABLE
    - g_dbus_connection_send_message_with_reply
    - GET_PRIVATE
    - g_dbus_proxy_get_connection
    - g_unix_output_stream_get_fd
    - g_task_return_error
    - fwupd_unix_output_stream_from_fn
    - g_task_return_new_error_literal
    - g_steal_pointer
    - g_return_if_fail
    - g_dbus_message_set_unix_fd_list
    - g_dbus_message_set_body
    - g_unix_fd_list_new
    - g_autoptr
    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:6925,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6925,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6926,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:6926,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6927,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:6928,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6929
      start: 6922
    functionDepth: 0
    functionLinenumber: 6922
    functionLinenumberEnd: 6929
    functionName: fwupd_client_emulation_save_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:6934,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:6934,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6935,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6936,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:6938,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:6938,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6940,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:6941,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6941,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:6946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6947
      start: 6931
    functionDepth: 2
    functionLinenumber: 6931
    functionLinenumberEnd: 6947
    functionName: fwupd_client_fix_host_security_attr_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - g_task_return_boolean
    - G_DBUS_PROXY
    - g_autoptr
    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:6968,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:6969,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6971,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6972,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:6972,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6973,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:6973,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:6974,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6977,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:6978,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:6979,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:6981,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:6986,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - self
    - appstream_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6987
      start: 6961
    functionDepth: 0
    functionLinenumber: 6961
    functionLinenumberEnd: 6987
    functionName: fwupd_client_fix_host_security_attr_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:7004,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:7004,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7005,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:7005,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7006,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:7007,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:7007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7008
      start: 7001
    functionDepth: 0
    functionLinenumber: 7001
    functionLinenumberEnd: 7008
    functionName: fwupd_client_fix_host_security_attr_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    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:7013,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:7013,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7014,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7015,1
    - Dst: g_dbus_proxy_call_finish
      Src: /src/fwupd/libfwupd/fwupd-client.c:7017,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupd/fwupd-client.c:7017,1
    - Dst: fwupd_client_fixup_dbus_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:7019,1
    - Dst: g_task_return_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:7020,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:7020,1
    - Dst: g_task_return_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:7025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7026
      start: 7010
    functionDepth: 2
    functionLinenumber: 7010
    functionLinenumberEnd: 7026
    functionName: fwupd_client_undo_host_security_attr_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_fixup_dbus_error
    - g_task_return_error
    - G_TASK
    - g_steal_pointer
    - g_dbus_proxy_call_finish
    - g_task_return_boolean
    - G_DBUS_PROXY
    - g_autoptr
    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:7047,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7048,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7050,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7051,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:7051,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7052,1
    - Dst: G_IS_CANCELLABLE
      Src: /src/fwupd/libfwupd/fwupd-client.c:7052,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7053,1
    - Dst: g_task_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7056,1
    - Dst: g_task_set_source_tag
      Src: /src/fwupd/libfwupd/fwupd-client.c:7057,1
    - Dst: g_dbus_proxy_call
      Src: /src/fwupd/libfwupd/fwupd-client.c:7058,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7060,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:7065,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - self
    - appstream_id
    - cancellable
    - callback
    - callback_data
    argTypes:
    - FwupdClient*
    - gchar*
    - GCancellable*
    - GAsyncReadyCallback
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7066
      start: 7040
    functionDepth: 0
    functionLinenumber: 7040
    functionLinenumberEnd: 7066
    functionName: fwupd_client_undo_host_security_attr_async
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_task_set_source_tag
    - G_IS_CANCELLABLE
    - g_task_new
    - g_steal_pointer
    - g_return_if_fail
    - FWUPD_IS_CLIENT
    - g_variant_new
    - g_dbus_proxy_call
    - g_autoptr
    - GET_PRIVATE
    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:7083,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:7083,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7084,1
    - Dst: g_task_is_valid
      Src: /src/fwupd/libfwupd/fwupd-client.c:7084,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7085,1
    - Dst: g_task_propagate_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:7086,1
    - Dst: G_TASK
      Src: /src/fwupd/libfwupd/fwupd-client.c:7086,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - res
    - error
    argTypes:
    - FwupdClient*
    - GAsyncResult*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7087
      start: 7080
    functionDepth: 0
    functionLinenumber: 7080
    functionLinenumberEnd: 7087
    functionName: fwupd_client_undo_host_security_attr_finish
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_task_is_valid
    - G_TASK
    - g_task_propagate_boolean
    - FWUPD_IS_CLIENT
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_client_undo_host_security_attr_finish(FwupdClient *self,
      GAsyncResult *res, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:7114,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7115,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7116,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7116,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7117,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7117,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7119,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:7119,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7120,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7121,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7122,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7124,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-client.c:7125,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7127,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:7130,1
    - Dst: fwupd_json_object_add_object_map
      Src: /src/fwupd/libfwupd/fwupd-client.c:7131,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:7135,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7136,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-client.c:7138,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-client.c:7139,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:7140,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7140,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7143,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupd/fwupd-client.c:7144,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-client.c:7144,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:7145,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-client.c:7147,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:7150,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:7151,1
    - Dst: fwupd_json_object_to_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7159,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7160,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:7160,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 4
    argNames:
    - self
    - devices
    - metadata
    - error
    argTypes:
    - FwupdClient*
    - GPtrArray*
    - GHashTable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7161
      start: 7108
    functionDepth: 1
    functionLinenumber: 7108
    functionLinenumberEnd: 7161
    functionName: fwupd_client_build_report_devices
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - fwupd_json_object_add_array
    - fwupd_json_object_add_object_map
    - FWUPD_CODEC
    - g_hash_table_size
    - FWUPD_IS_CLIENT
    - fwupd_json_array_new
    - g_ptr_array_index
    - g_debug
    - fwupd_json_array_get_size
    - fwupd_json_object_new
    - g_set_error_literal
    - fwupd_codec_to_json
    - fwupd_json_object_add_integer
    - fwupd_json_array_add_object
    - GET_PRIVATE
    - fwupd_device_get_id
    - fwupd_json_object_add_string
    - fwupd_json_object_to_string
    - g_return_val_if_fail
    - g_steal_pointer
    - g_string_free
    - fwupd_device_has_flag
    - g_autoptr
    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:7166,1
    - Dst: fwupd_release_get_metadata
      Src: /src/fwupd/libfwupd/fwupd-client.c:7168,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7171,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7171,1
    - Dst: fwupd_release_get_checksums
      Src: /src/fwupd/libfwupd/fwupd-client.c:7174,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupd/fwupd-client.c:7175,1
    - Dst: fwupd_checksum_get_by_kind
      Src: /src/fwupd/libfwupd/fwupd-client.c:7176,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7178,1
    - Dst: fwupd_device_get_checksums
      Src: /src/fwupd/libfwupd/fwupd-client.c:7184,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7186,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7186,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:7188,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7189,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-client.c:7191,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7195,1
    - Dst: fwupd_release_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7195,1
    - Dst: fwupd_release_get_protocol
      Src: /src/fwupd/libfwupd/fwupd-client.c:7198,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7199,1
    - Dst: fwupd_release_get_protocol
      Src: /src/fwupd/libfwupd/fwupd-client.c:7199,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-client.c:7203,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/libfwupd/fwupd-client.c:7203,1
    - Dst: fwupd_device_get_update_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:7204,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7205,1
    - Dst: fwupd_device_get_update_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:7207,1
    - Dst: fwupd_release_get_update_message
      Src: /src/fwupd/libfwupd/fwupd-client.c:7209,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7210,1
    - Dst: fwupd_release_get_update_message
      Src: /src/fwupd/libfwupd/fwupd-client.c:7212,1
    - Dst: fwupd_device_get_install_duration
      Src: /src/fwupd/libfwupd/fwupd-client.c:7216,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-client.c:7217,1
    - Dst: fwupd_device_get_install_duration
      Src: /src/fwupd/libfwupd/fwupd-client.c:7219,1
    - Dst: fwupd_device_get_guids
      Src: /src/fwupd/libfwupd/fwupd-client.c:7223,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7225,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7225,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:7227,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7228,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-client.c:7230,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7233,1
    - Dst: fwupd_device_get_plugin
      Src: /src/fwupd/libfwupd/fwupd-client.c:7233,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7236,1
    - Dst: fwupd_device_get_version
      Src: /src/fwupd/libfwupd/fwupd-client.c:7236,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7237,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/libfwupd/fwupd-client.c:7237,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-client.c:7240,1
    - Dst: fwupd_device_get_flags
      Src: /src/fwupd/libfwupd/fwupd-client.c:7240,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-client.c:7243,1
    - Dst: fwupd_device_get_created
      Src: /src/fwupd/libfwupd/fwupd-client.c:7243,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-client.c:7244,1
    - Dst: fwupd_device_get_modified
      Src: /src/fwupd/libfwupd/fwupd-client.c:7244,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:7247,1
    - Dst: fwupd_json_object_add_object_map
      Src: /src/fwupd/libfwupd/fwupd-client.c:7248,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:7251,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 1
    argNames:
    - dev
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7252
      start: 7163
    functionDepth: 1
    functionLinenumber: 7163
    functionLinenumberEnd: 7252
    functionName: fwupd_client_build_report_history_device
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - fwupd_json_object_add_object_map
    - fwupd_device_get_guids
    - fwupd_device_get_install_duration
    - fwupd_device_get_plugin
    - g_hash_table_size
    - fwupd_json_array_new
    - fwupd_device_get_update_state
    - g_ptr_array_index
    - fwupd_checksum_get_by_kind
    - fwupd_json_object_new
    - fwupd_json_array_add_string
    - fwupd_json_object_add_integer
    - fwupd_device_get_release_default
    - fwupd_device_get_checksums
    - fwupd_release_get_protocol
    - fwupd_release_get_checksums
    - fwupd_device_get_version
    - fwupd_release_get_update_message
    - fwupd_device_get_update_error
    - fwupd_json_object_add_string
    - fwupd_device_get_flags
    - fwupd_release_get_metadata
    - fwupd_device_get_modified
    - g_steal_pointer
    - fwupd_release_get_id
    - G_N_ELEMENTS
    - fwupd_device_get_created
    - g_autoptr
    - fwupd_release_get_version
    linkageType: ''
    returnType: FwupdJsonObject
    signature: 'FwupdJsonObject *

      fwupd_client_build_report_history_device(FwupdDevice *dev)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:7281,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7282,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7283,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7283,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7284,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7284,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7286,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:7286,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7287,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7288,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-client.c:7288,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7289,1
    - Dst: fwupd_remote_get_report_uri
      Src: /src/fwupd/libfwupd/fwupd-client.c:7292,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-client.c:7293,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7297,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7302,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-client.c:7303,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7305,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:7308,1
    - Dst: fwupd_json_object_add_object_map
      Src: /src/fwupd/libfwupd/fwupd-client.c:7309,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:7313,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7314,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-client.c:7316,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:7317,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7317,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-client.c:7320,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:7321,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7321,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/libfwupd/fwupd-client.c:7324,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/libfwupd/fwupd-client.c:7325,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:7326,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7327,1
    - Dst: fwupd_update_state_to_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7328,1
    - Dst: fwupd_device_get_update_state
      Src: /src/fwupd/libfwupd/fwupd-client.c:7328,1
    - Dst: fwupd_device_get_release_default
      Src: /src/fwupd/libfwupd/fwupd-client.c:7334,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7335,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:7336,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7336,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-client.c:7339,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7339,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7340,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client.c:7341,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7342,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7343,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7344,1
    - Dst: fwupd_client_build_report_history_device
      Src: /src/fwupd/libfwupd/fwupd-client.c:7348,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:7349,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-client.c:7351,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:7354,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:7355,1
    - Dst: fwupd_json_object_to_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7363,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7364,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:7364,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 5
    argNames:
    - self
    - devices
    - remote
    - metadata
    - error
    argTypes:
    - FwupdClient*
    - GPtrArray*
    - FwupdRemote*
    - GHashTable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7365
      start: 7274
    functionDepth: 2
    functionLinenumber: 7274
    functionLinenumberEnd: 7365
    functionName: fwupd_client_build_report_history
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 2
    functionsReached:
    - fwupd_json_object_add_array
    - fwupd_json_object_add_object_map
    - g_hash_table_size
    - FWUPD_IS_CLIENT
    - fwupd_json_array_new
    - fwupd_device_get_update_state
    - g_ptr_array_index
    - fwupd_update_state_to_string
    - fwupd_release_get_remote_id
    - g_debug
    - fwupd_json_array_get_size
    - fwupd_json_object_new
    - g_set_error_literal
    - fwupd_json_object_add_integer
    - fwupd_remote_get_report_uri
    - fwupd_json_array_add_object
    - fwupd_device_get_release_default
    - GET_PRIVATE
    - fwupd_remote_get_id
    - fwupd_device_get_id
    - FWUPD_IS_REMOTE
    - fwupd_client_build_report_history_device
    - fwupd_json_object_add_string
    - fwupd_json_object_to_string
    - g_return_val_if_fail
    - g_strcmp0
    - g_set_error
    - g_steal_pointer
    - g_string_free
    - fwupd_device_has_flag
    - g_autoptr
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:7389,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7390,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7391,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7391,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7392,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7392,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7394,1
    - Dst: FWUPD_IS_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:7394,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7395,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7396,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-client.c:7397,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7400,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-client.c:7401,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7403,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:7406,1
    - Dst: fwupd_client_get_host_security_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7406,1
    - Dst: fwupd_json_object_add_object_map
      Src: /src/fwupd/libfwupd/fwupd-client.c:7407,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7408,1
    - Dst: fwupd_client_get_host_security_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7410,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client.c:7415,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client.c:7416,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7416,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupd/fwupd-client.c:7417,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-client.c:7417,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/libfwupd/fwupd-client.c:7418,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-client.c:7420,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-client.c:7423,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-client.c:7424,1
    - Dst: fwupd_json_object_to_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7432,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7433,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:7433,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - self
    - attrs
    - metadata
    - error
    argTypes:
    - FwupdClient*
    - GPtrArray*
    - GHashTable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7434
      start: 7383
    functionDepth: 1
    functionLinenumber: 7383
    functionLinenumberEnd: 7434
    functionName: fwupd_client_build_report_security
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 1
    functionsReached:
    - fwupd_json_object_add_array
    - fwupd_json_object_add_object_map
    - FWUPD_CODEC
    - g_hash_table_size
    - FWUPD_IS_CLIENT
    - fwupd_json_array_new
    - g_ptr_array_index
    - fwupd_json_array_get_size
    - fwupd_json_object_new
    - g_set_error_literal
    - fwupd_codec_to_json
    - fwupd_json_object_add_integer
    - fwupd_json_array_add_object
    - GET_PRIVATE
    - fwupd_json_object_to_string
    - fwupd_json_object_add_string
    - g_return_val_if_fail
    - g_steal_pointer
    - fwupd_client_get_host_security_id
    - g_string_free
    - g_autoptr
    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: 16
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:7439,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:7440,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7444,1
    - Dst: g_value_set_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:7447,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7450,1
    - Dst: g_value_set_double
      Src: /src/fwupd/libfwupd/fwupd-client.c:7453,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7456,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7459,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7462,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7465,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7468,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7471,1
    - Dst: g_value_set_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:7474,1
    - Dst: g_value_set_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:7477,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7480,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7483,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-client.c:7486,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: 7489
      start: 7436
    functionDepth: 0
    functionLinenumber: 7436
    functionLinenumberEnd: 7489
    functionName: fwupd_client_get_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_value_set_uint
    - g_value_set_double
    - g_value_set_string
    - FWUPD_CLIENT
    - g_value_set_boolean
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_client_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:7494,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:7495,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7499,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7502,1
    - Dst: g_value_get_double
      Src: /src/fwupd/libfwupd/fwupd-client.c:7505,1
    - Dst: fwupd_client_set_battery_level
      Src: /src/fwupd/libfwupd/fwupd-client.c:7508,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7508,1
    - Dst: fwupd_client_set_battery_threshold
      Src: /src/fwupd/libfwupd/fwupd-client.c:7511,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7511,1
    - Dst: fwupd_client_set_host_bkc
      Src: /src/fwupd/libfwupd/fwupd-client.c:7514,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7514,1
    - Dst: fwupd_client_set_host_vendor
      Src: /src/fwupd/libfwupd/fwupd-client.c:7517,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7517,1
    - Dst: fwupd_client_set_host_product
      Src: /src/fwupd/libfwupd/fwupd-client.c:7520,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7520,1
    - Dst: fwupd_client_set_host_machine_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7523,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7523,1
    - Dst: fwupd_client_set_host_security_id
      Src: /src/fwupd/libfwupd/fwupd-client.c:7526,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7526,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-client.c:7529,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 4
    argNames:
    - object
    - prop_id
    - value
    - pspec
    argTypes:
    - GObject*
    - guint
    - GValue*
    - GParamSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7532
      start: 7491
    functionDepth: 3
    functionLinenumber: 7491
    functionLinenumberEnd: 7532
    functionName: fwupd_client_set_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - fwupd_client_set_host_bkc
    - fwupd_client_set_battery_level
    - fwupd_client_set_host_machine_id
    - fwupd_client_set_host_vendor
    - g_value_get_string
    - fwupd_client_set_battery_threshold
    - g_value_get_double
    - fwupd_client_set_host_product
    - FWUPD_CLIENT
    - fwupd_client_set_host_security_id
    - g_value_get_uint
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    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:7538,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7552,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupd/fwupd-client.c:7553,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupd/fwupd-client.c:7555,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7573,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupd/fwupd-client.c:7574,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupd/fwupd-client.c:7576,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7594,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupd/fwupd-client.c:7595,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupd/fwupd-client.c:7597,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7616,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupd/fwupd-client.c:7617,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupd/fwupd-client.c:7619,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7638,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupd/fwupd-client.c:7639,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupd/fwupd-client.c:7641,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupd/fwupd-client.c:7660,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupd/fwupd-client.c:7661,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupd/fwupd-client.c:7663,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7678,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7685,1
    - Dst: g_param_spec_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:7694,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7699,1
    - Dst: g_param_spec_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:7708,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7713,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7722,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7729,1
    - Dst: g_param_spec_double
      Src: /src/fwupd/libfwupd/fwupd-client.c:7738,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7745,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7754,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7759,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7768,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7773,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7782,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7787,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7796,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7801,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7810,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7815,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-client.c:7824,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7829,1
    - Dst: g_param_spec_boolean
      Src: /src/fwupd/libfwupd/fwupd-client.c:7838,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7843,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7852,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7859,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7868,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-client.c:7875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdClientClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7876
      start: 7534
    functionDepth: 0
    functionLinenumber: 7534
    functionLinenumberEnd: 7876
    functionName: fwupd_client_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_uint
    - g_signal_new
    - g_param_spec_boolean
    - G_OBJECT_CLASS
    - G_STRUCT_OFFSET
    - G_TYPE_FROM_CLASS
    - g_param_spec_double
    - g_param_spec_string
    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:7881,1
    - Dst: g_mutex_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:7883,1
    - Dst: g_mutex_init
      Src: /src/fwupd/libfwupd/fwupd-client.c:7884,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-client.c:7886,1
    - Dst: g_proxy_resolver_get_default
      Src: /src/fwupd/libfwupd/fwupd-client.c:7887,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupd/fwupd-client.c:7888,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupd/fwupd-client.c:7892,1
    - Dst: fwupd_client_add_hint
      Src: /src/fwupd/libfwupd/fwupd-client.c:7895,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupd/fwupd-client.c:7895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7896
      start: 7878
    functionDepth: 1
    functionLinenumber: 7878
    functionLinenumberEnd: 7896
    functionName: fwupd_client_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_getenv
    - g_proxy_resolver_get_default
    - g_hash_table_new_full
    - fwupd_client_add_hint
    - g_mutex_init
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_client_init(FwupdClient *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:7901,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-client.c:7902,1
    - Dst: g_strfreev
      Src: /src/fwupd/libfwupd/fwupd-client.c:7904,1
    - Dst: g_strfreev
      Src: /src/fwupd/libfwupd/fwupd-client.c:7905,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupd/fwupd-client.c:7906,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7907,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7908,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7909,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7910,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7911,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7912,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7913,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7914,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7915,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-client.c:7916,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:7917,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:7918,1
    - Dst: g_mutex_clear
      Src: /src/fwupd/libfwupd/fwupd-client.c:7919,1
    - Dst: g_source_remove
      Src: /src/fwupd/libfwupd/fwupd-client.c:7921,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:7922,1
    - Dst: g_mutex_clear
      Src: /src/fwupd/libfwupd/fwupd-client.c:7923,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupd/fwupd-client.c:7925,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-client.c:7927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7928
      start: 7898
    functionDepth: 0
    functionLinenumber: 7898
    functionLinenumberEnd: 7928
    functionName: fwupd_client_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 0
    functionsReached:
    - g_source_remove
    - g_ptr_array_unref
    - g_strfreev
    - g_object_unref
    - G_OBJECT_CLASS
    - g_free
    - FWUPD_CLIENT
    - g_mutex_clear
    - g_hash_table_unref
    - g_clear_pointer
    - GET_PRIVATE
    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:7943,1
    - Dst: FWUPD_CLIENT
      Src: /src/fwupd/libfwupd/fwupd-client.c:7944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7945
      start: 7939
    functionDepth: 0
    functionLinenumber: 7939
    functionLinenumberEnd: 7945
    functionName: fwupd_client_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client.c
    functionUses: 3
    functionsReached:
    - g_object_new
    - FWUPD_CLIENT
    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: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 216
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:114,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 117
    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:132,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:133,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:133,1
    - Dst: fwupd_device_ensure_checksums
      Src: /src/fwupd/libfwupd/fwupd-device.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: fwupd_device_get_checksums
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - fwupd_device_ensure_checksums
    - GET_PRIVATE
    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:152,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:154,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:154,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:155,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:160,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - checksum
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 165
    functionName: fwupd_device_has_checksum
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FWUPD_IS_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    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:179,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:180,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:180,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:181,1
    - Dst: fwupd_device_has_checksum
      Src: /src/fwupd/libfwupd/fwupd-device.c:183,1
    - Dst: fwupd_device_ensure_checksums
      Src: /src/fwupd/libfwupd/fwupd-device.c:185,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:186,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - checksum
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 187
    functionName: fwupd_device_add_checksum
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fwupd_device_ensure_checksums
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_ptr_array_add
    - fwupd_device_has_checksum
    - GET_PRIVATE
    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:192,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    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:210,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:211,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:211,1
    - Dst: fwupd_device_ensure_issues
      Src: /src/fwupd/libfwupd/fwupd-device.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 214
    functionName: fwupd_device_get_issues
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - fwupd_device_ensure_issues
    - GET_PRIVATE
    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:228,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:229,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:229,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:230,1
    - Dst: fwupd_device_ensure_issues
      Src: /src/fwupd/libfwupd/fwupd-device.c:232,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:234,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:235,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:238,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - issue
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 239
    functionName: fwupd_device_add_issue
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_DEVICE
    - fwupd_device_ensure_issues
    - g_return_if_fail
    - g_ptr_array_add
    - g_ptr_array_index
    - GET_PRIVATE
    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:244,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 247
    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:262,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:263,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:263,1
    - Dst: fwupd_device_ensure_children
      Src: /src/fwupd/libfwupd/fwupd-device.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: fwupd_device_get_children
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - fwupd_device_ensure_children
    - GET_PRIVATE
    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:281,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:282,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 284
    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:298,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:299,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:299,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:302,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:305,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - summary
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 307
    functionName: fwupd_device_set_summary
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:322,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:323,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 325
    functionName: fwupd_device_get_details_url
    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_details_url(FwupdDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:339,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:340,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:340,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:343,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:346,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - details_url
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 348
    functionName: fwupd_device_set_details_url
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_details_url(FwupdDevice *self, const gchar *details_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:363,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:364,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 366
    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:380,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:381,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:381,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:384,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:387,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - branch
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 389
    functionName: fwupd_device_set_branch
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:404,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:405,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 407
    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:421,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:422,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:422,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:425,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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - serial
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 430
    functionName: fwupd_device_set_serial
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:445,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:446,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 448
    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:462,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:463,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:463,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:466,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-device.c:470,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-device.c:471,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:475,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:476,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:477,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 478
    functionName: fwupd_device_set_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_object_notify
    - g_strcmp0
    - g_critical
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_free
    - fwupd_device_id_is_valid
    - G_OBJECT
    - GET_PRIVATE
    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:493,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:494,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 496
    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:510,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:511,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:511,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:514,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-device.c:518,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-device.c:519,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:523,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:524,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - parent_id
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 525
    functionName: fwupd_device_set_parent_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_critical
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_free
    - fwupd_device_id_is_valid
    - GET_PRIVATE
    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:543,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:544,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 548
    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:563,1
    - Dst: g_return_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: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:567,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-device.c:571,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-device.c:572,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:576,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - composite_id
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 578
    functionName: fwupd_device_set_composite_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_critical
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_free
    - fwupd_device_id_is_valid
    - GET_PRIVATE
    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:593,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:594,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 596
    functionName: fwupd_device_get_parent
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    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:611,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:611,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 619
    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:633,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:634,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:634,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:635,1
    - Dst: g_object_remove_weak_pointer
      Src: /src/fwupd/libfwupd/fwupd-device.c:638,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:638,1
    - Dst: g_object_add_weak_pointer
      Src: /src/fwupd/libfwupd/fwupd-device.c:640,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:640,1
    - Dst: fwupd_device_set_parent_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:644,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - parent
    argTypes:
    - FwupdDevice*
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 645
    functionName: fwupd_device_set_parent
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_DEVICE
    - fwupd_device_get_id
    - g_object_add_weak_pointer
    - g_return_if_fail
    - g_object_remove_weak_pointer
    - fwupd_device_set_parent_id
    - G_OBJECT
    - GET_PRIVATE
    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:650,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-device.c:651,1
    - Dst: fwupd_device_get_name
      Src: /src/fwupd/libfwupd/fwupd-device.c:653,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - where_the_object_was
    argTypes:
    - gpointer
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 655
    functionName: fwupd_device_child_finalized_cb
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - FWUPD_DEVICE
    - fwupd_device_get_id
    - fwupd_device_get_name
    - g_critical
    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:673,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:674,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:674,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:675,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:675,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:676,1
    - Dst: fwupd_device_ensure_children
      Src: /src/fwupd/libfwupd/fwupd-device.c:679,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:681,1
    - Dst: g_object_weak_ref
      Src: /src/fwupd/libfwupd/fwupd-device.c:685,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:685,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:686,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-device.c:686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - child
    argTypes:
    - FwupdDevice*
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 687
    functionName: fwupd_device_add_child
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_weak_ref
    - fwupd_device_ensure_children
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_ptr_array_add
    - g_object_ref
    - G_OBJECT
    - g_ptr_array_index
    - GET_PRIVATE
    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:704,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:710,1
    - Dst: g_object_weak_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:712,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:712,1
    - Dst: g_ptr_array_remove_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:713,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - child
    argTypes:
    - FwupdDevice*
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 717
    functionName: fwupd_device_remove_child
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_weak_unref
    - g_ptr_array_remove_index
    - G_OBJECT
    - g_ptr_array_index
    - GET_PRIVATE
    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:733,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:735,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:735,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:740,1
    - Dst: g_object_weak_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:741,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:741,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupd/fwupd-device.c:743,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 744
    functionName: fwupd_device_remove_children
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_weak_unref
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_ptr_array_set_size
    - G_OBJECT
    - g_ptr_array_index
    - GET_PRIVATE
    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:749,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 752
    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:767,1
    - Dst: g_return_val_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: fwupd_device_ensure_guids
      Src: /src/fwupd/libfwupd/fwupd-device.c:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 771
    functionName: fwupd_device_get_guids
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - fwupd_device_ensure_guids
    - GET_PRIVATE
    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:787,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:789,1
    - Dst: FWUPD_IS_DEVICE
      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: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:795,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:796,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 800
    functionName: fwupd_device_has_guid
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FWUPD_IS_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    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:814,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:815,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:815,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:816,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/libfwupd/fwupd-device.c:817,1
    - Dst: fwupd_device_ensure_guids
      Src: /src/fwupd/libfwupd/fwupd-device.c:819,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:820,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 821
    functionName: fwupd_device_add_guid
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fwupd_device_ensure_guids
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_ptr_array_add
    - fwupd_device_has_guid
    - GET_PRIVATE
    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:836,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:837,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:837,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:840,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 841
    functionName: fwupd_device_get_guid_default
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - g_ptr_array_index
    - 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:846,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 849
    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:864,1
    - Dst: g_return_val_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: fwupd_device_ensure_instance_ids
      Src: /src/fwupd/libfwupd/fwupd-device.c:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 868
    functionName: fwupd_device_get_instance_ids
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - fwupd_device_ensure_instance_ids
    - GET_PRIVATE
    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:884,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:886,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:886,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:887,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:892,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:893,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - instance_id
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 897
    functionName: fwupd_device_has_instance_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FWUPD_IS_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    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:911,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:912,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:912,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:913,1
    - Dst: fwupd_device_has_instance_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:914,1
    - Dst: fwupd_device_ensure_instance_ids
      Src: /src/fwupd/libfwupd/fwupd-device.c:916,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:917,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - instance_id
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 918
    functionName: fwupd_device_add_instance_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fwupd_device_has_instance_id
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_ptr_array_add
    - fwupd_device_ensure_instance_ids
    - GET_PRIVATE
    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:923,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:925,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 926
    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:944,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:945,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:945,1
    - Dst: fwupd_device_ensure_icons
      Src: /src/fwupd/libfwupd/fwupd-device.c:946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 948
    functionName: fwupd_device_get_icons
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - fwupd_device_ensure_icons
    - GET_PRIVATE
    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:964,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:968,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:969,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - icon
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 973
    functionName: fwupd_device_has_icon
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_ptr_array_index
    - GET_PRIVATE
    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:987,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:988,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:988,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:989,1
    - Dst: fwupd_device_has_icon
      Src: /src/fwupd/libfwupd/fwupd-device.c:990,1
    - Dst: fwupd_device_ensure_icons
      Src: /src/fwupd/libfwupd/fwupd-device.c:992,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:993,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:993,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - icon
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 994
    functionName: fwupd_device_add_icon
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - FWUPD_IS_DEVICE
    - fwupd_device_has_icon
    - g_return_if_fail
    - g_ptr_array_add
    - fwupd_device_ensure_icons
    - GET_PRIVATE
    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:1009,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1010,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1012
    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:1026,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1027,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1027,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:1030,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:1033,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:1034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1035
    functionName: fwupd_device_set_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:1050,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1051,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1053
    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:1067,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1068,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1068,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:1071,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:1074,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:1075,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1076,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - vendor
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1077
    functionName: fwupd_device_set_vendor
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_object_notify
    - g_strcmp0
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_free
    - G_OBJECT
    - GET_PRIVATE
    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:1082,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:1084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1079
    functionDepth: 0
    functionLinenumber: 1079
    functionLinenumberEnd: 1085
    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:1100,1
    - Dst: g_return_val_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: fwupd_device_ensure_vendor_ids
      Src: /src/fwupd/libfwupd/fwupd-device.c:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1097
    functionDepth: 1
    functionLinenumber: 1097
    functionLinenumberEnd: 1104
    functionName: fwupd_device_get_vendor_ids
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - fwupd_device_ensure_vendor_ids
    - 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:1120,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1122,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1122,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1123,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:1128,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:1129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - vendor_id
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1133
    functionName: fwupd_device_has_vendor_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FWUPD_IS_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    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:1147,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1149,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1149,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1150,1
    - Dst: fwupd_device_has_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:1152,1
    - Dst: fwupd_device_ensure_vendor_ids
      Src: /src/fwupd/libfwupd/fwupd-device.c:1154,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:1155,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:1155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - vendor_id
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1156
    functionName: fwupd_device_add_vendor_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fwupd_device_has_vendor_id
    - FWUPD_IS_DEVICE
    - fwupd_device_ensure_vendor_ids
    - g_return_if_fail
    - g_ptr_array_add
    - GET_PRIVATE
    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:1171,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1172,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1168
    functionDepth: 0
    functionLinenumber: 1168
    functionLinenumberEnd: 1174
    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:1188,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1189,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1189,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:1192,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:1195,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:1196,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1197,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - version
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1198
    functionName: fwupd_device_set_version
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_object_notify
    - g_strcmp0
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_free
    - G_OBJECT
    - GET_PRIVATE
    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:1213,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1214,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1210
    functionDepth: 0
    functionLinenumber: 1210
    functionLinenumberEnd: 1216
    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:1230,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1231,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1231,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:1234,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:1237,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:1238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - version_lowest
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1227
    functionDepth: 0
    functionLinenumber: 1227
    functionLinenumberEnd: 1239
    functionName: fwupd_device_set_version_lowest
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:1254,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1255,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1251
    functionDepth: 0
    functionLinenumber: 1251
    functionLinenumberEnd: 1257
    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:1271,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1272,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - version_lowest_raw
    argTypes:
    - FwupdDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1268
    functionDepth: 0
    functionLinenumber: 1268
    functionLinenumberEnd: 1274
    functionName: fwupd_device_set_version_lowest_raw
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:1289,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1290,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1286
    functionDepth: 0
    functionLinenumber: 1286
    functionLinenumberEnd: 1292
    functionName: fwupd_device_get_version_highest
    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_highest(FwupdDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1306,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1307,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1307,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:1310,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:1313,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:1314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - version_highest
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1303
    functionDepth: 0
    functionLinenumber: 1303
    functionLinenumberEnd: 1315
    functionName: fwupd_device_set_version_highest
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_version_highest(FwupdDevice *self, const gchar
      *version_highest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1330,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1331,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1327
    functionDepth: 0
    functionLinenumber: 1327
    functionLinenumberEnd: 1333
    functionName: fwupd_device_get_version_highest_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_highest_raw(FwupdDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1347,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1348,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - version_highest_raw
    argTypes:
    - FwupdDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1350
    functionName: fwupd_device_set_version_highest_raw
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_version_highest_raw(FwupdDevice *self, guint64
      version_highest_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1365,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1366,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1362
    functionDepth: 0
    functionLinenumber: 1362
    functionLinenumberEnd: 1368
    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:1382,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1383,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1383,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:1386,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:1389,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:1390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - version_bootloader
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1379
    functionDepth: 0
    functionLinenumber: 1379
    functionLinenumberEnd: 1391
    functionName: fwupd_device_set_version_bootloader
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:1406,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1407,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1403
    functionDepth: 0
    functionLinenumber: 1403
    functionLinenumberEnd: 1409
    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:1423,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1424,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - version_bootloader_raw
    argTypes:
    - FwupdDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1420
    functionDepth: 0
    functionLinenumber: 1420
    functionLinenumberEnd: 1426
    functionName: fwupd_device_set_version_bootloader_raw
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:1441,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1442,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1444
    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:1458,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1459,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flashes_left
    argTypes:
    - FwupdDevice*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1461
    functionName: fwupd_device_set_flashes_left
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:1476,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1477,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1473
    functionDepth: 0
    functionLinenumber: 1473
    functionLinenumberEnd: 1479
    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:1496,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1498,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1498,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1499,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1504,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - battery_level
    argTypes:
    - FwupdDevice*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1493
    functionDepth: 0
    functionLinenumber: 1493
    functionLinenumberEnd: 1505
    functionName: fwupd_device_set_battery_level
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:1524,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1526,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1521
    functionDepth: 0
    functionLinenumber: 1521
    functionLinenumberEnd: 1533
    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:1550,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1552,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1552,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1553,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1558,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - battery_threshold
    argTypes:
    - FwupdDevice*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1547
    functionDepth: 0
    functionLinenumber: 1547
    functionLinenumberEnd: 1559
    functionName: fwupd_device_set_battery_threshold
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:1574,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1575,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1571
    functionDepth: 0
    functionLinenumber: 1571
    functionLinenumberEnd: 1577
    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:1591,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1592,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - duration
    argTypes:
    - FwupdDevice*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1588
    functionDepth: 0
    functionLinenumber: 1588
    functionLinenumberEnd: 1594
    functionName: fwupd_device_set_install_duration
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:1609,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1610,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1606
    functionDepth: 0
    functionLinenumber: 1606
    functionLinenumberEnd: 1612
    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:1626,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1627,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1627,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:1630,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:1633,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:1634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - plugin
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1623
    functionDepth: 0
    functionLinenumber: 1623
    functionLinenumberEnd: 1635
    functionName: fwupd_device_set_plugin
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:1640,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:1642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1637
    functionDepth: 0
    functionLinenumber: 1637
    functionLinenumberEnd: 1643
    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:1658,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1659,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1659,1
    - Dst: fwupd_device_ensure_protocols
      Src: /src/fwupd/libfwupd/fwupd-device.c:1660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1655
    functionDepth: 1
    functionLinenumber: 1655
    functionLinenumberEnd: 1662
    functionName: fwupd_device_get_protocols
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - fwupd_device_ensure_protocols
    - GET_PRIVATE
    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:1678,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1680,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1680,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1681,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:1686,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:1687,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - protocol
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1675
    functionDepth: 0
    functionLinenumber: 1675
    functionLinenumberEnd: 1691
    functionName: fwupd_device_has_protocol
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FWUPD_IS_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    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:1705,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1707,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1707,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1708,1
    - Dst: fwupd_device_has_protocol
      Src: /src/fwupd/libfwupd/fwupd-device.c:1710,1
    - Dst: fwupd_device_ensure_protocols
      Src: /src/fwupd/libfwupd/fwupd-device.c:1712,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:1713,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:1713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - protocol
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1702
    functionDepth: 1
    functionLinenumber: 1702
    functionLinenumberEnd: 1714
    functionName: fwupd_device_add_protocol
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fwupd_device_ensure_protocols
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_ptr_array_add
    - fwupd_device_has_protocol
    - GET_PRIVATE
    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:1729,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1730,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1726
    functionDepth: 0
    functionLinenumber: 1726
    functionLinenumberEnd: 1732
    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:1746,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1747,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1747,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1751,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1743
    functionDepth: 0
    functionLinenumber: 1743
    functionLinenumberEnd: 1752
    functionName: fwupd_device_set_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:1766,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1767,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1767,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1773,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1773,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdDevice*
    - FwupdDeviceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1763
    functionDepth: 0
    functionLinenumber: 1763
    functionLinenumberEnd: 1774
    functionName: fwupd_device_add_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:1788,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1789,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1789,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1795,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdDevice*
    - FwupdDeviceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1785
    functionDepth: 0
    functionLinenumber: 1785
    functionLinenumberEnd: 1796
    functionName: fwupd_device_remove_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:1812,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1813,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdDevice*
    - FwupdDeviceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1809
    functionDepth: 0
    functionLinenumber: 1809
    functionLinenumberEnd: 1815
    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:1830,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1831,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1827
    functionDepth: 0
    functionLinenumber: 1827
    functionLinenumberEnd: 1833
    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:1847,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1848,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1848,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1852,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - problems
    argTypes:
    - FwupdDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1844
    functionDepth: 0
    functionLinenumber: 1844
    functionLinenumberEnd: 1853
    functionName: fwupd_device_set_problems
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:1867,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1868,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1868,1
    - Dst: fwupd_device_has_problem
      Src: /src/fwupd/libfwupd/fwupd-device.c:1871,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1874,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1874,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - problem
    argTypes:
    - FwupdDevice*
    - FwupdDeviceProblem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1864
    functionDepth: 1
    functionLinenumber: 1864
    functionLinenumberEnd: 1875
    functionName: fwupd_device_add_problem
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - fwupd_device_has_problem
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:1889,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1890,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1890,1
    - Dst: fwupd_device_has_problem
      Src: /src/fwupd/libfwupd/fwupd-device.c:1893,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1896,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1896,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - problem
    argTypes:
    - FwupdDevice*
    - FwupdDeviceProblem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1886
    functionDepth: 1
    functionLinenumber: 1886
    functionLinenumberEnd: 1897
    functionName: fwupd_device_remove_problem
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - fwupd_device_has_problem
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:1913,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1914,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - problem
    argTypes:
    - FwupdDevice*
    - FwupdDeviceProblem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1910
    functionDepth: 0
    functionLinenumber: 1910
    functionLinenumberEnd: 1916
    functionName: fwupd_device_has_problem
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 6
    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:1931,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1932,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1928
    functionDepth: 0
    functionLinenumber: 1928
    functionLinenumberEnd: 1934
    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:1948,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1949,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1949,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1953,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - request_flags
    argTypes:
    - FwupdDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1945
    functionDepth: 0
    functionLinenumber: 1945
    functionLinenumberEnd: 1954
    functionName: fwupd_device_set_request_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:1968,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1969,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1969,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1975,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1975,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - request_flag
    argTypes:
    - FwupdDevice*
    - FwupdRequestFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1965
    functionDepth: 0
    functionLinenumber: 1965
    functionLinenumberEnd: 1976
    functionName: fwupd_device_add_request_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:1990,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:1991,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:1991,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:1997,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:1997,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - request_flag
    argTypes:
    - FwupdDevice*
    - FwupdRequestFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1987
    functionDepth: 0
    functionLinenumber: 1987
    functionLinenumberEnd: 1998
    functionName: fwupd_device_remove_request_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:2014,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2015,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - request_flag
    argTypes:
    - FwupdDevice*
    - FwupdRequestFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 2011
    functionDepth: 0
    functionLinenumber: 2011
    functionLinenumberEnd: 2017
    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:2032,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2033,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 2029
    functionDepth: 0
    functionLinenumber: 2029
    functionLinenumberEnd: 2035
    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:2049,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2050,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - created
    argTypes:
    - FwupdDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 2046
    functionDepth: 0
    functionLinenumber: 2046
    functionLinenumberEnd: 2052
    functionName: fwupd_device_set_created
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:2067,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2068,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2064
    functionDepth: 0
    functionLinenumber: 2064
    functionLinenumberEnd: 2070
    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:2084,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2085,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - modified
    argTypes:
    - FwupdDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 2081
    functionDepth: 0
    functionLinenumber: 2081
    functionLinenumberEnd: 2087
    functionName: fwupd_device_set_modified
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_device_set_modified(FwupdDevice *self, guint64 modified)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2101,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2102,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2104,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2104,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2105,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2105,1
    - Dst: fwupd_device_add_flag
      Src: /src/fwupd/libfwupd/fwupd-device.c:2107,1
    - Dst: fwupd_device_add_request_flag
      Src: /src/fwupd/libfwupd/fwupd-device.c:2108,1
    - Dst: fwupd_device_add_problem
      Src: /src/fwupd/libfwupd/fwupd-device.c:2109,1
    - Dst: fwupd_device_set_created
      Src: /src/fwupd/libfwupd/fwupd-device.c:2111,1
    - Dst: fwupd_device_set_modified
      Src: /src/fwupd/libfwupd/fwupd-device.c:2113,1
    - Dst: fwupd_device_set_version_build_date
      Src: /src/fwupd/libfwupd/fwupd-device.c:2115,1
    - Dst: fwupd_device_set_flashes_left
      Src: /src/fwupd/libfwupd/fwupd-device.c:2117,1
    - Dst: fwupd_device_set_battery_level
      Src: /src/fwupd/libfwupd/fwupd-device.c:2119,1
    - Dst: fwupd_device_set_battery_threshold
      Src: /src/fwupd/libfwupd/fwupd-device.c:2121,1
    - Dst: fwupd_device_set_install_duration
      Src: /src/fwupd/libfwupd/fwupd-device.c:2123,1
    - Dst: fwupd_device_set_update_state
      Src: /src/fwupd/libfwupd/fwupd-device.c:2125,1
    - Dst: fwupd_device_set_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2127,1
    - Dst: fwupd_device_set_parent_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2129,1
    - Dst: fwupd_device_set_composite_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2131,1
    - Dst: fwupd_device_set_name
      Src: /src/fwupd/libfwupd/fwupd-device.c:2133,1
    - Dst: fwupd_device_set_serial
      Src: /src/fwupd/libfwupd/fwupd-device.c:2135,1
    - Dst: fwupd_device_set_summary
      Src: /src/fwupd/libfwupd/fwupd-device.c:2137,1
    - Dst: fwupd_device_set_details_url
      Src: /src/fwupd/libfwupd/fwupd-device.c:2139,1
    - Dst: fwupd_device_set_branch
      Src: /src/fwupd/libfwupd/fwupd-device.c:2141,1
    - Dst: fwupd_device_set_vendor
      Src: /src/fwupd/libfwupd/fwupd-device.c:2143,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2146,1
    - Dst: fwupd_device_add_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2147,1
    - Dst: fwupd_device_set_plugin
      Src: /src/fwupd/libfwupd/fwupd-device.c:2151,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2154,1
    - Dst: fwupd_device_add_protocol
      Src: /src/fwupd/libfwupd/fwupd-device.c:2155,1
    - Dst: fwupd_device_set_update_error
      Src: /src/fwupd/libfwupd/fwupd-device.c:2159,1
    - Dst: fwupd_device_set_version
      Src: /src/fwupd/libfwupd/fwupd-device.c:2161,1
    - Dst: fwupd_device_set_version_lowest
      Src: /src/fwupd/libfwupd/fwupd-device.c:2163,1
    - Dst: fwupd_device_set_version_highest
      Src: /src/fwupd/libfwupd/fwupd-device.c:2165,1
    - Dst: fwupd_device_set_version_bootloader
      Src: /src/fwupd/libfwupd/fwupd-device.c:2167,1
    - Dst: fwupd_device_set_version_format
      Src: /src/fwupd/libfwupd/fwupd-device.c:2169,1
    - Dst: fwupd_device_set_version_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:2171,1
    - Dst: fwupd_device_set_version_lowest_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:2173,1
    - Dst: fwupd_device_set_version_highest_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:2175,1
    - Dst: fwupd_device_set_version_bootloader_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:2177,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2180,1
    - Dst: fwupd_device_add_guid
      Src: /src/fwupd/libfwupd/fwupd-device.c:2181,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2186,1
    - Dst: fwupd_device_add_instance_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2187,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2192,1
    - Dst: fwupd_device_add_icon
      Src: /src/fwupd/libfwupd/fwupd-device.c:2193,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2198,1
    - Dst: fwupd_device_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-device.c:2199,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2204,1
    - Dst: fwupd_device_add_release
      Src: /src/fwupd/libfwupd/fwupd-device.c:2205,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 97
    argCount: 2
    argNames:
    - self
    - donor
    argTypes:
    - FwupdDevice*
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2098
    functionDepth: 2
    functionLinenumber: 2098
    functionLinenumberEnd: 2208
    functionName: fwupd_device_incorporate
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_device_add_guid
    - fwupd_device_set_version_build_date
    - fwupd_device_set_version_lowest
    - fwupd_device_set_name
    - fwupd_device_set_version_bootloader_raw
    - g_ptr_array_index
    - fwupd_device_set_version_raw
    - fwupd_device_set_created
    - FWUPD_IS_DEVICE
    - fwupd_device_set_vendor
    - fwupd_device_add_protocol
    - fwupd_device_set_plugin
    - fwupd_device_add_flag
    - fwupd_device_set_version_format
    - fwupd_device_set_parent_id
    - fwupd_device_set_version_bootloader
    - fwupd_device_set_update_error
    - fwupd_device_set_version_lowest_raw
    - fwupd_device_set_version
    - fwupd_device_set_version_highest
    - fwupd_device_add_request_flag
    - fwupd_device_set_branch
    - GET_PRIVATE
    - fwupd_device_set_id
    - fwupd_device_set_composite_id
    - fwupd_device_set_update_state
    - fwupd_device_add_vendor_id
    - fwupd_device_set_serial
    - fwupd_device_set_version_highest_raw
    - fwupd_device_set_summary
    - fwupd_device_add_checksum
    - fwupd_device_set_flashes_left
    - fwupd_device_add_problem
    - fwupd_device_add_release
    - fwupd_device_set_battery_threshold
    - fwupd_device_add_icon
    - fwupd_device_set_details_url
    - fwupd_device_add_instance_id
    - g_return_if_fail
    - fwupd_device_set_battery_level
    - fwupd_device_set_modified
    - fwupd_device_set_install_duration
    linkageType: ''
    returnType: void
    signature: void fwupd_device_incorporate(FwupdDevice *self, FwupdDevice *donor)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2213,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2214,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2217,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2220,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2223,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2226,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2229,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2232,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2236,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-device.c:2239,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2243,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-device.c:2246,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2249,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2252,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2255,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2258,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:2261,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:2261,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2263,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:2264,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-device.c:2267,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2268,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2271,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2274,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2277,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2280,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2283,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2286,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2289,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2292,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2295,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2298,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2301,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2304,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2307,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2311,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2314,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2317,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2320,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2323,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2326,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:2329,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:2329,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2331,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:2332,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-device.c:2335,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2336,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2339,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2342,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2345,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:2348,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:2348,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2350,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:2351,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-device.c:2354,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2355,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2358,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2361,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2363,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2364,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-device.c:2367,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2370,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2373,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2376,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2379,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2382,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2385,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2388,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2391,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2394,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2397,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2400,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2403,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2406,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2409,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2412,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2415,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2418,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2421,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2424,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2427,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2430,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2433,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2436,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2439,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2442,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2445,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2448,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2451,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2454,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2457,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2460,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2463,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2466,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2469,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2473,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2476,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2480,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-device.c:2483,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2490,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2492,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-device.c:2494,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-device.c:2494,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:2496,1
    - Dst: g_variant_new_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:2500,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2500,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 151
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - GVariantBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2210
    functionDepth: 1
    functionLinenumber: 2210
    functionLinenumberEnd: 2502
    functionName: fwupd_device_add_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_variant_new_array
    - FWUPD_CODEC
    - g_new0
    - g_variant_builder_add
    - g_variant_new_strv
    - fwupd_codec_to_variant
    - FWUPD_DEVICE
    - g_variant_new_string
    - g_variant_new_uint64
    - g_string_new
    - g_string_append_printf
    - g_string_truncate
    - g_variant_new_uint32
    - G_VARIANT_TYPE
    - g_autoptr
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_device_add_variant(FwupdCodec *codec, GVariantBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2507,1
    - Dst: g_variant_iter_init
      Src: /src/fwupd/libfwupd/fwupd-device.c:2510,1
    - Dst: g_variant_iter_next_value
      Src: /src/fwupd/libfwupd/fwupd-device.c:2511,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:2512,1
    - Dst: fwupd_release_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:2512,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-device.c:2513,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-device.c:2513,1
    - Dst: fwupd_device_add_release
      Src: /src/fwupd/libfwupd/fwupd-device.c:2514,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:2515,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2519,1
    - Dst: fwupd_device_set_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2520,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2520,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2523,1
    - Dst: fwupd_device_set_parent_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2524,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2524,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2527,1
    - Dst: fwupd_device_set_composite_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2528,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2528,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2531,1
    - Dst: fwupd_device_set_flags
      Src: /src/fwupd/libfwupd/fwupd-device.c:2532,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2532,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2535,1
    - Dst: fwupd_device_set_problems
      Src: /src/fwupd/libfwupd/fwupd-device.c:2536,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2536,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2539,1
    - Dst: fwupd_device_set_request_flags
      Src: /src/fwupd/libfwupd/fwupd-device.c:2540,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2540,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2543,1
    - Dst: fwupd_device_set_created
      Src: /src/fwupd/libfwupd/fwupd-device.c:2544,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2544,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2547,1
    - Dst: fwupd_device_set_modified
      Src: /src/fwupd/libfwupd/fwupd-device.c:2548,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2548,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2551,1
    - Dst: fwupd_device_set_version_build_date
      Src: /src/fwupd/libfwupd/fwupd-device.c:2552,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2552,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2555,1
    - Dst: fwupd_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-device.c:2556,1
    - Dst: fwupd_device_add_guid
      Src: /src/fwupd/libfwupd/fwupd-device.c:2558,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2561,1
    - Dst: fwupd_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-device.c:2562,1
    - Dst: fwupd_device_add_instance_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2564,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2567,1
    - Dst: fwupd_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-device.c:2568,1
    - Dst: fwupd_device_add_icon
      Src: /src/fwupd/libfwupd/fwupd-device.c:2570,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2573,1
    - Dst: fwupd_device_set_name
      Src: /src/fwupd/libfwupd/fwupd-device.c:2574,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2574,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2577,1
    - Dst: fwupd_device_set_vendor
      Src: /src/fwupd/libfwupd/fwupd-device.c:2578,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2578,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2581,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2582,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-device.c:2584,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupd/fwupd-device.c:2584,1
    - Dst: fwupd_device_add_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:2586,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2590,1
    - Dst: fwupd_device_set_serial
      Src: /src/fwupd/libfwupd/fwupd-device.c:2591,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2591,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2594,1
    - Dst: fwupd_device_set_summary
      Src: /src/fwupd/libfwupd/fwupd-device.c:2595,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2595,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2598,1
    - Dst: fwupd_device_set_details_url
      Src: /src/fwupd/libfwupd/fwupd-device.c:2599,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2599,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2602,1
    - Dst: fwupd_device_set_branch
      Src: /src/fwupd/libfwupd/fwupd-device.c:2603,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2603,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2606,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2607,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-device.c:2609,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupd/fwupd-device.c:2609,1
    - Dst: fwupd_device_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-device.c:2611,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2615,1
    - Dst: fwupd_device_set_plugin
      Src: /src/fwupd/libfwupd/fwupd-device.c:2616,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2616,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2619,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2620,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-device.c:2622,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupd/fwupd-device.c:2622,1
    - Dst: fwupd_device_add_protocol
      Src: /src/fwupd/libfwupd/fwupd-device.c:2624,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2628,1
    - Dst: fwupd_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-device.c:2629,1
    - Dst: fwupd_device_add_issue
      Src: /src/fwupd/libfwupd/fwupd-device.c:2631,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2634,1
    - Dst: fwupd_device_set_version
      Src: /src/fwupd/libfwupd/fwupd-device.c:2635,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2635,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2638,1
    - Dst: fwupd_device_set_version_lowest
      Src: /src/fwupd/libfwupd/fwupd-device.c:2639,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2639,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2642,1
    - Dst: fwupd_device_set_version_highest
      Src: /src/fwupd/libfwupd/fwupd-device.c:2643,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2643,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2646,1
    - Dst: fwupd_device_set_version_bootloader
      Src: /src/fwupd/libfwupd/fwupd-device.c:2647,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2647,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2650,1
    - Dst: fwupd_device_set_flashes_left
      Src: /src/fwupd/libfwupd/fwupd-device.c:2651,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2651,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2654,1
    - Dst: fwupd_device_set_battery_level
      Src: /src/fwupd/libfwupd/fwupd-device.c:2655,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2655,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2658,1
    - Dst: fwupd_device_set_battery_threshold
      Src: /src/fwupd/libfwupd/fwupd-device.c:2659,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2659,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2662,1
    - Dst: fwupd_device_set_install_duration
      Src: /src/fwupd/libfwupd/fwupd-device.c:2663,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2663,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2666,1
    - Dst: fwupd_device_set_update_error
      Src: /src/fwupd/libfwupd/fwupd-device.c:2667,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2667,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2670,1
    - Dst: fwupd_device_set_update_state
      Src: /src/fwupd/libfwupd/fwupd-device.c:2671,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2671,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2674,1
    - Dst: fwupd_device_set_status
      Src: /src/fwupd/libfwupd/fwupd-device.c:2675,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2675,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2678,1
    - Dst: fwupd_device_set_percentage
      Src: /src/fwupd/libfwupd/fwupd-device.c:2679,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2679,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2682,1
    - Dst: fwupd_device_set_version_format
      Src: /src/fwupd/libfwupd/fwupd-device.c:2683,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-device.c:2683,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2686,1
    - Dst: fwupd_device_set_version_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:2687,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2687,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2690,1
    - Dst: fwupd_device_set_version_lowest_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:2691,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2691,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2694,1
    - Dst: fwupd_device_set_version_highest_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:2695,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2695,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2698,1
    - Dst: fwupd_device_set_version_bootloader_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:2699,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:2699,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 190
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdDevice*
    - gchar*
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2504
    functionDepth: 2
    functionLinenumber: 2504
    functionLinenumberEnd: 2702
    functionName: fwupd_device_from_key_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - fwupd_device_add_guid
    - fwupd_device_set_version_build_date
    - fwupd_device_set_version_lowest
    - g_auto
    - fwupd_device_set_name
    - fwupd_device_set_version_bootloader_raw
    - g_variant_iter_next_value
    - fwupd_device_set_problems
    - fwupd_device_set_version_raw
    - fwupd_variant_get_uint64
    - fwupd_device_set_created
    - fwupd_device_set_vendor
    - fwupd_device_add_protocol
    - fwupd_device_set_plugin
    - fwupd_device_set_version_format
    - g_strsplit
    - fwupd_device_set_parent_id
    - fwupd_device_set_version_bootloader
    - fwupd_device_set_flags
    - fwupd_device_add_issue
    - fwupd_device_set_version
    - fwupd_device_set_update_error
    - fwupd_device_set_version_lowest_raw
    - fwupd_device_set_version_highest
    - fwupd_device_set_request_flags
    - fwupd_device_set_branch
    - fwupd_device_set_id
    - fwupd_device_set_composite_id
    - fwupd_variant_get_uint32
    - g_variant_iter_init
    - fwupd_codec_from_variant
    - fwupd_variant_get_string
    - fwupd_device_set_update_state
    - fwupd_device_add_vendor_id
    - fwupd_device_set_serial
    - fwupd_device_set_version_highest_raw
    - fwupd_device_set_summary
    - fwupd_variant_get_strv
    - fwupd_device_add_checksum
    - fwupd_device_set_flashes_left
    - g_strcmp0
    - fwupd_device_add_release
    - fwupd_device_set_battery_threshold
    - fwupd_device_add_icon
    - g_variant_unref
    - fwupd_device_set_details_url
    - fwupd_device_add_instance_id
    - fwupd_device_set_percentage
    - fwupd_device_set_status
    - fwupd_device_set_battery_level
    - fwupd_device_set_modified
    - g_autoptr
    - fwupd_device_set_install_duration
    - fwupd_release_new
    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:2707,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:2707,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:2711,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2711,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2714,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2714,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-device.c:2716,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2718,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: 2719
      start: 2704
    functionDepth: 2
    functionLinenumber: 2704
    functionLinenumberEnd: 2719
    functionName: fwupd_device_string_append_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_string_append
    - fwupd_device_flag_to_string
    - fwupd_codec_string_append
    - g_string_new
    - g_string_append_printf
    - g_string_truncate
    - g_autoptr
    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:2727,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:2727,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:2731,1
    - Dst: fwupd_request_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2731,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2734,1
    - Dst: fwupd_request_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2734,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-device.c:2736,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2738,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: 2739
      start: 2721
    functionDepth: 2
    functionLinenumber: 2721
    functionLinenumberEnd: 2739
    functionName: fwupd_device_string_append_request_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_string_append
    - fwupd_codec_string_append
    - g_string_new
    - g_string_append_printf
    - g_string_truncate
    - g_autoptr
    - fwupd_request_flag_to_string
    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:2747,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:2747,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:2751,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2751,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2754,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:2754,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-device.c:2756,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:2758,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: 2759
      start: 2741
    functionDepth: 2
    functionLinenumber: 2741
    functionLinenumberEnd: 2759
    functionName: fwupd_device_string_append_problems
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_string_append
    - fwupd_codec_string_append
    - fwupd_device_problem_to_string
    - g_string_new
    - g_string_append_printf
    - g_string_truncate
    - g_autoptr
    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:2774,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2775,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2777
      start: 2771
    functionDepth: 0
    functionLinenumber: 2771
    functionLinenumberEnd: 2777
    functionName: fwupd_device_get_update_state
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 6
    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:2791,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2792,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2792,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:2796,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:2796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - update_state
    argTypes:
    - FwupdDevice*
    - FwupdUpdateState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2797
      start: 2788
    functionDepth: 0
    functionLinenumber: 2788
    functionLinenumberEnd: 2797
    functionName: fwupd_device_set_update_state
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - g_object_notify
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:2812,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2813,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2815
      start: 2809
    functionDepth: 0
    functionLinenumber: 2809
    functionLinenumberEnd: 2815
    functionName: fwupd_device_get_version_format
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 3
    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:2829,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2830,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - version_format
    argTypes:
    - FwupdDevice*
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2832
      start: 2826
    functionDepth: 0
    functionLinenumber: 2826
    functionLinenumberEnd: 2832
    functionName: fwupd_device_set_version_format
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:2847,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2848,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2844
    functionDepth: 0
    functionLinenumber: 2844
    functionLinenumberEnd: 2850
    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:2864,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2865,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - version_raw
    argTypes:
    - FwupdDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2867
      start: 2861
    functionDepth: 0
    functionLinenumber: 2861
    functionLinenumberEnd: 2867
    functionName: fwupd_device_set_version_raw
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:2882,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2883,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2885
      start: 2879
    functionDepth: 0
    functionLinenumber: 2879
    functionLinenumberEnd: 2885
    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:2899,1
    - Dst: g_return_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: 2
    argNames:
    - self
    - version_build_date
    argTypes:
    - FwupdDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2902
      start: 2896
    functionDepth: 0
    functionLinenumber: 2896
    functionLinenumberEnd: 2902
    functionName: fwupd_device_set_version_build_date
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:2917,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2918,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2920
      start: 2914
    functionDepth: 0
    functionLinenumber: 2914
    functionLinenumberEnd: 2920
    functionName: fwupd_device_get_update_error
    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_update_error(FwupdDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2934,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2935,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2935,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:2938,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:2941,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:2942,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:2943,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:2943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - update_error
    argTypes:
    - FwupdDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2944
      start: 2931
    functionDepth: 0
    functionLinenumber: 2931
    functionLinenumberEnd: 2944
    functionName: fwupd_device_set_update_error
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 3
    functionsReached:
    - g_strdup
    - g_object_notify
    - g_strcmp0
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - g_free
    - G_OBJECT
    - GET_PRIVATE
    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:2959,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2960,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2960,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2963,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:2963,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2964
      start: 2956
    functionDepth: 0
    functionLinenumber: 2956
    functionLinenumberEnd: 2964
    functionName: fwupd_device_get_release_default
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - FWUPD_RELEASE
    - g_ptr_array_index
    - GET_PRIVATE
    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:2969,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:2971,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2972
      start: 2966
    functionDepth: 0
    functionLinenumber: 2966
    functionLinenumberEnd: 2972
    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:2987,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:2988,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:2988,1
    - Dst: fwupd_device_ensure_releases
      Src: /src/fwupd/libfwupd/fwupd-device.c:2989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2991
      start: 2984
    functionDepth: 1
    functionLinenumber: 2984
    functionLinenumberEnd: 2991
    functionName: fwupd_device_get_releases
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - fwupd_device_ensure_releases
    - GET_PRIVATE
    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:3005,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:3006,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3006,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:3007,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3007,1
    - Dst: fwupd_device_ensure_releases
      Src: /src/fwupd/libfwupd/fwupd-device.c:3008,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:3009,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-device.c:3009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - release
    argTypes:
    - FwupdDevice*
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3010
      start: 3002
    functionDepth: 1
    functionLinenumber: 3002
    functionLinenumberEnd: 3010
    functionName: fwupd_device_add_release
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 5
    functionsReached:
    - fwupd_device_ensure_releases
    - FWUPD_IS_DEVICE
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_ptr_array_add
    - g_object_ref
    - GET_PRIVATE
    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:3025,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:3026,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3028
      start: 3022
    functionDepth: 0
    functionLinenumber: 3022
    functionLinenumberEnd: 3028
    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:3042,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:3043,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3043,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:3047,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:3047,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - status
    argTypes:
    - FwupdDevice*
    - FwupdStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3048
      start: 3039
    functionDepth: 0
    functionLinenumber: 3039
    functionLinenumberEnd: 3048
    functionName: fwupd_device_set_status
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - g_object_notify
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:3063,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:3064,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3066
      start: 3060
    functionDepth: 0
    functionLinenumber: 3060
    functionLinenumberEnd: 3066
    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:3080,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:3081,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3081,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-device.c:3085,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:3085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - percentage
    argTypes:
    - FwupdDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3086
      start: 3077
    functionDepth: 0
    functionLinenumber: 3077
    functionLinenumberEnd: 3086
    functionName: fwupd_device_set_percentage
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - FWUPD_IS_DEVICE
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:3096,1
    - Dst: fwupd_update_state_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - str
    - idt
    - key
    - value
    argTypes:
    - GString*
    - guint
    - gchar*
    - FwupdUpdateState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3097
      start: 3088
    functionDepth: 2
    functionLinenumber: 3088
    functionLinenumberEnd: 3097
    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: 45
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3102,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3103,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3106,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3108,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3110,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3115,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3121,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:3121,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3123,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3124,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3126,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3129,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:3129,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3131,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3132,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3134,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3137,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3139,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3141,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3145,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3147,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3149,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:3149,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3151,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3152,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3154,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3157,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:3157,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3159,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3160,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3162,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3165,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:3165,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3170,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3171,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3173,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3176,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:3176,1
    - Dst: fwupd_request_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3181,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3182,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3184,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3187,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:3187,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3192,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3193,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3195,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3198,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:3198,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3200,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3201,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3203,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3206,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3208,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:3208,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3210,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3211,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3213,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3216,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3218,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3223,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3228,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3233,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3235,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-device.c:3238,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-device.c:3243,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-device.c:3248,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-device.c:3253,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-device.c:3258,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-device.c:3262,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-device.c:3266,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-device.c:3270,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3275,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:3275,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3277,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3278,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3280,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-device.c:3283,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-device.c:3288,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-device.c:3290,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-device.c:3292,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-device.c:3297,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-device.c:3299,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3304,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/libfwupd/fwupd-device.c:3309,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 162
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3310
      start: 3099
    functionDepth: 2
    functionLinenumber: 3099
    functionLinenumberEnd: 3310
    functionName: fwupd_device_add_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - fwupd_device_flag_to_string
    - fwupd_json_array_new
    - FWUPD_DEVICE
    - fwupd_json_array_add_string
    - fwupd_device_problem_to_string
    - fwupd_json_object_add_integer
    - g_ptr_array_index
    - fwupd_codec_array_to_json
    - g_autoptr
    - fwupd_version_format_to_string
    - fwupd_request_flag_to_string
    - fwupd_json_object_add_string
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_device_add_json(FwupdCodec *codec, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3315,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3318,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3319,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3320,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3321,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3322,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3323,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3324,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3325,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3326,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3327,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:3329,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3329,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:3330,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:3331,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3334,1
    - Dst: fwupd_device_set_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:3337,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3340,1
    - Dst: fwupd_device_set_name
      Src: /src/fwupd/libfwupd/fwupd-device.c:3342,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3343,1
    - Dst: fwupd_device_set_parent_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:3345,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3346,1
    - Dst: fwupd_device_set_composite_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:3348,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3349,1
    - Dst: fwupd_device_add_protocol
      Src: /src/fwupd/libfwupd/fwupd-device.c:3351,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3352,1
    - Dst: fwupd_device_set_serial
      Src: /src/fwupd/libfwupd/fwupd-device.c:3354,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3355,1
    - Dst: fwupd_device_set_summary
      Src: /src/fwupd/libfwupd/fwupd-device.c:3357,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3358,1
    - Dst: fwupd_device_set_details_url
      Src: /src/fwupd/libfwupd/fwupd-device.c:3360,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3361,1
    - Dst: fwupd_device_set_branch
      Src: /src/fwupd/libfwupd/fwupd-device.c:3363,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3364,1
    - Dst: fwupd_device_set_plugin
      Src: /src/fwupd/libfwupd/fwupd-device.c:3366,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3367,1
    - Dst: fwupd_device_set_vendor
      Src: /src/fwupd/libfwupd/fwupd-device.c:3369,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3370,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-device.c:3372,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupd/fwupd-device.c:3372,1
    - Dst: fwupd_device_add_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:3374,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3376,1
    - Dst: fwupd_device_set_version
      Src: /src/fwupd/libfwupd/fwupd-device.c:3378,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3379,1
    - Dst: fwupd_device_set_version_lowest
      Src: /src/fwupd/libfwupd/fwupd-device.c:3381,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3382,1
    - Dst: fwupd_device_set_version_highest
      Src: /src/fwupd/libfwupd/fwupd-device.c:3384,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3385,1
    - Dst: fwupd_device_set_version_bootloader
      Src: /src/fwupd/libfwupd/fwupd-device.c:3387,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3388,1
    - Dst: fwupd_device_set_version_format
      Src: /src/fwupd/libfwupd/fwupd-device.c:3390,1
    - Dst: fwupd_version_format_from_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3390,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3391,1
    - Dst: fwupd_device_set_flashes_left
      Src: /src/fwupd/libfwupd/fwupd-device.c:3397,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3398,1
    - Dst: fwupd_device_set_battery_level
      Src: /src/fwupd/libfwupd/fwupd-device.c:3404,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3405,1
    - Dst: fwupd_device_set_battery_threshold
      Src: /src/fwupd/libfwupd/fwupd-device.c:3411,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3412,1
    - Dst: fwupd_device_set_version_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:3418,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3419,1
    - Dst: fwupd_device_set_version_lowest_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:3425,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3426,1
    - Dst: fwupd_device_set_version_highest_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:3432,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3433,1
    - Dst: fwupd_device_set_version_bootloader_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:3439,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3440,1
    - Dst: fwupd_device_set_version_build_date
      Src: /src/fwupd/libfwupd/fwupd-device.c:3446,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3447,1
    - Dst: fwupd_device_set_install_duration
      Src: /src/fwupd/libfwupd/fwupd-device.c:3453,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3455,1
    - Dst: fwupd_device_set_created
      Src: /src/fwupd/libfwupd/fwupd-device.c:3461,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3462,1
    - Dst: fwupd_device_set_modified
      Src: /src/fwupd/libfwupd/fwupd-device.c:3468,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3469,1
    - Dst: fwupd_device_set_update_state
      Src: /src/fwupd/libfwupd/fwupd-device.c:3471,1
    - Dst: fwupd_update_state_from_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3471,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3472,1
    - Dst: fwupd_device_set_status
      Src: /src/fwupd/libfwupd/fwupd-device.c:3474,1
    - Dst: fwupd_status_from_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3474,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-device.c:3475,1
    - Dst: fwupd_device_set_percentage
      Src: /src/fwupd/libfwupd/fwupd-device.c:3481,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3482,1
    - Dst: fwupd_device_set_update_error
      Src: /src/fwupd/libfwupd/fwupd-device.c:3484,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3487,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-device.c:3489,1
    - Dst: fwupd_device_add_instance_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:3490,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3492,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3495,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-device.c:3497,1
    - Dst: fwupd_device_add_guid
      Src: /src/fwupd/libfwupd/fwupd-device.c:3498,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3500,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3503,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-device.c:3505,1
    - Dst: fwupd_device_add_issue
      Src: /src/fwupd/libfwupd/fwupd-device.c:3506,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3508,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3511,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-device.c:3513,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3514,1
    - Dst: fwupd_device_add_flag
      Src: /src/fwupd/libfwupd/fwupd-device.c:3515,1
    - Dst: fwupd_device_flag_from_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3515,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3519,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-device.c:3521,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3522,1
    - Dst: fwupd_device_add_problem
      Src: /src/fwupd/libfwupd/fwupd-device.c:3523,1
    - Dst: fwupd_device_problem_from_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3523,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3527,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-device.c:3529,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3530,1
    - Dst: fwupd_device_add_request_flag
      Src: /src/fwupd/libfwupd/fwupd-device.c:3531,1
    - Dst: fwupd_request_flag_from_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3531,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3534,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-device.c:3536,1
    - Dst: fwupd_device_add_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:3537,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3539,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3542,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-device.c:3544,1
    - Dst: fwupd_device_add_protocol
      Src: /src/fwupd/libfwupd/fwupd-device.c:3545,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3547,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3550,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-device.c:3552,1
    - Dst: fwupd_device_add_icon
      Src: /src/fwupd/libfwupd/fwupd-device.c:3553,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3555,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupd/fwupd-device.c:3558,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-device.c:3560,1
    - Dst: fwupd_device_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-device.c:3561,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3563,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 188
    argCount: 3
    argNames:
    - codec
    - json_obj
    - error
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3569
      start: 3312
    functionDepth: 2
    functionLinenumber: 3312
    functionLinenumberEnd: 3569
    functionName: fwupd_device_from_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_device_add_guid
    - fwupd_device_add_flag
    - fwupd_device_set_version_build_date
    - fwupd_device_set_version_lowest
    - fwupd_update_state_from_string
    - g_auto
    - fwupd_device_set_name
    - fwupd_device_set_version_bootloader_raw
    - fwupd_device_set_version_raw
    - fwupd_device_set_created
    - fwupd_json_array_get_size
    - fwupd_json_array_get_string
    - FWUPD_IS_DEVICE
    - fwupd_device_add_protocol
    - fwupd_device_set_vendor
    - fwupd_device_set_plugin
    - fwupd_device_set_version_format
    - fwupd_json_object_get_array
    - g_strsplit
    - fwupd_device_set_parent_id
    - fwupd_device_set_version_bootloader
    - fwupd_device_set_version_lowest_raw
    - fwupd_status_from_string
    - fwupd_device_set_version
    - fwupd_device_set_update_error
    - fwupd_device_add_issue
    - fwupd_device_set_version_highest
    - fwupd_device_set_branch
    - fwupd_device_add_request_flag
    - fwupd_device_set_id
    - fwupd_request_flag_from_string
    - fwupd_device_set_composite_id
    - FWUPD_DEVICE
    - fwupd_device_set_update_state
    - fwupd_device_add_vendor_id
    - fwupd_json_object_get_string
    - fwupd_device_set_serial
    - fwupd_device_set_version_highest_raw
    - fwupd_device_problem_from_string
    - fwupd_device_set_summary
    - fwupd_version_format_from_string
    - fwupd_device_add_checksum
    - fwupd_device_set_flashes_left
    - g_return_val_if_fail
    - fwupd_device_add_problem
    - fwupd_device_set_battery_threshold
    - fwupd_device_add_icon
    - fwupd_device_set_details_url
    - fwupd_device_set_percentage
    - fwupd_device_add_instance_id
    - fwupd_device_flag_from_string
    - fwupd_device_set_status
    - fwupd_device_set_battery_level
    - fwupd_device_set_modified
    - g_autoptr
    - fwupd_device_set_install_duration
    - fwupd_json_object_get_integer_with_default
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_device_from_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:3575,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:3579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - value_raw
    argTypes:
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3580
      start: 3571
    functionDepth: 0
    functionLinenumber: 3571
    functionLinenumberEnd: 3580
    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:3590,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:3591,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:3592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FwupdDeviceGuidHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3593
      start: 3587
    functionDepth: 0
    functionLinenumber: 3587
    functionLinenumberEnd: 3593
    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:3599,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:3600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - array
    - guid
    argTypes:
    - GPtrArray*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3604
      start: 3595
    functionDepth: 0
    functionLinenumber: 3595
    functionLinenumberEnd: 3604
    functionName: fwupd_device_guid_helper_array_find
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_ptr_array_index
    linkageType: ''
    returnType: FwupdDeviceGuidHelper
    signature: 'FwupdDeviceGuidHelper *

      fwupd_device_guid_helper_array_find(GPtrArray *array, const gchar *guid)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3609,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3610,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3611,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3613,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:3614,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3615,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3620,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3621,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3623,1
    - Dst: fwupd_status_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3626,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3628,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:3631,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-device.c:3634,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3635,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3636,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:3637,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:3638,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3643,1
    - Dst: fwupd_device_guid_helper_array_find
      Src: /src/fwupd/libfwupd/fwupd-device.c:3644,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-device.c:3645,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-device.c:3646,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:3647,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3652,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3653,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:3653,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:3655,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/libfwupd/fwupd-device.c:3656,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3657,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3658,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3661,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3662,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3663,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3664,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3665,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3668,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3669,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3674,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3675,1
    - Dst: fwupd_device_string_append_flags
      Src: /src/fwupd/libfwupd/fwupd-device.c:3678,1
    - Dst: fwupd_device_string_append_problems
      Src: /src/fwupd/libfwupd/fwupd-device.c:3680,1
    - Dst: fwupd_device_string_append_request_flags
      Src: /src/fwupd/libfwupd/fwupd-device.c:3686,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3693,1
    - Dst: fwupd_checksum_format_for_display
      Src: /src/fwupd/libfwupd/fwupd-device.c:3695,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3696,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3702,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3705,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3706,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3709,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3710,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3711,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3715,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3720,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3723,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3726,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3732,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3738,1
    - Dst: fwupd_device_verstr_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:3744,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3745,1
    - Dst: fwupd_device_verstr_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:3748,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3749,1
    - Dst: fwupd_device_verstr_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:3752,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3753,1
    - Dst: fwupd_codec_string_append_time
      Src: /src/fwupd/libfwupd/fwupd-device.c:3755,1
    - Dst: fwupd_device_verstr_raw
      Src: /src/fwupd/libfwupd/fwupd-device.c:3760,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3761,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device.c:3764,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:3764,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3766,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-device.c:3767,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-device.c:3770,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3771,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-device.c:3773,1
    - Dst: fwupd_codec_string_append_time
      Src: /src/fwupd/libfwupd/fwupd-device.c:3777,1
    - Dst: fwupd_codec_string_append_time
      Src: /src/fwupd/libfwupd/fwupd-device.c:3778,1
    - Dst: fwupd_device_string_append_update_state
      Src: /src/fwupd/libfwupd/fwupd-device.c:3779,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-device.c:3783,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:3786,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3787,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-device.c:3787,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 120
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3790
      start: 3606
    functionDepth: 3
    functionLinenumber: 3606
    functionLinenumberEnd: 3790
    functionName: fwupd_device_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_add_string
    - FWUPD_CODEC
    - fwupd_codec_string_append_int
    - fwupd_version_format_to_string
    - g_ptr_array_index
    - g_new0
    - fwupd_device_guid_helper_array_find
    - fwupd_device_has_guid
    - g_string_new
    - g_string_truncate
    - fwupd_guid_hash_string
    - g_ptr_array_new_with_free_func
    - fwupd_codec_string_append_time
    - GET_PRIVATE
    - g_string_append
    - fwupd_checksum_format_for_display
    - fwupd_codec_string_append
    - FWUPD_DEVICE
    - fwupd_device_string_append_update_state
    - fwupd_device_verstr_raw
    - fwupd_device_string_append_flags
    - fwupd_status_to_string
    - g_strdup
    - g_strcmp0
    - g_ptr_array_add
    - fwupd_device_string_append_request_flags
    - fwupd_device_string_append_problems
    - g_string_append_printf
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_device_add_string(FwupdCodec *codec, guint idt, GString
      *str)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3795,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3796,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3799,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3802,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3805,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3808,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:3811,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:3814,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:3817,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3820,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3823,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3826,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupd/fwupd-device.c:3829,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3832,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3835,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3838,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-device.c:3841,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: 3844
      start: 3792
    functionDepth: 0
    functionLinenumber: 3792
    functionLinenumberEnd: 3844
    functionName: fwupd_device_get_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_value_set_uint
    - g_value_set_string
    - FWUPD_DEVICE
    - g_value_set_object
    - g_value_set_uint64
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_device_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:3849,1
    - Dst: fwupd_device_set_version
      Src: /src/fwupd/libfwupd/fwupd-device.c:3852,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3852,1
    - Dst: fwupd_device_set_vendor
      Src: /src/fwupd/libfwupd/fwupd-device.c:3855,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3855,1
    - Dst: fwupd_device_set_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:3858,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3858,1
    - Dst: fwupd_device_set_version_format
      Src: /src/fwupd/libfwupd/fwupd-device.c:3861,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3861,1
    - Dst: fwupd_device_set_flags
      Src: /src/fwupd/libfwupd/fwupd-device.c:3864,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:3864,1
    - Dst: fwupd_device_set_problems
      Src: /src/fwupd/libfwupd/fwupd-device.c:3867,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:3867,1
    - Dst: fwupd_device_set_request_flags
      Src: /src/fwupd/libfwupd/fwupd-device.c:3870,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:3870,1
    - Dst: fwupd_device_set_update_error
      Src: /src/fwupd/libfwupd/fwupd-device.c:3873,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3873,1
    - Dst: fwupd_device_set_status
      Src: /src/fwupd/libfwupd/fwupd-device.c:3876,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3876,1
    - Dst: fwupd_device_set_percentage
      Src: /src/fwupd/libfwupd/fwupd-device.c:3879,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3879,1
    - Dst: fwupd_device_set_parent
      Src: /src/fwupd/libfwupd/fwupd-device.c:3882,1
    - Dst: g_value_get_object
      Src: /src/fwupd/libfwupd/fwupd-device.c:3882,1
    - Dst: fwupd_device_set_update_state
      Src: /src/fwupd/libfwupd/fwupd-device.c:3885,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3885,1
    - Dst: fwupd_device_set_battery_level
      Src: /src/fwupd/libfwupd/fwupd-device.c:3888,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3888,1
    - Dst: fwupd_device_set_battery_threshold
      Src: /src/fwupd/libfwupd/fwupd-device.c:3891,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3891,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-device.c:3894,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: 3897
      start: 3846
    functionDepth: 3
    functionLinenumber: 3846
    functionLinenumberEnd: 3897
    functionName: fwupd_device_set_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_device_set_parent
    - g_value_get_uint64
    - g_value_get_object
    - fwupd_device_set_problems
    - fwupd_device_set_vendor
    - fwupd_device_set_version_format
    - fwupd_device_set_flags
    - fwupd_device_set_update_error
    - fwupd_device_set_version
    - fwupd_device_set_request_flags
    - fwupd_device_set_id
    - FWUPD_DEVICE
    - fwupd_device_set_update_state
    - g_value_get_uint
    - fwupd_device_set_battery_threshold
    - fwupd_device_set_percentage
    - g_value_get_string
    - fwupd_device_set_status
    - fwupd_device_set_battery_level
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    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:3902,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3916,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:3921,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3930,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:3935,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:3945,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:3946,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:3955,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:3962,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:3971,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:3978,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:3987,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:3994,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupd/fwupd-device.c:4003,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:4010,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:4019,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:4026,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:4035,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:4042,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupd/fwupd-device.c:4051,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:4056,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:4065,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:4072,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-device.c:4081,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:4086,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:4095,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:4102,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupd/fwupd-device.c:4111,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-device.c:4118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4119
      start: 3899
    functionDepth: 0
    functionLinenumber: 3899
    functionLinenumberEnd: 4119
    functionName: fwupd_device_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_uint
    - g_param_spec_uint64
    - g_param_spec_object
    - G_OBJECT_CLASS
    - g_param_spec_string
    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:4124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4127
      start: 4121
    functionDepth: 0
    functionLinenumber: 4121
    functionLinenumberEnd: 4127
    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:4132,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:4133,1
    - Dst: g_object_remove_weak_pointer
      Src: /src/fwupd/libfwupd/fwupd-device.c:4136,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:4136,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:4139,1
    - Dst: g_object_weak_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:4140,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-device.c:4140,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:4144,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:4145,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:4146,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:4147,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:4148,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:4149,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:4150,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:4151,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:4152,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:4153,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:4154,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:4155,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:4156,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:4157,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-device.c:4158,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:4160,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:4162,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:4164,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:4166,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:4168,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:4170,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:4172,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:4174,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:4176,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-device.c:4178,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4179
      start: 4129
    functionDepth: 0
    functionLinenumber: 4129
    functionLinenumberEnd: 4179
    functionName: fwupd_device_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_object_weak_unref
    - G_OBJECT_CLASS
    - FWUPD_DEVICE
    - g_object_remove_weak_pointer
    - g_free
    - G_OBJECT
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:4184,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/libfwupd/fwupd-device.c:4187,1
    - Dst: fwupd_device_from_key_value
      Src: /src/fwupd/libfwupd/fwupd-device.c:4188,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupd/fwupd-device.c:4189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - codec
    - iter
    argTypes:
    - FwupdCodec*
    - GVariantIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4191
      start: 4181
    functionDepth: 3
    functionLinenumber: 4181
    functionLinenumberEnd: 4191
    functionName: fwupd_device_from_variant_iter
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - FWUPD_DEVICE
    - g_variant_unref
    - fwupd_device_from_key_value
    - g_variant_iter_next
    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: 4201
      start: 4193
    functionDepth: 0
    functionLinenumber: 4193
    functionLinenumberEnd: 4201
    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:4214,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:4216,1
    - Dst: g_hash_table_new
      Src: /src/fwupd/libfwupd/fwupd-device.c:4219,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:4221,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:4222,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-device.c:4224,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:4225,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:4231,1
    - Dst: fwupd_device_get_parent_id
      Src: /src/fwupd/libfwupd/fwupd-device.c:4232,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-device.c:4235,1
    - Dst: fwupd_device_set_parent
      Src: /src/fwupd/libfwupd/fwupd-device.c:4237,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - devices
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4240
      start: 4211
    functionDepth: 3
    functionLinenumber: 4211
    functionLinenumberEnd: 4240
    functionName: fwupd_device_array_ensure_parents
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 7
    functionsReached:
    - g_hash_table_insert
    - fwupd_device_get_id
    - g_hash_table_lookup
    - g_return_if_fail
    - fwupd_device_set_parent
    - g_hash_table_new
    - fwupd_device_get_parent_id
    - g_autoptr
    - g_ptr_array_index
    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:4256,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-device.c:4257,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:4258,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:4258,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:4259,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:4259,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-device.c:4260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self1
    - self2
    argTypes:
    - FwupdDevice*
    - FwupdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4261
      start: 4253
    functionDepth: 0
    functionLinenumber: 4253
    functionLinenumberEnd: 4261
    functionName: fwupd_device_compare
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_DEVICE
    - g_strcmp0
    - 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:4277,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:4277,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-device.c:4282,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-device.c:4286,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - self
    - include
    - exclude
    argTypes:
    - FwupdDevice*
    - FwupdDeviceFlags
    - FwupdDeviceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4291
      start: 4274
    functionDepth: 1
    functionLinenumber: 4274
    functionLinenumberEnd: 4291
    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:4312,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-device.c:4313,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:4315,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-device.c:4316,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-device.c:4319,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-device.c:4320,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-device.c:4322,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-device.c:4322,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-device.c:4325,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-device.c:4328,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - devices
    - include
    - exclude
    - error
    argTypes:
    - GPtrArray*
    - FwupdDeviceFlags
    - FwupdDeviceFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4329
      start: 4306
    functionDepth: 2
    functionLinenumber: 4306
    functionLinenumberEnd: 4329
    functionName: fwupd_device_array_filter_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - g_steal_pointer
    - g_ptr_array_add
    - g_object_ref
    - fwupd_device_match_flags
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    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:4344,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-device.c:4345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4346
      start: 4340
    functionDepth: 0
    functionLinenumber: 4340
    functionLinenumberEnd: 4346
    functionName: fwupd_device_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device.c
    functionUses: 4
    functionsReached:
    - FWUPD_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FwupdDevice
    signature: 'FwupdDevice *

      fwupd_device_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:24,1
    - Dst: fwupd_bios_setting_new
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:25,1
    - Dst: fwupd_bios_setting_new
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:26,1
    - Dst: fwupd_bios_setting_new
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:29,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:31,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:31,1
    - Dst: fwupd_bios_setting_set_name
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:32,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:33,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:33,1
    - Dst: fwupd_bios_setting_set_kind
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:35,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:36,1
    - Dst: fwupd_bios_setting_get_kind
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:36,1
    - Dst: fwupd_bios_setting_set_description
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:40,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:41,1
    - Dst: fwupd_bios_setting_get_description
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:41,1
    - Dst: fwupd_bios_setting_set_current_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:42,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:43,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:43,1
    - Dst: fwupd_bios_setting_add_possible_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:45,1
    - Dst: fwupd_bios_setting_add_possible_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:46,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:47,1
    - Dst: fwupd_bios_setting_has_possible_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:47,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:48,1
    - Dst: fwupd_bios_setting_has_possible_value
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:48,1
    - Dst: fwupd_bios_setting_set_filename
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:50,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:51,1
    - Dst: fwupd_bios_setting_get_filename
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:51,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:53,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:53,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:54,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:66,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:67,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:70,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:70,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:71,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:71,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:72,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:73,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:74,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:74,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:75,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:87,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:88,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:91,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:91,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:92,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:93,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:94,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:109,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:110,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:113,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:113,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:114,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:115,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:118,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:119,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:121,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:121,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:122,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:123,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:124,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:127,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:127,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:128,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:128,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:129,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:130,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:131,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:131,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:132,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:143,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:144,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:147,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:147,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:148,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:149,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:150,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:165,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 14
    functionDepth: 4
    functionLinenumber: 14
    functionLinenumberEnd: 167
    functionName: fwupd_bios_settings_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting-test.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_to_string
    - FWUPD_CODEC
    - fwupd_bios_setting_get_current_value
    - fwupd_bios_setting_set_filename
    - g_assert_nonnull
    - fwupd_bios_setting_set_kind
    - fwupd_bios_setting_set_current_value
    - fwupd_bios_setting_has_possible_value
    - fu_test_compare_lines
    - fwupd_codec_to_variant
    - g_assert_cmpint
    - fwupd_bios_setting_set_description
    - fwupd_bios_setting_set_name
    - fwupd_codec_from_json_string
    - fwupd_codec_from_variant
    - fwupd_bios_setting_get_description
    - g_test_skip
    - g_assert_false
    - fwupd_bios_setting_get_kind
    - fwupd_bios_setting_get_filename
    - fwupd_bios_setting_get_name
    - g_assert_no_error
    - fwupd_codec_to_json_string
    - g_error_matches
    - fwupd_bios_setting_new
    - fwupd_bios_setting_add_possible_value
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_bios_settings_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:172,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:173,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupd/fwupd-bios-setting-test.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: main
    functionSourceFile: /src/fwupd/libfwupd/fwupd-bios-setting-test.c
    functionUses: 3
    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: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: g_log_get_debug_enabled
    functionSourceFile: /src/fwupd/libfwupd/fwupd-build-glib-2-72.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: g_log_get_debug_enabled()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:21,1
    - Dst: fwupd_release_new
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:23,1
    - Dst: fwupd_release_new
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:25,1
    - Dst: fwupd_release_add_metadata_item
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:26,1
    - Dst: fwupd_release_add_metadata_item
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:27,1
    - Dst: fwupd_release_set_remote_id
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:28,1
    - Dst: fwupd_release_set_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:29,1
    - Dst: fwupd_release_set_id
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:30,1
    - Dst: fwupd_release_set_detach_caption
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:31,1
    - Dst: fwupd_release_set_detach_image
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:32,1
    - Dst: fwupd_release_set_update_message
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:33,1
    - Dst: fwupd_release_set_update_image
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:34,1
    - Dst: fwupd_release_set_filename
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:35,1
    - Dst: fwupd_release_set_protocol
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:36,1
    - Dst: fwupd_release_set_license
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:37,1
    - Dst: fwupd_release_set_name
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:38,1
    - Dst: fwupd_release_set_name_variant_suffix
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:39,1
    - Dst: fwupd_release_set_summary
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:40,1
    - Dst: fwupd_release_set_branch
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:41,1
    - Dst: fwupd_release_set_description
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:42,1
    - Dst: fwupd_release_set_homepage
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:43,1
    - Dst: fwupd_release_set_details_url
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:44,1
    - Dst: fwupd_release_set_source_url
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:45,1
    - Dst: fwupd_release_set_sbom_url
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:46,1
    - Dst: fwupd_release_set_version
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:47,1
    - Dst: fwupd_release_set_vendor
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:48,1
    - Dst: fwupd_release_set_size
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:49,1
    - Dst: fwupd_release_set_created
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:50,1
    - Dst: fwupd_release_set_install_duration
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:51,1
    - Dst: fwupd_release_add_category
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:52,1
    - Dst: fwupd_release_add_category
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:53,1
    - Dst: fwupd_release_add_issue
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:54,1
    - Dst: fwupd_release_add_issue
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:55,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:56,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:57,1
    - Dst: fwupd_release_add_tag
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:58,1
    - Dst: fwupd_release_add_tag
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:59,1
    - Dst: fwupd_release_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:60,1
    - Dst: fwupd_release_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:61,1
    - Dst: fwupd_release_add_flag
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:62,1
    - Dst: fwupd_release_add_flag
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:63,1
    - Dst: fwupd_release_add_flag
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:64,1
    - Dst: fwupd_release_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:65,1
    - Dst: fwupd_release_set_urgency
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:66,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:67,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:67,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:68,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:68,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:69,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:70,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:71,1
    - Dst: fwupd_release_get_metadata_item
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:71,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:72,1
    - Dst: fwupd_release_get_metadata_item
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:72,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:73,1
    - Dst: fwupd_release_get_remote_id
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:73,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:74,1
    - Dst: fwupd_release_get_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:74,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:75,1
    - Dst: fwupd_release_get_id
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:75,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:76,1
    - Dst: fwupd_release_get_detach_caption
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:76,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:77,1
    - Dst: fwupd_release_get_detach_image
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:77,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:78,1
    - Dst: fwupd_release_get_update_message
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:78,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:79,1
    - Dst: fwupd_release_get_update_image
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:79,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:80,1
    - Dst: fwupd_release_get_filename
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:80,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:81,1
    - Dst: fwupd_release_get_protocol
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:81,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:82,1
    - Dst: fwupd_release_get_license
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:82,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:83,1
    - Dst: fwupd_release_get_name
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:83,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:84,1
    - Dst: fwupd_release_get_name_variant_suffix
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:84,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:85,1
    - Dst: fwupd_release_get_summary
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:85,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:86,1
    - Dst: fwupd_release_get_branch
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:86,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:87,1
    - Dst: fwupd_release_get_description
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:87,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:88,1
    - Dst: fwupd_release_get_homepage
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:88,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:89,1
    - Dst: fwupd_release_get_details_url
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:89,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:90,1
    - Dst: fwupd_release_get_source_url
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:90,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:91,1
    - Dst: fwupd_release_get_sbom_url
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:91,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:92,1
    - Dst: fwupd_release_get_version
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:92,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:93,1
    - Dst: fwupd_release_get_vendor
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:93,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:94,1
    - Dst: fwupd_release_get_size
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:94,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:95,1
    - Dst: fwupd_release_get_created
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:95,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:96,1
    - Dst: fwupd_release_has_category
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:96,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:97,1
    - Dst: fwupd_release_has_tag
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:97,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:98,1
    - Dst: fwupd_release_has_checksum
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:98,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:99,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:99,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:100,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:100,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:101,1
    - Dst: fwupd_release_get_issues
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:101,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:102,1
    - Dst: fwupd_release_get_locations
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:102,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:103,1
    - Dst: fwupd_release_get_categories
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:103,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:104,1
    - Dst: fwupd_release_get_tags
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:104,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:105,1
    - Dst: fwupd_release_get_checksums
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:105,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:106,1
    - Dst: fwupd_release_get_urgency
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:106,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:107,1
    - Dst: fwupd_release_get_install_duration
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:107,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:110,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:110,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:111,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:112,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:113,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:113,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:114,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:115,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:116,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:117,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:118,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:121,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:121,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:122,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:158,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 13
    functionDepth: 4
    functionLinenumber: 13
    functionLinenumberEnd: 160
    functionName: fwupd_release_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release-test.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_to_string
    - fwupd_release_get_size
    - fwupd_release_get_name
    - fwupd_release_get_source_url
    - fwupd_release_get_license
    - fwupd_release_get_appstream_id
    - fwupd_codec_to_json_string
    - fwupd_release_has_category
    - fwupd_release_get_version
    - fwupd_release_get_sbom_url
    - fwupd_release_new
    - fwupd_release_set_summary
    - fwupd_release_set_branch
    - g_autoptr
    - fwupd_release_has_checksum
    - fwupd_release_get_issues
    - fwupd_release_set_version
    - fwupd_release_set_detach_image
    - fwupd_release_get_install_duration
    - fwupd_release_get_summary
    - g_assert_false
    - fwupd_release_get_checksums
    - fwupd_release_get_update_message
    - fwupd_release_set_update_message
    - fwupd_release_add_issue
    - fwupd_release_set_created
    - fwupd_release_set_size
    - fwupd_release_remove_flag
    - fwupd_release_has_flag
    - fwupd_release_get_homepage
    - fwupd_release_set_id
    - g_assert_cmpstr
    - FWUPD_CODEC
    - fwupd_release_set_vendor
    - g_assert_nonnull
    - fwupd_release_add_metadata_item
    - fwupd_release_get_detach_image
    - fwupd_release_get_description
    - fwupd_release_get_detach_caption
    - fu_test_compare_lines
    - fwupd_codec_to_variant
    - fwupd_release_get_name_variant_suffix
    - fwupd_release_get_details_url
    - fwupd_release_get_locations
    - fwupd_release_get_protocol
    - fwupd_release_set_license
    - fwupd_release_add_flag
    - fwupd_release_set_filename
    - fwupd_release_get_branch
    - fwupd_release_set_install_duration
    - fwupd_release_get_tags
    - fwupd_release_set_homepage
    - fwupd_release_add_category
    - fwupd_release_get_categories
    - fwupd_release_get_id
    - g_assert_true
    - fwupd_release_set_appstream_id
    - fwupd_release_set_name_variant_suffix
    - fwupd_release_set_name
    - fwupd_release_set_source_url
    - fwupd_release_get_created
    - fwupd_release_get_filename
    - fwupd_release_set_detach_caption
    - fwupd_release_get_remote_id
    - fwupd_release_get_update_image
    - g_assert_cmpint
    - fwupd_release_has_tag
    - fwupd_release_add_tag
    - fwupd_release_set_details_url
    - fwupd_release_set_description
    - fwupd_release_set_protocol
    - fwupd_codec_from_variant
    - fwupd_release_get_vendor
    - fwupd_release_set_update_image
    - fwupd_release_add_location
    - fwupd_release_get_urgency
    - fwupd_release_set_remote_id
    - fwupd_release_set_sbom_url
    - g_assert_no_error
    - fwupd_release_add_checksum
    - fwupd_release_get_metadata_item
    - fwupd_release_set_urgency
    linkageType: ''
    returnType: void
    signature: void fwupd_release_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:165,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:166,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupd/fwupd-release-test.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: main
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release-test.c
    functionUses: 3
    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: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJsonNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: fwupd_json_node_get_kind
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-node.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    linkageType: ''
    returnType: FwupdJsonNodeKind
    signature: FwupdJsonNodeKind fwupd_json_node_get_kind(FwupdJsonNode *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:52,1
    - Dst: g_ref_count_init
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: fwupd_json_node_new_internal
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-node.c
    functionUses: 0
    functionsReached:
    - g_ref_count_init
    - g_new0
    linkageType: ''
    returnType: FwupdJsonNode
    signature: 'FwupdJsonNode *

      fwupd_json_node_new_internal(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:70,1
    - Dst: fwupd_json_node_new_internal
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:70,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:72,1
    - Dst: g_ref_string_new
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:75,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 78
    functionName: fwupd_json_node_new_raw
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-node.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_node_new_internal
    - g_steal_pointer
    - g_ref_string_new
    - g_autoptr
    linkageType: ''
    returnType: FwupdJsonNode
    signature: 'FwupdJsonNode *

      fwupd_json_node_new_raw(const gchar *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_json_node_new_internal
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:83,1
    - Dst: g_ref_string_acquire
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - GRefString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: fwupd_json_node_new_raw_internal
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-node.c
    functionUses: 0
    functionsReached:
    - fwupd_json_node_new_internal
    - g_ref_string_acquire
    linkageType: ''
    returnType: FwupdJsonNode
    signature: 'FwupdJsonNode *

      fwupd_json_node_new_raw_internal(GRefString *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_json_node_new_internal
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: fwupd_json_node_new_null_internal
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-node.c
    functionUses: 0
    functionsReached:
    - fwupd_json_node_new_internal
    linkageType: ''
    returnType: FwupdJsonNode
    signature: 'FwupdJsonNode *

      fwupd_json_node_new_null_internal(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:111,1
    - Dst: fwupd_json_node_new_internal
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:111,1
    - Dst: g_ref_string_new
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:114,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - value
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: fwupd_json_node_new_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-node.c
    functionUses: 0
    functionsReached:
    - fwupd_json_node_new_internal
    - g_steal_pointer
    - g_autoptr
    - g_ref_string_new
    linkageType: ''
    returnType: FwupdJsonNode
    signature: 'FwupdJsonNode *

      fwupd_json_node_new_string(const gchar *value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_json_node_new_internal
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:123,1
    - Dst: g_ref_string_acquire
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - GRefString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 130
    functionName: fwupd_json_node_new_string_internal
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-node.c
    functionUses: 0
    functionsReached:
    - fwupd_json_node_new_internal
    - g_ref_string_acquire
    linkageType: ''
    returnType: FwupdJsonNode
    signature: 'FwupdJsonNode *

      fwupd_json_node_new_string_internal(GRefString *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:145,1
    - Dst: fwupd_json_node_new_internal
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:145,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:147,1
    - Dst: fwupd_json_object_ref
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:150,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - json_obj
    argTypes:
    - FwupdJsonObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: fwupd_json_node_new_object
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-node.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_node_new_internal
    - fwupd_json_object_ref
    - g_steal_pointer
    - g_autoptr
    linkageType: ''
    returnType: FwupdJsonNode
    signature: 'FwupdJsonNode *

      fwupd_json_node_new_object(FwupdJsonObject *json_obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:168,1
    - Dst: fwupd_json_node_new_internal
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:168,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:170,1
    - Dst: fwupd_json_array_ref
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:173,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - json_arr
    argTypes:
    - FwupdJsonArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 176
    functionName: fwupd_json_node_new_array
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-node.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_node_new_internal
    - g_steal_pointer
    - fwupd_json_array_ref
    - g_autoptr
    linkageType: ''
    returnType: FwupdJsonNode
    signature: 'FwupdJsonNode *

      fwupd_json_node_new_array(FwupdJsonArray *json_arr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:191,1
    - Dst: g_ref_count_inc
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJsonNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: fwupd_json_node_ref
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-node.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_ref_count_inc
    linkageType: ''
    returnType: FwupdJsonNode
    signature: 'FwupdJsonNode *

      fwupd_json_node_ref(FwupdJsonNode *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:209,1
    - Dst: g_ref_count_dec
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:211,1
    - Dst: FwupdJsonNode*::destroy_func
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:214,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJsonNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 217
    functionName: fwupd_json_node_unref
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-node.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FwupdJsonNode*::destroy_func
    - g_free
    - g_ref_count_dec
    linkageType: ''
    returnType: FwupdJsonNode
    signature: 'FwupdJsonNode *

      fwupd_json_node_unref(FwupdJsonNode *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:233,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:235,1
    - Dst: fwupd_json_node_kind_to_string
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:239,1
    - Dst: fwupd_json_object_ref
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdJsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 243
    functionName: fwupd_json_node_get_object
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-node.c
    functionUses: 8
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_object_ref
    - fwupd_json_node_kind_to_string
    - g_set_error
    linkageType: ''
    returnType: FwupdJsonObject
    signature: 'FwupdJsonObject *

      fwupd_json_node_get_object(FwupdJsonNode *self, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:259,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:261,1
    - Dst: fwupd_json_node_kind_to_string
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:265,1
    - Dst: fwupd_json_array_ref
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdJsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 269
    functionName: fwupd_json_node_get_array
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-node.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_array_ref
    - fwupd_json_node_kind_to_string
    - g_set_error
    linkageType: ''
    returnType: FwupdJsonArray
    signature: 'FwupdJsonArray *

      fwupd_json_node_get_array(FwupdJsonNode *self, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:285,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:287,1
    - Dst: fwupd_json_node_kind_to_string
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdJsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 295
    functionName: fwupd_json_node_get_raw
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-node.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_node_kind_to_string
    - g_set_error
    linkageType: ''
    returnType: GRefString
    signature: 'GRefString *

      fwupd_json_node_get_raw(FwupdJsonNode *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:311,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:313,1
    - Dst: fwupd_json_node_kind_to_string
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:317,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdJsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 328
    functionName: fwupd_json_node_get_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-node.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - fwupd_json_node_kind_to_string
    - g_set_error
    linkageType: ''
    returnType: GRefString
    signature: 'GRefString *

      fwupd_json_node_get_string(FwupdJsonNode *self, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:337,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:342,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:345,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:347,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:349,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:351,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:353,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:356,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - str
    argTypes:
    - FwupdJsonNode*
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 357
    functionName: fwupd_json_node_append_string_safe
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-node.c
    functionUses: 0
    functionsReached:
    - g_string_append_c
    - g_string_append
    linkageType: ''
    returnType: void
    signature: void fwupd_json_node_append_string_safe(FwupdJsonNode *self, GString
      *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:365,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:366,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:369,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:373,1
    - Dst: fwupd_json_node_get_raw
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:373,1
    - Dst: fwupd_json_node_append_string_safe
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:377,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:381,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:381,1
    - Dst: fwupd_json_object_append_string
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:382,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:386,1
    - Dst: fwupd_json_node_get_array
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:386,1
    - Dst: fwupd_json_array_append_string
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:387,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - self
    - str
    - depth
    - flags
    argTypes:
    - FwupdJsonNode*
    - GString*
    - guint
    - FwupdJsonExportFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 390
    functionName: fwupd_json_node_append_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-node.c
    functionUses: 0
    functionsReached:
    - g_string_append
    - fwupd_json_node_append_string_safe
    - g_return_if_fail
    - fwupd_json_object_append_string
    - fwupd_json_array_append_string
    - fwupd_json_node_get_array
    - fwupd_json_node_get_raw
    - fwupd_json_node_get_object
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fwupd_json_node_append_string(FwupdJsonNode *self,\n\t\t\t      GString
      *str,\n\t\t\t      guint depth,\n\t\t\t      FwupdJsonExportFlags flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:406,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:406,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:407,1
    - Dst: fwupd_json_node_append_string
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:408,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-json-node.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdJsonNode*
    - FwupdJsonExportFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 403
    functionDepth: 3
    functionLinenumber: 403
    functionLinenumberEnd: 410
    functionName: fwupd_json_node_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-node.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_steal_pointer
    - g_string_new
    - g_autoptr
    - fwupd_json_node_append_string
    linkageType: ''
    returnType: GString
    signature: 'GString *

      fwupd_json_node_to_string(FwupdJsonNode *self, FwupdJsonExportFlags flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:54,1
    - Dst: FWUPD_IS_JSON_PARSER
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - max_depth
    argTypes:
    - FwupdJsonParser*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: fwupd_json_parser_set_max_depth
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 7
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_JSON_PARSER
    linkageType: ''
    returnType: void
    signature: void fwupd_json_parser_set_max_depth(FwupdJsonParser *self, guint max_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:73,1
    - Dst: FWUPD_IS_JSON_PARSER
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - max_items
    argTypes:
    - FwupdJsonParser*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: fwupd_json_parser_set_max_items
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 7
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_JSON_PARSER
    linkageType: ''
    returnType: void
    signature: void fwupd_json_parser_set_max_items(FwupdJsonParser *self, guint max_items)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:92,1
    - Dst: FWUPD_IS_JSON_PARSER
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - max_quoted
    argTypes:
    - FwupdJsonParser*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: fwupd_json_parser_set_max_quoted
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 7
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_JSON_PARSER
    linkageType: ''
    returnType: void
    signature: void fwupd_json_parser_set_max_quoted(FwupdJsonParser *self, guint
      max_quoted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:126,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:129,1
    - Dst: g_string_sized_new
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:130,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJsonParser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 134
    functionName: fwupd_json_parser_helper_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 0
    functionsReached:
    - g_byte_array_set_size
    - g_byte_array_new
    - g_new0
    - g_string_sized_new
    linkageType: ''
    returnType: FwupdJsonParserHelper
    signature: 'FwupdJsonParserHelper *

      fwupd_json_parser_helper_new(FwupdJsonParser *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:140,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:141,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:142,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FwupdJsonParserHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 144
    functionName: fwupd_json_parser_helper_free
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_byte_array_unref
    - g_free
    - g_string_free
    linkageType: ''
    returnType: void
    signature: void fwupd_json_parser_helper_free(FwupdJsonParserHelper *helper)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_ref_string_new_len
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:156,1
    - Dst: g_ascii_strncasecmp
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:160,1
    - Dst: g_ref_string_new_len
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:165,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:168,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - helper
    - token
    - str
    argTypes:
    - FwupdJsonParserHelper*
    - FwupdJsonParserToken*
    - GRefString**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 169
    functionName: fwupd_json_parser_helper_dump_acc
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 0
    functionsReached:
    - g_ref_string_new_len
    - g_ascii_strncasecmp
    - g_string_truncate
    linkageType: ''
    returnType: void
    signature: "void fwupd_json_parser_helper_dump_acc(FwupdJsonParserHelper *helper,\n\t\t\t\t
      \ FwupdJsonParserToken *token,\n\t\t\t\t  GRefString **str)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:176,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:178,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:182,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - helper
    - error
    argTypes:
    - FwupdJsonParserHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 193
    functionName: fwupd_json_parser_helper_slurp
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 0
    functionsReached:
    - g_input_stream_read
    - g_set_error_literal
    - fwupd_error_convert
    - g_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_json_parser_helper_slurp(FwupdJsonParserHelper *helper,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - gchar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: fwupd_json_parser_unescape_char
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: gchar fwupd_json_parser_unescape_char(gchar data)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:219,1
    - Dst: fwupd_json_parser_helper_slurp
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:220,1
    - Dst: fwupd_json_parser_helper_dump_acc
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:228,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:244,1
    - Dst: fwupd_json_parser_unescape_char
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:245,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:246,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:247,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:260,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:261,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:262,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:276,1
    - Dst: fwupd_json_parser_helper_dump_acc
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:283,1
    - Dst: fwupd_json_parser_helper_dump_acc
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:290,1
    - Dst: fwupd_json_parser_helper_dump_acc
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:300,1
    - Dst: g_ascii_isspace
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:312,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:315,1
    - Dst: g_ascii_iscntrl
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:326,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:327,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:336,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 79
    argCount: 5
    argNames:
    - helper
    - token
    - str
    - buf_offset_enable
    - error
    argTypes:
    - FwupdJsonParserHelper*
    - FwupdJsonParserToken*
    - GRefString**
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 339
    functionName: fwupd_json_parser_helper_get_next_token_chunk
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fwupd_json_parser_helper_dump_acc
    - g_ascii_iscntrl
    - fwupd_json_parser_helper_slurp
    - g_ascii_isspace
    - g_string_append_c
    - G_UNLIKELY
    - fwupd_json_parser_unescape_char
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_json_parser_helper_get_next_token_chunk(FwupdJsonParserHelper
      *helper,\n\t\t\t\t\t      FwupdJsonParserToken *token,\n\t\t\t\t\t      GRefString
      **str,\n\t\t\t\t\t      gboolean *buf_offset_enable,\n\t\t\t\t\t      GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_json_parser_helper_get_next_token_chunk
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - helper
    - token
    - str
    - error
    argTypes:
    - FwupdJsonParserHelper*
    - FwupdJsonParserToken*
    - GRefString**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 362
    functionName: fwupd_json_parser_helper_get_next_token
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_helper_get_next_token_chunk
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_json_parser_helper_get_next_token(FwupdJsonParserHelper
      *helper,\n\t\t\t\t\tFwupdJsonParserToken *token,\n\t\t\t\t\tGRefString **str,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - depth
    - error
    argTypes:
    - FwupdJsonParser*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 376
    functionName: fwupd_json_parser_helper_check_depth
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 0
    functionsReached:
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_json_parser_helper_check_depth(FwupdJsonParser *self,
      guint depth, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:384,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:384,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:386,1
    - Dst: fwupd_json_parser_helper_check_depth
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:386,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:389,1
    - Dst: fwupd_json_parser_helper_get_next_token
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:392,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:397,1
    - Dst: fwupd_json_parser_load_object
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:398,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:399,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:401,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:403,1
    - Dst: fwupd_json_parser_load_array
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:404,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:405,1
    - Dst: fwupd_json_array_add_array
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:407,1
    - Dst: fwupd_json_array_add_string_internal
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:409,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:411,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:412,1
    - Dst: fwupd_json_array_add_raw_internal
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:419,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:421,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:427,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:428,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:429,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:440,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 3
    argNames:
    - self
    - helper
    - error
    argTypes:
    - FwupdJsonParser*
    - FwupdJsonParserHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 381
    functionDepth: 4
    functionLinenumber: 381
    functionLinenumberEnd: 441
    functionName: fwupd_json_parser_load_array
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 1
    functionsReached:
    - fwupd_json_parser_load_object
    - fwupd_json_parser_load_array
    - fwupd_json_array_get_size
    - g_set_error
    - fwupd_json_parser_helper_check_depth
    - g_set_error_literal
    - g_steal_pointer
    - fwupd_json_parser_helper_get_next_token
    - fwupd_json_array_new
    - fwupd_json_array_add_object
    - fwupd_json_array_add_array
    - g_autoptr
    - fwupd_json_array_add_raw_internal
    - G_UNLIKELY
    - fwupd_json_array_add_string_internal
    linkageType: ''
    returnType: FwupdJsonArray
    signature: 'FwupdJsonArray *

      fwupd_json_parser_load_array(FwupdJsonParser *self, FwupdJsonParserHelper *helper,
      GError **error)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:446,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:446,1
    - Dst: fwupd_json_parser_helper_check_depth
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:448,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:454,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:455,1
    - Dst: fwupd_json_parser_helper_get_next_token
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:458,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:462,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:463,1
    - Dst: fwupd_json_parser_helper_get_next_token
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:471,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:474,1
    - Dst: fwupd_json_parser_helper_get_next_token
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:481,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:485,1
    - Dst: fwupd_json_parser_load_object
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:486,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:487,1
    - Dst: fwupd_json_object_add_object_internal
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:489,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:491,1
    - Dst: fwupd_json_parser_load_array
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:492,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:493,1
    - Dst: fwupd_json_object_add_array_internal
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:495,1
    - Dst: fwupd_json_object_add_string_internal
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:497,1
    - Dst: fwupd_json_object_add_null_internal
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:499,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:501,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:502,1
    - Dst: fwupd_json_object_add_raw_internal
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:509,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:511,1
    - Dst: fwupd_json_object_get_size
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:512,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:513,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:524,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 3
    argNames:
    - self
    - helper
    - error
    argTypes:
    - FwupdJsonParser*
    - FwupdJsonParserHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 443
    functionDepth: 5
    functionLinenumber: 443
    functionLinenumberEnd: 525
    functionName: fwupd_json_parser_load_object
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 2
    functionsReached:
    - fwupd_json_parser_load_object
    - fwupd_json_parser_load_array
    - fwupd_json_object_add_string_internal
    - fwupd_json_object_add_array_internal
    - g_set_error
    - fwupd_json_object_new
    - fwupd_json_parser_helper_check_depth
    - fwupd_json_object_add_null_internal
    - g_steal_pointer
    - fwupd_json_object_add_object_internal
    - fwupd_json_parser_helper_get_next_token
    - fwupd_json_object_add_raw_internal
    - g_autoptr
    - fwupd_json_object_get_size
    - G_UNLIKELY
    linkageType: ''
    returnType: FwupdJsonObject
    signature: 'FwupdJsonObject *

      fwupd_json_parser_load_object(FwupdJsonParser *self, FwupdJsonParserHelper *helper,
      GError **error)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:533,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:538,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:540,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:542,1
    - Dst: fwupd_json_parser_helper_get_next_token
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:545,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:548,1
    - Dst: fwupd_json_parser_load_object
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:549,1
    - Dst: fwupd_json_node_new_object
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:552,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:555,1
    - Dst: fwupd_json_parser_load_array
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:556,1
    - Dst: fwupd_json_node_new_array
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:559,1
    - Dst: fwupd_json_node_new_string_internal
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:562,1
    - Dst: fwupd_json_node_new_raw_internal
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:564,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:567,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - self
    - helper
    - error
    argTypes:
    - FwupdJsonParser*
    - FwupdJsonParserHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 527
    functionDepth: 6
    functionLinenumber: 527
    functionLinenumberEnd: 572
    functionName: fwupd_json_parser_load_from_stream_internal
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_load_object
    - fwupd_json_node_new_string_internal
    - fwupd_json_parser_load_array
    - fwupd_json_node_new_array
    - fwupd_json_node_new_raw_internal
    - g_set_error_literal
    - fwupd_json_parser_helper_get_next_token
    - g_warning
    - g_autoptr
    - fwupd_json_node_new_object
    linkageType: ''
    returnType: FwupdJsonNode
    signature: "FwupdJsonNode *\nfwupd_json_parser_load_from_stream_internal(FwupdJsonParser
      *self,\n\t\t\t\t\t    FwupdJsonParserHelper *helper,\n\t\t\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:593,1
    - Dst: fwupd_json_parser_helper_new
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:593,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:595,1
    - Dst: FWUPD_IS_JSON_PARSER
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:595,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:596,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:597,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:600,1
    - Dst: fwupd_json_parser_load_from_stream_internal
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - blob
    - flags
    - error
    argTypes:
    - FwupdJsonParser*
    - GBytes*
    - FwupdJsonLoadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 587
    functionDepth: 7
    functionLinenumber: 587
    functionLinenumberEnd: 602
    functionName: fwupd_json_parser_load_from_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - g_memory_input_stream_new_from_bytes
    - fwupd_json_parser_helper_new
    - fwupd_json_parser_load_from_stream_internal
    - FWUPD_IS_JSON_PARSER
    - g_autoptr
    linkageType: ''
    returnType: FwupdJsonNode
    signature: "FwupdJsonNode *\nfwupd_json_parser_load_from_bytes(FwupdJsonParser
      *self,\n\t\t\t\t  GBytes *blob,\n\t\t\t\t  FwupdJsonLoadFlags flags,\n\t\t\t\t
      \ GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:623,1
    - Dst: fwupd_json_parser_helper_new
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:623,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:625,1
    - Dst: FWUPD_IS_JSON_PARSER
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:625,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:626,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:627,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:630,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:630,1
    - Dst: fwupd_json_parser_load_from_stream_internal
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - text
    - flags
    - error
    argTypes:
    - FwupdJsonParser*
    - gchar*
    - FwupdJsonLoadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 617
    functionDepth: 7
    functionLinenumber: 617
    functionLinenumberEnd: 632
    functionName: fwupd_json_parser_load_from_data
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_memory_input_stream_new_from_data
    - fwupd_json_parser_helper_new
    - fwupd_json_parser_load_from_stream_internal
    - strlen
    - FWUPD_IS_JSON_PARSER
    - g_autoptr
    linkageType: ''
    returnType: FwupdJsonNode
    signature: "FwupdJsonNode *\nfwupd_json_parser_load_from_data(FwupdJsonParser
      *self,\n\t\t\t\t const gchar *text,\n\t\t\t\t FwupdJsonLoadFlags flags,\n\t\t\t\t
      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:653,1
    - Dst: fwupd_json_parser_helper_new
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:653,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:655,1
    - Dst: FWUPD_IS_JSON_PARSER
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:655,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:656,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:656,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:657,1
    - Dst: G_IS_SEEKABLE
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:660,1
    - Dst: g_seekable_can_seek
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:660,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:660,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:661,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:661,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:662,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:666,1
    - Dst: fwupd_json_parser_load_from_stream_internal
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:668,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FwupdJsonParser*
    - GInputStream*
    - FwupdJsonLoadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 647
    functionDepth: 7
    functionLinenumber: 647
    functionLinenumberEnd: 669
    functionName: fwupd_json_parser_load_from_stream
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_seekable_seek
    - fwupd_json_parser_helper_new
    - fwupd_json_parser_load_from_stream_internal
    - g_seekable_can_seek
    - fwupd_error_convert
    - g_object_ref
    - G_IS_SEEKABLE
    - G_SEEKABLE
    - G_IS_INPUT_STREAM
    - FWUPD_IS_JSON_PARSER
    - g_autoptr
    linkageType: ''
    returnType: FwupdJsonNode
    signature: "FwupdJsonNode *\nfwupd_json_parser_load_from_stream(FwupdJsonParser
      *self,\n\t\t\t\t   GInputStream *stream,\n\t\t\t\t   FwupdJsonLoadFlags flags,\n\t\t\t\t
      \  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdJsonParserClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 674
    functionName: fwupd_json_parser_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwupd_json_parser_class_init(FwupdJsonParserClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJsonParser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 682
    functionName: fwupd_json_parser_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwupd_json_parser_init(FwupdJsonParser *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-json-parser.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 695
    functionName: fwupd_json_parser_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-parser.c
    functionUses: 7
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FwupdJsonParser
    signature: 'FwupdJsonParser *

      fwupd_json_parser_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ref_string_release
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:36,1
    - Dst: fwupd_json_node_unref
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:37,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - entry
    argTypes:
    - FwupdJsonObjectEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: fwupd_json_object_entry_free
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 0
    functionsReached:
    - g_ref_string_release
    - fwupd_json_node_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fwupd_json_object_entry_free(FwupdJsonObjectEntry *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:53,1
    - Dst: g_ref_count_init
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:54,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: fwupd_json_object_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 39
    functionsReached:
    - g_ref_count_init
    - g_ptr_array_new_with_free_func
    - g_new0
    linkageType: ''
    returnType: FwupdJsonObject
    signature: 'FwupdJsonObject *

      fwupd_json_object_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:72,1
    - Dst: g_ref_count_inc
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJsonObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: fwupd_json_object_ref
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_ref_count_inc
    linkageType: ''
    returnType: FwupdJsonObject
    signature: 'FwupdJsonObject *

      fwupd_json_object_ref(FwupdJsonObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:90,1
    - Dst: g_ref_count_dec
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:91,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:93,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJsonObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: fwupd_json_object_unref
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_free
    - g_ref_count_dec
    - g_ptr_array_unref
    linkageType: ''
    returnType: FwupdJsonObject
    signature: 'FwupdJsonObject *

      fwupd_json_object_unref(FwupdJsonObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:109,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJsonObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: fwupd_json_object_clear
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - g_ptr_array_set_size
    linkageType: ''
    returnType: void
    signature: void fwupd_json_object_clear(FwupdJsonObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJsonObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: fwupd_json_object_get_size
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint
    signature: guint fwupd_json_object_get_size(FwupdJsonObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:147,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:148,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:152,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FwupdJsonObject*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 163
    functionName: fwupd_json_object_get_key_for_index
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_ptr_array_index
    - g_set_error
    linkageType: ''
    returnType: GRefString
    signature: 'GRefString *

      fwupd_json_object_get_key_for_index(FwupdJsonObject *self, guint idx, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:182,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:183,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:187,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:196,1
    - Dst: fwupd_json_node_ref
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FwupdJsonObject*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 198
    functionName: fwupd_json_object_get_node_for_index
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_node_ref
    - g_ptr_array_index
    - g_set_error
    linkageType: ''
    returnType: FwupdJsonNode
    signature: 'FwupdJsonNode *

      fwupd_json_object_get_node_for_index(FwupdJsonObject *self, guint idx, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:204,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:205,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 210
    functionName: fwupd_json_object_get_entry
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_ptr_array_index
    - g_set_error
    linkageType: ''
    returnType: FwupdJsonObjectEntry
    signature: 'FwupdJsonObjectEntry *

      fwupd_json_object_get_entry(FwupdJsonObject *self, const gchar *key, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:229,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:230,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:231,1
    - Dst: fwupd_json_object_get_entry
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:233,1
    - Dst: fwupd_json_node_get_string
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 237
    functionName: fwupd_json_object_get_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_object_get_entry
    - fwupd_json_node_get_string
    linkageType: ''
    returnType: GRefString
    signature: 'GRefString *

      fwupd_json_object_get_string(FwupdJsonObject *self, const gchar *key, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:260,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:261,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:262,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:263,1
    - Dst: fwupd_json_object_get_entry
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:265,1
    - Dst: fwupd_json_node_get_string
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - key
    - value_default
    - error
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 269
    functionName: fwupd_json_object_get_string_with_default
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_object_get_entry
    - fwupd_json_node_get_string
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfwupd_json_object_get_string_with_default(FwupdJsonObject
      *self,\n\t\t\t\t\t  const gchar *key,\n\t\t\t\t\t  const gchar *value_default,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:295,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:296,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:297,1
    - Dst: fwupd_json_object_get_entry
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:299,1
    - Dst: fwupd_json_node_get_raw
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:302,1
    - Dst: g_ascii_strtoll
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:307,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:308,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:309,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:315,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - self
    - key
    - value
    - error
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - gint64*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 327
    functionName: fwupd_json_object_get_integer
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_object_get_entry
    - g_set_error
    - strlen
    - fwupd_json_node_get_raw
    - g_ascii_strtoll
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_json_object_get_integer(FwupdJsonObject *self,\n\t\t\t
      \     const gchar *key,\n\t\t\t      gint64 *value,\n\t\t\t      GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:355,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:356,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:357,1
    - Dst: fwupd_json_object_get_entry
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:359,1
    - Dst: fwupd_json_node_get_kind
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:361,1
    - Dst: fwupd_json_node_get_raw
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:366,1
    - Dst: g_ascii_strtoll
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:371,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:372,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:373,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:379,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - self
    - key
    - value
    - value_default
    - error
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - gint64*
    - gint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 391
    functionName: fwupd_json_object_get_integer_with_default
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_object_get_entry
    - g_set_error
    - strlen
    - fwupd_json_node_get_raw
    - g_ascii_strtoll
    - fwupd_json_node_get_kind
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_json_object_get_integer_with_default(FwupdJsonObject
      *self,\n\t\t\t\t\t   const gchar *key,\n\t\t\t\t\t   gint64 *value,\n\t\t\t\t\t
      \  gint64 value_default,\n\t\t\t\t\t   GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:415,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:416,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:417,1
    - Dst: fwupd_json_object_get_entry
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:419,1
    - Dst: fwupd_json_node_get_raw
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:422,1
    - Dst: g_ascii_strcasecmp
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:427,1
    - Dst: g_ascii_strcasecmp
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:432,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:439,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - self
    - key
    - value
    - error
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 441
    functionName: fwupd_json_object_get_boolean
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_object_get_entry
    - g_set_error
    - fwupd_json_node_get_raw
    - g_ascii_strcasecmp
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_json_object_get_boolean(FwupdJsonObject *self,\n\t\t\t
      \     const gchar *key,\n\t\t\t      gboolean *value,\n\t\t\t      GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:467,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:468,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:469,1
    - Dst: fwupd_json_object_get_entry
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:471,1
    - Dst: fwupd_json_node_get_kind
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:473,1
    - Dst: fwupd_json_node_get_raw
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:478,1
    - Dst: g_ascii_strcasecmp
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:483,1
    - Dst: g_ascii_strcasecmp
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:488,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:495,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 5
    argNames:
    - self
    - key
    - value
    - value_default
    - error
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - gboolean*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 497
    functionName: fwupd_json_object_get_boolean_with_default
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_object_get_entry
    - g_set_error
    - fwupd_json_node_get_raw
    - g_ascii_strcasecmp
    - fwupd_json_node_get_kind
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fwupd_json_object_get_boolean_with_default(FwupdJsonObject
      *self,\n\t\t\t\t\t   const gchar *key,\n\t\t\t\t\t   gboolean *value,\n\t\t\t\t\t
      \  gboolean value_default,\n\t\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:516,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:517,1
    - Dst: fwupd_json_object_get_entry
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FwupdJsonObject*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 519
    functionName: fwupd_json_object_has_node
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_object_get_entry
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_json_object_has_node(FwupdJsonObject *self, const gchar
      *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:538,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:539,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:540,1
    - Dst: fwupd_json_object_get_entry
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:542,1
    - Dst: fwupd_json_node_ref
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 546
    functionName: fwupd_json_object_get_node
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_node_ref
    - fwupd_json_object_get_entry
    linkageType: ''
    returnType: FwupdJsonNode
    signature: 'FwupdJsonNode *

      fwupd_json_object_get_node(FwupdJsonObject *self, const gchar *key, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:561,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:562,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:564,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:567,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:568,1
    - Dst: fwupd_json_node_ref
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:568,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJsonObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 571
    functionName: fwupd_json_object_get_nodes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_steal_pointer
    - g_ptr_array_add
    - fwupd_json_node_ref
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_json_object_get_nodes(FwupdJsonObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:586,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:587,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:589,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:592,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:593,1
    - Dst: g_ref_string_acquire
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:593,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJsonObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 596
    functionName: fwupd_json_object_get_keys
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_steal_pointer
    - g_ptr_array_add
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    - g_ref_string_acquire
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_json_object_get_keys(FwupdJsonObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:615,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:616,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:617,1
    - Dst: fwupd_json_object_get_entry
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:619,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:622,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 623
    functionName: fwupd_json_object_get_object
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_node_get_object
    - fwupd_json_object_get_entry
    linkageType: ''
    returnType: FwupdJsonObject
    signature: 'FwupdJsonObject *

      fwupd_json_object_get_object(FwupdJsonObject *self, const gchar *key, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:642,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:643,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:644,1
    - Dst: fwupd_json_object_get_entry
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:646,1
    - Dst: fwupd_json_node_get_array
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:649,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 650
    functionName: fwupd_json_object_get_array
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_node_get_array
    - fwupd_json_object_get_entry
    linkageType: ''
    returnType: FwupdJsonArray
    signature: 'FwupdJsonArray *

      fwupd_json_object_get_array(FwupdJsonObject *self, const gchar *key, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_json_object_get_entry
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:661,1
    - Dst: fwupd_json_node_unref
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:663,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:665,1
    - Dst: g_ref_string_new_intern
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:667,1
    - Dst: g_ref_string_acquire
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:668,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:669,1
    - Dst: fwupd_json_node_new_raw_internal
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:671,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - key
    - value
    - flags
    argTypes:
    - FwupdJsonObject*
    - GRefString*
    - GRefString*
    - FwupdJsonLoadFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 652
    functionDepth: 2
    functionLinenumber: 652
    functionLinenumberEnd: 672
    functionName: fwupd_json_object_add_raw_internal
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 1
    functionsReached:
    - fwupd_json_node_unref
    - fwupd_json_object_get_entry
    - g_new0
    - fwupd_json_node_new_raw_internal
    - g_ptr_array_add
    - g_ref_string_new_intern
    - g_ref_string_acquire
    linkageType: ''
    returnType: void
    signature: "void fwupd_json_object_add_raw_internal(FwupdJsonObject *self,\n\t\t\t\t
      \  GRefString *key,\n\t\t\t\t   GRefString *value,\n\t\t\t\t   FwupdJsonLoadFlags
      flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_json_object_get_entry
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:682,1
    - Dst: fwupd_json_node_unref
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:684,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:686,1
    - Dst: g_ref_string_new_intern
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:688,1
    - Dst: g_ref_string_acquire
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:689,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:690,1
    - Dst: fwupd_json_node_new_null_internal
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:692,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - key
    - flags
    argTypes:
    - FwupdJsonObject*
    - GRefString*
    - FwupdJsonLoadFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 693
    functionName: fwupd_json_object_add_null_internal
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 1
    functionsReached:
    - fwupd_json_node_unref
    - fwupd_json_object_get_entry
    - g_new0
    - fwupd_json_node_new_null_internal
    - g_ptr_array_add
    - g_ref_string_new_intern
    - g_ref_string_acquire
    linkageType: ''
    returnType: void
    signature: "void fwupd_json_object_add_null_internal(FwupdJsonObject *self,\n\t\t\t\t
      \   GRefString *key,\n\t\t\t\t    FwupdJsonLoadFlags flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:710,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:711,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:712,1
    - Dst: fwupd_json_object_get_entry
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:714,1
    - Dst: fwupd_json_node_unref
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:716,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:718,1
    - Dst: g_ref_string_new
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:719,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:720,1
    - Dst: fwupd_json_node_ref
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - self
    - key
    - json_node
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - FwupdJsonNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 723
    functionName: fwupd_json_object_add_node
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 0
    functionsReached:
    - fwupd_json_node_unref
    - fwupd_json_object_get_entry
    - g_new0
    - g_return_if_fail
    - g_ptr_array_add
    - fwupd_json_node_ref
    - g_ref_string_new
    linkageType: ''
    returnType: void
    signature: void fwupd_json_object_add_node(FwupdJsonObject *self, const gchar
      *key, FwupdJsonNode *json_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:738,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:740,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:741,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:742,1
    - Dst: fwupd_json_node_new_raw
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:744,1
    - Dst: fwupd_json_object_add_node
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 746
    functionName: fwupd_json_object_add_raw
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_node
    - fwupd_json_node_new_raw
    - g_autoptr
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_json_object_add_raw(FwupdJsonObject *self, const gchar *key,
      const gchar *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_json_object_get_entry
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:757,1
    - Dst: fwupd_json_node_unref
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:759,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:761,1
    - Dst: g_ref_string_new_intern
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:763,1
    - Dst: g_ref_string_acquire
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:764,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:765,1
    - Dst: fwupd_json_node_new_string_internal
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - key
    - value
    - flags
    argTypes:
    - FwupdJsonObject*
    - GRefString*
    - GRefString*
    - FwupdJsonLoadFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 768
    functionName: fwupd_json_object_add_string_internal
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 1
    functionsReached:
    - fwupd_json_node_unref
    - fwupd_json_object_get_entry
    - g_new0
    - g_ptr_array_add
    - g_ref_string_new_intern
    - fwupd_json_node_new_string_internal
    - g_ref_string_acquire
    linkageType: ''
    returnType: void
    signature: "void fwupd_json_object_add_string_internal(FwupdJsonObject *self,\n\t\t\t\t
      \     GRefString *key,\n\t\t\t\t      GRefString *value,\n\t\t\t\t      FwupdJsonLoadFlags
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:783,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:785,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:786,1
    - Dst: fwupd_json_node_new_string
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:788,1
    - Dst: fwupd_json_object_add_node
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 780
    functionDepth: 2
    functionLinenumber: 780
    functionLinenumberEnd: 790
    functionName: fwupd_json_object_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 15
    functionsReached:
    - fwupd_json_object_add_node
    - fwupd_json_node_new_string
    - g_autoptr
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_json_object_add_string(FwupdJsonObject *self, const gchar
      *key, const gchar *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:806,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:811,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:812,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:813,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:815,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:816,1
    - Dst: fwupd_json_node_new_string
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:818,1
    - Dst: fwupd_json_object_add_node
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 803
    functionDepth: 2
    functionLinenumber: 803
    functionLinenumberEnd: 820
    functionName: fwupd_json_object_add_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 0
    functionsReached:
    - fwupd_json_node_new_string
    - fwupd_json_object_add_node
    - g_bytes_get_data
    - g_return_if_fail
    - g_autoptr
    - g_base64_encode
    linkageType: ''
    returnType: void
    signature: void fwupd_json_object_add_bytes(FwupdJsonObject *self, const gchar
      *key, GBytes *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:835,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:835,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:837,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:838,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:839,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:842,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - gchar**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 844
    functionName: fwupd_json_object_add_array_strv
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 1
    functionsReached:
    - fwupd_json_object_add_array
    - g_return_if_fail
    - fwupd_json_array_new
    - fwupd_json_array_add_string
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_json_object_add_array_strv(FwupdJsonObject *self, const
      gchar *key, gchar **value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:859,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:862,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:863,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:864,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:866,1
    - Dst: fwupd_json_node_new_raw
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:867,1
    - Dst: fwupd_json_object_add_node
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - gint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 856
    functionDepth: 2
    functionLinenumber: 856
    functionLinenumberEnd: 869
    functionName: fwupd_json_object_add_integer
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 10
    functionsReached:
    - fwupd_json_object_add_node
    - fwupd_json_node_new_raw
    - g_return_if_fail
    - g_strdup_printf
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_json_object_add_integer(FwupdJsonObject *self, const gchar
      *key, gint64 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:884,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:886,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:887,1
    - Dst: fwupd_json_node_new_raw
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:889,1
    - Dst: fwupd_json_object_add_node
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 881
    functionDepth: 2
    functionLinenumber: 881
    functionLinenumberEnd: 891
    functionName: fwupd_json_object_add_boolean
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 4
    functionsReached:
    - fwupd_json_object_add_node
    - fwupd_json_node_new_raw
    - g_autoptr
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_json_object_add_boolean(FwupdJsonObject *self, const gchar
      *key, gboolean value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_json_object_get_entry
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:898,1
    - Dst: fwupd_json_node_unref
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:900,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:902,1
    - Dst: g_ref_string_acquire
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:903,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:904,1
    - Dst: fwupd_json_node_new_object
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - key
    - json_obj
    argTypes:
    - FwupdJsonObject*
    - GRefString*
    - FwupdJsonObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 893
    functionDepth: 2
    functionLinenumber: 893
    functionLinenumberEnd: 907
    functionName: fwupd_json_object_add_object_internal
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 1
    functionsReached:
    - fwupd_json_node_unref
    - fwupd_json_object_get_entry
    - g_new0
    - g_ptr_array_add
    - fwupd_json_node_new_object
    - g_ref_string_acquire
    linkageType: ''
    returnType: void
    signature: "void fwupd_json_object_add_object_internal(FwupdJsonObject *self,\n\t\t\t\t
      \     GRefString *key,\n\t\t\t\t      FwupdJsonObject *json_obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:922,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:924,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:925,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:926,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:927,1
    - Dst: fwupd_json_node_new_object
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:929,1
    - Dst: fwupd_json_object_add_node
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - self
    - key
    - json_obj
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - FwupdJsonObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 919
    functionDepth: 2
    functionLinenumber: 919
    functionLinenumberEnd: 931
    functionName: fwupd_json_object_add_object
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 2
    functionsReached:
    - fwupd_json_object_add_node
    - g_autoptr
    - g_return_if_fail
    - fwupd_json_node_new_object
    linkageType: ''
    returnType: void
    signature: void fwupd_json_object_add_object(FwupdJsonObject *self, const gchar
      *key, FwupdJsonObject *json_obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:946,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:946,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:947,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:949,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:950,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:951,1
    - Dst: g_list_sort
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:953,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:953,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:956,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:957,1
    - Dst: fwupd_json_object_add_object
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 943
    functionDepth: 3
    functionLinenumber: 943
    functionLinenumberEnd: 960
    functionName: fwupd_json_object_add_object_map
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 6
    functionsReached:
    - g_hash_table_get_keys
    - fwupd_json_object_new
    - g_hash_table_lookup
    - g_return_if_fail
    - g_list_sort
    - fwupd_json_object_add_object
    - g_autoptr
    - fwupd_json_object_add_string
    linkageType: ''
    returnType: void
    signature: void fwupd_json_object_add_object_map(FwupdJsonObject *self, const
      gchar *key, GHashTable *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_json_object_get_entry
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:967,1
    - Dst: fwupd_json_node_unref
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:969,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:971,1
    - Dst: g_ref_string_acquire
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:972,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:973,1
    - Dst: fwupd_json_node_new_array
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - key
    - json_arr
    argTypes:
    - FwupdJsonObject*
    - GRefString*
    - FwupdJsonArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 962
    functionDepth: 2
    functionLinenumber: 962
    functionLinenumberEnd: 976
    functionName: fwupd_json_object_add_array_internal
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 1
    functionsReached:
    - fwupd_json_node_unref
    - fwupd_json_object_get_entry
    - g_new0
    - fwupd_json_node_new_array
    - g_ptr_array_add
    - g_ref_string_acquire
    linkageType: ''
    returnType: void
    signature: "void fwupd_json_object_add_array_internal(FwupdJsonObject *self,\n\t\t\t\t
      \    GRefString *key,\n\t\t\t\t     FwupdJsonArray *json_arr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:991,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:993,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:994,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:995,1
    - Dst: fwupd_json_node_new_array
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:997,1
    - Dst: fwupd_json_object_add_node
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - key
    - json_arr
    argTypes:
    - FwupdJsonObject*
    - gchar*
    - FwupdJsonArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 988
    functionDepth: 2
    functionLinenumber: 988
    functionLinenumberEnd: 999
    functionName: fwupd_json_object_add_array
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 24
    functionsReached:
    - fwupd_json_object_add_node
    - g_autoptr
    - g_return_if_fail
    - fwupd_json_node_new_array
    linkageType: ''
    returnType: void
    signature: void fwupd_json_object_add_array(FwupdJsonObject *self, const gchar
      *key, FwupdJsonArray *json_arr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1018,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1019,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1022,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1024,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1027,1
    - Dst: fwupd_json_indent
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1030,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1031,1
    - Dst: fwupd_json_node_append_string
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1032,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1035,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1036,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1039,1
    - Dst: fwupd_json_indent
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1045,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1046,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - self
    - str
    - depth
    - flags
    argTypes:
    - FwupdJsonObject*
    - GString*
    - guint
    - FwupdJsonExportFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1012
    functionDepth: 3
    functionLinenumber: 1012
    functionLinenumberEnd: 1047
    functionName: fwupd_json_object_append_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 1
    functionsReached:
    - g_string_append
    - fwupd_json_indent
    - g_return_if_fail
    - g_string_append_printf
    - g_string_append_c
    - fwupd_json_node_append_string
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: "void fwupd_json_object_append_string(FwupdJsonObject *self,\n\t\t\t\tGString
      *str,\n\t\t\t\tguint depth,\n\t\t\t\tFwupdJsonExportFlags flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1063,1
    - Dst: fwupd_json_object_append_string
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1064,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdJsonObject*
    - FwupdJsonExportFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1060
    functionDepth: 4
    functionLinenumber: 1060
    functionLinenumberEnd: 1068
    functionName: fwupd_json_object_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 6
    functionsReached:
    - g_string_append_c
    - fwupd_json_object_append_string
    - g_string_new
    linkageType: ''
    returnType: GString
    signature: 'GString *

      fwupd_json_object_to_string(FwupdJsonObject *self, FwupdJsonExportFlags flags)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1084,1
    - Dst: fwupd_json_object_append_string
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1085,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1087,1
    - Dst: g_string_free_to_bytes
      Src: /src/fwupd/libfwupd/fwupd-json-object.c:1088,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdJsonObject*
    - FwupdJsonExportFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1081
    functionDepth: 4
    functionLinenumber: 1081
    functionLinenumberEnd: 1089
    functionName: fwupd_json_object_to_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-object.c
    functionUses: 1
    functionsReached:
    - g_string_append_c
    - fwupd_json_object_append_string
    - g_string_new
    - g_string_free_to_bytes
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fwupd_json_object_to_bytes(FwupdJsonObject *self, FwupdJsonExportFlags flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:18,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:19,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:21,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:24,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:25,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:26,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:27,1
    - Dst: fwupd_request_get_message
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:27,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:30,1
    - Dst: fwupd_request_set_image
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:31,1
    - Dst: fwupd_request_set_device_id
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:32,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:33,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:33,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:34,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:36,1
    - Dst: fwupd_request_has_flag
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:36,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:37,1
    - Dst: fwupd_request_get_flags
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:37,1
    - Dst: fwupd_request_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:40,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:41,1
    - Dst: fwupd_request_has_flag
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:41,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:42,1
    - Dst: fwupd_request_get_flags
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:42,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:45,1
    - Dst: fwupd_request_get_created
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:45,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:48,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:48,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:49,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:49,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:50,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:51,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:52,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:52,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:53,1
    - Dst: fwupd_request_get_created
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:53,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:54,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:54,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:55,1
    - Dst: fwupd_request_get_message
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:55,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:56,1
    - Dst: fwupd_request_get_image
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:56,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:57,1
    - Dst: fwupd_request_get_device_id
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 13
    functionDepth: 4
    functionLinenumber: 13
    functionLinenumberEnd: 60
    functionName: fwupd_request_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request-test.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_to_string
    - FWUPD_CODEC
    - fwupd_request_get_flags
    - fwupd_request_add_flag
    - fwupd_request_set_kind
    - fwupd_request_set_message
    - g_debug
    - fwupd_request_get_kind
    - fwupd_request_set_device_id
    - fwupd_codec_to_variant
    - g_assert_cmpint
    - fwupd_request_get_image
    - fwupd_request_get_message
    - fwupd_request_new
    - fwupd_request_set_id
    - fwupd_request_set_image
    - fwupd_codec_from_variant
    - fwupd_request_get_created
    - g_assert_false
    - fwupd_request_get_device_id
    - fwupd_request_has_flag
    - g_assert_no_error
    - fwupd_request_remove_flag
    - g_assert_true
    - fwupd_request_get_id
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_request_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:65,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:66,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupd/fwupd-request-test.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: main
    functionSourceFile: /src/fwupd/libfwupd/fwupd-request-test.c
    functionUses: 3
    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: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:18,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:20,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:23,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:24,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:25,1
    - Dst: fwupd_json_parser_load_from_data
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:27,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:28,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 15
    functionDepth: 8
    functionLinenumber: 15
    functionLinenumberEnd: 30
    functionName: fwupd_json_parser_depth_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-test.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - fwupd_json_parser_set_max_quoted
    - fwupd_json_parser_load_from_data
    - g_assert_error
    - fwupd_json_parser_new
    - g_autoptr
    - fwupd_json_parser_set_max_items
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fwupd_json_parser_depth_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:35,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:35,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:36,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:37,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:40,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:41,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:42,1
    - Dst: fwupd_json_parser_load_from_data
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:44,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:45,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 32
    functionDepth: 8
    functionLinenumber: 32
    functionLinenumberEnd: 47
    functionName: fwupd_json_parser_items_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-test.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - fwupd_json_parser_set_max_quoted
    - fwupd_json_parser_load_from_data
    - g_assert_error
    - fwupd_json_parser_new
    - g_autoptr
    - fwupd_json_parser_set_max_items
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fwupd_json_parser_items_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:52,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:53,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:54,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:58,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:59,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:60,1
    - Dst: fwupd_json_parser_load_from_data
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:62,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:63,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 49
    functionDepth: 8
    functionLinenumber: 49
    functionLinenumberEnd: 65
    functionName: fwupd_json_parser_quoted_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-test.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - fwupd_json_parser_set_max_quoted
    - fwupd_json_parser_load_from_data
    - g_assert_error
    - fwupd_json_parser_new
    - g_autoptr
    - fwupd_json_parser_set_max_items
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fwupd_json_parser_quoted_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:71,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:71,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:72,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:73,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:75,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:75,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:75,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:76,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:76,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:78,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:79,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:80,1
    - Dst: fwupd_json_parser_load_from_bytes
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:82,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:83,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:84,1
    - Dst: fwupd_json_parser_load_from_stream
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:85,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:89,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 67
    functionDepth: 8
    functionLinenumber: 67
    functionLinenumberEnd: 91
    functionName: fwupd_json_parser_stream_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-test.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - g_memory_input_stream_new_from_bytes
    - g_bytes_new
    - fwupd_json_parser_load_from_bytes
    - fwupd_json_parser_set_max_quoted
    - fwupd_json_parser_load_from_stream
    - g_assert_nonnull
    - g_assert_no_error
    - strlen
    - fwupd_json_parser_new
    - fwupd_json_parser_set_max_items
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_json_parser_stream_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:98,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:101,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:103,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:105,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:106,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:107,1
    - Dst: fwupd_json_parser_load_from_data
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:108,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:112,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:113,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:114,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:115,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:116,1
    - Dst: fwupd_json_object_get_node
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:119,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:120,1
    - Dst: fwupd_json_node_get_kind
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:120,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:123,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:124,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:125,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:126,1
    - Dst: fwupd_json_node_to_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:128,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 93
    functionDepth: 8
    functionLinenumber: 93
    functionLinenumberEnd: 130
    functionName: fwupd_json_parser_null_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-test.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - fwupd_json_parser_set_max_quoted
    - fwupd_json_parser_load_from_data
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fwupd_json_object_get_integer_with_default
    - fwupd_json_object_get_node
    - fwupd_json_parser_new
    - fwupd_json_node_to_string
    - g_autoptr
    - g_assert_true
    - fwupd_json_node_get_object
    - g_assert_cmpstr
    - fwupd_json_parser_set_max_items
    - fwupd_json_node_get_kind
    linkageType: ''
    returnType: void
    signature: void fwupd_json_parser_null_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:135,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:135,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:148,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:149,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:150,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:151,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:152,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:153,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:154,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:156,1
    - Dst: fwupd_json_parser_load_from_data
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:157,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:161,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:162,1
    - Dst: fwupd_json_node_to_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:163,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:164,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 132
    functionDepth: 8
    functionLinenumber: 132
    functionLinenumberEnd: 167
    functionName: fwupd_json_parser_valid_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-test.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - g_debug
    - fwupd_json_parser_set_max_quoted
    - fwupd_json_parser_load_from_data
    - g_assert_nonnull
    - g_assert_no_error
    - fwupd_json_parser_new
    - G_N_ELEMENTS
    - fwupd_json_node_to_string
    - g_autoptr
    - g_assert_cmpstr
    - fwupd_json_parser_set_max_items
    linkageType: ''
    returnType: void
    signature: void fwupd_json_parser_valid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:172,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:172,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:186,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:187,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:188,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:189,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:190,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:191,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:193,1
    - Dst: fwupd_json_parser_load_from_data
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:194,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:198,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:199,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 169
    functionDepth: 8
    functionLinenumber: 169
    functionLinenumberEnd: 202
    functionName: fwupd_json_parser_invalid_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-test.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - g_debug
    - fwupd_json_parser_set_max_quoted
    - fwupd_json_parser_load_from_data
    - g_assert_nonnull
    - g_assert_cmpint
    - fwupd_json_parser_new
    - G_N_ELEMENTS
    - g_autoptr
    - fwupd_json_parser_set_max_items
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fwupd_json_parser_invalid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:211,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:212,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:213,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:214,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:214,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:215,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:215,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:216,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:217,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:218,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:220,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:222,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:224,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:225,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:226,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:228,1
    - Dst: fwupd_json_object_get_size
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:228,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:230,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:231,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:232,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:233,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:234,1
    - Dst: fwupd_json_object_add_boolean
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:235,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:236,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:237,1
    - Dst: fwupd_json_object_get_size
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:237,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:239,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:240,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:241,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:242,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:243,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:244,1
    - Dst: fwupd_json_object_get_integer
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:245,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:246,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:247,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:248,1
    - Dst: fwupd_json_object_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:249,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:250,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:251,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:252,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:253,1
    - Dst: fwupd_json_object_has_node
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:253,1
    - Dst: fwupd_json_object_get_nodes
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:255,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:256,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:257,1
    - Dst: fwupd_json_object_get_keys
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:258,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:259,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:260,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:262,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:263,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:264,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:265,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:266,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:267,1
    - Dst: fwupd_json_object_get_key_for_index
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:270,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:271,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:272,1
    - Dst: fwupd_json_object_get_node_for_index
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:273,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:274,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:275,1
    - Dst: fwupd_json_node_get_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:276,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:277,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:278,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:281,1
    - Dst: fwupd_json_object_has_node
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:281,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:282,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:283,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:284,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:285,1
    - Dst: fwupd_json_object_to_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:288,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:289,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:290,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:300,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:301,1
    - Dst: fwupd_json_object_to_bytes
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:302,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:303,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:304,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:304,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:307,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:308,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:309,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:310,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:311,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:312,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:315,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:316,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:319,1
    - Dst: fwupd_json_object_add_object
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:320,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:323,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:324,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:325,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:326,1
    - Dst: fwupd_json_object_get_string_with_default
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:327,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:328,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:329,1
    - Dst: fwupd_json_object_get_boolean_with_default
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:330,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:331,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:332,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:333,1
    - Dst: fwupd_json_object_to_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:335,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:336,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:337,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:353,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 104
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 204
    functionDepth: 5
    functionLinenumber: 204
    functionLinenumberEnd: 355
    functionName: fwupd_json_object_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-test.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - fwupd_json_object_get_integer
    - fwupd_json_object_get_nodes
    - g_assert_nonnull
    - fwupd_json_array_new
    - fwupd_json_object_get_boolean_with_default
    - g_autoptr
    - fwupd_json_object_get_key_for_index
    - g_debug
    - fwupd_json_object_new
    - fwupd_json_object_get_boolean
    - fu_test_compare_lines
    - g_assert_cmpint
    - fwupd_json_object_get_array
    - fwupd_json_array_add_string
    - fwupd_json_object_add_integer
    - fwupd_json_object_add_object
    - fwupd_json_object_get_node_for_index
    - fwupd_json_object_get_string_with_default
    - g_assert_null
    - fwupd_json_object_to_bytes
    - fwupd_json_node_get_string
    - fwupd_json_object_get_object
    - fwupd_json_object_get_string
    - fwupd_json_object_get_size
    - fwupd_json_object_add_string
    - fwupd_json_object_to_string
    - g_assert_error
    - g_assert_no_error
    - fwupd_json_object_get_keys
    - g_clear_error
    - fwupd_json_object_add_boolean
    - g_bytes_get_size
    - g_assert_true
    - g_assert_cmpstr
    - fwupd_json_object_has_node
    - fwupd_json_object_get_integer_with_default
    linkageType: ''
    returnType: void
    signature: void fwupd_json_object_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:361,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:362,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:363,1
    - Dst: fwupd_json_node_new_raw
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:363,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:364,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:365,1
    - Dst: fwupd_json_node_get_raw
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:367,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:368,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:369,1
    - Dst: fwupd_json_node_to_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:370,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:371,1
    - Dst: fwupd_json_node_get_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:374,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:375,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:376,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:377,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:378,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:379,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:380,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:381,1
    - Dst: fwupd_json_node_get_array
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:382,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:383,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 357
    functionDepth: 4
    functionLinenumber: 357
    functionLinenumberEnd: 385
    functionName: fwupd_json_node_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-test.c
    functionUses: 0
    functionsReached:
    - fwupd_json_node_get_string
    - fwupd_json_node_new_raw
    - g_assert_error
    - g_assert_no_error
    - g_clear_error
    - fwupd_json_node_get_array
    - fwupd_json_node_to_string
    - fwupd_json_node_get_raw
    - fwupd_json_node_get_object
    - g_assert_cmpstr
    - g_autoptr
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fwupd_json_node_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:391,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:392,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:393,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:393,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:394,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:395,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:397,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:397,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:399,1
    - Dst: fwupd_json_array_add_raw
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:400,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:401,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:401,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:403,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:404,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:405,1
    - Dst: fwupd_json_array_get_raw
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:406,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:407,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:408,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:409,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:410,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:411,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:412,1
    - Dst: fwupd_json_array_get_raw
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:415,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:416,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:417,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:418,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:419,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:420,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:421,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:422,1
    - Dst: fwupd_json_array_get_array
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:423,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:424,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:425,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:426,1
    - Dst: fwupd_json_array_to_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:428,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:429,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 431
    functionName: fwupd_json_array_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-test.c
    functionUses: 0
    functionsReached:
    - fwupd_json_array_get_array
    - fwupd_json_array_get_raw
    - fwupd_json_array_to_string
    - fwupd_json_array_get_size
    - fwupd_json_array_get_string
    - g_debug
    - g_assert_error
    - g_assert_no_error
    - g_assert_cmpint
    - fwupd_json_array_new
    - fwupd_json_array_add_string
    - g_clear_error
    - fwupd_json_array_get_object
    - fwupd_json_array_add_raw
    - g_assert_cmpstr
    - g_autoptr
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fwupd_json_array_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:437,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:438,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:438,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:439,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:439,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:440,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:440,1
    - Dst: fwupd_json_array_add_bytes
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:442,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:443,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:443,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:444,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:445,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:446,1
    - Dst: fwupd_json_object_add_bytes
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:448,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:449,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:450,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 433
    functionDepth: 3
    functionLinenumber: 433
    functionLinenumberEnd: 452
    functionName: fwupd_json_bytes_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-test.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - fwupd_json_array_get_size
    - fwupd_json_array_get_string
    - fwupd_json_object_new
    - fwupd_json_array_add_bytes
    - g_assert_no_error
    - g_assert_cmpint
    - fwupd_json_array_new
    - fwupd_json_object_get_string
    - g_assert_cmpstr
    - g_autoptr
    - fwupd_json_object_add_bytes
    linkageType: ''
    returnType: void
    signature: void fwupd_json_bytes_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:457,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:458,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:459,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:460,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:461,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:462,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:463,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:464,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:465,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:466,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:467,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:468,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupd/fwupd-json-test.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 470
    functionName: main
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-test.c
    functionUses: 3
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_test_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_error_to_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:23,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:24,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:25,1
    - Dst: fwupd_error_from_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:25,1
    - Dst: fwupd_status_to_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:28,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:29,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:30,1
    - Dst: fwupd_status_from_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:30,1
    - Dst: fwupd_update_state_to_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:33,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:34,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:35,1
    - Dst: fwupd_update_state_from_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:35,1
    - Dst: fwupd_request_kind_to_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:38,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:39,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:40,1
    - Dst: fwupd_request_kind_from_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:40,1
    - Dst: fwupd_release_urgency_to_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:43,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:44,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:45,1
    - Dst: fwupd_release_urgency_from_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:45,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:48,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:49,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:50,1
    - Dst: fwupd_version_format_from_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:50,1
    - Dst: fwupd_remote_kind_to_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:53,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:54,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:55,1
    - Dst: fwupd_remote_kind_from_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:55,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:60,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:63,1
    - Dst: fwupd_device_flag_from_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:63,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:66,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:67,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:68,1
    - Dst: fwupd_device_problem_from_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:68,1
    - Dst: fwupd_plugin_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:71,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:72,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:73,1
    - Dst: fwupd_plugin_flag_from_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:73,1
    - Dst: fwupd_feature_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:76,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:77,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:78,1
    - Dst: fwupd_feature_flag_from_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:78,1
    - Dst: fwupd_release_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:81,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:82,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:83,1
    - Dst: fwupd_release_flag_from_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:83,1
    - Dst: fwupd_request_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:86,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:87,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:88,1
    - Dst: fwupd_request_flag_from_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:88,1
    - Dst: fwupd_remote_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:91,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:94,1
    - Dst: fwupd_remote_flag_from_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:94,1
    - Dst: fwupd_install_flags_to_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:97,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:100,1
    - Dst: fwupd_install_flags_from_string
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:100,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 102
    functionName: fwupd_enums_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums-test.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_flag_to_string
    - fwupd_install_flags_to_string
    - fwupd_remote_flag_from_string
    - fwupd_release_urgency_to_string
    - fwupd_device_problem_to_string
    - fwupd_update_state_from_string
    - fwupd_plugin_flag_to_string
    - fwupd_version_format_to_string
    - fwupd_update_state_to_string
    - fwupd_release_flag_to_string
    - g_assert_cmpint
    - fwupd_status_from_string
    - fwupd_install_flags_from_string
    - fwupd_request_flag_to_string
    - fwupd_request_kind_to_string
    - fwupd_release_urgency_from_string
    - fwupd_request_flag_from_string
    - fwupd_release_flag_from_string
    - fwupd_error_to_string
    - fwupd_feature_flag_from_string
    - fwupd_feature_flag_to_string
    - fwupd_plugin_flag_from_string
    - fwupd_device_problem_from_string
    - fwupd_remote_kind_to_string
    - fwupd_version_format_from_string
    - fwupd_status_to_string
    - fwupd_device_flag_to_string
    - fwupd_device_flag_from_string
    - fwupd_request_kind_from_string
    - fwupd_remote_kind_from_string
    - g_assert_cmpstr
    - fwupd_error_from_string
    linkageType: ''
    returnType: void
    signature: void fwupd_enums_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:107,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:108,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:109,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:110,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupd/fwupd-enums-test.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: main
    functionSourceFile: /src/fwupd/libfwupd/fwupd-enums-test.c
    functionUses: 3
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_test_init
    - g_assert_cmpint
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:22,1
    - Dst: fwupd_jcat_blob_kind_to_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:33,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:34,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:35,1
    - Dst: fwupd_jcat_blob_kind_from_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:35,1
    - Dst: fwupd_jcat_blob_new_utf8
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:39,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:40,1
    - Dst: fwupd_jcat_blob_get_kind
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:40,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:41,1
    - Dst: fwupd_jcat_blob_get_data
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:41,1
    - Dst: fwupd_jcat_blob_set_timestamp
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:42,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:43,1
    - Dst: fwupd_jcat_blob_get_timestamp
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:43,1
    - Dst: fwupd_jcat_blob_set_target
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:44,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:45,1
    - Dst: fwupd_jcat_blob_get_target
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:45,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:48,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:48,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:49,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:50,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:51,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 16
    functionDepth: 4
    functionLinenumber: 16
    functionLinenumberEnd: 53
    functionName: fwupd_jcat_blob_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-test.c
    functionUses: 0
    functionsReached:
    - fwupd_jcat_blob_get_data
    - fwupd_codec_to_string
    - FWUPD_CODEC
    - fwupd_jcat_blob_set_target
    - fwupd_jcat_blob_kind_to_string
    - g_debug
    - fu_test_compare_lines
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fwupd_jcat_blob_set_timestamp
    - fwupd_jcat_blob_get_target
    - fwupd_jcat_blob_get_timestamp
    - g_assert_true
    - fwupd_jcat_blob_kind_from_string
    - g_autoptr
    - fwupd_jcat_blob_new_utf8
    - fwupd_jcat_blob_get_kind
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_blob_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:61,1
    - Dst: fwupd_jcat_item_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:67,1
    - Dst: fwupd_jcat_item_add_alias_id
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:68,1
    - Dst: fwupd_jcat_item_add_alias_id
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:69,1
    - Dst: fwupd_jcat_item_remove_alias_id
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:70,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:71,1
    - Dst: fwupd_jcat_item_get_id
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:71,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:74,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:74,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:75,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:76,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:77,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 55
    functionDepth: 4
    functionLinenumber: 55
    functionLinenumberEnd: 79
    functionName: fwupd_jcat_item_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-test.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_to_string
    - FWUPD_CODEC
    - g_assert_true
    - g_debug
    - fwupd_jcat_item_new
    - fu_test_compare_lines
    - g_assert_no_error
    - fwupd_jcat_item_add_alias_id
    - fwupd_jcat_item_get_id
    - g_assert_cmpstr
    - g_autoptr
    - fwupd_jcat_item_remove_alias_id
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_item_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:88,1
    - Dst: fwupd_jcat_file_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:89,1
    - Dst: fwupd_jcat_file_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:90,1
    - Dst: fwupd_jcat_file_export_json
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:92,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:93,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:94,1
    - Dst: fwupd_jcat_file_import_json
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:96,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:97,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:98,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:99,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:99,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:100,1
    - Dst: fwupd_jcat_file_export_json
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:101,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:102,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:103,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:105,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:106,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 108
    functionName: fwupd_jcat_file_json_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-test.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_to_string
    - FWUPD_CODEC
    - fwupd_jcat_file_import_json
    - g_debug
    - fu_test_compare_lines
    - fwupd_jcat_file_new
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    - fwupd_jcat_file_export_json
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_file_json_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:117,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:117,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:119,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:122,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:123,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:124,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:127,1
    - Dst: fwupd_jcat_file_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:128,1
    - Dst: fwupd_jcat_file_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:128,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:132,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:133,1
    - Dst: fwupd_jcat_item_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:133,1
    - Dst: fwupd_jcat_blob_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:160,1
    - Dst: g_assert
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:161,1
    - Dst: fwupd_jcat_blob_get_data
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:161,1
    - Dst: fwupd_jcat_blob_new_utf8
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:162,1
    - Dst: fwupd_jcat_blob_set_timestamp
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:163,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:164,1
    - Dst: fwupd_jcat_blob_get_timestamp
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:164,1
    - Dst: fwupd_jcat_blob_set_timestamp
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:165,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:166,1
    - Dst: fwupd_jcat_blob_get_timestamp
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:166,1
    - Dst: fwupd_jcat_file_get_item_default
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:169,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:170,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:171,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:172,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:175,1
    - Dst: fwupd_jcat_item_get_id
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:175,1
    - Dst: fwupd_jcat_item_get_blobs
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:176,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:177,1
    - Dst: fwupd_jcat_item_add_blob
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:178,1
    - Dst: fwupd_jcat_item_add_blob
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:179,1
    - Dst: fwupd_jcat_item_add_alias_id
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:180,1
    - Dst: fwupd_jcat_item_get_blobs
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:181,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:182,1
    - Dst: fwupd_jcat_item_get_blobs_by_kind
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:183,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:184,1
    - Dst: fwupd_jcat_item_get_blobs_by_kind
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:185,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:186,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:189,1
    - Dst: fwupd_jcat_file_get_version_major
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:189,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:190,1
    - Dst: fwupd_jcat_file_get_version_minor
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:190,1
    - Dst: fwupd_jcat_file_get_items
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:191,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:192,1
    - Dst: fwupd_jcat_file_add_item
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:193,1
    - Dst: fwupd_jcat_file_get_items
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:194,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:195,1
    - Dst: fwupd_jcat_file_get_item_by_id
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:196,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:197,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:198,1
    - Dst: g_assert
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:199,1
    - Dst: fwupd_jcat_file_get_item_by_id
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:200,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:201,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:202,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:203,1
    - Dst: fwupd_jcat_file_get_item_default
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:206,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:207,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:208,1
    - Dst: fwupd_jcat_file_export_json
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:211,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:212,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:213,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:214,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:215,1
    - Dst: fwupd_jcat_file_export_bytes
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:218,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:219,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:220,1
    - Dst: fwupd_jcat_file_import_bytes
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:223,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:224,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:225,1
    - Dst: fwupd_jcat_file_export_json
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:226,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:227,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:228,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:229,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 231
    functionName: fwupd_jcat_file_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-test.c
    functionUses: 0
    functionsReached:
    - fwupd_jcat_blob_get_data
    - fwupd_jcat_file_get_item_default
    - g_bytes_new
    - fwupd_jcat_item_get_blobs_by_kind
    - fwupd_jcat_file_export_bytes
    - g_assert
    - g_assert_nonnull
    - fwupd_jcat_file_get_item_by_id
    - fwupd_jcat_item_get_blobs
    - fwupd_jcat_item_get_id
    - fwupd_jcat_file_export_json
    - fwupd_jcat_file_get_version_minor
    - g_debug
    - fwupd_jcat_blob_new
    - fu_test_compare_lines
    - fwupd_jcat_blob_set_timestamp
    - g_assert_cmpint
    - fwupd_jcat_blob_get_timestamp
    - fwupd_jcat_item_add_blob
    - fwupd_jcat_item_add_alias_id
    - g_assert_null
    - fwupd_jcat_file_add_item
    - fwupd_jcat_blob_new_utf8
    - fwupd_jcat_file_get_version_major
    - fwupd_jcat_file_import_bytes
    - fwupd_jcat_item_new
    - fwupd_jcat_file_new
    - g_assert_error
    - fwupd_jcat_file_get_items
    - g_assert_no_error
    - g_clear_error
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_file_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:236,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:237,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:238,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:239,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:240,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupd/fwupd-jcat-test.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: main
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-test.c
    functionUses: 3
    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: GLIB_CHECK_VERSION
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:16,1
    - Dst: g_test_subprocess
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:18,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:18,1
    - Dst: g_value_init
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:21,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:22,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:22,1
    - Dst: g_test_trap_subprocess
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:24,1
    - Dst: g_test_trap_assert_failed
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:27,1
    - Dst: g_test_trap_assert_stderr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:28,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 34
    functionName: fwupd_client_api_undefined_setter
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-test.c
    functionUses: 0
    functionsReached:
    - g_test_trap_subprocess
    - g_value_init
    - g_test_trap_assert_stderr
    - g_object_set_property
    - GLIB_CHECK_VERSION
    - fwupd_client_new
    - G_OBJECT
    - g_test_skip
    - g_autoptr
    - g_test_trap_assert_failed
    - g_test_subprocess
    linkageType: ''
    returnType: void
    signature: void fwupd_client_api_undefined_setter(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:39,1
    - Dst: g_test_subprocess
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:41,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:41,1
    - Dst: g_value_init
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:44,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:45,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:45,1
    - Dst: g_test_trap_subprocess
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:47,1
    - Dst: g_test_trap_assert_failed
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:50,1
    - Dst: g_test_trap_assert_stderr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:51,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 57
    functionName: fwupd_client_api_undefined_getter
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-test.c
    functionUses: 0
    functionsReached:
    - g_test_trap_subprocess
    - g_value_init
    - g_test_trap_assert_stderr
    - GLIB_CHECK_VERSION
    - fwupd_client_new
    - G_OBJECT
    - g_object_get_property
    - g_test_skip
    - g_autoptr
    - g_test_trap_assert_failed
    - g_test_subprocess
    linkageType: ''
    returnType: void
    signature: void fwupd_client_api_undefined_getter(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:62,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:65,1
    - Dst: g_test_subprocess
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:66,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:67,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:67,1
    - Dst: g_value_init
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:70,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:71,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:71,1
    - Dst: g_test_trap_subprocess
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:73,1
    - Dst: g_test_trap_assert_failed
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:76,1
    - Dst: g_test_trap_assert_stderr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:77,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 84
    functionName: fwupd_client_api_ro_props
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-test.c
    functionUses: 0
    functionsReached:
    - g_test_trap_subprocess
    - g_value_init
    - g_test_trap_assert_stderr
    - g_object_set_property
    - GLIB_CHECK_VERSION
    - fwupd_client_new
    - G_OBJECT
    - G_N_ELEMENTS
    - g_test_skip
    - g_autoptr
    - g_test_trap_assert_failed
    - g_test_subprocess
    linkageType: ''
    returnType: void
    signature: void fwupd_client_api_ro_props(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:94,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:95,1
    - Dst: g_value_init
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:97,1
    - Dst: g_value_init
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:98,1
    - Dst: g_value_init
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:99,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:100,1
    - Dst: fwupd_client_get_only_trusted
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:102,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:103,1
    - Dst: fwupd_client_get_daemon_interactive
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:104,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:105,1
    - Dst: fwupd_client_get_tainted
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:106,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:107,1
    - Dst: fwupd_client_set_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:110,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:111,1
    - Dst: fwupd_client_get_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:111,1
    - Dst: fwupd_client_set_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:112,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:113,1
    - Dst: fwupd_client_get_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:113,1
    - Dst: fwupd_client_set_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:114,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:117,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:117,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:118,1
    - Dst: fwupd_client_get_host_security_id
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:118,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:119,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:119,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:122,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:122,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:123,1
    - Dst: fwupd_client_get_host_machine_id
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:123,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:124,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:124,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:128,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:129,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:129,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:130,1
    - Dst: fwupd_client_get_host_vendor
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:130,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:131,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:131,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:134,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:135,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:135,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:136,1
    - Dst: fwupd_client_get_host_product
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:136,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:137,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:137,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:141,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:142,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:142,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:143,1
    - Dst: fwupd_client_get_host_bkc
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:143,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:144,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:144,1
    - Dst: fwupd_client_ensure_networking
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:147,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:148,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:149,1
    - Dst: fwupd_client_set_user_agent_for_package
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:152,1
    - Dst: fwupd_client_ensure_networking
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:153,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:154,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:155,1
    - Dst: g_value_set_int
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:158,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:159,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:159,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:160,1
    - Dst: fwupd_client_get_battery_level
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:160,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:161,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:161,1
    - Dst: g_value_set_int
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:164,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:165,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:165,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:166,1
    - Dst: fwupd_client_get_battery_threshold
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:166,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:167,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:167,1
    - Dst: g_value_set_int
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:170,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:171,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:171,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:172,1
    - Dst: fwupd_client_get_status
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:172,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:173,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:173,1
    - Dst: g_value_set_int
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:176,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:177,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:177,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:178,1
    - Dst: fwupd_client_get_percentage
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:178,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:179,1
    - Dst: fwupd_client_get_percentage_full
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:179,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:180,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:180,1
    - Dst: g_value_set_int
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:183,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:184,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:184,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:185,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:185,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:186,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:186,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:187,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:187,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:188,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:188,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:189,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:189,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:190,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:190,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:191,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:191,1
    - Dst: g_object_set_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:192,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:192,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:195,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:195,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:196,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:196,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:197,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:197,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:198,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:198,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:199,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:199,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:200,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:200,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:201,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:201,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:202,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:202,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:203,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:203,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:204,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:204,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:205,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:205,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:206,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:206,1
    - Dst: g_object_get_property
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:207,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:207,1
    - Dst: g_value_unset
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:209,1
    - Dst: g_value_unset
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:210,1
    - Dst: g_value_unset
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 212
    functionName: fwupd_client_api
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-test.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_host_machine_id
    - fwupd_client_get_host_product
    - fwupd_client_get_battery_threshold
    - g_value_init
    - fwupd_client_set_user_agent_for_package
    - g_value_set_string
    - g_assert_cmpint
    - fwupd_client_get_status
    - fwupd_client_ensure_networking
    - fwupd_client_get_percentage_full
    - fwupd_client_get_host_vendor
    - g_assert_cmpfloat_with_epsilon
    - g_object_set_property
    - g_assert_false
    - fwupd_client_get_daemon_interactive
    - G_OBJECT
    - fwupd_client_set_daemon_version
    - fwupd_client_new
    - fwupd_client_get_battery_level
    - fwupd_client_get_host_security_id
    - fwupd_client_get_tainted
    - g_assert_no_error
    - fwupd_client_get_daemon_version
    - g_object_get_property
    - fwupd_client_get_only_trusted
    - g_value_set_int
    - fwupd_client_get_percentage
    - fwupd_client_get_host_bkc
    - g_assert_true
    - g_value_unset
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_client_api(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:220,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:221,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:223,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:226,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:227,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:228,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:229,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:230,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:231,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:234,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:235,1
    - Dst: fwupd_client_get_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:236,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:237,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:240,1
    - Dst: fwupd_client_get_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:240,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:241,1
    - Dst: fwupd_client_get_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:241,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:242,1
    - Dst: fwupd_client_get_devices
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:246,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:247,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:248,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:251,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:252,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:255,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:256,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:257,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:260,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:261,1
    - Dst: FWUPD_IS_DEVICE
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:261,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:262,1
    - Dst: fwupd_device_get_guid_default
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:262,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:263,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:263,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 214
    functionDepth: 4
    functionLinenumber: 214
    functionLinenumberEnd: 264
    functionName: fwupd_client_devices_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-test.c
    functionUses: 0
    functionsReached:
    - fwupd_client_get_devices
    - g_debug
    - fwupd_client_new
    - FWUPD_IS_DEVICE
    - g_assert_cmpstr
    - fwupd_device_get_guid_default
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fwupd_client_get_daemon_version
    - fwupd_device_get_id
    - g_error_matches
    - g_test_skip
    - g_assert_true
    - g_str_has_prefix
    - g_autoptr
    - fwupd_client_connect
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fwupd_client_devices_func(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:271,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:272,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:273,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:274,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:275,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:277,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:278,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:280,1
    - Dst: fwupd_client_connect
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:283,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:284,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:285,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:286,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:287,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:288,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:291,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:292,1
    - Dst: fwupd_client_get_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:293,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:294,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:297,1
    - Dst: fwupd_client_get_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:297,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:298,1
    - Dst: fwupd_client_get_daemon_version
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:298,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:299,1
    - Dst: fwupd_client_get_remotes
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:303,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:304,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:305,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:308,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:309,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:312,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:313,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:314,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:317,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:318,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:319,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:320,1
    - Dst: fwupd_remote_get_id
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:320,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:321,1
    - Dst: fwupd_remote_get_metadata_uri
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:321,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:322,1
    - Dst: fwupd_remote_get_username
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:322,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:323,1
    - Dst: fwupd_remote_get_password
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:323,1
    - Dst: fwupd_client_get_remote_by_id
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:326,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:327,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:328,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 266
    functionDepth: 5
    functionLinenumber: 266
    functionLinenumberEnd: 329
    functionName: fwupd_client_remotes_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-test.c
    functionUses: 0
    functionsReached:
    - g_setenv
    - fwupd_client_get_remotes
    - g_assert_nonnull
    - fwupd_client_get_remote_by_id
    - fwupd_client_connect
    - g_debug
    - g_assert_cmpint
    - fwupd_remote_get_password
    - g_str_has_prefix
    - g_assert_null
    - fwupd_remote_get_id
    - fwupd_remote_get_username
    - fwupd_client_new
    - g_assert_error
    - g_assert_no_error
    - fwupd_remote_get_metadata_uri
    - fwupd_client_get_daemon_version
    - g_error_matches
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_client_remotes_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:334,1
    - Dst: g_bus_get_sync
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:335,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 340
    functionName: fwupd_has_system_bus
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-test.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - g_debug
    - g_bus_get_sync
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_has_system_bus(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:345,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:346,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:347,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:348,1
    - Dst: g_test_undefined
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:349,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:350,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:352,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:354,1
    - Dst: fwupd_has_system_bus
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:356,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:357,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:358,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupd/fwupd-client-test.c:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 361
    functionName: main
    functionSourceFile: /src/fwupd/libfwupd/fwupd-client-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_undefined
    - fwupd_has_system_bus
    - g_test_run
    - g_build_filename
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 23
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 46
    argCount: 1
    argNames:
    - error
    argTypes:
    - FwupdError
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 72
    functionName: fwupd_error_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-error.c
    functionUses: 1
    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:87,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:89,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:91,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:93,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:95,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:97,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:99,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:101,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:103,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:105,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:107,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:109,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:111,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:113,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:115,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:117,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:119,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:121,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:123,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:125,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:127,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-error.c:129,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 46
    argCount: 1
    argNames:
    - error
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 132
    functionName: fwupd_error_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-error.c
    functionUses: 2
    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:148,1
    - Dst: g_dbus_error_register_error
      Src: /src/fwupd/libfwupd/fwupd-error.c:150,1
    - Dst: fwupd_error_to_string
      Src: /src/fwupd/libfwupd/fwupd-error.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 154
    functionName: fwupd_error_quark
    functionSourceFile: /src/fwupd/libfwupd/fwupd-error.c
    functionUses: 1
    functionsReached:
    - g_dbus_error_register_error
    - g_quark_from_static_string
    - fwupd_error_to_string
    linkageType: ''
    returnType: GQuark
    signature: GQuark fwupd_error_quark(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/libfwupd/fwupd-error.c:202,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-error.c:239,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupd/fwupd-error.c:240,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupd/fwupd-error.c:247,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-error.c:248,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-error.c:257,1
    - Dst: g_quark_to_string
      Src: /src/fwupd/libfwupd/fwupd-error.c:258,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - perror
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 263
    functionName: fwupd_error_convert
    functionSourceFile: /src/fwupd/libfwupd/fwupd-error.c
    functionUses: 23
    functionsReached:
    - g_critical
    - g_quark_to_string
    - g_strstr_len
    - g_error_matches
    - G_N_ELEMENTS
    - GLIB_CHECK_VERSION
    linkageType: ''
    returnType: void
    signature: void fwupd_error_convert(GError **perror)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strerrordesc_np
      Src: /src/fwupd/libfwupd/fwupd-error.c:278,1
    - Dst: g_strerror
      Src: /src/fwupd/libfwupd/fwupd-error.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - errnum
    argTypes:
    - gint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 282
    functionName: fwupd_strerror
    functionSourceFile: /src/fwupd/libfwupd/fwupd-error.c
    functionUses: 4
    functionsReached:
    - g_strerror
    - strerrordesc_np
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_strerror(gint errnum)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:18,1
    - Dst: fwupd_plugin_new
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:19,1
    - Dst: fwupd_plugin_new
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:21,1
    - Dst: fwupd_plugin_set_name
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:23,1
    - Dst: fwupd_plugin_set_flags
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:24,1
    - Dst: fwupd_plugin_add_flag
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:25,1
    - Dst: fwupd_plugin_add_flag
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:26,1
    - Dst: fwupd_plugin_add_flag
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:27,1
    - Dst: fwupd_plugin_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:28,1
    - Dst: fwupd_plugin_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:29,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:30,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:30,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:31,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:31,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:32,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:33,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:34,1
    - Dst: fwupd_plugin_get_name
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:34,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:35,1
    - Dst: fwupd_plugin_get_flags
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:35,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:38,1
    - Dst: fwupd_plugin_has_flag
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:38,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:39,1
    - Dst: fwupd_plugin_has_flag
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:39,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:40,1
    - Dst: fwupd_plugin_has_flag
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:40,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:42,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:42,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:43,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:48,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 13
    functionDepth: 4
    functionLinenumber: 13
    functionLinenumberEnd: 50
    functionName: fwupd_plugin_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin-test.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_to_string
    - fwupd_plugin_new
    - FWUPD_CODEC
    - g_autoptr
    - fwupd_plugin_remove_flag
    - fu_test_compare_lines
    - fwupd_codec_to_variant
    - fwupd_plugin_add_flag
    - g_assert_cmpint
    - fwupd_plugin_set_name
    - fwupd_codec_from_variant
    - g_assert_false
    - fwupd_plugin_set_flags
    - fwupd_plugin_has_flag
    - g_assert_no_error
    - g_assert_true
    - g_assert_cmpstr
    - fwupd_plugin_get_name
    - fwupd_plugin_get_flags
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:55,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:56,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupd/fwupd-plugin-test.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: main
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin-test.c
    functionUses: 3
    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_autoptr
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:22,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:23,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:24,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:26,1
    - Dst: fwupd_security_attr_result_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:29,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:30,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:31,1
    - Dst: fwupd_security_attr_result_from_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:31,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:34,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:34,1
    - Dst: fwupd_security_attr_set_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:35,1
    - Dst: fwupd_security_attr_set_fwupd_version
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:36,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:37,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:37,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:39,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:40,1
    - Dst: fwupd_security_attr_get_level
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:40,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:44,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:45,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:45,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:49,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:50,1
    - Dst: fwupd_security_attr_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:51,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:52,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:52,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:53,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:53,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:54,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:54,1
    - Dst: fwupd_security_attr_set_name
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:56,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:57,1
    - Dst: fwupd_security_attr_get_name
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:57,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:59,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:60,1
    - Dst: fwupd_security_attr_get_plugin
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:60,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:61,1
    - Dst: fwupd_security_attr_get_fwupd_version
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:61,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:63,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:64,1
    - Dst: fwupd_security_attr_get_url
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:64,1
    - Dst: fwupd_security_attr_add_guid
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:66,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:67,1
    - Dst: fwupd_security_attr_has_guid
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:67,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:68,1
    - Dst: fwupd_security_attr_has_guid
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:68,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:70,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:71,1
    - Dst: fwupd_security_attr_get_metadata
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:71,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:74,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:76,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:76,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:77,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:90,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:91,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:94,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:94,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:95,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:95,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:96,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:97,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:98,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:99,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:99,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:100,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:113,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:114,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:117,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:117,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:118,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:119,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:120,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:138,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:139,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:142,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:142,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:143,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:144,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:147,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:148,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:151,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:153,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:153,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:154,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:155,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 14
    functionDepth: 4
    functionLinenumber: 14
    functionLinenumberEnd: 157
    functionName: fwupd_security_attr_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr-test.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_get_result
    - fwupd_codec_to_string
    - fwupd_security_attr_has_flag
    - FWUPD_CODEC
    - fwupd_security_attr_result_to_string
    - fwupd_security_attr_get_plugin
    - fwupd_security_attr_add_guid
    - g_assert_nonnull
    - fwupd_security_attr_set_created
    - fwupd_security_attr_has_guid
    - fwupd_security_attr_get_url
    - fwupd_security_attr_set_name
    - fwupd_security_attr_set_result
    - fu_test_compare_lines
    - fwupd_codec_to_variant
    - g_assert_cmpint
    - fwupd_security_attr_add_metadata
    - fwupd_codec_from_json_string
    - fwupd_security_attr_set_url
    - fwupd_security_attr_set_appstream_id
    - fwupd_security_attr_get_appstream_id
    - fwupd_codec_from_variant
    - g_assert_false
    - fwupd_security_attr_new
    - fwupd_security_attr_get_fwupd_version
    - fwupd_security_attr_set_fwupd_version
    - fwupd_security_attr_set_plugin
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_get_metadata
    - fwupd_security_attr_set_level
    - g_assert_no_error
    - fwupd_codec_to_json_string
    - g_error_matches
    - fwupd_security_attr_get_name
    - fwupd_security_attr_remove_flag
    - g_test_skip
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - fwupd_security_attr_result_from_string
    - fwupd_security_attr_get_level
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:162,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:163,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupd/fwupd-security-attr-test.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: main
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr-test.c
    functionUses: 3
    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: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 339
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:98,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:99,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: fwupd_release_get_remote_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 11
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:115,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:116,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:116,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:119,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:122,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:123,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-release.c:124,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-release.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - remote_id
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: fwupd_release_set_remote_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_object_notify
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - G_OBJECT
    - GET_PRIVATE
    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:140,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:141,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: fwupd_release_get_version
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 21
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:157,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:158,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:158,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:161,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:164,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - version
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 166
    functionName: fwupd_release_set_version
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:181,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:182,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: fwupd_release_get_filename
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:198,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:199,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:199,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:202,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:205,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - filename
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: fwupd_release_set_filename
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:222,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:223,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: fwupd_release_get_update_message
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:239,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:240,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:240,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:243,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:246,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - update_message
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 248
    functionName: fwupd_release_set_update_message
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:263,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:264,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: fwupd_release_get_update_image
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:280,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:281,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:281,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:284,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:287,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - update_image
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 289
    functionName: fwupd_release_set_update_image
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:304,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:305,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 307
    functionName: fwupd_release_get_protocol
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:321,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:322,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:322,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:325,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:328,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - protocol
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 330
    functionName: fwupd_release_set_protocol
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:335,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-release.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 338
    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:353,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:354,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:354,1
    - Dst: fwupd_release_ensure_issues
      Src: /src/fwupd/libfwupd/fwupd-release.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 357
    functionName: fwupd_release_get_issues
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - fwupd_release_ensure_issues
    - GET_PRIVATE
    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:371,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:372,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:372,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:373,1
    - Dst: fwupd_release_ensure_issues
      Src: /src/fwupd/libfwupd/fwupd-release.c:374,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:376,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:377,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:380,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - issue
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 381
    functionName: fwupd_release_add_issue
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_ptr_array_add
    - fwupd_release_ensure_issues
    - g_ptr_array_index
    - GET_PRIVATE
    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:386,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-release.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 389
    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:404,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:405,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:405,1
    - Dst: fwupd_release_ensure_categories
      Src: /src/fwupd/libfwupd/fwupd-release.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 408
    functionName: fwupd_release_get_categories
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - fwupd_release_ensure_categories
    - GET_PRIVATE
    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:422,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:423,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:423,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:424,1
    - Dst: fwupd_release_has_category
      Src: /src/fwupd/libfwupd/fwupd-release.c:425,1
    - Dst: fwupd_release_ensure_categories
      Src: /src/fwupd/libfwupd/fwupd-release.c:427,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:428,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - category
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 429
    functionName: fwupd_release_add_category
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_ptr_array_add
    - fwupd_release_has_category
    - fwupd_release_ensure_categories
    - GET_PRIVATE
    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:445,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:446,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:446,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:447,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:451,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:452,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - category
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 456
    functionName: fwupd_release_has_category
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_ptr_array_index
    - GET_PRIVATE
    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:461,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-release.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 464
    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:479,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:480,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:480,1
    - Dst: fwupd_release_ensure_checksums
      Src: /src/fwupd/libfwupd/fwupd-release.c:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 483
    functionName: fwupd_release_get_checksums
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 10
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - fwupd_release_ensure_checksums
    - GET_PRIVATE
    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:497,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:498,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:498,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:499,1
    - Dst: fwupd_release_has_checksum
      Src: /src/fwupd/libfwupd/fwupd-release.c:500,1
    - Dst: fwupd_release_ensure_checksums
      Src: /src/fwupd/libfwupd/fwupd-release.c:502,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:503,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - checksum
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 504
    functionName: fwupd_release_add_checksum
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 4
    functionsReached:
    - fwupd_release_has_checksum
    - g_strdup
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_ptr_array_add
    - GET_PRIVATE
    - fwupd_release_ensure_checksums
    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:520,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:521,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:521,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:522,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:526,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - checksum
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 531
    functionName: fwupd_release_has_checksum
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_ptr_array_index
    - GET_PRIVATE
    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:536,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-release.c:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 539
    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:554,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:555,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:555,1
    - Dst: fwupd_release_ensure_tags
      Src: /src/fwupd/libfwupd/fwupd-release.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 558
    functionName: fwupd_release_get_tags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - fwupd_release_ensure_tags
    - GET_PRIVATE
    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:572,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:573,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:573,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:574,1
    - Dst: fwupd_release_has_tag
      Src: /src/fwupd/libfwupd/fwupd-release.c:575,1
    - Dst: fwupd_release_ensure_tags
      Src: /src/fwupd/libfwupd/fwupd-release.c:577,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:578,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - tag
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 579
    functionName: fwupd_release_add_tag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - fwupd_release_ensure_tags
    - g_ptr_array_add
    - fwupd_release_has_tag
    - GET_PRIVATE
    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:595,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:596,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:596,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:597,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:601,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:602,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - tag
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 606
    functionName: fwupd_release_has_tag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_ptr_array_index
    - GET_PRIVATE
    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:611,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupd/fwupd-release.c:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 614
    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:629,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:630,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:630,1
    - Dst: fwupd_release_ensure_metadata
      Src: /src/fwupd/libfwupd/fwupd-release.c:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 633
    functionName: fwupd_release_get_metadata
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - fwupd_release_ensure_metadata
    - GET_PRIVATE
    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:648,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:649,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:649,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:650,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:651,1
    - Dst: fwupd_release_ensure_metadata
      Src: /src/fwupd/libfwupd/fwupd-release.c:652,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-release.c:653,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:653,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdRelease*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 654
    functionName: fwupd_release_add_metadata_item
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - fwupd_release_ensure_metadata
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    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:668,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release.c:669,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:671,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:671,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:672,1
    - Dst: fwupd_release_ensure_metadata
      Src: /src/fwupd/libfwupd/fwupd-release.c:675,1
    - Dst: g_list_sort
      Src: /src/fwupd/libfwupd/fwupd-release.c:676,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupd/fwupd-release.c:676,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-release.c:679,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-release.c:680,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:680,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - hash
    argTypes:
    - FwupdRelease*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 682
    functionName: fwupd_release_add_metadata
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - g_hash_table_get_keys
    - fwupd_release_ensure_metadata
    - FWUPD_IS_RELEASE
    - g_hash_table_lookup
    - g_return_if_fail
    - g_list_sort
    - g_autoptr
    - GET_PRIVATE
    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:698,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:699,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:699,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:700,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-release.c:703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 704
    functionName: fwupd_release_get_metadata_item
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - g_hash_table_lookup
    - GET_PRIVATE
    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:709,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-release.c:711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 712
    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:730,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:731,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:731,1
    - Dst: fwupd_release_ensure_locations
      Src: /src/fwupd/libfwupd/fwupd-release.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 734
    functionName: fwupd_release_get_locations
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - fwupd_release_ensure_locations
    - GET_PRIVATE
    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:748,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:749,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:749,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:750,1
    - Dst: fwupd_release_ensure_locations
      Src: /src/fwupd/libfwupd/fwupd-release.c:751,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:753,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:754,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:757,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:757,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - location
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 758
    functionName: fwupd_release_add_location
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 3
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_ptr_array_add
    - fwupd_release_ensure_locations
    - g_ptr_array_index
    - GET_PRIVATE
    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:773,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:774,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 776
    functionName: fwupd_release_get_homepage
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:790,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:791,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:791,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:794,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:797,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - homepage
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 799
    functionName: fwupd_release_set_homepage
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:814,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:815,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 817
    functionName: fwupd_release_get_details_url
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:831,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:832,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:832,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:835,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:838,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - details_url
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 840
    functionName: fwupd_release_set_details_url
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:855,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:856,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 858
    functionName: fwupd_release_get_source_url
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:872,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:873,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:873,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:876,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:879,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - source_url
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 881
    functionName: fwupd_release_set_source_url
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:895,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:896,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:896,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:899,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:902,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - sbom_url
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 904
    functionName: fwupd_release_set_sbom_url
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:919,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:920,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 922
    functionName: fwupd_release_get_sbom_url
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:937,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:938,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 940
    functionName: fwupd_release_get_description
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:954,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:955,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:955,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:958,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:961,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:962,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - description
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 963
    functionName: fwupd_release_set_description
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:978,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:979,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 981
    functionName: fwupd_release_get_appstream_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:995,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:996,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:996,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:999,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1002,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - appstream_id
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 1004
    functionName: fwupd_release_set_appstream_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:1019,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1020,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1022
    functionName: fwupd_release_get_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:1036,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1037,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1037,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1040,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1043,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1033
    functionDepth: 0
    functionLinenumber: 1033
    functionLinenumberEnd: 1045
    functionName: fwupd_release_set_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:1060,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1061,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1063
    functionName: fwupd_release_get_detach_caption
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:1077,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1078,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1078,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1081,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1084,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - detach_caption
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1086
    functionName: fwupd_release_set_detach_caption
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:1101,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1102,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1098
    functionDepth: 0
    functionLinenumber: 1098
    functionLinenumberEnd: 1104
    functionName: fwupd_release_get_detach_image
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:1118,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1119,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1119,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1122,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1125,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - detach_image
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1127
    functionName: fwupd_release_set_detach_image
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:1142,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1143,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1139
    functionDepth: 0
    functionLinenumber: 1139
    functionLinenumberEnd: 1145
    functionName: fwupd_release_get_size
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:1159,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1160,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - FwupdRelease*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1156
    functionDepth: 0
    functionLinenumber: 1156
    functionLinenumberEnd: 1162
    functionName: fwupd_release_set_size
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 3
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    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:1177,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1178,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1174
    functionDepth: 0
    functionLinenumber: 1174
    functionLinenumberEnd: 1180
    functionName: fwupd_release_get_created
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:1194,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1195,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - created
    argTypes:
    - FwupdRelease*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1191
    functionDepth: 0
    functionLinenumber: 1191
    functionLinenumberEnd: 1197
    functionName: fwupd_release_set_created
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    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:1212,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1213,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1209
    functionDepth: 0
    functionLinenumber: 1209
    functionLinenumberEnd: 1215
    functionName: fwupd_release_get_summary
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:1229,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1230,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1230,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1233,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1236,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - summary
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1226
    functionDepth: 0
    functionLinenumber: 1226
    functionLinenumberEnd: 1238
    functionName: fwupd_release_set_summary
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:1253,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1254,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1250
    functionDepth: 0
    functionLinenumber: 1250
    functionLinenumberEnd: 1256
    functionName: fwupd_release_get_branch
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 9
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:1270,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1271,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1271,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1274,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1277,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - branch
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1267
    functionDepth: 0
    functionLinenumber: 1267
    functionLinenumberEnd: 1279
    functionName: fwupd_release_set_branch
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:1294,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1295,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1291
    functionDepth: 0
    functionLinenumber: 1291
    functionLinenumberEnd: 1297
    functionName: fwupd_release_get_vendor
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:1311,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1312,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1312,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1315,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1318,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - vendor
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1308
    functionDepth: 0
    functionLinenumber: 1308
    functionLinenumberEnd: 1320
    functionName: fwupd_release_set_vendor
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:1335,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1336,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1332
    functionDepth: 0
    functionLinenumber: 1332
    functionLinenumberEnd: 1338
    functionName: fwupd_release_get_license
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:1352,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1353,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1353,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1356,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1359,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - license
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1361
    functionName: fwupd_release_set_license
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:1376,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1377,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1373
    functionDepth: 0
    functionLinenumber: 1373
    functionLinenumberEnd: 1379
    functionName: fwupd_release_get_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:1393,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1394,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1394,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1397,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1400,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1402
    functionName: fwupd_release_set_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:1417,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1418,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1414
    functionDepth: 0
    functionLinenumber: 1414
    functionLinenumberEnd: 1420
    functionName: fwupd_release_get_name_variant_suffix
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:1434,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1435,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1435,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1438,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:1441,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-release.c:1442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - name_variant_suffix
    argTypes:
    - FwupdRelease*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1431
    functionDepth: 0
    functionLinenumber: 1431
    functionLinenumberEnd: 1443
    functionName: fwupd_release_set_name_variant_suffix
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:1458,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1459,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1461
    functionName: fwupd_release_get_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:1475,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1476,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdRelease*
    - FwupdReleaseFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1472
    functionDepth: 0
    functionLinenumber: 1472
    functionLinenumberEnd: 1478
    functionName: fwupd_release_set_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    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:1492,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1493,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdRelease*
    - FwupdReleaseFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1489
    functionDepth: 0
    functionLinenumber: 1489
    functionLinenumberEnd: 1495
    functionName: fwupd_release_add_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    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:1509,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1510,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdRelease*
    - FwupdReleaseFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1506
    functionDepth: 0
    functionLinenumber: 1506
    functionLinenumberEnd: 1512
    functionName: fwupd_release_remove_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    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:1528,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1529,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdRelease*
    - FwupdReleaseFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1525
    functionDepth: 0
    functionLinenumber: 1525
    functionLinenumberEnd: 1531
    functionName: fwupd_release_has_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 10
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:1546,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1547,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1543
    functionDepth: 0
    functionLinenumber: 1543
    functionLinenumberEnd: 1549
    functionName: fwupd_release_get_urgency
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:1563,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1564,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - urgency
    argTypes:
    - FwupdRelease*
    - FwupdReleaseUrgency
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1560
    functionDepth: 0
    functionLinenumber: 1560
    functionLinenumberEnd: 1566
    functionName: fwupd_release_set_urgency
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    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:1581,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1582,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1578
    functionDepth: 0
    functionLinenumber: 1578
    functionLinenumberEnd: 1584
    functionName: fwupd_release_get_install_duration
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - GET_PRIVATE
    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:1589,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-release.c:1591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1586
    functionDepth: 0
    functionLinenumber: 1586
    functionLinenumberEnd: 1592
    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:1607,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1608,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1608,1
    - Dst: fwupd_release_ensure_reports
      Src: /src/fwupd/libfwupd/fwupd-release.c:1609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRelease*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1604
    functionDepth: 1
    functionLinenumber: 1604
    functionLinenumberEnd: 1611
    functionName: fwupd_release_get_reports
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - fwupd_release_ensure_reports
    - GET_PRIVATE
    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:1625,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1626,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1626,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1627,1
    - Dst: FWUPD_IS_REPORT
      Src: /src/fwupd/libfwupd/fwupd-release.c:1627,1
    - Dst: fwupd_release_ensure_reports
      Src: /src/fwupd/libfwupd/fwupd-release.c:1628,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1629,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-release.c:1629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - report
    argTypes:
    - FwupdRelease*
    - FwupdReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1622
    functionDepth: 1
    functionLinenumber: 1622
    functionLinenumberEnd: 1630
    functionName: fwupd_release_add_report
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_REPORT
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - g_ptr_array_add
    - fwupd_release_ensure_reports
    - g_object_ref
    - GET_PRIVATE
    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:1644,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:1645,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - duration
    argTypes:
    - FwupdRelease*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1641
    functionDepth: 0
    functionLinenumber: 1641
    functionLinenumberEnd: 1647
    functionName: fwupd_release_set_install_duration
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 3
    functionsReached:
    - FWUPD_IS_RELEASE
    - g_return_if_fail
    - GET_PRIVATE
    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:1652,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1653,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1656,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1659,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1662,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1665,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1668,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1671,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1674,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1677,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1680,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1683,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1686,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1689,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1692,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1695,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1698,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1701,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1704,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1707,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1710,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1713,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1716,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1719,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1722,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1725,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1728,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-release.c:1731,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1734,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-release.c:1737,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1740,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1743,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1746,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1749,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1752,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1755,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1758,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:1760,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1761,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-release.c:1764,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1767,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:1769,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1770,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-release.c:1773,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release.c:1776,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-release.c:1776,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:1778,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-release.c:1779,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-release.c:1782,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1783,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1786,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1789,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-release.c:1793,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1797,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-release.c:1801,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1804,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1807,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1810,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1813,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1816,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1819,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1822,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1825,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1828,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1831,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1834,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1837,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1840,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-release.c:1843,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1846,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-release.c:1849,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupd/fwupd-release.c:1851,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1852,1
    - Dst: fwupd_variant_from_hash_kv
      Src: /src/fwupd/libfwupd/fwupd-release.c:1855,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1858,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-release.c:1861,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1865,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:1867,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-release.c:1868,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-release.c:1868,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:1870,1
    - Dst: g_variant_new_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:1874,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1874,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 115
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - GVariantBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1876
    functionName: fwupd_release_add_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - g_variant_new_array
    - FWUPD_CODEC
    - g_variant_new_strv
    - g_hash_table_size
    - g_variant_new_uint32
    - g_ptr_array_index
    - g_new0
    - fwupd_variant_from_hash_kv
    - fwupd_codec_to_variant
    - g_string_new
    - g_string_truncate
    - GET_PRIVATE
    - g_variant_new_string
    - g_variant_builder_add
    - g_variant_new_uint64
    - g_string_append_printf
    - G_VARIANT_TYPE
    - g_autoptr
    - FWUPD_RELEASE
    linkageType: ''
    returnType: void
    signature: void fwupd_release_add_variant(FwupdCodec *codec, GVariantBuilder *builder,
      FwupdCodecFlags flags)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:1881,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1882,1
    - Dst: fwupd_release_set_remote_id
      Src: /src/fwupd/libfwupd/fwupd-release.c:1883,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1883,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1886,1
    - Dst: fwupd_release_set_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-release.c:1887,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1887,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1890,1
    - Dst: fwupd_release_set_id
      Src: /src/fwupd/libfwupd/fwupd-release.c:1891,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1891,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1894,1
    - Dst: fwupd_release_set_detach_caption
      Src: /src/fwupd/libfwupd/fwupd-release.c:1895,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1895,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1898,1
    - Dst: fwupd_release_set_detach_image
      Src: /src/fwupd/libfwupd/fwupd-release.c:1899,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1899,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1902,1
    - Dst: fwupd_release_set_filename
      Src: /src/fwupd/libfwupd/fwupd-release.c:1903,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1903,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1906,1
    - Dst: fwupd_release_set_protocol
      Src: /src/fwupd/libfwupd/fwupd-release.c:1907,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1907,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1910,1
    - Dst: fwupd_release_set_license
      Src: /src/fwupd/libfwupd/fwupd-release.c:1911,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1911,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1914,1
    - Dst: fwupd_release_set_name
      Src: /src/fwupd/libfwupd/fwupd-release.c:1915,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1915,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1918,1
    - Dst: fwupd_release_set_name_variant_suffix
      Src: /src/fwupd/libfwupd/fwupd-release.c:1919,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1919,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1922,1
    - Dst: fwupd_release_set_size
      Src: /src/fwupd/libfwupd/fwupd-release.c:1923,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-release.c:1923,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1926,1
    - Dst: fwupd_release_set_created
      Src: /src/fwupd/libfwupd/fwupd-release.c:1927,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-release.c:1927,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1930,1
    - Dst: fwupd_release_set_summary
      Src: /src/fwupd/libfwupd/fwupd-release.c:1931,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1931,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1934,1
    - Dst: fwupd_release_set_branch
      Src: /src/fwupd/libfwupd/fwupd-release.c:1935,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1935,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1938,1
    - Dst: fwupd_release_set_description
      Src: /src/fwupd/libfwupd/fwupd-release.c:1939,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1939,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1942,1
    - Dst: fwupd_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-release.c:1943,1
    - Dst: fwupd_release_add_category
      Src: /src/fwupd/libfwupd/fwupd-release.c:1945,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1948,1
    - Dst: fwupd_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-release.c:1949,1
    - Dst: fwupd_release_add_issue
      Src: /src/fwupd/libfwupd/fwupd-release.c:1951,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1954,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:1955,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupd/fwupd-release.c:1957,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupd/fwupd-release.c:1957,1
    - Dst: fwupd_release_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-release.c:1959,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1963,1
    - Dst: fwupd_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-release.c:1964,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/libfwupd/fwupd-release.c:1966,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1969,1
    - Dst: fwupd_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-release.c:1970,1
    - Dst: fwupd_release_add_tag
      Src: /src/fwupd/libfwupd/fwupd-release.c:1972,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:1975,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/libfwupd/fwupd-release.c:1976,1
    - Dst: fwupd_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_homepage
      Src: /src/fwupd/libfwupd/fwupd-release.c:1980,1
    - Dst: fwupd_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_details_url
      Src: /src/fwupd/libfwupd/fwupd-release.c:1984,1
    - Dst: fwupd_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_source_url
      Src: /src/fwupd/libfwupd/fwupd-release.c:1988,1
    - Dst: fwupd_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_sbom_url
      Src: /src/fwupd/libfwupd/fwupd-release.c:1992,1
    - Dst: fwupd_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_version
      Src: /src/fwupd/libfwupd/fwupd-release.c:1996,1
    - Dst: fwupd_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_vendor
      Src: /src/fwupd/libfwupd/fwupd-release.c:2000,1
    - Dst: fwupd_variant_get_string
      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_flags
      Src: /src/fwupd/libfwupd/fwupd-release.c:2004,1
    - Dst: fwupd_variant_get_uint64
      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_urgency
      Src: /src/fwupd/libfwupd/fwupd-release.c:2008,1
    - Dst: fwupd_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_install_duration
      Src: /src/fwupd/libfwupd/fwupd-release.c:2012,1
    - Dst: fwupd_variant_get_uint32
      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_message
      Src: /src/fwupd/libfwupd/fwupd-release.c:2016,1
    - Dst: fwupd_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: fwupd_release_set_update_image
      Src: /src/fwupd/libfwupd/fwupd-release.c:2020,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2020,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:2023,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release.c:2024,1
    - Dst: fwupd_variant_to_hash_kv
      Src: /src/fwupd/libfwupd/fwupd-release.c:2024,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2027,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-release.c:2028,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-release.c:2032,1
    - Dst: g_variant_iter_init
      Src: /src/fwupd/libfwupd/fwupd-release.c:2035,1
    - Dst: g_variant_iter_next_value
      Src: /src/fwupd/libfwupd/fwupd-release.c:2036,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release.c:2037,1
    - Dst: fwupd_report_new
      Src: /src/fwupd/libfwupd/fwupd-release.c:2037,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-release.c:2038,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-release.c:2038,1
    - Dst: fwupd_release_add_report
      Src: /src/fwupd/libfwupd/fwupd-release.c:2039,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2040,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 158
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdRelease*
    - gchar*
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 1878
    functionDepth: 2
    functionLinenumber: 1878
    functionLinenumberEnd: 2044
    functionName: fwupd_release_from_key_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - fwupd_release_set_appstream_id
    - fwupd_release_set_summary
    - fwupd_release_set_vendor
    - fwupd_release_set_name_variant_suffix
    - fwupd_release_add_report
    - fwupd_release_set_branch
    - fwupd_release_set_name
    - fwupd_release_set_source_url
    - g_auto
    - g_variant_iter_next_value
    - fwupd_report_new
    - fwupd_variant_get_uint64
    - fwupd_release_set_detach_caption
    - g_strsplit
    - fwupd_release_add_tag
    - fwupd_release_set_details_url
    - GET_PRIVATE
    - fwupd_release_set_flags
    - fwupd_release_set_version
    - fwupd_release_set_detach_image
    - fwupd_variant_get_uint32
    - fwupd_release_set_description
    - fwupd_release_set_protocol
    - g_variant_iter_init
    - fwupd_codec_from_variant
    - fwupd_variant_get_string
    - fwupd_release_set_license
    - fwupd_release_set_update_image
    - fwupd_release_add_issue
    - fwupd_release_set_filename
    - fwupd_variant_get_strv
    - fwupd_release_add_location
    - fwupd_release_set_update_message
    - fwupd_variant_to_hash_kv
    - g_hash_table_unref
    - g_strcmp0
    - fwupd_release_set_install_duration
    - fwupd_release_set_created
    - fwupd_release_set_size
    - fwupd_release_set_remote_id
    - fwupd_release_set_homepage
    - fwupd_release_add_category
    - g_variant_unref
    - fwupd_release_set_sbom_url
    - g_steal_pointer
    - fwupd_release_add_checksum
    - fwupd_release_set_id
    - g_autoptr
    - fwupd_release_set_urgency
    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:2052,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-release.c:2052,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-release.c:2056,1
    - Dst: fwupd_release_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2056,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2059,1
    - Dst: fwupd_release_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2059,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-release.c:2061,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2063,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: 2064
      start: 2046
    functionDepth: 2
    functionLinenumber: 2046
    functionLinenumberEnd: 2064
    functionName: fwupd_release_string_append_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - fwupd_release_flag_to_string
    - g_string_append
    - fwupd_codec_string_append
    - g_string_new
    - g_string_append_printf
    - g_string_truncate
    - g_autoptr
    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: 34
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2069,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2070,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2073,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2078,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2080,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2082,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2084,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2089,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2091,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2096,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2098,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2100,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2102,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release.c:2104,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-release.c:2104,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2106,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2107,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:2109,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release.c:2112,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-release.c:2112,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2114,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2115,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:2117,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release.c:2120,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-release.c:2120,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2122,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2123,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:2125,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release.c:2128,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-release.c:2128,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2130,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2131,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:2133,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2136,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-release.c:2138,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-release.c:2140,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release.c:2142,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-release.c:2142,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2144,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2145,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:2147,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2150,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2152,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2157,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2162,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2164,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release.c:2166,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-release.c:2166,1
    - Dst: fwupd_release_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2171,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2172,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-release.c:2174,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-release.c:2177,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2182,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2187,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2192,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2197,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release.c:2204,1
    - Dst: g_list_sort
      Src: /src/fwupd/libfwupd/fwupd-release.c:2205,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupd/fwupd-release.c:2205,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-release.c:2208,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2209,1
    - Dst: fwupd_codec_array_to_json
      Src: /src/fwupd/libfwupd/fwupd-release.c:2215,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 115
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2216
      start: 2066
    functionDepth: 3
    functionLinenumber: 2066
    functionLinenumberEnd: 2216
    functionName: fwupd_release_add_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - fwupd_release_flag_to_string
    - fwupd_json_object_add_array
    - g_hash_table_get_keys
    - g_hash_table_lookup
    - g_list_sort
    - fwupd_json_array_new
    - fwupd_json_array_add_string
    - fwupd_json_object_add_integer
    - g_ptr_array_index
    - fwupd_codec_array_to_json
    - g_autoptr
    - FWUPD_RELEASE
    - fwupd_json_object_add_string
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_release_add_json(FwupdCodec *codec, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2221,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2222,1
    - Dst: fwupd_codec_string_append
      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:2226,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2227,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:2232,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2233,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2234,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2235,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2236,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2237,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2240,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2241,1
    - Dst: g_ptr_array_index
      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_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2252,1
    - Dst: fwupd_checksum_format_for_display
      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:2263,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2264,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2267,1
    - Dst: fwupd_codec_string_append_size
      Src: /src/fwupd/libfwupd/fwupd-release.c:2268,1
    - Dst: fwupd_codec_string_append_time
      Src: /src/fwupd/libfwupd/fwupd-release.c:2269,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2272,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2273,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2276,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2277,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2278,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2279,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2281,1
    - Dst: fwupd_release_urgency_to_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2284,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2286,1
    - Dst: fwupd_release_string_append_flags
      Src: /src/fwupd/libfwupd/fwupd-release.c:2287,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-release.c:2288,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2292,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2293,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2294,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2295,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-release.c:2299,1
    - Dst: g_list_sort
      Src: /src/fwupd/libfwupd/fwupd-release.c:2300,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupd/fwupd-release.c:2300,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-release.c:2303,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-release.c:2304,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2309,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2310,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-release.c:2310,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 65
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2218
    functionDepth: 3
    functionLinenumber: 2218
    functionLinenumberEnd: 2313
    functionName: fwupd_release_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - fwupd_release_string_append_flags
    - fwupd_codec_add_string
    - FWUPD_CODEC
    - fwupd_codec_string_append_size
    - g_hash_table_get_keys
    - g_hash_table_lookup
    - fwupd_checksum_format_for_display
    - fwupd_codec_string_append
    - fwupd_codec_string_append_time
    - fwupd_release_urgency_to_string
    - g_list_sort
    - fwupd_codec_string_append_int
    - g_autoptr
    - FWUPD_RELEASE
    - g_ptr_array_index
    - GET_PRIVATE
    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:2318,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2319,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2323,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-release.c:2326,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: 2329
      start: 2315
    functionDepth: 0
    functionLinenumber: 2315
    functionLinenumberEnd: 2329
    functionName: fwupd_release_get_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - g_value_set_string
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FWUPD_RELEASE
    - GET_PRIVATE
    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:2334,1
    - Dst: fwupd_release_set_remote_id
      Src: /src/fwupd/libfwupd/fwupd-release.c:2338,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2338,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-release.c:2341,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: 2344
      start: 2331
    functionDepth: 1
    functionLinenumber: 2331
    functionLinenumberEnd: 2344
    functionName: fwupd_release_set_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_get_string
    - FWUPD_RELEASE
    - fwupd_release_set_remote_id
    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:2350,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-release.c:2362,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-release.c:2367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdReleaseClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2346
    functionDepth: 0
    functionLinenumber: 2346
    functionLinenumberEnd: 2368
    functionName: fwupd_release_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_string
    - 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: 2373
      start: 2370
    functionDepth: 0
    functionLinenumber: 2370
    functionLinenumberEnd: 2373
    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:2378,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2379,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2381,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2382,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2383,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2384,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2385,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2386,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2387,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2388,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2389,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2390,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2391,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2392,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2394,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2395,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2396,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2397,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2398,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2399,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2400,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2401,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2402,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-release.c:2403,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2405,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2407,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2409,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2411,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2413,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2415,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-release.c:2417,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2418
      start: 2375
    functionDepth: 0
    functionLinenumber: 2375
    functionLinenumberEnd: 2418
    functionName: fwupd_release_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - g_free
    - FWUPD_RELEASE
    - g_hash_table_unref
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_release_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2423,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/libfwupd/fwupd-release.c:2426,1
    - Dst: fwupd_release_from_key_value
      Src: /src/fwupd/libfwupd/fwupd-release.c:2427,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - codec
    - iter
    argTypes:
    - FwupdCodec*
    - GVariantIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2430
      start: 2420
    functionDepth: 3
    functionLinenumber: 2420
    functionLinenumberEnd: 2430
    functionName: fwupd_release_from_variant_iter
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 0
    functionsReached:
    - g_variant_iter_next
    - fwupd_release_from_key_value
    - FWUPD_RELEASE
    - 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: 2439
      start: 2432
    functionDepth: 0
    functionLinenumber: 2432
    functionLinenumberEnd: 2439
    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:2455,1
    - Dst: FWUPD_IS_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2455,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/libfwupd/fwupd-release.c:2460,1
    - Dst: fwupd_release_has_flag
      Src: /src/fwupd/libfwupd/fwupd-release.c:2464,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - self
    - include
    - exclude
    argTypes:
    - FwupdRelease*
    - FwupdReleaseFlags
    - FwupdReleaseFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2452
    functionDepth: 1
    functionLinenumber: 2452
    functionLinenumberEnd: 2469
    functionName: fwupd_release_match_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 16
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_RELEASE
    - fwupd_release_has_flag
    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:2490,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-release.c:2491,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:2493,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-release.c:2494,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-release.c:2497,1
    - Dst: fwupd_release_match_flags
      Src: /src/fwupd/libfwupd/fwupd-release.c:2498,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-release.c:2500,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-release.c:2500,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-release.c:2503,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-release.c:2506,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - rels
    - include
    - exclude
    - error
    argTypes:
    - GPtrArray*
    - FwupdReleaseFlags
    - FwupdReleaseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2507
      start: 2484
    functionDepth: 2
    functionLinenumber: 2484
    functionLinenumberEnd: 2507
    functionName: fwupd_release_array_filter_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - g_steal_pointer
    - g_ptr_array_add
    - g_object_ref
    - g_autoptr
    - fwupd_release_match_flags
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    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:2522,1
    - Dst: FWUPD_RELEASE
      Src: /src/fwupd/libfwupd/fwupd-release.c:2523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2524
      start: 2518
    functionDepth: 0
    functionLinenumber: 2518
    functionLinenumberEnd: 2524
    functionName: fwupd_release_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-release.c
    functionUses: 2
    functionsReached:
    - g_object_new
    - FWUPD_RELEASE
    linkageType: ''
    returnType: FwupdRelease
    signature: 'FwupdRelease *

      fwupd_release_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-json-common.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - str
    - depth
    argTypes:
    - GString*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: fwupd_json_indent
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-common.c
    functionUses: 1
    functionsReached:
    - g_string_append
    linkageType: ''
    returnType: void
    signature: void fwupd_json_indent(GString *str, guint depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fd_ptr
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 21
    functionName: g_steal_fd
    functionSourceFile: /src/fwupd/libfwupd/fwupd-build-glib-2-70.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int g_steal_fd(int *fd_ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_JCAT_FILE
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:34,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:38,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:39,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:42,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:43,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: fwupd_jcat_file_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_add_string
    - FWUPD_CODEC
    - fwupd_codec_string_append
    - g_strdup_printf
    - FWUPD_JCAT_FILE
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_file_add_string(FwupdCodec *codec, guint idt, GString
      *str)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:52,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:55,1
    - Dst: fwupd_json_object_get_integer
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:58,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:61,1
    - Dst: fwupd_json_object_get_integer
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:68,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:71,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:80,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:84,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:85,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:85,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:87,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:90,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:90,1
    - Dst: fwupd_jcat_file_add_item
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:92,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - self
    - json_node
    - error
    argTypes:
    - FwupdJcatFile*
    - FwupdJsonNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 97
    functionName: fwupd_jcat_file_import_node
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - fwupd_json_array_get_size
    - fwupd_json_object_get_integer
    - fwupd_codec_from_json
    - g_set_error_literal
    - fwupd_json_object_get_array
    - g_object_new
    - fwupd_json_array_get_object
    - fwupd_jcat_file_add_item
    - fwupd_json_node_get_object
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_jcat_file_import_node(FwupdJcatFile *self, FwupdJsonNode
      *json_node, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:102,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:103,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:103,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:106,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:107,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:112,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:112,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:113,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:113,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:114,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:116,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdJcatFile*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 120
    functionName: fwupd_jcat_file_export_builder
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - FWUPD_CODEC
    - fwupd_json_object_new
    - g_steal_pointer
    - fwupd_codec_to_json
    - fwupd_json_array_new
    - fwupd_json_object_add_integer
    - fwupd_json_array_add_object
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: FwupdJsonObject
    signature: 'FwupdJsonObject *

      fwupd_jcat_file_export_builder(FwupdJcatFile *self, FwupdCodecFlags flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:125,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:125,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:126,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:127,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:128,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: fwupd_jcat_file_json_parser_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - fwupd_json_parser_set_max_quoted
    - g_steal_pointer
    - fwupd_json_parser_new
    - g_autoptr
    - fwupd_json_parser_set_max_items
    linkageType: ''
    returnType: FwupdJsonParser
    signature: 'FwupdJsonParser *

      fwupd_jcat_file_json_parser_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:147,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:148,1
    - Dst: fwupd_jcat_file_json_parser_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:148,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:150,1
    - Dst: FWUPD_IS_JCAT_FILE
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:150,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:151,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:152,1
    - Dst: fwupd_json_parser_load_from_data
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:155,1
    - Dst: fwupd_jcat_file_import_node
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - json
    - error
    argTypes:
    - FwupdJcatFile*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 144
    functionDepth: 8
    functionLinenumber: 144
    functionLinenumberEnd: 159
    functionName: fwupd_jcat_file_import_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_jcat_file_json_parser_new
    - fwupd_json_parser_load_from_data
    - fwupd_jcat_file_import_node
    - FWUPD_IS_JCAT_FILE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_jcat_file_import_json(FwupdJcatFile *self, const gchar
      *json, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:176,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:177,1
    - Dst: fwupd_jcat_file_json_parser_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:177,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:178,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:179,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:181,1
    - Dst: FWUPD_IS_JCAT_FILE
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:181,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:182,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:182,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:183,1
    - Dst: G_CONVERTER
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:185,1
    - Dst: g_zlib_decompressor_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:185,1
    - Dst: g_converter_input_stream_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:186,1
    - Dst: g_filter_input_stream_set_close_base_stream
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:187,1
    - Dst: G_FILTER_INPUT_STREAM
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:187,1
    - Dst: fwupd_json_parser_load_from_stream
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:189,1
    - Dst: fwupd_jcat_file_import_node
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - self
    - istream
    - error
    argTypes:
    - FwupdJcatFile*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 173
    functionDepth: 8
    functionLinenumber: 173
    functionLinenumberEnd: 196
    functionName: fwupd_jcat_file_import_stream
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - fwupd_jcat_file_json_parser_new
    - g_zlib_decompressor_new
    - G_FILTER_INPUT_STREAM
    - fwupd_json_parser_load_from_stream
    - G_CONVERTER
    - g_filter_input_stream_set_close_base_stream
    - G_IS_INPUT_STREAM
    - fwupd_jcat_file_import_node
    - FWUPD_IS_JCAT_FILE
    - g_converter_input_stream_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_jcat_file_import_stream(FwupdJcatFile *self, GInputStream
      *istream, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:213,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:215,1
    - Dst: FWUPD_IS_JCAT_FILE
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:215,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:216,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:217,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:219,1
    - Dst: fwupd_jcat_file_import_stream
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - blob
    - error
    argTypes:
    - FwupdJcatFile*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 210
    functionDepth: 9
    functionLinenumber: 210
    functionLinenumberEnd: 221
    functionName: fwupd_jcat_file_import_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_jcat_file_import_stream
    - g_memory_input_stream_new_from_bytes
    - FWUPD_IS_JCAT_FILE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_jcat_file_import_bytes(FwupdJcatFile *self, GBytes *blob,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:238,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:239,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:241,1
    - Dst: FWUPD_IS_JCAT_FILE
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:241,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:242,1
    - Dst: fwupd_jcat_file_export_builder
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:244,1
    - Dst: fwupd_json_object_to_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:245,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:246,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FwupdJcatFile*
    - FwupdCodecFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 235
    functionDepth: 5
    functionLinenumber: 235
    functionLinenumberEnd: 247
    functionName: fwupd_jcat_file_export_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_steal_pointer
    - g_string_free
    - FWUPD_IS_JCAT_FILE
    - fwupd_jcat_file_export_builder
    - g_autoptr
    - fwupd_json_object_to_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_jcat_file_export_json(FwupdJcatFile *self, FwupdCodecFlags flags, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:263,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:264,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:265,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:267,1
    - Dst: FWUPD_IS_JCAT_FILE
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:267,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:268,1
    - Dst: fwupd_jcat_file_export_builder
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:271,1
    - Dst: fwupd_json_object_to_bytes
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:272,1
    - Dst: G_CONVERTER
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:275,1
    - Dst: g_zlib_compressor_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:275,1
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:276,1
    - Dst: g_converter_convert_bytes
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:277,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:281,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:282,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:283,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:283,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:284,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:286,1
    - Dst: g_converter_input_stream_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:287,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:290,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:294,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:300,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:302,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:302,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdJcatFile*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 260
    functionDepth: 5
    functionLinenumber: 260
    functionLinenumberEnd: 305
    functionName: fwupd_jcat_file_export_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - g_memory_input_stream_new_from_bytes
    - GLIB_CHECK_VERSION
    - g_zlib_compressor_new
    - g_set_error_literal
    - g_steal_pointer
    - G_CONVERTER
    - g_byte_array_new
    - g_converter_convert_bytes
    - g_byte_array_free_to_bytes
    - g_byte_array_append
    - fwupd_jcat_file_export_builder
    - g_input_stream_read
    - g_converter_input_stream_new
    - g_autoptr
    - fwupd_json_object_to_bytes
    - FWUPD_IS_JCAT_FILE
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fwupd_jcat_file_export_bytes(FwupdJcatFile *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:320,1
    - Dst: FWUPD_IS_JCAT_FILE
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:320,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJcatFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 322
    functionName: fwupd_jcat_file_get_items
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - g_ptr_array_ref
    - FWUPD_IS_JCAT_FILE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_jcat_file_get_items(FwupdJcatFile *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:339,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:341,1
    - Dst: FWUPD_IS_JCAT_FILE
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:341,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:342,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:343,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:347,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:348,1
    - Dst: fwupd_jcat_item_get_id
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:348,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:350,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:357,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:361,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:365,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:366,1
    - Dst: fwupd_jcat_item_get_alias_ids
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:366,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:368,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:369,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:371,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:378,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:383,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:386,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FwupdJcatFile*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 388
    functionName: fwupd_jcat_file_get_item_by_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 10
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - g_set_error
    - g_steal_pointer
    - g_object_ref
    - FWUPD_IS_JCAT_FILE
    - fwupd_jcat_item_get_id
    - g_autoptr
    - fwupd_jcat_item_get_alias_ids
    - g_ptr_array_index
    linkageType: ''
    returnType: FwupdJcatItem
    signature: 'FwupdJcatItem *

      fwupd_jcat_file_get_item_by_id(FwupdJcatFile *self, const gchar *id, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:405,1
    - Dst: FWUPD_IS_JCAT_FILE
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:405,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:406,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:410,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:414,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:422,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdJcatFile*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 423
    functionName: fwupd_jcat_file_get_item_default
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - g_object_ref
    - FWUPD_IS_JCAT_FILE
    - g_ptr_array_index
    linkageType: ''
    returnType: FwupdJcatItem
    signature: 'FwupdJcatItem *

      fwupd_jcat_file_get_item_default(FwupdJcatFile *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:437,1
    - Dst: FWUPD_IS_JCAT_FILE
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:437,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:438,1
    - Dst: FWUPD_IS_JCAT_ITEM
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:438,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:439,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - FwupdJcatFile*
    - FwupdJcatItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 440
    functionName: fwupd_jcat_file_add_item
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 6
    functionsReached:
    - FWUPD_IS_JCAT_ITEM
    - g_ptr_array_add
    - g_return_if_fail
    - g_object_ref
    - FWUPD_IS_JCAT_FILE
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_file_add_item(FwupdJcatFile *self, FwupdJcatItem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:455,1
    - Dst: FWUPD_IS_JCAT_FILE
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJcatFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 457
    functionName: fwupd_jcat_file_get_version_major
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_JCAT_FILE
    linkageType: ''
    returnType: guint32
    signature: guint32 fwupd_jcat_file_get_version_major(FwupdJcatFile *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:472,1
    - Dst: FWUPD_IS_JCAT_FILE
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJcatFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 474
    functionName: fwupd_jcat_file_get_version_minor
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_JCAT_FILE
    linkageType: ''
    returnType: guint32
    signature: guint32 fwupd_jcat_file_get_version_minor(FwupdJcatFile *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 480
    functionName: fwupd_jcat_file_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_file_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_JCAT_FILE
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:485,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:487,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 489
    functionName: fwupd_jcat_file_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 0
    functionsReached:
    - FWUPD_JCAT_FILE
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_file_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdJcatFileClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 496
    functionName: fwupd_jcat_file_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_file_class_init(FwupdJcatFileClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJcatFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 504
    functionName: fwupd_jcat_file_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_file_init(FwupdJcatFile *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-file.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 519
    functionName: fwupd_jcat_file_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-file.c
    functionUses: 7
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FwupdJcatFile
    signature: 'FwupdJcatFile *

      fwupd_jcat_file_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote-test.c:18,1
    - Dst: fwupd_remote_new
      Src: /src/fwupd/libfwupd/fwupd-remote-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote-test.c:19,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/libfwupd/fwupd-remote-test.c:21,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-remote-test.c:24,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-remote-test.c:25,1
    - Dst: fwupd_remote_set_firmware_base_uri
      Src: /src/fwupd/libfwupd/fwupd-remote-test.c:27,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/libfwupd/fwupd-remote-test.c:28,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-remote-test.c:31,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-remote-test.c:32,1
    - Dst: fwupd_remote_set_username
      Src: /src/fwupd/libfwupd/fwupd-remote-test.c:34,1
    - Dst: fwupd_remote_build_firmware_uri
      Src: /src/fwupd/libfwupd/fwupd-remote-test.c:35,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-remote-test.c:38,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-remote-test.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 40
    functionName: fwupd_remote_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote-test.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_set_firmware_base_uri
    - fwupd_remote_new
    - fwupd_remote_build_firmware_uri
    - fwupd_remote_set_username
    - g_assert_no_error
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupd/fwupd-remote-test.c:45,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-remote-test.c:46,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupd/fwupd-remote-test.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: main
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote-test.c
    functionUses: 3
    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: g_new0
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:40,1
    - Dst: g_ref_count_init
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:41,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: fwupd_json_array_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-array.c
    functionUses: 30
    functionsReached:
    - g_ref_count_init
    - g_ptr_array_new_with_free_func
    - g_new0
    linkageType: ''
    returnType: FwupdJsonArray
    signature: 'FwupdJsonArray *

      fwupd_json_array_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:59,1
    - Dst: g_ref_count_inc
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJsonArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: fwupd_json_array_ref
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-array.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_ref_count_inc
    linkageType: ''
    returnType: FwupdJsonArray
    signature: 'FwupdJsonArray *

      fwupd_json_array_ref(FwupdJsonArray *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:77,1
    - Dst: g_ref_count_dec
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:78,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:80,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJsonArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: fwupd_json_array_unref
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-array.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_free
    - g_ref_count_dec
    - g_ptr_array_unref
    linkageType: ''
    returnType: FwupdJsonArray
    signature: 'FwupdJsonArray *

      fwupd_json_array_unref(FwupdJsonArray *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJsonArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: fwupd_json_array_get_size
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-array.c
    functionUses: 14
    functionsReached:
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint
    signature: guint fwupd_json_array_get_size(FwupdJsonArray *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:117,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:118,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:122,1
    - Dst: fwupd_json_node_ref
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:129,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FwupdJsonArray*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 130
    functionName: fwupd_json_array_get_node
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-array.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_node_ref
    - g_ptr_array_index
    - g_set_error
    linkageType: ''
    returnType: FwupdJsonNode
    signature: 'FwupdJsonNode *

      fwupd_json_array_get_node(FwupdJsonArray *self, guint idx, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:147,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:149,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:150,1
    - Dst: fwupd_json_array_get_node
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:152,1
    - Dst: fwupd_json_node_get_raw
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FwupdJsonArray*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: fwupd_json_array_get_raw
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-array.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_autoptr
    - fwupd_json_node_get_raw
    - fwupd_json_array_get_node
    linkageType: ''
    returnType: GRefString
    signature: 'GRefString *

      fwupd_json_array_get_raw(FwupdJsonArray *self, guint idx, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:173,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:175,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:176,1
    - Dst: fwupd_json_array_get_node
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:178,1
    - Dst: fwupd_json_node_get_string
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FwupdJsonArray*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 182
    functionName: fwupd_json_array_get_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-array.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - g_autoptr
    - fwupd_json_node_get_string
    - fwupd_json_array_get_node
    linkageType: ''
    returnType: GRefString
    signature: 'GRefString *

      fwupd_json_array_get_string(FwupdJsonArray *self, guint idx, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:199,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:201,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:202,1
    - Dst: fwupd_json_array_get_node
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:204,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FwupdJsonArray*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 208
    functionName: fwupd_json_array_get_object
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-array.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_node_get_object
    - g_autoptr
    - fwupd_json_array_get_node
    linkageType: ''
    returnType: FwupdJsonObject
    signature: 'FwupdJsonObject *

      fwupd_json_array_get_object(FwupdJsonArray *self, guint idx, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:225,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:227,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:228,1
    - Dst: fwupd_json_array_get_node
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:230,1
    - Dst: fwupd_json_node_get_array
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FwupdJsonArray*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 234
    functionName: fwupd_json_array_get_array
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-array.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_json_node_get_array
    - g_autoptr
    - fwupd_json_array_get_node
    linkageType: ''
    returnType: FwupdJsonArray
    signature: 'FwupdJsonArray *

      fwupd_json_array_get_array(FwupdJsonArray *self, guint idx, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:239,1
    - Dst: fwupd_json_node_new_string_internal
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FwupdJsonArray*
    - GRefString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 240
    functionName: fwupd_json_array_add_string_internal
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-array.c
    functionUses: 1
    functionsReached:
    - fwupd_json_node_new_string_internal
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fwupd_json_array_add_string_internal(FwupdJsonArray *self, GRefString
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:254,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:255,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:256,1
    - Dst: fwupd_json_node_ref
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - json_node
    argTypes:
    - FwupdJsonArray*
    - FwupdJsonNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 257
    functionName: fwupd_json_array_add_node
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-array.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_add
    - fwupd_json_node_ref
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_json_array_add_node(FwupdJsonArray *self, FwupdJsonNode
      *json_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:271,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:272,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:273,1
    - Dst: fwupd_json_node_new_string
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FwupdJsonArray*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: fwupd_json_array_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-array.c
    functionUses: 11
    functionsReached:
    - fwupd_json_node_new_string
    - g_ptr_array_add
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_json_array_add_string(FwupdJsonArray *self, const gchar
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:279,1
    - Dst: fwupd_json_node_new_raw_internal
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FwupdJsonArray*
    - GRefString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: fwupd_json_array_add_raw_internal
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-array.c
    functionUses: 1
    functionsReached:
    - fwupd_json_node_new_raw_internal
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fwupd_json_array_add_raw_internal(FwupdJsonArray *self, GRefString
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:294,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:295,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:296,1
    - Dst: fwupd_json_node_new_raw
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FwupdJsonArray*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 297
    functionName: fwupd_json_array_add_raw
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-array.c
    functionUses: 1
    functionsReached:
    - g_ptr_array_add
    - g_return_if_fail
    - fwupd_json_node_new_raw
    linkageType: ''
    returnType: void
    signature: void fwupd_json_array_add_raw(FwupdJsonArray *self, const gchar *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:311,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:312,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:313,1
    - Dst: fwupd_json_node_new_object
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - json_obj
    argTypes:
    - FwupdJsonArray*
    - FwupdJsonObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: fwupd_json_array_add_object
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-array.c
    functionUses: 18
    functionsReached:
    - g_ptr_array_add
    - g_return_if_fail
    - fwupd_json_node_new_object
    linkageType: ''
    returnType: void
    signature: void fwupd_json_array_add_object(FwupdJsonArray *self, FwupdJsonObject
      *json_obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:328,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:329,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:330,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:331,1
    - Dst: fwupd_json_node_new_array
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - json_arr
    argTypes:
    - FwupdJsonArray*
    - FwupdJsonArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 332
    functionName: fwupd_json_array_add_array
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-array.c
    functionUses: 1
    functionsReached:
    - g_ptr_array_add
    - g_return_if_fail
    - fwupd_json_node_new_array
    linkageType: ''
    returnType: void
    signature: void fwupd_json_array_add_array(FwupdJsonArray *self, FwupdJsonArray
      *json_arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:350,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:351,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:353,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:354,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:356,1
    - Dst: fwupd_json_node_new_string
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FwupdJsonArray*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 357
    functionName: fwupd_json_array_add_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-array.c
    functionUses: 1
    functionsReached:
    - fwupd_json_node_new_string
    - g_bytes_get_data
    - g_ptr_array_add
    - g_return_if_fail
    - g_base64_encode
    linkageType: ''
    returnType: void
    signature: void fwupd_json_array_add_bytes(FwupdJsonArray *self, GBytes *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:376,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:377,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:380,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:382,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:385,1
    - Dst: fwupd_json_indent
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:387,1
    - Dst: fwupd_json_node_append_string
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:388,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:391,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:392,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:395,1
    - Dst: fwupd_json_indent
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:401,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:402,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - self
    - str
    - depth
    - flags
    argTypes:
    - FwupdJsonArray*
    - GString*
    - guint
    - FwupdJsonExportFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 403
    functionName: fwupd_json_array_append_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-array.c
    functionUses: 1
    functionsReached:
    - g_string_append
    - fwupd_json_indent
    - g_return_if_fail
    - g_string_append_c
    - fwupd_json_node_append_string
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: "void fwupd_json_array_append_string(FwupdJsonArray *self,\n\t\t\t
      \      GString *str,\n\t\t\t       guint depth,\n\t\t\t       FwupdJsonExportFlags
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:419,1
    - Dst: fwupd_json_array_append_string
      Src: /src/fwupd/libfwupd/fwupd-json-array.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdJsonArray*
    - FwupdJsonExportFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 416
    functionDepth: 4
    functionLinenumber: 416
    functionLinenumberEnd: 422
    functionName: fwupd_json_array_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-json-array.c
    functionUses: 2
    functionsReached:
    - g_string_new
    - fwupd_json_array_append_string
    linkageType: ''
    returnType: GString
    signature: 'GString *

      fwupd_json_array_to_string(FwupdJsonArray *self, FwupdJsonExportFlags flags)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fd_ptr
    - error
    argTypes:
    - int*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: g_clear_fd
    functionSourceFile: /src/fwupd/libfwupd/fwupd-build-glib-2-76.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean g_clear_fd(int *fd_ptr, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_clear_fd
      Src: /src/fwupd/libfwupd/fwupd-build-glib-2-76.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd_ptr
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: _g_clear_fd_ignore_error
    functionSourceFile: /src/fwupd/libfwupd/fwupd-build-glib-2-76.h
    functionUses: 0
    functionsReached:
    - g_clear_fd
    linkageType: ''
    returnType: void
    signature: void _g_clear_fd_ignore_error(int *fd_ptr)
  - 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/libfwupd/fwupd-plugin.c
    functionUses: 426
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:60,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:61,1
    - Dst: FWUPD_IS_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: fwupd_plugin_get_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_PLUGIN
    - GET_PRIVATE
    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:77,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:78,1
    - Dst: FWUPD_IS_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:78,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:79,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:82,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:85,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:86,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:87,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FwupdPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 88
    functionName: fwupd_plugin_set_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_object_notify
    - g_strcmp0
    - FWUPD_IS_PLUGIN
    - g_return_if_fail
    - g_free
    - G_OBJECT
    - GET_PRIVATE
    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:103,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:104,1
    - Dst: FWUPD_IS_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: fwupd_plugin_get_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_PLUGIN
    - GET_PRIVATE
    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:120,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:121,1
    - Dst: FWUPD_IS_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:121,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:125,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdPlugin*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 126
    functionName: fwupd_plugin_set_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - FWUPD_IS_PLUGIN
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:140,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:141,1
    - Dst: FWUPD_IS_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:141,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:147,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdPlugin*
    - FwupdPluginFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 148
    functionName: fwupd_plugin_add_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - FWUPD_IS_PLUGIN
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:162,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:163,1
    - Dst: FWUPD_IS_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:163,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:169,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdPlugin*
    - FwupdPluginFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: fwupd_plugin_remove_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - FWUPD_IS_PLUGIN
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:186,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:187,1
    - Dst: FWUPD_IS_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdPlugin*
    - FwupdPluginFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: fwupd_plugin_has_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_PLUGIN
    - GET_PRIVATE
    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:194,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:195,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:198,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:201,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:204,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - GVariantBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 209
    functionName: fwupd_plugin_add_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - g_variant_builder_add
    - FWUPD_PLUGIN
    - g_variant_new_string
    - g_variant_new_uint64
    - GET_PRIVATE
    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:214,1
    - Dst: fwupd_plugin_set_name
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:215,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:215,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:218,1
    - Dst: fwupd_plugin_set_flags
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:219,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdPlugin*
    - gchar*
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 222
    functionName: fwupd_plugin_from_key_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_variant_get_uint64
    - g_strcmp0
    - fwupd_plugin_set_name
    - fwupd_variant_get_string
    - 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:227,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:227,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:231,1
    - Dst: fwupd_plugin_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:231,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:234,1
    - Dst: fwupd_plugin_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:234,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:236,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:238,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: 239
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 239
    functionName: fwupd_plugin_string_append_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - g_string_append
    - fwupd_codec_string_append
    - g_string_new
    - g_string_append_printf
    - g_string_truncate
    - fwupd_plugin_flag_to_string
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_string_append_flags(GString *str, guint idt, const
      gchar *key, guint64 plugin_flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:244,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:245,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:247,1
    - Dst: FWUPD_IS_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:247,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:248,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:251,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:253,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:253,1
    - Dst: fwupd_plugin_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:258,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:259,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 263
    functionName: fwupd_plugin_add_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - FWUPD_IS_PLUGIN
    - g_return_if_fail
    - FWUPD_PLUGIN
    - fwupd_json_array_new
    - fwupd_json_array_add_string
    - fwupd_plugin_flag_to_string
    - g_autoptr
    - fwupd_json_object_add_string
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_add_json(FwupdCodec *codec, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:268,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:269,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:270,1
    - Dst: fwupd_plugin_string_append_flags
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 273
    functionName: fwupd_plugin_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append
    - fwupd_plugin_string_append_flags
    - FWUPD_PLUGIN
    - GET_PRIVATE
    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:278,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:279,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:282,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:285,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:288,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: 291
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 291
    functionName: fwupd_plugin_get_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - g_value_set_string
    - FWUPD_PLUGIN
    - g_value_set_uint64
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    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:296,1
    - Dst: fwupd_plugin_set_name
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:299,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:299,1
    - Dst: fwupd_plugin_set_flags
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:302,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:302,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:305,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: 308
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 308
    functionName: fwupd_plugin_set_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - g_value_get_string
    - fwupd_plugin_set_name
    - FWUPD_PLUGIN
    - g_value_get_uint64
    - fwupd_plugin_set_flags
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    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:313,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:328,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:329,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:338,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 346
    functionName: fwupd_plugin_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_string
    - g_param_spec_uint64
    - 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: 351
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 351
    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:356,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:357,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:358,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 360
    functionName: fwupd_plugin_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - g_free
    - FWUPD_PLUGIN
    - G_OBJECT_CLASS
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_plugin_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:365,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:368,1
    - Dst: fwupd_plugin_from_key_value
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:369,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - codec
    - iter
    argTypes:
    - FwupdCodec*
    - GVariantIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 372
    functionName: fwupd_plugin_from_variant_iter
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_plugin_from_key_value
    - g_variant_unref
    - g_variant_iter_next
    - 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: 381
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 381
    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:396,1
    - Dst: FWUPD_PLUGIN
      Src: /src/fwupd/libfwupd/fwupd-plugin.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 398
    functionName: fwupd_plugin_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-plugin.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FWUPD_PLUGIN
    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: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 438
    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: 103
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 103
    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:118,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:120,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:122,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:124,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:126,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:128,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:130,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:132,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:134,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:136,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:138,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - flag
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 141
    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: 185
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 185
    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:200,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:202,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:204,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:206,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:208,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:210,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:212,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:214,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:216,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:218,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:220,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:222,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:224,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:226,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - result
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 229
    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: 251
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 251
    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:267,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:268,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 270
    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:285,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:286,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:286,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:289,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 291
    functionName: fwupd_security_attr_set_bios_setting_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - FWUPD_IS_SECURITY_ATTR
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:307,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:308,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 310
    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:325,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:326,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:326,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:327,1
    - Dst: fwupd_security_attr_has_obsolete
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:328,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:330,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - appstream_id
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 331
    functionName: fwupd_security_attr_add_obsolete
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - FWUPD_IS_SECURITY_ATTR
    - fwupd_security_attr_has_obsolete
    - g_ptr_array_add
    - g_return_if_fail
    - GET_PRIVATE
    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:347,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:348,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:348,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:349,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:351,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - appstream_id
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 356
    functionName: fwupd_security_attr_has_obsolete
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FWUPD_IS_SECURITY_ATTR
    - g_ptr_array_index
    - GET_PRIVATE
    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:371,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:372,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 374
    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:389,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:390,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:390,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:391,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:391,1
    - Dst: fwupd_security_attr_has_guid
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:392,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:394,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 395
    functionName: fwupd_security_attr_add_guid
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - FWUPD_IS_SECURITY_ATTR
    - g_return_if_fail
    - g_ptr_array_add
    - fwupd_guid_is_valid
    - fwupd_security_attr_has_guid
    - GET_PRIVATE
    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:410,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:410,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:411,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:413,1
    - Dst: fwupd_security_attr_add_guid
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - guids
    argTypes:
    - FwupdSecurityAttr*
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 416
    functionName: fwupd_security_attr_add_guids
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_guid
    - FWUPD_IS_SECURITY_ATTR
    - g_return_if_fail
    - g_ptr_array_index
    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:432,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:433,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:433,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:434,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:436,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 441
    functionName: fwupd_security_attr_has_guid
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FWUPD_IS_SECURITY_ATTR
    - g_ptr_array_index
    - GET_PRIVATE
    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:456,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:457,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 459
    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:473,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:474,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:474,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:477,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:481,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:482,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:484,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:485,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - appstream_id
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 486
    functionName: fwupd_security_attr_set_appstream_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_SECURITY_ATTR
    - g_critical
    - g_return_if_fail
    - g_free
    - g_str_has_prefix
    - GET_PRIVATE
    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:501,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:502,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 504
    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:518,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:519,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:519,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:522,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:525,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 527
    functionName: fwupd_security_attr_set_name
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_SECURITY_ATTR
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:543,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:544,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 546
    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:560,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:563,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:566,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 568
    functionName: fwupd_security_attr_set_bios_setting_target_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    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:583,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:584,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 586
    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:600,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:603,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:606,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 608
    functionName: fwupd_security_attr_set_bios_setting_current_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    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:623,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:624,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 626
    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:640,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:643,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:646,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 648
    functionName: fwupd_security_attr_set_kernel_current_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    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:663,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:664,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 666
    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:680,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:683,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:686,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:687,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 688
    functionName: fwupd_security_attr_set_kernel_target_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    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:702,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:703,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:703,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:706,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:709,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - title
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 711
    functionName: fwupd_security_attr_set_title
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_SECURITY_ATTR
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:725,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:726,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:726,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:729,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:732,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - description
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 734
    functionName: fwupd_security_attr_set_description
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_SECURITY_ATTR
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:748,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:749,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:749,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:752,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:755,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - plugin
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 757
    functionName: fwupd_security_attr_set_plugin
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 4
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_SECURITY_ATTR
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:771,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:772,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:772,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:775,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:778,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - fwupd_version
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 780
    functionName: fwupd_security_attr_set_fwupd_version
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_SECURITY_ATTR
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:794,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:795,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:795,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:798,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:801,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - url
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 803
    functionName: fwupd_security_attr_set_url
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_SECURITY_ATTR
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:817,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:818,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 820
    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:834,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:835,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - created
    argTypes:
    - FwupdSecurityAttr*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 837
    functionName: fwupd_security_attr_set_created
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_SECURITY_ATTR
    - g_return_if_fail
    - GET_PRIVATE
    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:852,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:853,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 855
    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:873,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:874,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 876
    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:898,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:899,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 901
    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:916,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:917,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 919
    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:934,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:935,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 937
    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:952,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:953,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 955
    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:969,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:970,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdSecurityAttr*
    - FwupdSecurityAttrFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 972
    functionName: fwupd_security_attr_set_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_SECURITY_ATTR
    - g_return_if_fail
    - GET_PRIVATE
    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:978,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:979,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:981,1
    - Dst: fwupd_security_attr_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:982,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:985,1
    - Dst: fwupd_security_attr_result_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:987,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 990
    functionName: fwupd_security_attr_ensure_result
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_has_flag
    - fwupd_security_attr_result_to_string
    - g_debug
    - fwupd_security_attr_remove_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:1004,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1005,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1005,1
    - Dst: fwupd_security_attr_ensure_result
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdSecurityAttr*
    - FwupdSecurityAttrFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 1001
    functionDepth: 2
    functionLinenumber: 1001
    functionLinenumberEnd: 1008
    functionName: fwupd_security_attr_add_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 4
    functionsReached:
    - fwupd_security_attr_ensure_result
    - FWUPD_IS_SECURITY_ATTR
    - g_return_if_fail
    - GET_PRIVATE
    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:1022,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1023,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdSecurityAttr*
    - FwupdSecurityAttrFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1025
    functionName: fwupd_security_attr_remove_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_SECURITY_ATTR
    - g_return_if_fail
    - GET_PRIVATE
    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:1041,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1042,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdSecurityAttr*
    - FwupdSecurityAttrFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1044
    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:1059,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1060,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1062
    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:1077,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1078,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - level
    argTypes:
    - FwupdSecurityAttr*
    - FwupdSecurityAttrLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1080
    functionName: fwupd_security_attr_set_level
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_SECURITY_ATTR
    - g_return_if_fail
    - GET_PRIVATE
    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:1095,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1096,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1096,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1099,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - result
    argTypes:
    - FwupdSecurityAttr*
    - FwupdSecurityAttrResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1105
    functionName: fwupd_security_attr_set_result
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 3
    functionsReached:
    - g_strcmp0
    - FWUPD_IS_SECURITY_ATTR
    - g_return_if_fail
    - GET_PRIVATE
    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:1120,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1121,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1123
    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:1138,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1139,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - result
    argTypes:
    - FwupdSecurityAttr*
    - FwupdSecurityAttrResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1135
    functionDepth: 0
    functionLinenumber: 1135
    functionLinenumberEnd: 1141
    functionName: fwupd_security_attr_set_result_fallback
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - FWUPD_IS_SECURITY_ATTR
    - g_return_if_fail
    - GET_PRIVATE
    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:1156,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1157,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1159
    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:1173,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1174,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1174,1
    - Dst: fwupd_security_attr_ensure_result
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - result
    argTypes:
    - FwupdSecurityAttr*
    - FwupdSecurityAttrResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1170
    functionDepth: 2
    functionLinenumber: 1170
    functionLinenumberEnd: 1177
    functionName: fwupd_security_attr_set_result_success
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached:
    - fwupd_security_attr_ensure_result
    - FWUPD_IS_SECURITY_ATTR
    - g_return_if_fail
    - GET_PRIVATE
    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:1192,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1193,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1195
    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:1200,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1201,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1204,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1207,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1210,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1213,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1216,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1219,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1222,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1225,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1228,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1231,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1234,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1237,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1240,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1243,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1246,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1249,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1252,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1254,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1255,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1258,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1261,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1263,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1264,1
    - Dst: g_variant_new_strv
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1267,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1270,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1273,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1276,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1279,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1282,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1285,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1288,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1291,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1294,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1297,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1300,1
    - Dst: fwupd_variant_from_hash_kv
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1303,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1306,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1309,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1312,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1315,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1318,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1321,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1324,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1327,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1330,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1333,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - GVariantBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1335
    functionName: fwupd_security_attr_add_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_new0
    - fwupd_variant_from_hash_kv
    - g_variant_builder_add
    - g_variant_new_strv
    - g_variant_new_string
    - g_variant_new_uint64
    - FWUPD_SECURITY_ATTR
    - g_variant_new_uint32
    - g_ptr_array_index
    - GET_PRIVATE
    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:1351,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1353,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1353,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1354,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1348
    functionDepth: 0
    functionLinenumber: 1348
    functionLinenumberEnd: 1359
    functionName: fwupd_security_attr_get_metadata
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_hash_table_lookup
    - 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:1374,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1376,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1376,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1377,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1380,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1382,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1382,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1371
    functionDepth: 0
    functionLinenumber: 1371
    functionLinenumberEnd: 1383
    functionName: fwupd_security_attr_add_metadata
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - FWUPD_IS_SECURITY_ATTR
    - g_return_if_fail
    - g_hash_table_new_full
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_add_metadata(FwupdSecurityAttr *self, const
      gchar *key, const gchar *value)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1388,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1390,1
    - Dst: fwupd_security_attr_set_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1391,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1391,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1394,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1395,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1395,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1398,1
    - Dst: fwupd_security_attr_set_name
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1399,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1399,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1402,1
    - Dst: fwupd_security_attr_set_title
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1403,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1403,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1406,1
    - Dst: fwupd_security_attr_set_description
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1407,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1407,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1410,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1411,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1411,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1414,1
    - Dst: fwupd_security_attr_set_fwupd_version
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1415,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1415,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1418,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1419,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1419,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1422,1
    - Dst: fwupd_security_attr_set_flags
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1423,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1423,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1426,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1427,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1427,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1430,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1431,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1431,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1434,1
    - Dst: fwupd_security_attr_set_result_fallback
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1435,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1435,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1438,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1439,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1439,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1442,1
    - Dst: fwupd_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1443,1
    - Dst: fwupd_security_attr_add_guid
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1445,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1448,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1449,1
    - Dst: fwupd_variant_to_hash_kv
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1449,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1452,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1453,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1457,1
    - Dst: fwupd_security_attr_set_bios_setting_id
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1458,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1458,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1461,1
    - Dst: fwupd_security_attr_set_bios_setting_target_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1462,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1463,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1466,1
    - Dst: fwupd_security_attr_set_bios_setting_current_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1467,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1468,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1471,1
    - Dst: fwupd_security_attr_set_kernel_current_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1472,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1472,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1475,1
    - Dst: fwupd_security_attr_set_kernel_target_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1476,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1476,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 88
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FwupdSecurityAttr*
    - gchar*
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1385
    functionDepth: 3
    functionLinenumber: 1385
    functionLinenumberEnd: 1479
    functionName: fwupd_security_attr_from_key_value
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_set_bios_setting_target_value
    - fwupd_security_attr_add_guid
    - fwupd_security_attr_set_created
    - fwupd_variant_get_uint64
    - fwupd_security_attr_set_name
    - fwupd_security_attr_set_result
    - fwupd_security_attr_set_bios_setting_current_value
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_description
    - fwupd_security_attr_set_url
    - GET_PRIVATE
    - fwupd_security_attr_set_appstream_id
    - fwupd_security_attr_set_flags
    - fwupd_variant_get_uint32
    - fwupd_variant_get_string
    - fwupd_security_attr_set_title
    - fwupd_security_attr_set_kernel_current_value
    - fwupd_security_attr_set_result_fallback
    - fwupd_variant_get_strv
    - fwupd_variant_to_hash_kv
    - g_hash_table_unref
    - g_strcmp0
    - fwupd_security_attr_set_fwupd_version
    - fwupd_security_attr_set_plugin
    - fwupd_security_attr_set_bios_setting_id
    - fwupd_security_attr_set_level
    - g_steal_pointer
    - fwupd_security_attr_set_kernel_target_value
    - g_autoptr
    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
    - fwupd_codec_string_append
    - g_string_new
    - g_string_append_printf
    - g_string_truncate
    - g_autoptr
    - fwupd_security_attr_flag_to_string
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1506,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1509,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1510,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1513,1
    - Dst: fwupd_security_attr_set_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1516,1
    - Dst: fwupd_security_attr_set_name
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1519,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1521,1
    - Dst: fwupd_security_attr_set_title
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1522,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1524,1
    - Dst: fwupd_security_attr_set_description
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1525,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1527,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1528,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1530,1
    - Dst: fwupd_security_attr_set_fwupd_version
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1531,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1533,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1534,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1536,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1537,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1543,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1544,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1550,1
    - Dst: fwupd_security_attr_set_bios_setting_id
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1551,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1553,1
    - Dst: fwupd_security_attr_set_bios_setting_target_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1554,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1556,1
    - Dst: fwupd_security_attr_set_bios_setting_current_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1559,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1561,1
    - Dst: fwupd_security_attr_set_kernel_current_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1564,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1566,1
    - Dst: fwupd_security_attr_set_kernel_target_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1567,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1569,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1572,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1574,1
    - Dst: fwupd_security_attr_result_from_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1574,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1576,1
    - Dst: fwupd_security_attr_set_result_fallback
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1578,1
    - Dst: fwupd_security_attr_result_from_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1580,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1582,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1584,1
    - Dst: fwupd_security_attr_result_from_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1585,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1587,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1589,1
    - Dst: fwupd_security_attr_flag_from_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1590,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1591,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1593,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1596,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1598,1
    - Dst: fwupd_security_attr_add_guid
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1599,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1601,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 3
    argNames:
    - codec
    - json_obj
    - error
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1503
    functionDepth: 3
    functionLinenumber: 1503
    functionLinenumberEnd: 1607
    functionName: fwupd_security_attr_from_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_set_bios_setting_target_value
    - fwupd_security_attr_add_guid
    - fwupd_security_attr_set_created
    - FWUPD_SECURITY_ATTR
    - fwupd_security_attr_set_name
    - fwupd_json_array_get_size
    - fwupd_security_attr_set_result
    - fwupd_json_array_get_string
    - fwupd_security_attr_set_bios_setting_current_value
    - fwupd_json_object_get_array
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_description
    - fwupd_security_attr_set_url
    - fwupd_security_attr_set_appstream_id
    - fwupd_security_attr_set_title
    - fwupd_security_attr_set_kernel_current_value
    - fwupd_json_object_get_string
    - fwupd_security_attr_set_result_fallback
    - fwupd_security_attr_flag_from_string
    - fwupd_security_attr_set_fwupd_version
    - fwupd_security_attr_set_plugin
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_bios_setting_id
    - fwupd_security_attr_set_level
    - fwupd_security_attr_set_kernel_target_value
    - g_autoptr
    - fwupd_security_attr_result_from_string
    - fwupd_json_object_get_integer_with_default
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_security_attr_from_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1612,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1613,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1616,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1620,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1622,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1624,1
    - Dst: fwupd_security_attr_result_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1626,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1628,1
    - Dst: fwupd_security_attr_result_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1631,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1634,1
    - Dst: fwupd_security_attr_result_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1637,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1640,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1642,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1644,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1649,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1651,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1656,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1658,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1663,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1668,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1673,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1678,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1684,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1684,1
    - Dst: fwupd_security_attr_flag_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1689,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1690,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1692,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1695,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1695,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1697,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1698,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1700,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1703,1
    - Dst: g_list_sort
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1704,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1704,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1707,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1708,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 69
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1609
    functionDepth: 3
    functionLinenumber: 1609
    functionLinenumberEnd: 1711
    functionName: fwupd_security_attr_add_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - fwupd_security_attr_result_to_string
    - g_hash_table_get_keys
    - g_hash_table_lookup
    - g_list_sort
    - fwupd_json_array_new
    - fwupd_json_array_add_string
    - fwupd_security_attr_flag_to_string
    - fwupd_json_object_add_integer
    - FWUPD_SECURITY_ATTR
    - g_ptr_array_index
    - g_autoptr
    - fwupd_json_object_add_string
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_security_attr_add_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, FwupdCodecFlags flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1716,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1717,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1718,1
    - Dst: fwupd_codec_string_append_time
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1719,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1720,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1721,1
    - Dst: fwupd_security_attr_result_to_string
      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_security_attr_result_to_string
      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_security_attr_result_to_string
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1732,1
    - Dst: fwupd_security_attr_string_append_tfl
      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:1739,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1740,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1741,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:1743,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1744,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1748,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1752,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1756,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1760,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1766,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1767,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1770,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1771,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1774,1
    - Dst: g_list_sort
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1775,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1775,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1778,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1779,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1713
    functionDepth: 3
    functionLinenumber: 1713
    functionLinenumberEnd: 1782
    functionName: fwupd_security_attr_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_string_append_tfl
    - fwupd_security_attr_result_to_string
    - g_hash_table_get_keys
    - g_hash_table_lookup
    - g_list_sort
    - fwupd_codec_string_append
    - FWUPD_SECURITY_ATTR
    - g_ptr_array_index
    - fwupd_codec_string_append_int
    - g_autoptr
    - fwupd_codec_string_append_time
    - GET_PRIVATE
    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:1787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdSecurityAttrClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1784
    functionDepth: 0
    functionLinenumber: 1784
    functionLinenumberEnd: 1789
    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:1794,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1796,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1797,1
    - Dst: g_get_real_time
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1791
    functionDepth: 0
    functionLinenumber: 1791
    functionLinenumberEnd: 1799
    functionName: fwupd_security_attr_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - g_get_real_time
    - GET_PRIVATE
    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:1804,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1805,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1808,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1809,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1810,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1811,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1812,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1813,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1814,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1815,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1816,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1817,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1818,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1819,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1820,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1821,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1822,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1801
    functionDepth: 0
    functionLinenumber: 1801
    functionLinenumberEnd: 1825
    functionName: fwupd_security_attr_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - g_free
    - FWUPD_SECURITY_ATTR
    - g_hash_table_unref
    - GET_PRIVATE
    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:1830,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1833,1
    - Dst: fwupd_security_attr_from_key_value
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1834,1
    - Dst: g_variant_unref
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - codec
    - iter
    argTypes:
    - FwupdCodec*
    - GVariantIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1827
    functionDepth: 4
    functionLinenumber: 1827
    functionLinenumberEnd: 1837
    functionName: fwupd_security_attr_from_variant_iter
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_variant_unref
    - g_variant_iter_next
    - FWUPD_SECURITY_ATTR
    - fwupd_security_attr_from_key_value
    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: 1847
      start: 1839
    functionDepth: 0
    functionLinenumber: 1839
    functionLinenumberEnd: 1847
    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:1862,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1862,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1863,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1865,1
    - Dst: FWUPD_IS_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1865,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1887,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1891,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1897,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1898,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1904,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1859
    functionDepth: 0
    functionLinenumber: 1859
    functionLinenumberEnd: 1905
    functionName: fwupd_security_attr_copy
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - g_steal_pointer
    - g_object_new
    - g_hash_table_iter_init
    - g_autoptr
    - g_hash_table_iter_next
    - g_ptr_array_index
    - GET_PRIVATE
    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:1924,1
    - Dst: fwupd_security_attr_set_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1926,1
    - Dst: FWUPD_SECURITY_ATTR
      Src: /src/fwupd/libfwupd/fwupd-security-attr.c:1927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - appstream_id
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1920
    functionDepth: 1
    functionLinenumber: 1920
    functionLinenumberEnd: 1928
    functionName: fwupd_security_attr_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-security-attr.c
    functionUses: 4
    functionsReached:
    - fwupd_security_attr_set_appstream_id
    - g_object_new
    - FWUPD_SECURITY_ATTR
    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_message
    - g_idle_add
    - g_thread_self
    - g_main_context_new
    - g_assert_nonnull
    - g_main_context_get_thread_default
    - g_main_context_pusher_new
    - g_warning
    - g_autoptr
    - fwupd_client_connect
    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_message
    - g_thread_self
    - g_thread_new
    - g_main_context_get_thread_default
    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_application_hold
    - g_idle_add
    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_main_context_get_thread_default
    - g_assert_true
    - g_assert_null
    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_autoptr
    - g_bus_get_sync
    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_message
    - g_thread_self
    - g_signal_connect
    - fwupd_client_new
    - fwupd_thread_test_has_system_bus
    - g_steal_pointer
    - g_main_context_get_thread_default
    - G_APPLICATION
    - g_application_run
    - FWUPD_CLIENT
    - G_CALLBACK
    - g_autoptr
    - g_thread_join
    - g_application_new
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_JCAT_ITEM
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:33,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:35,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:37,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:38,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:41,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:42,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: fwupd_jcat_item_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-item.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_add_string
    - FWUPD_CODEC
    - FWUPD_JCAT_ITEM
    - fwupd_codec_string_append
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_item_add_string(FwupdCodec *codec, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:49,1
    - Dst: FWUPD_IS_JCAT_ITEM
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:49,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:50,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:51,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FwupdJcatItem*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: fwupd_jcat_item_set_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-item.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_return_if_fail
    - g_free
    - FWUPD_IS_JCAT_ITEM
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_item_set_id(FwupdJcatItem *self, const gchar *id)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_JCAT_ITEM
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:58,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:62,1
    - Dst: fwupd_jcat_item_set_id
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:65,1
    - Dst: fwupd_json_object_has_node
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:69,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:70,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:73,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:75,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:75,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:77,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:80,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:80,1
    - Dst: fwupd_jcat_item_add_blob
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:82,1
    - Dst: fwupd_json_object_has_node
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:88,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:89,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:92,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:94,1
    - Dst: fwupd_jcat_item_add_alias_id
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:97,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 3
    argNames:
    - codec
    - json_obj
    - error
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 103
    functionName: fwupd_jcat_item_from_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-item.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - fwupd_json_array_get_size
    - fwupd_codec_from_json
    - fwupd_json_array_get_string
    - FWUPD_JCAT_ITEM
    - fwupd_json_object_get_array
    - g_object_new
    - fwupd_jcat_item_add_blob
    - fwupd_jcat_item_set_id
    - fwupd_json_object_get_string
    - g_autoptr
    - fwupd_jcat_item_add_alias_id
    - fwupd_json_array_get_object
    - fwupd_json_object_has_node
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_jcat_item_from_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_JCAT_ITEM
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:108,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:115,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:115,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:117,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:118,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:125,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:125,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:128,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:128,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:129,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:129,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:130,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 134
    functionName: fwupd_jcat_item_add_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-item.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - FWUPD_CODEC
    - fwupd_json_object_add_string
    - fwupd_json_object_new
    - fwupd_codec_to_json
    - FWUPD_JCAT_ITEM
    - fwupd_json_array_new
    - fwupd_json_array_add_string
    - fwupd_json_array_add_object
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_item_add_json(FwupdCodec *codec, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:149,1
    - Dst: FWUPD_IS_JCAT_ITEM
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:149,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJcatItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: fwupd_jcat_item_get_blobs
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-item.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - g_ptr_array_ref
    - FWUPD_IS_JCAT_ITEM
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_jcat_item_get_blobs(FwupdJcatItem *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:167,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:167,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:169,1
    - Dst: FWUPD_IS_JCAT_ITEM
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:169,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:170,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:173,1
    - Dst: fwupd_jcat_blob_get_kind
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:174,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:175,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:175,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - kind
    argTypes:
    - FwupdJcatItem*
    - FwupdJcatBlobKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 178
    functionName: fwupd_jcat_item_get_blobs_by_kind
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-item.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_JCAT_ITEM
    - fwupd_jcat_blob_get_kind
    - g_steal_pointer
    - g_ptr_array_add
    - g_object_ref
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_jcat_item_get_blobs_by_kind(FwupdJcatItem *self, FwupdJcatBlobKind kind)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:195,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:197,1
    - Dst: FWUPD_IS_JCAT_ITEM
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:197,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:198,1
    - Dst: fwupd_jcat_item_get_blobs_by_kind
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:200,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:202,1
    - Dst: fwupd_jcat_blob_kind_to_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:206,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:210,1
    - Dst: fwupd_jcat_blob_kind_to_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:214,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:217,1
    - Dst: FWUPD_JCAT_BLOB
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:217,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - kind
    - error
    argTypes:
    - FwupdJcatItem*
    - FwupdJcatBlobKind
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 218
    functionName: fwupd_jcat_item_get_blob_by_kind
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-item.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_JCAT_ITEM
    - fwupd_jcat_item_get_blobs_by_kind
    - fwupd_jcat_blob_kind_to_string
    - g_set_error
    - FWUPD_JCAT_BLOB
    - g_object_ref
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: FwupdJcatBlob
    signature: 'FwupdJcatBlob *

      fwupd_jcat_item_get_blob_by_kind(FwupdJcatItem *self, FwupdJcatBlobKind kind,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:232,1
    - Dst: FWUPD_IS_JCAT_ITEM
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:232,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:233,1
    - Dst: FWUPD_IS_JCAT_BLOB
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:233,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:236,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - blob
    argTypes:
    - FwupdJcatItem*
    - FwupdJcatBlob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 237
    functionName: fwupd_jcat_item_add_blob
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-item.c
    functionUses: 10
    functionsReached:
    - FWUPD_IS_JCAT_ITEM
    - g_ptr_array_add
    - g_return_if_fail
    - g_object_ref
    - FWUPD_IS_JCAT_BLOB
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_item_add_blob(FwupdJcatItem *self, FwupdJcatBlob *blob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:252,1
    - Dst: FWUPD_IS_JCAT_ITEM
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJcatItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 254
    functionName: fwupd_jcat_item_get_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-item.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_JCAT_ITEM
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_jcat_item_get_id(FwupdJcatItem *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:272,1
    - Dst: FWUPD_IS_JCAT_ITEM
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:272,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:273,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:277,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:282,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:283,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:284,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:284,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:285,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:286,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdJcatItem*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 295
    functionName: fwupd_jcat_item_get_id_safe
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FWUPD_IS_JCAT_ITEM
    - g_path_get_basename
    - g_set_error_literal
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_jcat_item_get_id_safe(FwupdJcatItem *self, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:310,1
    - Dst: FWUPD_IS_JCAT_ITEM
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:310,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:311,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:313,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:314,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:317,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FwupdJcatItem*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 318
    functionName: fwupd_jcat_item_add_alias_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-item.c
    functionUses: 4
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FWUPD_IS_JCAT_ITEM
    - g_ptr_array_add
    - g_return_if_fail
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_item_add_alias_id(FwupdJcatItem *self, const gchar
      *id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:332,1
    - Dst: FWUPD_IS_JCAT_ITEM
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:332,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:333,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:335,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:336,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FwupdJcatItem*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 341
    functionName: fwupd_jcat_item_remove_alias_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-item.c
    functionUses: 2
    functionsReached:
    - g_ptr_array_remove
    - g_strcmp0
    - FWUPD_IS_JCAT_ITEM
    - g_return_if_fail
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_item_remove_alias_id(FwupdJcatItem *self, const gchar
      *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:356,1
    - Dst: FWUPD_IS_JCAT_ITEM
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:356,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJcatItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 358
    functionName: fwupd_jcat_item_get_alias_ids
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-item.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_ptr_array_ref
    - FWUPD_IS_JCAT_ITEM
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fwupd_jcat_item_get_alias_ids(FwupdJcatItem *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:375,1
    - Dst: FWUPD_IS_JCAT_ITEM
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:375,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:377,1
    - Dst: fwupd_jcat_blob_get_target
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJcatItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 382
    functionName: fwupd_jcat_item_has_target
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-item.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_jcat_blob_get_target
    - FWUPD_IS_JCAT_ITEM
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_jcat_item_has_target(FwupdJcatItem *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 390
    functionName: fwupd_jcat_item_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-item.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_item_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_JCAT_ITEM
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:395,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:396,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:398,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:400,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 402
    functionName: fwupd_jcat_item_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-item.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_free
    - FWUPD_JCAT_ITEM
    - g_ptr_array_unref
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_item_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdJcatItemClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: fwupd_jcat_item_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-item.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_item_class_init(FwupdJcatItemClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:414,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJcatItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 416
    functionName: fwupd_jcat_item_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-item.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_item_init(FwupdJcatItem *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:431,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:431,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:432,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:433,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-jcat-item.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 435
    functionName: fwupd_jcat_item_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-item.c
    functionUses: 10
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_steal_pointer
    - g_object_new
    - g_autoptr
    linkageType: ''
    returnType: FwupdJcatItem
    signature: 'FwupdJcatItem *

      fwupd_jcat_item_new(const gchar *id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:17,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:17,1
    - Dst: fwupd_device_add_flag
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:18,1
    - Dst: fwupd_device_add_flag
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:19,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:22,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:23,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:26,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:26,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:29,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:30,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:31,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:32,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:35,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:35,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:40,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:40,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:43,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:44,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:45,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:45,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:49,1
    - Dst: fwupd_device_match_flags
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 52
    functionName: fwupd_device_filter_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device-test.c
    functionUses: 0
    functionsReached:
    - fwupd_device_add_flag
    - g_assert_false
    - fwupd_device_match_flags
    - fwupd_device_new
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_device_filter_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:61,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:61,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:62,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:62,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:64,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:67,1
    - Dst: fwupd_device_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:68,1
    - Dst: fwupd_device_set_created
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:69,1
    - Dst: fwupd_device_add_flag
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:70,1
    - Dst: fwupd_device_set_id
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:71,1
    - Dst: fwupd_device_set_modified
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:72,1
    - Dst: fwupd_device_set_name
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:73,1
    - Dst: fwupd_device_set_branch
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:74,1
    - Dst: fwupd_device_set_details_url
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:75,1
    - Dst: fwupd_device_add_guid
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:76,1
    - Dst: fwupd_device_add_guid
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:77,1
    - Dst: fwupd_device_add_instance_id
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:78,1
    - Dst: fwupd_device_add_icon
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:79,1
    - Dst: fwupd_device_add_icon
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:80,1
    - Dst: fwupd_device_add_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:81,1
    - Dst: fwupd_device_add_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:82,1
    - Dst: fwupd_device_add_flag
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:83,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:84,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:84,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:85,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:85,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:86,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:86,1
    - Dst: fwupd_release_new
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:87,1
    - Dst: fwupd_release_add_flag
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:88,1
    - Dst: fwupd_release_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:89,1
    - Dst: fwupd_release_set_description
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:90,1
    - Dst: fwupd_release_set_filename
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:91,1
    - Dst: fwupd_release_set_appstream_id
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:92,1
    - Dst: fwupd_release_set_size
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:93,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:94,1
    - Dst: fwupd_release_add_location
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:95,1
    - Dst: fwupd_release_add_tag
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:96,1
    - Dst: fwupd_release_add_tag
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:97,1
    - Dst: fwupd_release_set_version
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:98,1
    - Dst: fwupd_device_add_release
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:99,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:100,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:100,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:101,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:104,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:104,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:105,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:105,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:106,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:106,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:108,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:139,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:140,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:143,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:143,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:144,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:145,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:147,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:202,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:203,1
    - Dst: fwupd_device_incorporate
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:206,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:207,1
    - Dst: fwupd_device_has_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:207,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:208,1
    - Dst: fwupd_device_has_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:208,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:209,1
    - Dst: fwupd_device_has_instance_id
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:209,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:210,1
    - Dst: fwupd_device_get_details_url
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:210,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:213,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:213,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:214,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:215,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:218,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:219,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:220,1
    - Dst: fwupd_device_get_details_url
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:220,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:221,1
    - Dst: fwupd_device_has_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:221,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:222,1
    - Dst: fwupd_device_has_instance_id
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:222,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:223,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:223,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:224,1
    - Dst: fwupd_device_has_flag
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 54
    functionDepth: 4
    functionLinenumber: 54
    functionLinenumberEnd: 225
    functionName: fwupd_device_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device-test.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_to_string
    - FWUPD_CODEC
    - fwupd_release_set_appstream_id
    - fwupd_device_add_guid
    - g_assert_nonnull
    - fwupd_device_set_name
    - fwupd_device_has_vendor_id
    - fwupd_device_set_created
    - g_debug
    - fwupd_device_get_details_url
    - fu_test_compare_lines
    - fwupd_device_incorporate
    - fwupd_device_add_flag
    - fwupd_device_has_guid
    - fwupd_release_add_tag
    - fwupd_codec_from_json_string
    - fwupd_device_set_branch
    - fwupd_device_set_id
    - fwupd_release_set_version
    - g_assert_true
    - fwupd_device_has_instance_id
    - fwupd_release_set_description
    - g_assert_false
    - fwupd_device_add_vendor_id
    - fwupd_release_add_flag
    - fwupd_device_new
    - fwupd_release_add_location
    - fwupd_device_add_checksum
    - fwupd_release_set_filename
    - fwupd_device_add_release
    - fwupd_release_set_size
    - fwupd_device_add_icon
    - fwupd_device_set_details_url
    - fwupd_device_add_instance_id
    - g_assert_no_error
    - fwupd_codec_to_json_string
    - fwupd_release_add_checksum
    - g_error_matches
    - g_test_skip
    - fwupd_device_has_flag
    - fwupd_device_set_modified
    - g_assert_cmpstr
    - g_autoptr
    - fwupd_release_new
    linkageType: ''
    returnType: void
    signature: void fwupd_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:230,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:231,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:232,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupd/fwupd-device-test.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: main
    functionSourceFile: /src/fwupd/libfwupd/fwupd-device-test.c
    functionUses: 3
    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: []
    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-remote.c
    functionUses: 493
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:90,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:91,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:94,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:96,1
    - Dst: fwupd_remote_kind_to_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:98,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:100,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:102,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:104,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:106,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:109,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:111,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:114,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:116,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:118,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:120,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:122,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:124,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:126,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:131,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-remote.c:132,1
    - Dst: fwupd_json_object_add_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:133,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:135,1
    - Dst: fwupd_json_object_add_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:136,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:139,1
    - Dst: fwupd_json_object_add_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:140,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:143,1
    - Dst: fwupd_json_object_add_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:144,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:147,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-remote.c:148,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-remote.c:149,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-remote.c:150,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:152,1
    - Dst: fwupd_json_object_add_array_strv
      Src: /src/fwupd/libfwupd/fwupd-remote.c:154,1
    - Dst: fwupd_json_object_add_array_strv
      Src: /src/fwupd/libfwupd/fwupd-remote.c:156,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 50
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 157
    functionName: fwupd_remote_add_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_has_flag
    - fwupd_json_object_add_array_strv
    - FWUPD_REMOTE
    - fwupd_json_object_add_integer
    - fwupd_json_object_add_boolean
    - fwupd_remote_kind_to_string
    - fwupd_json_object_add_string
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_add_json(FwupdCodec *codec, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:172,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:173,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 175
    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:189,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:190,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:190,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-remote.c:194,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-remote.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - FwupdRemote*
    - FwupdRemoteFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 195
    functionName: fwupd_remote_set_flags
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_REMOTE
    - G_OBJECT
    - GET_PRIVATE
    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:209,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:210,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:210,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-remote.c:212,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-remote.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdRemote*
    - FwupdRemoteFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: fwupd_remote_add_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 8
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_REMOTE
    - G_OBJECT
    - GET_PRIVATE
    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:227,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:228,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:228,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupd/fwupd-remote.c:230,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupd/fwupd-remote.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdRemote*
    - FwupdRemoteFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: fwupd_remote_remove_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FWUPD_IS_REMOTE
    - G_OBJECT
    - GET_PRIVATE
    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:247,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:248,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FwupdRemote*
    - FwupdRemoteFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: fwupd_remote_has_flag
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 30
    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:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - text
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 258
    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:272,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:275,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:278,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - username
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 280
    functionName: fwupd_remote_set_username
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 3
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    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:294,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:296,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:296,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:299,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:302,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - title
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 304
    functionName: fwupd_remote_set_title
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FWUPD_IS_REMOTE
    - g_free
    - GET_PRIVATE
    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:318,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:320,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:320,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:323,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:326,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - privacy_uri
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 328
    functionName: fwupd_remote_set_privacy_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FWUPD_IS_REMOTE
    - g_free
    - GET_PRIVATE
    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:342,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:344,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:344,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:347,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:350,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - agreement
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 352
    functionName: fwupd_remote_set_agreement
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FWUPD_IS_REMOTE
    - g_free
    - GET_PRIVATE
    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:366,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:368,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:368,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:371,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:374,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - checksum_sig
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 376
    functionName: fwupd_remote_set_checksum_sig
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FWUPD_IS_REMOTE
    - g_free
    - GET_PRIVATE
    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:381,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:383,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:383,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:386,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:389,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - checksum
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 391
    functionName: fwupd_remote_set_checksum_sig_metadata
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FWUPD_IS_REMOTE
    - g_free
    - GET_PRIVATE
    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:405,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:408,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:411,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - password
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 413
    functionName: fwupd_remote_set_password
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    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:427,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:428,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - kind
    argTypes:
    - FwupdRemote*
    - FwupdRemoteKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 430
    functionName: fwupd_remote_set_kind
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    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:446,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:449,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:452,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:453,1
    - Dst: g_strdelimit
      Src: /src/fwupd/libfwupd/fwupd-remote.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 455
    functionName: fwupd_remote_set_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 6
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_strdelimit
    - g_free
    - GET_PRIVATE
    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:469,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:470,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:470,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:473,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - filename_source
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 475
    functionName: fwupd_remote_set_filename_source
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 3
    functionsReached:
    - g_strdup
    - g_return_if_fail
    - FWUPD_IS_REMOTE
    - g_free
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_filename_source(FwupdRemote *self, const gchar
      *filename_source)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:483,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:485,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:486,1
    - Dst: curl_url
      Src: /src/fwupd/libfwupd/fwupd-remote.c:486,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-remote.c:490,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupd/fwupd-remote.c:495,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:504,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:505,1
    - Dst: curl_url
      Src: /src/fwupd/libfwupd/fwupd-remote.c:505,1
    - Dst: curl_url_set
      Src: /src/fwupd/libfwupd/fwupd-remote.c:507,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-remote.c:508,1
    - Dst: curl_url_get
      Src: /src/fwupd/libfwupd/fwupd-remote.c:515,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-remote.c:516,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupd/fwupd-remote.c:523,1
    - Dst: g_build_path
      Src: /src/fwupd/libfwupd/fwupd-remote.c:524,1
    - Dst: curl_url_set
      Src: /src/fwupd/libfwupd/fwupd-remote.c:525,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupd/fwupd-remote.c:527,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:530,1
    - Dst: curl_url_set
      Src: /src/fwupd/libfwupd/fwupd-remote.c:533,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-remote.c:534,1
    - Dst: curl_url_get
      Src: /src/fwupd/libfwupd/fwupd-remote.c:541,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-remote.c:542,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/libfwupd/fwupd-remote.c:549,1
    - Dst: g_build_path
      Src: /src/fwupd/libfwupd/fwupd-remote.c:550,1
    - Dst: curl_url_set
      Src: /src/fwupd/libfwupd/fwupd-remote.c:551,1
    - Dst: g_build_path
      Src: /src/fwupd/libfwupd/fwupd-remote.c:554,1
    - Dst: curl_url_set
      Src: /src/fwupd/libfwupd/fwupd-remote.c:557,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-remote.c:558,1
    - Dst: g_uri_escape_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:569,1
    - Dst: curl_url_set
      Src: /src/fwupd/libfwupd/fwupd-remote.c:570,1
    - Dst: g_uri_escape_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:573,1
    - Dst: curl_url_set
      Src: /src/fwupd/libfwupd/fwupd-remote.c:574,1
    - Dst: curl_url_get
      Src: /src/fwupd/libfwupd/fwupd-remote.c:576,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-remote.c:577,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:583,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 4
    argNames:
    - self
    - base_uri
    - url_noauth
    - error
    argTypes:
    - FwupdRemote*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 584
    functionName: fwupd_remote_build_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_path_get_basename
    - g_set_error
    - g_set_error_literal
    - g_str_has_suffix
    - curl_url
    - g_build_path
    - g_strstr_len
    - g_path_get_dirname
    - g_uri_escape_string
    - curl_url_get
    - g_autoptr
    - curl_url_set
    - GET_PRIVATE
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:600,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:602,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:602,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:605,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:609,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:610,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupd/fwupd-remote.c:613,1
    - Dst: g_strconcat
      Src: /src/fwupd/libfwupd/fwupd-remote.c:617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - metadata_uri
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 618
    functionName: fwupd_remote_set_metadata_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 7
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FWUPD_IS_REMOTE
    - g_free
    - g_strconcat
    - g_clear_pointer
    - GET_PRIVATE
    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:634,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:637,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:640,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - firmware_base_uri
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 642
    functionName: fwupd_remote_set_firmware_base_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    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:656,1
    - Dst: fwupd_remote_strdup_nonempty
      Src: /src/fwupd/libfwupd/fwupd-remote.c:657,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:660,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:663,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-remote.c:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - report_uri
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 665
    functionName: fwupd_remote_set_report_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - g_strcmp0
    - g_steal_pointer
    - fwupd_remote_strdup_nonempty
    - g_free
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_report_uri(FwupdRemote *self, const gchar *report_uri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:679,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:681,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:681,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:684,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:687,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:688,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:692,1
    - Dst: g_strconcat
      Src: /src/fwupd/libfwupd/fwupd-remote.c:693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - filename
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 695
    functionName: fwupd_remote_set_filename_cache
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FWUPD_IS_REMOTE
    - g_free
    - g_strconcat
    - GET_PRIVATE
    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:709,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupd/fwupd-remote.c:710,1
    - Dst: g_strsplit_set
      Src: /src/fwupd/libfwupd/fwupd-remote.c:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - ids
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 713
    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:727,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupd/fwupd-remote.c:728,1
    - Dst: g_strsplit_set
      Src: /src/fwupd/libfwupd/fwupd-remote.c:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - ids
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 731
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:748,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:750,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:750,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:751,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-remote.c:755,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-remote.c:767,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-remote.c:775,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupd/fwupd-remote.c:781,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupd/fwupd-remote.c:783,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupd/fwupd-remote.c:784,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupd/fwupd-remote.c:786,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupd/fwupd-remote.c:789,1
    - Dst: fwupd_remote_set_filename_cache
      Src: /src/fwupd/libfwupd/fwupd-remote.c:791,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-remote.c:797,1
    - Dst: fwupd_remote_ensure_checksum_sig
      Src: /src/fwupd/libfwupd/fwupd-remote.c:806,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 811
    functionName: fwupd_remote_setup
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - fwupd_remote_ensure_checksum_sig
    - g_set_error_literal
    - g_str_has_suffix
    - FWUPD_IS_REMOTE
    - fwupd_remote_set_filename_cache
    - g_build_filename
    - GET_PRIVATE
    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:826,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:827,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 829
    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:844,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:845,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 847
    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:862,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:863,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 865
    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:880,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:881,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 883
    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:898,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:899,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 901
    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:916,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:917,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 919
    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:934,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:935,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 937
    functionName: fwupd_remote_get_kind
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 21
    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:952,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:954,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:954,1
    - Dst: g_get_real_time
      Src: /src/fwupd/libfwupd/fwupd-remote.c:955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 959
    functionName: fwupd_remote_get_age
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - g_get_real_time
    - GET_PRIVATE
    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:973,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:974,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:974,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:977,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:980,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-remote.c:981,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - directory
    argTypes:
    - FwupdRemote*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 982
    functionName: fwupd_remote_set_remotes_dir
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 5
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FWUPD_IS_REMOTE
    - g_free
    - GET_PRIVATE
    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:996,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:997,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - priority
    argTypes:
    - FwupdRemote*
    - gint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 999
    functionName: fwupd_remote_set_priority
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 4
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    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:1014,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1015,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1017
    functionName: fwupd_remote_get_mtime
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_remote_get_mtime(FwupdRemote *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1031,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1032,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - mtime
    argTypes:
    - FwupdRemote*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1028
    functionDepth: 0
    functionLinenumber: 1028
    functionLinenumberEnd: 1034
    functionName: fwupd_remote_set_mtime
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_set_mtime(FwupdRemote *self, guint64 mtime)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1050,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1052,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1052,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1053,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1056,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1059,1
    - Dst: g_checksum_new
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1059,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1060,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1061,1
    - Dst: g_checksum_update
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1064,1
    - Dst: fwupd_remote_set_checksum_sig
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1065,1
    - Dst: g_checksum_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1065,1
    - Dst: fwupd_remote_set_checksum_sig
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1067,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1072
    functionName: fwupd_remote_ensure_checksum_sig
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fwupd_remote_set_checksum_sig
    - g_checksum_update
    - g_file_get_contents
    - FWUPD_IS_REMOTE
    - g_checksum_new
    - g_prefix_error_literal
    - g_file_test
    - g_checksum_get_string
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_remote_ensure_checksum_sig(FwupdRemote *self, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1088,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1089,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1090,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1092,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1092,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1093,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1096,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1102,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1103,1
    - Dst: g_file_query_info
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1107,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1113,1
    - Dst: g_file_info_get_attribute_uint64
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1118
    functionName: fwupd_remote_ensure_mtime
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - FWUPD_IS_REMOTE
    - fwupd_error_convert
    - g_file_query_exists
    - g_file_query_info
    - g_file_new_for_path
    - g_autoptr
    - g_file_info_get_attribute_uint64
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_remote_ensure_mtime(FwupdRemote *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1133,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1134,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1130
    functionDepth: 0
    functionLinenumber: 1130
    functionLinenumberEnd: 1136
    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:1150,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1151,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - refresh_interval
    argTypes:
    - FwupdRemote*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1147
    functionDepth: 0
    functionLinenumber: 1147
    functionLinenumberEnd: 1153
    functionName: fwupd_remote_set_refresh_interval
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    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:1168,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1169,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1165
    functionDepth: 0
    functionLinenumber: 1165
    functionLinenumberEnd: 1171
    functionName: fwupd_remote_get_username
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 11
    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:1186,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1187,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1189
    functionName: fwupd_remote_get_password
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 11
    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:1204,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1205,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1201
    functionDepth: 0
    functionLinenumber: 1201
    functionLinenumberEnd: 1207
    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:1222,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1223,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1219
    functionDepth: 0
    functionLinenumber: 1219
    functionLinenumberEnd: 1225
    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:1240,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1241,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1237
    functionDepth: 0
    functionLinenumber: 1237
    functionLinenumberEnd: 1243
    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:1258,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1259,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1261
    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:1276,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1277,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1273
    functionDepth: 0
    functionLinenumber: 1273
    functionLinenumberEnd: 1279
    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:1294,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1295,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1291
    functionDepth: 0
    functionLinenumber: 1291
    functionLinenumberEnd: 1297
    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:1315,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1316,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1316,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1317,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1318,1
    - Dst: fwupd_remote_build_uri
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - url
    - error
    argTypes:
    - FwupdRemote*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1312
    functionDepth: 1
    functionLinenumber: 1312
    functionLinenumberEnd: 1320
    functionName: fwupd_remote_build_firmware_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - fwupd_remote_build_uri
    - 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:1336,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1337,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1337,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1338,1
    - Dst: fwupd_remote_build_uri
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1333
    functionDepth: 1
    functionLinenumber: 1333
    functionLinenumberEnd: 1340
    functionName: fwupd_remote_build_report_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fwupd_remote_build_uri
    - 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:1356,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1357,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1357,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1358,1
    - Dst: fwupd_remote_build_uri
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1353
    functionDepth: 1
    functionLinenumber: 1353
    functionLinenumberEnd: 1360
    functionName: fwupd_remote_build_metadata_sig_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fwupd_remote_build_uri
    - 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: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
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1378,1
    - Dst: fwupd_remote_build_uri
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1373
    functionDepth: 1
    functionLinenumber: 1373
    functionLinenumberEnd: 1380
    functionName: fwupd_remote_build_metadata_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fwupd_remote_build_uri
    - 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:1395,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1396,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1392
    functionDepth: 0
    functionLinenumber: 1392
    functionLinenumberEnd: 1398
    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:1413,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1414,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1410
    functionDepth: 0
    functionLinenumber: 1410
    functionLinenumberEnd: 1416
    functionName: fwupd_remote_get_metadata_uri
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 14
    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:1421,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1427,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1428,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1432,1
    - Dst: fwupd_jcat_file_get_item_by_id
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1433,1
    - Dst: fwupd_jcat_file_get_item_default
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1436,1
    - Dst: fwupd_jcat_item_get_id_safe
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1440,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1445,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1446,1
    - Dst: g_build_path
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1447,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1448,1
    - Dst: g_info
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1449,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1450,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1451,1
    - Dst: fwupd_jcat_item_get_blobs_by_kind
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1455,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1457,1
    - Dst: fwupd_jcat_blob_get_data_as_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1458,1
    - Dst: fwupd_remote_set_checksum_sig_metadata
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1459,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - self
    - jcat_file
    - error
    argTypes:
    - FwupdRemote*
    - FwupdJcatFile*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1418
    functionDepth: 2
    functionLinenumber: 1418
    functionLinenumberEnd: 1464
    functionName: fwupd_remote_load_signature_jcat
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fwupd_jcat_file_get_item_default
    - g_path_get_basename
    - g_info
    - fwupd_jcat_item_get_blobs_by_kind
    - fwupd_jcat_item_get_id_safe
    - g_steal_pointer
    - fwupd_remote_set_checksum_sig_metadata
    - fwupd_jcat_file_get_item_by_id
    - g_path_get_dirname
    - g_build_path
    - g_free
    - g_autoptr
    - fwupd_jcat_blob_get_data_as_string
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_remote_load_signature_jcat(FwupdRemote *self, FwupdJcatFile
      *jcat_file, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1481,1
    - Dst: fwupd_jcat_file_new
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1481,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1483,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1483,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1484,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1485,1
    - Dst: fwupd_jcat_file_import_bytes
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1487,1
    - Dst: fwupd_remote_load_signature_jcat
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - bytes
    - error
    argTypes:
    - FwupdRemote*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1478
    functionDepth: 10
    functionLinenumber: 1478
    functionLinenumberEnd: 1490
    functionName: fwupd_remote_load_signature_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fwupd_remote_load_signature_jcat
    - fwupd_jcat_file_import_bytes
    - fwupd_jcat_file_new
    - FWUPD_IS_REMOTE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_remote_load_signature_bytes(FwupdRemote *self, GBytes
      *bytes, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1507,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1508,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1509,1
    - Dst: fwupd_jcat_file_new
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1509,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1511,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1511,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1512,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1513,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1516,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1517,1
    - Dst: g_file_read
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1517,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1519,1
    - Dst: fwupd_jcat_file_import_stream
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1522,1
    - Dst: fwupd_remote_load_signature_jcat
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1524,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - self
    - filename
    - error
    argTypes:
    - FwupdRemote*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1504
    functionDepth: 9
    functionLinenumber: 1504
    functionLinenumberEnd: 1525
    functionName: fwupd_remote_load_signature
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_remote_load_signature_jcat
    - fwupd_jcat_file_import_stream
    - fwupd_jcat_file_new
    - g_file_read
    - FWUPD_IS_REMOTE
    - fwupd_error_convert
    - G_INPUT_STREAM
    - g_file_new_for_path
    - g_autoptr
    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: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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1537
    functionDepth: 0
    functionLinenumber: 1537
    functionLinenumberEnd: 1543
    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:1558,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1559,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1555
    functionDepth: 0
    functionLinenumber: 1555
    functionLinenumberEnd: 1561
    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:1576,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1577,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1577,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1579,1
    - Dst: fwupd_remote_get_age
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1573
    functionDepth: 1
    functionLinenumber: 1573
    functionLinenumberEnd: 1584
    functionName: fwupd_remote_needs_refresh
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fwupd_remote_has_flag
    - FWUPD_IS_REMOTE
    - fwupd_remote_get_age
    - GET_PRIVATE
    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:1599,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1600,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdRemote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1596
    functionDepth: 0
    functionLinenumber: 1596
    functionLinenumberEnd: 1602
    functionName: fwupd_remote_get_id
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 40
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_REMOTE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_remote_get_id(FwupdRemote *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1618,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1623,1
    - Dst: g_key_file_new
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1623,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1625,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1625,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1626,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1630,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1631,1
    - Dst: g_get_user_config_dir
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1631,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1632,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1633,1
    - Dst: g_key_file_load_from_file
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1636,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1637,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1640,1
    - Dst: fwupd_remote_set_username
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1642,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1643,1
    - Dst: fwupd_remote_set_password
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1645,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1615
    functionDepth: 1
    functionLinenumber: 1615
    functionLinenumberEnd: 1649
    functionName: fwupd_remote_load_user_secrets
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_remote_set_password
    - g_key_file_new
    - g_debug
    - g_key_file_load_from_file
    - fwupd_remote_set_username
    - FWUPD_IS_REMOTE
    - fwupd_error_convert
    - g_file_test
    - g_strdup_printf
    - g_get_user_config_dir
    - g_key_file_get_string
    - g_autoptr
    - g_build_filename
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_remote_load_user_secrets(FwupdRemote *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1664,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1669,1
    - Dst: g_key_file_new
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1669,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1671,1
    - Dst: FWUPD_IS_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1671,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1672,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1679,1
    - Dst: g_key_file_remove_key
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1681,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1683,1
    - Dst: g_key_file_remove_key
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1685,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1686,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1687,1
    - Dst: g_get_user_config_dir
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1687,1
    - Dst: g_mkdir_with_parents
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1688,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1689,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1694,1
    - Dst: g_key_file_to_data
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1697,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1699,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1702,1
    - Dst: g_file_set_contents_full
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1703,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1704,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1707,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FwupdRemote*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1661
    functionDepth: 1
    functionLinenumber: 1661
    functionLinenumberEnd: 1711
    functionName: fwupd_remote_save_user_secrets
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_key_file_to_data
    - g_key_file_new
    - g_debug
    - g_set_error
    - g_key_file_set_string
    - FWUPD_IS_REMOTE
    - fwupd_error_convert
    - g_key_file_remove_key
    - g_strdup_printf
    - g_get_user_config_dir
    - g_mkdir_with_parents
    - g_file_set_contents_full
    - fwupd_strerror
    - g_autoptr
    - g_build_filename
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_remote_save_user_secrets(FwupdRemote *self, GError **error)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1716,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1717,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1720,1
    - Dst: g_variant_iter_copy
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1720,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1721,1
    - Dst: g_variant_iter_copy
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1721,1
    - Dst: g_variant_iter_loop
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1724,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1725,1
    - Dst: fwupd_remote_set_id
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1726,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1726,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1727,1
    - Dst: fwupd_remote_set_kind
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1728,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1728,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1729,1
    - Dst: fwupd_remote_set_flags
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1730,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1730,1
    - Dst: g_variant_iter_loop
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1732,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1733,1
    - Dst: fwupd_remote_set_metadata_uri
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1734,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1734,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1735,1
    - Dst: fwupd_remote_set_filename_cache
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1736,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1736,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1737,1
    - Dst: fwupd_remote_set_filename_source
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1738,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1738,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1739,1
    - Dst: fwupd_remote_set_report_uri
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1740,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1740,1
    - Dst: g_variant_iter_loop
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1742,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1743,1
    - Dst: fwupd_remote_set_username
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1744,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1744,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1745,1
    - Dst: fwupd_remote_set_password
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1746,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1746,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1747,1
    - Dst: fwupd_remote_set_title
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1748,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1748,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1749,1
    - Dst: fwupd_remote_set_privacy_uri
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1750,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1750,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1751,1
    - Dst: fwupd_remote_set_agreement
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1752,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1752,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1753,1
    - Dst: fwupd_remote_set_checksum_sig
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1754,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1754,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1755,1
    - Dst: fwupd_variant_get_int32
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1756,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1757,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1758,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1759,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1760,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1761,1
    - Dst: fwupd_remote_set_firmware_base_uri
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1762,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1762,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 2
    argNames:
    - codec
    - iter
    argTypes:
    - FwupdCodec*
    - GVariantIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1713
    functionDepth: 2
    functionLinenumber: 1713
    functionLinenumberEnd: 1765
    functionName: fwupd_remote_from_variant_iter
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_set_password
    - fwupd_remote_set_checksum_sig
    - fwupd_remote_set_firmware_base_uri
    - g_variant_iter_copy
    - fwupd_remote_set_report_uri
    - fwupd_remote_set_filename_source
    - fwupd_remote_set_kind
    - fwupd_variant_get_uint64
    - fwupd_remote_set_privacy_uri
    - fwupd_remote_set_title
    - GET_PRIVATE
    - fwupd_variant_get_uint32
    - fwupd_remote_set_id
    - fwupd_variant_get_string
    - fwupd_variant_get_int32
    - fwupd_remote_set_metadata_uri
    - fwupd_remote_set_agreement
    - g_strcmp0
    - fwupd_remote_set_username
    - FWUPD_REMOTE
    - fwupd_remote_set_filename_cache
    - g_variant_iter_loop
    - fwupd_remote_set_flags
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_remote_from_variant_iter(FwupdCodec *codec, GVariantIter
      *iter)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1770,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1771,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1775,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1778,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1782,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1785,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1788,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1791,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1795,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1798,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1801,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1801,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1804,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1807,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1810,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1813,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1816,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1819,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1822,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1825,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1828,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1831,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1834,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1837,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1840,1
    - Dst: g_variant_new_int32
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1843,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1846,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1846,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1849,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1852,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1855,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1858,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1861,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1864,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1867,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1870,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1873,1
    - Dst: g_variant_new_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1876,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 3
    argNames:
    - codec
    - builder
    - flags
    argTypes:
    - FwupdCodec*
    - GVariantBuilder*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1767
    functionDepth: 0
    functionLinenumber: 1767
    functionLinenumberEnd: 1878
    functionName: fwupd_remote_add_variant
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - g_variant_new_int32
    - g_variant_builder_add
    - FWUPD_REMOTE
    - g_variant_new_string
    - g_variant_new_uint64
    - g_variant_new_uint32
    - GET_PRIVATE
    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:1883,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1884,1
    - Dst: g_value_set_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1888,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1888,1
    - Dst: g_value_set_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1891,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1893,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1896,1
    - Dst: g_value_set_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1899,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1901,1
    - Dst: g_value_set_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1904,1
    - Dst: fwupd_remote_has_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1906,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1909,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1912,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: 1915
      start: 1880
    functionDepth: 1
    functionLinenumber: 1880
    functionLinenumberEnd: 1915
    functionName: fwupd_remote_get_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - fwupd_remote_has_flag
    - g_value_set_string
    - FWUPD_REMOTE
    - g_value_set_uint64
    - g_value_set_boolean
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    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:1920,1
    - Dst: g_value_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1924,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1925,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1927,1
    - Dst: g_value_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1930,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1931,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1933,1
    - Dst: fwupd_remote_set_id
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1936,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1936,1
    - Dst: g_value_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1939,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1940,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1942,1
    - Dst: g_value_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1945,1
    - Dst: fwupd_remote_add_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1946,1
    - Dst: fwupd_remote_remove_flag
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1948,1
    - Dst: fwupd_remote_set_flags
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1952,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1952,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1955,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: 1958
      start: 1917
    functionDepth: 1
    functionLinenumber: 1917
    functionLinenumberEnd: 1958
    functionName: fwupd_remote_set_property
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - g_value_get_string
    - g_value_get_boolean
    - FWUPD_REMOTE
    - fwupd_remote_set_id
    - g_value_get_uint64
    - fwupd_remote_add_flag
    - fwupd_remote_set_flags
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - fwupd_remote_remove_flag
    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:1964,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1977,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1978,1
    - Dst: g_param_spec_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1987,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-remote.c:1992,1
    - Dst: g_param_spec_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2002,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2007,1
    - Dst: g_param_spec_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2016,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2021,1
    - Dst: g_param_spec_boolean
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2030,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2035,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2044,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdRemoteClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 1960
    functionDepth: 0
    functionLinenumber: 1960
    functionLinenumberEnd: 2052
    functionName: fwupd_remote_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_uint64
    - g_param_spec_boolean
    - G_OBJECT_CLASS
    - g_param_spec_string
    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: 2057
      start: 2054
    functionDepth: 0
    functionLinenumber: 2054
    functionLinenumberEnd: 2057
    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:2062,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2063,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2065,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2066,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2067,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2068,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2069,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2070,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2071,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2072,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2073,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2074,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2075,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2076,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2077,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2078,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2079,1
    - Dst: g_free
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2080,1
    - Dst: g_strfreev
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2081,1
    - Dst: g_strfreev
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2082,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2059
    functionDepth: 0
    functionLinenumber: 2059
    functionLinenumberEnd: 2085
    functionName: fwupd_remote_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 0
    functionsReached:
    - g_strfreev
    - G_OBJECT_CLASS
    - FWUPD_REMOTE
    - g_free
    - GET_PRIVATE
    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: 2093
      start: 2087
    functionDepth: 0
    functionLinenumber: 2087
    functionLinenumberEnd: 2093
    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:2108,1
    - Dst: FWUPD_REMOTE
      Src: /src/fwupd/libfwupd/fwupd-remote.c:2109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2104
    functionDepth: 0
    functionLinenumber: 2104
    functionLinenumberEnd: 2110
    functionName: fwupd_remote_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-remote.c
    functionUses: 16
    functionsReached:
    - g_object_new
    - FWUPD_REMOTE
    linkageType: ''
    returnType: FwupdRemote
    signature: 'FwupdRemote *

      fwupd_remote_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-variant.c:18,1
    - Dst: g_list_sort
      Src: /src/fwupd/libfwupd/fwupd-variant.c:18,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupd/fwupd-variant.c:18,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupd/fwupd-variant.c:19,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupd/fwupd-variant.c:19,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupd/fwupd-variant.c:22,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupd/fwupd-variant.c:23,1
    - Dst: g_variant_builder_end
      Src: /src/fwupd/libfwupd/fwupd-variant.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - hash
    argTypes:
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 26
    functionName: fwupd_variant_from_hash_kv
    functionSourceFile: /src/fwupd/libfwupd/fwupd-variant.c
    functionUses: 3
    functionsReached:
    - g_hash_table_get_keys
    - g_variant_builder_add
    - g_variant_builder_init
    - g_hash_table_lookup
    - g_variant_builder_end
    - g_list_sort
    - G_VARIANT_TYPE
    - g_autoptr
    linkageType: ''
    returnType: GVariant
    signature: 'GVariant *

      fwupd_variant_from_hash_kv(GHashTable *hash)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-variant.c:37,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupd/fwupd-variant.c:37,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-variant.c:39,1
    - Dst: g_variant_is_of_type
      Src: /src/fwupd/libfwupd/fwupd-variant.c:42,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupd/fwupd-variant.c:42,1
    - Dst: g_variant_iter_init
      Src: /src/fwupd/libfwupd/fwupd-variant.c:45,1
    - Dst: g_variant_iter_loop
      Src: /src/fwupd/libfwupd/fwupd-variant.c:46,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-variant.c:47,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-variant.c:47,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupd/fwupd-variant.c:47,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-variant.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - dict
    argTypes:
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 49
    functionName: fwupd_variant_to_hash_kv
    functionSourceFile: /src/fwupd/libfwupd/fwupd-variant.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_hash_table_insert
    - g_steal_pointer
    - g_variant_iter_init
    - g_hash_table_new_full
    - g_variant_iter_loop
    - g_variant_is_of_type
    - G_VARIANT_TYPE
    - g_autoptr
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fwupd_variant_to_hash_kv(GVariant *dict)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-variant.c:64,1
    - Dst: g_variant_is_of_type
      Src: /src/fwupd/libfwupd/fwupd-variant.c:65,1
    - Dst: MAX
      Src: /src/fwupd/libfwupd/fwupd-variant.c:66,1
    - Dst: g_variant_get_int32
      Src: /src/fwupd/libfwupd/fwupd-variant.c:66,1
    - Dst: g_variant_is_of_type
      Src: /src/fwupd/libfwupd/fwupd-variant.c:67,1
    - Dst: g_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-variant.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: fwupd_variant_get_uint32
    functionSourceFile: /src/fwupd/libfwupd/fwupd-variant.c
    functionUses: 8
    functionsReached:
    - g_return_val_if_fail
    - MAX
    - g_variant_get_int32
    - g_variant_is_of_type
    - g_variant_get_uint32
    linkageType: ''
    returnType: guint32
    signature: guint32 fwupd_variant_get_uint32(GVariant *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-variant.c:85,1
    - Dst: g_variant_is_of_type
      Src: /src/fwupd/libfwupd/fwupd-variant.c:86,1
    - Dst: g_variant_get_int32
      Src: /src/fwupd/libfwupd/fwupd-variant.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: fwupd_variant_get_int32
    functionSourceFile: /src/fwupd/libfwupd/fwupd-variant.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_variant_get_int32
    - g_variant_is_of_type
    linkageType: ''
    returnType: gint32
    signature: gint32 fwupd_variant_get_int32(GVariant *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-variant.c:104,1
    - Dst: g_variant_is_of_type
      Src: /src/fwupd/libfwupd/fwupd-variant.c:105,1
    - Dst: MAX
      Src: /src/fwupd/libfwupd/fwupd-variant.c:106,1
    - Dst: g_variant_get_int64
      Src: /src/fwupd/libfwupd/fwupd-variant.c:106,1
    - Dst: g_variant_is_of_type
      Src: /src/fwupd/libfwupd/fwupd-variant.c:107,1
    - Dst: g_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-variant.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: fwupd_variant_get_uint64
    functionSourceFile: /src/fwupd/libfwupd/fwupd-variant.c
    functionUses: 9
    functionsReached:
    - g_return_val_if_fail
    - MAX
    - g_variant_get_int64
    - g_variant_is_of_type
    - g_variant_get_uint64
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_variant_get_uint64(GVariant *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-variant.c:125,1
    - Dst: g_variant_is_of_type
      Src: /src/fwupd/libfwupd/fwupd-variant.c:126,1
    - Dst: g_variant_is_of_type
      Src: /src/fwupd/libfwupd/fwupd-variant.c:127,1
    - Dst: g_variant_is_of_type
      Src: /src/fwupd/libfwupd/fwupd-variant.c:128,1
    - Dst: g_variant_get_string
      Src: /src/fwupd/libfwupd/fwupd-variant.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 131
    functionName: fwupd_variant_get_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-variant.c
    functionUses: 10
    functionsReached:
    - g_return_val_if_fail
    - g_variant_get_string
    - g_variant_is_of_type
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_variant_get_string(GVariant *value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-variant.c:146,1
    - Dst: g_variant_is_of_type
      Src: /src/fwupd/libfwupd/fwupd-variant.c:147,1
    - Dst: g_variant_get_boolean
      Src: /src/fwupd/libfwupd/fwupd-variant.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: fwupd_variant_get_boolean
    functionSourceFile: /src/fwupd/libfwupd/fwupd-variant.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - g_variant_get_boolean
    - g_variant_is_of_type
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_variant_get_boolean(GVariant *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-variant.c:165,1
    - Dst: g_variant_is_of_type
      Src: /src/fwupd/libfwupd/fwupd-variant.c:166,1
    - Dst: g_variant_get_strv
      Src: /src/fwupd/libfwupd/fwupd-variant.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 169
    functionName: fwupd_variant_get_strv
    functionSourceFile: /src/fwupd/libfwupd/fwupd-variant.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - g_variant_is_of_type
    - g_variant_get_strv
    linkageType: ''
    returnType: gchar
    signature: 'gchar **

      fwupd_variant_get_strv(GVariant *value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-variant.c:184,1
    - Dst: g_variant_is_of_type
      Src: /src/fwupd/libfwupd/fwupd-variant.c:185,1
    - Dst: g_variant_get_double
      Src: /src/fwupd/libfwupd/fwupd-variant.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 188
    functionName: fwupd_variant_get_double
    functionSourceFile: /src/fwupd/libfwupd/fwupd-variant.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_variant_is_of_type
    - g_variant_get_double
    linkageType: ''
    returnType: gdouble
    signature: gdouble fwupd_variant_get_double(GVariant *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_JCAT_BLOB
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:36,1
    - Dst: fwupd_jcat_blob_flags_to_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:37,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:39,1
    - Dst: fwupd_jcat_blob_kind_to_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:39,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:41,1
    - Dst: fwupd_jcat_blob_kind_to_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:44,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:48,1
    - Dst: g_date_time_new_from_unix_utc
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:48,1
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:50,1
    - Dst: g_date_time_format_iso8601
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:51,1
    - Dst: g_date_time_format
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:53,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:55,1
    - Dst: fwupd_jcat_blob_get_data_as_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:59,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:61,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:61,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:62,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 65
    functionName: fwupd_jcat_blob_add_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-blob.c
    functionUses: 0
    functionsReached:
    - fwupd_jcat_blob_flags_to_string
    - fwupd_jcat_blob_get_data_as_string
    - fwupd_jcat_blob_kind_to_string
    - GLIB_CHECK_VERSION
    - g_date_time_format_iso8601
    - FWUPD_JCAT_BLOB
    - fwupd_codec_string_append
    - g_strdup_printf
    - g_date_time_format
    - g_bytes_get_size
    - g_autoptr
    - g_date_time_new_from_unix_utc
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_blob_add_string(FwupdCodec *codec, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:80,1
    - Dst: FWUPD_IS_JCAT_BLOB
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJcatBlob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: fwupd_jcat_blob_get_timestamp
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-blob.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_JCAT_BLOB
    linkageType: ''
    returnType: guint64
    signature: guint64 fwupd_jcat_blob_get_timestamp(FwupdJcatBlob *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:96,1
    - Dst: FWUPD_IS_JCAT_BLOB
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - timestamp
    argTypes:
    - FwupdJcatBlob*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: fwupd_jcat_blob_set_timestamp
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-blob.c
    functionUses: 2
    functionsReached:
    - FWUPD_IS_JCAT_BLOB
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_blob_set_timestamp(FwupdJcatBlob *self, guint64 timestamp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:113,1
    - Dst: FWUPD_IS_JCAT_BLOB
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJcatBlob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: fwupd_jcat_blob_get_data
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-blob.c
    functionUses: 12
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_JCAT_BLOB
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fwupd_jcat_blob_get_data(FwupdJcatBlob *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:133,1
    - Dst: FWUPD_IS_JCAT_BLOB
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:133,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:138,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:140,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJcatBlob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 142
    functionName: fwupd_jcat_blob_get_data_as_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-blob.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - g_strndup
    - g_bytes_get_data
    - FWUPD_IS_JCAT_BLOB
    - g_base64_encode
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_jcat_blob_get_data_as_string(FwupdJcatBlob *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:148,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - buf
    - bufsz
    argTypes:
    - FwupdJcatBlob*
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: fwupd_jcat_blob_set_data_raw
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-blob.c
    functionUses: 0
    functionsReached:
    - g_bytes_unref
    - g_bytes_new
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_blob_set_data_raw(FwupdJcatBlob *self, const guint8
      *buf, gsize bufsz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:165,1
    - Dst: FWUPD_IS_JCAT_BLOB
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJcatBlob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: fwupd_jcat_blob_get_kind
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-blob.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_JCAT_BLOB
    linkageType: ''
    returnType: FwupdJcatBlobKind
    signature: FwupdJcatBlobKind fwupd_jcat_blob_get_kind(FwupdJcatBlob *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:182,1
    - Dst: FWUPD_IS_JCAT_BLOB
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJcatBlob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: fwupd_jcat_blob_get_target
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-blob.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_JCAT_BLOB
    linkageType: ''
    returnType: FwupdJcatBlobKind
    signature: FwupdJcatBlobKind fwupd_jcat_blob_get_target(FwupdJcatBlob *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:198,1
    - Dst: FWUPD_IS_JCAT_BLOB
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - target
    argTypes:
    - FwupdJcatBlob*
    - FwupdJcatBlobKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: fwupd_jcat_blob_set_target
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-blob.c
    functionUses: 4
    functionsReached:
    - FWUPD_IS_JCAT_BLOB
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_blob_set_target(FwupdJcatBlob *self, FwupdJcatBlobKind
      target)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_JCAT_BLOB
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:205,1
    - Dst: fwupd_json_object_get_integer
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:212,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:215,1
    - Dst: fwupd_json_object_get_integer
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:221,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:224,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:230,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:237,1
    - Dst: fwupd_jcat_blob_set_timestamp
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:243,1
    - Dst: fwupd_json_object_has_node
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:245,1
    - Dst: fwupd_json_object_get_integer
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:247,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:250,1
    - Dst: fwupd_jcat_blob_set_target
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:256,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:260,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:265,1
    - Dst: fwupd_jcat_blob_set_data_raw
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:266,1
    - Dst: fwupd_jcat_blob_set_data_raw
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:268,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:268,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - codec
    - json_obj
    - error
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 273
    functionName: fwupd_jcat_blob_from_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-blob.c
    functionUses: 0
    functionsReached:
    - fwupd_jcat_blob_set_target
    - fwupd_json_object_get_integer
    - g_set_error_literal
    - fwupd_jcat_blob_set_data_raw
    - FWUPD_JCAT_BLOB
    - fwupd_jcat_blob_set_timestamp
    - strlen
    - fwupd_json_object_get_string
    - fwupd_json_object_has_node
    - fwupd_json_object_get_integer_with_default
    - g_base64_decode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_jcat_blob_from_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_JCAT_BLOB
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:278,1
    - Dst: fwupd_jcat_blob_get_data_as_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:279,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:281,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:283,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:284,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:286,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:288,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 289
    functionName: fwupd_jcat_blob_add_json
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-blob.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_integer
    - fwupd_jcat_blob_get_data_as_string
    - FWUPD_JCAT_BLOB
    - fwupd_json_object_add_string
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_blob_add_json(FwupdCodec *codec, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 297
    functionName: fwupd_jcat_blob_codec_iface_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-blob.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_blob_codec_iface_init(FwupdCodecInterface *iface)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FWUPD_JCAT_BLOB
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:302,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:304,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 306
    functionName: fwupd_jcat_blob_finalize
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-blob.c
    functionUses: 0
    functionsReached:
    - g_bytes_unref
    - FWUPD_JCAT_BLOB
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_blob_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FwupdJcatBlobClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: fwupd_jcat_blob_class_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-blob.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_blob_class_init(FwupdJcatBlobClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_get_real_time
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FwupdJcatBlob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: fwupd_jcat_blob_init
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-blob.c
    functionUses: 0
    functionsReached:
    - g_get_real_time
    linkageType: ''
    returnType: void
    signature: void fwupd_jcat_blob_init(FwupdJcatBlob *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:336,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:336,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:338,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:341,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - kind
    - data
    - flags
    argTypes:
    - FwupdJcatBlobKind
    - GBytes*
    - FwupdJcatBlobFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 344
    functionName: fwupd_jcat_blob_new
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-blob.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_ref
    - g_steal_pointer
    - g_object_new
    - g_autoptr
    linkageType: ''
    returnType: FwupdJcatBlob
    signature: 'FwupdJcatBlob *

      fwupd_jcat_blob_new(FwupdJcatBlobKind kind, GBytes *data, FwupdJcatBlobFlags
      flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:360,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:360,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:362,1
    - Dst: fwupd_jcat_blob_set_data_raw
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:366,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:366,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupd/fwupd-jcat-blob.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - kind
    - data
    argTypes:
    - FwupdJcatBlobKind
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 368
    functionName: fwupd_jcat_blob_new_utf8
    functionSourceFile: /src/fwupd/libfwupd/fwupd-jcat-blob.c
    functionUses: 8
    functionsReached:
    - g_return_val_if_fail
    - g_steal_pointer
    - fwupd_jcat_blob_set_data_raw
    - g_object_new
    - strlen
    - g_autoptr
    linkageType: ''
    returnType: FwupdJcatBlob
    signature: 'FwupdJcatBlob *

      fwupd_jcat_blob_new_utf8(FwupdJcatBlobKind kind, const gchar *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:21,1
    - Dst: fwupd_report_new
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:23,1
    - Dst: fwupd_report_new
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:25,1
    - Dst: fwupd_report_add_metadata_item
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:26,1
    - Dst: fwupd_report_add_metadata_item
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:27,1
    - Dst: fwupd_report_set_version_old
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:28,1
    - Dst: fwupd_report_set_created
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:29,1
    - Dst: fwupd_report_set_vendor
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:30,1
    - Dst: fwupd_report_set_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:31,1
    - Dst: fwupd_report_set_device_name
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:32,1
    - Dst: fwupd_report_set_distro_id
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:33,1
    - Dst: fwupd_report_set_distro_version
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:34,1
    - Dst: fwupd_report_set_remote_id
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:35,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:36,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:36,1
    - Dst: fwupd_codec_from_variant
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:37,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:37,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:38,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:39,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:40,1
    - Dst: fwupd_report_get_metadata_item
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:40,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:41,1
    - Dst: fwupd_report_get_metadata_item
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:41,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:42,1
    - Dst: fwupd_report_get_version_old
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:42,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:43,1
    - Dst: fwupd_report_get_vendor
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:43,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:44,1
    - Dst: fwupd_report_get_vendor_id
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:44,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:45,1
    - Dst: fwupd_report_get_device_name
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:45,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:46,1
    - Dst: fwupd_report_get_distro_id
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:46,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:47,1
    - Dst: fwupd_report_get_distro_version
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:47,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:48,1
    - Dst: fwupd_report_get_created
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:48,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:51,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:51,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:52,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:53,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:54,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:54,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:55,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:56,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:57,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:58,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:59,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:62,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:62,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:63,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:76,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 13
    functionDepth: 4
    functionLinenumber: 13
    functionLinenumberEnd: 78
    functionName: fwupd_report_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report-test.c
    functionUses: 0
    functionsReached:
    - fwupd_report_get_vendor
    - fwupd_codec_to_string
    - FWUPD_CODEC
    - fwupd_report_get_vendor_id
    - fwupd_report_set_remote_id
    - g_assert_nonnull
    - fwupd_report_get_version_old
    - fwupd_report_new
    - fwupd_report_get_distro_id
    - fu_test_compare_lines
    - fwupd_codec_to_variant
    - g_assert_cmpint
    - fwupd_report_set_vendor
    - fwupd_report_set_created
    - fwupd_report_set_distro_id
    - fwupd_report_add_metadata_item
    - fwupd_report_get_created
    - fwupd_codec_from_variant
    - fwupd_report_get_device_name
    - fwupd_report_set_distro_version
    - fwupd_report_set_version_old
    - fwupd_report_get_distro_version
    - fwupd_report_set_device_name
    - g_assert_no_error
    - fwupd_report_get_metadata_item
    - fwupd_codec_to_json_string
    - fwupd_report_set_vendor_id
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fwupd_report_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:83,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:84,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupd/fwupd-report-test.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: main
    functionSourceFile: /src/fwupd/libfwupd/fwupd-report-test.c
    functionUses: 3
    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: []
    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_message
    - fwupd_client_get_devices
    - g_idle_add
    - g_thread_self
    - g_main_context_new
    - g_assert_nonnull
    - g_main_context_get_thread_default
    - g_main_context_pusher_new
    - g_warning
    - g_autoptr
    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_message
    - g_usleep
    - g_thread_self
    - g_application_hold
    - g_ptr_array_add
    - g_main_context_get_thread_default
    - g_strdup_printf
    - g_random_int_range
    - g_thread_new
    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_application_hold
    - g_idle_add
    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_autoptr
    - g_bus_get_sync
    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_message
    - g_thread_self
    - g_signal_connect
    - fwupd_client_new
    - g_ptr_array_new
    - fwupd_thread_test_has_system_bus
    - g_main_context_get_thread_default
    - G_APPLICATION
    - g_application_run
    - G_CALLBACK
    - g_autoptr
    - g_thread_join
    - g_ptr_array_index
    - g_application_new
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:19,1
    - Dst: g_variant_new_int32
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:20,1
    - Dst: g_variant_new_int64
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:21,1
    - Dst: g_variant_new_uint32
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:22,1
    - Dst: g_variant_new_uint64
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:22,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:24,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:24,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:25,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:25,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:26,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:26,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:27,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 28
    functionName: fwupd_variant_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common-test.c
    functionUses: 0
    functionsReached:
    - g_variant_new_int32
    - fwupd_variant_get_uint64
    - fwupd_variant_get_uint32
    - g_assert_cmpint
    - g_variant_new_uint64
    - g_variant_new_uint32
    - g_autoptr
    - g_variant_new_int64
    linkageType: ''
    returnType: void
    signature: void fwupd_variant_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:35,1
    - Dst: fwupd_client_new
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:35,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:36,1
    - Dst: fwupd_device_new
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:36,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:37,1
    - Dst: fwupd_release_new
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:37,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:38,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:39,1
    - Dst: g_hash_table_new
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:40,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:40,1
    - Dst: fwupd_device_set_id
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:42,1
    - Dst: fwupd_device_set_update_state
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:43,1
    - Dst: fwupd_device_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:44,1
    - Dst: fwupd_device_add_guid
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:45,1
    - Dst: fwupd_device_add_protocol
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:46,1
    - Dst: fwupd_device_set_plugin
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:47,1
    - Dst: fwupd_device_set_update_error
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:48,1
    - Dst: fwupd_device_set_version
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:49,1
    - Dst: fwupd_release_add_checksum
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:50,1
    - Dst: fwupd_release_set_id
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:51,1
    - Dst: fwupd_release_set_update_message
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:52,1
    - Dst: fwupd_release_set_version
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:53,1
    - Dst: fwupd_device_add_release
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:54,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:57,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:58,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:59,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:61,1
    - Dst: fwupd_client_build_report_history
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:62,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:63,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:64,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:65,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:97,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 99
    functionName: fwupd_common_history_report_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common-test.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - fwupd_device_add_guid
    - g_assert_nonnull
    - fu_test_compare_lines
    - fwupd_device_add_protocol
    - fwupd_client_build_report_history
    - fwupd_device_set_plugin
    - g_hash_table_new
    - fwupd_device_set_update_error
    - fwupd_device_set_version
    - fwupd_device_set_id
    - fwupd_release_set_version
    - g_ptr_array_new
    - fwupd_device_set_update_state
    - fwupd_device_new
    - fwupd_release_set_update_message
    - fwupd_device_add_checksum
    - fwupd_device_add_release
    - fwupd_client_new
    - g_ptr_array_add
    - g_assert_no_error
    - fwupd_release_add_checksum
    - fwupd_release_set_id
    - g_assert_true
    - g_autoptr
    - fwupd_release_new
    linkageType: ''
    returnType: void
    signature: void fwupd_common_history_report_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:104,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:104,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:105,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:105,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:106,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:106,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:107,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:107,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:108,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:108,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:109,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:109,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:110,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:110,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:111,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: fwupd_common_device_id_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common-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-common-test.c:125,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:128,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:128,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:129,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:129,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:130,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:130,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:131,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:131,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:132,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:132,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:133,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:133,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:134,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:134,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:137,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:137,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:140,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:141,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:143,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:144,1
    - Dst: fwupd_guid_hash_data
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:146,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:147,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:150,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:154,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:155,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:156,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:156,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:161,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:162,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:165,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:169,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:170,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:171,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:171,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:176,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:177,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:180,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:181,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:182,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 184
    functionName: fwupd_common_guid_func
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fwupd_guid_from_string
    - fwupd_guid_to_string
    - g_assert_no_error
    - g_assert_cmpint
    - fwupd_guid_is_valid
    - g_assert_false
    - memcmp
    - g_assert_true
    - fwupd_guid_hash_string
    - g_autoptr
    - fwupd_guid_hash_data
    linkageType: ''
    returnType: void
    signature: void fwupd_common_guid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:189,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:190,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:191,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:192,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:193,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupd/fwupd-common-test.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 195
    functionName: main
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common-test.c
    functionUses: 3
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_test_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-test.c:15,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-test.c:15,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupd/fwupd-test.c:16,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupd/fwupd-test.c:16,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupd/fwupd-test.c:20,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupd/fwupd-test.c:21,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-test.c:24,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/libfwupd/fwupd-test.c:28,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/libfwupd/fwupd-test.c:32,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/libfwupd/fwupd-test.c:34,1
    - Dst: g_spawn_command_line_sync
      Src: /src/fwupd/libfwupd/fwupd-test.c:36,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-test.c:40,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - txt1
    - txt2
    - error
    argTypes:
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 42
    functionName: fu_test_compare_lines
    functionSourceFile: /src/fwupd/libfwupd/fwupd-test.c
    functionUses: 14
    functionsReached:
    - g_strcmp0
    - g_string_replace
    - g_set_error_literal
    - g_pattern_match_simple
    - g_string_new
    - g_autoptr
    - g_file_set_contents
    - g_spawn_command_line_sync
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_compare_lines(const gchar *txt1, const gchar *txt2,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-common.c:39,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-common.c:40,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - checksum
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 52
    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: 78
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 78
    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:93,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-common.c:94,1
    - Dst: fwupd_checksum_type_to_string_display
      Src: /src/fwupd/libfwupd/fwupd-common.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - checksum
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: fwupd_checksum_format_for_display
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 3
    functionsReached:
    - g_strdup_printf
    - fwupd_checksum_guess_kind
    - fwupd_checksum_type_to_string_display
    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:111,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-common.c:113,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/libfwupd/fwupd-common.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - checksums
    - kind
    argTypes:
    - GPtrArray*
    - GChecksumType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: fwupd_checksum_get_by_kind
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - fwupd_checksum_guess_kind
    - g_ptr_array_index
    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:139,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupd/fwupd-common.c:140,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupd/fwupd-common.c:142,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/libfwupd/fwupd-common.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - checksums
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 148
    functionName: fwupd_checksum_get_best
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fwupd_checksum_guess_kind
    - G_N_ELEMENTS
    - g_ptr_array_index
    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:177,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupd/fwupd-common.c:180,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-common.c:184,1
    - Dst: GUINT32_FROM_LE
      Src: /src/fwupd/libfwupd/fwupd-common.c:185,1
    - Dst: GUINT16_FROM_LE
      Src: /src/fwupd/libfwupd/fwupd-common.c:186,1
    - Dst: GUINT16_FROM_LE
      Src: /src/fwupd/libfwupd/fwupd-common.c:187,1
    - Dst: GUINT16_FROM_BE
      Src: /src/fwupd/libfwupd/fwupd-common.c:188,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupd/fwupd-common.c:196,1
    - Dst: GUINT32_FROM_BE
      Src: /src/fwupd/libfwupd/fwupd-common.c:197,1
    - Dst: GUINT16_FROM_BE
      Src: /src/fwupd/libfwupd/fwupd-common.c:198,1
    - Dst: GUINT16_FROM_BE
      Src: /src/fwupd/libfwupd/fwupd-common.c:199,1
    - Dst: GUINT16_FROM_BE
      Src: /src/fwupd/libfwupd/fwupd-common.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - guid
    - flags
    argTypes:
    - fwupd_guid_t*
    - FwupdGuidFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 207
    functionName: fwupd_guid_to_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GUINT16_FROM_BE
    - memcpy
    - GUINT16_FROM_LE
    - GUINT32_FROM_BE
    - g_strdup_printf
    - GUINT32_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:232,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-common.c:234,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-common.c:235,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-common.c:238,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-common.c:239,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupd/fwupd-common.c:245,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupd/fwupd-common.c:246,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-common.c:247,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-common.c:253,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-common.c:253,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-common.c:253,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-common.c:254,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-common.c:254,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-common.c:255,1
    - Dst: g_ascii_string_to_unsigned
      Src: /src/fwupd/libfwupd/fwupd-common.c:263,1
    - Dst: GUINT32_TO_LE
      Src: /src/fwupd/libfwupd/fwupd-common.c:265,1
    - Dst: GUINT32_TO_BE
      Src: /src/fwupd/libfwupd/fwupd-common.c:265,1
    - Dst: g_ascii_string_to_unsigned
      Src: /src/fwupd/libfwupd/fwupd-common.c:266,1
    - Dst: GUINT16_TO_LE
      Src: /src/fwupd/libfwupd/fwupd-common.c:268,1
    - Dst: GUINT16_TO_BE
      Src: /src/fwupd/libfwupd/fwupd-common.c:268,1
    - Dst: g_ascii_string_to_unsigned
      Src: /src/fwupd/libfwupd/fwupd-common.c:269,1
    - Dst: GUINT16_TO_LE
      Src: /src/fwupd/libfwupd/fwupd-common.c:271,1
    - Dst: GUINT16_TO_BE
      Src: /src/fwupd/libfwupd/fwupd-common.c:271,1
    - Dst: g_ascii_string_to_unsigned
      Src: /src/fwupd/libfwupd/fwupd-common.c:272,1
    - Dst: GUINT16_TO_BE
      Src: /src/fwupd/libfwupd/fwupd-common.c:274,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupd/fwupd-common.c:277,1
    - Dst: g_ascii_string_to_unsigned
      Src: /src/fwupd/libfwupd/fwupd-common.c:278,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupd/fwupd-common.c:283,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: 287
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 287
    functionName: fwupd_guid_from_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - GUINT32_TO_LE
    - g_ascii_string_to_unsigned
    - GUINT16_TO_LE
    - g_set_error_literal
    - memcpy
    - GUINT32_TO_BE
    - g_strsplit
    - g_strv_length
    - strlen
    - g_auto
    - GUINT16_TO_BE
    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:311,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-common.c:331,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupd/fwupd-common.c:332,1
    - Dst: g_checksum_new
      Src: /src/fwupd/libfwupd/fwupd-common.c:339,1
    - Dst: g_checksum_update
      Src: /src/fwupd/libfwupd/fwupd-common.c:340,1
    - Dst: g_checksum_update
      Src: /src/fwupd/libfwupd/fwupd-common.c:341,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/libfwupd/fwupd-common.c:342,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupd/fwupd-common.c:345,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupd/fwupd-common.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - data
    - datasz
    - flags
    argTypes:
    - guint8*
    - gsize
    - FwupdGuidFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 351
    functionName: fwupd_guid_hash_data
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_checksum_update
    - fwupd_guid_to_string
    - g_checksum_new
    - memcpy
    - g_checksum_get_digest
    - g_autoptr
    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:370,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - device_id
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 379
    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:409,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupd/fwupd-common.c:418,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - guid
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 419
    functionName: fwupd_guid_is_valid
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 8
    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:445,1
    - Dst: strlen
      Src: /src/fwupd/libfwupd/fwupd-common.c:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 446
    functionName: fwupd_guid_hash_string
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 4
    functionsReached:
    - strlen
    - fwupd_guid_hash_data
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_guid_hash_string(const gchar *str)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memfd_create
      Src: /src/fwupd/libfwupd/fwupd-common.c:462,1
    - Dst: g_mkstemp
      Src: /src/fwupd/libfwupd/fwupd-common.c:465,1
    - Dst: g_unlink
      Src: /src/fwupd/libfwupd/fwupd-common.c:467,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-common.c:469,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupd/fwupd-common.c:479,1
    - Dst: write
      Src: /src/fwupd/libfwupd/fwupd-common.c:485,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupd/fwupd-common.c:485,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupd/fwupd-common.c:485,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-common.c:487,1
    - Dst: lseek
      Src: /src/fwupd/libfwupd/fwupd-common.c:494,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-common.c:495,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupd/fwupd-common.c:499,1
    - Dst: G_UNIX_INPUT_STREAM
      Src: /src/fwupd/libfwupd/fwupd-common.c:502,1
    - Dst: g_unix_input_stream_new
      Src: /src/fwupd/libfwupd/fwupd-common.c:502,1
    - Dst: g_steal_fd
      Src: /src/fwupd/libfwupd/fwupd-common.c:502,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - bytes
    - error
    argTypes:
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 503
    functionName: fwupd_unix_input_stream_from_bytes
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 3
    functionsReached:
    - write
    - g_set_error
    - g_mkstemp
    - g_bytes_get_data
    - g_set_error_literal
    - g_unlink
    - G_UNIX_INPUT_STREAM
    - g_unix_input_stream_new
    - g_bytes_get_size
    - memfd_create
    - fwupd_strerror
    - lseek
    - g_steal_fd
    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:511,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-common.c:513,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupd/fwupd-common.c:518,1
    - Dst: G_UNIX_INPUT_STREAM
      Src: /src/fwupd/libfwupd/fwupd-common.c:521,1
    - Dst: g_unix_input_stream_new
      Src: /src/fwupd/libfwupd/fwupd-common.c:521,1
    - Dst: g_steal_fd
      Src: /src/fwupd/libfwupd/fwupd-common.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fn
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 522
    functionName: fwupd_unix_input_stream_from_fn
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 6
    functionsReached:
    - g_set_error
    - G_UNIX_INPUT_STREAM
    - g_unix_input_stream_new
    - g_steal_fd
    - fwupd_strerror
    - open
    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:530,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupd/fwupd-common.c:532,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupd/fwupd-common.c:537,1
    - Dst: G_UNIX_OUTPUT_STREAM
      Src: /src/fwupd/libfwupd/fwupd-common.c:540,1
    - Dst: g_unix_output_stream_new
      Src: /src/fwupd/libfwupd/fwupd-common.c:540,1
    - Dst: g_steal_fd
      Src: /src/fwupd/libfwupd/fwupd-common.c:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fn
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 541
    functionName: fwupd_unix_output_stream_from_fn
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - g_unix_output_stream_new
    - g_open
    - G_UNIX_OUTPUT_STREAM
    - fwupd_strerror
    - g_steal_fd
    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: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - gdouble
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 558
    functionName: fwupd_percentage_is_valid
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_percentage_is_valid(gdouble value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_percentage_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common.c:582,1
    - Dst: fwupd_percentage_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common.c:582,1
    - Dst: fwupd_percentage_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common.c:584,1
    - Dst: fwupd_percentage_is_valid
      Src: /src/fwupd/libfwupd/fwupd-common.c:584,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - value_old
    - value_new
    argTypes:
    - gdouble
    - gdouble
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 587
    functionName: fwupd_percentage_delta_notify
    functionSourceFile: /src/fwupd/libfwupd/fwupd-common.c
    functionUses: 3
    functionsReached:
    - fwupd_percentage_is_valid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fwupd_percentage_delta_notify(gdouble value_old, gdouble value_new)
  - 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-volume.c
    functionUses: 558
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:43,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:44,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:45,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:47,1
    - Dst: fu_efi_guid_to_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:49,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: fu_efi_volume_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-volume.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_efi_guid_to_name
    - fu_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    - FU_EFI_VOLUME
    - GET_PRIVATE
    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:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:70,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:73,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:74,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:77,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:85,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:86,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:90,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:91,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:98,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:108,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:109,1
    - Dst: fu_bytes_pad
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:110,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:111,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:111,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:112,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:112,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:117,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:118,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:118,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:120,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:120,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:122,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:131,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 5
    argNames:
    - self
    - stream
    - offset
    - flags
    - error
    argTypes:
    - FuEfiVolume*
    - GInputStream*
    - gsize
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 140
    functionName: fu_efi_volume_parse_nvram_evsa
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-volume.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - g_debug
    - fu_firmware_new_from_gtypes
    - fu_input_stream_size
    - fu_firmware_add_image
    - g_set_error_literal
    - FU_FIRMWARE
    - g_prefix_error_literal
    - fu_firmware_set_offset
    - fu_firmware_get_size
    - g_error_matches
    - fu_common_align_up
    - fu_size_checked_inc
    - g_autoptr
    - fu_firmware_new_from_bytes
    - fu_bytes_pad
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_volume_parse_nvram_evsa(FuEfiVolume *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: 30
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:148,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:158,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:159,1
    - Dst: fu_struct_efi_volume_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:162,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:167,1
    - Dst: fu_struct_efi_volume_get_guid
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:167,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:169,1
    - Dst: fu_efi_guid_to_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:169,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:172,1
    - Dst: fu_struct_efi_volume_get_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:174,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:176,1
    - Dst: fu_firmware_get_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:182,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:183,1
    - Dst: fu_firmware_get_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:188,1
    - Dst: fu_struct_efi_volume_get_attrs
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:191,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:194,1
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:202,1
    - Dst: fu_struct_efi_volume_get_hdr_len
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:204,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:207,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:218,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:220,1
    - Dst: fu_sum16w_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:223,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:225,1
    - Dst: fu_struct_efi_volume_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:230,1
    - Dst: fu_struct_efi_volume_get_ext_hdr
      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_get_ext_hdr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:238,1
    - Dst: fu_struct_efi_volume_ext_header_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:240,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:243,1
    - Dst: fu_struct_efi_volume_ext_header_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:244,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:248,1
    - Dst: fu_struct_efi_volume_ext_entry_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:250,1
    - Dst: fu_struct_efi_volume_ext_entry_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:253,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:254,1
    - Dst: fu_struct_efi_volume_ext_entry_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:260,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:262,1
    - Dst: fu_struct_efi_volume_ext_entry_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:264,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:272,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:274,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:277,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:278,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:281,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:282,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:283,1
    - Dst: fu_efi_filesystem_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:283,1
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:284,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:284,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:285,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:291,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:293,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:294,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:295,1
    - Dst: fu_efi_volume_parse_nvram_evsa
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:296,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:301,1
    - Dst: fu_efi_guid_to_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:303,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:305,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:310,1
    - Dst: fu_efi_guid_to_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:312,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:314,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:319,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:320,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:326,1
    - Dst: fu_struct_efi_volume_block_map_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:327,1
    - Dst: fu_struct_efi_volume_block_map_get_num_blocks
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:330,1
    - Dst: fu_struct_efi_volume_block_map_get_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:331,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:332,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:333,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:341,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 122
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 350
    functionName: fu_efi_volume_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-volume.c
    functionUses: 0
    functionsReached:
    - fwupd_guid_to_string
    - fu_struct_efi_volume_block_map_get_num_blocks
    - fu_struct_efi_volume_ext_header_parse_stream
    - fu_struct_efi_volume_get_guid
    - fu_firmware_set_stream
    - fu_sum16w_bytes
    - fu_efi_volume_parse_nvram_evsa
    - fu_struct_efi_volume_block_map_parse_stream
    - fu_struct_efi_volume_get_hdr_len
    - g_debug
    - fu_firmware_add_image
    - fu_efi_guid_to_name
    - g_set_error_literal
    - fu_struct_efi_volume_get_length
    - g_prefix_error_literal
    - fu_firmware_get_size_max
    - fu_struct_efi_volume_get_checksum
    - fu_struct_efi_volume_ext_header_get_size
    - fu_struct_efi_volume_ext_entry_parse_stream
    - fu_struct_efi_volume_ext_entry_get_size
    - fu_struct_efi_volume_block_map_get_length
    - fu_firmware_set_size
    - GET_PRIVATE
    - fu_struct_efi_volume_get_ext_hdr
    - g_warning
    - fu_struct_efi_volume_parse_stream
    - fu_partial_input_stream_new
    - fu_efi_filesystem_new
    - fu_input_stream_read_bytes
    - g_strcmp0
    - fu_firmware_set_id
    - g_set_error
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - fu_firmware_get_alignment
    - fu_struct_efi_volume_get_attrs
    - fu_firmware_set_alignment
    - FU_EFI_VOLUME
    - fu_size_checked_inc
    - g_autoptr
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:355,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:356,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:357,1
    - Dst: fu_struct_efi_volume_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:357,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:358,1
    - Dst: fu_struct_efi_volume_block_map_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:358,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:362,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:363,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:364,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:367,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:368,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:372,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:377,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:378,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:381,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:381,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:388,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:390,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:392,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:396,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:396,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:398,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:399,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:401,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:403,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:406,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:408,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:408,1
    - Dst: fu_struct_efi_volume_set_guid
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:412,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:413,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:413,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:414,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:417,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:418,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:420,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:421,1
    - Dst: fu_struct_efi_volume_set_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:424,1
    - Dst: fu_struct_efi_volume_set_attrs
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:425,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:427,1
    - Dst: fu_struct_efi_volume_set_hdr_len
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:428,1
    - Dst: fu_chunk_array_new_virtual
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:431,1
    - Dst: fu_struct_efi_volume_block_map_set_num_blocks
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:435,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:435,1
    - Dst: fu_struct_efi_volume_block_map_set_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:436,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:437,1
    - Dst: fu_struct_efi_volume_block_map_set_num_blocks
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:438,1
    - Dst: fu_struct_efi_volume_block_map_set_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:439,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:440,1
    - Dst: fu_struct_efi_volume_set_checksum
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:443,1
    - Dst: fu_sum16w
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:445,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:448,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:449,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:452,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 59
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 453
    functionName: fu_efi_volume_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-volume.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_struct_efi_volume_set_guid
    - fu_struct_efi_volume_set_hdr_len
    - fu_struct_efi_volume_new
    - fu_firmware_get_size
    - fu_struct_efi_volume_set_length
    - g_ptr_array_index
    - fu_struct_efi_volume_set_attrs
    - fu_firmware_get_id
    - fu_byte_array_append_bytes
    - g_debug
    - g_set_error_literal
    - fwupd_guid_from_string
    - g_prefix_error_literal
    - fu_struct_efi_volume_set_checksum
    - fu_firmware_get_images
    - g_byte_array_new
    - fu_struct_efi_volume_block_map_set_num_blocks
    - fu_struct_efi_volume_block_map_set_length
    - fu_common_align_up
    - GET_PRIVATE
    - fu_chunk_array_new_virtual
    - g_byte_array_free_to_bytes
    - fu_chunk_array_length
    - fu_byte_array_append_array
    - fu_struct_efi_volume_block_map_new
    - fu_firmware_get_bytes_with_patches
    - g_set_error
    - g_steal_pointer
    - fu_firmware_get_alignment
    - g_bytes_get_size
    - FU_EFI_VOLUME
    - fu_sum16w
    - g_autoptr
    - fu_byte_array_set_size
    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:458,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:461,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:461,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:462,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:462,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:464,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:464,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:465,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:465,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:467,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:467,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:468,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:468,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:469,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:469,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:470,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 471
    functionName: fu_efi_volume_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-volume.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_set_size_max
    - GET_PRIVATE
    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:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiVolumeClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 481
    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:493,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-volume.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 494
    functionName: fu_efi_volume_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-volume.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_efi_volume_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:18,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:20,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:21,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:22,1
    - Dst: fu_temporary_directory_get_path
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:24,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:25,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:26,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:26,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:27,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:27,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:29,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:30,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:31,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:32,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:32,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:33,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 34
    functionName: fu_temporary_directory_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_clear_object
    - fu_temporary_directory_get_path
    - g_assert_nonnull
    - g_assert_no_error
    - fu_temporary_directory_build
    - g_file_test
    - g_strstr_len
    - g_assert_false
    - g_assert_true
    - fu_temporary_directory_new
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_temporary_directory_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:39,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:40,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c
    functionUses: 3
    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: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:19,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:20,1
    - Dst: fu_efi_x509_signature_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:21,1
    - Dst: fu_efi_x509_device_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:22,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:24,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:24,1
    - Dst: fu_efi_x509_signature_set_issuer
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:25,1
    - Dst: fu_efi_x509_signature_set_subject
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:26,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:29,1
    - Dst: fu_efi_x509_signature_get_issuer
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:29,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:32,1
    - Dst: fu_efi_x509_signature_get_subject
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:32,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:35,1
    - Dst: fu_efi_x509_signature_get_subject_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:35,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:36,1
    - Dst: fu_efi_x509_signature_get_subject_vendor
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:36,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:37,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:37,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:37,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:38,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:38,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:38,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:41,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:41,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:42,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:43,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:44,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:44,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:44,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:45,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:45,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:45,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:46,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:46,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:46,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:47,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:47,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:47,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:48,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:48,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:48,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:51,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:52,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 55
    functionName: fu_efi_x509_signature_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-test.c
    functionUses: 0
    functionsReached:
    - fu_device_has_instance_id
    - fu_context_new_full
    - fu_device_get_name
    - fu_efi_x509_signature_set_subject
    - fu_efi_x509_signature_get_subject
    - fu_device_probe
    - fu_device_get_version_raw
    - fu_efi_x509_signature_get_issuer
    - fu_efi_x509_signature_set_issuer
    - g_assert_cmpint
    - fu_device_get_vendor
    - g_assert_true
    - FU_FIRMWARE
    - fu_efi_x509_signature_get_subject_name
    - FU_DEVICE
    - fu_efi_x509_signature_new
    - fu_firmware_get_version_raw
    - fu_firmware_set_id
    - g_assert_no_error
    - fu_efi_x509_device_new
    - fu_device_get_version
    - fu_efi_x509_signature_get_subject_vendor
    - fu_firmware_get_version
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_efi_x509_signature_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:66,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:66,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:67,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:69,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:72,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:73,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:74,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:77,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:78,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:79,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:80,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:81,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:82,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:85,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:88,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:89,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:90,1
    - Dst: fu_efi_x509_signature_get_issuer
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:92,1
    - Dst: FU_EFI_X509_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:92,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:93,1
    - Dst: fu_efi_x509_signature_get_subject
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:95,1
    - Dst: FU_EFI_X509_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:95,1
    - Dst: fu_efi_variable_authentication2_get_signers
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:99,1
    - Dst: FU_EFI_VARIABLE_AUTHENTICATION2
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:99,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:100,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:101,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:103,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:104,1
    - Dst: fu_x509_certificate_get_issuer
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:106,1
    - Dst: FU_X509_CERTIFICATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:106,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:107,1
    - Dst: fu_x509_certificate_get_subject
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:109,1
    - Dst: FU_X509_CERTIFICATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 110
    functionName: fu_efi_variable_authentication2_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_parse_file
    - g_assert_nonnull
    - fu_firmware_to_string
    - fu_firmware_get_image_by_id
    - g_object_new
    - fu_efi_x509_signature_get_subject
    - FU_EFI_VARIABLE_AUTHENTICATION2
    - g_ptr_array_index
    - g_debug
    - fu_efi_x509_signature_get_issuer
    - g_assert_cmpint
    - fu_efi_variable_authentication2_get_signers
    - g_file_new_for_path
    - fu_x509_certificate_get_issuer
    - FU_EFI_X509_SIGNATURE
    - fu_x509_certificate_get_subject
    - FU_X509_CERTIFICATE
    - g_assert_no_error
    - g_file_test
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_efi_variable_authentication2_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:118,1
    - Dst: fu_efi_x509_signature_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:119,1
    - Dst: fu_efi_x509_signature_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:119,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:120,1
    - Dst: fu_efi_x509_signature_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:121,1
    - Dst: fu_efi_signature_list_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:122,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:123,1
    - Dst: fu_efi_x509_signature_set_subject
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:125,1
    - Dst: fu_efi_x509_signature_set_subject
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:126,1
    - Dst: fu_efi_x509_signature_set_subject
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:127,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:130,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:130,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:131,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:132,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:133,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:133,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:134,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:135,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:136,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:136,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:137,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:138,1
    - Dst: fu_efi_signature_list_get_newest
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:141,1
    - Dst: FU_EFI_SIGNATURE_LIST
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:141,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:142,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:143,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:144,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:144,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 145
    functionName: fu_efi_signature_list_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_raw
    - g_assert_true
    - fu_firmware_add_image
    - FU_FIRMWARE
    - g_assert_no_error
    - g_assert_cmpint
    - fu_efi_signature_list_get_newest
    - FU_EFI_SIGNATURE_LIST
    - fu_efi_x509_signature_set_subject
    - fu_efi_signature_list_new
    - fu_efi_x509_signature_new
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_efi_signature_list_func(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:155,1
    - Dst: fu_efi_lz77_decompressor_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:155,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:156,1
    - Dst: fu_efi_lz77_decompressor_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:156,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:157,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:158,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:159,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:160,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:161,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:163,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:164,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:165,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:168,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:169,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:170,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:171,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:171,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:172,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:177,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:178,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:179,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:180,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:181,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:182,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:182,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:183,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:184,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:186,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:187,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:188,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:191,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:192,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:193,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:194,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:194,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:195,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:200,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:201,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:202,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:203,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:204,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:205,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:205,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:206,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 208
    functionName: fu_efi_lz77_decompressor_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-test.c
    functionUses: 0
    functionsReached:
    - fu_bytes_get_contents
    - fu_firmware_get_bytes
    - fu_efi_lz77_decompressor_new
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - g_file_test
    - fu_firmware_parse_bytes
    - g_bytes_get_size
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - g_compute_checksum_for_bytes
    linkageType: ''
    returnType: void
    signature: void fu_efi_lz77_decompressor_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:216,1
    - Dst: fu_efi_device_path_list_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:216,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:217,1
    - Dst: fu_efi_load_option_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:217,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:218,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:219,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:221,1
    - Dst: fu_efi_load_option_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:221,1
    - Dst: fu_efi_load_option_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:222,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:223,1
    - Dst: fu_efi_load_option_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:223,1
    - Dst: fu_efi_load_option_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:225,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:226,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:227,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:229,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:229,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:230,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:230,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:230,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:231,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:232,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:233,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:233,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:234,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:235,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:236,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 238
    functionName: fu_efi_load_option_path_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_firmware_set_id
    - fu_firmware_add_image
    - g_assert_cmpstr
    - FU_FIRMWARE
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fu_bytes_to_string
    - fu_efi_load_option_set_metadata
    - fu_efi_load_option_new
    - fu_efi_load_option_get_kind
    - fu_efi_device_path_list_new
    - g_assert_true
    - fu_efi_load_option_get_metadata
    - 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-efi-test.c:245,1
    - Dst: fu_efi_device_path_list_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:245,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:246,1
    - Dst: fu_efi_load_option_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:246,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:247,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:248,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:250,1
    - Dst: fu_efi_load_option_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:250,1
    - Dst: fu_efi_load_option_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:251,1
    - Dst: fu_efi_load_option_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:252,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:253,1
    - Dst: fu_efi_load_option_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:253,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:255,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:255,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:256,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:256,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:256,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:257,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:258,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:259,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:259,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:260,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:261,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:262,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:262,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:263,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 271
    functionName: fu_efi_load_option_hive_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_firmware_set_id
    - fu_firmware_add_image
    - FU_FIRMWARE
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fu_bytes_to_string
    - fu_efi_load_option_set_metadata
    - fu_efi_load_option_new
    - fu_efi_load_option_get_kind
    - fu_efi_device_path_list_new
    - g_assert_true
    - g_bytes_get_size
    - g_assert_cmpstr
    - 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-efi-test.c:276,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:276,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:277,1
    - Dst: fu_path_store_load_defaults
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:280,1
    - Dst: fu_efivars_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:281,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:289,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:290,1
    - Dst: fu_efivars_get_boot_entry
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:291,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:292,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:296,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:299,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:299,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:300,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:301,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:301,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:302,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 305
    functionName: fu_efi_load_option_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_efivars_new
    - g_debug
    - FU_FIRMWARE
    - g_assert_nonnull
    - g_assert_no_error
    - fu_firmware_to_string
    - fu_efivars_get_boot_entry
    - g_autoptr
    - fu_path_store_load_defaults
    - fu_path_store_new
    linkageType: ''
    returnType: void
    signature: void fu_efi_load_option_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:310,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:311,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:312,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:313,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:314,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:315,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:316,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:318,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:321,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-efi-test.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 323
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:21,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:24,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:25,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:26,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:27,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:28,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:29,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:30,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:31,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:31,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:35,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:36,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:37,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:38,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:39,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 50
    functionName: fu_ihex_firmware_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_strndup
    - fu_firmware_get_bytes
    - g_bytes_get_data
    - g_assert_nonnull
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - g_assert_cmpint
    - g_bytes_get_size
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_ihex_firmware_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:59,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:61,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:64,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:65,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:66,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:67,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:68,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:69,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:70,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:71,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:71,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:74,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:75,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:76,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:77,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:78,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:79,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:80,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 81
    functionName: fu_ihex_firmware_signed_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_bytes
    - g_bytes_get_data
    - fu_firmware_get_image_by_id_bytes
    - g_assert_nonnull
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - g_assert_cmpint
    - memcmp
    - g_bytes_get_size
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_ihex_firmware_signed_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:90,1
    - Dst: fu_ihex_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:91,1
    - Dst: fu_ihex_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:92,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:95,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:98,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:99,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:100,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:101,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:102,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:103,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:104,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:105,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:106,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:113,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:118,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:119,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:120,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:120,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:121,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:122,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:123,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:124,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 125
    functionName: fu_ihex_firmware_offset_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_addr
    - fu_firmware_write
    - g_strndup
    - fu_firmware_get_bytes
    - g_bytes_get_data
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fu_firmware_get_addr
    - fu_firmware_set_bytes
    - fu_firmware_parse_bytes
    - fu_ihex_firmware_new
    - g_bytes_get_size
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - g_bytes_new_static
    linkageType: ''
    returnType: void
    signature: void fu_ihex_firmware_offset_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:130,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:131,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:132,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:133,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:134,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:135,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_type_ensure
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:40,1
    - Dst: FU_IS_TEMPORARY_DIRECTORY
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTemporaryDirectory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: fu_temporary_directory_get_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-temporary-directory.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_TEMPORARY_DIRECTORY
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_temporary_directory_get_path(FuTemporaryDirectory *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:59,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:59,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:61,1
    - Dst: g_dir_make_tmp
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:62,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:64,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - prefix
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 68
    functionName: fu_temporary_directory_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-temporary-directory.c
    functionUses: 23
    functionsReached:
    - g_dir_make_tmp
    - g_steal_pointer
    - fwupd_error_convert
    - g_strdup_printf
    - g_object_new
    - g_autoptr
    linkageType: ''
    returnType: FuTemporaryDirectory
    signature: 'FuTemporaryDirectory *

      fu_temporary_directory_new(const gchar *prefix, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:87,1
    - Dst: FU_IS_TEMPORARY_DIRECTORY
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:87,1
    - Dst: va_start
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:89,1
    - Dst: g_build_filename_valist
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:90,1
    - Dst: va_end
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTemporaryDirectory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: fu_temporary_directory_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-temporary-directory.c
    functionUses: 15
    functionsReached:
    - g_return_val_if_fail
    - va_end
    - FU_IS_TEMPORARY_DIRECTORY
    - g_build_filename_valist
    - va_start
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_temporary_directory_build(FuTemporaryDirectory *self, ...)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_TEMPORARY_DIRECTORY
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:101,1
    - Dst: fu_path_rmtree
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:102,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:103,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:104,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: fu_temporary_directory_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-temporary-directory.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_warning
    - g_free
    - FU_TEMPORARY_DIRECTORY
    - g_autoptr
    - fu_path_rmtree
    linkageType: ''
    returnType: void
    signature: void fu_temporary_directory_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-temporary-directory.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTemporaryDirectoryClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: fu_temporary_directory_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-temporary-directory.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_temporary_directory_class_init(FuTemporaryDirectoryClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTemporaryDirectory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: fu_temporary_directory_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-temporary-directory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_temporary_directory_init(FuTemporaryDirectory *self)
  - 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: 562
    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:
    - FU_BLOCK_PARTITION
    - fwupd_codec_string_append
    - GET_PRIVATE
    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:68,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:71,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:74,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - fs_uuid
    - fs_uuidlen
    argTypes:
    - FuBlockPartition*
    - gchar*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 76
    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:81,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:84,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:87,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - fs_label
    - fs_labellen
    argTypes:
    - FuBlockPartition*
    - gchar*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 89
    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:
    - device
    - 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:
    - g_strdup
    - fu_block_partition_get_fs_label
    - fu_block_partition_get_fs_uuid
    - g_return_if_fail
    - fu_block_partition_get_fs_type
    - FU_BLOCK_PARTITION
    - FU_IS_BLOCK_PARTITION
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_block_partition_incorporate(FuDevice *device, 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
    - FU_IS_BLOCK_PARTITION
    - GET_PRIVATE
    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
    - FU_IS_BLOCK_PARTITION
    - GET_PRIVATE
    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
    - FU_IS_BLOCK_PARTITION
    - GET_PRIVATE
    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_context_has_flag
    - fu_volume_new_by_device
    - fu_device_load_event
    - fu_device_get_context
    - g_strdup_printf
    - fu_device_event_get_str
    - g_set_error_literal
    - fu_device_save_event
    - fu_device_has_flag
    - fu_device_event_set_str
    - fu_volume_get_mount_point
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_udev_device_get_device_file
    - g_return_val_if_fail
    - g_strdup
    - g_steal_pointer
    - FU_IS_BLOCK_PARTITION
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_block_partition_get_mount_point(FuBlockPartition *self, GError **error)'
  - BBCount: 20
    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:251,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:255,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:255,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:256,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:256,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:256,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:258,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:259,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:259,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:263,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:263,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:264,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:264,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:267,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:267,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:268,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:268,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:269,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:269,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:275,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:275,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:279,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:284,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:284,1
    - Dst: fu_block_partition_set_fs_label
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:285,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:286,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:286,1
    - Dst: fu_block_partition_set_fs_uuid
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:287,1
    - Dst: blkid_new_probe
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:291,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:293,1
    - Dst: blkid_probe_set_superblocks_flags
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:303,1
    - Dst: blkid_probe_set_device
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:304,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:304,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:306,1
    - Dst: blkid_do_safeprobe
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:313,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:315,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:322,1
    - Dst: blkid_probe_numof_values
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:323,1
    - Dst: blkid_probe_get_value
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:326,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:327,1
    - Dst: blkid_probe_lookup_value
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:332,1
    - Dst: fu_block_partition_set_fs_type
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:333,1
    - Dst: blkid_probe_lookup_value
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:334,1
    - Dst: fu_block_partition_set_fs_uuid
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:335,1
    - Dst: blkid_probe_lookup_value
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:336,1
    - Dst: fu_block_partition_set_fs_label
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:337,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:339,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:349,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:351,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:353,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 357
    functionName: fu_block_partition_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-partition.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - blkid_new_probe
    - blkid_probe_set_superblocks_flags
    - fu_device_get_context
    - g_strdup_printf
    - g_auto
    - fu_device_event_get_str
    - g_debug
    - fu_block_partition_set_fs_uuid
    - blkid_probe_lookup_value
    - g_set_error_literal
    - g_log_get_debug_enabled
    - fu_udev_device_get_io_channel
    - fu_device_has_flag
    - fu_device_save_event
    - fu_block_partition_set_fs_type
    - GET_PRIVATE
    - fu_device_event_set_str
    - FU_DEVICE
    - FU_BLOCK_PARTITION
    - blkid_probe_set_device
    - fu_udev_device_read_property
    - FU_UDEV_DEVICE
    - fu_udev_device_get_device_file
    - g_strdup
    - blkid_probe_numof_values
    - g_set_error
    - blkid_do_safeprobe
    - fu_io_channel_unix_get_fd
    - blkid_probe_get_value
    - fu_block_partition_set_fs_label
    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:362,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:363,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:365,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:366,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:367,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 370
    functionName: fu_block_partition_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-partition.c
    functionUses: 0
    functionsReached:
    - FU_BLOCK_PARTITION
    - g_free
    - G_OBJECT_CLASS
    - GET_PRIVATE
    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:375,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:375,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:376,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBlockPartition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: fu_block_partition_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-partition.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_DEVICE
    - fu_udev_device_add_open_flag
    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:382,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-block-partition.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBlockPartitionClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 389
    functionName: fu_block_partition_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-partition.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_block_partition_class_init(FuBlockPartitionClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:16,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:16,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:17,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:17,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:18,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:18,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:19,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:19,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:20,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:20,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:21,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 22
    functionName: fu_common_align_up_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-test.c
    functionUses: 0
    functionsReached:
    - fu_common_align_up
    - g_assert_cmpint
    linkageType: ''
    returnType: void
    signature: void fu_common_align_up_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:27,1
    - Dst: fu_size_checked_add
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:27,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:28,1
    - Dst: fu_size_checked_add
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:28,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:29,1
    - Dst: fu_size_checked_add
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:29,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:30,1
    - Dst: fu_size_checked_add
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:30,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:31,1
    - Dst: fu_size_checked_add
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:31,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:32,1
    - Dst: fu_size_checked_add
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: fu_common_checked_add_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-test.c
    functionUses: 0
    functionsReached:
    - fu_size_checked_add
    - g_assert_cmpint
    linkageType: ''
    returnType: void
    signature: void fu_common_checked_add_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:40,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:42,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:43,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:44,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:45,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:47,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:48,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:49,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:50,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:53,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:54,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:55,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:56,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:59,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:60,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:61,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 63
    functionName: fu_common_checked_inc_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-test.c
    functionUses: 0
    functionsReached:
    - g_assert_error
    - g_assert_no_error
    - g_assert_cmpint
    - g_assert_false
    - g_assert_true
    - fu_size_checked_inc
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_common_checked_inc_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:70,1
    - Dst: fu_size_checked_inc_product
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:72,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:73,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:74,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:75,1
    - Dst: fu_size_checked_inc_product
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:77,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:78,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:79,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:80,1
    - Dst: fu_size_checked_inc_product
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:82,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:83,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:84,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:85,1
    - Dst: fu_size_checked_inc_product
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:87,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:88,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:89,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 91
    functionName: fu_common_checked_inc_product_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-test.c
    functionUses: 0
    functionsReached:
    - g_assert_error
    - g_assert_no_error
    - g_assert_cmpint
    - g_assert_false
    - g_assert_true
    - g_autoptr
    - fu_size_checked_inc_product
    linkageType: ''
    returnType: void
    signature: void fu_common_checked_inc_product_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:103,1
    - Dst: fu_error_map_entry_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:105,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:105,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:106,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:107,1
    - Dst: fu_error_map_entry_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:108,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:108,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:109,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:110,1
    - Dst: fu_error_map_entry_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:111,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:111,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:112,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 114
    functionName: fu_common_error_map_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-test.c
    functionUses: 0
    functionsReached:
    - g_assert_error
    - g_assert_no_error
    - fu_error_map_entry_to_gerror
    - g_assert_false
    - G_N_ELEMENTS
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_common_error_map_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:121,1
    - Dst: FU_BIT_IS_CLEAR
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:121,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:122,1
    - Dst: FU_BIT_IS_CLEAR
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:122,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:123,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:123,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:124,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:124,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:126,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:127,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:128,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:128,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:129,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:129,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:130,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:132,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:133,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:134,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 136
    functionName: fu_common_bitwise_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-test.c
    functionUses: 0
    functionsReached:
    - FU_BIT_IS_SET
    - FU_BIT_SET
    - g_assert_cmpint
    - g_assert_false
    - FU_BIT_CLEAR
    - g_assert_true
    - FU_BIT_IS_CLEAR
    linkageType: ''
    returnType: void
    signature: void fu_common_bitwise_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:143,1
    - Dst: fu_crc8
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:143,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:144,1
    - Dst: fu_crc16
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:144,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:145,1
    - Dst: fu_crc_misr16
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:145,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:146,1
    - Dst: fu_crc_misr16
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:146,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:149,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:149,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:150,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:150,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:151,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:151,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:152,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:152,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:153,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:153,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:154,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:154,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:155,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:155,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:156,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:156,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:157,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:157,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:158,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 159
    functionName: fu_common_crc_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-test.c
    functionUses: 0
    functionsReached:
    - fu_crc32
    - fu_crc16
    - fu_crc_misr16
    - g_assert_cmpint
    - fu_crc8
    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-common-test.c:167,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:168,1
    - Dst: fu_common_guid_is_plausible
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:171,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:172,1
    - Dst: fu_common_guid_is_plausible
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:176,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 178
    functionName: fu_common_guid_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - g_assert_false
    - fu_common_guid_is_plausible
    linkageType: ''
    returnType: void
    signature: void fu_common_guid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:185,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:185,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:186,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:189,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:194,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:195,1
    - Dst: fu_common_get_olson_timezone_id
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:197,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:198,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:201,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 205
    functionName: fu_common_olson_timezone_id_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-test.c
    functionUses: 0
    functionsReached:
    - fu_path_store_set_path
    - g_assert_nonnull
    - g_assert_no_error
    - g_test_skip
    - fu_common_get_olson_timezone_id
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - fu_path_store_new
    linkageType: ''
    returnType: void
    signature: void fu_common_olson_timezone_id_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:210,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:211,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:212,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:213,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:215,1
    - Dst: fu_cpu_get_attrs
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:216,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:217,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:218,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:219,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:219,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:220,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 221
    functionName: fu_cpuid_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-test.c
    functionUses: 0
    functionsReached:
    - fu_path_store_set_path
    - g_hash_table_lookup
    - g_assert_nonnull
    - g_assert_no_error
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - fu_cpu_get_attrs
    - fu_path_store_new
    linkageType: ''
    returnType: void
    signature: void fu_cpuid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:226,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:227,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:228,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:229,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:230,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:231,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:232,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:233,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:234,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:235,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:236,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-common-test.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 238
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-test.c
    functionUses: 3
    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_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c:20,1
    - Dst: fu_usb_base_hdr_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c:23,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c:26,1
    - Dst: fu_usb_base_hdr_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c:26,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c:27,1
    - Dst: fu_usb_base_hdr_get_descriptor_type
      Src: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 31
    functionName: fu_usb_descriptor_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c
    functionUses: 0
    functionsReached:
    - fu_usb_base_hdr_parse_stream
    - fu_usb_base_hdr_get_descriptor_type
    - fu_firmware_set_idx
    - fu_usb_base_hdr_get_length
    - g_autoptr
    - fu_firmware_set_size
    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:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbDescriptorClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    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:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c:43,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: fu_usb_descriptor_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_usb_descriptor_init(FuUsbDescriptor *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:17,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:20,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:22,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:23,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:24,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:25,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:26,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:27,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:28,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:28,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:30,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:31,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:32,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:32,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:34,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:35,1
    - Dst: fu_byte_array_from_string
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:37,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:38,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:39,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:40,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:41,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:41,1
    - Dst: fu_byte_array_from_string
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:43,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:44,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 46
    functionName: fu_byte_array_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-byte-array-test.c
    functionUses: 0
    functionsReached:
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - memcmp
    - fu_byte_array_to_string
    - fu_byte_array_from_string
    - g_assert_cmpstr
    - g_autoptr
    - g_assert_null
    - fu_byte_array_set_size
    linkageType: ''
    returnType: void
    signature: void fu_byte_array_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:53,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:53,1
    - Dst: fu_byte_array_append_safe
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:57,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:58,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:59,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:60,1
    - Dst: fu_byte_array_append_safe
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:63,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:64,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:65,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:66,1
    - Dst: fu_byte_array_append_safe
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:69,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:70,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 72
    functionName: fu_byte_array_safe_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-byte-array-test.c
    functionUses: 0
    functionsReached:
    - g_assert_error
    - g_assert_no_error
    - fu_byte_array_append_safe
    - g_assert_cmpint
    - g_byte_array_new
    - g_assert_false
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_byte_array_safe_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:77,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:78,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:79,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-byte-array-test.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-byte-array-test.c
    functionUses: 3
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_test_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:38,1
    - Dst: fu_path_store_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:40,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:47,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:49,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:53,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:55,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - pstore
    argTypes:
    - FuPathStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 62
    functionName: fu_kernel_locked_down
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_file_get_contents
    - g_file_test
    - g_strsplit
    - g_auto
    - fu_path_store_build_filename
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kernel_locked_down(FuPathStore *pstore)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:79,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:80,1
    - Dst: uname
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:82,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:83,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:89,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:91,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - minimum_kernel
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 108
    functionName: fu_kernel_check_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    - uname
    - g_set_error_literal
    - fu_version_compare
    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:118,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:127,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:128,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:129,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:136,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:138,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:138,1
    - Dst: g_ref_string_acquire
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:138,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:140,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:140,1
    - Dst: g_ref_string_new
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - token
    - token_idx
    - user_data
    - error
    argTypes:
    - GString*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 143
    functionName: fu_kernel_parse_config_line_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - g_set_error
    - g_hash_table_lookup
    - g_ref_string_new
    - g_strsplit
    - g_strv_length
    - g_auto
    - g_ref_string_acquire
    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:159,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:159,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:163,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:163,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:170,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:171,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:175,1
    - Dst: g_ref_string_new
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:177,1
    - Dst: fu_strsplit_full
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:179,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - buf
    - bufsz
    - error
    argTypes:
    - gchar*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 182
    functionName: fu_kernel_parse_config
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_hash_table_insert
    - g_steal_pointer
    - fu_strsplit_full
    - g_hash_table_new_full
    - g_ref_string_new
    - g_autoptr
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_kernel_parse_config(const gchar *buf, gsize bufsz, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:192,1
    - Dst: uname
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:193,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:194,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:200,1
    - Dst: fu_path_store_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:201,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - pstore
    - error
    argTypes:
    - FuPathStore*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 213
    functionName: fu_kernel_get_config_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - uname
    - g_set_error_literal
    - g_strdup_printf
    - memset
    - fu_path_store_build_filename
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_kernel_get_config_path(FuPathStore *pstore, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:236,1
    - Dst: FU_IS_PATH_STORE
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:236,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:237,1
    - Dst: fu_path_store_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:241,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:242,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:243,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:244,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:245,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:245,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:246,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:247,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:249,1
    - Dst: g_file_read
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:249,1
    - Dst: G_CONVERTER
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:252,1
    - Dst: g_zlib_decompressor_new
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:252,1
    - Dst: g_converter_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:253,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:254,1
    - Dst: fu_kernel_parse_config
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:257,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:257,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:258,1
    - Dst: fu_kernel_get_config_path
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:263,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:266,1
    - Dst: fu_kernel_parse_config
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:268,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:270,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - pstore
    - error
    argTypes:
    - FuPathStore*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 276
    functionName: fu_kernel_get_config
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_input_stream_read_bytes
    - g_zlib_decompressor_new
    - g_bytes_get_data
    - g_file_read
    - g_file_get_contents
    - g_set_error_literal
    - g_file_test
    - G_CONVERTER
    - fu_kernel_parse_config
    - G_INPUT_STREAM
    - g_bytes_get_size
    - fu_kernel_get_config_path
    - g_file_new_for_path
    - fu_path_store_build_filename
    - g_converter_input_stream_new
    - g_autoptr
    - FU_IS_PATH_STORE
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_kernel_get_config(FuPathStore *pstore, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:293,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:294,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:294,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:296,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:298,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:300,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:303,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:303,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:304,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:304,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:304,1
    - Dst: g_string_set_size
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:305,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:312,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:315,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:315,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:316,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:316,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:316,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:320,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - gchar*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 321
    functionName: fu_kernel_parse_cmdline
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_hash_table_insert
    - g_string_set_size
    - g_steal_pointer
    - g_hash_table_new_full
    - g_string_append_c
    - g_strsplit
    - g_string_new
    - g_auto
    - g_autoptr
    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:340,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:342,1
    - Dst: fu_kernel_parse_cmdline
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:344,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 352
    functionName: fu_kernel_get_cmdline
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - g_file_get_contents
    - fu_kernel_parse_cmdline
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_kernel_get_cmdline(GError **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:358,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:358,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:360,1
    - Dst: FU_IS_PATH_STORE
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:360,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:361,1
    - Dst: fu_path_find_program
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:364,1
    - Dst: fu_path_store_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:369,1
    - Dst: fu_path_store_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:378,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:382,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:382,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:383,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:384,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:386,1
    - Dst: g_file_query_info
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:388,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:394,1
    - Dst: g_file_info_get_attribute_boolean
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:399,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:400,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - pstore
    - error
    argTypes:
    - FuPathStore*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 411
    functionName: fu_kernel_check_cmdline_mutable
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_new0
    - g_set_error
    - fu_path_find_program
    - g_file_info_get_attribute_boolean
    - g_file_query_exists
    - g_file_query_info
    - g_warning
    - g_file_new_for_path
    - g_auto
    - fu_path_store_build_filename
    - g_autoptr
    - FU_IS_PATH_STORE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kernel_check_cmdline_mutable(FuPathStore *pstore, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_find_program
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:421,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:423,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:427,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:429,1
    - Dst: g_spawn_sync
      Src: /src/fwupd/libfwupdplugin/fu-kernel.c:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - arg
    - enable
    - error
    argTypes:
    - gchar*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 443
    functionName: fu_kernel_set_commandline
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_path_find_program
    - g_prefix_error_literal
    - 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:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arg
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 460
    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:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arg
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 477
    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: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 572
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINEAR_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:40,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:41,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:42,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: fu_linear_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 0
    functionsReached:
    - g_type_name
    - fu_xmlb_builder_insert_kv
    - FU_LINEAR_FIRMWARE
    - GET_PRIVATE
    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:58,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:59,1
    - Dst: FU_IS_LINEAR_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLinearFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: fu_linear_firmware_get_image_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_LINEAR_FIRMWARE
    - 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:66,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:67,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:71,1
    - Dst: g_type_from_name
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:73,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:75,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 87
    functionName: fu_linear_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - g_set_error
    - fu_firmware_add_image_gtype
    - GET_PRIVATE
    - FU_LINEAR_FIRMWARE
    - g_type_from_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linear_firmware_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINEAR_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:95,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:96,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:103,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:103,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:104,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:106,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:108,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:111,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:116,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:119,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:120,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:122,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:123,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:131,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:131,1
    - Dst: fu_firmware_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:135,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:140,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 144
    functionName: fu_linear_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 0
    functionsReached:
    - fu_partial_input_stream_new
    - fu_firmware_add_image
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - g_set_error_literal
    - g_prefix_error_literal
    - g_prefix_error
    - fu_firmware_set_offset
    - g_object_new
    - fu_firmware_get_size
    - fu_firmware_has_flag
    - fu_size_checked_inc
    - g_autoptr
    - FU_LINEAR_FIRMWARE
    - fu_firmware_set_size
    - GET_PRIVATE
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:149,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:150,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:150,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:154,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:155,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:157,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:158,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:159,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:162,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 167
    functionName: fu_linear_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_byte_array_append_bytes
    - g_steal_pointer
    - fu_firmware_get_images
    - fu_firmware_set_offset
    - g_byte_array_new
    - fu_firmware_add_flag
    - g_autoptr
    - g_ptr_array_index
    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:172,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:173,1
    - Dst: g_value_set_gtype
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:176,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:179,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: 182
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 182
    functionName: fu_linear_firmware_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 0
    functionsReached:
    - g_value_set_gtype
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_LINEAR_FIRMWARE
    - GET_PRIVATE
    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:190,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:191,1
    - Dst: g_value_get_gtype
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:194,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:195,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:195,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:198,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: 201
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 201
    functionName: fu_linear_firmware_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - g_value_get_gtype
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_LINEAR_FIRMWARE
    - GET_PRIVATE
    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:206,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:206,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:207,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:207,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:208,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLinearFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: fu_linear_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:214,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:215,1
    - Dst: g_param_spec_gtype
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:233,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-linear-firmware.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLinearFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 239
    functionName: fu_linear_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linear-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_gtype
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    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:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - image_gtype
    argTypes:
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 253
    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: 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: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: fu_backend_emulate_count_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend-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-backend-test.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:33,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:34,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:35,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:36,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:70,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:78,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:78,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:80,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:82,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:82,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:84,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:86,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:86,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:88,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:92,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:92,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:93,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:94,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:95,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:96,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:97,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:100,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:101,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:102,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:103,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:103,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:106,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:111,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:111,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:112,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:113,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:114,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:115,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:120,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:121,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:122,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:127,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:128,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:129,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:132,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:132,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:133,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:134,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:135,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:136,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:137,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:138,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:139,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:140,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:141,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:141,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:144,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:144,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:145,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:146,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:147,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:148,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:149,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:150,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:151,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:152,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:155,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:156,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:156,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:157,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:158,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:159,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:160,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:161,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:162,1
    - Dst: fu_device_set_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:165,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:166,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:167,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:168,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:171,1
    - Dst: fu_device_check_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:171,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:172,1
    - Dst: fu_device_check_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 173
    functionName: fu_backend_emulate_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_context_new
    - FWUPD_CODEC
    - fu_backend_lookup_by_id
    - g_assert_nonnull
    - g_object_new
    - g_signal_connect
    - fu_ioctl_execute
    - g_debug
    - fu_device_set_fwupd_version
    - fu_test_compare_lines
    - g_assert_cmpint
    - fu_device_has_flag
    - fwupd_codec_from_json_string
    - g_assert_null
    - fu_device_check_fwupd_version
    - g_assert_false
    - FU_UDEV_DEVICE
    - FU_BACKEND
    - fu_device_get_backend_parent_with_subsystem
    - g_assert_error
    - g_assert_no_error
    - fu_udev_device_ioctl_new
    - fwupd_codec_to_json_string
    - G_CALLBACK
    - g_test_skip
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_backend_emulate_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:180,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:180,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:181,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:181,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:182,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:182,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:183,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:183,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:184,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:185,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:188,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:188,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:189,1
    - Dst: fu_backend_get_enabled
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:189,1
    - Dst: fu_backend_setup
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:192,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:193,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:194,1
    - Dst: fu_backend_coldplug
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:195,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:196,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:197,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:200,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:201,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:202,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:203,1
    - Dst: fu_backend_device_changed
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:204,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:205,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:207,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:208,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:209,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:212,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:213,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:216,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:217,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:218,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:219,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:220,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 222
    functionName: fu_backend_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend-test.c
    functionUses: 0
    functionsReached:
    - fu_backend_lookup_by_id
    - fu_backend_setup
    - g_assert_nonnull
    - fu_backend_coldplug
    - g_object_new
    - fu_progress_new
    - fu_backend_device_changed
    - g_ptr_array_index
    - fu_device_new
    - fu_device_set_physical_id
    - g_assert_cmpint
    - fu_backend_device_removed
    - fu_backend_get_devices
    - fu_backend_get_enabled
    - g_assert_null
    - fu_backend_device_added
    - fu_backend_get_name
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_backend_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:227,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:228,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:229,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-backend-test.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend-test.c
    functionUses: 3
    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_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:18,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:19,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:20,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:45,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:50,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:51,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:54,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:55,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:56,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:60,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:61,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:62,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:64,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:64,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:65,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:65,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:66,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:66,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:67,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:67,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:70,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:70,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:71,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:71,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:74,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:74,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:75,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:75,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:76,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:76,1
    - Dst: fu_context_get_hwids
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:80,1
    - Dst: fu_hwids_get_guid
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:81,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:82,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:83,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:86,1
    - Dst: fu_context_has_hwid_guid
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 87
    functionName: fu_hwids_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids-test.c
    functionUses: 0
    functionsReached:
    - fu_context_get_hwids
    - fu_context_set_path
    - g_assert_no_error
    - fu_context_has_hwid_guid
    - g_file_test
    - fu_progress_new
    - fu_context_get_hwid_value
    - fu_context_new_full
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - fu_context_load_hwinfo
    - fu_hwids_get_guid
    linkageType: ''
    returnType: void
    signature: void fu_hwids_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:92,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:93,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:94,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-hwids-test.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - 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:
    - g_bytes_new
    - g_set_error
    - lzma_code
    - g_bytes_get_data
    - g_malloc0
    - lzma_end
    - g_byte_array_new
    - g_bytes_get_size
    - g_byte_array_append
    - g_autoptr
    - lzma_auto_decoder
    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:93,1
    - Dst: lzma_end
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:95,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:96,1
    - Dst: lzma_code
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:106,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:109,1
    - Dst: lzma_end
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:111,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:115,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-lzma-common.c:122,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - blob
    - error
    argTypes:
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 123
    functionName: fu_lzma_compress_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-lzma-common.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - g_set_error
    - lzma_code
    - g_bytes_get_data
    - g_malloc0
    - lzma_end
    - g_byte_array_new
    - g_bytes_get_size
    - g_byte_array_append
    - lzma_easy_encoder
    - g_autoptr
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_lzma_compress_bytes(GBytes *blob, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:20,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:23,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:26,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:31,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:32,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:33,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:34,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:36,1
    - Dst: fu_kernel_search_path_get_current
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:37,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:38,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:39,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:40,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:42,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:43,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:44,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:46,1
    - Dst: fu_kernel_search_path_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:47,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:48,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:49,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:50,1
    - Dst: fu_kernel_search_path_locker_get_path
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:50,1
    - Dst: fu_kernel_search_path_get_current
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:52,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:53,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:54,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:55,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:56,1
    - Dst: fu_kernel_search_path_get_current
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:58,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:59,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:60,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 62
    functionName: fu_kernel_search_path_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c
    functionUses: 0
    functionsReached:
    - g_clear_object
    - fu_kernel_search_path_locker_get_path
    - fu_path_store_set_path
    - fu_kernel_search_path_locker_new
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - fu_temporary_directory_build
    - fu_kernel_search_path_get_current
    - g_clear_error
    - g_test_skip
    - g_assert_true
    - fu_temporary_directory_new
    - g_assert_cmpstr
    - g_autoptr
    - g_assert_null
    - g_file_set_contents
    - fu_path_store_new
    linkageType: ''
    returnType: void
    signature: void fu_kernel_search_path_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:67,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:68,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c
    functionUses: 3
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_test_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    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_json_object_add_boolean
      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_json_object_add_boolean
      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_json_object_add_integer
      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_json_object_add_integer
      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_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:75,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:77,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:79,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:80,1
    - Dst: fu_volume_get_partition_size
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:82,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:83,1
    - Dst: fu_volume_get_partition_offset
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:85,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:86,1
    - Dst: fu_volume_get_partition_number
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:88,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 91
    functionName: fu_volume_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - fu_volume_get_partition_size
    - fu_volume_get_partition_uuid
    - fu_volume_get_partition_kind
    - fu_volume_is_mounted
    - FU_VOLUME
    - fu_volume_get_mount_point
    - fu_volume_get_size
    - fu_volume_get_partition_offset
    - fu_volume_get_partition_number
    - fwupd_json_object_add_integer
    - fwupd_json_object_add_boolean
    - fu_volume_get_partition_name
    - fu_volume_get_block_size
    - fu_volume_is_encrypted
    - fwupd_json_object_add_string
    linkageType: ''
    returnType: void
    signature: void fu_volume_add_json(FwupdCodec *codec, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:96,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:97,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:98,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:99,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:101,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:103,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:105,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: fu_volume_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - FU_VOLUME
    - 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:112,1
    - Dst: g_value_set_string
      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_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:121,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:124,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:127,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: 130
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 130
    functionName: fu_volume_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_value_set_string
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_set_object
    - FU_VOLUME
    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:135,1
    - Dst: g_value_dup_string
      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_value_dup_object
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:144,1
    - Dst: g_value_dup_object
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:147,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:150,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: 153
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 153
    functionName: fu_volume_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_value_dup_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_VOLUME
    - g_value_dup_string
    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:159,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:173,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:178,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:188,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:193,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:203,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:208,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:218,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVolumeClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 224
    functionName: fu_volume_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_string
    - 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: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    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:244,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:244,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:246,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:248,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 252
    functionName: fu_volume_get_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_dbus_proxy_get_object_path
    - 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:267,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:269,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:269,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:273,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 277
    functionName: fu_volume_get_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_variant_get_uint64
    - FU_IS_VOLUME
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    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:292,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:294,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:294,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:298,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 302
    functionName: fu_volume_get_partition_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_variant_get_uint64
    - FU_IS_VOLUME
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    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:317,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:319,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:319,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:323,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 327
    functionName: fu_volume_get_partition_offset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_variant_get_uint64
    - FU_IS_VOLUME
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    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:342,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:344,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:344,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:348,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 352
    functionName: fu_volume_get_partition_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_VOLUME
    - fwupd_variant_get_uint32
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    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:367,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:369,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:369,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:372,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:375,1
    - Dst: g_variant_dup_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 379
    functionName: fu_volume_get_partition_uuid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - FU_IS_VOLUME
    - g_variant_dup_string
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    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:397,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:399,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:399,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:402,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:405,1
    - Dst: g_variant_dup_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 409
    functionName: fu_volume_get_partition_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - FU_IS_VOLUME
    - g_variant_dup_string
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    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:423,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:423,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:424,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:425,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - partition_kind
    argTypes:
    - FuVolume*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 427
    functionName: fu_volume_set_partition_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_return_if_fail
    - FU_IS_VOLUME
    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:441,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:441,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:442,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:443,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - partition_uuid
    argTypes:
    - FuVolume*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 445
    functionName: fu_volume_set_partition_uuid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_return_if_fail
    - FU_IS_VOLUME
    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:461,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:464,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:464,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:468,1
    - Dst: g_variant_dup_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:473,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 477
    functionName: fu_volume_get_partition_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_VOLUME
    - g_steal_pointer
    - g_variant_dup_string
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    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:492,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:494,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:494,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:498,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:501,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 502
    functionName: fu_volume_is_mdraid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FU_IS_VOLUME
    - fwupd_variant_get_string
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    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:512,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:514,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:516,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:517,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:518,1
    - Dst: ioctl
      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_io_error_from_errno
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:525,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:526,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:527,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:530,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:538,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - device_name
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 544
    functionName: fu_volume_get_block_size_from_device_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_io_error_from_errno
    - g_set_error_literal
    - g_open
    - fwupd_error_convert
    - ioctl
    - fwupd_strerror
    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:561,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:563,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:563,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:568,1
    - Dst: g_variant_dup_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:573,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 577
    functionName: fu_volume_get_block_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_VOLUME
    - g_steal_pointer
    - g_variant_dup_string
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    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:592,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:594,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:594,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:597,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:604,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:606,1
    - Dst: fu_volume_get_block_size_from_device_name
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:612,1
    - Dst: g_variant_get_bytestring
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVolume*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 589
    functionDepth: 2
    functionLinenumber: 589
    functionLinenumberEnd: 613
    functionName: fu_volume_get_block_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_VOLUME
    - fu_volume_get_block_size_from_device_name
    - g_variant_get_bytestring
    - g_set_error_literal
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    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:629,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:631,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:631,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:635,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:640,1
    - Dst: g_variant_get_bytestring_array
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:643,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 645
    functionName: fu_volume_get_mount_point
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - FU_IS_VOLUME
    - g_variant_get_bytestring_array
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    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:651,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - fs_free
    argTypes:
    - FuVolume*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 653
    functionName: fu_volume_set_filesystem_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FU_IS_VOLUME
    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:673,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:673,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:674,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:677,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:684,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:684,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:685,1
    - Dst: g_file_query_filesystem_info
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:686,1
    - Dst: g_file_info_get_attribute_uint64
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:692,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:695,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:696,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:697,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - self
    - required
    - error
    argTypes:
    - FuVolume*
    - guint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 707
    functionName: fu_volume_check_free_space
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_VOLUME
    - g_set_error
    - fu_volume_get_mount_point
    - g_format_size
    - g_file_query_filesystem_info
    - g_file_new_for_path
    - g_autoptr
    - g_file_info_get_attribute_uint64
    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:723,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:723,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 726
    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:741,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:743,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:743,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:747,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:750,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:750,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 753
    functionName: fu_volume_is_encrypted
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FU_IS_VOLUME
    - fwupd_variant_get_string
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    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:770,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:771,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:773,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:773,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:774,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:780,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:780,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:781,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:782,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:784,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:790,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:791,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:792,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:798,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:798,1
    - Dst: g_variant_get
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:801,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVolume*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 803
    functionName: fu_volume_mount
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_VOLUME
    - fu_volume_get_id
    - g_debug
    - g_variant_builder_init
    - g_set_error_literal
    - g_steal_pointer
    - g_error_matches
    - g_variant_new
    - g_propagate_error
    - g_dbus_proxy_call_sync
    - g_autoptr
    - g_variant_get
    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:818,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:819,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:819,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:821,1
    - Dst: fwupd_variant_get_boolean
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 826
    functionName: fu_volume_is_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_VOLUME
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    - fwupd_variant_get_boolean
    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:841,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:842,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:842,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:844,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:848,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 849
    functionName: fu_volume_get_id_type
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - FU_IS_VOLUME
    - fwupd_variant_get_string
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    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:866,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:868,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:868,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:869,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:875,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:875,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:876,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:877,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:879,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:886,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVolume*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 888
    functionName: fu_volume_unmount
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_VOLUME
    - fu_volume_get_id
    - g_debug
    - g_variant_builder_init
    - g_variant_new
    - g_dbus_proxy_call_sync
    - g_autoptr
    - g_clear_pointer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_volume_unmount(FuVolume *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:894,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:894,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:895,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:896,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mount_path
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 898
    functionName: fu_volume_new_from_mount_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_steal_pointer
    - g_object_new
    - g_autoptr
    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:934,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - kind
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 939
    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:945,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - symlinks
    - error
    argTypes:
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 956
    functionName: fu_volume_check_block_device_symlinks
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_str_has_prefix
    - g_set_error_literal
    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:961,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:961,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:981,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:982,1
    - Dst: g_string_ascii_up
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:983,1
    - Dst: g_strv_contains
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 985
    functionName: fu_volume_check_is_recovery
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_string_replace
    - g_string_ascii_up
    - g_strv_contains
    - g_string_new
    - 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: 991
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 991
    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:1010,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1011,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1013,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1014,1
    - Dst: fu_common_get_block_devices
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1016,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1019,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1020,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1022,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1026,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1027,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1028,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1029,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1030,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1033,1
    - Dst: g_variant_get_bytestring_array
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1036,1
    - Dst: fu_volume_check_block_device_symlinks
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1037,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1038,1
    - Dst: g_dbus_proxy_new_sync
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1043,1
    - Dst: g_dbus_proxy_get_connection
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1043,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1047,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1052,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1054,1
    - Dst: g_dbus_proxy_new_sync
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1057,1
    - Dst: g_dbus_proxy_get_connection
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1057,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1061,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1066,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1067,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1071,1
    - Dst: fu_volume_is_mdraid
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1080,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1081,1
    - Dst: fu_volume_get_partition_kind
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1084,1
    - Dst: fu_volume_kind_convert_to_gpt
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1090,1
    - Dst: fu_volume_get_id_type
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1091,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1092,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1093,1
    - Dst: fu_volume_is_mdraid
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1094,1
    - Dst: fu_volume_is_internal
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1095,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1097,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1099,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1100,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1101,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1106,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1107,1
    - Dst: fu_volume_get_partition_name
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1108,1
    - Dst: fu_volume_get_block_name
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1111,1
    - Dst: fu_volume_check_is_recovery
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1113,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1114,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1117,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1120,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1120,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1123,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1130,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 71
    argCount: 2
    argNames:
    - kind
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1007
    functionDepth: 2
    functionLinenumber: 1007
    functionLinenumberEnd: 1131
    functionName: fu_volume_new_by_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_variant_get_bytestring_array
    - fu_volume_get_id_type
    - g_object_new
    - fu_common_get_block_devices
    - g_ptr_array_index
    - g_debug
    - fu_volume_get_partition_kind
    - fu_volume_check_block_device_symlinks
    - fu_volume_is_mdraid
    - fu_volume_get_partition_name
    - g_dbus_proxy_get_cached_property
    - g_ptr_array_new_with_free_func
    - g_dbus_proxy_get_connection
    - g_info
    - g_return_val_if_fail
    - g_strdup
    - g_dbus_proxy_get_object_path
    - g_strcmp0
    - fu_volume_get_block_name
    - fu_volume_kind_convert_to_gpt
    - g_set_error
    - g_steal_pointer
    - g_ptr_array_add
    - g_dbus_proxy_new_sync
    - g_prefix_error
    - fu_volume_check_is_recovery
    - g_autoptr
    - fu_volume_is_internal
    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:1147,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1149,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1150,1
    - Dst: fu_common_get_block_devices
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1153,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1157,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1158,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1159,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1162,1
    - Dst: g_variant_get_bytestring
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1162,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1163,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1164,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1165,1
    - Dst: g_dbus_proxy_new_sync
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1166,1
    - Dst: g_dbus_proxy_get_connection
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1166,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1170,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1175,1
    - Dst: g_dbus_proxy_new_sync
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1176,1
    - Dst: g_dbus_proxy_get_connection
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1176,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1180,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1185,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1186,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1198,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1200
    functionName: fu_volume_new_by_device
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_dbus_proxy_get_connection
    - g_strcmp0
    - g_dbus_proxy_get_object_path
    - g_debug
    - g_set_error
    - g_variant_get_bytestring
    - g_dbus_proxy_new_sync
    - g_object_new
    - fu_common_get_block_devices
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    - g_ptr_array_index
    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:1216,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1218,1
    - Dst: fu_common_get_block_devices
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1221,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1225,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1226,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1227,1
    - Dst: fwupd_variant_get_uint64
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1230,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1231,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-volume.c:1236,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - devnum
    - error
    argTypes:
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1238
    functionName: fu_volume_new_by_devnum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fwupd_variant_get_uint64
    - g_set_error
    - g_object_new
    - fu_common_get_block_devices
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    - g_ptr_array_index
    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:40,1
    - Dst: FU_IS_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEdid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: fu_edid_get_pnp_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EDID
    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:56,1
    - Dst: FU_IS_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:56,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:57,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:59,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - pnp_id
    argTypes:
    - FuEdid*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: fu_edid_set_pnp_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FU_IS_EDID
    - g_return_if_fail
    - 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:76,1
    - Dst: FU_IS_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEdid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: fu_edid_get_eisa_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EDID
    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:92,1
    - Dst: FU_IS_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:92,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:93,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:95,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - eisa_id
    argTypes:
    - FuEdid*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: fu_edid_set_eisa_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FU_IS_EDID
    - g_return_if_fail
    - 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:112,1
    - Dst: FU_IS_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEdid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: fu_edid_get_serial_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EDID
    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:129,1
    - Dst: FU_IS_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:129,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:130,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:132,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - serial_number
    argTypes:
    - FuEdid*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: fu_edid_set_serial_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FU_IS_EDID
    - g_return_if_fail
    - 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:149,1
    - Dst: FU_IS_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEdid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: fu_edid_get_product_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EDID
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_edid_get_product_name(FuEdid *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:165,1
    - Dst: FU_IS_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:165,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:166,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:168,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - product_name
    argTypes:
    - FuEdid*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: fu_edid_set_product_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FU_IS_EDID
    - g_return_if_fail
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_edid_set_product_name(FuEdid *self, const gchar *product_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:185,1
    - Dst: FU_IS_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEdid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 187
    functionName: fu_edid_get_product_code
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EDID
    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:201,1
    - Dst: FU_IS_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - product_code
    argTypes:
    - FuEdid*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: fu_edid_set_product_code
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - FU_IS_EDID
    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:209,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:209,1
    - Dst: g_ascii_isprint
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:211,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:213,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:217,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 218
    functionName: fu_edid_strsafe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_string_free
    - g_ascii_isprint
    - g_string_new
    - g_string_append_c
    - 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:225,1
    - Dst: fu_struct_edid_descriptor_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:227,1
    - Dst: fu_struct_edid_descriptor_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:232,1
    - Dst: fu_struct_edid_descriptor_get_subkind
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:233,1
    - Dst: fu_struct_edid_descriptor_get_data
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:236,1
    - Dst: fu_struct_edid_descriptor_get_tag
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:237,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:238,1
    - Dst: fu_edid_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:239,1
    - Dst: fu_struct_edid_descriptor_get_tag
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:240,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:242,1
    - Dst: fu_edid_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:243,1
    - Dst: fu_struct_edid_descriptor_get_tag
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:244,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:246,1
    - Dst: fu_edid_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:247,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - self
    - stream
    - offset
    - error
    argTypes:
    - FuEdid*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 252
    functionName: fu_edid_parse_descriptor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - fu_struct_edid_descriptor_get_subkind
    - fu_struct_edid_descriptor_get_kind
    - fu_struct_edid_descriptor_parse_stream
    - fu_edid_strsafe
    - g_free
    - fu_struct_edid_descriptor_get_tag
    - g_autoptr
    - fu_struct_edid_descriptor_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_edid_parse_descriptor(FuEdid *self, GInputStream *stream,
      gsize offset, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_EDID
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:260,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:264,1
    - Dst: fu_struct_edid_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:267,1
    - Dst: fu_struct_edid_get_manufacturer_name
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:276,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:277,1
    - Dst: fu_edid_set_pnp_id
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:282,1
    - Dst: fu_edid_set_product_code
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:283,1
    - Dst: fu_struct_edid_get_product_code
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:283,1
    - Dst: fu_struct_edid_get_serial_number
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:284,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:286,1
    - Dst: fu_struct_edid_get_serial_number
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:286,1
    - Dst: fu_edid_set_serial_number
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:287,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:291,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:292,1
    - Dst: fu_edid_parse_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:296,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:298,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:299,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 306
    functionName: fu_edid_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - fu_edid_set_serial_number
    - FU_EDID
    - fu_struct_edid_get_manufacturer_name
    - fu_edid_parse_descriptor
    - fu_struct_edid_get_serial_number
    - g_prefix_error_literal
    - g_strdup_printf
    - fu_struct_edid_get_product_code
    - fu_size_checked_inc
    - fu_edid_set_product_code
    - fu_edid_set_pnp_id
    - g_autoptr
    - fu_struct_edid_parse_stream
    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:311,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:312,1
    - Dst: fu_struct_edid_new
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:312,1
    - Dst: fu_struct_edid_set_product_code
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:316,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:319,1
    - Dst: fu_struct_edid_set_serial_number
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:325,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:329,1
    - Dst: fu_struct_edid_descriptor_new
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:329,1
    - Dst: fu_struct_edid_descriptor_set_tag
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:330,1
    - Dst: fu_struct_edid_descriptor_set_data
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:332,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:334,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:336,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:339,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:345,1
    - Dst: fu_struct_edid_descriptor_new
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:345,1
    - Dst: fu_struct_edid_descriptor_set_tag
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:346,1
    - Dst: fu_struct_edid_descriptor_set_data
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:349,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:351,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:353,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:356,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:362,1
    - Dst: fu_struct_edid_descriptor_new
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:362,1
    - Dst: fu_struct_edid_descriptor_set_tag
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:363,1
    - Dst: fu_struct_edid_descriptor_set_data
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:365,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:367,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:369,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:372,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:379,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 380
    functionName: fu_edid_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - FU_EDID
    - fu_struct_edid_descriptor_new
    - fu_struct_edid_new
    - fu_strtoull
    - g_steal_pointer
    - g_prefix_error_literal
    - memcpy
    - fu_struct_edid_set_serial_number
    - fu_struct_edid_descriptor_set_tag
    - fu_struct_edid_set_product_code
    - strlen
    - g_autoptr
    - fu_struct_edid_descriptor_set_data
    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:385,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:389,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:391,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:393,1
    - Dst: fu_edid_set_pnp_id
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:401,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:403,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:405,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:407,1
    - Dst: fu_edid_set_serial_number
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:415,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:417,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:419,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:421,1
    - Dst: fu_edid_set_eisa_id
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:429,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:431,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:434,1
    - Dst: fu_edid_set_product_code
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:436,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 441
    functionName: fu_edid_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - fu_edid_set_serial_number
    - FU_EDID
    - xb_node_query_text
    - fu_edid_set_eisa_id
    - g_set_error
    - fu_strtoull
    - strlen
    - fu_edid_set_product_code
    - fu_edid_set_pnp_id
    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:446,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:447,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:448,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:449,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:450,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 452
    functionName: fu_edid_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - FU_EDID
    - fu_xmlb_builder_insert_kv
    - fu_xmlb_builder_insert_kx
    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:457,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:458,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:459,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:460,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:461,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 463
    functionName: fu_edid_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - FU_EDID
    - g_free
    - 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:468,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEdidClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 475
    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:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:480,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-edid.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEdid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 481
    functionName: fu_edid_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 494
    functionName: fu_edid_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-edid.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuEdid
    signature: 'FuEdid *

      fu_edid_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-xor.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_xor8
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-xor.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_xor8(const guint8 *buf, gsize bufsz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-xor.c:57,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-xor.c:58,1
    - Dst: fu_memchk_read
      Src: /src/fwupd/libfwupdplugin/fu-xor.c:60,1
    - Dst: fu_xor8
      Src: /src/fwupd/libfwupdplugin/fu-xor.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - buf
    - bufsz
    - offset
    - n
    - value
    - error
    argTypes:
    - guint8*
    - gsize
    - gsize
    - gsize
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: fu_xor8_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-xor.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_memchk_read
    - fu_xor8
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_xor8_safe(const guint8 *buf, gsize bufsz, gsize offset,
      gsize n, guint8 *value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:20,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:21,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:22,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:23,1
    - Dst: fu_composite_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:24,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:25,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:28,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:29,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:30,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:31,1
    - Dst: fu_composite_input_stream_add_bytes
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:34,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:34,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:37,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:38,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:39,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:40,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:41,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:42,1
    - Dst: fu_composite_input_stream_add_bytes
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:45,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:45,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:48,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:49,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:50,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:51,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:52,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:53,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:56,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:57,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:58,1
    - Dst: fu_composite_input_stream_add_partial_stream
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:59,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:60,1
    - Dst: FU_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:61,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:63,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:64,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:65,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:66,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:67,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:68,1
    - Dst: fwupd_codec_to_string
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:71,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:71,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:72,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:75,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:82,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:83,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:84,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:85,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:88,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:95,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:96,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:97,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:98,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:101,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:108,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:109,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:110,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:111,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:114,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:114,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:115,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:116,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:117,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:118,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:119,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:120,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:123,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:123,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:124,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:125,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:126,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:126,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:126,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:127,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:128,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:129,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:132,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:132,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:133,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:134,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:135,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:135,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:135,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:136,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:137,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:138,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:141,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:141,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:142,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:143,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:144,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:144,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:144,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:145,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:146,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:147,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 11
    functionDepth: 4
    functionLinenumber: 11
    functionLinenumberEnd: 149
    functionName: fu_composite_input_stream_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_to_string
    - FWUPD_CODEC
    - g_memory_input_stream_new_from_bytes
    - FU_COMPOSITE_INPUT_STREAM
    - g_assert_nonnull
    - FU_PARTIAL_INPUT_STREAM
    - g_input_stream_read
    - fu_composite_input_stream_add_bytes
    - g_debug
    - g_assert_cmpint
    - g_bytes_new_static
    - g_seekable_seek
    - fu_input_stream_read_safe
    - fu_composite_input_stream_new
    - fu_composite_input_stream_add_partial_stream
    - G_SEEKABLE
    - fu_partial_input_stream_new
    - g_seekable_tell
    - fu_input_stream_size
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_composite_input_stream_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:154,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:155,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c
    functionUses: 3
    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: 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: 1
    functionsReached:
    - g_return_val_if_fail
    - g_steal_pointer
    - g_string_free
    - g_string_new
    - g_string_append_printf
    - g_autoptr
    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: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_firmware_strparse_uint8_safe
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - strlen
    - g_autoptr
    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: 3
    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:
    - fu_memwrite_uint16
    - g_byte_array_append
    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:
    - fu_memwrite_uint24
    - g_byte_array_append
    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:
    - g_byte_array_append
    - fu_memwrite_uint32
    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_bytes_get_data
    - g_bytes_get_size
    - g_byte_array_append
    linkageType: ''
    returnType: void
    signature: void fu_byte_array_append_bytes(GByteArray *array, GBytes *bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:180,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:181,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - array
    - array2
    argTypes:
    - GByteArray*
    - GByteArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: fu_byte_array_append_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-byte-array.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - g_byte_array_append
    linkageType: ''
    returnType: void
    signature: void fu_byte_array_append_array(GByteArray *array, GByteArray *array2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:208,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:209,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:210,1
    - Dst: fu_memchk_read
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:212,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - array
    - buf
    - bufsz
    - offset
    - n
    - error
    argTypes:
    - GByteArray*
    - guint8*
    - gsize
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 216
    functionName: fu_byte_array_append_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-byte-array.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_memchk_read
    - g_byte_array_append
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_byte_array_append_safe(GByteArray *array,\n\t\t\t  const
      guint8 *buf,\n\t\t\t  gsize bufsz,\n\t\t\t  gsize offset,\n\t\t\t  gsize n,\n\t\t\t
      \ GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:232,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:233,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:234,1
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - array
    - length
    - data
    argTypes:
    - GByteArray*
    - gsize
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 237
    functionName: fu_byte_array_set_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-byte-array.c
    functionUses: 2
    functionsReached:
    - g_return_if_fail
    - memset
    - g_byte_array_set_size
    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:253,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - array
    - alignment
    - data
    argTypes:
    - GByteArray*
    - guint8
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: fu_byte_array_align_up
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-byte-array.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_set_size
    - fu_common_align_up
    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:271,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:272,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:273,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:274,1
    - Dst: MAX
      Src: /src/fwupd/libfwupdplugin/fu-byte-array.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf1
    - buf2
    - error
    argTypes:
    - GByteArray*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 282
    functionName: fu_byte_array_compare
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-byte-array.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - MAX
    - fu_memcmp_safe
    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: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 578
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_TABLE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:40,1
    - Dst: GET_PRIVATE
      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
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:43,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:44,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: fu_acpi_table_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_ACPI_TABLE
    - fu_xmlb_builder_insert_kv
    - GET_PRIVATE
    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:61,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:62,1
    - Dst: FU_IS_ACPI_TABLE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: fu_acpi_table_get_revision
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ACPI_TABLE
    - 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:79,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:80,1
    - Dst: FU_IS_ACPI_TABLE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: fu_acpi_table_get_oem_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ACPI_TABLE
    - 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:97,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:98,1
    - Dst: FU_IS_ACPI_TABLE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: fu_acpi_table_get_oem_table_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ACPI_TABLE
    - 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:115,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:116,1
    - Dst: FU_IS_ACPI_TABLE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: fu_acpi_table_get_oem_revision
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ACPI_TABLE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_acpi_table_get_oem_revision(FuAcpiTable *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:133,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:134,1
    - Dst: FU_IS_ACPI_TABLE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:134,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:135,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:137,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAcpiTable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 141
    functionName: fu_acpi_table_get_payload
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - g_object_ref
    - FU_IS_ACPI_TABLE
    - GET_PRIVATE
    linkageType: ''
    returnType: GInputStream
    signature: 'GInputStream *

      fu_acpi_table_get_payload(FuAcpiTable *self, GError **error)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_TABLE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:149,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:150,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:154,1
    - Dst: fu_struct_acpi_table_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:157,1
    - Dst: fu_struct_acpi_table_get_signature
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:160,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:161,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:161,1
    - Dst: fu_struct_acpi_table_get_revision
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:162,1
    - Dst: fu_struct_acpi_table_get_oem_id
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:163,1
    - Dst: fu_struct_acpi_table_get_oem_table_id
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:164,1
    - Dst: fu_struct_acpi_table_get_oem_revision
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:165,1
    - Dst: fu_struct_acpi_table_get_length
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:168,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:169,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:172,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:180,1
    - Dst: fu_input_stream_compute_sum8
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:185,1
    - Dst: fu_struct_acpi_table_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:188,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:189,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:202,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 212
    functionName: fu_acpi_table_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - fu_struct_acpi_table_get_signature
    - fu_firmware_set_id
    - fu_struct_acpi_table_get_revision
    - fu_struct_acpi_table_get_oem_id
    - fu_struct_acpi_table_get_length
    - FU_FIRMWARE
    - fu_struct_acpi_table_get_oem_table_id
    - FU_ACPI_TABLE
    - fu_input_stream_size
    - g_set_error
    - fu_input_stream_compute_sum8
    - fu_struct_acpi_table_get_checksum
    - fu_struct_acpi_table_parse_stream
    - fu_struct_acpi_table_get_oem_revision
    - g_autoptr
    - fu_partial_input_stream_new
    - fu_firmware_set_size
    - GET_PRIVATE
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_TABLE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:217,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:218,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:219,1
    - Dst: fu_struct_acpi_table_new
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:220,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:220,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:225,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:225,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:227,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:228,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:228,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:231,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:233,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:233,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:236,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:240,1
    - Dst: fu_struct_acpi_table_set_signature
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:244,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:244,1
    - Dst: fu_struct_acpi_table_set_length
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:246,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:247,1
    - Dst: fu_struct_acpi_table_set_revision
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:248,1
    - Dst: fu_struct_acpi_table_set_oem_id
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:249,1
    - Dst: fu_struct_acpi_table_set_oem_table_id
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:251,1
    - Dst: fu_struct_acpi_table_set_oem_revision
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:253,1
    - Dst: fu_struct_acpi_table_set_creator_id
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:254,1
    - Dst: fu_struct_acpi_table_set_creator_revision
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:256,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:259,1
    - Dst: fu_struct_acpi_table_set_checksum
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:262,1
    - Dst: fu_sum8
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:262,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:265,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 266
    functionName: fu_acpi_table_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_bytes_new
    - fu_sum8
    - fu_struct_acpi_table_set_creator_id
    - fu_struct_acpi_table_set_oem_table_id
    - g_ptr_array_index
    - fu_firmware_get_id
    - fu_byte_array_append_bytes
    - fu_firmware_get_images
    - g_byte_array_new
    - fu_struct_acpi_table_new
    - fu_struct_acpi_table_set_creator_revision
    - GET_PRIVATE
    - FU_ACPI_TABLE
    - fu_struct_acpi_table_set_oem_id
    - g_byte_array_free_to_bytes
    - fu_struct_acpi_table_set_checksum
    - fu_struct_acpi_table_set_oem_revision
    - fu_input_stream_read_bytes
    - fu_struct_acpi_table_set_signature
    - g_steal_pointer
    - fu_struct_acpi_table_set_length
    - fu_struct_acpi_table_set_revision
    - g_bytes_get_size
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_acpi_table_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:271,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:271,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:272,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:272,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:273,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:273,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:274,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: fu_acpi_table_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_acpi_table_init(FuAcpiTable *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_TABLE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:280,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:281,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:284,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:285,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:286,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 288
    functionName: fu_acpi_table_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - FU_ACPI_TABLE
    - G_OBJECT_CLASS
    - g_free
    - GET_PRIVATE
    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:293,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiTableClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 299
    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:311,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-acpi-table.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 312
    functionName: fu_acpi_table_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 587
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:49,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:50,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:51,1
    - Dst: fu_xmlb_builder_insert_kb
      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_kx
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: fu_cfu_offer_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_CFU_OFFER
    - fu_xmlb_builder_insert_kb
    - GET_PRIVATE
    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:76,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:77,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    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:95,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:96,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 98
    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:113,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:114,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 116
    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:131,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:132,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    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:149,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:150,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 152
    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:167,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:168,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 170
    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:185,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:186,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 188
    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:203,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:204,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 206
    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:221,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:222,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 224
    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:239,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:240,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 242
    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:256,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:257,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - segment_number
    argTypes:
    - FuCfuOffer*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: fu_cfu_offer_set_segment_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - g_return_if_fail
    - GET_PRIVATE
    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:274,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:275,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - force_immediate_reset
    argTypes:
    - FuCfuOffer*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 277
    functionName: fu_cfu_offer_set_force_immediate_reset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - g_return_if_fail
    - GET_PRIVATE
    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:291,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:292,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - force_ignore_version
    argTypes:
    - FuCfuOffer*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: fu_cfu_offer_set_force_ignore_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - g_return_if_fail
    - GET_PRIVATE
    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:308,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:309,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - component_id
    argTypes:
    - FuCfuOffer*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 311
    functionName: fu_cfu_offer_set_component_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - g_return_if_fail
    - GET_PRIVATE
    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:325,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:326,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - token
    argTypes:
    - FuCfuOffer*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 328
    functionName: fu_cfu_offer_set_token
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - g_return_if_fail
    - GET_PRIVATE
    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:342,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:343,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - hw_variant
    argTypes:
    - FuCfuOffer*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: fu_cfu_offer_set_hw_variant
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - g_return_if_fail
    - GET_PRIVATE
    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:359,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:360,1
    - Dst: FU_IS_CFU_OFFER
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - protocol_revision
    argTypes:
    - FuCfuOffer*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 363
    functionName: fu_cfu_offer_set_protocol_revision
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - g_return_if_fail
    - GET_PRIVATE
    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:377,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:378,1
    - Dst: FU_IS_CFU_OFFER
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - bank
    argTypes:
    - FuCfuOffer*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 381
    functionName: fu_cfu_offer_set_bank
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - g_return_if_fail
    - GET_PRIVATE
    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:395,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:396,1
    - Dst: FU_IS_CFU_OFFER
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - milestone
    argTypes:
    - FuCfuOffer*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 399
    functionName: fu_cfu_offer_set_milestone
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - g_return_if_fail
    - GET_PRIVATE
    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:413,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:414,1
    - Dst: FU_IS_CFU_OFFER
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - product_id
    argTypes:
    - FuCfuOffer*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 416
    functionName: fu_cfu_offer_set_product_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - FU_IS_CFU_OFFER
    - g_return_if_fail
    - GET_PRIVATE
    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:424,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:425,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:429,1
    - Dst: fu_struct_cfu_offer_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:432,1
    - Dst: fu_struct_cfu_offer_get_segment_number
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:435,1
    - Dst: fu_struct_cfu_offer_get_component_id
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:436,1
    - Dst: fu_struct_cfu_offer_get_token
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:437,1
    - Dst: fu_struct_cfu_offer_get_compat_variant_mask
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:438,1
    - Dst: fu_struct_cfu_offer_get_product_id
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:439,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:442,1
    - Dst: fu_struct_cfu_offer_get_version
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:442,1
    - Dst: fu_struct_cfu_offer_get_flags1
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:445,1
    - Dst: fu_struct_cfu_offer_get_flags2
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:450,1
    - Dst: fu_struct_cfu_offer_get_flags3
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 458
    functionName: fu_cfu_offer_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_raw
    - fu_struct_cfu_offer_get_product_id
    - fu_struct_cfu_offer_get_flags1
    - fu_struct_cfu_offer_parse_stream
    - fu_struct_cfu_offer_get_flags3
    - fu_struct_cfu_offer_get_flags2
    - fu_struct_cfu_offer_get_version
    - FU_CFU_OFFER
    - fu_struct_cfu_offer_get_segment_number
    - fu_struct_cfu_offer_get_token
    - fu_struct_cfu_offer_get_component_id
    - fu_struct_cfu_offer_get_compat_variant_mask
    - g_autoptr
    - GET_PRIVATE
    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:463,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:464,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:465,1
    - Dst: fu_struct_cfu_offer_new
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:465,1
    - Dst: fu_struct_cfu_offer_set_segment_number
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:468,1
    - Dst: fu_struct_cfu_offer_set_flags1
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:469,1
    - Dst: fu_struct_cfu_offer_set_component_id
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:472,1
    - Dst: fu_struct_cfu_offer_set_token
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:473,1
    - Dst: fu_struct_cfu_offer_set_version
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:476,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:476,1
    - Dst: fu_struct_cfu_offer_set_compat_variant_mask
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:477,1
    - Dst: fu_struct_cfu_offer_set_flags2
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:480,1
    - Dst: fu_struct_cfu_offer_set_flags3
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:481,1
    - Dst: fu_struct_cfu_offer_set_product_id
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:482,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 486
    functionName: fu_cfu_offer_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_raw
    - fu_struct_cfu_offer_set_version
    - fu_struct_cfu_offer_set_segment_number
    - g_steal_pointer
    - FU_CFU_OFFER
    - fu_struct_cfu_offer_set_product_id
    - fu_struct_cfu_offer_set_token
    - fu_struct_cfu_offer_new
    - fu_struct_cfu_offer_set_flags1
    - fu_struct_cfu_offer_set_compat_variant_mask
    - fu_struct_cfu_offer_set_flags3
    - g_autoptr
    - fu_struct_cfu_offer_set_flags2
    - fu_struct_cfu_offer_set_component_id
    - GET_PRIVATE
    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:491,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:492,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:497,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:500,1
    - Dst: fu_strtobool
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:502,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:505,1
    - Dst: fu_strtobool
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:507,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:510,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:513,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:516,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:519,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:522,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:525,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:528,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 36
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 534
    functionName: fu_cfu_offer_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - xb_node_query_text_as_uint
    - FU_CFU_OFFER
    - fu_strtobool
    - GET_PRIVATE
    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:539,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 540
    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:545,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-offer.c:545,1
    - 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_set_version_format
      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_size_max
      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: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuOffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    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
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_cfu_offer_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:17,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:18,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:19,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:20,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:21,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:21,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:24,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:25,1
    - Dst: fu_device_set_target
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:26,1
    - Dst: fu_device_get_events
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:29,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:30,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:31,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:34,1
    - Dst: fu_device_get_events
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:35,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:36,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 38
    functionName: fu_device_event_donor_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event-test.c
    functionUses: 0
    functionsReached:
    - fu_device_set_target
    - g_assert_nonnull
    - g_assert_cmpint
    - fu_device_get_events
    - fu_device_event_new
    - fu_device_add_event
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_event_donor_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:46,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:47,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:47,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:48,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:52,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:54,1
    - Dst: fu_device_event_set_i64
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:55,1
    - Dst: fu_device_event_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:56,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:57,1
    - Dst: fu_device_event_check_error
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:60,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:61,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:62,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:64,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:64,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:65,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:66,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:76,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:76,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:77,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:78,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:79,1
    - Dst: fu_device_event_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:79,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:80,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:80,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:81,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:81,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:82,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:83,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:84,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:84,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:85,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:86,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:87,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:87,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:90,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:91,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:92,1
    - Dst: fu_device_event_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:95,1
    - Dst: fu_device_event_check_error
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:96,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:97,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:98,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 100
    functionName: fu_device_event_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event-test.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - fu_device_event_set_i64
    - g_assert_nonnull
    - fu_device_event_get_id
    - fu_device_event_set_error
    - fu_device_event_get_str
    - g_assert_cmpint
    - fu_device_event_get_i64
    - fu_device_event_new
    - fu_device_event_set_data
    - fwupd_codec_from_json_string
    - g_assert_null
    - g_bytes_new_static
    - fu_device_event_check_error
    - fu_device_event_set_str
    - g_bytes_get_data
    - fu_device_event_get_bytes
    - g_assert_false
    - g_assert_error
    - g_assert_no_error
    - fwupd_codec_to_json_string
    - fu_device_event_set_bytes
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_device_event_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:106,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:107,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:110,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:111,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:111,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:112,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 119
    functionName: fu_device_event_uncompressed_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event-test.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - fu_device_event_set_str
    - g_assert_no_error
    - fwupd_codec_to_json_string
    - fu_device_event_new
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_device_event_uncompressed_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:125,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:126,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:127,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:128,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:128,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:129,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:130,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:131,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:133,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:134,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:135,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:136,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:137,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:140,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:141,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:142,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:145,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:146,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:147,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:148,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:149,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:150,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 152
    functionName: fu_device_event_strict_order_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event-test.c
    functionUses: 0
    functionsReached:
    - fu_device_load_event
    - fu_device_add_private_flag
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_error
    - fu_device_event_new
    - fu_device_add_event
    - g_autoptr
    - g_assert_null
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_event_strict_order_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:157,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:158,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:159,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:160,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:161,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-device-event-test.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event-test.c
    functionUses: 3
    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: []
    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_literal
      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:
    - g_debug
    - g_set_error_literal
    - FU_FIRMWARE_CLASS
    - g_prefix_error_literal
    - fu_firmware_set_offset
    - fu_input_stream_read_u24
    - G_N_ELEMENTS
    - g_autoptr
    - fu_intel_thunderbolt_firmware_nvm_valid_farb_pointer
    - 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_set_error_literal
    - FU_FIRMWARE_CLASS
    - fu_firmware_get_offset
    - g_steal_pointer
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - g_byte_array_append
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_intel_thunderbolt_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:116,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: fu_intel_thunderbolt_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelThunderboltFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 125
    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:137,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: fu_intel_thunderbolt_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_intel_thunderbolt_firmware_new(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - hash_kind
    argTypes:
    - FuTpmAlg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: fu_tpm_eventlog_v2_hash_get_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_tpm_eventlog_v2_hash_get_size(FuTpmAlg hash_kind)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:55,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:56,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:59,1
    - Dst: fu_struct_tpm_event_log2_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:62,1
    - Dst: fu_struct_tpm_event_log2_get_digest_count
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:66,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:70,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:73,1
    - Dst: fu_tpm_eventlog_v2_hash_get_size
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:75,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:77,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:89,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:95,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:97,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:99,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:106,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:109,1
    - Dst: fu_struct_tpm_event_log2_get_pcr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:118,1
    - Dst: fu_tpm_eventlog_item_new
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:121,1
    - Dst: fu_tpm_eventlog_item_set_pcr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:122,1
    - Dst: fu_tpm_eventlog_item_set_kind
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:123,1
    - Dst: fu_struct_tpm_event_log2_get_type
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:123,1
    - Dst: fu_tpm_eventlog_item_add_checksum
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:125,1
    - Dst: fu_tpm_eventlog_item_add_checksum
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:127,1
    - Dst: fu_tpm_eventlog_item_add_checksum
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:131,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:132,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:135,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:135,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:137,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:137,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:137,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 4
    argNames:
    - self
    - stream
    - idx
    - error
    argTypes:
    - FuTpmEventlogV2*
    - GInputStream*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 143
    functionName: fu_tpm_eventlog_v2_parse_item
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c
    functionUses: 0
    functionsReached:
    - fu_tpm_eventlog_item_new
    - fu_input_stream_read_u16
    - fu_tpm_eventlog_v2_hash_get_size
    - fu_firmware_set_bytes
    - g_autoptr
    - fu_firmware_add_image
    - g_set_error_literal
    - fu_struct_tpm_event_log2_get_pcr
    - fu_tpm_eventlog_item_set_pcr
    - fu_struct_tpm_event_log2_get_digest_count
    - fu_struct_tpm_event_log2_parse_stream
    - g_bytes_ref
    - fu_struct_tpm_event_log2_get_type
    - FU_FIRMWARE
    - fu_tpm_eventlog_item_add_checksum
    - fu_input_stream_read_bytes
    - g_set_error
    - fu_tpm_eventlog_item_set_kind
    - fu_input_stream_read_u32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_tpm_eventlog_v2_parse_item(FuTpmEventlogV2 *self,\n\t\t\t
      \     GInputStream *stream,\n\t\t\t      gsize *idx,\n\t\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_EVENTLOG_V2
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:151,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:154,1
    - Dst: fu_struct_tpm_event_log2_hdr_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:157,1
    - Dst: fu_struct_tpm_event_log2_hdr_get_datasz
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:162,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:163,1
    - Dst: fu_tpm_eventlog_v2_parse_item
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 172
    functionName: fu_tpm_eventlog_v2_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_size
    - fu_struct_tpm_event_log2_hdr_parse_stream
    - fu_tpm_eventlog_v2_parse_item
    - fu_struct_tpm_event_log2_hdr_get_datasz
    - g_autoptr
    - FU_TPM_EVENTLOG_V2
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_tpm_eventlog_v2_parse(FuFirmware *firmware,\n\t\t\t GInputStream
      *stream,\n\t\t\t FuFirmwareParseFlags flags,\n\t\t\t GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:178,1
    - Dst: fu_struct_tpm_event_log2_new
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:178,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:179,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:180,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:181,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:182,1
    - Dst: fu_tpm_eventlog_item_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:185,1
    - Dst: fu_tpm_eventlog_item_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:188,1
    - Dst: fu_tpm_eventlog_item_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:191,1
    - Dst: fu_struct_tpm_event_log2_set_pcr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:196,1
    - Dst: fu_tpm_eventlog_item_get_pcr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:196,1
    - Dst: fu_struct_tpm_event_log2_set_type
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:197,1
    - Dst: fu_tpm_eventlog_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:197,1
    - Dst: fu_struct_tpm_event_log2_set_digest_count
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:198,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:200,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:201,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:204,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:205,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:208,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:209,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:213,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:213,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:216,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:216,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:217,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:220,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 2
    argNames:
    - item
    - error
    argTypes:
    - FuTpmEventlogItem*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 221
    functionName: fu_tpm_eventlog_v2_write_item
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - fu_byte_array_append_uint16
    - fu_tpm_eventlog_item_get_checksum
    - fu_struct_tpm_event_log2_set_type
    - fu_firmware_get_bytes
    - fu_struct_tpm_event_log2_set_pcr
    - fu_struct_tpm_event_log2_new
    - fu_struct_tpm_event_log2_set_digest_count
    - FU_FIRMWARE
    - g_steal_pointer
    - fu_tpm_eventlog_item_get_pcr
    - fu_byte_array_append_uint32
    - g_bytes_get_size
    - g_autoptr
    - fu_tpm_eventlog_item_get_kind
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_tpm_eventlog_v2_write_item(FuTpmEventlogItem *item, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:226,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:226,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:227,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:227,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:228,1
    - Dst: fu_struct_tpm_event_log2_hdr_new
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:228,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:231,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:234,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:235,1
    - Dst: fu_tpm_eventlog_v2_write_item
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:236,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:239,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 244
    functionName: fu_tpm_eventlog_v2_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c
    functionUses: 0
    functionsReached:
    - fu_struct_tpm_event_log2_hdr_new
    - g_steal_pointer
    - fu_tpm_eventlog_v2_write_item
    - fu_firmware_get_images
    - g_byte_array_new
    - g_byte_array_append
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_tpm_eventlog_v2_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTpmEventlogV2Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 252
    functionName: fu_tpm_eventlog_v2_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_tpm_eventlog_v2_class_init(FuTpmEventlogV2Class *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:257,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:257,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:258,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTpmEventlogV2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 259
    functionName: fu_tpm_eventlog_v2_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_tpm_eventlog_v2_init(FuTpmEventlogV2 *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:274,1
    - Dst: FU_TPM_EVENTLOG
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: fu_tpm_eventlog_v2_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_TPM_EVENTLOG
    linkageType: ''
    returnType: FuTpmEventlog
    signature: 'FuTpmEventlog *

      fu_tpm_eventlog_v2_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: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-json-firmware.c
    functionUses: 611
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_JSON_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:33,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:34,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:35,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:35,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:39,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:40,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:41,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:43,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:44,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:45,1
    - Dst: fwupd_json_parser_load_from_stream
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 27
    functionDepth: 8
    functionLinenumber: 27
    functionLinenumberEnd: 58
    functionName: fu_json_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-json-firmware.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - FU_JSON_FIRMWARE
    - fwupd_json_parser_set_max_quoted
    - fwupd_json_parser_load_from_stream
    - fwupd_json_parser_new
    - fwupd_json_parser_set_max_items
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_json_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_JSON_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:63,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:65,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:66,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:70,1
    - Dst: fwupd_json_node_to_string
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:75,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:76,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 78
    functionName: fu_json_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-json-firmware.c
    functionUses: 0
    functionsReached:
    - FU_JSON_FIRMWARE
    - g_set_error_literal
    - g_steal_pointer
    - g_byte_array_new
    - fwupd_json_node_to_string
    - g_byte_array_append
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_json_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_JSON_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:83,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:84,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:86,1
    - Dst: fwupd_json_node_to_string
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:87,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 4
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: fu_json_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-json-firmware.c
    functionUses: 0
    functionsReached:
    - FU_JSON_FIRMWARE
    - fwupd_json_node_to_string
    - fu_xmlb_builder_insert_kv
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_json_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_JSON_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:95,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:96,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:98,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:98,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:101,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:102,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:103,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:106,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:108,1
    - Dst: fwupd_json_parser_load_from_data
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 92
    functionDepth: 8
    functionLinenumber: 92
    functionLinenumberEnd: 118
    functionName: fu_json_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-json-firmware.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - xb_node_query_text
    - FU_JSON_FIRMWARE
    - fwupd_json_parser_set_max_quoted
    - fwupd_json_parser_load_from_data
    - fwupd_error_convert
    - fwupd_json_parser_new
    - fwupd_json_parser_set_max_items
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_json_firmware_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:123,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:123,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:124,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJsonFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: fu_json_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-json-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_json_firmware_init(FuJsonFirmware *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_JSON_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:130,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:131,1
    - Dst: fwupd_json_node_unref
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:133,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: fu_json_firmware_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-json-firmware.c
    functionUses: 0
    functionsReached:
    - fwupd_json_node_unref
    - G_OBJECT_CLASS
    - FU_JSON_FIRMWARE
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_json_firmware_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:140,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-json-firmware.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJsonFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: fu_json_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-json-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_json_firmware_class_init(FuJsonFirmwareClass *klass)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:40,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:41,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:41,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:41,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:45,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:55,1
    - Dst: fu_tpm_eventlog_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:56,1
    - Dst: fu_tpm_eventlog_item_get_pcr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:58,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:58,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:59,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:61,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:69,1
    - Dst: fu_struct_tpm_efi_startup_locality_event_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:70,1
    - Dst: fu_struct_tpm_efi_startup_locality_event_get_locality
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:75,1
    - Dst: fu_tpm_eventlog_item_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:89,1
    - Dst: g_checksum_new
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:89,1
    - Dst: g_checksum_update
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:90,1
    - Dst: g_checksum_update
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:91,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:93,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:94,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:95,1
    - Dst: fu_tpm_eventlog_item_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:101,1
    - Dst: g_checksum_new
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:101,1
    - Dst: g_checksum_update
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:102,1
    - Dst: g_checksum_update
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:105,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:107,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:108,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:109,1
    - Dst: fu_tpm_eventlog_item_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:113,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:115,1
    - Dst: g_checksum_new
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:115,1
    - Dst: g_checksum_update
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:116,1
    - Dst: g_checksum_update
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:119,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:121,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:122,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:123,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:128,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:135,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:136,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:137,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:137,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:140,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:141,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:142,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:145,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:146,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:147,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:147,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c:149,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 81
    argCount: 3
    argNames:
    - self
    - pcr
    - error
    argTypes:
    - FuTpmEventlog*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 150
    functionName: fu_tpm_eventlog_calc_checksums
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c
    functionUses: 1
    functionsReached:
    - g_checksum_new
    - fu_bytes_to_string
    - fu_tpm_eventlog_item_get_kind
    - g_ptr_array_index
    - fu_firmware_get_bytes
    - g_set_error_literal
    - fu_firmware_get_images
    - g_checksum_get_digest
    - g_ptr_array_new_with_free_func
    - g_bytes_new_static
    - fu_tpm_eventlog_item_get_checksum
    - g_bytes_get_data
    - FU_FIRMWARE
    - g_checksum_update
    - fu_struct_tpm_efi_startup_locality_event_get_locality
    - fu_struct_tpm_efi_startup_locality_event_parse_bytes
    - g_steal_pointer
    - g_ptr_array_add
    - fu_tpm_eventlog_item_get_pcr
    - g_bytes_get_size
    - g_autoptr
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_tpm_eventlog_calc_checksums(FuTpmEventlog *self, guint8 pcr, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTpmEventlog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: fu_tpm_eventlog_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_tpm_eventlog_init(FuTpmEventlog *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTpmEventlogClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: fu_tpm_eventlog_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_tpm_eventlog_class_init(FuTpmEventlogClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:18,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:19,1
    - Dst: fu_protobuf_add_uint64
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:22,1
    - Dst: fu_protobuf_add_boolean
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:23,1
    - Dst: fu_protobuf_to_string
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:24,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:25,1
    - Dst: fu_protobuf_get_uint64
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:28,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:29,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:30,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:31,1
    - Dst: fu_protobuf_get_uint64
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:34,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:35,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:36,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:37,1
    - Dst: fu_protobuf_get_boolean
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:40,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:41,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:42,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 44
    functionName: fu_protobuf_uint64_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf-test.c
    functionUses: 0
    functionsReached:
    - fu_protobuf_add_uint64
    - fu_protobuf_new
    - fu_protobuf_add_boolean
    - g_assert_no_error
    - g_assert_cmpint
    - fu_protobuf_get_boolean
    - fu_protobuf_to_string
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - fu_protobuf_get_uint64
    linkageType: ''
    returnType: void
    signature: void fu_protobuf_uint64_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:51,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:52,1
    - Dst: fu_protobuf_add_string
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:54,1
    - Dst: fu_protobuf_to_string
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:55,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:56,1
    - Dst: fu_protobuf_get_string
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:58,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:59,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:60,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: fu_protobuf_string_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf-test.c
    functionUses: 0
    functionsReached:
    - fu_protobuf_new
    - fu_protobuf_get_string
    - g_assert_nonnull
    - g_assert_no_error
    - fu_protobuf_to_string
    - g_assert_cmpstr
    - g_autoptr
    - fu_protobuf_add_string
    linkageType: ''
    returnType: void
    signature: void fu_protobuf_string_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:68,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:69,1
    - Dst: fu_protobuf_add_boolean
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:72,1
    - Dst: fu_protobuf_get_string
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:75,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:76,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 78
    functionName: fu_protobuf_parse_invalid_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf-test.c
    functionUses: 0
    functionsReached:
    - fu_protobuf_new
    - fu_protobuf_get_string
    - fu_protobuf_add_boolean
    - g_assert_error
    - g_autoptr
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fu_protobuf_parse_invalid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:85,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:86,1
    - Dst: fu_protobuf_add_uint64
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:89,1
    - Dst: fu_protobuf_get_boolean
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:90,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:91,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 93
    functionName: fu_protobuf_parse_big_bool_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf-test.c
    functionUses: 0
    functionsReached:
    - fu_protobuf_add_uint64
    - fu_protobuf_new
    - g_assert_error
    - fu_protobuf_get_boolean
    - g_assert_false
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_protobuf_parse_big_bool_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:99,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:101,1
    - Dst: fu_fuzzer_build_example
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:103,1
    - Dst: FU_FUZZER
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:103,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:104,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:105,1
    - Dst: fu_fuzzer_test_input
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:106,1
    - Dst: FU_FUZZER
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:106,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:107,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 109
    functionName: fu_protobuf_fuzzing_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf-test.c
    functionUses: 0
    functionsReached:
    - fu_protobuf_new
    - fu_fuzzer_test_input
    - g_assert_nonnull
    - g_assert_no_error
    - fu_fuzzer_build_example
    - FU_FUZZER
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_protobuf_fuzzing_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:116,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:117,1
    - Dst: fu_protobuf_add_uint64
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:119,1
    - Dst: fu_protobuf_get_uint64
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:120,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:121,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:122,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 124
    functionName: fu_protobuf_overflow_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf-test.c
    functionUses: 0
    functionsReached:
    - fu_protobuf_add_uint64
    - fu_protobuf_new
    - g_assert_no_error
    - g_assert_cmpint
    - g_assert_true
    - g_autoptr
    - fu_protobuf_get_uint64
    linkageType: ''
    returnType: void
    signature: void fu_protobuf_overflow_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:130,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:131,1
    - Dst: fu_protobuf_add_boolean
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:134,1
    - Dst: fu_protobuf_get_string
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:137,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:138,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 140
    functionName: fu_protobuf_parse_missing_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf-test.c
    functionUses: 0
    functionsReached:
    - fu_protobuf_new
    - fu_protobuf_get_string
    - fu_protobuf_add_boolean
    - g_assert_error
    - g_autoptr
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fu_protobuf_parse_missing_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:147,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:147,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:148,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:148,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:150,1
    - Dst: fu_protobuf_add_string
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:152,1
    - Dst: fu_protobuf_add_embedded
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:153,1
    - Dst: fu_protobuf_to_string
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:154,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:155,1
    - Dst: fu_protobuf_get_embedded
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:157,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:158,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:159,1
    - Dst: fu_protobuf_to_string
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:160,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 162
    functionName: fu_protobuf_embedded_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf-test.c
    functionUses: 0
    functionsReached:
    - fu_protobuf_new
    - fu_protobuf_add_embedded
    - g_assert_nonnull
    - g_assert_no_error
    - fu_protobuf_get_embedded
    - fu_protobuf_to_string
    - g_assert_cmpstr
    - g_autoptr
    - fu_protobuf_add_string
    linkageType: ''
    returnType: void
    signature: void fu_protobuf_embedded_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:167,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:168,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:169,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:170,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:171,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:172,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:173,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:174,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:175,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-protobuf-test.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 177
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf-test.c
    functionUses: 3
    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: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:16,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:16,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:17,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:17,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:18,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:18,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:19,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:19,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:20,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:20,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:21,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:21,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:22,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:22,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:23,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:23,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:24,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:24,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:25,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:25,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:26,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 27
    functionName: fu_version_guess_format_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpint
    - fu_version_guess_format
    linkageType: ''
    returnType: void
    signature: void fu_version_guess_format_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:33,1
    - Dst: fu_version_verify_format
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:35,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:36,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:37,1
    - Dst: fu_version_verify_format
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:38,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:39,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:40,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:41,1
    - Dst: fu_version_verify_format
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:42,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:43,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 45
    functionName: fu_version_verify_format_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-test.c
    functionUses: 0
    functionsReached:
    - g_assert_error
    - fu_version_verify_format
    - g_assert_no_error
    - g_clear_error
    - g_assert_false
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_version_verify_format_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_ensure_semver
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:63,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 66
    functionName: fu_version_semver_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_version_ensure_semver
    linkageType: ''
    returnType: void
    signature: void fu_version_semver_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:166,1
    - Dst: fu_version_from_uint64
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:168,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:170,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:172,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:174,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:176,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:178,1
    - Dst: fu_version_from_uint24
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:180,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:182,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:184,1
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:186,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:188,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:192,1
    - Dst: fu_version_parse_from_format
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:194,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:196,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 198
    functionName: fu_version_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-test.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16
    - fu_version_parse_from_format
    - fu_version_from_uint64
    - G_N_ELEMENTS
    - fu_version_from_uint32
    - g_assert_cmpstr
    - fu_version_from_uint24
    linkageType: ''
    returnType: void
    signature: void fu_version_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:204,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:204,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:205,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:206,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:209,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:209,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:212,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:212,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:213,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:214,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:217,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:217,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:218,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:219,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:224,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:224,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:225,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:225,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:228,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:228,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:231,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:231,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:232,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:232,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:235,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:235,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:236,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:236,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:239,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:239,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:240,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:240,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:241,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:241,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:244,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:244,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:247,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:247,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:248,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:248,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:251,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:251,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:254,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:254,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:257,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:257,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:260,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:260,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:265,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:265,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:266,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:266,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:267,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 268
    functionName: fu_version_vercmp_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-test.c
    functionUses: 0
    functionsReached:
    - fu_version_compare
    - g_assert_cmpint
    linkageType: ''
    returnType: void
    signature: void fu_version_vercmp_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:273,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:274,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:275,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:276,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:277,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:278,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-version-test.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 280
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-test.c
    functionUses: 3
    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: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:18,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:21,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:24,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:24,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:34,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:35,1
    - Dst: fu_uefi_device_new
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:37,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:38,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:38,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:39,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:40,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:41,1
    - Dst: fu_device_has_problem
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:42,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 43
    functionName: fu_uefi_device_auth_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - fu_uefi_device_new
    - g_assert_no_error
    - fu_device_has_problem
    - FU_DEVICE
    - fu_context_get_efivars
    - g_assert_false
    - fu_context_new_full
    - g_assert_true
    - g_autoptr
    - fu_efivars_set_data
    linkageType: ''
    returnType: void
    signature: void fu_uefi_device_auth_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:49,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:52,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:55,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:55,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:64,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:65,1
    - Dst: fu_uefi_device_new
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:67,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:68,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:68,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:69,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:70,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:71,1
    - Dst: fu_device_has_problem
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:72,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 73
    functionName: fu_uefi_device_no_auth_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - fu_uefi_device_new
    - g_assert_no_error
    - fu_device_has_problem
    - FU_DEVICE
    - fu_context_get_efivars
    - fu_context_new_full
    - g_assert_true
    - g_autoptr
    - fu_efivars_set_data
    linkageType: ''
    returnType: void
    signature: void fu_uefi_device_no_auth_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:78,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:79,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:80,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c
    functionUses: 3
    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_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:42,1
    - Dst: FU_IS_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:42,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:43,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - optional_data
    argTypes:
    - FuEfiLoadOption*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: fu_efi_load_option_set_optional_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - g_bytes_ref
    - g_return_if_fail
    - g_clear_pointer
    - FU_IS_EFI_LOAD_OPTION
    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:65,1
    - Dst: FU_IS_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:65,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:66,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:68,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FuEfiLoadOption*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 80
    functionName: fu_efi_load_option_get_metadata
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_hash_table_lookup
    - FU_IS_EFI_LOAD_OPTION
    - g_set_error
    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:95,1
    - Dst: FU_IS_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiLoadOption*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: fu_efi_load_option_get_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 3
    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:111,1
    - Dst: FU_IS_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:111,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - kind
    argTypes:
    - FuEfiLoadOption*
    - FuEfiLoadOptionKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: fu_efi_load_option_set_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - FU_IS_EFI_LOAD_OPTION
    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:132,1
    - Dst: FU_IS_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:132,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:133,1
    - Dst: g_hash_table_remove
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:136,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:141,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:146,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:147,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:150,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:150,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuEfiLoadOption*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 151
    functionName: fu_efi_load_option_set_metadata
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 3
    functionsReached:
    - g_hash_table_remove
    - g_strdup
    - g_strcmp0
    - g_hash_table_insert
    - g_return_if_fail
    - FU_IS_EFI_LOAD_OPTION
    - g_str_has_prefix
    linkageType: ''
    returnType: void
    signature: void fu_efi_load_option_set_metadata(FuEfiLoadOption *self, const gchar
      *key, const gchar *value)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:159,1
    - Dst: fu_struct_shim_hive_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:162,1
    - Dst: fu_struct_shim_hive_get_header_version
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:165,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:167,1
    - Dst: fu_struct_shim_hive_get_header_version
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:171,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:174,1
    - Dst: fu_struct_shim_hive_get_items_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:174,1
    - Dst: fu_struct_shim_hive_get_items_count
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:178,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:184,1
    - Dst: fu_struct_shim_hive_item_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:186,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:189,1
    - Dst: fu_struct_shim_hive_item_get_key_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:193,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:195,1
    - Dst: fu_input_stream_read_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:201,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:204,1
    - Dst: fu_struct_shim_hive_item_get_value_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:208,1
    - Dst: fu_input_stream_read_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:210,1
    - Dst: fu_size_checked_inc
      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:216,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 4
    argNames:
    - self
    - stream
    - offset
    - error
    argTypes:
    - FuEfiLoadOption*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 221
    functionName: fu_efi_load_option_parse_optional_hive
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - fu_struct_shim_hive_get_items_count
    - fu_struct_shim_hive_item_get_key_length
    - g_set_error
    - g_set_error_literal
    - fu_struct_shim_hive_item_get_value_length
    - fu_input_stream_read_string
    - fu_struct_shim_hive_get_items_offset
    - fu_struct_shim_hive_get_header_version
    - fu_efi_load_option_set_metadata
    - fu_struct_shim_hive_item_parse_stream
    - fu_struct_shim_hive_parse_stream
    - fu_size_checked_inc
    - g_autoptr
    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:229,1
    - Dst: g_str_is_ascii
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:234,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:235,1
    - Dst: fu_efi_load_option_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - opt_blob
    - error
    argTypes:
    - FuEfiLoadOption*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 246
    functionName: fu_efi_load_option_parse_optional_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - fu_utf16_to_utf8_bytes
    - g_set_error
    - fu_efi_load_option_set_metadata
    - g_str_is_ascii
    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:255,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:256,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:257,1
    - Dst: fu_efi_load_option_parse_optional_hive
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:260,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:261,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:262,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:262,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:265,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:272,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:274,1
    - Dst: fu_efi_load_option_parse_optional_path
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:277,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:278,1
    - Dst: fu_efi_load_option_set_optional_data
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:279,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - self
    - stream
    - offset
    - error
    argTypes:
    - FuEfiLoadOption*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 288
    functionName: fu_efi_load_option_parse_optional
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - fu_efi_load_option_parse_optional_hive
    - fu_input_stream_read_bytes
    - g_debug
    - fu_input_stream_size
    - fu_efi_load_option_parse_optional_path
    - g_steal_pointer
    - fu_efi_load_option_set_optional_data
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    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: 15
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:296,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:300,1
    - Dst: fu_efi_device_path_list_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:300,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:301,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:301,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:302,1
    - Dst: fu_struct_efi_load_option_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:305,1
    - Dst: fu_struct_efi_load_option_get_attrs
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:308,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:311,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:312,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:317,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:322,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:329,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:333,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:336,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:337,1
    - Dst: fu_utf16_to_utf8_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:341,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:344,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:347,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:351,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:351,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:353,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:353,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:357,1
    - Dst: fu_struct_efi_load_option_get_dp_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:357,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:358,1
    - Dst: fu_efi_load_option_parse_optional
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:364,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 370
    functionName: fu_efi_load_option_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u16
    - fu_byte_array_append_uint16
    - fu_efi_device_path_list_new
    - fu_firmware_add_image
    - fu_struct_efi_load_option_get_dp_size
    - fu_struct_efi_load_option_parse_stream
    - g_prefix_error_literal
    - g_byte_array_new
    - fu_utf16_to_utf8_byte_array
    - fu_efi_load_option_parse_optional
    - FU_FIRMWARE
    - fu_struct_efi_load_option_get_attrs
    - FU_EFI_LOAD_OPTION
    - fu_firmware_set_id
    - g_set_error
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - fu_size_checked_inc
    - g_autoptr
    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:376,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:379,1
    - Dst: fu_struct_shim_hive_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:379,1
    - Dst: fu_struct_shim_hive_set_items_count
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:381,1
    - Dst: fu_struct_shim_hive_set_items_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:382,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:383,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:384,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:385,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:386,1
    - Dst: fu_struct_shim_hive_item_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:386,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:387,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:387,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:390,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:391,1
    - Dst: g_string_prepend
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:392,1
    - Dst: fu_struct_shim_hive_item_set_key_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:394,1
    - Dst: fu_struct_shim_hive_item_set_value_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:395,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:397,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:399,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:405,1
    - Dst: fu_struct_shim_hive_set_crc32
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:409,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:411,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:414,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEfiLoadOption*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 415
    functionName: fu_efi_load_option_write_hive
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - fu_struct_shim_hive_item_set_key_length
    - g_string_prepend
    - fu_crc32
    - fu_struct_shim_hive_set_crc32
    - g_hash_table_size
    - fu_struct_shim_hive_set_items_count
    - g_string_new
    - g_str_has_prefix
    - g_hash_table_iter_next
    - fu_struct_shim_hive_new
    - g_byte_array_append
    - fu_struct_shim_hive_set_items_offset
    - g_strcmp0
    - fu_byte_array_append_array
    - g_steal_pointer
    - fu_struct_shim_hive_item_set_value_length
    - strlen
    - fu_struct_shim_hive_item_new
    - g_hash_table_iter_init
    - g_autoptr
    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:420,1
    - Dst: g_hash_table_lookup
      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: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:422,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:425,1
    - Dst: g_string_prepend
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:426,1
    - Dst: fu_utf8_to_utf16_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:427,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEfiLoadOption*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 434
    functionName: fu_efi_load_option_write_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - g_string_prepend
    - g_hash_table_lookup
    - g_steal_pointer
    - g_string_new
    - fu_utf8_to_utf16_byte_array
    - g_str_has_prefix
    - g_autoptr
    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:439,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:440,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:441,1
    - Dst: fu_struct_efi_load_option_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:441,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:442,1
    - Dst: fu_struct_efi_load_option_set_attrs
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:445,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:448,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:449,1
    - Dst: fu_utf8_to_utf16_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:455,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:455,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:461,1
    - Dst: fu_firmware_get_image_by_gtype_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:464,1
    - Dst: fu_struct_efi_load_option_set_dp_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:467,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:467,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:468,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:472,1
    - Dst: fu_efi_load_option_write_hive
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:473,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:476,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:477,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:479,1
    - Dst: fu_efi_load_option_write_path
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:480,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:483,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:485,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:489,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 490
    functionName: fu_efi_load_option_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_efi_load_option_write_hive
    - fu_firmware_get_image_by_gtype_bytes
    - fu_byte_array_append_bytes
    - fu_byte_array_align_up
    - FU_EFI_LOAD_OPTION
    - fu_efi_load_option_write_path
    - fu_struct_efi_load_option_set_dp_size
    - g_set_error_literal
    - fu_utf8_to_utf16_byte_array
    - g_steal_pointer
    - fu_struct_efi_load_option_set_attrs
    - g_bytes_get_size
    - g_byte_array_append
    - fu_struct_efi_load_option_new
    - g_autoptr
    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:495,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:498,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:499,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:502,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:507,1
    - Dst: fu_efi_load_option_kind_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:509,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:511,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:521,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:523,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:524,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:527,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:527,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:528,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:530,1
    - Dst: fu_efi_load_option_set_optional_data
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:532,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:535,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:538,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:539,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:540,1
    - Dst: fu_efi_load_option_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:542,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:543,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 550
    functionName: fu_efi_load_option_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - FU_EFI_LOAD_OPTION
    - g_bytes_new
    - g_set_error
    - xb_node_query_text_as_uint
    - xb_node_query
    - xb_node_get_element
    - fu_efi_load_option_kind_from_string
    - fu_efi_load_option_set_metadata
    - xb_node_query_first
    - fu_efi_load_option_set_optional_data
    - g_autoptr
    - xb_node_get_text
    - g_ptr_array_index
    - g_base64_decode
    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:555,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:557,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:559,1
    - Dst: fu_efi_load_option_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:561,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:563,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:567,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:567,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:568,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:569,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:570,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:574,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:575,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:576,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 578
    functionName: fu_efi_load_option_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - FU_EFI_LOAD_OPTION
    - fu_xmlb_builder_insert_kx
    - g_bytes_get_data
    - xb_builder_node_insert_text
    - g_hash_table_size
    - fu_xmlb_builder_insert_kv
    - xb_builder_node_insert
    - g_hash_table_iter_next
    - g_hash_table_iter_init
    - g_autoptr
    - fu_efi_load_option_kind_to_string
    - g_base64_encode
    linkageType: ''
    returnType: void
    signature: void fu_efi_load_option_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:583,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:584,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:586,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:586,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:587,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:589,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:589,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:591,1
    - Dst: fu_efi_load_option_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:593,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:595,1
    - Dst: fwupd_json_object_add_object_map
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:596,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:598,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:598,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:600,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:600,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 580
    functionDepth: 4
    functionLinenumber: 580
    functionLinenumberEnd: 601
    functionName: fu_efi_load_option_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fwupd_json_object_add_object_map
    - fu_firmware_get_image_by_gtype
    - FU_EFI_LOAD_OPTION
    - FWUPD_CODEC
    - FU_FIRMWARE
    - g_hash_table_size
    - fwupd_codec_to_json
    - g_autoptr
    - fu_efi_load_option_kind_to_string
    - fwupd_json_object_add_string
    linkageType: ''
    returnType: void
    signature: void fu_efi_load_option_add_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 607
    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:612,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:614,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:615,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 617
    functionName: fu_efi_load_option_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - g_bytes_unref
    - g_hash_table_unref
    - FU_EFI_LOAD_OPTION
    - G_OBJECT_CLASS
    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:622,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiLoadOptionClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 629
    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:635,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:636,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:636,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:637,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-load-option.c:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiLoadOption*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 638
    functionName: fu_efi_load_option_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - g_hash_table_new_full
    - fu_firmware_set_size_max
    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:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 651
    functionName: fu_efi_load_option_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-load-option.c
    functionUses: 2
    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: 616
    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: 2
    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_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:76,1
    - Dst: fu_memread_string_safe
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:80,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:84,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:84,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:88,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:90,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 92
    functionName: fu_fdt_image_strlist_from_blob
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_new0
    - fu_memread_string_safe
    - g_bytes_get_data
    - g_ptr_array_add
    - g_string_free
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    linkageType: ''
    returnType: gchar
    signature: 'gchar **

      fu_fdt_image_strlist_from_blob(GBytes *blob, GError **error)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:97,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:98,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:102,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:103,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:105,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:108,1
    - Dst: fu_fdt_image_guess_format_from_key
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:112,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:113,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:114,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:115,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:116,1
    - Dst: fu_memread_uint64
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:117,1
    - Dst: g_strdup_printf
      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_strndup
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:120,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:121,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:122,1
    - Dst: fu_fdt_image_strlist_from_blob
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:122,1
    - Dst: g_strjoinv
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:124,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:126,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:128,1
    - Dst: xb_builder_node_set_text
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:130,1
    - Dst: xb_builder_node_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:132,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 134
    functionName: fu_fdt_image_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - g_hash_table_lookup
    - fu_memread_uint32
    - xb_builder_node_set_attr
    - g_strdup_printf
    - g_auto
    - FU_FDT_IMAGE
    - fu_fdt_image_strlist_from_blob
    - xb_builder_node_insert
    - g_hash_table_iter_next
    - GET_PRIVATE
    - g_bytes_get_data
    - fu_memread_uint64
    - xb_builder_node_set_text
    - g_strndup
    - g_strcmp0
    - fu_fdt_image_guess_format_from_key
    - g_strjoinv
    - g_hash_table_iter_init
    - g_autoptr
    - g_base64_encode
    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:149,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:150,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:151,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:153,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:153,1
    - Dst: g_list_sort
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:155,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:155,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:158,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFdtImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 161
    functionName: fu_fdt_image_get_attrs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_hash_table_get_keys
    - g_ptr_array_add
    - g_list_sort
    - g_ptr_array_new_with_free_func
    - g_autoptr
    - FU_IS_FDT_IMAGE
    - GET_PRIVATE
    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:178,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:181,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:181,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:182,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:183,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:185,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:187,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FuFdtImage*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 193
    functionName: fu_fdt_image_get_attr
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_ref
    - g_set_error
    - g_hash_table_lookup
    - FU_IS_FDT_IMAGE
    - GET_PRIVATE
    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:211,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:213,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:213,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:214,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:215,1
    - Dst: fu_fdt_image_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:217,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:220,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:221,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:226,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:231,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - self
    - key
    - val
    - error
    argTypes:
    - FuFdtImage*
    - gchar*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 233
    functionName: fu_fdt_image_get_attr_u32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    - g_bytes_get_data
    - fu_memread_uint32
    - g_bytes_get_size
    - fu_fdt_image_get_attr
    - g_autoptr
    - FU_IS_FDT_IMAGE
    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:251,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:253,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:253,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:254,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:255,1
    - Dst: fu_fdt_image_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:257,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:260,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:261,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:266,1
    - Dst: fu_memread_uint64
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:271,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - key
    - val
    - error
    argTypes:
    - FuFdtImage*
    - gchar*
    - guint64*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 273
    functionName: fu_fdt_image_get_attr_u64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    - g_bytes_get_data
    - fu_memread_uint64
    - g_bytes_get_size
    - fu_fdt_image_get_attr
    - g_autoptr
    - FU_IS_FDT_IMAGE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fdt_image_get_attr_u64(FuFdtImage *self, const gchar *key,
      guint64 *val, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:291,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:294,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:296,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:296,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:297,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:298,1
    - Dst: fu_fdt_image_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:300,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:303,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:304,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:309,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:314,1
    - Dst: g_ascii_isprint
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:316,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:317,1
    - Dst: fu_fdt_image_strlist_from_blob
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:329,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:335,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - self
    - key
    - val
    - error
    argTypes:
    - FuFdtImage*
    - gchar*
    - gchar***
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 337
    functionName: fu_fdt_image_get_attr_strlist
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    - fu_fdt_image_strlist_from_blob
    - g_bytes_get_data
    - g_steal_pointer
    - g_ascii_isprint
    - g_bytes_get_size
    - fu_fdt_image_get_attr
    - g_auto
    - g_autoptr
    - FU_IS_FDT_IMAGE
    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:355,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:359,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:359,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:360,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:361,1
    - Dst: fu_fdt_image_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:363,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:366,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:367,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:372,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:377,1
    - Dst: g_ascii_isprint
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:379,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:380,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:393,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:393,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:393,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - self
    - key
    - val
    - error
    argTypes:
    - FuFdtImage*
    - gchar*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 395
    functionName: fu_fdt_image_get_attr_str
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strndup
    - g_set_error
    - g_bytes_get_data
    - g_ascii_isprint
    - g_bytes_get_size
    - fu_fdt_image_get_attr
    - g_autoptr
    - FU_IS_FDT_IMAGE
    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: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: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - blob
    argTypes:
    - FuFdtImage*
    - gchar*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 414
    functionName: fu_fdt_image_set_attr
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - g_bytes_ref
    - g_return_if_fail
    - FU_IS_FDT_IMAGE
    - GET_PRIVATE
    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:419,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:420,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:420,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:421,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:422,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:422,1
    - Dst: strdup
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - format
    argTypes:
    - FuFdtImage*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 423
    functionName: fu_fdt_image_set_attr_format
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - strdup
    - g_return_if_fail
    - FU_IS_FDT_IMAGE
    - GET_PRIVATE
    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:439,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:441,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:441,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:442,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:444,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:445,1
    - Dst: fu_fdt_image_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:446,1
    - Dst: fu_fdt_image_set_attr_format
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuFdtImage*
    - gchar*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 448
    functionName: fu_fdt_image_set_attr_uint32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - fu_fdt_image_set_attr_format
    - g_bytes_new
    - fu_fdt_image_set_attr
    - g_return_if_fail
    - g_autoptr
    - FU_IS_FDT_IMAGE
    - fu_memwrite_uint32
    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:464,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:466,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:466,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:467,1
    - Dst: fu_memwrite_uint64
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:469,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:470,1
    - Dst: fu_fdt_image_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:471,1
    - Dst: fu_fdt_image_set_attr_format
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuFdtImage*
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 473
    functionName: fu_fdt_image_set_attr_uint64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - fu_fdt_image_set_attr_format
    - g_bytes_new
    - fu_fdt_image_set_attr
    - g_return_if_fail
    - fu_memwrite_uint64
    - g_autoptr
    - FU_IS_FDT_IMAGE
    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:488,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:490,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:490,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:491,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:492,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:494,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:494,1
    - Dst: fu_fdt_image_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:495,1
    - Dst: fu_fdt_image_set_attr_format
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuFdtImage*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 497
    functionName: fu_fdt_image_set_attr_str
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - fu_fdt_image_set_attr_format
    - g_bytes_new
    - fu_fdt_image_set_attr
    - g_return_if_fail
    - strlen
    - g_autoptr
    - FU_IS_FDT_IMAGE
    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:512,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:512,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:513,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:515,1
    - Dst: FU_IS_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:515,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:516,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:517,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:518,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:521,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:521,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:522,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:524,1
    - Dst: fu_fdt_image_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:525,1
    - Dst: fu_fdt_image_set_attr_format
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuFdtImage*
    - gchar*
    - gchar**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 527
    functionName: fu_fdt_image_set_attr_strlist
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - fu_fdt_image_set_attr_format
    - g_bytes_new
    - fu_fdt_image_set_attr
    - g_return_if_fail
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - strlen
    - g_byte_array_append
    - g_autoptr
    - FU_IS_FDT_IMAGE
    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:534,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:536,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:538,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:541,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:543,1
    - Dst: fu_fdt_image_set_attr_format
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:550,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:553,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:556,1
    - Dst: fu_fdt_image_set_attr_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:564,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:567,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:570,1
    - Dst: fu_fdt_image_set_attr_uint64
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:578,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:581,1
    - Dst: fu_fdt_image_set_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:583,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:585,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:585,1
    - Dst: fu_fdt_image_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:586,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:590,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:592,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:592,1
    - Dst: fu_fdt_image_set_attr_strlist
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:593,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:595,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:595,1
    - Dst: fu_fdt_image_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:596,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:600,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:601,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:604,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:605,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:607,1
    - Dst: fu_fdt_image_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:609,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:614,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 3
    argNames:
    - self
    - n
    - error
    argTypes:
    - FuFdtImage*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 620
    functionName: fu_fdt_image_build_metadata_node
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - fu_fdt_image_set_attr_strlist
    - g_strcmp0
    - fu_fdt_image_set_attr_str
    - fu_fdt_image_set_attr_format
    - g_bytes_new
    - g_set_error
    - fu_fdt_image_set_attr
    - fu_strtoull
    - g_set_error_literal
    - fu_fdt_image_set_attr_uint64
    - g_strsplit
    - fu_fdt_image_set_attr_uint32
    - xb_node_get_attr
    - g_auto
    - g_autoptr
    - xb_node_get_text
    - g_base64_decode
    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:625,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:626,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:628,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:631,1
    - Dst: fu_fdt_image_build_metadata_node
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:632,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 622
    functionDepth: 3
    functionLinenumber: 622
    functionLinenumberEnd: 639
    functionName: fu_fdt_image_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - FU_FDT_IMAGE
    - xb_node_query
    - g_autoptr
    - fu_fdt_image_build_metadata_node
    - g_ptr_array_index
    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:644,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:646,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:647,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:648,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:648,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:649,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:649,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:650,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFdtImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 651
    functionName: fu_fdt_image_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - g_hash_table_new_full
    - fu_firmware_set_size_max
    - GET_PRIVATE
    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:656,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:657,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:658,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:659,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 661
    functionName: fu_fdt_image_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_hash_table_unref
    - G_OBJECT_CLASS
    - FU_FDT_IMAGE
    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:666,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFdtImageClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 671
    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:683,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-image.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_fdt_image_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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_return_val_if_fail
    - fu_msgpack_item_parse
    - g_steal_pointer
    - g_ptr_array_add
    - g_prefix_error
    - g_autoptr
    - g_ptr_array_new_with_free_func
    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_return_val_if_fail
    - g_steal_pointer
    - fu_msgpack_item_append
    - g_byte_array_new
    - g_autoptr
    - g_ptr_array_index
    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:
    - g_return_val_if_fail
    - g_strcmp0
    - g_set_error
    - g_set_error_literal
    - fu_msgpack_item_get_string
    - fu_msgpack_item_get_map
    - g_object_ref
    - fu_msgpack_item_kind_to_string
    - fu_msgpack_item_get_kind
    - g_ptr_array_index
    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: 16
    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: 1
    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:80,1
    - Dst: FU_IS_X509_CERTIFICATE
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:80,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:81,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:83,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - issuer
    argTypes:
    - FuX509Certificate*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: fu_x509_certificate_set_issuer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FU_IS_X509_CERTIFICATE
    - g_return_if_fail
    - 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:90,1
    - Dst: FU_IS_X509_CERTIFICATE
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:90,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:91,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:93,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - subject
    argTypes:
    - FuX509Certificate*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: fu_x509_certificate_set_subject
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FU_IS_X509_CERTIFICATE
    - g_return_if_fail
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_x509_certificate_set_subject(FuX509Certificate *self, const
      gchar *subject)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:100,1
    - Dst: FU_IS_X509_CERTIFICATE
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:100,1
    - Dst: g_date_time_unref
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:102,1
    - Dst: g_date_time_new_from_unix_utc
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - activation_time
    argTypes:
    - FuX509Certificate*
    - gint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    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
    - g_return_if_fail
    - FU_IS_X509_CERTIFICATE
    linkageType: ''
    returnType: void
    signature: void fu_x509_certificate_set_activation_time(FuX509Certificate *self,
      gint64 activation_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:120,1
    - Dst: FU_IS_X509_CERTIFICATE
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuX509Certificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: fu_x509_certificate_get_subject
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    functionUses: 1
    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_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:137,1
    - Dst: FU_IS_X509_CERTIFICATE
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:137,1
    - Dst: g_date_time_ref
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuX509Certificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 141
    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:150,1
    - Dst: g_auto
      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_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:161,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:162,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:162,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:165,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:168,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:169,1
    - Dst: gnutls_x509_crt_init
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:171,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:173,1
    - Dst: gnutls_strerror
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:177,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_calloc
      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: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:203,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:209,1
    - Dst: fu_x509_certificate_set_subject
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:210,1
    - Dst: gnutls_x509_crt_get_activation_time
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:214,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:216,1
    - Dst: fu_x509_certificate_set_activation_time
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:222,1
    - Dst: gnutls_x509_crt_get_key_id
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:225,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:227,1
    - Dst: gnutls_strerror
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:231,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:235,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:236,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:237,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:242,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 245
    functionName: fu_x509_certificate_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    functionUses: 0
    functionsReached:
    - fu_strsafe
    - g_auto
    - gnutls_x509_crt_get_activation_time
    - gnutls_x509_crt_get_key_id
    - gnutls_x509_crt_get_subject
    - g_set_error_literal
    - fu_x509_certificate_set_issuer
    - fu_x509_certificate_set_activation_time
    - gnutls_strerror
    - g_string_new
    - MIN
    - gnutls_calloc
    - g_bytes_get_data
    - gnutls_x509_dn_get_str
    - gnutls_x509_crt_init
    - fu_input_stream_read_bytes
    - gnutls_x509_crt_import
    - fu_firmware_set_id
    - g_set_error
    - fu_x509_certificate_set_subject
    - FU_X509_CERTIFICATE
    - g_bytes_get_size
    - g_string_append_printf
    - gnutls_x509_crt_get_issuer_dn
    - g_autoptr
    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:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:250,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuX509Certificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: fu_x509_certificate_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:256,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:257,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:258,1
    - Dst: g_date_time_unref
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:260,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 262
    functionName: fu_x509_certificate_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-x509-certificate.c
    functionUses: 0
    functionsReached:
    - FU_X509_CERTIFICATE
    - g_date_time_unref
    - g_free
    - G_OBJECT_CLASS
    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:267,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-x509-certificate.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuX509CertificateClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 272
    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:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 287
    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:34,1
    - Dst: FU_IS_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:34,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:35,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidReportItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    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
    - FU_IS_HID_REPORT_ITEM
    - fu_firmware_get_idx
    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:41,1
    - Dst: FU_IS_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidReportItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    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:48,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:49,1
    - Dst: fu_hid_item_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:51,1
    - Dst: fu_hid_report_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:51,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.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: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: fu_hid_report_item_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-report-item.c
    functionUses: 0
    functionsReached:
    - fu_hid_item_kind_to_string
    - fu_hid_report_item_get_kind
    - fu_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    - FU_HID_REPORT_ITEM
    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:61,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:67,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:71,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:72,1
    - Dst: fu_hid_item_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:72,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:76,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:79,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:88,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:91,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:96,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:100,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:107,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:109,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:112,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:117,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 119
    functionName: fu_hid_report_item_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-report-item.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u8
    - fu_hid_item_tag_to_string
    - fu_input_stream_read_u16
    - fu_firmware_set_id
    - fu_input_stream_read_u32
    - fu_input_stream_size
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_firmware_set_idx
    - g_autoptr
    - fu_firmware_set_stream
    - FU_HID_REPORT_ITEM
    - fu_partial_input_stream_new
    - fu_firmware_set_size
    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:124,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:125,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:125,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:126,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:129,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:132,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:133,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:136,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:137,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:140,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:141,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 146
    functionName: fu_hid_report_item_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-report-item.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint16
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - g_autoptr
    - FU_HID_REPORT_ITEM
    - fu_firmware_get_idx
    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:151,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:156,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:158,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:160,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:161,1
    - Dst: fu_hid_item_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:161,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:163,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:165,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:166,1
    - Dst: fu_hid_item_tag_from_string
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:166,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:168,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    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_hid_report_item_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-report-item.c
    functionUses: 0
    functionsReached:
    - fu_hid_item_tag_to_string
    - xb_node_query_text
    - fu_firmware_set_id
    - fu_strtoull
    - fu_hid_item_tag_from_string
    - fu_firmware_set_idx
    - FU_HID_REPORT_ITEM
    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:182,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:182,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:183,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-report-item.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidReportItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: fu_hid_report_item_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-report-item.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHidReportItemClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 194
    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:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:19,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:20,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:22,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:22,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:26,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:27,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:28,1
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:31,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:33,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:34,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 36
    functionName: fu_firmware_raw_aligned_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - g_assert_error
    - g_assert_no_error
    - fu_firmware_new
    - fu_firmware_parse_bytes
    - fu_firmware_set_alignment
    - g_assert_false
    - g_assert_true
    - g_autoptr
    - g_bytes_new_static
    linkageType: ''
    returnType: void
    signature: void fu_firmware_raw_aligned_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:47,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:50,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:52,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:53,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:54,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:55,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:56,1
    - Dst: fu_fdt_firmware_get_cpuid
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:56,1
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:56,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:57,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:58,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:60,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:61,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:62,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:63,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:63,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:64,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:65,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:66,1
    - Dst: fu_fdt_firmware_get_image_by_path
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:69,1
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:69,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:72,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:73,1
    - Dst: fu_fdt_image_get_attr_u32
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:74,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:74,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:75,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:76,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:77,1
    - Dst: fu_fdt_image_get_attr_u64
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:80,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:81,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 83
    functionName: fu_firmware_fdt_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_fdt_image_get_attr_str
    - g_assert_nonnull
    - fu_firmware_to_string
    - fu_firmware_get_image_by_id
    - g_autoptr
    - fu_fdt_image_get_attr_u32
    - g_debug
    - FU_FDT_IMAGE
    - g_assert_cmpint
    - fu_fdt_firmware_get_cpuid
    - g_assert_false
    - fu_fdt_firmware_get_image_by_path
    - fu_fdt_image_get_attr_u64
    - g_assert_error
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - FU_FDT_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_firmware_fdt_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:92,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:94,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:96,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:97,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:98,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:99,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:100,1
    - Dst: fu_fit_firmware_get_timestamp
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:100,1
    - Dst: FU_FIT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:100,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:101,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:102,1
    - Dst: fu_fdt_firmware_get_image_by_path
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:104,1
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:104,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:107,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:108,1
    - Dst: fu_fdt_image_get_attr_strlist
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:109,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:109,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:113,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:114,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:115,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:116,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:117,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:118,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 120
    functionName: fu_firmware_fit_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - FU_FIT_FIRMWARE
    - fu_fdt_image_get_attr_strlist
    - g_assert_true
    - g_debug
    - FU_FDT_IMAGE
    - g_assert_nonnull
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - g_assert_cmpint
    - fu_firmware_to_string
    - fu_fdt_firmware_get_image_by_path
    - FU_FDT_FIRMWARE
    - g_auto
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - fu_fit_firmware_get_timestamp
    linkageType: ''
    returnType: void
    signature: void fu_firmware_fit_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:127,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:128,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:132,1
    - Dst: xb_builder_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:132,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:133,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:133,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:134,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:135,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:153,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:153,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:154,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:155,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:158,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:159,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:160,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:161,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:162,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:163,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:164,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:165,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:166,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:167,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:170,1
    - Dst: fu_firmware_build
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:171,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:172,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:173,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:174,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:174,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:177,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:178,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:179,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:180,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:180,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:181,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:181,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:182,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:182,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:183,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:184,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:185,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:186,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:186,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:187,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:187,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:187,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 189
    functionName: fu_firmware_build_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - xb_builder_compile
    - fu_firmware_write
    - xb_builder_source_new
    - xb_builder_source_load_bytes
    - g_assert_nonnull
    - fu_firmware_get_image_by_id
    - xb_builder_import_source
    - g_assert_cmpint
    - xb_silo_query_first
    - fu_firmware_get_idx
    - g_bytes_new_static
    - g_bytes_get_data
    - fu_firmware_build
    - fu_firmware_new
    - fu_firmware_get_version
    - g_strndup
    - fu_firmware_add_image_gtype
    - g_assert_no_error
    - fu_firmware_get_addr
    - strlen
    - g_bytes_get_size
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - xb_builder_new
    linkageType: ''
    returnType: void
    signature: void fu_firmware_build_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:195,1
    - Dst: fu_firmware_get_chunks
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:195,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:198,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - firmware
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 202
    functionName: fu_dfuse_firmware_image_get_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_firmware_get_chunks
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gsize
    signature: gsize fu_dfuse_firmware_image_get_size(FuFirmware *firmware)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:209,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:209,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:211,1
    - Dst: fu_dfuse_firmware_image_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - firmware
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 215
    functionName: fu_dfuse_firmware_get_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_dfuse_firmware_image_get_size
    - g_ptr_array_index
    - fu_firmware_get_images
    linkageType: ''
    returnType: gsize
    signature: gsize fu_dfuse_firmware_get_size(FuFirmware *firmware)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:222,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:225,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:226,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:227,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:228,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:229,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:230,1
    - Dst: fu_dfu_firmware_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:230,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:230,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:231,1
    - Dst: fu_dfu_firmware_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:231,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:231,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:232,1
    - Dst: fu_dfu_firmware_get_release
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:232,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:232,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:233,1
    - Dst: fu_dfuse_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 234
    functionName: fu_firmware_dfuse_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_dfu_firmware_get_vid
    - fu_dfu_firmware_get_pid
    - fu_dfu_firmware_get_release
    - g_assert_nonnull
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - g_assert_cmpint
    - FU_DFU_FIRMWARE
    - g_test_build_filename
    - fu_dfuse_firmware_get_size
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_firmware_dfuse_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:242,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:243,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:244,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:245,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:246,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:247,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:250,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:255,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:256,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:257,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:258,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:259,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:262,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:263,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:266,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:267,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:268,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:269,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:270,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:271,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:272,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:272,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:273,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:273,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:273,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:274,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:277,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:278,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:279,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:280,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 284
    functionName: fu_firmware_fmap_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - fu_firmware_write
    - fu_firmware_get_bytes
    - g_bytes_get_data
    - g_assert_nonnull
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - fu_firmware_get_images
    - g_assert_cmpint
    - fu_firmware_get_image_by_id
    - g_bytes_get_size
    - g_test_skip
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - g_compute_checksum_for_bytes
    linkageType: ''
    returnType: void
    signature: void fu_firmware_fmap_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:292,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:292,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:293,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:293,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:294,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:294,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:295,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:295,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:296,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:298,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:299,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:300,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:302,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:303,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:304,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:306,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:307,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:308,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:309,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:310,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:311,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:312,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:313,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:314,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:315,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:318,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:319,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:320,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:321,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:322,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:341,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:342,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:343,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:344,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 362
    functionName: fu_firmware_sorted_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - g_debug
    - fu_firmware_add_image
    - fu_firmware_add_image_gtype
    - g_assert_no_error
    - fu_firmware_set_idx
    - fu_firmware_new
    - fu_firmware_add_flag
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - fu_firmware_export_to_xml
    linkageType: ''
    returnType: void
    signature: void fu_firmware_sorted_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:368,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:369,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:370,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:371,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:372,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:373,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:374,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:376,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:377,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:378,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:379,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:380,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:381,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:382,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:383,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:384,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:385,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:388,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:396,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:397,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:398,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:398,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:401,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:408,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:409,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:410,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:410,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:413,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:419,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 421
    functionName: fu_firmware_new_from_gtypes_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_memory_input_stream_new_from_bytes
    - fu_firmware_new_from_gtypes
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - G_OBJECT_TYPE_NAME
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fu_firmware_new_from_gtypes_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:429,1
    - Dst: fu_csv_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:429,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:430,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:431,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:432,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:437,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:437,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:438,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:438,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:439,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:439,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:440,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:440,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:441,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:441,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:442,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:442,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:444,1
    - Dst: fu_csv_firmware_get_column_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:444,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:444,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:445,1
    - Dst: fu_csv_firmware_get_column_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:445,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:445,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:448,1
    - Dst: fu_csv_firmware_get_column_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:448,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:448,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:451,1
    - Dst: fu_csv_firmware_get_column_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:451,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:451,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:453,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:453,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:454,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:455,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:456,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:457,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:458,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:460,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:461,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:463,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:465,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:465,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:465,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:466,1
    - Dst: fu_csv_entry_get_value_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:466,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:467,1
    - Dst: fu_csv_entry_get_value_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:467,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:468,1
    - Dst: fu_csv_entry_get_value_by_column_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 471
    functionName: fu_firmware_csv_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - fu_csv_firmware_add_column_id
    - fu_firmware_to_string
    - fu_csv_firmware_new
    - fu_csv_entry_get_value_by_idx
    - g_ptr_array_index
    - fu_firmware_get_id
    - g_debug
    - g_assert_cmpint
    - fu_firmware_get_images
    - fu_csv_entry_get_value_by_column_id
    - fu_firmware_parse_bytes
    - fu_csv_firmware_get_column_id
    - FU_FIRMWARE
    - FU_CSV_FIRMWARE
    - g_assert_no_error
    - strlen
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_firmware_csv_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:477,1
    - Dst: fu_linear_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:477,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:478,1
    - Dst: fu_linear_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:478,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:479,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:479,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:480,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:480,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:481,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:482,1
    - Dst: fu_oprom_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:482,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:483,1
    - Dst: fu_oprom_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:483,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:484,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:485,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:489,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:490,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:491,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:492,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:493,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:494,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:495,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:496,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:497,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:498,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:499,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:500,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:500,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:503,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:508,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:509,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:510,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:511,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:514,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 516
    functionName: fu_firmware_linear_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_debug
    - fu_firmware_add_image
    - fu_linear_firmware_new
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fu_firmware_to_string
    - fu_firmware_set_bytes
    - fu_firmware_get_images
    - fu_firmware_parse_bytes
    - g_bytes_get_size
    - g_assert_true
    - g_autoptr
    - g_bytes_new_static
    - fu_oprom_firmware_new
    linkageType: ''
    returnType: void
    signature: void fu_firmware_linear_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:522,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:523,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:524,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:526,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:527,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:528,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:529,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:530,1
    - Dst: fu_dfu_firmware_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:530,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:530,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:531,1
    - Dst: fu_dfu_firmware_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:531,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:531,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:532,1
    - Dst: fu_dfu_firmware_get_release
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:532,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:532,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:533,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:534,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:535,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:536,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 537
    functionName: fu_firmware_dfu_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_dfu_firmware_get_vid
    - fu_dfu_firmware_get_pid
    - fu_firmware_get_bytes
    - fu_dfu_firmware_get_release
    - g_assert_nonnull
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - g_assert_cmpint
    - FU_DFU_FIRMWARE
    - g_bytes_get_size
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_firmware_dfu_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:543,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:544,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:545,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:546,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:547,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:549,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:550,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:551,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:552,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:553,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:553,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:554,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:555,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:556,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:557,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:557,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:559,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:560,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:561,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:562,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:562,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:563,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:563,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:565,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:566,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:567,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:568,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:568,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:569,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 570
    functionName: fu_firmware_ifwi_cpd_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_assert_nonnull
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - g_assert_cmpint
    - fu_firmware_get_image_by_id
    - fu_firmware_get_offset
    - fu_firmware_get_size
    - g_bytes_get_size
    - g_test_build_filename
    - g_autoptr
    - fu_firmware_get_idx
    linkageType: ''
    returnType: void
    signature: void fu_firmware_ifwi_cpd_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:576,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:577,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:578,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:579,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:580,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:582,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:583,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:584,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:585,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:586,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:587,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:588,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:589,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:589,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:591,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:592,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:593,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:594,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:594,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:595,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:595,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:597,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:598,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:599,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:600,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:600,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:601,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 602
    functionName: fu_firmware_ifwi_fpt_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_firmware_get_image_by_idx
    - g_assert_nonnull
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - g_assert_cmpint
    - fu_firmware_get_offset
    - fu_firmware_get_size
    - g_bytes_get_size
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_firmware_ifwi_fpt_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:609,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:610,1
    - Dst: fu_oprom_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:610,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:611,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:612,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:613,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:615,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:616,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:617,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:618,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:619,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:619,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:620,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:621,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:622,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:623,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:623,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:626,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:631,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:632,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:633,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:634,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:635,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:636,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:636,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:637,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 638
    functionName: fu_firmware_oprom_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_assert_nonnull
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - g_assert_cmpint
    - fu_firmware_get_image_by_id
    - fu_firmware_get_offset
    - fu_firmware_parse_bytes
    - fu_firmware_get_size
    - g_bytes_get_size
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - fu_firmware_get_idx
    - fu_oprom_firmware_new
    linkageType: ''
    returnType: void
    signature: void fu_firmware_oprom_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:645,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:646,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:647,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:647,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:648,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:648,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:649,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:651,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:652,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:653,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:654,1
    - Dst: fu_firmware_add_patch
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:657,1
    - Dst: fu_firmware_add_patch
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:658,1
    - Dst: fu_firmware_add_patch
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:659,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:661,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:662,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:663,1
    - Dst: fu_dump_full
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:664,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:666,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:667,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:670,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 672
    functionName: fu_firmware_dfu_patch_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_patch
    - fu_firmware_write
    - g_bytes_get_data
    - g_assert_nonnull
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - g_bytes_get_size
    - fu_dump_full
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - g_compute_checksum_for_bytes
    - g_bytes_new_static
    linkageType: ''
    returnType: void
    signature: void fu_firmware_dfu_patch_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:678,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:678,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:679,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:679,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:680,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:680,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:681,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:682,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:683,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:684,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:687,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:689,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:690,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:691,1
    - Dst: fu_firmware_set_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:692,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:693,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:694,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:695,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:696,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:697,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:698,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:699,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:700,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:701,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:704,1
    - Dst: fu_firmware_get_depth
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:704,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:705,1
    - Dst: fu_firmware_get_depth
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:705,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:706,1
    - Dst: fu_firmware_get_depth
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:706,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:708,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:709,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:710,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:711,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:712,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:713,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:714,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:715,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:715,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:716,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:716,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:717,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:717,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:719,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:720,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:721,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:722,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:723,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:724,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:725,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:726,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:726,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:727,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:727,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:728,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:728,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:730,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:731,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:749,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:750,1
    - Dst: fu_firmware_remove_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:752,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:753,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:754,1
    - Dst: fu_firmware_remove_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:755,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:756,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:757,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:758,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:759,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:760,1
    - Dst: fu_firmware_remove_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:761,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:762,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 764
    functionName: fu_firmware_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_image_by_idx
    - fu_firmware_get_depth
    - g_assert_nonnull
    - fu_firmware_get_image_by_id
    - fu_firmware_to_string
    - fu_firmware_set_addr
    - fu_firmware_get_id
    - fu_firmware_add_image
    - fu_test_compare_lines
    - g_assert_cmpint
    - fu_firmware_get_images
    - fu_firmware_remove_image_by_idx
    - fu_firmware_get_idx
    - g_assert_null
    - fu_firmware_set_idx
    - fu_firmware_new
    - g_assert_false
    - fu_firmware_set_id
    - fu_firmware_set_filename
    - fu_firmware_add_image_gtype
    - g_assert_error
    - g_assert_no_error
    - fu_firmware_get_addr
    - g_clear_error
    - fu_firmware_remove_image_by_id
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_firmware_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:769,1
    - Dst: fu_intel_thunderbolt_nvm_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:769,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:770,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:771,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 772
    functionName: fu_firmware_convert_version_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_raw
    - fu_intel_thunderbolt_nvm_new
    - g_assert_cmpstr
    - g_autoptr
    - fu_firmware_get_version
    linkageType: ''
    returnType: void
    signature: void fu_firmware_convert_version_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:779,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:781,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:782,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:783,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:784,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:786,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:787,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:788,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:789,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:791,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:792,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 794
    functionName: fu_firmware_common_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_strparse_uint8_safe
    - g_assert_error
    - g_assert_no_error
    - g_assert_cmpint
    - g_assert_false
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_firmware_common_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:800,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:800,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:801,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:801,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:802,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:802,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:803,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:803,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:804,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:804,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:805,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:805,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:806,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:807,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:808,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:810,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:811,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:812,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:813,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:815,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:816,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:817,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:818,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:819,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:820,1
    - Dst: fu_firmware_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:820,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:822,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:823,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:824,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:825,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:826,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:828,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:829,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:830,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:831,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:832,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:834,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:835,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:836,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:837,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:838,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:840,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:841,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:842,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:843,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:843,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:844,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:844,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:846,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:847,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:848,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:849,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:849,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:850,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:850,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:852,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:853,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 855
    functionName: fu_firmware_dedupe_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_image_by_idx
    - g_assert_nonnull
    - fu_firmware_get_image_by_id
    - fu_firmware_add_flag
    - fu_firmware_get_id
    - fu_firmware_add_image
    - fu_firmware_set_images_max
    - g_assert_cmpint
    - fu_firmware_get_parent
    - fu_firmware_get_idx
    - fu_firmware_set_idx
    - fu_firmware_new
    - g_assert_false
    - fu_firmware_set_id
    - fu_firmware_add_image_gtype
    - g_assert_error
    - g_assert_no_error
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_firmware_dedupe_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1101,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1104,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1106,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1107,1
    - Dst: fu_firmware_roundtrip_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1108,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1112,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 1115
    functionName: fu_firmware_builder_round_trip_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_assert_no_error
    - fu_firmware_roundtrip_from_filename
    - G_N_ELEMENTS
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_firmware_builder_round_trip_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1120,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1120,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1122,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1123,1
    - Dst: fu_context_add_firmware_gtypes
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1124,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1125,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1126,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1127,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1128,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1129,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1130,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1131,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1132,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1133,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1134,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1135,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1136,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1137,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1138,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1139,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1140,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1141,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1142,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1143,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1144,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-firmware-test.c:1145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1146
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-test.c
    functionUses: 3
    functionsReached:
    - fu_context_new
    - fu_context_add_firmware_gtypes
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    - g_autoptr
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autolist
      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_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:31,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:32,1
    - Dst: g_bus_get_sync
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:34,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:36,1
    - Dst: g_dbus_object_manager_client_new_sync
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:40,1
    - Dst: g_dbus_object_manager_get_objects
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:51,1
    - Dst: G_DBUS_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:53,1
    - Dst: g_dbus_object_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:54,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:55,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:56,1
    - Dst: g_dbus_object_get_interface
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:59,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:61,1
    - Dst: g_dbus_proxy_new_sync
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:64,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:73,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:76,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:76,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:80,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 81
    functionName: fu_common_get_block_devices_legacy
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-linux.c
    functionUses: 0
    functionsReached:
    - g_bus_get_sync
    - g_dbus_object_manager_get_objects
    - g_debug
    - g_autolist
    - g_steal_pointer
    - g_ptr_array_add
    - g_prefix_error_literal
    - g_dbus_proxy_new_sync
    - g_prefix_error
    - g_dbus_object_get_object_path
    - G_DBUS_OBJECT
    - g_dbus_object_manager_client_new_sync
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_dbus_object_get_interface
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_common_get_block_devices_legacy(GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:92,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:93,1
    - Dst: g_bus_get_sync
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:95,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:97,1
    - Dst: g_dbus_proxy_new_sync
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:100,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:109,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:113,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:114,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:115,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:117,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:123,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:124,1
    - Dst: fu_common_get_block_devices_legacy
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:125,1
    - Dst: g_dbus_error_strip_remote_error
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:127,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:128,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:129,1
    - Dst: g_variant_get
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:136,1
    - Dst: g_variant_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:137,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:138,1
    - Dst: g_dbus_proxy_new_sync
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:139,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:148,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:151,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:151,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:153,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 154
    functionName: fu_common_get_block_devices
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-linux.c
    functionUses: 3
    functionsReached:
    - g_bus_get_sync
    - g_debug
    - g_variant_builder_init
    - g_steal_pointer
    - g_dbus_error_strip_remote_error
    - g_dbus_proxy_new_sync
    - g_prefix_error
    - g_prefix_error_literal
    - g_ptr_array_add
    - g_error_matches
    - g_variant_new
    - g_ptr_array_new_with_free_func
    - g_dbus_proxy_call_sync
    - g_autoptr
    - g_variant_iter_next
    - fu_common_get_block_devices_legacy
    - g_variant_get
    - g_propagate_prefixed_error
    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:159,1
    - Dst: sysconf
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 164
    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:172,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:173,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:173,1
    - Dst: fu_kernel_get_cmdline
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:253,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:256,1
    - Dst: g_hash_table_remove
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:257,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:258,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:259,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:261,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:263,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:266,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:269,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:269,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 270
    functionName: fu_common_get_kernel_cmdline_impl
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-linux.c
    functionUses: 0
    functionsReached:
    - g_hash_table_remove
    - g_string_append
    - g_steal_pointer
    - fu_kernel_get_cmdline
    - g_string_free
    - G_N_ELEMENTS
    - g_string_new
    - g_string_append_printf
    - g_hash_table_iter_init
    - g_autoptr
    - g_hash_table_iter_next
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_common_get_kernel_cmdline_impl(GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:276,1
    - Dst: fu_path_store_get_path
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:278,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:283,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:284,1
    - Dst: g_file_query_file_type
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:285,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:288,1
    - Dst: g_file_query_info
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:290,1
    - Dst: g_file_info_get_symlink_target
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:297,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:299,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:299,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:300,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:302,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:309,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-common-linux.c:316,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - pstore
    - error
    argTypes:
    - FuPathStore*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 321
    functionName: fu_common_get_olson_timezone_id_impl
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-linux.c
    functionUses: 0
    functionsReached:
    - fu_path_store_get_path
    - g_auto
    - g_debug
    - g_set_error
    - g_set_error_literal
    - g_file_info_get_symlink_target
    - g_file_query_info
    - g_strsplit
    - g_strv_length
    - g_strdup_printf
    - g_file_new_for_path
    - g_autoptr
    - g_file_query_file_type
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_common_get_olson_timezone_id_impl(FuPathStore *pstore, 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: 623
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 3
    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_build_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:55,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:56,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:58,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:58,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:58,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:61,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:64,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:67,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:67,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:67,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 69
    functionName: fu_efi_x509_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_firmware_get_version_raw
    - fu_firmware_get_id
    - fu_device_set_version_raw
    - fu_device_build_instance_id
    - fu_device_add_instance_strup
    - g_set_error_literal
    - fu_device_add_instance_strsafe
    - FU_FIRMWARE
    - fu_efi_x509_signature_get_subject_name
    - fu_device_set_name
    - g_strdup_printf
    - fu_device_set_vendor
    - fu_efi_x509_signature_get_subject_vendor
    - FU_EFI_X509_DEVICE
    - fu_device_build_vendor_id
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_x509_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:74,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: fu_efi_x509_device_vendor_notify_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_vendor
    - fu_device_build_vendor_id
    linkageType: ''
    returnType: void
    signature: void fu_efi_x509_device_vendor_notify_cb(FuDevice *device, GParamSpec
      *pspec, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint64
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:82,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    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:92,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: 99
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 99
    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 *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: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:110,1
    - Dst: FU_IS_EFI_VARIABLE_AUTHENTICATION2
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:113,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:114,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:115,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:115,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:117,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:121,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:122,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:123,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:126,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:129,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:133,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:134,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:136,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:136,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:137,1
    - Dst: FuDeviceClass*::write_firmware
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:140,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:141,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:141,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 149
    functionName: fu_efi_x509_device_write_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - FuDeviceClass*::write_firmware
    - g_debug
    - fu_firmware_get_bytes
    - fu_device_get_proxy
    - g_ptr_array_add
    - fu_progress_set_steps
    - FU_DEVICE_GET_CLASS
    - fu_firmware_get_images
    - g_prefix_error
    - g_object_ref
    - fu_progress_step_done
    - FU_IS_EFI_VARIABLE_AUTHENTICATION2
    - g_autoptr
    - fu_progress_set_status
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    - fu_progress_set_id
    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:154,1
    - Dst: fu_progress_add_flag
      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
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:157,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:158,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:159,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 161
    functionName: fu_efi_x509_device_set_progress
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_efi_x509_device_set_progress(FuDevice *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      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_set_proxy_gtype
      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_protocol
      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_flag
      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
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:170,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:170,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:171,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:171,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:172,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:172,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:173,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:173,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:174,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:174,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:175,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:175,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiX509Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 179
    functionName: fu_efi_x509_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_signal_connect
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - G_CALLBACK
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:184,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:185,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:187,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 189
    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
    - G_OBJECT_CLASS
    - GET_PRIVATE
    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:194,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiX509DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 202
    functionName: fu_efi_x509_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_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:218,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:219,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:220,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:221,1
    - Dst: FU_IS_EFI_X509_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:221,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:222,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - sig
    argTypes:
    - FuContext*
    - FuEfiX509Signature*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 224
    functionName: fu_efi_x509_device_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EFI_X509_SIGNATURE
    - g_steal_pointer
    - g_object_ref
    - g_object_new
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: FuEfiX509Device
    signature: 'FuEfiX509Device *

      fu_efi_x509_device_new(FuContext *ctx, FuEfiX509Signature *sig)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_efi_vss2_variable_store_header_validate_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: fu_efi_vss2_variable_store_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_vss2_variable_store_header_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_vss2_variable_store_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: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:48,1
    - Dst: fu_struct_efi_vss2_variable_store_header_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:50,1
    - Dst: fu_struct_efi_vss2_variable_store_header_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:55,1
    - Dst: fu_firmware_get_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:56,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:57,1
    - Dst: fu_struct_efi_vss2_variable_store_header_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:61,1
    - Dst: fu_firmware_get_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:62,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:67,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:68,1
    - Dst: fu_struct_efi_vss2_variable_store_header_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:72,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:73,1
    - Dst: fu_efi_vss_auth_variable_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:73,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:75,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:76,1
    - Dst: fu_firmware_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:79,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:81,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:82,1
    - Dst: fu_efi_vss_auth_variable_get_state
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:88,1
    - Dst: FU_EFI_VSS_AUTH_VARIABLE
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:88,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:90,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:91,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:94,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:94,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:96,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:100,1
    - Dst: fu_struct_efi_vss2_variable_store_header_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:100,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 102
    functionName: fu_efi_vss2_variable_store_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_offset
    - fu_firmware_get_size
    - fu_firmware_add_image
    - fu_efi_vss_auth_variable_new
    - fu_struct_efi_vss2_variable_store_header_parse_stream
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_firmware_get_size_max
    - fu_struct_efi_vss2_variable_store_header_get_size
    - fu_common_align_up
    - fu_efi_vss_auth_variable_get_state
    - fu_firmware_set_size
    - g_set_error
    - fu_firmware_parse_stream
    - g_prefix_error
    - FU_EFI_VSS_AUTH_VARIABLE
    - fu_firmware_has_flag
    - fu_size_checked_inc
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_vss2_variable_store_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: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:107,1
    - Dst: fu_struct_efi_vss2_variable_store_header_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:109,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:109,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:112,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:113,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:122,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:123,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:125,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:128,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:129,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:133,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:134,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:139,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:144,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:144,1
    - Dst: fu_struct_efi_vss2_variable_store_header_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:145,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:145,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 149
    functionName: fu_efi_vss2_variable_store_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_byte_array_append_bytes
    - fu_byte_array_align_up
    - g_set_error
    - fu_struct_efi_vss2_variable_store_header_set_size
    - g_set_error_literal
    - g_steal_pointer
    - fu_struct_efi_vss2_variable_store_header_new
    - fu_firmware_get_images
    - fu_firmware_get_size
    - g_autoptr
    - fu_byte_array_set_size
    - g_ptr_array_index
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_vss2_variable_store_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:154,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:154,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:155,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:155,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:156,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:156,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:158,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:158,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:159,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:159,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:161,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:161,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:162,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiVss2VariableStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 164
    functionName: fu_efi_vss2_variable_store_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_efi_vss2_variable_store_init(FuEfiVss2VariableStore *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiVss2VariableStoreClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: fu_efi_vss2_variable_store_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_vss2_variable_store_class_init(FuEfiVss2VariableStoreClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: fu_efi_vss2_variable_store_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_efi_vss2_variable_store_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-pefile-firmware.c
    functionUses: 626
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PEFILE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:50,1
    - Dst: GET_PRIVATE
      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_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:53,1
    - Dst: fu_coff_subsystem_to_string
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: fu_pefile_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - FU_PEFILE_FIRMWARE
    - fu_xmlb_builder_insert_kv
    - fu_coff_subsystem_to_string
    - GET_PRIVATE
    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:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    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:74,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:75,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - regions
    - name
    - offset
    - size
    argTypes:
    - GPtrArray*
    - gchar*
    - gsize
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: fu_pefile_firmware_add_region
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_ptr_array_add
    - g_new0
    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:84,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - FuPefileFirmwareRegion*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    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: 98
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 98
    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: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:112,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:113,1
    - Dst: fu_struct_pe_coff_section_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:115,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:117,1
    - Dst: fu_struct_pe_coff_section_get_name
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:120,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:122,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:128,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:134,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:140,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:141,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:144,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:152,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:154,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:161,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:165,1
    - Dst: fu_linear_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:166,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:167,1
    - Dst: g_strcmp0
      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_csv_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:169,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:170,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:170,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:171,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:171,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:172,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:172,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:173,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:173,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:174,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:174,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:175,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:175,1
    - Dst: fu_csv_firmware_set_write_column_ids
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:176,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:176,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:177,1
    - Dst: fu_sbatlevel_section_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:178,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:180,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:182,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:183,1
    - Dst: fu_struct_pe_coff_section_get_virtual_size
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:186,1
    - Dst: fu_struct_pe_coff_section_get_pointer_to_raw_data
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:187,1
    - Dst: fu_struct_pe_coff_section_get_virtual_size
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:188,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:189,1
    - Dst: fu_struct_pe_coff_section_get_virtual_size
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:192,1
    - Dst: fu_struct_pe_coff_section_get_size_of_raw_data
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:193,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:194,1
    - Dst: fu_struct_pe_coff_section_get_size_of_raw_data
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:196,1
    - Dst: fu_struct_pe_coff_section_get_size_of_raw_data
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:197,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:200,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:201,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:203,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:206,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:207,1
    - Dst: fu_pefile_firmware_add_region
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:212,1
    - Dst: fu_struct_pe_coff_section_get_size_of_raw_data
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:215,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:219,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:219,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 72
    argCount: 8
    argNames:
    - self
    - stream
    - idx
    - hdr_offset
    - strtab_offset
    - regions
    - flags
    - error
    argTypes:
    - FuPefileFirmware*
    - GInputStream*
    - guint
    - gsize
    - gsize
    - GPtrArray*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 220
    functionName: fu_pefile_firmware_parse_section
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - fu_strsafe
    - fu_csv_firmware_add_column_id
    - fu_struct_pe_coff_section_get_pointer_to_raw_data
    - fu_csv_firmware_new
    - g_strdup_printf
    - fu_struct_pe_coff_section_get_size_of_raw_data
    - fu_firmware_set_offset
    - g_debug
    - fu_firmware_add_image
    - fu_struct_pe_coff_section_get_name
    - g_set_error_literal
    - fu_csv_firmware_set_write_column_ids
    - g_prefix_error_literal
    - fu_input_stream_read_safe
    - fu_strtoull
    - FU_FIRMWARE
    - fu_firmware_set_idx
    - fu_firmware_new
    - FU_CSV_FIRMWARE
    - fu_sbatlevel_section_new
    - fu_partial_input_stream_new
    - fu_struct_pe_coff_section_parse_stream
    - g_strcmp0
    - fu_firmware_set_id
    - fu_firmware_parse_stream
    - fu_linear_firmware_new
    - fu_struct_pe_coff_section_get_virtual_size
    - g_steal_pointer
    - fu_pefile_firmware_add_region
    - g_prefix_error
    - fu_size_checked_inc
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pefile_firmware_parse_section(FuPefileFirmware *self,\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: 30
    BranchProfiles: []
    Callsites:
    - Dst: FU_PEFILE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:228,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:229,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:240,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:241,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:242,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:243,1
    - Dst: fu_composite_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:243,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:246,1
    - Dst: fu_struct_pe_dos_header_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:250,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:252,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:255,1
    - Dst: fu_struct_pe_dos_header_get_lfanew
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:255,1
    - Dst: fu_struct_pe_coff_file_header_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:257,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:259,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:262,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:263,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:267,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:271,1
    - Dst: fu_pefile_firmware_add_region
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:275,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:279,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:283,1
    - Dst: fu_pefile_firmware_add_region
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:291,1
    - Dst: fu_struct_pe_coff_file_header_get_size_of_optional_header
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:299,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:300,1
    - Dst: fu_struct_pe_coff_optional_header64_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:301,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:303,1
    - Dst: fu_struct_pe_coff_optional_header64_get_size_of_headers
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:308,1
    - Dst: fu_struct_pe_coff_optional_header64_get_size_of_headers
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:311,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:313,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:320,1
    - Dst: fu_pefile_firmware_add_region
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:329,1
    - Dst: fu_struct_pe_coff_optional_header64_get_size_of_certificate_table
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:337,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:339,1
    - Dst: fu_struct_pe_coff_file_header_get_size_of_optional_header
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:341,1
    - Dst: fu_struct_pe_coff_file_header_get_number_of_sections
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:347,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:349,1
    - Dst: fu_struct_pe_coff_file_header_get_pointer_to_symbol_table
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:355,1
    - Dst: fu_struct_pe_coff_file_header_get_number_of_symbols
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:357,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:359,1
    - Dst: fu_size_from_uint64
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:367,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:369,1
    - Dst: fu_pefile_firmware_parse_section
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:374,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:382,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:385,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:386,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:392,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:396,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:401,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:406,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:417,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:421,1
    - Dst: fu_pefile_firmware_add_region
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:430,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:438,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:439,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:443,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:448,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:450,1
    - Dst: fu_composite_input_stream_add_partial_stream
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:453,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:454,1
    - Dst: FU_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:455,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:460,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 115
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 466
    functionName: fu_pefile_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - FU_COMPOSITE_INPUT_STREAM
    - fu_struct_pe_coff_optional_header64_get_size_of_headers
    - FU_PARTIAL_INPUT_STREAM
    - fu_pefile_firmware_parse_section
    - g_ptr_array_index
    - g_ptr_array_sort
    - g_debug
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_struct_pe_coff_file_header_get_size_of_optional_header
    - g_ptr_array_new_with_free_func
    - fu_struct_pe_dos_header_get_lfanew
    - GET_PRIVATE
    - fu_input_stream_read_safe
    - fu_composite_input_stream_new
    - fu_size_from_uint64
    - fu_composite_input_stream_add_partial_stream
    - fu_struct_pe_coff_file_header_get_pointer_to_symbol_table
    - fu_struct_pe_coff_file_header_get_number_of_symbols
    - fu_struct_pe_coff_file_header_parse_stream
    - fu_struct_pe_coff_optional_header64_parse_stream
    - fu_struct_pe_coff_file_header_get_number_of_sections
    - fu_partial_input_stream_new
    - fu_struct_pe_dos_header_parse_stream
    - g_set_error
    - fu_input_stream_size
    - fu_input_stream_compute_checksum
    - fu_struct_pe_coff_optional_header64_get_size_of_certificate_table
    - FU_PEFILE_FIRMWARE
    - fu_pefile_firmware_add_region
    - g_prefix_error
    - fu_size_checked_inc
    - g_autoptr
    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:479,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:480,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - section
    argTypes:
    - FuPefileSection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 482
    functionName: fu_pefile_firmware_section_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - g_bytes_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_pefile_firmware_section_free(FuPefileSection *section)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:490,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:490,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:491,1
    - Dst: fu_struct_pe_dos_header_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:491,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:492,1
    - Dst: fu_struct_pe_coff_file_header_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:492,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:493,1
    - Dst: fu_struct_pe_coff_optional_header64_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:494,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:495,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:495,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:496,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:497,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:500,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:502,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:504,1
    - Dst: fu_size_checked_inc_product
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:506,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:509,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:509,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:510,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:513,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:516,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:517,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:520,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:520,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:521,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:521,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:522,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:524,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:524,1
    - Dst: fu_struct_pe_coff_optional_header64_set_number_of_rva_and_sizes
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:528,1
    - Dst: fu_struct_pe_coff_file_header_set_size_of_optional_header
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:531,1
    - Dst: fu_struct_pe_coff_file_header_set_number_of_sections
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:532,1
    - Dst: fu_struct_pe_coff_file_header_set_pointer_to_symbol_table
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:533,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:534,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:535,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:539,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:540,1
    - Dst: fu_struct_pe_coff_section_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:540,1
    - Dst: fu_struct_pe_coff_section_set_size_of_raw_data
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:542,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:543,1
    - Dst: fu_struct_pe_coff_section_set_virtual_address
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:544,1
    - Dst: fu_struct_pe_coff_section_set_virtual_size
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:545,1
    - Dst: fu_struct_pe_coff_section_set_pointer_to_raw_data
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:546,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:550,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:557,1
    - Dst: fu_struct_pe_coff_section_set_name
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:558,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:561,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:562,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:562,1
    - Dst: fu_struct_pe_coff_section_set_name
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:564,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:568,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:570,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:572,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:579,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:580,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:582,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:587,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:588,1
    - Dst: fu_bytes_pad
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:589,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:590,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:594,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:597,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 74
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 598
    functionName: fu_pefile_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_struct_pe_coff_section_set_size_of_raw_data
    - fu_struct_pe_dos_header_new
    - fu_struct_pe_coff_file_header_set_pointer_to_symbol_table
    - fu_struct_pe_coff_section_set_virtual_size
    - fu_struct_pe_coff_section_new
    - g_strdup_printf
    - fu_struct_pe_coff_section_set_virtual_address
    - fu_struct_pe_coff_section_set_pointer_to_raw_data
    - fu_size_checked_inc_product
    - fu_bytes_pad
    - g_ptr_array_index
    - fu_firmware_get_id
    - fu_byte_array_append_bytes
    - fu_struct_pe_coff_optional_header64_new
    - g_new0
    - g_debug
    - fu_struct_pe_coff_file_header_new
    - fu_firmware_get_images
    - g_byte_array_new
    - fu_common_align_up
    - g_ptr_array_new_with_free_func
    - fu_struct_pe_coff_file_header_set_number_of_sections
    - fu_struct_pe_coff_file_header_set_size_of_optional_header
    - g_byte_array_append
    - g_strdup
    - fu_byte_array_append_array
    - g_set_error
    - g_steal_pointer
    - g_ptr_array_add
    - fu_struct_pe_coff_optional_header64_set_number_of_rva_and_sizes
    - fu_struct_pe_coff_section_set_name
    - strlen
    - g_bytes_get_size
    - fu_size_checked_inc
    - g_autoptr
    - 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:603,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:604,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:606,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:613,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - firmware
    - csum_kind
    - error
    argTypes:
    - FuFirmware*
    - GChecksumType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 620
    functionName: fu_pefile_firmware_get_checksum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_set_error_literal
    - FU_PEFILE_FIRMWARE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_pefile_firmware_get_checksum(FuFirmware *firmware, GChecksumType csum_kind,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:625,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:625,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:626,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:626,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:627,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:627,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:628,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:628,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:629,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPefileFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 630
    functionName: fu_pefile_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_set_size_max
    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:635,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:636,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:637,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 639
    functionName: fu_pefile_firmware_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - FU_PEFILE_FIRMWARE
    - g_free
    - G_OBJECT_CLASS
    - GET_PRIVATE
    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:644,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPefileFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 652
    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:664,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 665
    functionName: fu_pefile_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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:34,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:37,1
    - Dst: fu_fdt_image_get_attr_strlist
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:40,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:40,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:43,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:44,1
    - Dst: fu_hwids_add_guid
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:45,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:49,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:51,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:51,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:54,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:58,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:58,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:70,1
    - Dst: fu_context_set_chassis_kind
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:71,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:78,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:79,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:79,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:80,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:81,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:82,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:84,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:85,1
    - Dst: fu_context_get_chassis_kind
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:86,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:87,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:87,1
    - Dst: fu_context_set_chassis_kind
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:88,1
    - Dst: fu_fdt_firmware_get_image_by_path
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:91,1
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:91,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:94,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:94,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:95,1
    - Dst: fu_fdt_firmware_get_image_by_path
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:100,1
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:100,1
    - Dst: fu_fdt_image_get_attr_u32
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:106,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:111,1
    - Dst: g_date_time_new_from_unix_utc
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:111,1
    - Dst: g_date_time_format
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:112,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:113,1
    - Dst: fu_fdt_firmware_get_image_by_path
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:117,1
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:118,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_fdt_image_get_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:125,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:125,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:130,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c:132,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 75
    argCount: 3
    argNames:
    - ctx
    - self
    - error
    argTypes:
    - FuContext*
    - FuHwids*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 137
    functionName: fu_hwids_fdt_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c
    functionUses: 0
    functionsReached:
    - fu_fdt_image_get_attr_strlist
    - fu_fdt_image_get_attr_str
    - fu_firmware_get_image_by_id
    - g_strv_length
    - g_autoptr
    - g_auto
    - g_date_time_new_from_unix_utc
    - fu_fdt_image_get_attr_u32
    - g_debug
    - FU_FDT_IMAGE
    - g_strsplit
    - fwupd_guid_hash_string
    - fu_context_get_fdt
    - fu_hwids_add_guid
    - fu_fdt_firmware_get_image_by_path
    - g_strcmp0
    - fu_context_get_chassis_kind
    - fu_context_set_chassis_kind
    - fu_hwids_add_value
    - G_N_ELEMENTS
    - g_date_time_format
    - FU_FDT_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hwids_fdt_setup(FuContext *ctx, FuHwids *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:52,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiVssAuthVariable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: fu_efi_vss_auth_variable_get_state
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FIRMWARE
    linkageType: ''
    returnType: FuEfiVariableState
    signature: FuEfiVariableState fu_efi_vss_auth_variable_get_state(FuEfiVssAuthVariable
      *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_VSS_AUTH_VARIABLE
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:61,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:62,1
    - Dst: fu_efi_variable_state_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:64,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:65,1
    - Dst: fu_efi_variable_attrs_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:68,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:72,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:72,1
    - Dst: fu_efi_timestamp_export
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 75
    functionName: fu_efi_vss_auth_variable_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c
    functionUses: 0
    functionsReached:
    - fu_efi_variable_attrs_to_string
    - FU_EFI_VSS_AUTH_VARIABLE
    - fu_efi_timestamp_export
    - fu_xmlb_builder_insert_kv
    - xb_builder_node_insert
    - g_autoptr
    - fu_efi_variable_state_to_string
    linkageType: ''
    returnType: void
    signature: "void fu_efi_vss_auth_variable_export(FuFirmware *firmware,\n\t\t\t\tFuFirmwareExportFlags
      flags,\n\t\t\t\tXbBuilderNode *bn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:90,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:91,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:92,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:92,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiVssAuthVariable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 96
    functionName: fu_efi_vss_auth_variable_lookup_image_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - FU_FIRMWARE
    - g_strcmp0
    - G_N_ELEMENTS
    linkageType: ''
    returnType: GType
    signature: GType fu_efi_vss_auth_variable_lookup_image_gtype(FuEfiVssAuthVariable
      *self)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_VSS_AUTH_VARIABLE
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:104,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:108,1
    - Dst: fu_struct_efi_vss_auth_variable_header_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:111,1
    - Dst: fu_struct_efi_vss_auth_variable_header_get_start_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:114,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:115,1
    - Dst: fu_struct_efi_vss_auth_variable_header_get_start_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:118,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:120,1
    - Dst: fu_struct_efi_vss_auth_variable_header_get_start_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:125,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:131,1
    - Dst: fu_struct_efi_vss_auth_variable_header_get_vendor_guid
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:131,1
    - Dst: fu_struct_efi_vss_auth_variable_header_get_attributes
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:133,1
    - Dst: fu_struct_efi_vss_auth_variable_header_get_state
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:134,1
    - Dst: fu_struct_efi_vss_auth_variable_header_get_timestamp
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:135,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:138,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:139,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:143,1
    - Dst: fu_struct_efi_vss_auth_variable_header_get_name_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:146,1
    - Dst: fu_utf16_to_utf8_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:151,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:154,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:155,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:158,1
    - Dst: fu_struct_efi_vss_auth_variable_header_get_name_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:159,1
    - Dst: fu_efi_vss_auth_variable_lookup_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:166,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:166,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:167,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:168,1
    - Dst: fu_struct_efi_vss_auth_variable_header_get_data_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:171,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:175,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:177,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:180,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:181,1
    - Dst: fu_struct_efi_vss_auth_variable_header_get_data_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:184,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:189,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:193,1
    - Dst: fu_struct_efi_vss_auth_variable_header_get_data_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:194,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:199,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 201
    functionName: fu_efi_vss_auth_variable_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_vss_auth_variable_header_get_vendor_guid
    - fwupd_guid_to_string
    - fu_struct_efi_vss_auth_variable_header_parse_stream
    - fu_firmware_set_bytes
    - fu_efi_vss_auth_variable_lookup_image_gtype
    - g_object_new
    - fu_struct_efi_vss_auth_variable_header_get_attributes
    - fu_firmware_add_flag
    - g_debug
    - fu_firmware_add_image
    - g_prefix_error_literal
    - fu_input_stream_read_byte_array
    - fu_utf16_to_utf8_byte_array
    - fu_struct_efi_vss_auth_variable_header_get_state
    - fu_firmware_set_size
    - fu_struct_efi_vss_auth_variable_header_get_name_size
    - fu_struct_efi_vss_auth_variable_header_get_timestamp
    - fu_partial_input_stream_new
    - fu_struct_efi_vss_auth_variable_header_get_start_id
    - fu_input_stream_read_bytes
    - fu_firmware_set_id
    - g_set_error
    - fu_firmware_parse_stream
    - fu_struct_efi_vss_auth_variable_header_get_data_size
    - FU_EFI_VSS_AUTH_VARIABLE
    - fu_size_checked_inc
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_vss_auth_variable_parse(FuFirmware *firmware,\n\t\t\t
      \      GInputStream *stream,\n\t\t\t       FuFirmwareParseFlags flags,\n\t\t\t
      \      GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_VSS_AUTH_VARIABLE
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:206,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:207,1
    - Dst: fu_struct_efi_vss_auth_variable_header_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:208,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:209,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:210,1
    - Dst: fu_struct_efi_vss_auth_variable_header_set_attributes
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:213,1
    - Dst: fu_struct_efi_vss_auth_variable_header_set_state
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:214,1
    - Dst: fu_struct_efi_vss_auth_variable_header_set_timestamp
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:216,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:223,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:224,1
    - Dst: fu_utf8_to_utf16_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:230,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:230,1
    - Dst: fu_struct_efi_vss_auth_variable_header_set_name_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:236,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:236,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:239,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:241,1
    - Dst: fu_struct_efi_vss_auth_variable_header_set_data_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:245,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:245,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:250,1
    - Dst: fu_struct_efi_vss_auth_variable_header_set_vendor_guid
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:255,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:259,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:260,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:263,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 264
    functionName: fu_efi_vss_auth_variable_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_struct_efi_vss_auth_variable_header_set_data_size
    - fu_struct_efi_vss_auth_variable_header_set_state
    - fu_byte_array_append_bytes
    - fu_firmware_get_bytes
    - fu_struct_efi_vss_auth_variable_header_set_vendor_guid
    - fu_struct_efi_vss_auth_variable_header_set_attributes
    - g_set_error_literal
    - fu_utf8_to_utf16_bytes
    - fu_firmware_get_image_by_id_bytes
    - fwupd_guid_from_string
    - g_steal_pointer
    - FU_EFI_VSS_AUTH_VARIABLE
    - fu_struct_efi_vss_auth_variable_header_new
    - fu_struct_efi_vss_auth_variable_header_set_timestamp
    - fu_struct_efi_vss_auth_variable_header_set_name_size
    - g_bytes_get_size
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_vss_auth_variable_write(FuFirmware *firmware, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_VSS_AUTH_VARIABLE
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:269,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:271,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:274,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:276,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:277,1
    - Dst: fu_efi_variable_attrs_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:279,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:280,1
    - Dst: fu_efi_variable_state_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:282,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:285,1
    - Dst: fu_struct_efi_time_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:287,1
    - Dst: fu_efi_timestamp_build
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:288,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 293
    functionName: fu_efi_vss_auth_variable_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - xb_node_query_text
    - fu_struct_efi_time_new
    - FU_EFI_VSS_AUTH_VARIABLE
    - fu_efi_variable_state_from_string
    - fu_efi_variable_attrs_from_string
    - fu_efi_timestamp_build
    - xb_node_query_first
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_vss_auth_variable_build(FuFirmware *firmware, XbNode
      *n, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:298,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:298,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:299,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:299,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:300,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiVssAuthVariable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 301
    functionName: fu_efi_vss_auth_variable_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_efi_vss_auth_variable_init(FuEfiVssAuthVariable *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_VSS_AUTH_VARIABLE
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:306,1
    - Dst: fu_struct_efi_time_unref
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:308,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:309,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 311
    functionName: fu_efi_vss_auth_variable_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c
    functionUses: 0
    functionsReached:
    - FU_EFI_VSS_AUTH_VARIABLE
    - g_free
    - fu_struct_efi_time_unref
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_vss_auth_variable_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:316,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiVssAuthVariableClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 323
    functionName: fu_efi_vss_auth_variable_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_vss_auth_variable_class_init(FuEfiVssAuthVariableClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 338
    functionName: fu_efi_vss_auth_variable_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_efi_vss_auth_variable_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:20,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:29,1
    - Dst: fu_context_add_firmware_gtypes
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:31,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:33,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:34,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:35,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:38,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:39,1
    - Dst: fu_firmware_new_from_xml
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:42,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:49,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:50,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:51,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:52,1
    - Dst: fu_firmware_write_file
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:53,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:53,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:54,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:55,1
    - Dst: fu_context_get_fdt
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:58,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:59,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:60,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:61,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:62,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:63,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:64,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:64,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:65,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:66,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:67,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:70,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:71,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:72,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:73,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:74,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:75,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:76,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:77,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 79
    functionName: fu_fdt_firmware_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_fdt_image_get_attr_str
    - fu_context_set_tmpdir
    - g_assert_nonnull
    - fu_firmware_get_image_by_id
    - g_autoptr
    - fu_firmware_get_image_by_gtype
    - fu_context_add_firmware_gtypes
    - FU_FDT_IMAGE
    - g_file_new_for_path
    - fu_temporary_directory_new
    - fu_firmware_write_file
    - g_assert_null
    - fu_firmware_new_from_xml
    - fu_context_get_fdt
    - FU_FIRMWARE
    - g_assert_error
    - g_assert_no_error
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - fu_temporary_directory_build
    linkageType: ''
    returnType: void
    signature: void fu_fdt_firmware_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:84,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:85,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:86,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_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: 1
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuFuzzerInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: fu_fuzzer_default_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fuzzer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_fuzzer_default_init(FuFuzzerInterface *iface)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FUZZER_GET_IFACE
      Src: /src/fwupd/libfwupdplugin/fu-fuzzer.c:33,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fuzzer.c:35,1
    - Dst: FuFuzzerInterface*::test_input
      Src: /src/fwupd/libfwupdplugin/fu-fuzzer.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - blob
    - error
    argTypes:
    - FuFuzzer*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: fu_fuzzer_test_input
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fuzzer.c
    functionUses: 1
    functionsReached:
    - FU_FUZZER_GET_IFACE
    - g_set_error_literal
    - FuFuzzerInterface*::test_input
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fuzzer_test_input(FuFuzzer *self, GBytes *blob, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FUZZER_GET_IFACE
      Src: /src/fwupd/libfwupdplugin/fu-fuzzer.c:59,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fuzzer.c:61,1
    - Dst: FuFuzzerInterface*::build_example
      Src: /src/fwupd/libfwupdplugin/fu-fuzzer.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - blob
    - error
    argTypes:
    - FuFuzzer*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: fu_fuzzer_build_example
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fuzzer.c
    functionUses: 1
    functionsReached:
    - FU_FUZZER_GET_IFACE
    - FuFuzzerInterface*::build_example
    - g_set_error_literal
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_fuzzer_build_example(FuFuzzer *self, GBytes *blob, GError **error)'
  - BBCount: 6
    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:44,1
    - Dst: g_printerr
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:46,1
    - Dst: fu_firmware_write_file
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:52,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:52,1
    - Dst: g_printerr
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:53,1
    - Dst: g_printerr
      Src: /src/fwupd/libfwupdplugin/fu-gcab.c:59,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 61
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-gcab.c
    functionUses: 3
    functionsReached:
    - fu_bytes_get_contents
    - g_path_get_basename
    - fu_firmware_set_id
    - fu_firmware_add_image
    - FU_FIRMWARE
    - g_option_context_add_main_entries
    - fu_firmware_set_bytes
    - g_printerr
    - fu_cab_image_new
    - g_option_context_new
    - g_autoptr
    - g_file_new_for_path
    - fu_firmware_write_file
    - fu_cab_firmware_new
    - g_option_context_parse
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:20,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:20,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item1
    - item2
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: fu_security_attrs_sort_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-test.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fwupd_security_attr_get_appstream_id
    linkageType: ''
    returnType: gint
    signature: gint fu_security_attrs_sort_cb(gconstpointer item1, gconstpointer item2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:27,1
    - Dst: fu_security_attrs_get_all_mutable
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:27,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:29,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:30,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:31,1
    - Dst: fwupd_security_attr_set_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:32,1
    - Dst: fwupd_security_attr_set_flags
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:33,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:34,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - attrs
    argTypes:
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 37
    functionName: fu_security_attrs_minimize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-test.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_sort
    - fwupd_security_attr_set_fwupd_version
    - fwupd_security_attr_set_plugin
    - fwupd_security_attr_set_flags
    - fu_security_attrs_get_all_mutable
    - fwupd_security_attr_set_level
    - fwupd_security_attr_set_url
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_security_attrs_minimize(FuSecurityAttrs *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:44,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:44,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:45,1
    - Dst: fu_intel_me_device_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:45,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:46,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:47,1
    - Dst: fu_struct_intel_me_hfsts_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:47,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:48,1
    - Dst: fu_struct_intel_me_hfsts_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:50,1
    - Dst: fu_intel_me_device_get_hfsts
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:52,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:53,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:66,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:66,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:67,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:67,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:68,1
    - Dst: fu_intel_me_device_get_family
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:68,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:69,1
    - Dst: fu_intel_me_device_get_issue
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:69,1
    - Dst: fu_struct_intel_me_hfsts_set_value
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:71,1
    - Dst: fu_struct_intel_me_hfsts_set_value
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:72,1
    - Dst: fu_intel_me_device_set_hfsts
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:73,1
    - Dst: fu_intel_me_device_set_hfsts
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:74,1
    - Dst: fu_device_add_security_attrs
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:76,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:76,1
    - Dst: fu_security_attrs_depsolve
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:77,1
    - Dst: fu_security_attrs_minimize
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:78,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:79,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:79,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:80,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:81,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:82,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:83,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:128,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 130
    functionName: fu_intel_me16_device_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-test.c
    functionUses: 0
    functionsReached:
    - fu_device_set_plugin
    - FWUPD_CODEC
    - fu_device_set_version
    - fu_device_add_security_attrs
    - g_assert_nonnull
    - fu_context_new_full
    - fu_intel_me_device_new
    - fu_intel_me_device_get_hfsts
    - g_debug
    - fu_test_compare_lines
    - fu_security_attrs_new
    - fu_struct_intel_me_hfsts_new
    - g_assert_cmpint
    - g_assert_null
    - fu_intel_me_device_set_hfsts
    - FU_DEVICE
    - fu_security_attrs_depsolve
    - fu_intel_me_device_get_issue
    - fu_struct_intel_me_hfsts_set_value
    - fu_intel_me_device_get_family
    - g_assert_no_error
    - fwupd_codec_to_json_string
    - fu_security_attrs_minimize
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_intel_me16_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:137,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:137,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:138,1
    - Dst: fu_intel_me_device_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:138,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:139,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:139,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:140,1
    - Dst: fu_struct_intel_me_hfsts_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:140,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:141,1
    - Dst: fu_struct_intel_me_hfsts_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:141,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:142,1
    - Dst: fu_struct_intel_me_hfsts_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:143,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:157,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:157,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:158,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:158,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:159,1
    - Dst: fu_intel_me_device_get_family
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:159,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:160,1
    - Dst: fu_intel_me_device_get_issue
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:160,1
    - Dst: fu_struct_intel_me_hfsts_set_value
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:162,1
    - Dst: fu_struct_intel_me_hfsts_set_value
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:163,1
    - Dst: fu_struct_intel_me_hfsts_set_value
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:164,1
    - Dst: fu_intel_me_device_set_hfsts
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:165,1
    - Dst: fu_intel_me_device_set_hfsts
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:166,1
    - Dst: fu_intel_me_device_set_hfsts
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:167,1
    - Dst: fu_device_add_security_attrs
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:169,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:169,1
    - Dst: fu_security_attrs_depsolve
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:170,1
    - Dst: fu_security_attrs_minimize
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:171,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:172,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:172,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:173,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:174,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:175,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:176,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:216,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 218
    functionName: fu_intel_me18_device_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-test.c
    functionUses: 0
    functionsReached:
    - fu_device_set_plugin
    - FWUPD_CODEC
    - fu_device_set_version
    - fu_device_add_security_attrs
    - g_assert_nonnull
    - fu_context_new_full
    - fu_intel_me_device_new
    - g_debug
    - fu_test_compare_lines
    - fu_security_attrs_new
    - fu_struct_intel_me_hfsts_new
    - g_assert_cmpint
    - fu_intel_me_device_set_hfsts
    - FU_DEVICE
    - fu_security_attrs_depsolve
    - fu_intel_me_device_get_issue
    - fu_struct_intel_me_hfsts_set_value
    - fu_intel_me_device_get_family
    - g_assert_no_error
    - fwupd_codec_to_json_string
    - fu_security_attrs_minimize
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_intel_me18_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:225,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:225,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:226,1
    - Dst: fu_intel_me_device_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:226,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:227,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:227,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:228,1
    - Dst: fu_struct_intel_me_hfsts_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:228,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:229,1
    - Dst: fu_struct_intel_me_hfsts_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:229,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:230,1
    - Dst: fu_struct_intel_me_hfsts_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:230,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:231,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:245,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:245,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:246,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:246,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:247,1
    - Dst: fu_intel_me_device_get_family
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:247,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:248,1
    - Dst: fu_intel_me_device_get_issue
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:248,1
    - Dst: fu_struct_intel_me_hfsts_set_value
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:250,1
    - Dst: fu_struct_intel_me_hfsts_set_value
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:251,1
    - Dst: fu_struct_intel_me_hfsts_set_value
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:252,1
    - Dst: fu_intel_me_device_set_hfsts
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:253,1
    - Dst: fu_intel_me_device_set_hfsts
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:254,1
    - Dst: fu_intel_me_device_set_hfsts
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:255,1
    - Dst: fu_device_add_security_attrs
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:257,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:257,1
    - Dst: fu_security_attrs_depsolve
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:258,1
    - Dst: fu_security_attrs_minimize
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:259,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:260,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:260,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:261,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:262,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:263,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:264,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:309,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 311
    functionName: fu_intel_me16_device_hap_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-test.c
    functionUses: 0
    functionsReached:
    - fu_device_set_plugin
    - FWUPD_CODEC
    - fu_device_set_version
    - fu_device_add_security_attrs
    - g_assert_nonnull
    - fu_context_new_full
    - fu_intel_me_device_new
    - g_debug
    - fu_test_compare_lines
    - fu_security_attrs_new
    - fu_struct_intel_me_hfsts_new
    - g_assert_cmpint
    - fu_intel_me_device_set_hfsts
    - FU_DEVICE
    - fu_security_attrs_depsolve
    - fu_intel_me_device_get_issue
    - fu_struct_intel_me_hfsts_set_value
    - fu_intel_me_device_get_family
    - g_assert_no_error
    - fwupd_codec_to_json_string
    - fu_security_attrs_minimize
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_intel_me16_device_hap_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:316,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:317,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:318,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:319,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-test.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 321
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-test.c
    functionUses: 3
    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_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:21,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:23,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:26,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:31,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:32,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:34,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:35,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:36,1
    - Dst: fu_smbios_new
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:40,1
    - Dst: fu_smbios_setup
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:41,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:42,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:43,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:44,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:44,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:45,1
    - Dst: fu_smbios_get_string
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:48,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:49,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:50,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:51,1
    - Dst: fu_smbios_get_string
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:54,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:59,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:60,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:61,1
    - Dst: fu_smbios_get_string
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:64,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:65,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:66,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:67,1
    - Dst: fu_smbios_get_string
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:70,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:71,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:72,1
    - Dst: fu_smbios_get_string
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:75,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:80,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 82
    functionName: fu_smbios_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios-test.c
    functionUses: 0
    functionsReached:
    - fu_smbios_setup
    - fu_path_store_set_path
    - fu_smbios_new
    - g_debug
    - fu_smbios_get_string
    - FU_FIRMWARE
    - g_assert_error
    - g_assert_no_error
    - fu_firmware_to_string
    - g_file_test
    - g_clear_error
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - g_assert_null
    - fu_path_store_new
    linkageType: ''
    returnType: void
    signature: void fu_smbios_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:91,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:92,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:93,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:95,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:97,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:98,1
    - Dst: fu_smbios_new
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:102,1
    - Dst: fu_smbios_setup_from_path
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:103,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:104,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:105,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:106,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:106,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:107,1
    - Dst: fu_smbios_get_string
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:110,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:111,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 113
    functionName: fu_smbios3_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - g_debug
    - fu_smbios_new
    - fu_smbios_get_string
    - FU_FIRMWARE
    - g_assert_no_error
    - fu_firmware_to_string
    - g_file_test
    - g_test_skip
    - fu_smbios_setup_from_path
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - fu_path_store_new
    linkageType: ''
    returnType: void
    signature: void fu_smbios3_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:118,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:119,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:120,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:121,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-smbios-test.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:45,1
    - Dst: FU_IS_PROTOBUF
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:45,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProtobuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: fu_protobuf_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_byte_array_ref
    - FU_IS_PROTOBUF
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_protobuf_write(FuProtobuf *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:62,1
    - Dst: FU_IS_PROTOBUF
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:62,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProtobuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: fu_protobuf_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fu_byte_array_to_string
    - FU_IS_PROTOBUF
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_protobuf_to_string(FuProtobuf *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:75,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FuProtobuf*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: fu_protobuf_add_varint_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint8
    linkageType: ''
    returnType: void
    signature: void fu_protobuf_add_varint_raw(FuProtobuf *self, guint64 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - wire_type
    - fnum
    argTypes:
    - FuProtobuf*
    - FuProtobufWireType
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: fu_protobuf_add_tag_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint8
    linkageType: ''
    returnType: void
    signature: void fu_protobuf_add_tag_raw(FuProtobuf *self, FuProtobufWireType wire_type,
      guint8 fnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:101,1
    - Dst: FU_IS_PROTOBUF
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:101,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:102,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:103,1
    - Dst: fu_protobuf_add_tag_raw
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:104,1
    - Dst: fu_protobuf_add_varint_raw
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - self
    - fnum
    - value
    argTypes:
    - FuProtobuf*
    - guint8
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: fu_protobuf_add_uint64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 3
    functionsReached:
    - fu_protobuf_add_tag_raw
    - FU_IS_PROTOBUF
    - g_return_if_fail
    - fu_protobuf_add_varint_raw
    linkageType: ''
    returnType: void
    signature: void fu_protobuf_add_uint64(FuProtobuf *self, guint8 fnum, guint64
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:121,1
    - Dst: FU_IS_PROTOBUF
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:121,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:122,1
    - Dst: fu_protobuf_add_tag_raw
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:123,1
    - Dst: fu_protobuf_add_varint_raw
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - fnum
    - value
    argTypes:
    - FuProtobuf*
    - guint8
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: fu_protobuf_add_boolean
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 3
    functionsReached:
    - fu_protobuf_add_tag_raw
    - FU_IS_PROTOBUF
    - g_return_if_fail
    - fu_protobuf_add_varint_raw
    linkageType: ''
    returnType: void
    signature: void fu_protobuf_add_boolean(FuProtobuf *self, guint8 fnum, gboolean
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:142,1
    - Dst: FU_IS_PROTOBUF
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:142,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:143,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:144,1
    - Dst: FU_IS_PROTOBUF
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:144,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:145,1
    - Dst: fu_protobuf_add_tag_raw
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:147,1
    - Dst: fu_protobuf_add_varint_raw
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:148,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - self
    - fnum
    - pbuf
    argTypes:
    - FuProtobuf*
    - guint8
    - FuProtobuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 150
    functionName: fu_protobuf_add_embedded
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 1
    functionsReached:
    - fu_protobuf_add_tag_raw
    - FU_IS_PROTOBUF
    - g_return_if_fail
    - fu_protobuf_add_varint_raw
    - g_byte_array_append
    linkageType: ''
    returnType: void
    signature: void fu_protobuf_add_embedded(FuProtobuf *self, guint8 fnum, FuProtobuf
      *pbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:169,1
    - Dst: FU_IS_PROTOBUF
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:169,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:170,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:171,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:172,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:174,1
    - Dst: fu_protobuf_add_tag_raw
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:175,1
    - Dst: fu_protobuf_add_varint_raw
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:176,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - self
    - fnum
    - value
    argTypes:
    - FuProtobuf*
    - guint8
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 178
    functionName: fu_protobuf_add_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 2
    functionsReached:
    - fu_protobuf_add_tag_raw
    - FU_IS_PROTOBUF
    - g_return_if_fail
    - fu_protobuf_add_varint_raw
    - strlen
    - g_byte_array_append
    linkageType: ''
    returnType: void
    signature: void fu_protobuf_add_string(FuProtobuf *self, guint8 fnum, const gchar
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:192,1
    - Dst: FU_IS_PROTOBUF
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:192,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:193,1
    - Dst: fu_protobuf_add_tag_raw
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:194,1
    - Dst: fu_protobuf_add_varint_raw
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - fnum
    argTypes:
    - FuProtobuf*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 196
    functionName: fu_protobuf_add_empty
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 0
    functionsReached:
    - fu_protobuf_add_tag_raw
    - FU_IS_PROTOBUF
    - g_return_if_fail
    - fu_protobuf_add_varint_raw
    linkageType: ''
    returnType: void
    signature: void fu_protobuf_add_empty(FuProtobuf *self, guint8 fnum)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:206,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:208,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:209,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - self
    - value
    - offset
    - error
    argTypes:
    - FuProtobuf*
    - guint64*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 221
    functionName: fu_protobuf_get_varint_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 0
    functionsReached:
    - fu_size_checked_inc
    - fu_memread_uint8_safe
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_protobuf_get_varint_raw(FuProtobuf *self, guint64 *value,
      gsize *offset, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:232,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:236,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - self
    - wire_type
    - fnum
    - offset
    - error
    argTypes:
    - FuProtobuf*
    - FuProtobufWireType*
    - guint8*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 243
    functionName: fu_protobuf_get_tag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 0
    functionsReached:
    - fu_size_checked_inc
    - fu_memread_uint8_safe
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_protobuf_get_tag(FuProtobuf *self,\n\t\t    FuProtobufWireType
      *wire_type,\n\t\t    guint8 *fnum,\n\t\t    gsize *offset,\n\t\t    GError **error)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:261,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:261,1
    - Dst: fu_protobuf_get_tag
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:267,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:269,1
    - Dst: fu_protobuf_wire_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:271,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:274,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:275,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:279,1
    - Dst: FuProtobufCallbacks*::varint
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:286,1
    - Dst: fu_protobuf_get_varint_raw
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:288,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:293,1
    - Dst: FuProtobufCallbacks*::int64
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:300,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:302,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:303,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:311,1
    - Dst: FuProtobufCallbacks*::len
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:318,1
    - Dst: fu_protobuf_get_varint_raw
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:320,1
    - Dst: g_size_checked_add
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:322,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:323,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:332,1
    - Dst: FuProtobufCallbacks*::int32
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:340,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:342,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:343,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:348,1
    - Dst: fu_protobuf_wire_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:352,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:358,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 68
    argCount: 5
    argNames:
    - self
    - fnum
    - callbacks
    - data
    - error
    argTypes:
    - FuProtobuf*
    - guint8
    - FuProtobufCallbacks*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 365
    functionName: fu_protobuf_process
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 0
    functionsReached:
    - FuProtobufCallbacks*::int32
    - FuProtobufCallbacks*::len
    - fu_protobuf_wire_type_to_string
    - g_debug
    - g_set_error
    - g_set_error_literal
    - g_prefix_error_literal
    - FuProtobufCallbacks*::varint
    - g_string_new
    - g_string_append_printf
    - g_size_checked_add
    - g_string_append_c
    - fu_size_checked_inc
    - FuProtobufCallbacks*::int64
    - g_autoptr
    - fu_protobuf_get_varint_raw
    - fu_protobuf_get_tag
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_protobuf_process(FuProtobuf *self,\n\t\t    guint8 fnum,\n\t\t
      \   FuProtobufCallbacks *callbacks,\n\t\t    gpointer data,\n\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_protobuf_get_varint_raw
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - data
    - offset
    - error
    argTypes:
    - FuProtobuf*
    - gpointer
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 372
    functionName: fu_protobuf_get_uint64_varint_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 0
    functionsReached:
    - fu_protobuf_get_varint_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_protobuf_get_uint64_varint_cb(FuProtobuf *self, gpointer
      data, gsize *offset, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_memread_uint64_safe
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:378,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:385,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - self
    - data
    - offset
    - error
    argTypes:
    - FuProtobuf*
    - gpointer
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 392
    functionName: fu_protobuf_get_uint64_int64_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 0
    functionsReached:
    - fu_size_checked_inc
    - fu_memread_uint64_safe
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_protobuf_get_uint64_int64_cb(FuProtobuf *self, gpointer
      data, gsize *offset, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:399,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:407,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - data
    - offset
    - error
    argTypes:
    - FuProtobuf*
    - gpointer
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 414
    functionName: fu_protobuf_get_uint64_int32_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 0
    functionsReached:
    - fu_size_checked_inc
    - fu_memread_uint32_safe
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_protobuf_get_uint64_int32_cb(FuProtobuf *self, gpointer
      data, gsize *offset, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:437,1
    - Dst: FU_IS_PROTOBUF
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:437,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:438,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:439,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:440,1
    - Dst: fu_protobuf_process
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - fnum
    - value
    - error
    argTypes:
    - FuProtobuf*
    - guint8
    - guint64*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 442
    functionName: fu_protobuf_get_uint64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PROTOBUF
    - fu_protobuf_process
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_protobuf_get_uint64(FuProtobuf *self, guint8 fnum, guint64
      *value, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:465,1
    - Dst: FU_IS_PROTOBUF
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:465,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:466,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:467,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:468,1
    - Dst: fu_protobuf_process
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:469,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - fnum
    - value
    - error
    argTypes:
    - FuProtobuf*
    - guint8
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 457
    functionDepth: 3
    functionLinenumber: 457
    functionLinenumberEnd: 481
    functionName: fu_protobuf_get_boolean
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PROTOBUF
    - fu_protobuf_process
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_protobuf_get_boolean(FuProtobuf *self, guint8 fnum, gboolean
      *value, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_protobuf_get_varint_raw
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:489,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:491,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:494,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - self
    - data
    - offset
    - error
    argTypes:
    - FuProtobuf*
    - gpointer
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 497
    functionName: fu_protobuf_get_string_len_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 0
    functionsReached:
    - fu_size_checked_inc
    - fu_memstrsafe
    - fu_protobuf_get_varint_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_protobuf_get_string_len_cb(FuProtobuf *self, gpointer data,
      gsize *offset, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:518,1
    - Dst: FU_IS_PROTOBUF
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:518,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:519,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:520,1
    - Dst: fu_protobuf_process
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:521,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - fnum
    - error
    argTypes:
    - FuProtobuf*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 511
    functionDepth: 3
    functionLinenumber: 511
    functionLinenumberEnd: 524
    functionName: fu_protobuf_get_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PROTOBUF
    - fu_protobuf_process
    - g_steal_pointer
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_protobuf_get_string(FuProtobuf *self, guint8 fnum, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PROTOBUF
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:529,1
    - Dst: fu_protobuf_get_varint_raw
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:532,1
    - Dst: fu_memchk_read
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:534,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:536,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - self
    - data
    - offset
    - error
    argTypes:
    - FuProtobuf*
    - gpointer
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 526
    functionDepth: 2
    functionLinenumber: 526
    functionLinenumberEnd: 540
    functionName: fu_protobuf_get_embedded_len_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 0
    functionsReached:
    - fu_memchk_read
    - g_byte_array_append
    - FU_PROTOBUF
    - fu_size_checked_inc
    - fu_protobuf_get_varint_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_protobuf_get_embedded_len_cb(FuProtobuf *self, gpointer
      data, gsize *offset, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:560,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:560,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:561,1
    - Dst: FU_IS_PROTOBUF
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:561,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:562,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:563,1
    - Dst: fu_protobuf_process
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:564,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - fnum
    - error
    argTypes:
    - FuProtobuf*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 567
    functionName: fu_protobuf_get_embedded
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_protobuf_new
    - FU_IS_PROTOBUF
    - g_steal_pointer
    - fu_protobuf_process
    - g_autoptr
    linkageType: ''
    returnType: FuProtobuf
    signature: 'FuProtobuf *

      fu_protobuf_get_embedded(FuProtobuf *self, guint8 fnum, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PROTOBUF
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:572,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:575,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:577,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:578,1
    - Dst: fu_protobuf_get_embedded
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:579,1
    - Dst: fu_protobuf_get_string
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:582,1
    - Dst: fu_protobuf_get_uint64
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - fuzzer
    - blob
    - error
    argTypes:
    - FuFuzzer*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 569
    functionDepth: 4
    functionLinenumber: 569
    functionLinenumberEnd: 586
    functionName: fu_protobuf_fuzzer_test_input
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - fu_protobuf_get_string
    - g_byte_array_set_size
    - fu_protobuf_get_embedded
    - FU_PROTOBUF
    - g_autoptr
    - fu_protobuf_get_uint64
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_protobuf_fuzzer_test_input(FuFuzzer *fuzzer, GBytes *blob,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PROTOBUF
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:591,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:592,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:592,1
    - Dst: fu_protobuf_add_uint64
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:593,1
    - Dst: fu_protobuf_add_string
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:594,1
    - Dst: fu_protobuf_add_uint64
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:595,1
    - Dst: fu_protobuf_add_embedded
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:596,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - fuzzer
    - blob
    - error
    argTypes:
    - FuFuzzer*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 588
    functionDepth: 3
    functionLinenumber: 588
    functionLinenumberEnd: 598
    functionName: fu_protobuf_fuzzer_build_example
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 0
    functionsReached:
    - fu_protobuf_add_uint64
    - fu_protobuf_new
    - fu_protobuf_add_embedded
    - g_bytes_new
    - FU_PROTOBUF
    - g_autoptr
    - fu_protobuf_add_string
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_protobuf_fuzzer_build_example(FuFuzzer *fuzzer, GBytes *blob, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProtobuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 604
    functionName: fu_protobuf_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 0
    functionsReached:
    - g_byte_array_new
    linkageType: ''
    returnType: void
    signature: void fu_protobuf_init(FuProtobuf *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PROTOBUF
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:609,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:610,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 612
    functionName: fu_protobuf_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 0
    functionsReached:
    - FU_PROTOBUF
    - g_byte_array_unref
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_protobuf_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuFuzzerInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 619
    functionName: fu_protobuf_fuzzer_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_protobuf_fuzzer_iface_init(FuFuzzerInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuProtobufClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 626
    functionName: fu_protobuf_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_protobuf_class_init(FuProtobufClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 641
    functionName: fu_protobuf_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 10
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuProtobuf
    signature: 'FuProtobuf *

      fu_protobuf_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:657,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:657,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:658,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-protobuf.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 660
    functionName: fu_protobuf_new_from_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-protobuf.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_autoptr
    - fu_protobuf_new
    - g_byte_array_append
    linkageType: ''
    returnType: FuProtobuf
    signature: 'FuProtobuf *

      fu_protobuf_new_from_data(const guint8 *buf, gsize bufsz)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:15,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:16,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:18,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:20,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:21,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:22,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:23,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:26,1
    - Dst: FU_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:26,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:35,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:36,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:37,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:37,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:38,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:39,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:40,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:40,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 41
    functionName: fu_hid_descriptor_container_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_assert_nonnull
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - FU_HID_DESCRIPTOR
    - fu_firmware_get_image_by_id
    - g_assert_cmpint
    - FU_HID_REPORT_ITEM
    - fu_hid_report_item_get_value
    - g_test_build_filename
    - g_autoptr
    - 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-hid-descriptor-test.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:47,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:53,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:56,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:57,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:58,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:59,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:63,1
    - Dst: FU_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:63,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:64,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:65,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:67,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:67,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:68,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:69,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:70,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:70,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:70,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:73,1
    - Dst: FU_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:73,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:78,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:79,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:80,1
    - Dst: FU_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:80,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:87,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:88,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:89,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:89,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:90,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:91,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:92,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:92,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:92,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:95,1
    - Dst: FU_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:95,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:102,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 104
    functionName: fu_hid_descriptor_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - FU_HID_DESCRIPTOR
    - fu_firmware_get_image_by_id
    - g_assert_cmpint
    - FU_HID_REPORT_ITEM
    - fu_hid_report_item_get_value
    - g_test_build_filename
    - g_autoptr
    - g_assert_null
    - fu_hid_descriptor_find_report
    linkageType: ''
    returnType: void
    signature: void fu_hid_descriptor_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:109,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:110,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:111,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:112,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:113,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:114,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 116
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_type_ensure
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:57,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: fu_smbios_item_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - g_new0
    linkageType: ''
    returnType: FuSmbiosItem
    signature: 'FuSmbiosItem *

      fu_smbios_item_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:66,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:67,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuSmbiosItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: fu_smbios_item_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - g_byte_array_unref
    - g_free
    - g_ptr_array_unref
    linkageType: ''
    returnType: void
    signature: void fu_smbios_item_free(FuSmbiosItem *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:77,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:81,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - self
    - type
    - length
    argTypes:
    - FuSmbios*
    - guint8
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 89
    functionName: fu_smbios_get_item_for_type_length
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_ptr_array_index
    linkageType: ''
    returnType: FuSmbiosItem
    signature: 'FuSmbiosItem *

      fu_smbios_get_item_for_type_length(FuSmbios *self, guint8 type, guint8 length)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:100,1
    - Dst: fu_struct_smbios_structure_parse
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:103,1
    - Dst: fu_struct_smbios_structure_get_length
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:106,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:108,1
    - Dst: fu_smbios_item_new
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:117,1
    - Dst: fu_struct_smbios_structure_get_type
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:118,1
    - Dst: fu_struct_smbios_structure_get_handle
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:119,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:120,1
    - Dst: fu_byte_array_append_safe
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:121,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:125,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:132,1
    - Dst: fu_strdup
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:139,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:140,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:141,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:144,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:144,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:144,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:147,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:148,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:153,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:153,1
    - Dst: fu_smbios_get_item_for_type_length
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:157,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:160,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuSmbios*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 169
    functionName: fu_smbios_setup_from_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - fu_struct_smbios_structure_get_handle
    - g_byte_array_sized_new
    - g_set_error
    - fu_struct_smbios_structure_parse
    - fu_strdup
    - g_set_error_literal
    - g_steal_pointer
    - g_ptr_array_add
    - fu_struct_smbios_structure_get_length
    - fu_smbios_item_new
    - fu_byte_array_append_safe
    - g_prefix_error_literal
    - g_string_free
    - fu_size_checked_inc
    - g_autoptr
    - fu_smbios_get_item_for_type_length
    - fu_struct_smbios_structure_get_type
    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:189,1
    - Dst: FU_IS_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:189,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:190,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:191,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:194,1
    - Dst: fu_smbios_setup_from_data
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - filename
    - error
    argTypes:
    - FuSmbios*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 197
    functionName: fu_smbios_setup_from_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_SMBIOS
    - 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:205,1
    - Dst: fu_struct_smbios_ep32_parse
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:208,1
    - Dst: fu_sum8
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:211,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:213,1
    - Dst: fu_struct_smbios_ep32_get_intermediate_anchor_str
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:221,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:222,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:223,1
    - Dst: fu_sum8
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:230,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:232,1
    - Dst: fu_struct_smbios_ep32_get_structure_table_len
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:238,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:239,1
    - Dst: fu_struct_smbios_ep32_get_smbios_major_ver
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:240,1
    - Dst: fu_struct_smbios_ep32_get_smbios_minor_ver
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:241,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:242,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:242,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:243,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:244,1
    - Dst: fu_struct_smbios_ep32_get_smbios_major_ver
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:245,1
    - Dst: fu_struct_smbios_ep32_get_smbios_minor_ver
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuSmbios*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 248
    functionName: fu_smbios_parse_ep32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - fu_struct_smbios_ep32_get_structure_table_len
    - fu_firmware_set_version_raw
    - g_strcmp0
    - fu_firmware_set_version
    - g_set_error
    - g_set_error_literal
    - FU_FIRMWARE
    - fu_struct_smbios_ep32_get_smbios_major_ver
    - fu_sum8
    - fu_struct_smbios_ep32_parse
    - g_strdup_printf
    - fu_struct_smbios_ep32_get_intermediate_anchor_str
    - fu_struct_smbios_ep32_get_smbios_minor_ver
    - g_autoptr
    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:255,1
    - Dst: fu_struct_smbios_ep64_parse
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:258,1
    - Dst: fu_sum8
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:261,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:263,1
    - Dst: fu_struct_smbios_ep64_get_structure_table_len
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:269,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:270,1
    - Dst: fu_struct_smbios_ep64_get_smbios_major_ver
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:271,1
    - Dst: fu_struct_smbios_ep64_get_smbios_minor_ver
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:272,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:273,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuSmbios*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 275
    functionName: fu_smbios_parse_ep64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version
    - g_set_error_literal
    - fu_struct_smbios_ep64_get_structure_table_len
    - FU_FIRMWARE
    - fu_sum8
    - fu_struct_smbios_ep64_parse
    - g_strdup_printf
    - fu_struct_smbios_ep64_get_smbios_major_ver
    - fu_struct_smbios_ep64_get_smbios_minor_ver
    - g_autoptr
    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:298,1
    - Dst: FU_IS_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:298,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:299,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:300,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:303,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:304,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:305,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:311,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:322,1
    - Dst: fu_smbios_parse_ep32
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:323,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:325,1
    - Dst: fu_smbios_parse_ep64
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:326,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:329,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:330,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:339,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:340,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:341,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:345,1
    - Dst: fu_smbios_setup_from_data
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:355,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - self
    - path
    - error
    argTypes:
    - FuSmbios*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 356
    functionName: fu_smbios_setup_from_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strndup
    - fu_smbios_parse_ep64
    - g_set_error
    - g_file_get_contents
    - fu_smbios_setup_from_data
    - fwupd_error_convert
    - FU_IS_SMBIOS
    - memcmp
    - fu_smbios_parse_ep32
    - g_build_filename
    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:364,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:365,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:366,1
    - Dst: fu_smbios_setup_from_data
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:369,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:370,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 358
    functionDepth: 3
    functionLinenumber: 358
    functionLinenumberEnd: 373
    functionName: fu_smbios_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_bytes
    - g_bytes_get_data
    - fu_smbios_setup_from_data
    - FU_SMBIOS
    - g_bytes_get_size
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_smbios_parse(FuFirmware *firmware,\n\t\tGInputStream *stream,\n\t\tFuFirmwareParseFlags
      flags,\n\t\tGError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemFirmwareTable
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:401,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:403,1
    - Dst: GetLastError
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:407,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:411,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:418,1
    - Dst: GetSystemFirmwareTable
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:419,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:421,1
    - Dst: GetLastError
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:425,1
    - Dst: fu_smbios_setup_from_data
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:428,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:434,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:436,1
    - Dst: FU_IS_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:436,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:437,1
    - Dst: fu_path_store_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:440,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:448,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:449,1
    - Dst: fu_smbios_setup_from_path
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:456,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:457,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:458,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:458,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:461,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSmbios*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 393
    functionDepth: 4
    functionLinenumber: 393
    functionLinenumberEnd: 467
    functionName: fu_smbios_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_path_store_build_filename
    - g_debug
    - g_set_error
    - GetSystemFirmwareTable
    - g_set_error_literal
    - fu_smbios_setup_from_data
    - g_steal_pointer
    - g_malloc0
    - g_file_test
    - FU_IS_SMBIOS
    - g_error_matches
    - fu_smbios_setup_from_path
    - GetLastError
    - g_propagate_error
    - g_autoptr
    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:472,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:475,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:476,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:476,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:477,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:478,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:479,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:480,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:481,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:483,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:484,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:485,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 489
    functionName: fu_smbios_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - fu_strsafe
    - fu_xmlb_builder_insert_kx
    - xb_builder_node_insert_text
    - FU_SMBIOS
    - g_strdup_printf
    - fu_byte_array_to_string
    - xb_builder_node_insert
    - fu_xmlb_builder_insert_kv
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_smbios_export(FuFirmware *firmware, FuFirmwareExportFlags flags,
      XbBuilderNode *bn)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:496,1
    - Dst: fu_smbios_item_new
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:496,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:497,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:500,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:503,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:513,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:516,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:526,1
    - Dst: fu_byte_array_from_string
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:528,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:534,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:537,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:538,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:538,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:538,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:543,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:543,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - self
    - n
    - error
    argTypes:
    - FuSmbios*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 545
    functionName: fu_smbios_build_item
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - xb_node_query_text
    - xb_node_query_text_as_uint
    - g_set_error_literal
    - g_ptr_array_add
    - g_steal_pointer
    - fu_smbios_item_new
    - xb_node_query
    - g_autoptr
    - xb_node_get_text
    - fu_byte_array_from_string
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_smbios_build_item(FuSmbios *self, XbNode *n, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:550,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:551,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:554,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:557,1
    - Dst: fu_smbios_build_item
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 547
    functionDepth: 3
    functionLinenumber: 547
    functionLinenumberEnd: 565
    functionName: fu_smbios_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - FU_SMBIOS
    - xb_node_query
    - fu_smbios_build_item
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_smbios_build(FuFirmware *firmware, XbNode *n, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:583,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:583,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:585,1
    - Dst: FU_IS_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:585,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:586,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:589,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:596,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:596,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:599,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:606,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 4
    argNames:
    - self
    - type
    - length
    - error
    argTypes:
    - FuSmbios*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 607
    functionName: fu_smbios_get_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_new
    - g_set_error
    - g_steal_pointer
    - g_ptr_array_add
    - FU_IS_SMBIOS
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    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:631,1
    - Dst: FU_IS_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:631,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:632,1
    - Dst: fu_smbios_get_item_for_type_length
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:635,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:637,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:647,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: 657
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 657
    functionName: fu_smbios_get_integer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_SMBIOS
    - fu_smbios_get_item_for_type_length
    - g_set_error
    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:681,1
    - Dst: FU_IS_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:681,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:682,1
    - Dst: fu_smbios_get_item_for_type_length
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:685,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:687,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:697,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:705,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:711,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:718,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: 719
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 719
    functionName: fu_smbios_get_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    - g_set_error_literal
    - FU_IS_SMBIOS
    - fu_smbios_get_item_for_type_length
    - g_ptr_array_index
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_smbios_get_string(FuSmbios *self, guint8 type, guint8 length, guint8 offset,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:724,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:726,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:727,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 729
    functionName: fu_smbios_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - G_OBJECT_CLASS
    - FU_SMBIOS
    - g_ptr_array_unref
    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:734,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSmbiosClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 740
    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:745,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:746,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSmbios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 747
    functionName: fu_smbios_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_smbios_init(FuSmbios *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:763,1
    - Dst: FU_IS_PATH_STORE
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:763,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:765,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:766,1
    - Dst: FU_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-smbios.c:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pstore
    argTypes:
    - FuPathStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 768
    functionName: fu_smbios_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-smbios.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_SMBIOS
    - g_object_ref
    - g_object_new
    - FU_IS_PATH_STORE
    linkageType: ''
    returnType: FuSmbios
    signature: 'FuSmbios *

      fu_smbios_new(FuPathStore *pstore)'
  - 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: 630
    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
    - fwupd_plugin_get_name
    - FWUPD_PLUGIN
    - FU_IS_PLUGIN
    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:
    - g_strcmp0
    - g_critical
    - FU_IS_PLUGIN
    - g_debug
    - g_return_if_fail
    - FWUPD_PLUGIN
    - fwupd_plugin_set_name
    - fwupd_plugin_get_name
    - GET_PRIVATE
    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_return_val_if_fail
    - g_hash_table_lookup
    - FU_IS_PLUGIN
    - GET_PRIVATE
    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_strdup
    - g_hash_table_insert
    - FU_IS_PLUGIN
    - g_return_if_fail
    - g_hash_table_new_full
    - g_object_ref
    - G_IS_OBJECT
    - GET_PRIVATE
    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:
    - g_hash_table_remove
    - g_debug
    - FU_IS_PLUGIN
    - fu_plugin_get_name
    - 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
    - FU_IS_PLUGIN
    - GET_PRIVATE
    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:
    - g_return_val_if_fail
    - g_critical
    - FU_IS_PLUGIN
    - g_malloc0
    - GET_PRIVATE
    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_strdup
    - g_strstr_len
    - strlen
    - g_strdelimit
    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:
    - g_return_val_if_fail
    - FuPluginVfuncs*::load
    - g_module_open
    - fu_plugin_guess_name_from_fn
    - FU_IS_PLUGIN
    - g_set_error
    - fu_plugin_get_vfuncs
    - fu_plugin_get_name
    - fu_plugin_add_flag
    - init_vfuncs
    - g_debug
    - fu_plugin_get_context
    - fu_plugin_set_name
    - g_module_symbol
    - g_module_error
    - GET_PRIVATE
    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:
    - FuPluginVfuncs*::to_string
    - fwupd_codec_add_string
    - FWUPD_CODEC
    - g_type_name
    - FU_IS_PLUGIN
    - fu_plugin_get_vfuncs
    - g_return_if_fail
    - fwupd_codec_string_append
    - fwupd_codec_string_append_int
    - GET_PRIVATE
    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:
    - g_return_val_if_fail
    - fu_plugin_add_string
    - FU_IS_PLUGIN
    - g_steal_pointer
    - g_string_free
    - g_string_new
    - g_autoptr
    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_add_device
      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:
    - fu_device_get_id
    - fu_plugin_add_device
    - g_debug
    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_remove_device
      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_device_get_id
    - fu_plugin_remove_device
    - g_debug
    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_add_device
      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_add_device
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 3
    functionsReached:
    - fu_device_set_plugin
    - fu_device_set_created_usec
    - fu_device_get_children
    - g_get_real_time
    - g_signal_emit
    - g_object_ref
    - fu_device_get_created_usec
    - g_ptr_array_index
    - g_signal_connect
    - FU_IS_PLUGIN
    - g_debug
    - fu_device_inhibit
    - fu_plugin_build_device_update_error
    - GET_PRIVATE
    - fu_plugin_ensure_devices
    - fu_plugin_has_flag
    - fu_device_convert_instance_ids
    - FU_DEVICE
    - g_warning
    - fu_plugin_add_device
    - fu_device_ensure_id
    - fu_plugin_get_name
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_ptr_array_add
    - fu_device_get_id
    - G_CALLBACK
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_plugin_add_device(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
    - FU_IS_PLUGIN
    - GET_PRIVATE
    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_PLUGIN
    - fu_device_ensure_id
    - g_debug
    - fu_plugin_get_name
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_device_get_id
    - g_signal_emit
    - g_warning
    - g_autoptr
    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_remove_device
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - g_ptr_array_remove
    - g_debug
    - FU_IS_PLUGIN
    - fu_plugin_get_name
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_device_get_id
    - g_signal_emit
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_plugin_remove_device(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:
    - g_object_notify
    - FU_IS_PLUGIN
    - FU_IS_CONTEXT
    - g_return_if_fail
    - g_set_object
    - G_OBJECT
    - GET_PRIVATE
    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_locker_new
    - FU_DEVICE_GET_CLASS
    - fu_device_attach_full
    - g_autoptr
    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
    - fu_device_locker_new
    - FU_DEVICE_GET_CLASS
    - fu_device_detach_full
    - g_autoptr
    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_activate
    - fu_device_get_proxy_with_fallback
    - fu_device_locker_new
    - FU_DEVICE_GET_CLASS
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_plugin_device_activate(FuPlugin *self, FuDevice *device,
      FuProgress *progress, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:726,1
    - Dst: fu_device_get_proxy_with_fallback
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:727,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:728,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:730,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:732,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:737,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:740,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:747,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:748,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:749,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:750,1
    - Dst: fu_device_dump_firmware
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:752,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:752,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:754,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:759,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:760,1
    - Dst: fu_path_sanitize_basename
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:763,1
    - Dst: fu_path_sanitize_basename
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:765,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:767,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:768,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:772,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:778,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:779,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:781,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:783,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:787,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:791,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 6
    argNames:
    - self
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 792
    functionName: fu_plugin_device_write_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_device_locker_new
    - g_strdup_printf
    - fu_device_get_serial
    - g_prefix_error_literal
    - fu_device_has_flag
    - fu_device_dump_firmware
    - fu_bytes_set_contents
    - GET_PRIVATE
    - fu_progress_add_step
    - fu_device_get_proxy_with_fallback
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_device_write_firmware
    - fu_progress_set_id
    - fu_path_sanitize_basename
    - fu_context_build_filename
    - fu_device_get_id
    - fu_device_get_version
    - g_autoptr
    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:797,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:798,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:799,1
    - Dst: fu_device_get_results
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:802,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:803,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:805,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 809
    functionName: fu_plugin_device_get_results
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_locker_new
    - g_steal_pointer
    - fu_device_get_results
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    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:817,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:818,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:819,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:820,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:826,1
    - Dst: fu_device_detach_full
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:829,1
    - Dst: fu_device_read_firmware
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:831,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:833,1
    - Dst: fu_device_attach_full
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:834,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:835,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:836,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:839,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:841,1
    - Dst: fu_device_attach_full
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:842,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:843,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:844,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:847,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:849,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:850,1
    - Dst: fu_device_attach_full
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:852,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - self
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 853
    functionName: fu_plugin_device_read_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_debug
    - fu_device_get_proxy_with_fallback
    - fu_device_locker_new
    - g_prefix_error_literal
    - fu_device_add_checksum
    - fu_device_detach_full
    - fu_device_read_firmware
    - fu_device_attach_full
    - G_N_ELEMENTS
    - g_autoptr
    - g_compute_checksum_for_bytes
    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:869,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:870,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:872,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:872,1
    - Dst: fu_progress_set_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:875,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:875,1
    - Dst: fu_plugin_runner_init
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:878,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:881,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:886,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:886,1
    - Dst: FuPluginVfuncs*::startup
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:887,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:889,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:890,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:891,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:897,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:898,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:900,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 907
    functionName: fu_plugin_runner_startup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - fu_progress_set_name
    - fu_plugin_runner_init
    - g_critical
    - FU_IS_PLUGIN
    - fu_plugin_get_name
    - fu_plugin_get_vfuncs
    - fu_plugin_has_flag
    - g_debug
    - FuPluginVfuncs*::startup
    - g_set_error_literal
    - g_steal_pointer
    - g_autoptr
    - g_propagate_prefixed_error
    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:923,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:924,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:926,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:926,1
    - Dst: fu_progress_set_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:929,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:929,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:930,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:932,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:937,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:937,1
    - Dst: FuPluginVfuncs*::ready
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:938,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:940,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:940,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:941,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:947,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:948,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:950,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 920
    functionDepth: 2
    functionLinenumber: 920
    functionLinenumberEnd: 956
    functionName: fu_plugin_runner_ready
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_progress_set_name
    - FuPluginVfuncs*::ready
    - g_critical
    - FU_IS_PLUGIN
    - fu_plugin_get_name
    - fu_plugin_get_vfuncs
    - fu_plugin_has_flag
    - fu_plugin_add_flag
    - g_debug
    - g_set_error_literal
    - g_steal_pointer
    - g_autoptr
    - g_propagate_prefixed_error
    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:969,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:970,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:972,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:972,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:979,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: FuPluginVfuncs*::constructed
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:985,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:985,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 966
    functionDepth: 2
    functionLinenumber: 966
    functionLinenumberEnd: 988
    functionName: fu_plugin_runner_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - FU_IS_PLUGIN
    - g_debug
    - fu_plugin_get_vfuncs
    - fu_plugin_has_flag
    - fu_plugin_get_name
    - g_return_if_fail
    - FuPluginVfuncs*::constructed
    - G_OBJECT
    - GET_PRIVATE
    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:997,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1000,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1006,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1006,1
    - Dst: device_func
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1007,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1009,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1010,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1012,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1018,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1019,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1022,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: 1026
      start: 990
    functionDepth: 2
    functionLinenumber: 990
    functionLinenumberEnd: 1026
    functionName: fu_plugin_runner_device_generic
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_critical
    - device_func
    - g_debug
    - fu_plugin_get_name
    - fu_plugin_has_flag
    - g_set_error_literal
    - g_steal_pointer
    - g_autoptr
    - g_propagate_prefixed_error
    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:1036,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1039,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1045,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1045,1
    - Dst: device_func
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1046,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1048,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1049,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1051,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1057,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1058,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1061,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: 1065
      start: 1028
    functionDepth: 2
    functionLinenumber: 1028
    functionLinenumberEnd: 1065
    functionName: fu_plugin_runner_device_generic_progress
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_critical
    - device_func
    - g_debug
    - fu_plugin_get_name
    - fu_plugin_has_flag
    - g_set_error_literal
    - g_steal_pointer
    - g_autoptr
    - g_propagate_prefixed_error
    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:1076,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1079,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1085,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1085,1
    - Dst: func
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1086,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1088,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1089,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1091,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1097,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1098,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1101,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: 1105
      start: 1067
    functionDepth: 2
    functionLinenumber: 1067
    functionLinenumberEnd: 1105
    functionName: fu_plugin_runner_flagged_device_generic
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - func
    - g_critical
    - g_debug
    - fu_plugin_get_name
    - fu_plugin_has_flag
    - g_set_error_literal
    - g_steal_pointer
    - g_autoptr
    - g_propagate_prefixed_error
    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:1114,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1117,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1123,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1123,1
    - Dst: func
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1124,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1126,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1127,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1129,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1135,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1136,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1139,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: 1143
      start: 1107
    functionDepth: 2
    functionLinenumber: 1107
    functionLinenumberEnd: 1143
    functionName: fu_plugin_runner_device_array_generic
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - func
    - g_critical
    - g_debug
    - fu_plugin_get_name
    - fu_plugin_has_flag
    - g_set_error_literal
    - g_steal_pointer
    - g_autoptr
    - g_propagate_prefixed_error
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1160,1
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1161,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1162,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1164,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1164,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1167,1
    - Dst: fu_progress_set_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1168,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1168,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1171,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1175,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1181,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1181,1
    - Dst: FuPluginVfuncs*::coldplug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1182,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1184,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1184,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1185,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1194,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1195,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1196,1
    - Dst: fu_plugin_remove_device
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1197,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1200,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1201,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1203,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1157
    functionDepth: 3
    functionLinenumber: 1157
    functionLinenumberEnd: 1207
    functionName: fu_plugin_runner_coldplug
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - fu_progress_set_name
    - g_critical
    - fu_plugin_remove_device
    - FU_IS_PLUGIN
    - fu_plugin_get_name
    - fu_plugin_get_vfuncs
    - fu_plugin_has_flag
    - g_debug
    - FuPluginVfuncs*::coldplug
    - g_set_error_literal
    - g_steal_pointer
    - fu_device_get_id
    - g_warning
    - g_propagate_prefixed_error
    - g_autoptr
    - g_ptr_array_index
    - GET_PRIVATE
    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:1224,1
    - Dst: fu_plugin_runner_device_array_generic
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1221
    functionDepth: 3
    functionLinenumber: 1221
    functionLinenumberEnd: 1230
    functionName: fu_plugin_runner_composite_prepare
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    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:1247,1
    - Dst: fu_plugin_runner_device_array_generic
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1244
    functionDepth: 3
    functionLinenumber: 1244
    functionLinenumberEnd: 1253
    functionName: fu_plugin_runner_composite_cleanup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    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:1276,1
    - Dst: fu_plugin_runner_flagged_device_generic
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1277,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: 1284
      start: 1269
    functionDepth: 3
    functionLinenumber: 1269
    functionLinenumberEnd: 1284
    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:1307,1
    - Dst: fu_plugin_runner_flagged_device_generic
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1308,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: 1315
      start: 1300
    functionDepth: 3
    functionLinenumber: 1300
    functionLinenumberEnd: 1315
    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:1333,1
    - Dst: fu_plugin_runner_device_generic_progress
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1330
    functionDepth: 3
    functionLinenumber: 1330
    functionLinenumberEnd: 1341
    functionName: fu_plugin_runner_attach
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - fu_plugin_get_vfuncs
    - fu_plugin_runner_device_generic_progress
    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:1359,1
    - Dst: fu_plugin_runner_device_generic_progress
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1356
    functionDepth: 3
    functionLinenumber: 1356
    functionLinenumberEnd: 1367
    functionName: fu_plugin_runner_detach
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - fu_plugin_get_vfuncs
    - fu_plugin_runner_device_generic_progress
    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:1384,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1385,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1388,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1392,1
    - Dst: fu_device_reload
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1381
    functionDepth: 1
    functionLinenumber: 1381
    functionLinenumberEnd: 1396
    functionName: fu_plugin_runner_reload
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - fu_device_reload
    - fu_plugin_has_flag
    - fu_device_get_proxy_with_fallback
    - fu_device_locker_new
    - g_autoptr
    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:1413,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1416,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1420,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1420,1
    - Dst: FuPluginVfuncs*::reboot_cleanup
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1410
    functionDepth: 2
    functionLinenumber: 1410
    functionLinenumberEnd: 1422
    functionName: fu_plugin_runner_reboot_cleanup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 3
    functionsReached:
    - g_debug
    - fu_plugin_get_name
    - fu_plugin_get_vfuncs
    - fu_plugin_has_flag
    - 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:1436,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1441,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1441,1
    - Dst: FuPluginVfuncs*::add_security_attrs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1433
    functionDepth: 2
    functionLinenumber: 1433
    functionLinenumberEnd: 1443
    functionName: fu_plugin_runner_add_security_attrs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - fu_plugin_get_vfuncs
    - FuPluginVfuncs*::add_security_attrs
    - g_debug
    - fu_plugin_get_name
    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:1464,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1466,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1466,1
    - Dst: g_array_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1470,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1474,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1480,1
    - Dst: g_array_append_val
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - device_gtype
    argTypes:
    - FuPlugin*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1461
    functionDepth: 0
    functionLinenumber: 1461
    functionLinenumberEnd: 1482
    functionName: fu_plugin_add_device_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_array_new
    - FU_IS_PLUGIN
    - g_return_if_fail
    - g_array_index
    - g_type_ensure
    - g_array_append_val
    - GET_PRIVATE
    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:1497,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1498,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1494
    functionDepth: 0
    functionLinenumber: 1494
    functionLinenumberEnd: 1500
    functionName: fu_plugin_get_device_gtypes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PLUGIN
    - GET_PRIVATE
    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:1518,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1520,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1520,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1527
    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
    - FU_IS_PLUGIN
    - GET_PRIVATE
    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:1545,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1547,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1547,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - device_gtype
    argTypes:
    - FuPlugin*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1542
    functionDepth: 1
    functionLinenumber: 1542
    functionLinenumberEnd: 1551
    functionName: fu_plugin_set_device_gtype_default
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - g_return_if_fail
    - FU_IS_PLUGIN
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_plugin_set_device_gtype_default(FuPlugin *self, GType device_gtype)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1559,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1562,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1564,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1566,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1568,1
    - Dst: fu_kernel_check_version
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1570,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1553
    functionDepth: 2
    functionLinenumber: 1553
    functionLinenumberEnd: 1575
    functionName: fu_plugin_check_amdgpu_dpaux
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_file_get_contents
    - g_file_test
    - g_strsplit
    - fu_kernel_check_version
    - g_auto
    - g_str_has_prefix
    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:1592,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1594,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1594,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1595,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1598,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1599,1
    - Dst: fu_plugin_check_amdgpu_dpaux
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1600,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1601,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1602,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1603,1
    - Dst: fu_context_add_udev_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1609,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - subsystem
    argTypes:
    - FuPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1589
    functionDepth: 3
    functionLinenumber: 1589
    functionLinenumberEnd: 1610
    functionName: fu_plugin_add_device_udev_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - FU_IS_PLUGIN
    - fu_plugin_check_amdgpu_dpaux
    - fu_plugin_get_name
    - fu_plugin_add_flag
    - fu_context_add_udev_subsystem
    - g_return_if_fail
    - g_warning
    - g_autoptr
    - GET_PRIVATE
    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:1626,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1628,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1628,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1629,1
    - Dst: fu_context_add_udev_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - subsystem
    argTypes:
    - FuPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1623
    functionDepth: 1
    functionLinenumber: 1623
    functionLinenumberEnd: 1633
    functionName: fu_plugin_add_udev_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_context_add_udev_subsystem
    - g_return_if_fail
    - FU_IS_PLUGIN
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_plugin_add_udev_subsystem(FuPlugin *self, const gchar *subsystem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1649,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - gtype
    argTypes:
    - FuPlugin*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1646
    functionDepth: 1
    functionLinenumber: 1646
    functionLinenumberEnd: 1651
    functionName: fu_plugin_add_firmware_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_context_add_firmware_gtype
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_plugin_add_firmware_gtype(FuPlugin *self, 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:
    - fwupd_guid_hash_string
    - fu_plugin_check_supported
    - fu_device_get_instance_ids
    - g_ptr_array_index
    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: fu_device_get_proxy_internal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1717,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:1724,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1725,1
    - Dst: fu_plugin_runner_device_created
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1729,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1731,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1735,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1736,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1738,1
    - Dst: fu_plugin_check_supported_device
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1739,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1740,1
    - Dst: fu_strjoin
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1741,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1742,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1743,1
    - Dst: fu_device_get_proxy_internal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1749,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1751,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1752,1
    - Dst: fu_device_incorporate_from_proxy
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1755,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1757,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1760,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1763,1
    - Dst: fu_plugin_runner_device_added
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1764,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1765,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 64
    argCount: 4
    argNames:
    - self
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1666
    functionDepth: 4
    functionLinenumber: 1666
    functionLinenumberEnd: 1767
    functionName: fu_plugin_backend_device_added
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_strjoin
    - fu_progress_add_flag
    - fu_device_get_proxy_internal
    - fu_device_add_private_flag
    - fu_device_locker_new
    - fu_device_incorporate
    - g_array_index
    - g_object_new
    - fu_device_get_guids
    - fu_device_incorporate_from_proxy
    - fu_device_probe
    - fu_progress_finished
    - fu_plugin_runner_device_created
    - g_set_error_literal
    - g_string_new
    - fu_plugin_get_device_gtype_default
    - fu_device_get_proxy_gtype
    - GET_PRIVATE
    - g_string_append
    - g_info
    - fu_progress_add_step
    - fu_plugin_runner_device_added
    - fu_progress_step_done
    - fu_device_convert_instance_ids
    - FU_DEVICE
    - fu_device_set_proxy
    - fu_device_get_specialized_gtype
    - fu_plugin_add_device
    - fu_progress_set_id
    - g_type_name
    - g_set_error
    - fu_device_has_private_flag
    - fu_plugin_check_supported_device
    - g_autoptr
    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:1788,1
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1789,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1790,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1792,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1792,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1793,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1793,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1794,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1794,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1795,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1798,1
    - Dst: fu_device_get_specialized_gtype
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1804,1
    - Dst: fu_plugin_backend_device_added
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1805,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1807,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1813,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1813,1
    - Dst: FuPluginVfuncs*::backend_device_added
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1814,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1816,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1817,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1818,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1824,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1825,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1827,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - self
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1782
    functionDepth: 5
    functionLinenumber: 1782
    functionLinenumberEnd: 1831
    functionName: fu_plugin_runner_backend_device_added
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_critical
    - FU_IS_PLUGIN
    - g_debug
    - fu_plugin_get_vfuncs
    - fu_plugin_has_flag
    - FU_IS_DEVICE
    - g_set_error_literal
    - fu_plugin_get_name
    - FuPluginVfuncs*::backend_device_added
    - g_steal_pointer
    - FU_IS_PROGRESS
    - g_propagate_prefixed_error
    - fu_plugin_backend_device_added
    - g_autoptr
    - fu_device_get_specialized_gtype
    - GET_PRIVATE
    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:1848,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1849,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1851,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1851,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1852,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1852,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1853,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1856,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1862,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1862,1
    - Dst: FuPluginVfuncs*::backend_device_changed
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1863,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1865,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1866,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1867,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1873,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1874,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1876,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1845
    functionDepth: 2
    functionLinenumber: 1845
    functionLinenumberEnd: 1880
    functionName: fu_plugin_runner_backend_device_changed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_critical
    - FU_IS_PLUGIN
    - g_debug
    - fu_plugin_get_vfuncs
    - fu_plugin_has_flag
    - FU_IS_DEVICE
    - fu_plugin_get_name
    - g_set_error_literal
    - g_steal_pointer
    - FuPluginVfuncs*::backend_device_changed
    - g_autoptr
    - g_propagate_prefixed_error
    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:1894,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1897,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1903,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1903,1
    - Dst: FuPluginVfuncs*::device_added
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1891
    functionDepth: 2
    functionLinenumber: 1891
    functionLinenumberEnd: 1905
    functionName: fu_plugin_runner_device_added
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - FuPluginVfuncs*::device_added
    - g_debug
    - fu_plugin_get_name
    - fu_plugin_get_vfuncs
    - fu_plugin_has_flag
    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:1919,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1920,1
    - Dst: fu_plugin_runner_device_generic
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1922,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1916
    functionDepth: 3
    functionLinenumber: 1916
    functionLinenumberEnd: 1928
    functionName: fu_plugin_runner_device_removed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - fu_plugin_get_vfuncs
    - g_autoptr
    - fu_plugin_runner_device_generic
    - g_warning
    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:1942,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1945,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1950,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1950,1
    - Dst: FuPluginVfuncs*::device_registered
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1951,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1939
    functionDepth: 2
    functionLinenumber: 1939
    functionLinenumberEnd: 1953
    functionName: fu_plugin_runner_device_register
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 3
    functionsReached:
    - g_debug
    - fu_plugin_get_name
    - fu_plugin_get_vfuncs
    - fu_plugin_has_flag
    - 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:1970,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1972,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1972,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1973,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1973,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1974,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1977,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1983,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1983,1
    - Dst: FuPluginVfuncs*::device_created
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:1984,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1967
    functionDepth: 2
    functionLinenumber: 1967
    functionLinenumberEnd: 1985
    functionName: fu_plugin_runner_device_created
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PLUGIN
    - g_debug
    - fu_plugin_get_vfuncs
    - fu_plugin_has_flag
    - FU_IS_DEVICE
    - fu_plugin_get_name
    - 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:2008,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2010,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2012,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2012,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2013,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2013,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2014,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2014,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2015,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2018,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2023,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2024,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2028,1
    - Dst: fu_plugin_device_read_firmware
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2031,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2035,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2036,1
    - Dst: fu_plugin_runner_device_generic_progress
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2039,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2049,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2049,1
    - Dst: FuPluginVfuncs*::verify
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2050,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2051,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2053,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2053,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2054,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2060,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2061,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2063,1
    - Dst: fu_plugin_runner_device_generic_progress
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2065,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2072,1
    - Dst: fu_plugin_runner_device_generic_progress
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2079,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: 2090
      start: 2001
    functionDepth: 3
    functionLinenumber: 2001
    functionLinenumberEnd: 2090
    functionName: fu_plugin_runner_verify
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - g_critical
    - fu_plugin_get_vfuncs
    - g_ptr_array_set_size
    - g_autoptr
    - fu_plugin_runner_device_generic_progress
    - fu_device_get_checksums
    - FU_IS_PLUGIN
    - g_debug
    - g_set_error_literal
    - fu_device_has_flag
    - fu_plugin_device_read_firmware
    - fu_plugin_has_flag
    - g_warning
    - g_return_val_if_fail
    - g_set_error
    - fu_plugin_get_name
    - FU_IS_DEVICE
    - g_steal_pointer
    - fu_device_get_id
    - FU_IS_PROGRESS
    - FuPluginVfuncs*::verify
    - g_propagate_prefixed_error
    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:2108,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2111,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2111,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2112,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2112,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2113,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2113,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2114,1
    - Dst: fu_device_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2117,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2119,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2123,1
    - Dst: fu_plugin_runner_device_generic_progress
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2128,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2138,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2139,1
    - Dst: g_get_real_time
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2141
      start: 2105
    functionDepth: 3
    functionLinenumber: 2105
    functionLinenumberEnd: 2141
    functionName: fu_plugin_runner_activate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_device_get_flags
    - FU_IS_PLUGIN
    - g_set_error
    - fu_plugin_get_vfuncs
    - FU_IS_DEVICE
    - fu_device_set_modified_usec
    - g_get_real_time
    - fu_device_remove_flag
    - fu_device_get_id
    - FU_IS_PROGRESS
    - fu_plugin_runner_device_generic_progress
    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:2158,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2161,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2161,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2162,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2162,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2163,1
    - Dst: fu_device_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2166,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2168,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2172,1
    - Dst: fu_plugin_runner_device_generic
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2177,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2185,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2186,1
    - Dst: g_get_real_time
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2155
    functionDepth: 3
    functionLinenumber: 2155
    functionLinenumberEnd: 2188
    functionName: fu_plugin_runner_unlock
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - fu_device_get_flags
    - g_return_val_if_fail
    - FU_IS_PLUGIN
    - g_set_error
    - fu_plugin_get_vfuncs
    - FU_IS_DEVICE
    - fu_plugin_runner_device_generic
    - fu_device_set_modified_usec
    - g_get_real_time
    - fu_device_remove_flag
    - fu_device_get_id
    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:2213,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2214,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2216,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2216,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2217,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2217,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2218,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2218,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2219,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2219,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2220,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2223,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2224,1
    - Dst: FuPluginVfuncs*::write_firmware
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2230,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2233,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2234,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2235,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2241,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2242,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2242,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2246,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2246,1
    - Dst: fu_plugin_device_write_firmware
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2247,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2256,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2257,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2258,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2259,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: 2264
      start: 2205
    functionDepth: 2
    functionLinenumber: 2205
    functionLinenumberEnd: 2264
    functionName: fu_plugin_runner_write_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - g_critical
    - fu_plugin_get_vfuncs
    - g_ptr_array_set_size
    - fu_device_get_checksums
    - FU_IS_PLUGIN
    - g_debug
    - g_set_error_literal
    - FU_IS_FIRMWARE
    - fu_device_has_flag
    - g_propagate_error
    - fu_plugin_has_flag
    - fu_device_set_update_error
    - fu_plugin_device_write_firmware
    - g_return_val_if_fail
    - fu_plugin_get_name
    - FU_IS_DEVICE
    - g_steal_pointer
    - FuPluginVfuncs*::write_firmware
    - FU_IS_PROGRESS
    - g_autoptr
    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:2289,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2290,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2292,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2292,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2293,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2293,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2294,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2294,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2295,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2295,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2296,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2299,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2300,1
    - Dst: FuPluginVfuncs*::composite_peek_firmware
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2307,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2310,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2310,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2311,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2317,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2318,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2318,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 6
    argNames:
    - self
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2324
      start: 2281
    functionDepth: 2
    functionLinenumber: 2281
    functionLinenumberEnd: 2324
    functionName: fu_plugin_runner_composite_peek_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FuPluginVfuncs*::composite_peek_firmware
    - g_critical
    - FU_IS_PLUGIN
    - g_debug
    - fu_plugin_get_vfuncs
    - fu_plugin_has_flag
    - FU_IS_DEVICE
    - fu_plugin_get_name
    - FU_IS_FIRMWARE
    - g_set_error_literal
    - fu_device_set_update_error
    - g_steal_pointer
    - FU_IS_PROGRESS
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_plugin_runner_composite_peek_firmware(FuPlugin *self,\n\t\t\t\t\t
      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_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2341,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2342,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2344,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2344,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2345,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2345,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2346,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2349,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2355,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2355,1
    - Dst: FuPluginVfuncs*::clear_results
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2356,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2358,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2359,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2360,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2366,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2367,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2373
      start: 2338
    functionDepth: 2
    functionLinenumber: 2338
    functionLinenumberEnd: 2373
    functionName: fu_plugin_runner_clear_results
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FuPluginVfuncs*::clear_results
    - g_critical
    - FU_IS_PLUGIN
    - g_debug
    - fu_plugin_get_vfuncs
    - fu_plugin_has_flag
    - FU_IS_DEVICE
    - fu_plugin_get_name
    - g_set_error_literal
    - g_steal_pointer
    - g_autoptr
    - g_propagate_prefixed_error
    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:2390,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2391,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2393,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2393,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2394,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2394,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2395,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2398,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2403,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2403,1
    - Dst: fu_plugin_device_get_results
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2404,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2406,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2406,1
    - Dst: FuPluginVfuncs*::get_results
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2407,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2409,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2410,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2411,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2417,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2418,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2420,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2387
    functionDepth: 2
    functionLinenumber: 2387
    functionLinenumberEnd: 2424
    functionName: fu_plugin_runner_get_results
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_critical
    - FU_IS_PLUGIN
    - g_debug
    - fu_plugin_get_vfuncs
    - fu_plugin_has_flag
    - FU_IS_DEVICE
    - fu_plugin_get_name
    - g_set_error_literal
    - FuPluginVfuncs*::get_results
    - g_steal_pointer
    - fu_plugin_device_get_results
    - g_autoptr
    - g_propagate_prefixed_error
    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:2441,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2443,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2443,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2444,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2447,1
    - Dst: FuPluginVfuncs*::fix_host_security_attr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuPlugin*
    - FwupdSecurityAttr*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2454
      start: 2438
    functionDepth: 2
    functionLinenumber: 2438
    functionLinenumberEnd: 2454
    functionName: fu_plugin_runner_fix_host_security_attr
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PLUGIN
    - fu_plugin_get_vfuncs
    - g_set_error_literal
    - 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:2471,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2473,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2473,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2474,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2477,1
    - Dst: FuPluginVfuncs*::undo_host_security_attr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuPlugin*
    - FwupdSecurityAttr*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2484
      start: 2468
    functionDepth: 2
    functionLinenumber: 2468
    functionLinenumberEnd: 2484
    functionName: fu_plugin_runner_undo_host_security_attr
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PLUGIN
    - FuPluginVfuncs*::undo_host_security_attr
    - fu_plugin_get_vfuncs
    - g_set_error_literal
    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:2502,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2506,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2514,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2514,1
    - Dst: FuPluginVfuncs*::modify_config
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - key
    - value
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2516
      start: 2499
    functionDepth: 2
    functionLinenumber: 2499
    functionLinenumberEnd: 2516
    functionName: fu_plugin_runner_modify_config
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - FuPluginVfuncs*::modify_config
    - g_debug
    - fu_plugin_get_name
    - fu_plugin_get_vfuncs
    - g_set_error
    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:2532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2529
    functionDepth: 0
    functionLinenumber: 2529
    functionLinenumberEnd: 2534
    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:2549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - order
    argTypes:
    - FuPlugin*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2551
      start: 2546
    functionDepth: 0
    functionLinenumber: 2546
    functionLinenumberEnd: 2551
    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:2566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2568
      start: 2563
    functionDepth: 0
    functionLinenumber: 2563
    functionLinenumberEnd: 2568
    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:2582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - priority
    argTypes:
    - FuPlugin*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2584
      start: 2579
    functionDepth: 0
    functionLinenumber: 2579
    functionLinenumberEnd: 2584
    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:2604,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2606,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2607,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2607,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - rule
    - name
    argTypes:
    - FuPlugin*
    - FuPluginRule
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2609
      start: 2601
    functionDepth: 0
    functionLinenumber: 2601
    functionLinenumberEnd: 2609
    functionName: fu_plugin_add_rule
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_ptr_array_add
    - fu_plugin_get_instance_private
    - g_signal_emit
    - g_ptr_array_new_with_free_func
    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:2626,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - rule
    argTypes:
    - FuPlugin*
    - FuPluginRule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2629
      start: 2623
    functionDepth: 0
    functionLinenumber: 2623
    functionLinenumberEnd: 2629
    functionName: fu_plugin_get_rules
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - fu_plugin_get_instance_private
    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:2648,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2651,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2653,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2653,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2654
      start: 2645
    functionDepth: 0
    functionLinenumber: 2645
    functionLinenumberEnd: 2654
    functionName: fu_plugin_add_report_metadata
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_plugin_get_instance_private
    - g_hash_table_insert
    - g_hash_table_new_full
    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:2669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2671
      start: 2666
    functionDepth: 0
    functionLinenumber: 2666
    functionLinenumberEnd: 2671
    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:2685,1
    - Dst: fu_context_get_config
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2686,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2689,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2689,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2690,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2693,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2696,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2698,1
    - Dst: fu_config_get_value
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2701,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2682
    functionDepth: 2
    functionLinenumber: 2682
    functionLinenumberEnd: 2702
    functionName: fu_plugin_get_config_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_critical
    - FU_IS_PLUGIN
    - fu_plugin_get_name
    - fu_config_get_value
    - fu_plugin_get_instance_private
    - fu_context_get_config
    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:2717,1
    - Dst: fu_context_get_config
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2718,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2721,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2721,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2722,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2725,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2728,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2730,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2733,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2734
      start: 2714
    functionDepth: 2
    functionLinenumber: 2714
    functionLinenumberEnd: 2734
    functionName: fu_plugin_set_config_default
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_critical
    - FU_IS_PLUGIN
    - fu_plugin_get_name
    - g_return_if_fail
    - fu_config_set_default
    - fu_plugin_get_instance_private
    - fu_context_get_config
    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:2750,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2751,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2753,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2753,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2754,1
    - Dst: fu_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2756,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2757,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2757,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - appstream_id
    argTypes:
    - FuPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2759
      start: 2747
    functionDepth: 2
    functionLinenumber: 2747
    functionLinenumberEnd: 2759
    functionName: fu_plugin_security_attr_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fwupd_security_attr_set_plugin
    - FU_IS_PLUGIN
    - fu_plugin_get_name
    - g_steal_pointer
    - fu_security_attr_new
    - g_autoptr
    - fu_plugin_get_instance_private
    linkageType: ''
    returnType: FwupdSecurityAttr
    signature: 'FwupdSecurityAttr *

      fu_plugin_security_attr_new(FuPlugin *self, const gchar *appstream_id)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_instance_private
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2777,1
    - Dst: fu_context_get_config
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2778,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2781,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2781,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2782,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2783,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2786,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2792,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2794,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2799,1
    - Dst: fu_config_set_value_internal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2800,1
    - Dst: fu_config_set_value
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2805,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - self
    - key
    - value
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2806
      start: 2774
    functionDepth: 2
    functionLinenumber: 2774
    functionLinenumberEnd: 2806
    functionName: fu_plugin_set_config_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 8
    functionsReached:
    - g_return_val_if_fail
    - g_critical
    - FU_IS_PLUGIN
    - fu_plugin_get_name
    - fu_config_set_value
    - fu_plugin_has_flag
    - g_set_error_literal
    - fu_config_set_value_internal
    - fu_plugin_get_instance_private
    - fu_context_get_config
    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:2822,1
    - Dst: fu_context_get_config
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2823,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2826,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2826,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2827,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2830,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2836,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2838,1
    - Dst: fu_config_reset_defaults
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2841,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2842
      start: 2819
    functionDepth: 2
    functionLinenumber: 2819
    functionLinenumberEnd: 2842
    functionName: fu_plugin_reset_config_values
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_critical
    - FU_IS_PLUGIN
    - fu_plugin_get_name
    - g_set_error_literal
    - fu_config_reset_defaults
    - fu_plugin_get_instance_private
    - fu_context_get_config
    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:2858,1
    - Dst: fu_context_get_config
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2859,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2862,1
    - Dst: FU_IS_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2862,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2863,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2866,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2869,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2871,1
    - Dst: fu_config_get_value_bool
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2874,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2875
      start: 2855
    functionDepth: 2
    functionLinenumber: 2855
    functionLinenumberEnd: 2875
    functionName: fu_plugin_get_config_value_boolean
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_critical
    - FU_IS_PLUGIN
    - fu_plugin_get_name
    - fu_config_get_value_bool
    - fu_plugin_get_instance_private
    - fu_context_get_config
    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:2891,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2891,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - plugin1
    - plugin2
    argTypes:
    - FuPlugin*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2892
      start: 2888
    functionDepth: 2
    functionLinenumber: 2888
    functionLinenumberEnd: 2892
    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:2908,1
    - Dst: fu_plugin_get_instance_private
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2909,1
    - Dst: fu_plugin_name_compare
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2914,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - plugin1
    - plugin2
    argTypes:
    - FuPlugin*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2915
      start: 2905
    functionDepth: 3
    functionLinenumber: 2905
    functionLinenumberEnd: 2915
    functionName: fu_plugin_order_compare
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 1
    functionsReached:
    - fu_plugin_name_compare
    - fu_plugin_get_instance_private
    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:2920,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2921,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2922,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2922,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2924,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2924,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2925,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2925,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2928,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2929,1
    - Dst: g_ascii_isupper
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2934,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2936,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2937,1
    - Dst: g_ascii_tolower
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2937,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2939,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2944,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2944,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - gtype
    argTypes:
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2945
      start: 2917
    functionDepth: 0
    functionLinenumber: 2917
    functionLinenumberEnd: 2945
    functionName: fu_plugin_convert_gtype_to_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_strcmp0
    - g_ascii_tolower
    - g_type_name
    - g_str_has_suffix
    - g_steal_pointer
    - g_string_append_c
    - g_string_free
    - strlen
    - g_string_new
    - g_ascii_isupper
    - g_str_has_prefix
    - g_autoptr
    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:2950,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2951,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2954,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2957,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: 2960
      start: 2947
    functionDepth: 0
    functionLinenumber: 2947
    functionLinenumberEnd: 2960
    functionName: fu_plugin_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_PLUGIN
    - g_value_set_object
    - GET_PRIVATE
    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:2965,1
    - Dst: fu_plugin_set_context
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2968,1
    - Dst: g_value_get_object
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2968,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2971,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: 2974
      start: 2962
    functionDepth: 1
    functionLinenumber: 2962
    functionLinenumberEnd: 2974
    functionName: fu_plugin_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - fu_plugin_set_context
    - g_value_get_object
    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:2979,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2980,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2983,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2985,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2986,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:2988,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2989
      start: 2976
    functionDepth: 0
    functionLinenumber: 2976
    functionLinenumberEnd: 2989
    functionName: fu_plugin_dispose
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - g_ptr_array_set_size
    - G_OBJECT_CLASS
    - g_clear_object
    - g_hash_table_remove_all
    - GET_PRIVATE
    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:2994,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3011,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3012,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3014,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3031,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3032,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3034,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3051,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3052,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3054,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3074,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3075,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3077,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3084,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3085,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3087,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3101,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3107
      start: 2991
    functionDepth: 0
    functionLinenumber: 2991
    functionLinenumberEnd: 3107
    functionName: fu_plugin_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_signal_new
    - g_param_spec_object
    - G_OBJECT_CLASS
    - G_STRUCT_OFFSET
    - G_TYPE_FROM_CLASS
    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:3112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3114
      start: 3109
    functionDepth: 0
    functionLinenumber: 3109
    functionLinenumberEnd: 3114
    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:3119,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3120,1
    - Dst: fu_plugin_get_vfuncs
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3121,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3125,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3125,1
    - Dst: FuPluginVfuncs*::finalize
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3126,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3126,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3131,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3134,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3136,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3138,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3140,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3142,1
    - Dst: g_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3144,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3146,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3147,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3149,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3150
      start: 3116
    functionDepth: 2
    functionLinenumber: 3116
    functionLinenumberEnd: 3150
    functionName: fu_plugin_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - g_debug
    - fu_plugin_get_name
    - fu_plugin_get_vfuncs
    - FuPluginVfuncs*::finalize
    - g_ptr_array_unref
    - g_object_unref
    - g_array_unref
    - G_OBJECT_CLASS
    - g_free
    - G_OBJECT
    - g_hash_table_unref
    - GET_PRIVATE
    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:3166,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3167,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3167,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3169,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3170,1
    - Dst: fu_plugin_convert_gtype_to_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3171,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - gtype
    - ctx
    argTypes:
    - GType
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3175
      start: 3161
    functionDepth: 2
    functionLinenumber: 3161
    functionLinenumberEnd: 3175
    functionName: fu_plugin_new_from_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 12
    functionsReached:
    - g_return_val_if_fail
    - fu_plugin_get_name
    - FU_IS_CONTEXT
    - fu_plugin_set_name
    - g_object_new
    - fu_plugin_convert_gtype_to_name
    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:3188,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3188,1
    - Dst: fu_plugin_set_context
      Src: /src/fwupd/libfwupdplugin/fu-plugin.c:3190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3192
      start: 3185
    functionDepth: 1
    functionLinenumber: 3185
    functionLinenumberEnd: 3192
    functionName: fu_plugin_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.c
    functionUses: 6
    functionsReached:
    - g_object_new
    - FU_PLUGIN
    - fu_plugin_set_context
    linkageType: ''
    returnType: FuPlugin
    signature: 'FuPlugin *

      fu_plugin_new(FuContext *ctx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ref_string_release
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:54,1
    - Dst: FuDeviceEventBlob*::data_destroy
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:56,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - blob
    argTypes:
    - FuDeviceEventBlob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: fu_device_event_blob_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_ref_string_release
    - FuDeviceEventBlob*::data_destroy
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_device_event_blob_free(FuDeviceEventBlob *blob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:66,1
    - Dst: g_ref_string_acquire
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - gtype
    - key
    - data
    - data_destroy
    argTypes:
    - GType
    - GRefString*
    - gpointer
    - GDestroyNotify
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: fu_device_event_blob_new_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_ref_string_acquire
    linkageType: ''
    returnType: FuDeviceEventBlob
    signature: "FuDeviceEventBlob *\nfu_device_event_blob_new_internal(GType gtype,\n\t\t\t\t
      \ GRefString *key,\n\t\t\t\t  gpointer data,\n\t\t\t\t  GDestroyNotify data_destroy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:77,1
    - Dst: g_strv_contains
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:86,1
    - Dst: g_ref_string_new_intern
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:86,1
    - Dst: g_ref_string_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:87,1
    - Dst: fu_device_event_blob_new_internal
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - gtype
    - key
    - data
    - data_destroy
    argTypes:
    - GType
    - gchar*
    - gpointer
    - GDestroyNotify
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 89
    functionName: fu_device_event_blob_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - fu_device_event_blob_new_internal
    - g_ref_string_new
    - g_strv_contains
    - g_ref_string_new_intern
    - g_autoptr
    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:106,1
    - Dst: g_checksum_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:107,1
    - Dst: g_string_sized_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:107,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:109,1
    - Dst: g_checksum_update
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:113,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:113,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:114,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:115,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:117,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:118,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - id
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 119
    functionName: fu_device_event_build_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_checksum_update
    - g_steal_pointer
    - g_checksum_new
    - g_string_free
    - g_string_sized_new
    - strlen
    - g_string_append_printf
    - g_string_append_c
    - g_checksum_get_digest
    - g_autoptr
    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:135,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDeviceEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: fu_device_event_get_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 1
    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:152,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:152,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:153,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:154,1
    - Dst: fu_device_event_blob_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:155,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDeviceEvent*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: fu_device_event_set_str
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 4
    functionsReached:
    - g_strdup
    - fu_device_event_blob_new
    - g_ptr_array_add
    - g_return_if_fail
    - FU_IS_DEVICE_EVENT
    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:171,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:171,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:172,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:174,1
    - Dst: fu_device_event_blob_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:176,1
    - Dst: g_memdup2
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDeviceEvent*
    - gchar*
    - gint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: fu_device_event_set_i64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 1
    functionsReached:
    - fu_device_event_blob_new
    - g_ptr_array_add
    - g_return_if_fail
    - FU_IS_DEVICE_EVENT
    - 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:192,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:192,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:193,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:194,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:195,1
    - Dst: fu_device_event_blob_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:196,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:199,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:199,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDeviceEvent*
    - gchar*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 201
    functionName: fu_device_event_set_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 1
    functionsReached:
    - fu_device_event_blob_new
    - g_bytes_get_data
    - g_ptr_array_add
    - g_return_if_fail
    - FU_IS_DEVICE_EVENT
    - g_bytes_get_size
    - g_base64_encode
    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:216,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:216,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:217,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:218,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:219,1
    - Dst: fu_device_event_blob_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:220,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDeviceEvent*
    - gchar*
    - GByteArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 224
    functionName: fu_device_event_set_byte_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - fu_device_event_blob_new
    - g_ptr_array_add
    - g_return_if_fail
    - FU_IS_DEVICE_EVENT
    - g_base64_encode
    linkageType: ''
    returnType: void
    signature: void fu_device_event_set_byte_array(FuDeviceEvent *self, const gchar
      *key, GByteArray *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:240,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:240,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:241,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:242,1
    - Dst: fu_device_event_blob_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:244,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - self
    - key
    - buf
    - bufsz
    argTypes:
    - FuDeviceEvent*
    - gchar*
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 245
    functionName: fu_device_event_set_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 1
    functionsReached:
    - fu_device_event_blob_new
    - g_ptr_array_add
    - g_return_if_fail
    - FU_IS_DEVICE_EVENT
    - g_base64_encode
    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:259,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:259,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:260,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:261,1
    - Dst: fu_device_event_set_i64
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:262,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDeviceEvent*
    - GError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 264
    functionName: fu_device_event_set_error
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE_EVENT
    - g_return_if_fail
    - fu_device_event_set_str
    - fu_device_event_set_i64
    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:283,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:283,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:290,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:293,1
    - Dst: fwupd_error_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:295,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDeviceEvent*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 300
    functionName: fu_device_event_check_error
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_error_to_string
    - g_set_error_literal
    - fu_device_event_get_i64
    - FU_IS_DEVICE_EVENT
    - fu_device_event_get_str
    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:308,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:309,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:315,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:319,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - self
    - key
    - gtype
    - error
    argTypes:
    - FuDeviceEvent*
    - gchar*
    - GType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 327
    functionName: fu_device_event_lookup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_ptr_array_index
    - 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:344,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:344,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:345,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:346,1
    - Dst: fu_device_event_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FuDeviceEvent*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 348
    functionName: fu_device_event_get_str
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - fu_device_event_lookup
    - 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:366,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:366,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:367,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:368,1
    - Dst: fu_device_event_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FuDeviceEvent*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 373
    functionName: fu_device_event_get_i64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_device_event_lookup
    - 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:394,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:394,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:395,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:396,1
    - Dst: fu_device_event_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:398,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:402,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:403,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:404,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FuDeviceEvent*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 405
    functionName: fu_device_event_get_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_new
    - g_steal_pointer
    - fu_device_event_lookup
    - g_bytes_new_take
    - FU_IS_DEVICE_EVENT
    - g_base64_decode
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_device_event_get_bytes(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:426,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:426,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:427,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:428,1
    - Dst: fu_device_event_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:430,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:434,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:435,1
    - Dst: g_byte_array_new_take
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:436,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:436,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FuDeviceEvent*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 437
    functionName: fu_device_event_get_byte_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_byte_array_new_take
    - g_steal_pointer
    - fu_device_event_lookup
    - g_byte_array_new
    - FU_IS_DEVICE_EVENT
    - g_base64_decode
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_device_event_get_byte_array(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:466,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:466,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:467,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:468,1
    - Dst: fu_device_event_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:470,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:473,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:477,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: 479
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 479
    functionName: fu_device_event_copy_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_device_event_lookup
    - FU_IS_DEVICE_EVENT
    - fu_memcpy_safe
    - g_base64_decode
    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:484,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:487,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:489,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:493,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:495,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:497,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:501,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:501,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 504
    functionName: fu_device_event_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_type_name
    - FU_DEVICE_EVENT
    - fwupd_json_object_add_integer
    - g_warning
    - g_ptr_array_index
    - fwupd_json_object_add_string
    linkageType: ''
    returnType: void
    signature: void fu_device_event_add_json(FwupdCodec *codec, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:509,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:509,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:510,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:512,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:513,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:516,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:517,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:519,1
    - Dst: fu_device_event_build_id
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FuDeviceEvent*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 522
    functionName: fu_device_event_set_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_device_event_build_id
    - g_return_if_fail
    - FU_IS_DEVICE_EVENT
    - g_str_has_prefix
    - g_clear_pointer
    linkageType: ''
    returnType: void
    signature: void fu_device_event_set_id(FuDeviceEvent *self, const gchar *id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:527,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:528,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:529,1
    - Dst: fu_device_event_build_id
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FuDeviceEvent*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 533
    functionName: fu_device_event_set_id_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_device_event_build_id
    - g_str_has_prefix
    - g_clear_pointer
    linkageType: ''
    returnType: void
    signature: void fu_device_event_set_id_from_json(FuDeviceEvent *self, const gchar
      *id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:538,1
    - Dst: fwupd_json_object_get_size
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:539,1
    - Dst: fwupd_json_object_get_key_for_index
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:540,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:541,1
    - Dst: fwupd_json_object_get_node_for_index
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:543,1
    - Dst: fwupd_json_node_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:546,1
    - Dst: fwupd_json_node_get_string
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:547,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:548,1
    - Dst: fu_device_event_set_id_from_json
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:549,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:551,1
    - Dst: fu_device_event_blob_new_internal
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:552,1
    - Dst: g_ref_string_acquire
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:555,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:558,1
    - Dst: fu_device_event_blob_new_internal
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:559,1
    - Dst: fwupd_json_node_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:564,1
    - Dst: fwupd_json_node_get_raw
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:568,1
    - Dst: fu_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:571,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:578,1
    - Dst: fu_device_event_blob_new_internal
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:580,1
    - Dst: g_memdup2
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:582,1
    - Dst: fwupd_json_object_clear
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:588,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - codec
    - json_obj
    - error
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 592
    functionName: fu_device_event_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fwupd_json_object_get_key_for_index
    - fwupd_json_node_get_string
    - fu_device_event_blob_new_internal
    - g_ptr_array_add
    - FU_DEVICE_EVENT
    - fu_device_event_set_id_from_json
    - fwupd_json_node_get_raw
    - fu_strtoll
    - fwupd_json_object_get_node_for_index
    - fwupd_json_object_clear
    - g_autoptr
    - fwupd_json_object_get_size
    - fwupd_json_node_get_kind
    - g_memdup2
    - g_ref_string_acquire
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_event_from_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDeviceEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 598
    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:603,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:604,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:605,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:606,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 608
    functionName: fu_device_event_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_DEVICE_EVENT
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    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:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDeviceEventClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 615
    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: 622
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 622
    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:635,1
    - Dst: fu_device_event_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:637,1
    - Dst: FU_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device-event.c:638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 639
    functionName: fu_device_event_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-event.c
    functionUses: 4
    functionsReached:
    - g_object_new
    - fu_device_event_set_id
    - FU_DEVICE_EVENT
    linkageType: ''
    returnType: FuDeviceEvent
    signature: 'FuDeviceEvent *

      fu_device_event_new(const gchar *id)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_ENDPOINT
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:40,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:44,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:51,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:58,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:61,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:64,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:71,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - codec
    - json_obj
    - error
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 81
    functionName: fu_usb_endpoint_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c
    functionUses: 0
    functionsReached:
    - FU_USB_ENDPOINT
    - fwupd_json_object_get_integer_with_default
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_endpoint_from_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_ENDPOINT
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:86,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:90,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:95,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:100,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:105,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:110,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:115,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 119
    functionName: fu_usb_endpoint_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c
    functionUses: 0
    functionsReached:
    - FU_USB_ENDPOINT
    - fwupd_json_object_add_integer
    linkageType: ''
    returnType: void
    signature: void fu_usb_endpoint_add_json(FwupdCodec *codec, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:134,1
    - Dst: FU_IS_USB_ENDPOINT
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbEndpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 136
    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:151,1
    - Dst: FU_IS_USB_ENDPOINT
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbEndpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 153
    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:168,1
    - Dst: FU_IS_USB_ENDPOINT
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbEndpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 170
    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:185,1
    - Dst: FU_IS_USB_ENDPOINT
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbEndpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 187
    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:202,1
    - Dst: FU_IS_USB_ENDPOINT
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbEndpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 206
    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:214,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:215,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:218,1
    - Dst: fu_usb_endpoint_hdr_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:222,1
    - Dst: fu_usb_endpoint_hdr_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:225,1
    - Dst: fu_usb_endpoint_hdr_get_descriptor_type
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:226,1
    - Dst: fu_usb_endpoint_hdr_get_endpoint_address
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:227,1
    - Dst: fu_usb_endpoint_hdr_get_attributes
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:228,1
    - Dst: fu_usb_endpoint_hdr_get_max_packet_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:229,1
    - Dst: fu_usb_endpoint_hdr_get_interval
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 236
    functionName: fu_usb_endpoint_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c
    functionUses: 0
    functionsReached:
    - fu_usb_endpoint_hdr_get_descriptor_type
    - fu_usb_endpoint_hdr_get_length
    - fu_usb_endpoint_hdr_get_attributes
    - FU_USB_ENDPOINT
    - FU_FIRMWARE_CLASS
    - fu_usb_endpoint_hdr_get_max_packet_size
    - fu_usb_endpoint_hdr_get_interval
    - g_autoptr
    - fu_usb_endpoint_hdr_get_endpoint_address
    - fu_usb_endpoint_hdr_parse_stream
    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: 243
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 243
    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: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    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:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbEndpointClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 255
    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:267,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:270,1
    - Dst: FU_USB_ENDPOINT
      Src: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - endpoint_descriptor
    argTypes:
    - struct libusb_endpoint_descriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: fu_usb_endpoint_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-endpoint.c
    functionUses: 0
    functionsReached:
    - FU_USB_ENDPOINT
    - g_object_new
    - memcpy
    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:30,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-report.c:30,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-hid-report.c:31,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-report.c:31,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-hid-report.c:32,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-report.c:32,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-hid-report.c:33,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-report.c:33,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-hid-report.c:34,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-report.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidReport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: fu_hid_report_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-report.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    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:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    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: 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-efivars.c
    functionUses: 662
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:43,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:44,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfivars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: fu_efivars_get_path_store
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EFIVARS
    - GET_PRIVATE
    linkageType: ''
    returnType: FuPathStore
    signature: 'FuPathStore *

      fu_efivars_get_path_store(FuEfivars *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:62,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:64,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:64,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:65,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:68,1
    - Dst: FuEfivarsClass*::supported
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: fu_efivars_supported
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_EFIVARS_GET_CLASS
    - g_set_error_literal
    - FuEfivarsClass*::supported
    - 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:90,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:92,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:92,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:93,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:94,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:95,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:98,1
    - Dst: FuEfivarsClass*::delete
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - guid
    - name
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 102
    functionName: fu_efivars_delete
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_EFIVARS_GET_CLASS
    - g_set_error_literal
    - FU_IS_EFIVARS
    - FuEfivarsClass*::delete
    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:123,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:125,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:125,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:126,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:127,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:128,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:131,1
    - Dst: FuEfivarsClass*::delete_with_glob
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:134,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: 135
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 135
    functionName: fu_efivars_delete_with_glob
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FuEfivarsClass*::delete_with_glob
    - FU_EFIVARS_GET_CLASS
    - g_set_error_literal
    - 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:152,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:154,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:154,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:155,1
    - Dst: FuEfivarsClass*::exists
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - guid
    - name
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: fu_efivars_exists
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FuEfivarsClass*::exists
    - FU_IS_EFIVARS
    - FU_EFIVARS_GET_CLASS
    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:187,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:189,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:189,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:190,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:191,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:192,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:195,1
    - Dst: FuEfivarsClass*::get_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - self
    - guid
    - name
    - data
    - data_sz
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - guint8**
    - gsize*
    - FuEfiVariableAttrs*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 199
    functionName: fu_efivars_get_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_EFIVARS_GET_CLASS
    - g_set_error_literal
    - FU_IS_EFIVARS
    - FuEfivarsClass*::get_data
    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
      \   FuEfiVariableAttrs *attr,\n\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:222,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:224,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:224,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:225,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:226,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:227,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:230,1
    - Dst: FuEfivarsClass*::get_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - self
    - guid
    - name
    - attrs
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - FuEfiVariableAttrs*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 234
    functionName: fu_efivars_get_attrs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_EFIVARS_GET_CLASS
    - g_set_error_literal
    - FU_IS_EFIVARS
    - FuEfivarsClass*::get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efivars_get_attrs(FuEfivars *self,\n\t\t     const gchar
      *guid,\n\t\t     const gchar *name,\n\t\t     FuEfiVariableAttrs *attrs,\n\t\t
      \    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:260,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:260,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:261,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:262,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:263,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:265,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - self
    - guid
    - name
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - FuEfiVariableAttrs*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 268
    functionName: fu_efivars_get_data_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_new_take
    - 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  FuEfiVariableAttrs *attr,\n\t\t\t
      \ GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:286,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:288,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:288,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:289,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:290,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:293,1
    - Dst: FuEfivarsClass*::get_names
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - guid
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 297
    functionName: fu_efivars_get_names
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FuEfivarsClass*::get_names
    - FU_EFIVARS_GET_CLASS
    - g_set_error_literal
    - 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:315,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:317,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:317,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:318,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:319,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:322,1
    - Dst: FuEfivarsClass*::get_monitor
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - guid
    - name
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 326
    functionName: fu_efivars_get_monitor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_EFIVARS_GET_CLASS
    - FuEfivarsClass*::get_monitor
    - g_set_error_literal
    - 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:343,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:345,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:345,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:346,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:349,1
    - Dst: FuEfivarsClass*::space_used
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 353
    functionName: fu_efivars_space_used
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_EFIVARS_GET_CLASS
    - g_set_error_literal
    - FU_IS_EFIVARS
    - FuEfivarsClass*::space_used
    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:369,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:371,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:371,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:372,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:375,1
    - Dst: FuEfivarsClass*::space_free
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 379
    functionName: fu_efivars_space_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FuEfivarsClass*::space_free
    - FU_EFIVARS_GET_CLASS
    - g_set_error_literal
    - 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:406,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:408,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:408,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:409,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:410,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:411,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:412,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:415,1
    - Dst: FuEfivarsClass*::set_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - self
    - guid
    - name
    - data
    - sz
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - guint8*
    - gsize
    - FuEfiVariableAttrs
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 419
    functionName: fu_efivars_set_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FuEfivarsClass*::set_data
    - FU_EFIVARS_GET_CLASS
    - g_set_error_literal
    - 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    FuEfiVariableAttrs attr,\n\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:447,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:447,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:448,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:449,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:450,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:451,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:453,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - self
    - guid
    - name
    - bytes
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GBytes*
    - FuEfiVariableAttrs
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 455
    functionName: fu_efivars_set_data_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_get_data
    - 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  FuEfiVariableAttrs
      attr,\n\t\t\t  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:475,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:475,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:476,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:478,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:485,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - enabled
    - error
    argTypes:
    - FuEfivars*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 505
    functionName: fu_efivars_get_secure_boot
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - 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:514,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:514,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:515,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - enabled
    - error
    argTypes:
    - FuEfivars*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 523
    functionName: fu_efivars_set_secure_boot
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_efivars_set_data
    - 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:543,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:543,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:544,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:546,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:555,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:559,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuEfivars*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 563
    functionName: fu_efivars_get_boot_next
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - FU_IS_EFIVARS
    - fu_memread_uint16
    - fu_efivars_get_data
    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:581,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:581,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:582,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:583,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuEfivars*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 593
    functionName: fu_efivars_set_boot_next
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_memwrite_uint16
    - fu_efivars_set_data
    - 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:613,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:613,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:614,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:616,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:625,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:629,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuEfivars*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 633
    functionName: fu_efivars_get_boot_current
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - FU_IS_EFIVARS
    - fu_memread_uint16
    - fu_efivars_get_data
    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:643,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:643,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:644,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:646,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuEfivars*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 655
    functionName: fu_efivars_set_boot_current
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_memwrite_uint16
    - fu_efivars_set_data
    - 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:673,1
    - Dst: g_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:673,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:675,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:675,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:676,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:678,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:687,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:691,1
    - Dst: g_array_append_val
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:692,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:696,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 697
    functionName: fu_efivars_get_boot_order
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_array_new
    - g_set_error_literal
    - g_steal_pointer
    - FU_IS_EFIVARS
    - fu_memread_uint16
    - fu_efivars_get_data
    - g_array_append_val
    - g_autoptr
    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:714,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:714,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:716,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:716,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:717,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:718,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:721,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:722,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - order
    - error
    argTypes:
    - FuEfivars*
    - GArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 733
    functionName: fu_efivars_set_boot_order
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_byte_array_append_uint16
    - g_array_index
    - g_byte_array_new
    - FU_IS_EFIVARS
    - g_autoptr
    - fu_efivars_set_data
    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:742,1
    - Dst: g_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:742,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:744,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:744,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:745,1
    - Dst: va_start
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:747,1
    - Dst: va_arg
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:749,1
    - Dst: g_array_append_val
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:752,1
    - Dst: va_end
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:754,1
    - Dst: fu_efivars_set_boot_order
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:757,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 738
    functionDepth: 3
    functionLinenumber: 738
    functionLinenumberEnd: 758
    functionName: fu_efivars_build_boot_order
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_array_new
    - va_end
    - fu_efivars_set_boot_order
    - va_arg
    - FU_IS_EFIVARS
    - g_array_append_val
    - g_autoptr
    - va_start
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efivars_build_boot_order(FuEfivars *self, GError **error,
      ...)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:785,1
    - Dst: fu_efi_device_path_list_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:785,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:786,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:787,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:788,1
    - Dst: fu_efi_load_option_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:788,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:789,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:792,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:792,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:793,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:793,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:794,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:795,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:796,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:799,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:801,1
    - Dst: g_file_new_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:807,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:808,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:809,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:809,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:810,1
    - Dst: fu_pefile_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:810,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:811,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:811,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:812,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:813,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:814,1
    - Dst: fu_firmware_write_file
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:816,1
    - Dst: fu_efi_hard_drive_device_path_new_from_volume
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:820,1
    - Dst: fu_efi_file_path_device_path_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:823,1
    - Dst: fu_efi_file_path_device_path_set_name
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:824,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:826,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:826,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:826,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:828,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:828,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:828,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:831,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:831,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:832,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:832,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:832,1
    - Dst: fu_efivars_set_boot_entry
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:834,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 6
    argNames:
    - self
    - idx
    - volume
    - name
    - target
    - error
    argTypes:
    - FuEfivars*
    - guint16
    - FuVolume*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 835
    functionName: fu_efivars_create_boot_entry_for_volume
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - FU_IS_VOLUME
    - fu_firmware_set_bytes
    - fu_efi_device_path_list_new
    - fu_firmware_add_image
    - g_set_error_literal
    - fu_efi_hard_drive_device_path_new_from_volume
    - FU_IS_EFIVARS
    - fu_firmware_write_file
    - g_bytes_new_static
    - FU_FIRMWARE
    - fu_volume_get_mount_point
    - fu_firmware_new
    - g_file_new_build_filename
    - fu_efi_file_path_device_path_set_name
    - g_return_val_if_fail
    - fu_pefile_firmware_new
    - fu_firmware_set_id
    - g_file_query_exists
    - fu_efi_load_option_new
    - g_autoptr
    - fu_efi_file_path_device_path_new
    - fu_efivars_set_boot_entry
    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:852,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:853,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:853,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:854,1
    - Dst: fu_efivars_get_data_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuEfivars*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 849
    functionDepth: 2
    functionLinenumber: 849
    functionLinenumberEnd: 856
    functionName: fu_efivars_get_boot_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_strdup_printf
    - fu_efivars_get_data_bytes
    - FU_IS_EFIVARS
    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:874,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:875,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:875,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:876,1
    - Dst: fu_efivars_delete
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:879,1
    - Dst: fu_efivars_set_data_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - self
    - idx
    - blob
    - error
    argTypes:
    - FuEfivars*
    - guint16
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 871
    functionDepth: 2
    functionLinenumber: 871
    functionLinenumberEnd: 888
    functionName: fu_efivars_set_boot_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_efivars_delete
    - g_strdup_printf
    - fu_efivars_set_data_bytes
    - 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:905,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:906,1
    - Dst: fu_efi_load_option_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:906,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:907,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:909,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:909,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:910,1
    - Dst: fu_efivars_get_data_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:913,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:916,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:916,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:922,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:922,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:923,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuEfivars*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 902
    functionDepth: 2
    functionLinenumber: 902
    functionLinenumberEnd: 924
    functionName: fu_efivars_get_boot_entry
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_efivars_get_data_bytes
    - FU_FIRMWARE
    - g_steal_pointer
    - fu_firmware_set_idx
    - g_strdup_printf
    - fu_firmware_parse_bytes
    - FU_IS_EFIVARS
    - fu_efi_load_option_new
    - g_autoptr
    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:942,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:944,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:944,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:945,1
    - Dst: FU_IS_EFI_LOAD_OPTION
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:945,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:946,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:948,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:948,1
    - Dst: fu_efivars_set_boot_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:951,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - idx
    - entry
    - error
    argTypes:
    - FuEfivars*
    - guint16
    - FuEfiLoadOption*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 939
    functionDepth: 3
    functionLinenumber: 939
    functionLinenumberEnd: 952
    functionName: fu_efivars_set_boot_entry
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_firmware_write
    - FU_FIRMWARE
    - FU_IS_EFI_LOAD_OPTION
    - FU_IS_EFIVARS
    - fu_efivars_set_boot_data
    - g_autoptr
    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:968,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:969,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:969,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:971,1
    - Dst: FU_IS_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:971,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:972,1
    - Dst: fu_efivars_get_boot_order
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:974,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:978,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:979,1
    - Dst: fu_efivars_get_boot_entry
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:981,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:983,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:986,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:986,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:990,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 965
    functionDepth: 3
    functionLinenumber: 965
    functionLinenumberEnd: 991
    functionName: fu_efivars_get_boot_entries
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_steal_pointer
    - g_ptr_array_add
    - fu_efivars_get_boot_order
    - g_prefix_error
    - fu_efivars_get_boot_entry
    - g_array_index
    - FU_IS_EFIVARS
    - g_autoptr
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_efivars_get_boot_entries(FuEfivars *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:996,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:997,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:1000,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:1003,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: 1006
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 1006
    functionName: fu_efivars_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_value_set_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_EFIVARS
    linkageType: ''
    returnType: void
    signature: void fu_efivars_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:1011,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:1012,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:1015,1
    - Dst: g_value_get_object
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:1015,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:1018,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: 1021
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1021
    functionName: fu_efivars_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_object
    - FU_EFIVARS
    - g_value_get_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_efivars_set_property(GObject *object, guint prop_id, const
      GValue *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfivars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1026
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFIVARS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:1031,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:1032,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:1035,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:1037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1028
    functionDepth: 0
    functionLinenumber: 1028
    functionLinenumberEnd: 1038
    functionName: fu_efivars_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_object_unref
    - G_OBJECT_CLASS
    - FU_EFIVARS
    linkageType: ''
    returnType: void
    signature: void fu_efivars_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:1043,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:1050,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-efivars.c:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfivarsClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1056
    functionName: fu_efivars_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_object
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efivars_class_init(FuEfivarsClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:21,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:24,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:25,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:26,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:29,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:30,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:31,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:32,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:35,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:36,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:37,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:38,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:38,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:39,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:39,1
    - Dst: g_mapped_file_new
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:42,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:43,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:44,1
    - Dst: g_mapped_file_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:45,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:46,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:47,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:47,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:48,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:48,1
    - Dst: fu_bytes_get_data_safe
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:51,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:52,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 11
    functionDepth: 2
    functionLinenumber: 11
    functionLinenumberEnd: 54
    functionName: fu_bytes_get_data_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes-test.c
    functionUses: 0
    functionsReached:
    - g_mapped_file_new
    - fu_bytes_get_contents
    - fu_bytes_get_data_safe
    - g_bytes_get_data
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - fu_temporary_directory_build
    - g_assert_cmpint
    - g_bytes_get_size
    - g_mapped_file_get_bytes
    - g_assert_true
    - fu_temporary_directory_new
    - g_autoptr
    - g_assert_null
    - g_file_set_contents
    linkageType: ''
    returnType: void
    signature: void fu_bytes_get_data_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:59,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:60,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-bytes-test.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes-test.c
    functionUses: 3
    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: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:18,1
    - Dst: fu_memmem_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:20,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:21,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:22,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:23,1
    - Dst: fu_memmem_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:25,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:31,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 33
    functionName: fu_mem_memmem_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem-test.c
    functionUses: 0
    functionsReached:
    - g_assert_error
    - g_assert_no_error
    - g_assert_cmpint
    - fu_memmem_safe
    - g_assert_false
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_mem_memmem_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:40,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:41,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:42,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:43,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:43,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:45,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:46,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:47,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:48,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:48,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:50,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:51,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:52,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:53,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:54,1
    - Dst: fu_memread_uint24
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:54,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:56,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:57,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:58,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:59,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:60,1
    - Dst: fu_memread_uint24
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 61
    functionName: fu_mem_endian_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem-test.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - g_assert_cmpint
    - fu_memread_uint16
    - fu_memwrite_uint24
    - fu_memread_uint24
    linkageType: ''
    returnType: void
    signature: void fu_mem_endian_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:69,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:72,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:73,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:74,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:75,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:75,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:78,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:79,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:80,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:81,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:84,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:85,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:86,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:87,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:90,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:91,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:92,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:95,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:96,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:97,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:98,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:101,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:102,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:103,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:104,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:107,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:108,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:109,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:110,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:113,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:114,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:115,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 117
    functionName: fu_mem_memcpy_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem-test.c
    functionUses: 0
    functionsReached:
    - g_assert_error
    - g_assert_no_error
    - g_assert_cmpint
    - g_clear_error
    - g_assert_false
    - memcmp
    - fu_memcpy_safe
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_mem_memcpy_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:122,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:123,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:124,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:125,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-mem-test.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem-test.c
    functionUses: 3
    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: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:46,1
    - Dst: FU_IS_MSGPACK_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMsgpackItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    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:63,1
    - Dst: FU_IS_MSGPACK_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:63,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMsgpackItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    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:81,1
    - Dst: FU_IS_MSGPACK_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:81,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMsgpackItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    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:99,1
    - Dst: FU_IS_MSGPACK_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:99,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMsgpackItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 102
    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:117,1
    - Dst: FU_IS_MSGPACK_ITEM
      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
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMsgpackItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 121
    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:136,1
    - Dst: FU_IS_MSGPACK_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:136,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMsgpackItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 139
    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:154,1
    - Dst: FU_IS_MSGPACK_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:154,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMsgpackItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 157
    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:172,1
    - Dst: FU_IS_MSGPACK_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:172,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMsgpackItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 175
    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:189,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:189,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: fu_msgpack_item_new_nil
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - g_autoptr
    - g_steal_pointer
    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:207,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:207,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 211
    functionName: fu_msgpack_item_new_boolean
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - g_autoptr
    - g_steal_pointer
    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:226,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:226,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:227,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - gint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 231
    functionName: fu_msgpack_item_new_integer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_object_new
    - g_autoptr
    - g_steal_pointer
    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:246,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:246,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:247,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - gdouble
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 251
    functionName: fu_msgpack_item_new_float
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_object_new
    - g_autoptr
    - g_steal_pointer
    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:266,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:266,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:267,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:269,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - GByteArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 271
    functionName: fu_msgpack_item_new_binary
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_steal_pointer
    - g_object_new
    - g_byte_array_ref
    - g_autoptr
    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:286,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:286,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:287,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:287,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:289,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - stream
    argTypes:
    - GInputStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 291
    functionName: fu_msgpack_item_new_binary_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_steal_pointer
    - g_object_ref
    - g_object_new
    - G_IS_INPUT_STREAM
    - g_autoptr
    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:306,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:306,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:307,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:309,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 311
    functionName: fu_msgpack_item_new_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_steal_pointer
    - g_object_new
    - g_string_new
    - g_autoptr
    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:326,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:326,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - items
    argTypes:
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 330
    functionName: fu_msgpack_item_new_map
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - g_autoptr
    - g_steal_pointer
    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:345,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:345,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - items
    argTypes:
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 349
    functionName: fu_msgpack_item_new_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - g_autoptr
    - g_steal_pointer
    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:356,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:361,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:365,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:366,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:370,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:371,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:374,1
    - Dst: fu_byte_array_append_uint64
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:375,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:378,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - buf
    - val
    - error
    argTypes:
    - GByteArray*
    - gint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 380
    functionName: fu_msgpack_item_append_integer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint16
    - g_set_error_literal
    - fu_byte_array_append_uint64
    - fu_byte_array_append_uint8
    - 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:386,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:387,1
    - Dst: fu_byte_array_append_uint64
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - val
    - error
    argTypes:
    - GByteArray*
    - gdouble
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 398
    functionName: fu_msgpack_item_append_double
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint64
    - fu_byte_array_append_uint8
    - fu_memcpy_safe
    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:404,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:408,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:409,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:413,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:414,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - buf
    - val
    - error
    argTypes:
    - GByteArray*
    - gint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 419
    functionName: fu_msgpack_item_append_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_byte_array_append_uint16
    - 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:425,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:429,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:430,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:434,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:435,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:438,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - buf
    - val
    - error
    argTypes:
    - GByteArray*
    - gint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 440
    functionName: fu_msgpack_item_append_map
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_byte_array_append_uint16
    - 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:446,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:447,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:451,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:452,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:453,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:457,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:458,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:459,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:463,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:464,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:465,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:468,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - buf
    - str
    - error
    argTypes:
    - GByteArray*
    - GString*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 470
    functionName: fu_msgpack_item_append_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint16
    - g_set_error_literal
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint32
    - g_byte_array_append
    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:479,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: 481
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 481
    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:487,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:490,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:491,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:492,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:498,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:499,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:500,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:506,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:507,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:508,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:513,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - buf
    - stream
    - error
    argTypes:
    - GByteArray*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 515
    functionName: fu_msgpack_item_append_binary_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint16
    - fu_input_stream_size
    - g_set_error_literal
    - fu_byte_array_append_uint8
    - fu_input_stream_chunkify
    - 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:521,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:522,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:523,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:527,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:528,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:529,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:533,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:534,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:535,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - buf
    - donor
    - error
    argTypes:
    - GByteArray*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 517
    functionDepth: 2
    functionLinenumber: 517
    functionLinenumberEnd: 540
    functionName: fu_msgpack_item_append_binary
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint16
    - g_set_error_literal
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint32
    - g_byte_array_append
    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:546,1
    - Dst: FU_IS_MSGPACK_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:546,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:549,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:553,1
    - Dst: fu_msgpack_item_append_double
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:559,1
    - Dst: fu_msgpack_item_append_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:561,1
    - Dst: fu_msgpack_item_append_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:563,1
    - Dst: fu_msgpack_item_append_binary_stream
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:566,1
    - Dst: fu_msgpack_item_append_binary
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:567,1
    - Dst: fu_msgpack_item_append_array
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:570,1
    - Dst: fu_msgpack_item_append_map
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:572,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:575,1
    - Dst: fu_msgpack_item_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:579,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuMsgpackItem*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 543
    functionDepth: 3
    functionLinenumber: 543
    functionLinenumberEnd: 581
    functionName: fu_msgpack_item_append
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_MSGPACK_ITEM
    - fu_msgpack_item_append_double
    - fu_msgpack_item_append_string
    - g_set_error
    - fu_msgpack_item_append_array
    - fu_msgpack_item_append_binary_stream
    - fu_msgpack_item_append_map
    - fu_byte_array_append_uint8
    - fu_msgpack_item_append_binary
    - fu_msgpack_item_kind_to_string
    - fu_msgpack_item_append_integer
    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:586,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:586,1
    - Dst: fu_memchk_read
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:587,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:589,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - buf
    - offset
    - n
    - error
    argTypes:
    - GByteArray*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 591
    functionName: fu_msgpack_item_read_binary
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_memchk_read
    - g_byte_array_new
    - g_byte_array_append
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_msgpack_item_read_binary(GByteArray *buf, gsize offset, gsize n, GError **error)'
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:598,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:600,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:601,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:604,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:606,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:607,1
    - Dst: fu_msgpack_item_new_nil
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:613,1
    - Dst: fu_msgpack_item_new_boolean
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:617,1
    - Dst: fu_msgpack_item_new_boolean
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:619,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:623,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:626,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:628,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:629,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:632,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:636,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:638,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:639,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:642,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:646,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:648,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:649,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:652,1
    - Dst: fu_memread_uint64_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:656,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:658,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:659,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:662,1
    - Dst: fu_memread_uint64_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:668,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:675,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:676,1
    - Dst: fu_msgpack_item_new_float
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:679,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:685,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:688,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:690,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:694,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:696,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:699,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:701,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:705,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:707,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:710,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:712,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:716,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:718,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:721,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:723,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:729,1
    - Dst: fu_msgpack_item_read_binary
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:731,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:734,1
    - Dst: fu_msgpack_item_new_binary
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:736,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:740,1
    - Dst: fu_msgpack_item_read_binary
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:742,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:745,1
    - Dst: fu_msgpack_item_new_binary
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:747,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:751,1
    - Dst: fu_msgpack_item_read_binary
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:753,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:756,1
    - Dst: fu_msgpack_item_new_binary
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:758,1
    - Dst: fu_msgpack_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:763,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:766,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:768,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:769,1
    - Dst: fu_msgpack_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:772,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:776,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:778,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:779,1
    - Dst: fu_msgpack_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:782,1
    - Dst: fu_msgpack_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:787,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:790,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:792,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:793,1
    - Dst: fu_msgpack_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:796,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:800,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:802,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:803,1
    - Dst: fu_msgpack_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:806,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:810,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 174
    argCount: 3
    argNames:
    - buf
    - offset
    - error
    argTypes:
    - GByteArray*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 812
    functionName: fu_msgpack_item_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 1
    functionsReached:
    - fu_msgpack_item_new_float
    - fu_msgpack_item_new_nil
    - fu_msgpack_item_new_map
    - fu_memread_uint32_safe
    - fu_memstrsafe
    - g_prefix_error_literal
    - fu_memread_uint64_safe
    - fu_msgpack_item_new_binary
    - fu_msgpack_item_new_integer
    - fu_msgpack_item_new_boolean
    - fu_msgpack_item_new_string
    - fu_memread_uint8_safe
    - fu_msgpack_item_new_array
    - fu_memread_uint16_safe
    - g_return_val_if_fail
    - g_set_error
    - fu_msgpack_item_read_binary
    - fu_size_checked_inc
    - g_autoptr
    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: 817
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 817
    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:822,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:825,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:828,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:830,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-item.c:833,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 834
    functionName: fu_msgpack_item_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-item.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_byte_array_unref
    - G_OBJECT_CLASS
    - g_string_free
    - 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:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMsgpackItemClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 841
    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:18,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:23,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:23,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:23,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:24,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:27,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 29
    functionName: fu_oprom_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_udev_device_get_sysfs_path
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - FU_OPROM_DEVICE
    - g_build_filename
    - 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:35,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:37,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:37,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:37,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:38,1
    - Dst: fu_output_stream_from_path
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:41,1
    - Dst: g_output_stream_write_all
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:44,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuOpromDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 51
    functionName: fu_oprom_device_set_enabled
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_sysfs_path
    - g_output_stream_write_all
    - fwupd_error_convert
    - fu_output_stream_from_path
    - FU_UDEV_DEVICE
    - g_str_has_prefix
    - g_autoptr
    - g_build_filename
    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:56,1
    - Dst: fu_oprom_device_set_enabled
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: fu_oprom_device_dump_enable_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-device.c
    functionUses: 0
    functionsReached:
    - FU_OPROM_DEVICE
    - fu_oprom_device_set_enabled
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_oprom_device_dump_enable_cb(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_OPROM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:63,1
    - Dst: fu_oprom_device_set_enabled
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: fu_oprom_device_dump_disable_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-device.c
    functionUses: 0
    functionsReached:
    - FU_OPROM_DEVICE
    - fu_oprom_device_set_enabled
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_oprom_device_dump_disable_cb(FuDevice *device, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_OPROM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:70,1
    - Dst: g_autoptr
      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_byte_array_new
      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: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:77,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:80,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:81,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:89,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:89,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:89,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:90,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:91,1
    - Dst: g_file_read
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:91,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:93,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:101,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:112,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:115,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:118,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:122,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:130,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:137,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:137,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 138
    functionName: fu_oprom_device_dump_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_sysfs_path
    - g_debug
    - g_set_error
    - g_set_error_literal
    - g_file_read
    - g_steal_pointer
    - g_byte_array_new
    - fu_device_has_flag
    - g_byte_array_free_to_bytes
    - G_INPUT_STREAM
    - g_file_new_for_path
    - g_byte_array_append
    - FU_UDEV_DEVICE
    - g_input_stream_read
    - FU_OPROM_DEVICE
    - g_autoptr
    - g_build_filename
    - 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:143,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:143,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:144,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-device.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuOpromDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: fu_oprom_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - fu_udev_device_add_open_flag
    - FU_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:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuOpromDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 153
    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: 666
    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: 2
    functionsReached:
    - g_strdup
    - g_ptr_array_add
    - g_return_if_fail
    - FU_IS_CSV_FIRMWARE
    - GET_PRIVATE
    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: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CSV_FIRMWARE
    - g_ptr_array_index
    - GET_PRIVATE
    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_return_val_if_fail
    - g_strcmp0
    - FU_IS_CSV_FIRMWARE
    - g_ptr_array_index
    - GET_PRIVATE
    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:
    - FU_IS_CSV_FIRMWARE
    - g_return_if_fail
    - GET_PRIVATE
    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
    - FU_IS_CSV_FIRMWARE
    - GET_PRIVATE
    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
      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:
    - g_bytes_new
    - fu_firmware_add_image
    - FU_FIRMWARE
    - fu_strsplit_full
    - fu_firmware_set_idx
    - fu_csv_entry_new
    - fu_firmware_parse_bytes
    - FU_CSV_FIRMWARE
    - g_str_has_prefix
    - g_autoptr
    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_strsplit_stream
    - FU_CSV_FIRMWARE
    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
    - fu_byte_array_append_bytes
    - g_string_append
    - g_steal_pointer
    - fu_firmware_get_images
    - g_byte_array_new
    - FU_CSV_FIRMWARE
    - g_string_new
    - g_byte_array_append
    - g_autoptr
    - g_ptr_array_index
    - GET_PRIVATE
    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_xmlb_builder_insert_kb
    - FU_CSV_FIRMWARE
    - 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:
    - xb_node_query_text
    - fu_strtobool
    - FU_CSV_FIRMWARE
    - 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: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:255,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:255,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:256,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCsvFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 257
    functionName: fu_csv_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    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:262,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:263,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:264,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: fu_csv_firmware_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FU_CSV_FIRMWARE
    - G_OBJECT_CLASS
    - GET_PRIVATE
    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:271,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-csv-firmware.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCsvFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 278
    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:290,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-csv-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_csv_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-firmware.c
    functionUses: 2
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_csv_firmware_new(void)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:32,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:35,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:38,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:48,1
    - Dst: fu_csv_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:56,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:57,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:57,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:58,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:58,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:59,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:59,1
    - Dst: fu_csv_firmware_set_write_column_ids
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:60,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:60,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:62,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:63,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:64,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:65,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:67,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:70,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:71,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:74,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:74,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 7
    argNames:
    - self
    - stream
    - offset
    - entry_name
    - entry_idx
    - flags
    - error
    argTypes:
    - FuSbatlevelSection*
    - GInputStream*
    - gsize
    - gchar*
    - guint64
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 79
    functionName: fu_sbatlevel_section_add_entry
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u8
    - fu_firmware_set_id
    - g_set_error
    - fu_input_stream_size
    - fu_csv_firmware_add_column_id
    - fu_csv_firmware_set_write_column_ids
    - fu_firmware_parse_stream
    - fu_firmware_add_image
    - g_prefix_error_literal
    - fu_firmware_set_idx
    - fu_csv_firmware_new
    - g_prefix_error
    - fu_firmware_set_offset
    - FU_FIRMWARE
    - FU_CSV_FIRMWARE
    - g_autoptr
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sbatlevel_section_add_entry(FuSbatlevelSection *self,\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: FU_SBATLEVEL_SECTION
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:88,1
    - Dst: fu_struct_sbat_level_section_header_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:90,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_previous
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:96,1
    - Dst: fu_sbatlevel_section_add_entry
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:102,1
    - Dst: fu_struct_sbat_level_section_header_get_latest
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 112
    functionName: fu_sbatlevel_section_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c
    functionUses: 0
    functionsReached:
    - fu_struct_sbat_level_section_header_get_previous
    - fu_struct_sbat_level_section_header_get_latest
    - fu_sbatlevel_section_add_entry
    - g_autoptr
    - fu_struct_sbat_level_section_header_parse_stream
    - FU_SBATLEVEL_SECTION
    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:117,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:119,1
    - Dst: fu_struct_sbat_level_section_header_new
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:119,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:121,1
    - Dst: fu_struct_sbat_level_section_header_set_previous
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:124,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:125,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:128,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:131,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:132,1
    - Dst: fu_struct_sbat_level_section_header_set_latest
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:135,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:137,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:138,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:141,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:144,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:145,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 149
    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_struct_sbat_level_section_header_set_latest
    - g_steal_pointer
    - fu_struct_sbat_level_section_header_set_previous
    - fu_firmware_get_image_by_id
    - fu_byte_array_append_uint8
    - g_bytes_get_size
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_sbatlevel_section_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:154,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:154,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:155,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:155,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:156,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSbatlevelSection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: fu_sbatlevel_section_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_set_size_max
    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:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSbatlevelSectionClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 166
    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:171,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.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_sbatlevel_section_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sbatlevel-section.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_sbatlevel_section_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:32,1
    - Dst: fu_cab_firmware_compute_checksum
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:34,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:35,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:36,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 39
    functionName: fu_cab_firmware_checksum_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - g_assert_cmpint
    - fu_cab_firmware_compute_checksum
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_cab_firmware_checksum_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:45,1
    - Dst: fu_cab_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:45,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:46,1
    - Dst: fu_cab_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:47,1
    - Dst: fu_cab_image_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:47,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:50,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:52,1
    - Dst: fu_cab_firmware_set_compressed
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:55,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:56,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:56,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:57,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:57,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:58,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:58,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:58,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:59,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:60,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:63,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:63,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:64,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:65,1
    - Dst: g_bytes_unref_to_array
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:66,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:66,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:67,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:68,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:71,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:72,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:76,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:77,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:77,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:82,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:83,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:83,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 85
    functionName: fu_cab_firmware_compressed_size_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_bytes_new
    - g_assert_nonnull
    - fu_cab_firmware_set_compressed
    - fu_firmware_set_bytes
    - fu_cab_firmware_new
    - fu_firmware_add_image
    - g_assert_cmpint
    - fu_firmware_parse_bytes
    - g_str_has_prefix
    - g_bytes_new_static
    - FU_FIRMWARE
    - g_assert_false
    - fu_cab_image_new
    - g_bytes_unref_to_array
    - fu_firmware_set_id
    - g_steal_pointer
    - g_assert_error
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_cab_firmware_compressed_size_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:90,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:91,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:92,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c
    functionUses: 3
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_test_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:35,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:35,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:37,1
    - Dst: fu_fdt_image_new
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:38,1
    - Dst: fu_fdt_image_set_attr_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:39,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:39,1
    - Dst: fu_fdt_image_set_attr_str
      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_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:42,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:42,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFitFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    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_str
    - fu_fdt_image_new
    - FU_FDT_IMAGE
    - fu_firmware_add_image
    - FU_FIRMWARE
    - fu_firmware_get_image_by_id
    - fu_fdt_image_set_attr_uint32
    linkageType: ''
    returnType: FuFdtImage
    signature: 'FuFdtImage *

      fu_fit_firmware_get_image_root(FuFitFirmware *self)'
  - BBCount: 2
    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:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFitFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: fu_fit_firmware_get_timestamp
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FIT_FIRMWARE
    - fu_fit_firmware_get_image_root
    - g_autoptr
    - fu_fdt_image_get_attr_u32
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_fit_firmware_get_timestamp(FuFitFirmware *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:84,1
    - Dst: fu_fit_firmware_get_image_root
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:84,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:85,1
    - Dst: FU_IS_FIT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:85,1
    - Dst: fu_fdt_image_set_attr_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - timestamp
    argTypes:
    - FuFitFirmware*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: fu_fit_firmware_set_timestamp
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_FIT_FIRMWARE
    - g_return_if_fail
    - fu_fdt_image_set_attr_uint32
    - fu_fit_firmware_get_image_root
    - 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:102,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:102,1
    - Dst: fu_crc32_bytes
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:107,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:109,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:113,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:120,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - self
    - img
    - img_hash
    - blob
    - error
    argTypes:
    - FuFitFirmware*
    - FuFirmware*
    - FuFirmware*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 122
    functionName: fu_fit_firmware_verify_crc32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - g_set_error
    - FU_FDT_IMAGE
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_crc32_bytes
    - fu_fdt_image_get_attr_u32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fit_firmware_verify_crc32(FuFitFirmware *self,\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:132,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:133,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:134,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:135,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:136,1
    - Dst: g_checksum_new
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:136,1
    - Dst: fu_fdt_image_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:139,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:139,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:142,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:143,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:147,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:148,1
    - Dst: g_checksum_update
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:152,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:153,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:154,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:155,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:156,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:157,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:161,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 6
    argNames:
    - self
    - img
    - img_hash
    - checksum_type
    - blob
    - error
    argTypes:
    - FuFitFirmware*
    - FuFirmware*
    - FuFirmware*
    - GChecksumType
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 163
    functionName: fu_fit_firmware_verify_checksum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - g_bytes_new
    - FU_FDT_IMAGE
    - g_set_error
    - g_bytes_get_data
    - g_checksum_update
    - FU_FIRMWARE
    - g_checksum_new
    - g_malloc0
    - g_checksum_type_get_length
    - fu_bytes_compare
    - g_bytes_get_size
    - fu_fdt_image_get_attr
    - fu_firmware_add_flag
    - g_checksum_get_digest
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fit_firmware_verify_checksum(FuFitFirmware *self,\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:175,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:175,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:179,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:179,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:182,1
    - Dst: fu_fit_firmware_verify_crc32
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:183,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:184,1
    - Dst: fu_fit_firmware_verify_checksum
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:185,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:192,1
    - Dst: fu_fit_firmware_verify_checksum
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:193,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:200,1
    - Dst: fu_fit_firmware_verify_checksum
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:201,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - self
    - img
    - img_hash
    - blob
    - error
    argTypes:
    - FuFitFirmware*
    - FuFirmware*
    - FuFirmware*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 211
    functionName: fu_fit_firmware_verify_hash
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_fit_firmware_verify_checksum
    - g_strcmp0
    - fu_fdt_image_get_attr_str
    - FU_FDT_IMAGE
    - g_prefix_error
    - fu_fit_firmware_verify_crc32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fit_firmware_verify_hash(FuFitFirmware *self,\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:220,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:223,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:223,1
    - Dst: fu_fdt_image_get_attr_str
      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
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:229,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:229,1
    - Dst: fu_fdt_image_get_attr_u32
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:235,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:235,1
    - Dst: fu_fdt_image_get_attr_u32
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:240,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:240,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:245,1
    - Dst: fu_dump_bytes
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:249,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:253,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:253,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:255,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:256,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:257,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:263,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:263,1
    - Dst: fu_fit_firmware_verify_hash
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:264,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 5
    argNames:
    - self
    - stream
    - img
    - flags
    - error
    argTypes:
    - FuFitFirmware*
    - GInputStream*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 213
    functionDepth: 4
    functionLinenumber: 213
    functionLinenumberEnd: 272
    functionName: fu_fit_firmware_verify_image
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_input_stream_read_bytes
    - fu_fdt_image_get_attr_str
    - FU_FDT_IMAGE
    - g_set_error_literal
    - fu_firmware_get_images
    - fu_dump_bytes
    - fu_fit_firmware_verify_hash
    - fu_fdt_image_get_attr
    - g_str_has_prefix
    - g_autoptr
    - fu_fdt_image_get_attr_u32
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fit_firmware_verify_image(FuFitFirmware *self,\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:
    - self
    - img
    - flags
    - error
    argTypes:
    - FuFitFirmware*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 274
    functionDepth: 3
    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(FuFitFirmware *self,\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: FU_FIT_FIRMWARE
      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: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:302,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:305,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:309,1
    - Dst: fu_fdt_image_get_attr_u32
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:312,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:312,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:319,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:322,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:324,1
    - Dst: fu_fit_firmware_verify_image
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:325,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:330,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:333,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:335,1
    - Dst: fu_fit_firmware_verify_configuration
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:336,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 291
    functionDepth: 5
    functionLinenumber: 291
    functionLinenumberEnd: 342
    functionName: fu_fit_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIT_FIRMWARE
    - FU_FDT_IMAGE
    - fu_fit_firmware_verify_configuration
    - FU_FIRMWARE_CLASS
    - fu_firmware_get_image_by_id
    - fu_firmware_get_images
    - fu_fit_firmware_verify_image
    - g_autoptr
    - fu_fdt_image_get_attr_u32
    - g_ptr_array_index
    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:347,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFitFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 348
    functionName: fu_fit_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_images_max
    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:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFitFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 355
    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:367,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-fit-firmware.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: fu_fit_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fit-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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:39,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:42,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:45,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:46,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:46,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:46,1
    - Dst: fu_usb_hid_descriptor_set_blob
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - codec
    - json_obj
    - error
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: fu_usb_hid_descriptor_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_USB_HID_DESCRIPTOR
    - g_steal_pointer
    - g_bytes_new_take
    - fwupd_json_object_get_string
    - fu_usb_hid_descriptor_set_blob
    - g_autoptr
    - g_base64_decode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_hid_descriptor_from_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:57,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:62,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:62,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:62,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: fu_usb_hid_descriptor_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_USB_HID_DESCRIPTOR
    - g_bytes_get_data
    - g_bytes_get_size
    - g_base64_encode
    - fwupd_json_object_add_string
    linkageType: ''
    returnType: void
    signature: void fu_usb_hid_descriptor_add_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:79,1
    - Dst: FU_IS_USB_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbHidDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: fu_usb_hid_descriptor_get_iface_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_HID_DESCRIPTOR
    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:94,1
    - Dst: FU_IS_USB_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - iface_number
    argTypes:
    - FuUsbHidDescriptor*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    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:111,1
    - Dst: FU_IS_USB_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbHidDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: fu_usb_hid_descriptor_get_descriptor_length
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_HID_DESCRIPTOR
    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:128,1
    - Dst: FU_IS_USB_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbHidDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: fu_usb_hid_descriptor_get_blob
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_HID_DESCRIPTOR
    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:143,1
    - Dst: FU_IS_USB_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:143,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:145,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - blob
    argTypes:
    - FuUsbHidDescriptor*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 147
    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_unref
    - g_bytes_ref
    - 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:155,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:156,1
    - Dst: fu_usb_hid_descriptor_hdr_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:159,1
    - Dst: fu_usb_hid_descriptor_hdr_get_class_descriptor_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 166
    functionName: fu_usb_hid_descriptor_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - fu_usb_hid_descriptor_hdr_get_class_descriptor_length
    - g_autoptr
    - FU_USB_HID_DESCRIPTOR
    - fu_usb_hid_descriptor_hdr_parse_stream
    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: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    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:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:178,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbHidDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: fu_usb_hid_descriptor_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:184,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:186,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 188
    functionName: fu_usb_hid_descriptor_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - g_bytes_unref
    - FU_USB_HID_DESCRIPTOR
    - G_OBJECT_CLASS
    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:193,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-hid-descriptor.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbHidDescriptorClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 197
    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: 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
    - fu_hid_report_item_get_value
    - fu_firmware_get_idx
    - g_ptr_array_index
    linkageType: ''
    returnType: guint
    signature: guint fu_hid_descriptor_count_table_dupes(GPtrArray *table, FuHidReportItem
      *item)
  - BBCount: 14
    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_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:90,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:94,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:94,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:95,1
    - Dst: fu_hid_report_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:98,1
    - Dst: fu_hid_descriptor_count_table_dupes
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:99,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:101,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:107,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:107,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:110,1
    - Dst: g_object_ref
      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_report_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:112,1
    - Dst: fu_hid_descriptor_count_table_dupes
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:113,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:115,1
    - Dst: fu_hid_item_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:121,1
    - Dst: fu_hid_report_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:121,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:122,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:122,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:123,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:126,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:126,1
    - Dst: fu_hid_report_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:131,1
    - Dst: fu_hid_report_new
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:131,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:135,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:136,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:136,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:137,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:142,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:143,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:143,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:144,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:148,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:148,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:152,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 158
    functionName: fu_hid_descriptor_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - fu_hid_item_kind_to_string
    - fu_hid_report_item_get_kind
    - g_ptr_array_set_size
    - fu_firmware_to_string
    - g_object_ref
    - fu_firmware_get_size
    - fu_hid_report_item_get_value
    - g_ptr_array_index
    - fu_firmware_get_id
    - g_debug
    - fu_firmware_add_image
    - fu_hid_descriptor_count_table_dupes
    - fu_hid_report_new
    - g_ptr_array_new_with_free_func
    - FU_FIRMWARE
    - fu_hid_report_item_new
    - g_set_error
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - g_ptr_array_add
    - fu_size_checked_inc
    - g_autoptr
    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:166,1
    - Dst: fu_hid_report_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:169,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:169,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:171,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:172,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:172,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: fu_hid_report_item_get_value
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:175,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:175,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:176,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:179,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:179,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:181,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:184,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: 188
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 188
    functionName: fu_hid_descriptor_write_report_item
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_byte_array_append_bytes
    - g_hash_table_insert
    - fu_hid_report_item_get_kind
    - g_debug
    - g_hash_table_lookup
    - fu_hid_report_item_get_value
    - GUINT_TO_POINTER
    - g_autoptr
    - FU_HID_REPORT_ITEM
    - fu_firmware_get_idx
    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:196,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:196,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:200,1
    - Dst: fu_hid_descriptor_write_report_item
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - report
    - buf
    - globals
    - error
    argTypes:
    - FuFirmware*
    - GByteArray*
    - GHashTable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 207
    functionName: fu_hid_descriptor_write_report
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - fu_hid_descriptor_write_report_item
    - g_autoptr
    - g_ptr_array_index
    - fu_firmware_get_images
    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:212,1
    - Dst: g_byte_array_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: g_hash_table_new
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:213,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:214,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:214,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:218,1
    - Dst: fu_hid_descriptor_write_report
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:219,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 209
    functionDepth: 4
    functionLinenumber: 209
    functionLinenumberEnd: 225
    functionName: fu_hid_descriptor_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_firmware_get_images
    - g_hash_table_new
    - fu_hid_descriptor_write_report
    - g_byte_array_new
    - g_autoptr
    - g_ptr_array_index
    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:248,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:248,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:249,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:249,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:249,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:251,1
    - Dst: FU_IS_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:251,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:252,1
    - Dst: va_start
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:255,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:257,1
    - Dst: va_arg
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:258,1
    - Dst: va_arg
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:261,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:262,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:262,1
    - Dst: va_end
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:264,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:268,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:271,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:272,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:273,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:273,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:278,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:278,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:284,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:286,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHidDescriptor*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 288
    functionName: fu_hid_descriptor_find_report
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - va_end
    - g_new0
    - FU_FIRMWARE
    - FU_IS_HID_DESCRIPTOR
    - g_ptr_array_add
    - g_steal_pointer
    - fu_firmware_get_image_by_id
    - fu_firmware_get_images
    - FU_HID_REPORT_ITEM
    - va_arg
    - g_object_ref
    - g_set_error_literal
    - fu_hid_report_item_get_value
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - va_start
    - g_ptr_array_index
    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:293,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:293,1
    - Dst: fu_firmware_set_size_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: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:296,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:296,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:298,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:298,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:300,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 301
    functionName: fu_hid_descriptor_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHidDescriptorClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 309
    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:321,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: fu_hid_descriptor_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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_str_has_suffix
    - fu_firmware_set_bytes
    - g_strv_length
    - g_auto
    - g_debug
    - g_set_error_literal
    - g_strsplit
    - fu_device_set_quirk_kv
    - g_str_has_prefix
    - fu_strsplit
    - g_bytes_get_data
    - FU_FIRMWARE
    - FU_DEVICE
    - g_strstr_len
    - g_utf8_validate
    - fu_input_stream_read_bytes
    - g_strcmp0
    - g_set_error
    - fu_strstrip
    - g_autoptr
    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_version_raw
    - FU_USB_DEVICE_DS20
    - fu_firmware_set_id
    - fu_usb_device_ds20_set_version_lowest
    - FU_FIRMWARE
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:37,1
    - Dst: FU_IS_PATH_STORE
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:37,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:38,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:39,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:41,1
    - Dst: fu_path_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - kind
    - error
    argTypes:
    - FuPathStore*
    - FuPathKind
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 49
    functionName: fu_path_store_get_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    - fu_path_kind_to_string
    - FU_IS_PATH_STORE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_path_store_get_path(FuPathStore *self, FuPathKind kind, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:72,1
    - Dst: FU_IS_PATH_STORE
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:72,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:73,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:74,1
    - Dst: fu_path_store_get_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:76,1
    - Dst: va_start
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:80,1
    - Dst: g_build_filename_valist
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:81,1
    - Dst: va_end
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - error
    - kind
    argTypes:
    - FuPathStore*
    - GError**
    - FuPathKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 85
    functionName: fu_path_store_build_filename
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store.c
    functionUses: 8
    functionsReached:
    - g_return_val_if_fail
    - fu_path_store_get_path
    - va_end
    - g_build_filename_valist
    - va_start
    - FU_IS_PATH_STORE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_path_store_build_filename(FuPathStore *self, GError **error, FuPathKind kind,
      ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:100,1
    - Dst: FU_IS_PATH_STORE
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:100,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:101,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:102,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - kind
    - path
    argTypes:
    - FuPathStore*
    - FuPathKind
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: fu_path_store_set_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store.c
    functionUses: 5
    functionsReached:
    - g_strdup
    - g_return_if_fail
    - g_free
    - FU_IS_PATH_STORE
    linkageType: ''
    returnType: void
    signature: void fu_path_store_set_path(FuPathStore *self, FuPathKind kind, const
      gchar *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:119,1
    - Dst: FU_IS_PATH_STORE
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:119,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:120,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:121,1
    - Dst: FU_IS_TEMPORARY_DIRECTORY
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:121,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:122,1
    - Dst: fu_temporary_directory_get_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - kind
    - tmpdir
    argTypes:
    - FuPathStore*
    - FuPathKind
    - FuTemporaryDirectory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 123
    functionName: fu_path_store_set_tmpdir
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store.c
    functionUses: 1
    functionsReached:
    - FU_IS_TEMPORARY_DIRECTORY
    - fu_temporary_directory_get_path
    - fu_path_store_set_path
    - g_return_if_fail
    - FU_IS_PATH_STORE
    linkageType: ''
    returnType: void
    signature: void fu_path_store_set_tmpdir(FuPathStore *self, FuPathKind kind, FuTemporaryDirectory
      *tmpdir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:138,1
    - Dst: FU_IS_PATH_STORE
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:138,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:139,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:140,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:144,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - kind
    - prefix
    argTypes:
    - FuPathStore*
    - FuPathKind
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 147
    functionName: fu_path_store_add_prefix
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - g_free
    - g_build_filename
    - FU_IS_PATH_STORE
    linkageType: ''
    returnType: void
    signature: void fu_path_store_add_prefix(FuPathStore *self, FuPathKind kind, const
      gchar *prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:155,1
    - Dst: g_build_filename_valist
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:156,1
    - Dst: va_end
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:157,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - kind
    - first
    argTypes:
    - FuPathStore*
    - FuPathKind
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: fu_path_store_add_dir
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - fu_path_store_set_path
    - g_build_filename_valist
    linkageType: ''
    returnType: void
    signature: void fu_path_store_add_dir(FuPathStore *self, FuPathKind kind, const
      gchar *first, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:169,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:170,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPathStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 175
    functionName: fu_path_store_ensure_lockdir
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store.c
    functionUses: 0
    functionsReached:
    - g_file_test
    - G_N_ELEMENTS
    - fu_path_store_set_path
    linkageType: ''
    returnType: void
    signature: void fu_path_store_ensure_lockdir(FuPathStore *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:185,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:186,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:187,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPathStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 192
    functionName: fu_path_store_ensure_localtime
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store.c
    functionUses: 0
    functionsReached:
    - g_file_test
    - G_N_ELEMENTS
    - g_debug
    - fu_path_store_set_path
    linkageType: ''
    returnType: void
    signature: void fu_path_store_ensure_localtime(FuPathStore *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _splitpath
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:200,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 202
    functionName: fu_path_store_get_win32_basedir
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store.c
    functionUses: 0
    functionsReached:
    - _splitpath
    - g_build_filename
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_path_store_get_win32_basedir(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_store_get_win32_basedir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:217,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:220,1
    - Dst: FU_IS_PATH_STORE
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:220,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:227,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:228,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:229,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:230,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:231,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:232,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:233,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:234,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:235,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:236,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:237,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:238,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:239,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:242,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:245,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:248,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:249,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:250,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:255,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:256,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:262,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:269,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:276,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:283,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:289,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:295,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:296,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:301,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:302,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:303,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:310,1
    - Dst: fu_path_store_ensure_lockdir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:314,1
    - Dst: fu_path_store_ensure_localtime
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:315,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:319,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:320,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:321,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:322,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:323,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPathStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 329
    functionName: fu_path_store_load_defaults
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store.c
    functionUses: 1
    functionsReached:
    - fu_path_store_set_path
    - fu_path_store_ensure_localtime
    - g_return_if_fail
    - fu_path_store_ensure_lockdir
    - fu_path_store_add_prefix
    - fu_path_store_add_dir
    - fu_path_store_get_win32_basedir
    - FU_IS_PATH_STORE
    linkageType: ''
    returnType: void
    signature: void fu_path_store_load_defaults(FuPathStore *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:360,1
    - Dst: FU_IS_PATH_STORE
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:360,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:367,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:369,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:370,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:376,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:383,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:390,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:397,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:404,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:406,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:407,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:409,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:411,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:412,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:414,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:416,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:417,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:420,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:421,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:423,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:428,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:430,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:440,1
    - Dst: fu_path_store_add_dir
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:442,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:450,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:451,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:452,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:453,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:454,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:455,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:459,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:461,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:462,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:463,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:464,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:465,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:466,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:467,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:468,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:469,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 60
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPathStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 474
    functionName: fu_path_store_load_from_env
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store.c
    functionUses: 0
    functionsReached:
    - g_getenv
    - fu_path_store_set_path
    - g_return_if_fail
    - G_N_ELEMENTS
    - fu_path_store_add_prefix
    - fu_path_store_add_dir
    - FU_IS_PATH_STORE
    linkageType: ''
    returnType: void
    signature: void fu_path_store_load_from_env(FuPathStore *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PATH_STORE
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:479,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:481,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 483
    functionName: fu_path_store_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_PATH_STORE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_path_store_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPathStoreClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 490
    functionName: fu_path_store_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_path_store_class_init(FuPathStoreClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPathStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 495
    functionName: fu_path_store_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_path_store_init(FuPathStore *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-path-store.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: fu_path_store_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store.c
    functionUses: 7
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuPathStore
    signature: 'FuPathStore *

      fu_path_store_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: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 676
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:57,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:58,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:59,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuBluezDeviceUuidItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: fu_bluez_device_uuid_item_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_bluez_device_uuid_item_free(FuBluezDeviceUuidItem *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:66,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:69,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:70,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - uuid
    - error
    argTypes:
    - FuBluezDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 75
    functionName: fu_bluez_device_get_uuid_item
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: FuBluezDeviceUuidItem
    signature: 'FuBluezDeviceUuidItem *

      fu_bluez_device_get_uuid_item(FuBluezDevice *self, const gchar *uuid, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:83,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:85,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:86,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:86,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - proxy
    - changed_properties
    - invalidated_properties
    - self
    argTypes:
    - GDBusProxy*
    - GVariant*
    - GStrv
    - FuBluezDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: fu_bluez_device_signal_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_dbus_proxy_get_object_path
    - g_strcmp0
    - g_signal_emit
    - g_ptr_array_index
    - GET_PRIVATE
    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  FuBluezDevice
      *self)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_dbus_proxy_new_for_bus_sync
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:105,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:114,1
    - Dst: g_dbus_proxy_set_default_timeout
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:117,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:118,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:118,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:120,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - item
    - error
    argTypes:
    - FuBluezDevice*
    - FuBluezDeviceUuidItem*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 131
    functionName: fu_bluez_device_ensure_uuid_item_proxy
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_signal_connect
    - g_set_error
    - g_prefix_error_literal
    - g_dbus_proxy_new_for_bus_sync
    - g_dbus_proxy_set_default_timeout
    - G_CALLBACK
    - G_DBUS_PROXY
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_bluez_device_ensure_uuid_item_proxy(FuBluezDevice *self,\n\t\t\t\t
      \      FuBluezDeviceUuidItem *item,\n\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:136,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:138,1
    - Dst: FU_IS_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:138,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:139,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:140,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:142,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:143,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:144,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - self
    - uuid
    - path
    argTypes:
    - FuBluezDevice*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 146
    functionName: fu_bluez_device_add_uuid_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - FU_IS_BLUEZ_DEVICE
    - g_new0
    - g_return_if_fail
    - g_ptr_array_add
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_bluez_device_add_uuid_path(FuBluezDevice *self, const gchar
      *uuid, const gchar *path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:151,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:157,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:160,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:161,1
    - Dst: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:162,1
    - Dst: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:163,1
    - Dst: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:164,1
    - Dst: g_str_has_prefix
      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: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:169,1
    - Dst: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:170,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:175,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:175,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:176,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:176,1
    - Dst: fu_device_set_pid
      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_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:182,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:182,1
    - Dst: fu_device_build_instance_id_full
      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_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:190,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:190,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:199,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:199,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:201,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:201,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:215,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:216,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:216,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:217,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:217,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:222,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:222,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:223,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:223,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:225,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:225,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:226,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:226,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:230,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - self
    - modalias
    argTypes:
    - FuBluezDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 231
    functionName: fu_bluez_device_set_modalias
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_firmware_strparse_uint16_safe
    - fu_device_set_version_raw
    - fu_device_set_vid
    - fu_device_get_version_format
    - fu_device_build_vendor_id_u16
    - fu_device_add_instance_u16
    - g_return_if_fail
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_strdup_printf
    - strlen
    - fu_device_build_instance_id_full
    - fu_device_set_pid
    - fu_device_set_version_format
    - g_str_has_prefix
    - fu_device_build_vendor_id
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_bluez_device_set_modalias(FuBluezDevice *self, const gchar
      *modalias)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:236,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:237,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:239,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:241,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 244
    functionName: fu_bluez_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append
    - FU_BLUEZ_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    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:256,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:257,1
    - Dst: g_dbus_proxy_new_for_bus_sync
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:259,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:268,1
    - Dst: g_dbus_proxy_set_default_timeout
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:271,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:272,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:274,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:283,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: 284
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 284
    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_new_for_bus_sync
    - g_dbus_proxy_set_default_timeout
    - g_dbus_proxy_get_cached_property
    - 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:298,1
    - Dst: fu_bluez_device_get_ble_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:299,1
    - Dst: g_variant_dup_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:302,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: 303
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 303
    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:313,1
    - Dst: g_dbus_object_get_interface
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:315,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:317,1
    - Dst: fu_bluez_device_get_ble_string_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:324,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:326,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:331,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: 332
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 332
    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_autoptr
    - g_dbus_object_get_interface
    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:347,1
    - Dst: fu_bluez_device_add_uuid_path
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:350,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: 352
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 352
    functionName: fu_bluez_device_add_characteristic_uuid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - fu_bluez_device_add_uuid_path
    - fu_bluez_device_get_interface_uuid
    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:364,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:367,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:367,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:368,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:368,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:374,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: 380
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 380
    functionName: fu_bluez_device_add_instance_by_service_uuid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_str
    - g_prefix_error
    - FU_DEVICE
    - fu_device_build_instance_id_full
    - fu_bluez_device_get_interface_uuid
    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:390,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:391,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:392,1
    - Dst: g_dbus_object_get_interface
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:394,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:396,1
    - Dst: fu_bluez_device_get_ble_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:406,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:408,1
    - Dst: g_variant_get_byte
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:414,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:415,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:415,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: 419
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 419
    functionName: fu_bluez_device_read_battery_interface
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - g_variant_get_byte
    - fu_device_set_battery_level
    - FU_DEVICE
    - g_autoptr
    - fu_bluez_device_get_ble_property
    - g_dbus_object_get_interface
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_bluez_device_read_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:429,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:431,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:431,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:432,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:432,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:439,1
    - Dst: fu_bluez_device_read_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:443,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:447,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:447,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:448,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:448,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:456,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:464,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:464,1
    - Dst: fu_bluez_device_read_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:466,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:468,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:468,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:471,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:471,1
    - Dst: fu_bluez_device_read_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:474,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:478,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:478,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:479,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:480,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:480,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBluezDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 487
    functionName: fu_bluez_device_parse_device_information_service
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - fu_bluez_device_read_string
    - fu_device_set_version
    - fu_device_add_instance_str
    - g_prefix_error
    - fu_device_has_private_flag
    - fu_device_set_serial
    - FU_DEVICE
    - fu_device_build_instance_id_full
    - fu_version_guess_format
    - fu_device_set_version_format
    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:496,1
    - Dst: g_autolist
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:498,1
    - Dst: g_dbus_object_manager_get_objects
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:500,1
    - Dst: G_DBUS_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:502,1
    - Dst: g_dbus_object_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:503,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:506,1
    - Dst: g_dbus_object_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:506,1
    - Dst: g_dbus_proxy_get_object_path
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:507,1
    - Dst: g_dbus_object_get_interface
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:511,1
    - Dst: fu_bluez_device_add_characteristic_uuid
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:512,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:518,1
    - Dst: g_dbus_object_get_interface
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:524,1
    - Dst: fu_bluez_device_add_instance_by_service_uuid
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:525,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:530,1
    - Dst: g_dbus_object_get_interface
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:537,1
    - Dst: fu_bluez_device_read_battery_interface
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:538,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:543,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:551,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBluezDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 493
    functionDepth: 4
    functionLinenumber: 493
    functionLinenumberEnd: 560
    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_get_interface
    - fu_bluez_device_add_instance_by_service_uuid
    - fu_bluez_device_read_battery_interface
    - g_autolist
    - g_set_error_literal
    - g_prefix_error_literal
    - g_dbus_object_get_object_path
    - G_DBUS_OBJECT
    - g_str_has_prefix
    - g_dbus_object_manager_get_objects
    - fu_bluez_device_add_characteristic_uuid
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bluez_device_ensure_gatt_interfaces(FuBluezDevice *self,
      GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:565,1
    - Dst: GET_PRIVATE
      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_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:571,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:572,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:575,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:575,1
    - Dst: fu_bluez_device_parse_device_information_service
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:576,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:580,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:584,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:586,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:592,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:592,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:593,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:595,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:595,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:596,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:598,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:598,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:600,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:600,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:602,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:603,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:603,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:611,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:613,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:613,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:615,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:615,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:617,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:618,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:618,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:625,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:627,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:627,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:628,1
    - Dst: fu_bluez_device_set_modalias
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:630,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:630,1
    - Dst: fu_bluez_device_ensure_gatt_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:633,1
    - Dst: fu_bluez_device_parse_device_information_service
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:637,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 562
    functionDepth: 5
    functionLinenumber: 562
    functionLinenumberEnd: 638
    functionName: fu_bluez_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_bluez_device_parse_device_information_service
    - fu_device_set_physical_id
    - fu_device_add_instance_str
    - g_set_error_literal
    - fu_device_add_icon
    - FU_BLUEZ_DEVICE
    - fu_bluez_device_ensure_gatt_interfaces
    - fwupd_variant_get_string
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_has_flag
    - fu_device_build_instance_id_full
    - fu_bluez_device_set_modalias
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    - GET_PRIVATE
    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:643,1
    - Dst: fu_bluez_device_parse_device_information_service
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 645
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:667,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:667,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:668,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:669,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:670,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:672,1
    - Dst: FU_IS_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:672,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:673,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:674,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:677,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:677,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:678,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:678,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:678,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:680,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:684,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:684,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:685,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:685,1
    - Dst: fu_device_event_check_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:688,1
    - Dst: fu_device_event_get_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:690,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:695,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:695,1
    - Dst: fu_bluez_device_get_uuid_item
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:697,1
    - Dst: fu_bluez_device_ensure_uuid_item_proxy
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:700,1
    - Dst: g_variant_builder_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:711,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:711,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:712,1
    - Dst: g_variant_new_uint16
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:712,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:714,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:716,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:722,1
    - Dst: g_variant_get
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:725,1
    - Dst: g_variant_iter_loop
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:726,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:727,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:730,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:731,1
    - Dst: fu_device_event_set_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:735,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:738,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - self
    - uuid
    - error
    argTypes:
    - FuBluezDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 659
    functionDepth: 3
    functionLinenumber: 659
    functionLinenumberEnd: 739
    functionName: fu_bluez_device_read
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - fu_device_get_context
    - g_strdup_printf
    - g_variant_new
    - g_prefix_error_literal
    - g_byte_array_new
    - fu_device_has_flag
    - fu_device_save_event
    - fu_device_event_get_byte_array
    - fu_device_event_set_byte_array
    - fu_device_event_check_error
    - FU_DEVICE
    - g_variant_builder_new
    - g_byte_array_append
    - fu_bluez_device_get_uuid_item
    - g_dbus_proxy_call_sync
    - fu_dump_raw
    - g_variant_get
    - g_return_val_if_fail
    - FU_IS_BLUEZ_DEVICE
    - g_variant_builder_add
    - g_steal_pointer
    - g_variant_new_uint16
    - g_variant_iter_loop
    - G_VARIANT_TYPE
    - fu_bluez_device_ensure_uuid_item_proxy
    - g_autoptr
    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:756,1
    - Dst: fu_bluez_device_read
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:756,1
    - Dst: g_utf8_validate
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:759,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:760,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - uuid
    - error
    argTypes:
    - FuBluezDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 753
    functionDepth: 4
    functionLinenumber: 753
    functionLinenumberEnd: 768
    functionName: fu_bluez_device_read_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 1
    functionsReached:
    - g_strndup
    - fu_bluez_device_read
    - g_set_error
    - g_autoptr
    - g_utf8_validate
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_bluez_device_read_string(FuBluezDevice *self, const gchar *uuid, GError **error)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:790,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:791,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:792,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:796,1
    - Dst: FU_IS_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:796,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:797,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:798,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:799,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:802,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:802,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:803,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:803,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:803,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:805,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:806,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:813,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:813,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:814,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:814,1
    - Dst: fu_device_event_check_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:817,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:822,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:822,1
    - Dst: fu_bluez_device_get_uuid_item
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:824,1
    - Dst: fu_bluez_device_ensure_uuid_item_proxy
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:827,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:831,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:832,1
    - Dst: g_variant_builder_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:835,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:835,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:837,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:838,1
    - Dst: g_variant_builder_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:841,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:841,1
    - Dst: g_variant_builder_add
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:842,1
    - Dst: g_variant_new_uint16
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:842,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:843,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:845,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:847,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:853,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 4
    argNames:
    - self
    - uuid
    - buf
    - error
    argTypes:
    - FuBluezDevice*
    - gchar*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 783
    functionDepth: 2
    functionLinenumber: 783
    functionLinenumberEnd: 859
    functionName: fu_bluez_device_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - fu_device_get_context
    - g_strdup_printf
    - g_variant_new
    - g_prefix_error_literal
    - fu_device_save_event
    - fu_device_has_flag
    - fu_device_event_check_error
    - FU_DEVICE
    - g_variant_builder_new
    - fu_bluez_device_get_uuid_item
    - fu_dump_raw
    - g_dbus_proxy_call_sync
    - g_return_val_if_fail
    - FU_IS_BLUEZ_DEVICE
    - g_variant_builder_add
    - g_variant_new_uint16
    - G_VARIANT_TYPE
    - fu_bluez_device_ensure_uuid_item_proxy
    - g_autoptr
    - g_base64_encode
    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:878,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:880,1
    - Dst: FU_IS_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:880,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:881,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:882,1
    - Dst: fu_bluez_device_get_uuid_item
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:884,1
    - Dst: fu_bluez_device_ensure_uuid_item_proxy
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:887,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:889,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:897,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - uuid
    - error
    argTypes:
    - FuBluezDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 902
    functionName: fu_bluez_device_notify_start
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_BLUEZ_DEVICE
    - g_prefix_error_literal
    - g_dbus_proxy_call_sync
    - fu_bluez_device_ensure_uuid_item_proxy
    - fu_bluez_device_get_uuid_item
    - g_autoptr
    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:921,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:923,1
    - Dst: FU_IS_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:923,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:924,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:925,1
    - Dst: fu_bluez_device_get_uuid_item
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:927,1
    - Dst: fu_bluez_device_ensure_uuid_item_proxy
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:930,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:932,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:940,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - uuid
    - error
    argTypes:
    - FuBluezDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 945
    functionName: fu_bluez_device_notify_stop
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_BLUEZ_DEVICE
    - g_prefix_error_literal
    - g_dbus_proxy_call_sync
    - fu_bluez_device_ensure_uuid_item_proxy
    - fu_bluez_device_get_uuid_item
    - g_autoptr
    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:958,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:959,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:960,1
    - Dst: fu_bluez_device_get_uuid_item
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:962,1
    - Dst: fu_bluez_device_ensure_uuid_item_proxy
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:965,1
    - Dst: g_variant_builder_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:968,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:968,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:969,1
    - Dst: g_dbus_proxy_call_with_unix_fd_list_sync
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:971,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:973,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:981,1
    - Dst: g_variant_get_child
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:985,1
    - Dst: g_variant_get_child
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:987,1
    - Dst: fu_io_channel_unix_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:989,1
    - Dst: g_unix_fd_list_get
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:989,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:991,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: 997
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 997
    functionName: fu_bluez_device_method_acquire
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - fu_io_channel_unix_new
    - g_set_error_literal
    - g_unix_fd_list_get
    - g_prefix_error
    - g_dbus_proxy_call_with_unix_fd_list_sync
    - g_variant_builder_new
    - g_variant_get_child
    - g_variant_new
    - G_VARIANT_TYPE
    - fu_bluez_device_ensure_uuid_item_proxy
    - fu_bluez_device_get_uuid_item
    - g_autoptr
    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:1016,1
    - Dst: FU_IS_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1016,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1017,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1018,1
    - Dst: fu_bluez_device_method_acquire
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - uuid
    - mtu
    - error
    argTypes:
    - FuBluezDevice*
    - gchar*
    - gint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1013
    functionDepth: 2
    functionLinenumber: 1013
    functionLinenumberEnd: 1020
    functionName: fu_bluez_device_notify_acquire
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_BLUEZ_DEVICE
    - fu_bluez_device_method_acquire
    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:1039,1
    - Dst: FU_IS_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1039,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1040,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1041,1
    - Dst: fu_bluez_device_method_acquire
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1042,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - uuid
    - mtu
    - error
    argTypes:
    - FuBluezDevice*
    - gchar*
    - gint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1036
    functionDepth: 2
    functionLinenumber: 1036
    functionLinenumberEnd: 1043
    functionName: fu_bluez_device_write_acquire
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_BLUEZ_DEVICE
    - fu_bluez_device_method_acquire
    linkageType: ''
    returnType: FuIOChannel
    signature: 'FuIOChannel *

      fu_bluez_device_write_acquire(FuBluezDevice *self, const gchar *uuid, gint32
      *mtu, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1048,1
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1049,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1050,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1051,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1053,1
    - Dst: FU_IS_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1053,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1054,1
    - Dst: FU_IS_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1054,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1057,1
    - Dst: fu_bluez_device_add_uuid_path
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1058,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1061,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1063,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1064
    functionName: fu_bluez_device_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_BLUEZ_DEVICE
    - FU_BLUEZ_DEVICE
    - g_return_if_fail
    - g_object_ref
    - fu_bluez_device_add_uuid_path
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_bluez_device_incorporate(FuDevice *device, FuDevice *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1069,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1070
    functionName: fu_bluez_device_convert_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_bluez_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1075,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1076,1
    - Dst: fu_device_get_icons
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1077,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1080,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1081,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1081,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1082,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1082,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1083,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1083,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1084,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1084,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1085,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1086,1
    - Dst: fu_device_get_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1086,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1088,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1089,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1094,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1094,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1096,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1097,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1097,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1098,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1099,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1100,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - device
    - json_obj
    - flags
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1072
    functionDepth: 3
    functionLinenumber: 1072
    functionLinenumberEnd: 1104
    functionName: fu_bluez_device_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - fu_device_get_backend_id
    - fu_device_get_logical_id
    - fwupd_json_object_add_array
    - fu_device_get_battery_level
    - fwupd_json_object_new
    - fu_device_get_icons
    - FU_BLUEZ_DEVICE
    - fu_device_get_physical_id
    - fwupd_json_array_new
    - fwupd_json_object_add_integer
    - fwupd_json_array_add_object
    - fu_device_get_name
    - g_autoptr
    - fwupd_json_object_add_string
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_bluez_device_add_json(FuDevice *device, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1109,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1112,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1114,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1116,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1117,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1119,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1120,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1122,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1123,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1125,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1126,1
    - Dst: fu_bluez_device_set_modalias
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1128,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1129,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1131,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1132,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1134,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1137,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1139,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1142,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1144,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1147,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1150,1
    - Dst: fu_bluez_device_add_uuid_path
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1153,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - device
    - json_obj
    - error
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1106
    functionDepth: 3
    functionLinenumber: 1106
    functionLinenumberEnd: 1159
    functionName: fu_bluez_device_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_set_physical_id
    - fwupd_json_array_get_size
    - fu_device_add_icon
    - FU_BLUEZ_DEVICE
    - fu_device_set_battery_level
    - fu_device_set_backend_id
    - fu_device_set_name
    - fwupd_json_object_get_array
    - fu_bluez_device_add_uuid_path
    - fu_bluez_device_set_modalias
    - fwupd_json_object_get_string
    - fwupd_json_array_get_object
    - g_autoptr
    - fwupd_json_object_get_integer_with_default
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bluez_device_from_json(FuDevice *device, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1164,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1165,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1168,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1171,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1174,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: 1177
      start: 1161
    functionDepth: 0
    functionLinenumber: 1161
    functionLinenumberEnd: 1177
    functionName: fu_bluez_device_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_set_object
    - FU_BLUEZ_DEVICE
    - GET_PRIVATE
    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:1182,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1183,1
    - Dst: g_value_dup_object
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1186,1
    - Dst: g_value_dup_object
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1189,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1192,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: 1195
      start: 1179
    functionDepth: 0
    functionLinenumber: 1179
    functionLinenumberEnd: 1195
    functionName: fu_bluez_device_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_value_dup_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_BLUEZ_DEVICE
    - GET_PRIVATE
    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:1200,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1201,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1203,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1204,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1206,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1208,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1197
    functionDepth: 0
    functionLinenumber: 1197
    functionLinenumberEnd: 1210
    functionName: fu_bluez_device_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_object_unref
    - FU_BLUEZ_DEVICE
    - G_OBJECT_CLASS
    - g_free
    - GET_PRIVATE
    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:1215,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1217,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1218,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBluezDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1219
    functionName: fu_bluez_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_ptr_array_new_with_free_func
    - FU_DEVICE
    - 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:1224,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1225,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1248,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1249,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1266,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1271,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1280,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-bluez-device.c:1285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBluezDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1286
    functionName: fu_bluez_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_signal_new
    - g_param_spec_object
    - G_OBJECT_CLASS
    - G_TYPE_FROM_CLASS
    - FU_DEVICE_CLASS
    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: 689
    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_strdup
    - g_strcmp0
    - fu_device_add_instance_str
    - g_return_if_fail
    - FU_DEVICE
    - g_free
    - FU_IS_UEFI_DEVICE
    - GET_PRIVATE
    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
    - FU_IS_UEFI_DEVICE
    - GET_PRIVATE
    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_strdup
    - g_strcmp0
    - fu_device_add_instance_str
    - g_return_if_fail
    - FU_DEVICE
    - g_free
    - FU_IS_UEFI_DEVICE
    - GET_PRIVATE
    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
    - FU_IS_UEFI_DEVICE
    - GET_PRIVATE
    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*
    - FuEfiVariableAttrs
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 152
    functionName: fu_uefi_device_set_efivar_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_device_load_event
    - fu_device_event_get_bytes
    - fu_device_get_context
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_save_event
    - fu_device_has_flag
    - fu_efivars_set_data_bytes
    - fu_bytes_compare
    - fu_context_get_efivars
    - fu_device_event_set_bytes
    - g_autoptr
    - FU_IS_UEFI_DEVICE
    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\tFuEfiVariableAttrs
      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*
    - FuEfiVariableAttrs*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 226
    functionName: fu_uefi_device_get_efivar_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_efivars_get_data_bytes
    - fu_device_load_event
    - fu_device_event_set_i64
    - fu_device_event_get_bytes
    - g_steal_pointer
    - fu_device_get_context
    - fu_device_event_get_i64
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_save_event
    - fu_device_has_flag
    - fu_context_get_efivars
    - fu_device_event_set_bytes
    - g_autoptr
    - FU_IS_UEFI_DEVICE
    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\tFuEfiVariableAttrs *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:
    - FU_UEFI_DEVICE
    - fwupd_codec_string_append
    - GET_PRIVATE
    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_get_name
    - fu_uefi_device_get_guid
    - fu_uefi_device_set_guid
    - fu_uefi_device_set_name
    - FU_UEFI_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_uefi_device_incorporate(FuDevice *device, FuDevice *donor)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:249,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:249,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:251,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:254,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:254,1
    - Dst: fu_device_check_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:255,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:255,1
    - Dst: fu_efivars_get_attrs
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:261,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:261,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:268,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:268,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 272
    functionName: fu_uefi_device_check_attrs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_check_fwupd_version
    - fu_device_add_problem
    - fu_device_get_context
    - FU_DEVICE
    - fu_context_get_efivars
    - fu_device_has_flag
    - fu_efivars_get_attrs
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_device_check_attrs(FuUefiDevice *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:277,1
    - Dst: fu_uefi_device_check_attrs
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:280,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 289
    functionName: fu_uefi_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_build_instance_id_full
    - FU_UEFI_DEVICE
    - fu_uefi_device_check_attrs
    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:294,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:295,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:299,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:303,1
    - Dst: fu_uefi_device_get_efivar_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:306,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 311
    functionName: fu_uefi_device_dump_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_DEVICE
    - g_set_error_literal
    - fu_uefi_device_get_efivar_bytes
    - GET_PRIVATE
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_uefi_device_dump_firmware(FuDevice *device, FuProgress *progress, GError
      **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:316,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:317,1
    - Dst: fu_device_get_events
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:318,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:321,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:322,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:323,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:325,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:327,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:329,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:333,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:333,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:335,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:336,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:336,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:337,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:337,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:338,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:340,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - device
    - json_obj
    - flags
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 342
    functionName: fu_uefi_device_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_id
    - fwupd_json_object_add_array
    - FWUPD_CODEC
    - fwupd_json_object_new
    - fwupd_codec_to_json
    - fwupd_json_array_new
    - fu_device_get_events
    - fwupd_json_array_add_object
    - g_ptr_array_index
    - FU_UEFI_DEVICE
    - g_autoptr
    - fwupd_json_object_add_string
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_uefi_device_add_json(FuDevice *device, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:347,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:350,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:352,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:353,1
    - Dst: fu_uefi_device_set_guid
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:360,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:362,1
    - Dst: fu_uefi_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:364,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:365,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:367,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - device
    - json_obj
    - error
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 371
    functionName: fu_uefi_device_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fwupd_guid_is_valid
    - fu_device_set_backend_id
    - fu_uefi_device_set_guid
    - fwupd_json_object_get_string
    - FU_UEFI_DEVICE
    - fu_uefi_device_set_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_device_from_json(FuDevice *device, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:376,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:377,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:379,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:380,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 383
    functionName: fu_uefi_device_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_DEVICE
    - g_free
    - G_OBJECT_CLASS
    - GET_PRIVATE
    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:388,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:388,1
    - Dst: fu_device_get_required_free
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:390,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:390,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:391,1
    - Dst: fu_context_efivars_check_free_space
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:392,1
    - Dst: fu_device_get_required_free
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:394,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:394,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:396,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:396,1
    - Dst: fu_device_uninhibit
      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_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:404,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - pspec
    - user_data
    argTypes:
    - FuUefiDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 406
    functionName: fu_uefi_device_required_free_notify_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_uninhibit
    - fu_context_efivars_check_free_space
    - fu_device_get_required_free
    - fu_device_get_context
    - FU_DEVICE
    - fu_device_inhibit
    - g_autoptr
    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:411,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:411,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:412,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:412,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:413,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:413,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:414,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:414,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 418
    functionName: fu_uefi_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_signal_connect
    - fu_device_add_private_flag
    - FU_DEVICE
    - 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:423,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 432
    functionName: fu_uefi_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_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:438,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:440,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:440,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:441,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:442,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:444,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:445,1
    - Dst: fu_uefi_device_set_guid
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:446,1
    - Dst: fu_uefi_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:447,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-uefi-device.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - guid
    - name
    argTypes:
    - FuContext*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 449
    functionName: fu_uefi_device_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uefi-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - g_steal_pointer
    - g_strdup_printf
    - g_object_new
    - fu_uefi_device_set_guid
    - fu_uefi_device_set_name
    - g_autoptr
    linkageType: ''
    returnType: FuUefiDevice
    signature: 'FuUefiDevice *

      fu_uefi_device_new(FuContext *ctx, const gchar *guid, const gchar *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:17,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:19,1
    - Dst: fu_composite_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:20,1
    - Dst: fu_composite_input_stream_add_bytes
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:22,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:22,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:25,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:26,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:29,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:30,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:31,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:34,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:34,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:35,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:36,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:37,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:37,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:37,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:38,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:38,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:38,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:41,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:42,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:43,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:44,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:45,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:46,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:46,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:46,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:47,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:47,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:47,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:50,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:51,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:52,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:53,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:53,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:53,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:54,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:54,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 55
    functionName: fu_partial_input_stream_composite_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c
    functionUses: 0
    functionsReached:
    - g_seekable_seek
    - fu_composite_input_stream_add_bytes
    - fu_composite_input_stream_new
    - fu_partial_input_stream_new
    - g_seekable_tell
    - FU_COMPOSITE_INPUT_STREAM
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - G_SEEKABLE
    - g_assert_true
    - g_input_stream_read
    - g_autoptr
    - g_bytes_new_static
    linkageType: ''
    returnType: void
    signature: void fu_partial_input_stream_composite_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:63,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:65,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:66,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:67,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:70,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:71,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:72,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:73,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:73,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:74,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:75,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:76,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:76,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:76,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:79,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:80,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:81,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:82,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:83,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:86,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:87,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 89
    functionName: fu_partial_input_stream_simple_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c
    functionUses: 0
    functionsReached:
    - g_seekable_seek
    - g_memory_input_stream_new_from_bytes
    - g_bytes_new_static
    - g_seekable_tell
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - G_SEEKABLE
    - g_assert_true
    - g_input_stream_read
    - g_autoptr
    - g_assert_null
    - 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-partial-input-stream-test.c:97,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:97,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:98,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:100,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:100,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:102,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:103,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:104,1
    - Dst: g_input_stream_close
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:105,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:106,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:107,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:109,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:109,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:110,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:111,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:112,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:113,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 115
    functionName: fu_partial_input_stream_closed_base_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c
    functionUses: 0
    functionsReached:
    - g_seekable_seek
    - g_memory_input_stream_new_from_bytes
    - g_bytes_new_static
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - g_input_stream_close
    - g_assert_cmpint
    - G_SEEKABLE
    - g_assert_true
    - g_input_stream_read
    - g_autoptr
    - 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-partial-input-stream-test.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:126,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:128,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:130,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:132,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:133,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:134,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:137,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:138,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:139,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:140,1
    - Dst: g_file_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:140,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:141,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:142,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:143,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:143,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:144,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:145,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:146,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:146,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:146,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:147,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:147,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:148,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:149,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:150,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:150,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:150,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:151,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:152,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:153,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:154,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:154,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:155,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:156,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:156,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:157,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:158,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:159,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:160,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:161,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:162,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:162,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:162,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:164,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:164,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:165,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:166,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:167,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:167,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:167,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:169,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:170,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:171,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:173,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:173,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:174,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:175,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:176,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:177,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:178,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:179,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:182,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:183,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:184,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:184,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:185,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:186,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:187,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:187,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:187,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:188,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:188,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:189,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:190,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:191,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:191,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:191,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:192,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:193,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:194,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:195,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:195,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:196,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:197,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:197,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:198,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:199,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:200,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:201,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:202,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:203,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:203,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:203,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:205,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:205,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:206,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:207,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:208,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:209,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:209,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:209,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:211,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:211,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:212,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:213,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:214,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:215,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:216,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:217,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:220,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:221,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:222,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:223,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:223,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:224,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:225,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:226,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:226,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:226,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:229,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:230,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:231,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:232,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:233,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:234,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:234,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:234,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:235,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:236,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:237,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:240,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:241,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:242,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:243,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:243,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:246,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:246,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:247,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:248,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:249,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:249,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:249,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:250,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:251,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:252,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:253,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:253,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:253,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:256,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:256,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:257,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:258,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:259,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:259,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:259,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:260,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:261,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:262,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:265,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:265,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:266,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:267,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:268,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:268,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:268,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:269,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:270,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:271,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:272,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:275,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:275,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:276,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:277,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:278,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:279,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:280,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:283,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:283,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:284,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:285,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:286,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:289,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:290,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:291,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:292,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:292,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:293,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:294,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:295,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:296,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:297,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:300,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:301,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 154
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 303
    functionName: fu_partial_input_stream_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c
    functionUses: 0
    functionsReached:
    - g_memory_input_stream_new_from_bytes
    - g_assert_nonnull
    - g_input_stream_read
    - g_assert_cmpint
    - g_file_new_for_path
    - g_assert_null
    - g_bytes_new_static
    - g_seekable_seek
    - g_assert_false
    - G_SEEKABLE
    - G_INPUT_STREAM
    - fu_partial_input_stream_new
    - fu_input_stream_read_bytes
    - g_seekable_tell
    - g_file_read
    - g_assert_error
    - g_assert_no_error
    - g_clear_error
    - g_bytes_get_size
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_partial_input_stream_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:308,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:309,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:310,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:312,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:313,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 316
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c
    functionUses: 3
    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: 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: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CHUNK_ARRAY
    linkageType: ''
    returnType: guint
    signature: guint fu_chunk_array_length(FuChunkArray *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:59,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:73,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 5
    argNames:
    - self
    - offset
    - address
    - page
    - chunksz
    argTypes:
    - FuChunkArray*
    - gsize
    - gsize*
    - gsize*
    - gsize*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 83
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:104,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:106,1
    - Dst: FU_IS_CHUNK_ARRAY
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:106,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:107,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:110,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:115,1
    - Dst: fu_chunk_array_calculate_chunk_for_offset
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:116,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:124,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:126,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:131,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:132,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:134,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:140,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:142,1
    - Dst: fu_chunk_set_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:143,1
    - Dst: fu_chunk_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:145,1
    - Dst: fu_chunk_set_page
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:146,1
    - Dst: fu_chunk_set_address
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:147,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:148,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuChunkArray*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 149
    functionName: fu_chunk_array_index
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_input_stream_read_bytes
    - fu_chunk_array_calculate_chunk_for_offset
    - fu_chunk_set_address
    - g_set_error
    - fu_chunk_set_data_sz
    - g_steal_pointer
    - g_prefix_error
    - g_array_index
    - fu_chunk_set_idx
    - fu_chunk_set_page
    - fu_bytes_new_offset
    - g_autoptr
    - FU_IS_CHUNK_ARRAY
    - fu_chunk_bytes_new
    linkageType: ''
    returnType: FuChunk
    signature: 'FuChunk *

      fu_chunk_array_index(FuChunkArray *self, guint idx, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_chunk_array_calculate_chunk_for_offset
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:157,1
    - Dst: g_array_append_val
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:158,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunkArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 168
    functionName: fu_chunk_array_ensure_offsets
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array.c
    functionUses: 0
    functionsReached:
    - g_array_append_val
    - g_critical
    - 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:187,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:187,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:189,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:190,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:195,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:196,1
    - Dst: fu_chunk_array_ensure_offsets
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:199,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - blob
    - addr_offset
    - page_sz
    - packet_sz
    argTypes:
    - GBytes*
    - gsize
    - gsize
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 201
    functionName: fu_chunk_array_new_from_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_ref
    - g_steal_pointer
    - fu_chunk_array_ensure_offsets
    - g_object_new
    - g_bytes_get_size
    - g_autoptr
    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:220,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:220,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:222,1
    - Dst: fu_chunk_array_ensure_offsets
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:230,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - bufsz
    - addr_offset
    - page_sz
    - packet_sz
    argTypes:
    - gsize
    - gsize
    - gsize
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 232
    functionName: fu_chunk_array_new_virtual
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_steal_pointer
    - fu_chunk_array_ensure_offsets
    - g_object_new
    - g_autoptr
    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:256,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:256,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:258,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:258,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:259,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:260,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:262,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:264,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:264,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:269,1
    - Dst: fu_chunk_array_ensure_offsets
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:272,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:273,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - stream
    - addr_offset
    - page_sz
    - packet_sz
    - error
    argTypes:
    - GInputStream*
    - gsize
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 274
    functionName: fu_chunk_array_new_from_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_seekable_seek
    - fu_input_stream_size
    - g_steal_pointer
    - fu_chunk_array_ensure_offsets
    - g_object_ref
    - g_object_new
    - G_SEEKABLE
    - G_IS_INPUT_STREAM
    - g_autoptr
    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:279,1
    - Dst: g_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:280,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:282,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:284,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 286
    functionName: fu_chunk_array_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_array_unref
    - G_OBJECT_CLASS
    - FU_CHUNK_ARRAY
    - 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:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuChunkArrayClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 293
    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:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunkArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:15,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:15,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:16,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:19,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:24,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:26,1
    - Dst: fu_lzma_compress_bytes
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:29,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:30,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:31,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:32,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:32,1
    - Dst: fu_lzma_decompress_bytes
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:35,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:36,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:37,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:38,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:39,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 41
    functionName: fu_lzma_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-lzma-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - g_bytes_new
    - fu_lzma_decompress_bytes
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - g_byte_array_new
    - fu_lzma_compress_bytes
    - g_bytes_get_size
    - g_byte_array_append
    - fu_bytes_compare
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_lzma_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:46,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:47,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-lzma-test.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-lzma-test.c
    functionUses: 3
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_test_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 10
    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_literal
      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_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:73,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:74,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:80,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:81,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:85,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:85,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 91
    functionName: fu_efi_filesystem_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u8
    - g_debug
    - fu_firmware_add_image
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - g_set_error_literal
    - g_prefix_error_literal
    - g_prefix_error
    - fu_firmware_set_offset
    - fu_firmware_get_size
    - fu_size_checked_inc
    - fu_efi_file_new
    - g_autoptr
    - 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:96,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:96,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:97,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:97,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:100,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:101,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:105,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:112,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:113,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:114,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:117,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:118,1
    - Dst: fu_firmware_get_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:118,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:122,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 134
    functionName: fu_efi_filesystem_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_byte_array_append_bytes
    - fu_byte_array_align_up
    - g_set_error
    - g_steal_pointer
    - fu_firmware_get_alignment
    - fu_firmware_get_images
    - fu_firmware_set_offset
    - g_byte_array_new
    - g_autoptr
    - g_ptr_array_index
    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:142,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:142,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:143,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:143,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:145,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:145,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:146,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:146,1
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:148,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:148,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:149,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:149,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:150,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiFilesystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 151
    functionName: fu_efi_filesystem_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_set_alignment
    - fu_firmware_set_size_max
    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:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiFilesystemClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 159
    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:171,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-filesystem.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_efi_filesystem_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-filesystem.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_efi_filesystem_new(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:28,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:29,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:29,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:33,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:33,1
    - Dst: g_assert_not_reached
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:37,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: 38
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 38
    functionName: fu_quirks_append_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks-test.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_debug
    - g_assert_not_reached
    linkageType: ''
    returnType: void
    signature: "void fu_quirks_append_cb(FuQuirks *quirks,\n\t\t    const gchar *key,\n\t\t
      \   const gchar *value,\n\t\t    FuContextQuirkSource source,\n\t\t    gpointer
      user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:46,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:47,1
    - Dst: fu_quirks_new
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:47,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:48,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:51,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:52,1
    - Dst: fu_quirks_load
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:55,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:56,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:57,1
    - Dst: fu_quirks_lookup_by_id_iter
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:58,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:63,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:64,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 66
    functionName: fu_quirks_append_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_context_set_path
    - fu_quirks_load
    - fu_quirks_new
    - g_assert_no_error
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - fu_quirks_lookup_by_id_iter
    linkageType: ''
    returnType: void
    signature: void fu_quirks_append_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:74,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:74,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:75,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:76,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:77,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:78,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:79,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:80,1
    - Dst: fu_quirks_new
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:80,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:82,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:84,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:85,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:86,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:89,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:90,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:91,1
    - Dst: fu_quirks_load
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:94,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:95,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:96,1
    - Dst: fu_quirks_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:97,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:98,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:99,1
    - Dst: fu_quirks_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:100,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:101,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:102,1
    - Dst: fu_quirks_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:103,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:104,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:105,1
    - Dst: fu_quirks_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:106,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:107,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:108,1
    - Dst: fu_quirks_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:109,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:110,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 112
    functionName: fu_quirks_vendor_ids_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_context_set_path
    - fu_quirks_load
    - fu_context_set_tmpdir
    - fu_quirks_new
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpstr
    - g_test_build_filename
    - fu_quirks_lookup_by_id
    - g_assert_true
    - fu_temporary_directory_new
    - fwupd_guid_hash_string
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_quirks_vendor_ids_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:119,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:119,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:120,1
    - Dst: fu_quirks_new
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:121,1
    - Dst: g_timer_new
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:122,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:126,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:127,1
    - Dst: fu_quirks_load
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:129,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:130,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:131,1
    - Dst: g_timer_reset
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:134,1
    - Dst: fu_quirks_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:138,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:139,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:142,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 143
    functionName: fu_quirks_performance_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - g_assert_true
    - fu_context_set_path
    - fu_quirks_load
    - g_debug
    - fu_quirks_new
    - g_assert_no_error
    - g_timer_reset
    - fu_quirks_lookup_by_id
    - g_timer_elapsed
    - g_timer_new
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_quirks_performance_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:148,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:149,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:150,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:151,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:152,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-quirks-test.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - 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: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 698
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:80,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptch
    argTypes:
    - FuFirmwarePatch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: fu_firmware_patch_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_bytes_unref
    - g_free
    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:96,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:97,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuFirmware*
    - FuFirmwareFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: fu_firmware_add_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 16
    functionsReached:
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_firmware_add_flag(FuFirmware *self, FuFirmwareFlags flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:115,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:116,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuFirmware*
    - FuFirmwareFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: fu_firmware_has_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_firmware_has_flag(FuFirmware *self, FuFirmwareFlags flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:133,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:134,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: fu_firmware_get_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FIRMWARE
    - 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:150,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:151,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:151,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:154,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:157,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - version
    argTypes:
    - FuFirmware*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 159
    functionName: fu_firmware_set_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 3
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - g_free
    - GET_PRIVATE
    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:176,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:177,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: fu_firmware_get_version_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FIRMWARE
    - 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:195,1
    - Dst: FU_FIRMWARE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:196,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:198,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:198,1
    - Dst: FuFirmwareClass*::convert_version
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:204,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 208
    functionName: fu_firmware_set_version_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 5
    functionsReached:
    - fu_firmware_set_version
    - FU_IS_FIRMWARE
    - g_return_if_fail
    - FuFirmwareClass*::convert_version
    - FU_FIRMWARE_GET_CLASS
    - GET_PRIVATE
    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:223,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:224,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: fu_firmware_get_version_format
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FIRMWARE
    - 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:240,1
    - Dst: FU_FIRMWARE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:241,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:243,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:243,1
    - Dst: FuFirmwareClass*::convert_version
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:252,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:253,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - self
    - version_format
    argTypes:
    - FuFirmware*
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 255
    functionName: fu_firmware_set_version_format
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - fu_firmware_set_version
    - FU_IS_FIRMWARE
    - g_return_if_fail
    - FuFirmwareClass*::convert_version
    - FU_FIRMWARE_GET_CLASS
    - GET_PRIVATE
    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:270,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:271,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: fu_firmware_get_filename
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FIRMWARE
    - 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:287,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:288,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:288,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:291,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:294,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - filename
    argTypes:
    - FuFirmware*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 296
    functionName: fu_firmware_set_filename
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - g_free
    - GET_PRIVATE
    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:308,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:309,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:309,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:312,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:315,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FuFirmware*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 317
    functionName: fu_firmware_set_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 24
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - g_free
    - GET_PRIVATE
    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:332,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:333,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: fu_firmware_get_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 23
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FIRMWARE
    - 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:349,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:350,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - addr
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 352
    functionName: fu_firmware_set_addr
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 2
    functionsReached:
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    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:367,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:368,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 370
    functionName: fu_firmware_get_addr
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FIRMWARE
    - 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:384,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:385,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - offset
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 387
    functionName: fu_firmware_set_offset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 9
    functionsReached:
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    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:402,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:403,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 405
    functionName: fu_firmware_get_offset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FIRMWARE
    - 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:420,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:421,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 423
    functionName: fu_firmware_get_parent
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FIRMWARE
    - 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:437,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:438,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:438,1
    - Dst: g_object_remove_weak_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:441,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:441,1
    - Dst: g_object_add_weak_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:443,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - parent
    argTypes:
    - FuFirmware*
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 445
    functionName: fu_firmware_set_parent
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_object_add_weak_pointer
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - g_object_remove_weak_pointer
    - G_OBJECT
    - GET_PRIVATE
    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:460,1
    - Dst: g_return_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: 2
    argNames:
    - self
    - size
    argTypes:
    - FuFirmware*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 463
    functionName: fu_firmware_set_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 7
    functionsReached:
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    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:482,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:483,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:483,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:489,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 491
    functionName: fu_firmware_get_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 10
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FIRMWARE
    - 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:507,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:508,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - size_max
    argTypes:
    - FuFirmware*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 510
    functionName: fu_firmware_set_size_max
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 26
    functionsReached:
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    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:525,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:526,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 528
    functionName: fu_firmware_get_size_max
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FIRMWARE
    - 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:542,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:543,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - idx
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 545
    functionName: fu_firmware_set_idx
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 10
    functionsReached:
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    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:560,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:561,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 563
    functionName: fu_firmware_get_idx
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 14
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FIRMWARE
    - 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:577,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:578,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:578,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:579,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:583,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:584,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - FuFirmware*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 588
    functionName: fu_firmware_set_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 14
    functionsReached:
    - g_bytes_ref
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - g_bytes_unref
    - g_clear_object
    - GET_PRIVATE
    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:607,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:608,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:608,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:610,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:613,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:619,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:621,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 623
    functionName: fu_firmware_get_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 17
    functionsReached:
    - g_return_val_if_fail
    - fu_input_stream_read_bytes
    - g_bytes_ref
    - g_set_error_literal
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    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:639,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:640,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:640,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:642,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:642,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:646,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:647,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:653,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:656,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:658,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:659,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:662,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:663,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:665,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:667,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:673,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 636
    functionDepth: 2
    functionLinenumber: 636
    functionLinenumberEnd: 674
    functionName: fu_firmware_get_bytes_with_patches
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_byte_array_append_bytes
    - g_bytes_new
    - fu_firmware_get_bytes
    - g_bytes_get_data
    - g_set_error_literal
    - FU_IS_FIRMWARE
    - g_prefix_error
    - g_byte_array_new
    - g_bytes_get_size
    - fu_memcpy_safe
    - g_autoptr
    - g_ptr_array_index
    - GET_PRIVATE
    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:691,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:692,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - alignment
    argTypes:
    - FuFirmware*
    - FuFirmwareAlignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 694
    functionName: fu_firmware_set_alignment
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 3
    functionsReached:
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    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:710,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:711,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:711,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:713,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:715,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 718
    functionName: fu_firmware_get_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - g_memory_input_stream_new_from_bytes
    - g_set_error_literal
    - FU_IS_FIRMWARE
    - g_object_ref
    - GET_PRIVATE
    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:735,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:736,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:736,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:737,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:737,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:739,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:744,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 746
    functionName: fu_firmware_set_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_input_stream_size
    - FU_IS_FIRMWARE
    - g_set_object
    - G_IS_INPUT_STREAM
    - GET_PRIVATE
    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:764,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:765,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 767
    functionName: fu_firmware_get_alignment
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FIRMWARE
    - 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:783,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:785,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:785,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:786,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:790,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:794,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:795,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:796,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:797,1
    - Dst: fu_chunk_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:798,1
    - Dst: fu_chunk_set_address
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:799,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:800,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:800,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:801,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 810
    functionName: fu_firmware_get_chunks
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - g_steal_pointer
    - FU_IS_FIRMWARE
    - g_ptr_array_add
    - g_ptr_array_ref
    - fu_chunk_set_address
    - g_ptr_array_new_with_free_func
    - g_autoptr
    - fu_chunk_set_idx
    - fu_chunk_bytes_new
    - GET_PRIVATE
    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:824,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:825,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:825,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:826,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:826,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:828,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:829,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - chk
    argTypes:
    - FuFirmware*
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 830
    functionName: fu_firmware_add_chunk
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - FU_IS_CHUNK
    - g_ptr_array_add
    - g_object_ref
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_firmware_add_chunk(FuFirmware *self, FuChunk *chk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:846,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:847,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:849,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:849,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:850,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:851,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:855,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:856,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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - offset
    argTypes:
    - FuFirmware*
    - guint8*
    - gsize
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 859
    functionName: fu_firmware_add_magic
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_bytes_new
    - g_steal_pointer
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - g_ptr_array_add
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_firmware_add_magic(FuFirmware *self, const guint8 *buf, gsize
      bufsz, gsize offset)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:876,1
    - Dst: FU_FIRMWARE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:877,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:878,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:880,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:880,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:881,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:885,1
    - Dst: FuFirmwareClass*::get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:886,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:888,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:889,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:890,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:890,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:897,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:900,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:905,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:907,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:910,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - csum_kind
    - error
    argTypes:
    - FuFirmware*
    - GChecksumType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 915
    functionName: fu_firmware_get_checksum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_firmware_write
    - fu_input_stream_compute_checksum
    - g_set_error_literal
    - g_steal_pointer
    - FU_IS_FIRMWARE
    - FuFirmwareClass*::get_checksum
    - g_error_matches
    - g_compute_checksum_for_bytes
    - g_propagate_error
    - g_autoptr
    - FU_FIRMWARE_GET_CLASS
    - GET_PRIVATE
    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:939,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:941,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:941,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:942,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:942,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:943,1
    - Dst: FuFirmwareClass*::tokenize
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 949
    functionName: fu_firmware_tokenize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FIRMWARE
    - FuFirmwareClass*::tokenize
    - G_IS_INPUT_STREAM
    - FU_FIRMWARE_GET_CLASS
    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:970,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:972,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:972,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:973,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:973,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:974,1
    - Dst: FuFirmwareClass*::check_compatible
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:979,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - self
    - other
    - flags
    - error
    argTypes:
    - FuFirmware*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 980
    functionName: fu_firmware_check_compatible
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_FIRMWARE_GET_CLASS
    - FU_IS_FIRMWARE
    - 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: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:989,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:990,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:994,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:996,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:998,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:998,1
    - Dst: fu_input_stream_find
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:999,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1000,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1001,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1005,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1011,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1015,1
    - Dst: FuFirmwareClass*::validate
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1016,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1017,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1026,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 5
    argNames:
    - self
    - stream
    - offset
    - offset_found
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 1037
    functionName: fu_firmware_validate_with_magic
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_bytes_get_data
    - g_set_error_literal
    - fu_input_stream_find
    - g_bytes_get_size
    - FuFirmwareClass*::validate
    - g_autoptr
    - FU_FIRMWARE_GET_CLASS
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_firmware_validate_with_magic(FuFirmware *self,\n\t\t\t\tGInputStream
      *stream,\n\t\t\t\tgsize offset,\n\t\t\t\tgsize *offset_found,\n\t\t\t\tGError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1047,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1048,1
    - Dst: fu_firmware_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1056,1
    - Dst: FuFirmwareClass*::validate
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1058,1
    - Dst: fu_firmware_validate_with_magic
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1063,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1066,1
    - Dst: FuFirmwareClass*::validate
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1070,1
    - Dst: FuFirmwareClass*::validate
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1078,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 6
    argNames:
    - self
    - stream
    - offset
    - offset_found
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - gsize*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1039
    functionDepth: 2
    functionLinenumber: 1039
    functionLinenumberEnd: 1079
    functionName: fu_firmware_validate_for_offset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_size
    - fu_firmware_has_flag
    - fu_firmware_validate_with_magic
    - GET_PRIVATE
    - FU_FIRMWARE_GET_CLASS
    - FuFirmwareClass*::validate
    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\tgsize *offset_found,\n\t\t\t\tFuFirmwareParseFlags
      flags,\n\t\t\t\tGError **error)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1102,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1103,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1105,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1106,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1107,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1109,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1109,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1110,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1110,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1111,1
    - Dst: fu_firmware_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1114,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1115,1
    - Dst: G_IS_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1123,1
    - Dst: g_seekable_can_seek
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1123,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1123,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1124,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1127,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1129,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1133,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1136,1
    - Dst: fu_firmware_validate_for_offset
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1146,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1148,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1152,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1164,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1171,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1172,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1173,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1177,1
    - Dst: G_OBJECT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1185,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1187,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1188,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1194,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1198,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1202,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1205,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1207,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1215,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1223,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1226,1
    - Dst: FuFirmwareClass*::tokenize
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1230,1
    - Dst: FuFirmwareClass*::parse_full
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1236,1
    - Dst: FuFirmwareClass*::parse
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1238,1
    - Dst: g_format_size_full
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1243,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1244,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 5
    argNames:
    - self
    - stream
    - offset
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1095
    functionDepth: 3
    functionLinenumber: 1095
    functionLinenumberEnd: 1255
    functionName: fu_firmware_parse_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 13
    functionsReached:
    - G_OBJECT_TYPE
    - g_critical
    - g_memory_input_stream_new_from_bytes
    - G_OBJECT_TYPE_NAME
    - fu_firmware_set_bytes
    - g_object_ref
    - fu_firmware_set_offset
    - FuFirmwareClass*::parse
    - fu_firmware_add_flag
    - FuFirmwareClass*::parse_full
    - g_set_error_literal
    - FU_IS_FIRMWARE
    - g_seekable_can_seek
    - g_prefix_error_literal
    - G_IS_SEEKABLE
    - FuFirmwareClass*::tokenize
    - FU_FIRMWARE_GET_CLASS
    - GET_PRIVATE
    - fu_firmware_validate_for_offset
    - G_SEEKABLE
    - g_format_size_full
    - fu_partial_input_stream_new
    - g_return_val_if_fail
    - fu_input_stream_read_bytes
    - g_set_error
    - fu_input_stream_size
    - g_set_object
    - g_format_size
    - G_IS_INPUT_STREAM
    - fu_firmware_has_flag
    - g_autoptr
    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: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: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1282,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1284,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1285,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: 1286
      start: 1271
    functionDepth: 4
    functionLinenumber: 1271
    functionLinenumberEnd: 1286
    functionName: fu_firmware_parse_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 23
    functionsReached:
    - g_return_val_if_fail
    - g_memory_input_stream_new_from_bytes
    - fu_firmware_parse_stream
    - FU_IS_FIRMWARE
    - g_autoptr
    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: 28
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1341,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1342,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1346,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1347,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1348,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1350,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1350,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1351,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1351,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1352,1
    - Dst: FuFirmwareClass*::build
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1356,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1361,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1363,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1364,1
    - Dst: fwupd_version_format_from_string
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1366,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1368,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1375,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1377,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1379,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1380,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1382,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1383,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1385,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1386,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1388,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1389,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1391,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1392,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1394,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1395,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1397,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1398,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1401,1
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1409,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1411,1
    - Dst: xb_node_get_attr_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1413,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1414,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1417,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1420,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1420,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1421,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1423,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1428,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1430,1
    - Dst: fu_bytes_pad
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1430,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1431,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1434,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1437,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1438,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1441,1
    - Dst: fu_firmware_set_filename
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1443,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1447,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1450,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1451,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1451,1
    - Dst: fu_chunk_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1452,1
    - Dst: fu_chunk_build
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1453,1
    - Dst: fu_firmware_add_chunk
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1455,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1460,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1463,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1464,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1465,1
    - Dst: g_type_from_name
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1467,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1469,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1476,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1478,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1480,1
    - Dst: fu_firmware_build
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1482,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 112
    argCount: 3
    argNames:
    - self
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1338
    functionDepth: 2
    functionLinenumber: 1338
    functionLinenumberEnd: 1489
    functionName: fu_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 3
    functionsReached:
    - g_bytes_new
    - fu_firmware_set_version
    - fu_firmware_set_bytes
    - fu_firmware_set_offset
    - g_object_new
    - xb_node_get_attr_as_uint
    - xb_node_get_attr
    - fu_firmware_set_size_max
    - fu_bytes_pad
    - g_ptr_array_index
    - fu_chunk_set_idx
    - fu_firmware_set_addr
    - fu_firmware_add_image
    - XB_IS_NODE
    - xb_node_query_text_as_uint
    - FU_IS_FIRMWARE
    - FuFirmwareClass*::build
    - xb_node_query_first
    - FU_FIRMWARE_GET_CLASS
    - fu_firmware_set_size
    - GET_PRIVATE
    - fu_firmware_set_version_raw
    - fu_firmware_add_chunk
    - fu_firmware_build
    - fu_firmware_set_idx
    - xb_node_query
    - fu_firmware_new
    - fwupd_version_format_from_string
    - g_base64_decode
    - g_return_val_if_fail
    - fu_firmware_set_version_format
    - xb_node_query_text
    - fu_bytes_get_contents
    - fu_firmware_set_id
    - fu_firmware_set_filename
    - g_set_error
    - fu_chunk_build
    - fu_firmware_set_alignment
    - g_autoptr
    - xb_node_get_text
    - fu_chunk_bytes_new
    - g_type_from_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_firmware_build(FuFirmware *self, XbNode *n, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1543,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1544,1
    - Dst: xb_builder_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1544,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1545,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1545,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1546,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1547,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1549,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1550,1
    - Dst: xb_builder_source_load_xml
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1553,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1554,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1555,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1558,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1559,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1561,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1566,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1568,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1571,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1573,1
    - Dst: g_type_from_name
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1579,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1581,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1588,1
    - Dst: fu_firmware_build
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1589,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1591,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 2
    argNames:
    - xml
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1538
    functionDepth: 3
    functionLinenumber: 1538
    functionLinenumberEnd: 1592
    functionName: fu_firmware_new_from_xml
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - xb_builder_compile
    - xb_builder_source_load_xml
    - xb_builder_source_new
    - g_set_error
    - g_set_error_literal
    - xb_builder_import_source
    - g_type_from_name
    - g_prefix_error_literal
    - fwupd_error_convert
    - fu_firmware_build
    - g_steal_pointer
    - g_object_new
    - xb_node_get_attr
    - xb_silo_query_first
    - g_autoptr
    - xb_builder_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_firmware_new_from_xml(const gchar *xml, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1610,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1611,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1613,1
    - Dst: fu_firmware_new_from_xml
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - filename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1605
    functionDepth: 4
    functionLinenumber: 1605
    functionLinenumberEnd: 1616
    functionName: fu_firmware_new_from_filename
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 14
    functionsReached:
    - g_return_val_if_fail
    - fu_firmware_new_from_xml
    - g_file_get_contents
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_firmware_new_from_filename(const gchar *filename, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1634,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1636,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1636,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1637,1
    - Dst: G_IS_FILE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1637,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1638,1
    - Dst: g_file_read
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1640,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1642,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1645,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - self
    - file
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GFile*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1631
    functionDepth: 4
    functionLinenumber: 1631
    functionLinenumberEnd: 1646
    functionName: fu_firmware_parse_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - fu_firmware_parse_stream
    - g_file_read
    - FU_IS_FIRMWARE
    - fwupd_error_convert
    - G_IS_FILE
    - G_INPUT_STREAM
    - g_autoptr
    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:1662,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1664,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1664,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1665,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1669,1
    - Dst: FuFirmwareClass*::write
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1669,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1672,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1676,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1659
    functionDepth: 3
    functionLinenumber: 1659
    functionLinenumberEnd: 1677
    functionName: fu_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 36
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_new
    - fu_firmware_get_bytes_with_patches
    - FU_IS_FIRMWARE
    - FuFirmwareClass*::write
    - g_autoptr
    - FU_FIRMWARE_GET_CLASS
    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:1695,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1698,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1698,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1699,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1704,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1709,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1711,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1711,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1712,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1713,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1719,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1721,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1722,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - offset
    - blob
    argTypes:
    - FuFirmware*
    - gsize
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1692
    functionDepth: 0
    functionLinenumber: 1692
    functionLinenumberEnd: 1723
    functionName: fu_firmware_add_patch
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 2
    functionsReached:
    - g_bytes_ref
    - g_new0
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - g_ptr_array_add
    - g_bytes_unref
    - g_bytes_get_size
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_firmware_add_patch(FuFirmware *self, gsize offset, GBytes *blob)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1745,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1749,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1749,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1750,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1754,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1760,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1771,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1772,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1777,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1782,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1784,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1787,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - self
    - address
    - chunk_sz_max
    - error
    argTypes:
    - FuFirmware*
    - guint64
    - guint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1742
    functionDepth: 1
    functionLinenumber: 1742
    functionLinenumberEnd: 1788
    functionName: fu_firmware_write_chunk
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    - g_set_error_literal
    - FU_IS_FIRMWARE
    - g_bytes_get_size
    - fu_bytes_new_offset
    - GET_PRIVATE
    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:1805,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1806,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1808,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1808,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1809,1
    - Dst: G_IS_FILE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1809,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1810,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1812,1
    - Dst: g_file_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1815,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1816,1
    - Dst: g_file_make_directory_with_parents
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1817,1
    - Dst: g_file_replace_contents
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1820,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1821,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1822,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - file
    - error
    argTypes:
    - FuFirmware*
    - GFile*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1802
    functionDepth: 4
    functionLinenumber: 1802
    functionLinenumberEnd: 1829
    functionName: fu_firmware_write_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - fu_firmware_write
    - g_file_make_directory_with_parents
    - g_bytes_get_data
    - g_file_replace_contents
    - FU_IS_FIRMWARE
    - g_file_query_exists
    - G_IS_FILE
    - g_bytes_get_size
    - g_autoptr
    - g_file_get_parent
    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:1834,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1835,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - depth
    argTypes:
    - FuFirmware*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1831
    functionDepth: 0
    functionLinenumber: 1831
    functionLinenumberEnd: 1837
    functionName: fu_firmware_set_depth
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    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:1852,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1853,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1849
    functionDepth: 0
    functionLinenumber: 1849
    functionLinenumberEnd: 1855
    functionName: fu_firmware_get_depth
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint
    signature: guint fu_firmware_get_depth(FuFirmware *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1869,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
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1872,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1874,1
    - Dst: g_array_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1876,1
    - Dst: g_array_append_val
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - type
    argTypes:
    - FuFirmware*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1866
    functionDepth: 0
    functionLinenumber: 1866
    functionLinenumberEnd: 1878
    functionName: fu_firmware_add_image_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 19
    functionsReached:
    - g_array_new
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - g_type_ensure
    - g_array_append_val
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_firmware_add_image_gtype(FuFirmware *self, GType type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1893,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1895,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1890
    functionDepth: 0
    functionLinenumber: 1890
    functionLinenumberEnd: 1897
    functionName: fu_firmware_get_image_gtypes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    linkageType: ''
    returnType: GArray
    signature: 'GArray *

      fu_firmware_get_image_gtypes(FuFirmware *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1902,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1905,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1906,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1907,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1912,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1916,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1920,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1921,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - gtype
    - error
    argTypes:
    - FuFirmware*
    - GType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1899
    functionDepth: 0
    functionLinenumber: 1899
    functionLinenumberEnd: 1923
    functionName: fu_firmware_check_image_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_critical
    - g_type_name
    - g_set_error
    - G_OBJECT_TYPE_NAME
    - g_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_firmware_check_image_gtype(FuFirmware *self, GType gtype,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1944,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1946,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1946,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1947,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1947,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1948,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1952,1
    - Dst: fu_firmware_check_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1961,1
    - Dst: G_OBJECT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1961,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1967,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1968,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1968,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1968,1
    - Dst: g_ptr_array_remove_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1969,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1976,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1977,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1977,1
    - Dst: g_ptr_array_remove_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1978,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1986,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1994,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1994,1
    - Dst: fu_firmware_set_parent
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1997,1
    - Dst: fu_firmware_set_depth
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:1998,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - self
    - img
    - error
    argTypes:
    - FuFirmware*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 1941
    functionDepth: 1
    functionLinenumber: 1941
    functionLinenumberEnd: 2002
    functionName: fu_firmware_add_image
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 30
    functionsReached:
    - g_return_val_if_fail
    - G_OBJECT_TYPE
    - g_strcmp0
    - fu_firmware_get_id
    - fu_firmware_set_parent
    - g_set_error
    - g_ptr_array_remove_index
    - FU_IS_FIRMWARE
    - g_ptr_array_add
    - fu_firmware_set_depth
    - g_object_ref
    - GET_PRIVATE
    - fu_firmware_get_idx
    - g_ptr_array_index
    - fu_firmware_check_image_gtype
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_firmware_add_image(FuFirmware *self, FuFirmware *img, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2016,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2017,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - images_max
    argTypes:
    - FuFirmware*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 2013
    functionDepth: 0
    functionLinenumber: 2013
    functionLinenumberEnd: 2019
    functionName: fu_firmware_set_images_max
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 13
    functionsReached:
    - g_return_if_fail
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    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:2034,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2035,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2031
    functionDepth: 0
    functionLinenumber: 2031
    functionLinenumberEnd: 2037
    functionName: fu_firmware_get_images_max
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FIRMWARE
    - 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:2054,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2056,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2056,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2057,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2057,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2058,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2060,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2064,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2068,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - img
    - error
    argTypes:
    - FuFirmware*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2051
    functionDepth: 1
    functionLinenumber: 2051
    functionLinenumberEnd: 2070
    functionName: fu_firmware_remove_image
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_firmware_get_id
    - g_ptr_array_remove
    - g_set_error
    - FU_IS_FIRMWARE
    - GET_PRIVATE
    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:2087,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2088,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2090,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2090,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2091,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2093,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2096,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuFirmware*
    - guint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2098
      start: 2084
    functionDepth: 1
    functionLinenumber: 2084
    functionLinenumberEnd: 2098
    functionName: fu_firmware_remove_image_by_idx
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_ptr_array_remove
    - fu_firmware_get_image_by_idx
    - FU_IS_FIRMWARE
    - g_autoptr
    - GET_PRIVATE
    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:2115,1
    - Dst: g_autoptr
      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: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2121,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FuFirmware*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2112
    functionDepth: 1
    functionLinenumber: 2112
    functionLinenumberEnd: 2126
    functionName: fu_firmware_remove_image_by_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_ptr_array_remove
    - FU_IS_FIRMWARE
    - fu_firmware_get_image_by_id
    - g_autoptr
    - GET_PRIVATE
    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:2141,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2142,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2144,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2144,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2146,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2148,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2149,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2149,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2152
      start: 2138
    functionDepth: 0
    functionLinenumber: 2138
    functionLinenumberEnd: 2152
    functionName: fu_firmware_get_images
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 26
    functionsReached:
    - g_return_val_if_fail
    - g_steal_pointer
    - FU_IS_FIRMWARE
    - g_ptr_array_add
    - g_object_ref
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_firmware_get_images(FuFirmware *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2169,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2171,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2171,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2173,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2173,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2174,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2178,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2187,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2187,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2189,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2191,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2193,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2193,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2194,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2199,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2200,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2201,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2207,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2208,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2208,1
    - Dst: fu_strjoin
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2210,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2211,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FuFirmware*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2166
    functionDepth: 1
    functionLinenumber: 2166
    functionLinenumberEnd: 2218
    functionName: fu_firmware_get_image_by_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 22
    functionsReached:
    - g_return_val_if_fail
    - fu_firmware_get_id
    - g_set_error
    - g_ptr_array_new
    - g_set_error_literal
    - g_pattern_match_simple
    - FU_IS_FIRMWARE
    - g_ptr_array_add
    - fu_strjoin
    - g_strsplit
    - g_object_ref
    - g_auto
    - g_autoptr
    - g_ptr_array_index
    - GET_PRIVATE
    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:2235,1
    - Dst: fu_firmware_get_image_by_id
      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: 5
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FuFirmware*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2239
      start: 2232
    functionDepth: 4
    functionLinenumber: 2232
    functionLinenumberEnd: 2239
    functionName: fu_firmware_get_image_by_id_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 3
    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:2256,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2256,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FuFirmware*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2260
      start: 2253
    functionDepth: 2
    functionLinenumber: 2253
    functionLinenumberEnd: 2260
    functionName: fu_firmware_get_image_by_id_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_firmware_get_image_by_id
    - fu_firmware_get_stream
    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:2277,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2279,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2279,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2280,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2283,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2284,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2285,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuFirmware*
    - guint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2293
      start: 2274
    functionDepth: 1
    functionLinenumber: 2274
    functionLinenumberEnd: 2293
    functionName: fu_firmware_get_image_by_idx
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    - FU_IS_FIRMWARE
    - g_object_ref
    - fu_firmware_get_idx
    - g_ptr_array_index
    - GET_PRIVATE
    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:2311,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2314,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2314,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2315,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2316,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2318,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2320,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2325,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2328,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2329,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2331,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - checksum
    - error
    argTypes:
    - FuFirmware*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2308
    functionDepth: 2
    functionLinenumber: 2308
    functionLinenumberEnd: 2337
    functionName: fu_firmware_get_image_by_checksum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - g_set_error
    - FU_IS_FIRMWARE
    - g_object_ref
    - fu_firmware_get_checksum
    - fwupd_checksum_guess_kind
    - g_ptr_array_index
    - GET_PRIVATE
    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:2354,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2354,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuFirmware*
    - guint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2351
    functionDepth: 4
    functionLinenumber: 2351
    functionLinenumberEnd: 2358
    functionName: fu_firmware_get_image_by_idx_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_autoptr
    - fu_firmware_get_image_by_idx
    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:2375,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2375,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuFirmware*
    - guint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2379
      start: 2372
    functionDepth: 2
    functionLinenumber: 2372
    functionLinenumberEnd: 2379
    functionName: fu_firmware_get_image_by_idx_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_firmware_get_image_by_idx
    - fu_firmware_get_stream
    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:2396,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2396,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - gtype
    - error
    argTypes:
    - FuFirmware*
    - GType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2400
      start: 2393
    functionDepth: 4
    functionLinenumber: 2393
    functionLinenumberEnd: 2400
    functionName: fu_firmware_get_image_by_gtype_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - fu_firmware_write
    - g_autoptr
    - fu_firmware_get_image_by_gtype
    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:2417,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2419,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2419,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2420,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2421,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2424,1
    - Dst: g_type_is_a
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2425,1
    - Dst: G_OBJECT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2425,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2426,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2428,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - gtype
    - error
    argTypes:
    - FuFirmware*
    - GType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2434
      start: 2414
    functionDepth: 0
    functionLinenumber: 2414
    functionLinenumberEnd: 2434
    functionName: fu_firmware_get_image_by_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - G_OBJECT_TYPE
    - g_type_name
    - g_set_error
    - g_type_is_a
    - FU_IS_FIRMWARE
    - g_object_ref
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_firmware_get_image_by_gtype(FuFirmware *self, GType gtype, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2441,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2441,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2442
      start: 2436
    functionDepth: 1
    functionLinenumber: 2436
    functionLinenumberEnd: 2442
    functionName: fu_firmware_sort_by_id_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - g_strcmp0
    linkageType: ''
    returnType: gint
    signature: gint fu_firmware_sort_by_id_cb(gconstpointer a, gconstpointer b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2449,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2456
      start: 2444
    functionDepth: 1
    functionLinenumber: 2444
    functionLinenumberEnd: 2456
    functionName: fu_firmware_sort_by_idx_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_idx
    linkageType: ''
    returnType: gint
    signature: gint fu_firmware_sort_by_idx_cb(gconstpointer a, gconstpointer b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2461,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2462,1
    - Dst: g_ptr_array_copy
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2462,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2464,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2466,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2458
    functionDepth: 0
    functionLinenumber: 2458
    functionLinenumberEnd: 2468
    functionName: fu_firmware_get_images_sorted
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_sort
    - g_steal_pointer
    - g_ptr_array_copy
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_firmware_get_images_sorted(FuFirmware *self)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2487,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2488,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2490,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2493,1
    - Dst: xb_builder_node_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2494,1
    - Dst: fu_firmware_flags_to_string
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2499,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2500,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2502,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2503,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2504,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2505,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2507,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2509,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2511,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2512,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2513,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2514,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2516,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2517,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2519,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2522,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2522,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2529,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2532,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2535,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2539,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2547,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2548,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2551,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2553,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2555,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2555,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2557,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2559,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2571,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2571,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2573,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2574,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2574,1
    - Dst: fu_chunk_export
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2575,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2581,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2581,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2583,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2584,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2585,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2586,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2593,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2593,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2595,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2596,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2596,1
    - Dst: FuFirmwareClass*::export
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2602,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2606,1
    - Dst: fu_firmware_get_images_sorted
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2607,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2608,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2610,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2611,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2611,1
    - Dst: fu_firmware_export
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2612,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 78
    argCount: 3
    argNames:
    - self
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2484
    functionDepth: 1
    functionLinenumber: 2484
    functionLinenumberEnd: 2615
    functionName: fu_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - xb_builder_node_insert_text
    - G_OBJECT_TYPE_NAME
    - xb_builder_node_set_attr
    - fu_bytes_to_string
    - g_strdup_printf
    - g_array_index
    - fwupd_version_format_to_string
    - g_ptr_array_index
    - fu_memstrsafe
    - fu_input_stream_read_byte_array
    - fu_xmlb_builder_insert_kv
    - xb_builder_node_insert
    - FuFirmwareClass*::export
    - fu_chunk_export
    - MIN
    - FU_FIRMWARE_GET_CLASS
    - fu_firmware_flags_to_string
    - GET_PRIVATE
    - g_bytes_get_data
    - g_ptr_array_ref
    - fu_firmware_export
    - g_strcmp0
    - g_type_name
    - fu_xmlb_builder_insert_kx
    - g_bytes_get_size
    - g_autoptr
    - g_base64_encode
    - fu_firmware_get_images_sorted
    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:2632,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2632,1
    - Dst: fu_firmware_export
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2633,1
    - Dst: xb_builder_node_export
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2629
    functionDepth: 2
    functionLinenumber: 2629
    functionLinenumberEnd: 2639
    functionName: fu_firmware_export_to_xml
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 3
    functionsReached:
    - fu_firmware_export
    - g_autoptr
    - xb_builder_node_new
    - xb_builder_node_export
    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:2654,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2654,1
    - Dst: fu_firmware_export
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2655,1
    - Dst: xb_builder_node_export
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2664
      start: 2651
    functionDepth: 2
    functionLinenumber: 2651
    functionLinenumberEnd: 2664
    functionName: fu_firmware_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 17
    functionsReached:
    - fu_firmware_export
    - g_autoptr
    - xb_builder_node_new
    - xb_builder_node_export
    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:2669,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2670,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2673,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2676,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: 2679
      start: 2666
    functionDepth: 0
    functionLinenumber: 2666
    functionLinenumberEnd: 2679
    functionName: fu_firmware_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_value_set_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    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:2684,1
    - Dst: fu_firmware_set_parent
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2687,1
    - Dst: g_value_get_object
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2687,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2690,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: 2693
      start: 2681
    functionDepth: 1
    functionLinenumber: 2681
    functionLinenumberEnd: 2693
    functionName: fu_firmware_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_parent
    - FU_FIRMWARE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_get_object
    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:2698,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2701
      start: 2695
    functionDepth: 0
    functionLinenumber: 2695
    functionLinenumberEnd: 2701
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2706,1
    - Dst: FU_FIRMWARE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2707,1
    - Dst: FuFirmwareClass*::add_magic
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2709,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2710,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2712,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2715,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2716
      start: 2703
    functionDepth: 1
    functionLinenumber: 2703
    functionLinenumberEnd: 2716
    functionName: fu_firmware_constructed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - FuFirmwareClass*::add_magic
    - FU_FIRMWARE
    - G_OBJECT_CLASS
    - G_TYPE_FROM_CLASS
    - fu_firmware_add_flag
    - FU_FIRMWARE_GET_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_firmware_constructed(GObject *obj)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2721,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2722,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2723,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2724,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2725,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2727,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2729,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2731,1
    - Dst: g_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2733,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2735,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2737,1
    - Dst: g_object_remove_weak_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2739,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2739,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2740,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2741,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2742
      start: 2718
    functionDepth: 0
    functionLinenumber: 2718
    functionLinenumberEnd: 2742
    functionName: fu_firmware_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_object_unref
    - FU_FIRMWARE
    - g_array_unref
    - G_OBJECT_CLASS
    - g_object_remove_weak_pointer
    - g_bytes_unref
    - g_free
    - G_OBJECT
    - GET_PRIVATE
    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:2747,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2762,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2768
      start: 2744
    functionDepth: 0
    functionLinenumber: 2744
    functionLinenumberEnd: 2768
    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:2782,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2784
      start: 2779
    functionDepth: 0
    functionLinenumber: 2779
    functionLinenumberEnd: 2784
    functionName: fu_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 8
    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:2799,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fw
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2802
      start: 2796
    functionDepth: 1
    functionLinenumber: 2796
    functionLinenumberEnd: 2802
    functionName: fu_firmware_new_from_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 3
    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:2826,1
    - Dst: g_array_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2826,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2827,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2829,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2829,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2830,1
    - Dst: va_start
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2833,1
    - Dst: va_arg
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2835,1
    - Dst: g_array_append_val
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2838,1
    - Dst: va_end
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2840,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2844,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2853,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2854,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2854,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2855,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2856,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2857,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2859,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2859,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2862,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2866,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2870,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2870,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - stream
    - offset
    - flags
    - error
    argTypes:
    - GInputStream*
    - gsize
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2872
      start: 2818
    functionDepth: 4
    functionLinenumber: 2818
    functionLinenumberEnd: 2872
    functionName: fu_firmware_new_from_gtypes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - g_array_new
    - va_end
    - g_debug
    - fu_firmware_parse_stream
    - g_set_error_literal
    - g_steal_pointer
    - g_prefix_error
    - g_array_index
    - va_arg
    - g_object_new
    - G_IS_INPUT_STREAM
    - g_array_append_val
    - g_propagate_error
    - g_autoptr
    - va_start
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2896,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2897,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2899,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2900,1
    - Dst: fu_firmware_new_from_xml
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2903,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2905,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2908,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2911,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2912,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2923,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2924,1
    - Dst: G_TYPE_FROM_INSTANCE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2924,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2925,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2927,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2929,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2932,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2938,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2942,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2943,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2945,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2948,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2949,1
    - Dst: fu_firmware_export_to_xml
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2956,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2958,1
    - Dst: fu_firmware_new_from_xml
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2961,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2964,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2967,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:2968,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 4
    argNames:
    - builder_xml
    - checksum_expected
    - flags
    - error
    argTypes:
    - gchar*
    - gchar*
    - FuFirmwareBuilderFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2979
      start: 2887
    functionDepth: 5
    functionLinenumber: 2887
    functionLinenumberEnd: 2979
    functionName: fu_firmware_roundtrip_from_xml
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_firmware_new_from_xml
    - g_strcmp0
    - fu_firmware_write
    - g_set_error
    - g_prefix_error
    - G_TYPE_FROM_INSTANCE
    - g_object_new
    - fu_firmware_parse_bytes
    - fu_bytes_compare
    - fu_firmware_get_checksum
    - g_autoptr
    - fu_firmware_export_to_xml
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_firmware_roundtrip_from_xml(const gchar *builder_xml,\n\t\t\t
      \      const gchar *checksum_expected,\n\t\t\t       FuFirmwareBuilderFlags
      flags,\n\t\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3002,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3003,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3005,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3006,1
    - Dst: fu_firmware_roundtrip_from_xml
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3009,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - builder_fn
    - checksum_expected
    - flags
    - error
    argTypes:
    - gchar*
    - gchar*
    - FuFirmwareBuilderFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3010
      start: 2994
    functionDepth: 6
    functionLinenumber: 2994
    functionLinenumberEnd: 3010
    functionName: fu_firmware_roundtrip_from_filename
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_file_get_contents
    - fwupd_error_convert
    - fu_firmware_roundtrip_from_xml
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_firmware_roundtrip_from_filename(const gchar *builder_fn,\n\t\t\t\t
      \   const gchar *checksum_expected,\n\t\t\t\t    FuFirmwareBuilderFlags flags,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3015,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3016,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3018,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3026,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - fuzzer
    - blob
    - error
    argTypes:
    - FuFuzzer*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3032
      start: 3012
    functionDepth: 5
    functionLinenumber: 3012
    functionLinenumberEnd: 3032
    functionName: fu_firmware_fuzzer_test_input
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - FU_FIRMWARE
    - g_autoptr
    - fu_firmware_parse_bytes
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_firmware_fuzzer_test_input(FuFuzzer *fuzzer, GBytes *blob,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3037,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3038,1
    - Dst: xb_builder_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3038,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3039,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3039,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3040,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3041,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3045,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3053,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3054,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3055,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3058,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3059,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3061,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3064,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3066,1
    - Dst: fu_firmware_build
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3069,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-firmware.c:3071,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - fuzzer
    - blob
    - error
    argTypes:
    - FuFuzzer*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3072
      start: 3034
    functionDepth: 4
    functionLinenumber: 3034
    functionLinenumberEnd: 3072
    functionName: fu_firmware_fuzzer_build_example
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached:
    - xb_builder_compile
    - fu_firmware_write
    - xb_builder_source_new
    - xb_builder_source_load_bytes
    - g_set_error_literal
    - FU_FIRMWARE
    - xb_builder_import_source
    - g_prefix_error_literal
    - fwupd_error_convert
    - fu_firmware_build
    - xb_silo_query_first
    - g_autoptr
    - xb_builder_new
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_firmware_fuzzer_build_example(FuFuzzer *fuzzer, GBytes *blob, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuFuzzerInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3079
      start: 3074
    functionDepth: 0
    functionLinenumber: 3074
    functionLinenumberEnd: 3079
    functionName: fu_firmware_fuzzer_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_firmware_fuzzer_iface_init(FuFuzzerInterface *iface)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_FTW_STORE
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:34,1
    - Dst: fu_efi_variable_store_state_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:36,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: fu_efi_ftw_store_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c
    functionUses: 0
    functionsReached:
    - FU_EFI_FTW_STORE
    - fu_xmlb_builder_insert_kv
    - fu_efi_variable_store_state_to_string
    linkageType: ''
    returnType: void
    signature: void fu_efi_ftw_store_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_efi_fault_tolerant_working_block_header64_validate_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: fu_efi_ftw_store_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_fault_tolerant_working_block_header64_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_ftw_store_validate(FuFirmware *firmware, GInputStream
      *stream, gsize offset, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_FTW_STORE
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:55,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:56,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:57,1
    - Dst: fu_struct_efi_fault_tolerant_working_block_header64_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:59,1
    - Dst: fu_struct_efi_fault_tolerant_working_block_header64_get_write_queue_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:64,1
    - Dst: fu_firmware_get_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:65,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:66,1
    - Dst: fu_struct_efi_fault_tolerant_working_block_header64_get_write_queue_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:71,1
    - Dst: fu_firmware_get_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:73,1
    - Dst: fu_struct_efi_fault_tolerant_working_block_header64_get_state
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:78,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:81,1
    - Dst: fu_struct_efi_fault_tolerant_working_block_header64_get_write_queue_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:84,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:89,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:90,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 94
    functionName: fu_efi_ftw_store_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c
    functionUses: 0
    functionsReached:
    - FU_EFI_FTW_STORE
    - fu_struct_efi_fault_tolerant_working_block_header64_get_state
    - fu_input_stream_read_bytes
    - g_set_error
    - fu_firmware_get_size_max
    - fu_firmware_set_bytes
    - g_bytes_get_size
    - fu_struct_efi_fault_tolerant_working_block_header64_get_write_queue_size
    - fu_struct_efi_fault_tolerant_working_block_header64_parse_stream
    - g_autoptr
    - fu_firmware_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_efi_ftw_store_parse(FuFirmware *firmware,\n\t\t       GInputStream
      *stream,\n\t\t       FuFirmwareParseFlags flags,\n\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_FTW_STORE
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:100,1
    - Dst: fu_struct_efi_fault_tolerant_working_block_header64_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:102,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:105,1
    - Dst: fu_struct_efi_fault_tolerant_working_block_header64_set_write_queue_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:110,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:112,1
    - Dst: fu_struct_efi_fault_tolerant_working_block_header64_set_crc
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:113,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:115,1
    - Dst: fu_struct_efi_fault_tolerant_working_block_header64_set_state
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:118,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:119,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 123
    functionName: fu_efi_ftw_store_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c
    functionUses: 0
    functionsReached:
    - FU_EFI_FTW_STORE
    - fu_struct_efi_fault_tolerant_working_block_header64_set_crc
    - fu_crc32
    - fu_byte_array_append_bytes
    - fu_firmware_get_bytes
    - fu_struct_efi_fault_tolerant_working_block_header64_set_state
    - g_steal_pointer
    - g_bytes_get_size
    - fu_struct_efi_fault_tolerant_working_block_header64_set_write_queue_size
    - g_autoptr
    - fu_struct_efi_fault_tolerant_working_block_header64_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_ftw_store_write(FuFirmware *firmware, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_FTW_STORE
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:128,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:132,1
    - Dst: fu_efi_variable_store_state_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 138
    functionName: fu_efi_ftw_store_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c
    functionUses: 0
    functionsReached:
    - FU_EFI_FTW_STORE
    - fu_efi_variable_store_state_from_string
    - xb_node_query_text
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_ftw_store_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:143,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:143,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:145,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:145,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:147,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiFtwStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 149
    functionName: fu_efi_ftw_store_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_efi_ftw_store_init(FuEfiFtwStore *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiFtwStoreClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: fu_efi_ftw_store_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_efi_ftw_store_class_init(FuEfiFtwStoreClass *klass)
  - 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: 1
    functionsReached:
    - g_return_val_if_fail
    - g_ptr_array_ref
    - FU_IS_EFI_VARIABLE_AUTHENTICATION2
    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_firmware_export
    - xb_builder_node_insert
    - FU_EFI_VARIABLE_AUTHENTICATION2
    - g_autoptr
    - g_ptr_array_index
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:101,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:101,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:104,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:105,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:109,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:118,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:124,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:128,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:132,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:133,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:136,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:137,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - buf
    - error
    argTypes:
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 142
    functionName: fu_efi_variable_authentication2_add_content_info_prefix
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint16
    - g_byte_array_prepend
    - g_set_error
    - g_prefix_error_literal
    - g_byte_array_new
    - g_byte_array_append
    - g_autoptr
    - fu_memread_uint16_safe
    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:149,1
    - Dst: fu_pkcs7_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:150,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:151,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:154,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:155,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:155,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:163,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:163,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:165,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:166,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuEfiVariableAuthentication2*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 144
    functionDepth: 5
    functionLinenumber: 144
    functionLinenumberEnd: 171
    functionName: fu_efi_variable_authentication2_parse_pkcs7_certs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - FU_FIRMWARE
    - g_ptr_array_add
    - fu_firmware_get_images
    - g_object_ref
    - fu_firmware_parse_bytes
    - g_autoptr
    - fu_pkcs7_new
    - g_ptr_array_index
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_VARIABLE_AUTHENTICATION2
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:179,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:181,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:182,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:183,1
    - Dst: fu_struct_efi_variable_authentication2_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:186,1
    - Dst: fu_struct_efi_variable_authentication2_get_auth_info
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:191,1
    - Dst: fu_struct_efi_win_certificate_get_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:192,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:193,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:194,1
    - Dst: fu_struct_efi_win_certificate_get_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:197,1
    - Dst: fu_efi_variable_authentication2_add_content_info_prefix
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:202,1
    - Dst: fu_efi_variable_authentication2_parse_pkcs7_certs
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:204,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:208,1
    - Dst: fu_struct_efi_win_certificate_get_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:209,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:212,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:215,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 173
    functionDepth: 6
    functionLinenumber: 173
    functionLinenumberEnd: 217
    functionName: fu_efi_variable_authentication2_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c
    functionUses: 0
    functionsReached:
    - fu_partial_input_stream_new
    - fu_efi_variable_authentication2_add_content_info_prefix
    - fu_struct_efi_variable_authentication2_get_auth_info
    - FU_FIRMWARE_CLASS
    - fu_input_stream_read_byte_array
    - fu_struct_efi_variable_authentication2_parse_stream
    - fu_efi_variable_authentication2_parse_pkcs7_certs
    - fu_size_checked_inc
    - FU_EFI_VARIABLE_AUTHENTICATION2
    - g_autoptr
    - fu_struct_efi_win_certificate_get_length
    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:222,1
    - Dst: fu_struct_efi_variable_authentication2_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:224,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:228,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:231,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 235
    functionName: fu_efi_variable_authentication2_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_variable_authentication2_new
    - fu_byte_array_append_array
    - g_steal_pointer
    - FU_FIRMWARE_CLASS
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_variable_authentication2_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_magic
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - firmware
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 245
    functionName: fu_efi_variable_authentication2_add_magic
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_magic
    linkageType: ''
    returnType: void
    signature: void fu_efi_variable_authentication2_add_magic(FuFirmware *firmware)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:250,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:250,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:251,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:251,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiVariableAuthentication2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 253
    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
    - fu_firmware_add_image_gtype
    - fu_firmware_add_flag
    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:258,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:259,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: fu_efi_variable_authentication2_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c
    functionUses: 0
    functionsReached:
    - FU_EFI_VARIABLE_AUTHENTICATION2
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    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:266,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-variable-authentication2.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiVariableAuthentication2Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 274
    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_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:19,1
    - Dst: fu_struct_self_test_bits_new
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:20,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:23,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:24,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:25,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:26,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:27,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:28,1
    - Dst: fu_struct_self_test_bits_parse
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:30,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:31,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:32,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:34,1
    - Dst: fu_struct_self_test_bits_get_lower
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:34,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:35,1
    - Dst: fu_struct_self_test_bits_get_middle
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:35,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:36,1
    - Dst: fu_struct_self_test_bits_get_upper
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:36,1
    - Dst: fu_struct_self_test_bits_to_string
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:38,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:39,1
    - Dst: fu_struct_self_test_bits_set_lower
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:47,1
    - Dst: fu_struct_self_test_bits_set_middle
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:48,1
    - Dst: fu_struct_self_test_bits_set_upper
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:49,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:50,1
    - Dst: fu_struct_self_test_bits_get_lower
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:50,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:51,1
    - Dst: fu_struct_self_test_bits_get_middle
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:51,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:52,1
    - Dst: fu_struct_self_test_bits_get_upper
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 53
    functionName: fu_plugin_struct_bits_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-struct-test.c
    functionUses: 0
    functionsReached:
    - fu_struct_self_test_bits_get_lower
    - fu_struct_self_test_bits_new
    - fu_struct_self_test_bits_get_upper
    - fu_struct_self_test_bits_set_upper
    - fu_struct_self_test_bits_to_string
    - fu_struct_self_test_bits_set_middle
    - g_assert_nonnull
    - g_assert_no_error
    - fu_dump_raw
    - g_assert_cmpint
    - fu_struct_self_test_bits_get_middle
    - fu_struct_self_test_bits_parse
    - fu_struct_self_test_bits_set_lower
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_plugin_struct_bits_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:59,1
    - Dst: fu_struct_self_test_list_new
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:59,1
    - Dst: fu_struct_self_test_list_set_basic
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:62,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:63,1
    - Dst: fu_struct_self_test_list_get_basic
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:68,1
    - Dst: fu_struct_self_test_list_member_new
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:70,1
    - Dst: fu_struct_self_test_list_member_set_data1
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:72,1
    - Dst: fu_struct_self_test_list_member_set_data2
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:73,1
    - Dst: fu_struct_self_test_list_set_members
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:74,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:75,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:76,1
    - Dst: fu_struct_self_test_list_get_members
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:78,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:79,1
    - Dst: fu_struct_self_test_list_member_get_data1
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:79,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:80,1
    - Dst: fu_struct_self_test_list_member_get_data2
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:80,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:84,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 89
    functionName: fu_plugin_struct_list_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-struct-test.c
    functionUses: 0
    functionsReached:
    - fu_struct_self_test_list_get_members
    - fu_struct_self_test_list_member_set_data2
    - fu_struct_self_test_list_new
    - fu_struct_self_test_list_member_get_data2
    - fu_struct_self_test_list_member_get_data1
    - fu_struct_self_test_list_get_basic
    - g_assert_no_error
    - g_assert_cmpint
    - fu_struct_self_test_list_member_new
    - fu_byte_array_to_string
    - fu_struct_self_test_list_set_members
    - fu_struct_self_test_list_set_basic
    - g_assert_true
    - fu_struct_self_test_list_member_set_data1
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_plugin_struct_list_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:95,1
    - Dst: fu_struct_self_test_new
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:96,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:97,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:98,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:104,1
    - Dst: fu_struct_self_test_set_revision
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:107,1
    - Dst: fu_struct_self_test_set_length
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:108,1
    - Dst: fu_struct_self_test_set_oem_table_id
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:109,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:110,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:111,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:112,1
    - Dst: fu_struct_self_test_get_revision
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:112,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:113,1
    - Dst: fu_struct_self_test_get_length
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:113,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:116,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:117,1
    - Dst: fu_struct_self_test_parse
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:123,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:124,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:125,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:126,1
    - Dst: fu_struct_self_test_get_revision
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:126,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:127,1
    - Dst: fu_struct_self_test_get_length
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:127,1
    - Dst: fu_struct_self_test_get_oem_table_id
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:128,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:129,1
    - Dst: fu_struct_self_test_to_string
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:132,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:133,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:145,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:146,1
    - Dst: fu_struct_self_test_parse
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:150,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:151,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:152,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:153,1
    - Dst: fu_struct_self_test_validate
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:154,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:155,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 157
    functionName: fu_plugin_struct_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-struct-test.c
    functionUses: 0
    functionsReached:
    - fu_struct_self_test_get_oem_table_id
    - g_assert_nonnull
    - fu_struct_self_test_set_revision
    - fu_struct_self_test_set_length
    - fu_test_compare_lines
    - g_assert_cmpint
    - fu_byte_array_to_string
    - fu_struct_self_test_validate
    - fu_struct_self_test_get_revision
    - g_assert_null
    - fu_struct_self_test_get_length
    - fu_struct_self_test_set_oem_table_id
    - g_assert_false
    - fu_struct_self_test_to_string
    - g_assert_error
    - g_assert_no_error
    - fu_struct_self_test_parse
    - g_clear_error
    - fu_struct_self_test_new
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_plugin_struct_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:166,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:167,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:168,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:169,1
    - Dst: fu_struct_self_test_new
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:169,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:170,1
    - Dst: fu_struct_self_test_wrapped_new
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:170,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:171,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:174,1
    - Dst: fu_struct_self_test_wrapped_set_less
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:177,1
    - Dst: fu_struct_self_test_wrapped_set_more
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:178,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:179,1
    - Dst: fu_struct_self_test_wrapped_get_more
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:179,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:180,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:181,1
    - Dst: fu_struct_self_test_set_revision
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:187,1
    - Dst: fu_struct_self_test_wrapped_set_base
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:188,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:189,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:190,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:191,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:192,1
    - Dst: fu_struct_self_test_wrapped_parse
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:198,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:199,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:200,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:201,1
    - Dst: fu_struct_self_test_wrapped_get_more
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:201,1
    - Dst: fu_struct_self_test_wrapped_get_base
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:202,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:203,1
    - Dst: fu_struct_self_test_get_revision
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:203,1
    - Dst: fu_struct_self_test_wrapped_to_string
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:206,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:207,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:208,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:222,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:223,1
    - Dst: fu_struct_self_test_wrapped_parse
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:227,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:228,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:229,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:230,1
    - Dst: fu_struct_self_test_wrapped_validate
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:231,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:232,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 234
    functionName: fu_plugin_struct_wrapped_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-struct-test.c
    functionUses: 0
    functionsReached:
    - fu_struct_self_test_wrapped_set_less
    - fu_struct_self_test_wrapped_get_more
    - g_assert_nonnull
    - fu_struct_self_test_wrapped_new
    - fu_struct_self_test_set_revision
    - g_debug
    - fu_test_compare_lines
    - fu_struct_self_test_wrapped_to_string
    - g_assert_cmpint
    - fu_byte_array_to_string
    - fu_struct_self_test_wrapped_set_more
    - fu_struct_self_test_get_revision
    - g_assert_null
    - g_assert_false
    - fu_struct_self_test_wrapped_get_base
    - fu_struct_self_test_wrapped_set_base
    - g_assert_error
    - g_assert_no_error
    - g_clear_error
    - fu_struct_self_test_new
    - fu_struct_self_test_wrapped_parse
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - fu_struct_self_test_wrapped_validate
    linkageType: ''
    returnType: void
    signature: void fu_plugin_struct_wrapped_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:239,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:240,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:241,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:242,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:243,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-struct-test.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 245
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-struct-test.c
    functionUses: 3
    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: []
    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: 760
    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
    - g_return_if_fail
    - GET_PRIVATE
    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_free
    - g_string_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:
    - fu_firmware_strparse_uint16_safe
    - fu_strsafe
    - g_new0
    - fu_firmware_strparse_uint8_safe
    - g_set_error
    - g_set_error_literal
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - strlen
    - g_string_new
    - g_autoptr
    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:
    - fu_ihex_firmware_record_new
    - g_set_error_literal
    - g_steal_pointer
    - g_ptr_array_add
    - g_prefix_error
    - strlen
    - g_strdelimit
    - g_str_has_prefix
    - g_autoptr
    - GET_PRIVATE
    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_strsplit_stream
    - FU_IHEX_FIRMWARE
    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: 31
    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: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:249,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:250,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:253,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:254,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:258,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:269,1
    - Dst: fu_ihex_firmware_record_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:269,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:270,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:271,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:275,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:289,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:296,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:309,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:322,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:331,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:336,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:340,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:350,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:354,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:372,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:375,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:382,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:385,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:394,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:398,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:405,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:409,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:417,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:418,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:419,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:420,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:421,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:422,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:431,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:443,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:451,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:453,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:454,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 117
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 456
    functionName: fu_ihex_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - fu_firmware_set_bytes
    - g_ptr_array_index
    - fu_firmware_set_addr
    - fu_memread_uint32_safe
    - g_debug
    - fu_ihex_firmware_record_type_to_string
    - fu_firmware_add_image
    - g_set_error_literal
    - g_byte_array_new
    - fu_firmware_new_from_bytes
    - GET_PRIVATE
    - fu_byte_array_append_uint8
    - g_byte_array_append
    - fu_memread_uint16_safe
    - fu_firmware_set_id
    - FU_IHEX_FIRMWARE
    - g_set_error
    - g_prefix_error
    - fu_size_checked_inc
    - g_autoptr
    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:466,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:468,1
    - Dst: fu_sum8
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:473,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - str
    - address
    - record_type
    - data
    - sz
    argTypes:
    - GString*
    - guint16
    - guint8
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 475
    functionName: fu_ihex_firmware_emit_chunk
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 0
    functionsReached:
    - g_string_append_printf
    - fu_sum8
    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:490,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:494,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:499,1
    - Dst: fu_ihex_firmware_emit_chunk
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:500,1
    - Dst: fu_ihex_firmware_emit_chunk
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:508,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: 511
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 511
    functionName: fu_ihex_firmware_image_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - g_bytes_get_data
    - MIN
    - 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:516,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:516,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:517,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:518,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:519,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:519,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:522,1
    - Dst: fu_ihex_firmware_image_to_string
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:525,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:526,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:533,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:535,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:535,1
    - Dst: fu_ihex_firmware_image_to_string
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:538,1
    - Dst: fu_ihex_firmware_emit_chunk
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:547,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:548,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:549,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 513
    functionDepth: 3
    functionLinenumber: 513
    functionLinenumberEnd: 550
    functionName: fu_ihex_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_bytes_with_patches
    - fu_firmware_get_bytes
    - g_steal_pointer
    - fu_firmware_get_image_by_id
    - fu_firmware_get_addr
    - fu_ihex_firmware_emit_chunk
    - g_byte_array_new
    - fu_ihex_firmware_image_to_string
    - g_string_new
    - g_byte_array_append
    - g_autoptr
    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:555,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:556,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:557,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 559
    functionName: fu_ihex_firmware_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - GET_PRIVATE
    - G_OBJECT_CLASS
    - FU_IHEX_FIRMWARE
    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:564,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:566,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:567,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:567,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:568,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:568,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:569,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:569,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:570,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIhexFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 571
    functionName: fu_ihex_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    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:576,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIhexFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 582
    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:594,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: fu_ihex_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ihex-firmware.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_ihex_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:16,1
    - Dst: g_object_get_data
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:16,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:16,1
    - Dst: g_object_set_data
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:17,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: fu_device_locker_open_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-locker-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - g_object_get_data
    - g_object_set_data
    - G_OBJECT
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_locker_open_cb(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:24,1
    - Dst: g_object_get_data
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:24,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:24,1
    - Dst: g_object_set_data
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:25,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: fu_device_locker_close_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-locker-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - g_object_get_data
    - g_object_set_data
    - G_OBJECT
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_locker_close_cb(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:34,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:34,1
    - Dst: g_object_set_data
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:36,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:36,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:37,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:41,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:42,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:43,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:44,1
    - Dst: g_object_get_data
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:44,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 45
    functionName: fu_device_locker_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-locker-test.c
    functionUses: 0
    functionsReached:
    - g_object_set_data
    - G_OBJECT
    - g_object_get_data
    - g_assert_nonnull
    - g_assert_no_error
    - g_clear_object
    - g_assert_cmpstr
    - g_autoptr
    - fu_device_new
    - 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-device-locker-test.c:50,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: fu_device_locker_fail_open_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-locker-test.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_device_set_metadata_boolean
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_locker_fail_open_cb(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_metadata_boolean
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:58,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: fu_device_locker_fail_close_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-locker-test.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_device_set_metadata_boolean
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_locker_fail_close_cb(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:66,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:67,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:68,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:68,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:69,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:73,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:74,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:75,1
    - Dst: fu_device_get_metadata_boolean
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:75,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:76,1
    - Dst: fu_device_get_metadata_boolean
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:76,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:77,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: fu_device_locker_fail_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-locker-test.c
    functionUses: 0
    functionsReached:
    - fu_device_get_metadata_boolean
    - fu_device_new
    - g_assert_error
    - fu_device_has_private_flag
    - g_assert_false
    - g_assert_true
    - g_autoptr
    - g_assert_null
    - fu_device_locker_new_full
    linkageType: ''
    returnType: void
    signature: void fu_device_locker_fail_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:83,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:84,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:85,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-device-locker-test.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-locker-test.c
    functionUses: 3
    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: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:20,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:23,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:23,1
    - Dst: fu_input_stream_find
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:24,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:26,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:30,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:31,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:32,1
    - Dst: fu_input_stream_find
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:35,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:37,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:41,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:42,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:43,1
    - Dst: fu_input_stream_find
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:45,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:47,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:51,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 53
    functionName: fu_input_stream_find_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream-test.c
    functionUses: 0
    functionsReached:
    - g_memory_input_stream_new_from_data
    - fu_input_stream_find
    - g_assert_error
    - g_assert_no_error
    - g_assert_cmpint
    - g_assert_false
    - strlen
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_input_stream_find_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:61,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:62,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:63,1
    - Dst: fu_input_stream_compute_sum32
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:65,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:66,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 68
    functionName: fu_input_stream_sum_overflow_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream-test.c
    functionUses: 0
    functionsReached:
    - g_memory_input_stream_new_from_data
    - fu_input_stream_compute_sum32
    - g_assert_error
    - g_assert_false
    - 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-input-stream-test.c:77,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:77,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:78,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:79,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:80,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:85,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:86,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:87,1
    - Dst: fu_input_stream_compute_sum8
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:89,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:90,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:91,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:92,1
    - Dst: fu_sum8_bytes
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:92,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:94,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:95,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:96,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:97,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:98,1
    - Dst: fu_input_stream_compute_crc16
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:100,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:101,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:102,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:103,1
    - Dst: fu_crc16
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:103,1
    - Dst: fu_input_stream_compute_crc32
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:105,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:106,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:107,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:108,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:108,1
    - Dst: fu_input_stream_compute_crc32
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:112,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:113,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:114,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:115,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 116
    functionName: fu_input_stream_chunkify_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream-test.c
    functionUses: 0
    functionsReached:
    - fu_crc32
    - g_memory_input_stream_new_from_bytes
    - g_bytes_new
    - fu_input_stream_compute_sum8
    - fu_input_stream_compute_checksum
    - fu_crc16
    - g_assert_nonnull
    - g_assert_no_error
    - fu_byte_array_append_uint8
    - g_assert_cmpint
    - g_byte_array_new
    - fu_sum8_bytes
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - g_compute_checksum_for_bytes
    - fu_input_stream_compute_crc16
    - fu_input_stream_compute_crc32
    linkageType: ''
    returnType: void
    signature: void fu_input_stream_chunkify_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:131,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:133,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:134,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:135,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:136,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:137,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:138,1
    - Dst: g_compute_checksum_for_data
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:139,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:141,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:142,1
    - Dst: g_file_read
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:142,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:143,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:144,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:147,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:148,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:149,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:150,1
    - Dst: fu_input_stream_compute_checksum
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:153,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:154,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:155,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:156,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:159,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:160,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:161,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:162,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:163,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:164,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:167,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:174,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:175,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:176,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:177,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:178,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:181,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:188,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:189,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 191
    functionName: fu_input_stream_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream-test.c
    functionUses: 0
    functionsReached:
    - g_file_get_contents
    - g_assert_nonnull
    - g_assert_cmpint
    - g_file_new_for_path
    - fu_input_stream_read_safe
    - g_compute_checksum_for_data
    - g_malloc0
    - g_assert_false
    - G_INPUT_STREAM
    - fu_dump_raw
    - fu_input_stream_compute_checksum
    - fu_input_stream_size
    - g_file_read
    - g_assert_error
    - g_assert_no_error
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_input_stream_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:196,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:197,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:198,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:199,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:200,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:201,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-input-stream-test.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 203
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:42,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:44,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:45,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:46,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:47,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: fu_bios_settings_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_object_unref
    - G_OBJECT_CLASS
    - g_hash_table_unref
    - FU_BIOS_SETTINGS
    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:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBiosSettingsClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    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:66,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:66,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:67,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:69,1
    - Dst: fwupd_bios_setting_get_path
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:69,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:70,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:71,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:72,1
    - Dst: g_strchomp
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:75,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: 77
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 77
    functionName: fu_bios_setting_get_key
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_BIOS_SETTING
    - fwupd_bios_setting_get_path
    - g_file_get_contents
    - g_prefix_error
    - fwupd_error_convert
    - g_strchomp
    - g_build_filename
    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:85,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:85,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:88,1
    - Dst: fwupd_bios_setting_get_id
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:88,1
    - Dst: fwupd_bios_setting_set_description
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:90,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:93,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:93,1
    - Dst: fwupd_bios_setting_set_description
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:95,1
    - Dst: fu_bios_setting_get_key
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:98,1
    - Dst: fwupd_bios_setting_set_description
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuBiosSettings*
    - FwupdBiosSetting*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 103
    functionName: fu_bios_settings_set_description
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_BIOS_SETTING
    - fwupd_bios_setting_get_id
    - fwupd_bios_setting_get_name
    - fu_bios_setting_get_key
    - g_hash_table_lookup
    - fwupd_bios_setting_set_description
    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:113,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:115,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - attr
    - key
    - error
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 120
    functionName: fu_bios_setting_get_key_as_integer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_prefix_error
    - fu_bios_setting_get_key
    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:128,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:131,1
    - Dst: g_strrstr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:132,1
    - Dst: fu_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:134,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:134,1
    - Dst: fwupd_bios_setting_set_kind
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:136,1
    - Dst: fwupd_bios_setting_add_possible_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:138,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - attr
    - error
    argTypes:
    - FwupdBiosSetting*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 141
    functionName: fu_bios_setting_set_enumeration_attrs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - fu_strsplit
    - fu_bios_setting_get_key
    - g_strrstr
    - strlen
    - fwupd_bios_setting_set_kind
    - fwupd_bios_setting_add_possible_value
    - g_auto
    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:148,1
    - Dst: fwupd_bios_setting_set_lower_bound
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:151,1
    - Dst: fu_bios_setting_get_key_as_integer
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:152,1
    - Dst: fwupd_bios_setting_set_upper_bound
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:155,1
    - Dst: fwupd_bios_setting_set_kind
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - attr
    - error
    argTypes:
    - FwupdBiosSetting*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 158
    functionName: fu_bios_setting_set_string_attrs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - fwupd_bios_setting_set_lower_bound
    - fwupd_bios_setting_set_upper_bound
    - fu_bios_setting_get_key_as_integer
    - 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:165,1
    - Dst: fwupd_bios_setting_set_lower_bound
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:168,1
    - Dst: fu_bios_setting_get_key_as_integer
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:169,1
    - Dst: fwupd_bios_setting_set_upper_bound
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:172,1
    - Dst: fu_bios_setting_get_key_as_integer
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:173,1
    - Dst: fwupd_bios_setting_set_scalar_increment
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:176,1
    - Dst: fwupd_bios_setting_set_kind
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - attr
    - error
    argTypes:
    - FwupdBiosSetting*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 179
    functionName: fu_bios_setting_set_integer_attrs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - fu_bios_setting_get_key_as_integer
    - fwupd_bios_setting_set_scalar_increment
    - fwupd_bios_setting_set_upper_bound
    - fwupd_bios_setting_set_lower_bound
    - fwupd_bios_setting_set_kind
    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:186,1
    - Dst: fwupd_bios_setting_set_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - attr
    - error
    argTypes:
    - FwupdBiosSetting*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 190
    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:196,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:198,1
    - Dst: fwupd_bios_setting_get_id
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:198,1
    - Dst: g_strcmp0
      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:200,1
    - Dst: g_strrstr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:202,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:202,1
    - Dst: fwupd_bios_setting_set_read_only
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - FuBiosSettings*
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 205
    functionName: fu_bios_settings_set_read_only
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fwupd_bios_setting_get_id
    - g_strrstr
    - g_hash_table_lookup
    - fwupd_bios_setting_get_current_value
    - fwupd_bios_setting_set_read_only
    - fwupd_bios_setting_get_kind
    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:212,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:213,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:215,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:215,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:216,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:216,1
    - Dst: fu_bios_setting_get_key
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:218,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:219,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:220,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:220,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:224,1
    - Dst: fu_bios_setting_set_enumeration_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_integer_attrs
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:228,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:229,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:230,1
    - Dst: fu_bios_setting_set_string_attrs
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:231,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:232,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuBiosSettings*
    - FwupdBiosSetting*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 207
    functionDepth: 4
    functionLinenumber: 207
    functionLinenumberEnd: 235
    functionName: fu_bios_settings_set_type
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FWUPD_IS_BIOS_SETTING
    - fu_bios_setting_get_key
    - g_debug
    - fu_bios_setting_set_enumeration_attrs
    - FU_IS_BIOS_SETTINGS
    - g_steal_pointer
    - fu_bios_setting_set_integer_attrs
    - fu_bios_setting_set_string_attrs
    - g_propagate_error
    - g_autoptr
    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:245,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:245,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:246,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:250,1
    - Dst: fu_bios_settings_set_description
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:253,1
    - Dst: fu_bios_setting_get_key
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:255,1
    - Dst: fwupd_bios_setting_set_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:257,1
    - Dst: fwupd_bios_setting_set_read_only
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuBiosSettings*
    - FwupdBiosSetting*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 261
    functionName: fu_bios_settings_set_file_attributes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_bios_setting_get_key
    - fwupd_bios_setting_get_name
    - g_set_error
    - fu_bios_settings_set_description
    - fwupd_bios_setting_set_read_only
    - fwupd_bios_setting_set_current_value
    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:266,1
    - Dst: fu_bios_settings_set_type
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:268,1
    - Dst: fu_bios_setting_set_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:270,1
    - Dst: fu_bios_settings_set_description
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:272,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:273,1
    - Dst: fu_bios_settings_set_read_only
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuBiosSettings*
    - FwupdBiosSetting*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 263
    functionDepth: 5
    functionLinenumber: 263
    functionLinenumberEnd: 276
    functionName: fu_bios_settings_set_folder_attributes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_bios_settings_set_type
    - fu_bios_setting_set_current_value
    - fu_bios_settings_set_description
    - fu_bios_settings_set_read_only
    - g_autoptr
    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:281,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:281,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:282,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:282,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:283,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - FuBiosSettings*
    - FwupdBiosSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 284
    functionName: fu_bios_settings_add_attribute
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 1
    functionsReached:
    - FWUPD_IS_BIOS_SETTING
    - FU_IS_BIOS_SETTINGS
    - g_ptr_array_add
    - g_return_if_fail
    - g_object_ref
    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:293,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:297,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:297,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:298,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:299,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:300,1
    - Dst: fu_bios_setting_new
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:302,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:304,1
    - Dst: g_strdelimit
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:305,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:307,1
    - Dst: fwupd_bios_setting_set_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:308,1
    - Dst: fwupd_bios_setting_set_path
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:309,1
    - Dst: fwupd_bios_setting_set_id
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:310,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:312,1
    - Dst: fwupd_bios_setting_set_filename
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:313,1
    - Dst: fu_bios_settings_set_folder_attributes
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:314,1
    - Dst: fu_bios_settings_set_file_attributes
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:317,1
    - Dst: fu_bios_settings_add_attribute
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 5
    argNames:
    - self
    - driver
    - path
    - name
    - error
    argTypes:
    - FuBiosSettings*
    - gchar*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 286
    functionDepth: 6
    functionLinenumber: 286
    functionLinenumberEnd: 323
    functionName: fu_bios_settings_populate_attribute
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - fwupd_bios_setting_set_id
    - fu_bios_settings_set_folder_attributes
    - fu_bios_settings_set_file_attributes
    - fu_bios_settings_add_attribute
    - FU_IS_BIOS_SETTINGS
    - fu_bios_setting_new
    - fwupd_bios_setting_set_filename
    - g_file_test
    - g_strdup_printf
    - g_strdelimit
    - fwupd_bios_setting_set_name
    - fwupd_bios_setting_set_path
    - g_autoptr
    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:328,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:328,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:330,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:331,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:333,1
    - Dst: _
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:333,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:334,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:335,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:337,1
    - Dst: _
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBiosSettings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 338
    functionName: fu_bios_settings_populate_descriptions
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - FU_IS_BIOS_SETTINGS
    - g_return_if_fail
    - _
    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:343,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:343,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:345,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:346,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:347,1
    - Dst: _
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:347,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:348,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:349,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:350,1
    - Dst: _
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBiosSettings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 351
    functionName: fu_bios_settings_populate_read_only
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - FU_IS_BIOS_SETTINGS
    - g_return_if_fail
    - _
    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:356,1
    - Dst: fu_bios_settings_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:358,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:361,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:362,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:363,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:364,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:365,1
    - Dst: fwupd_bios_setting_set_read_only
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBiosSettings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 370
    functionName: fu_bios_settings_combination_fixups
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fwupd_bios_setting_get_name
    - g_info
    - fu_bios_settings_get_attr
    - fwupd_bios_setting_get_current_value
    - fwupd_bios_setting_set_read_only
    linkageType: ''
    returnType: void
    signature: void fu_bios_settings_combination_fixups(FuBiosSettings *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:387,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:388,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:390,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:390,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:393,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:394,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:396,1
    - Dst: fu_bios_settings_populate_descriptions
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:397,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:399,1
    - Dst: fu_bios_settings_populate_read_only
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:400,1
    - Dst: fu_path_store_get_path
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:403,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:405,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:408,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:410,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:415,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:416,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:419,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:420,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:421,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:424,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:426,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:430,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:432,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:435,1
    - Dst: fu_bios_settings_populate_attribute
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:436,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:441,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:446,1
    - Dst: fu_bios_settings_combination_fixups
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:448,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBiosSettings*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 382
    functionDepth: 7
    functionLinenumber: 382
    functionLinenumberEnd: 451
    functionName: fu_bios_settings_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_bios_settings_populate_descriptions
    - fu_path_store_get_path
    - g_debug
    - g_info
    - fu_bios_settings_populate_attribute
    - fu_bios_settings_combination_fixups
    - FU_IS_BIOS_SETTINGS
    - g_hash_table_size
    - g_ptr_array_set_size
    - fu_bios_settings_populate_read_only
    - fwupd_error_convert
    - g_file_test
    - g_dir_read_name
    - g_dir_open
    - g_autoptr
    - g_build_filename
    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:456,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:457,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBiosSettings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 459
    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:473,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:473,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:474,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:477,1
    - Dst: fwupd_bios_setting_get_id
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:478,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:479,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:480,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - val
    argTypes:
    - FuBiosSettings*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 484
    functionName: fu_bios_settings_get_attr
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - fwupd_bios_setting_get_id
    - fwupd_bios_setting_get_name
    - FU_IS_BIOS_SETTINGS
    - g_ptr_array_index
    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:499,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:499,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBiosSettings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 501
    functionName: fu_bios_settings_get_all
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 3
    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:520,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:521,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:521,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:524,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:525,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:526,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:532,1
    - Dst: fu_bios_setting_get_key
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:540,1
    - Dst: fwupd_bios_setting_set_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:542,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:543,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - self
    - result
    - error
    argTypes:
    - FuBiosSettings*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 549
    functionName: fu_bios_settings_get_pending_reboot
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - fwupd_bios_setting_get_name
    - fu_bios_setting_get_key
    - fu_strtoull
    - g_set_error_literal
    - FU_IS_BIOS_SETTINGS
    - fwupd_bios_setting_set_current_value
    - g_ptr_array_index
    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:554,1
    - Dst: g_variant_builder_init
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:557,1
    - Dst: G_VARIANT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:557,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:559,1
    - Dst: fwupd_codec_to_variant
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:560,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:560,1
    - Dst: g_variant_builder_add_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:561,1
    - Dst: g_variant_new
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - codec
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 564
    functionName: fu_bios_settings_to_variant
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - g_variant_builder_init
    - fwupd_codec_to_variant
    - g_variant_builder_add_value
    - G_VARIANT_TYPE
    - g_variant_new
    - FU_BIOS_SETTINGS
    - g_ptr_array_index
    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:569,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:570,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:573,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:576,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:577,1
    - Dst: fwupd_bios_setting_new
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:577,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:578,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:580,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:583,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:583,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:585,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:585,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - codec
    - json_obj
    - error
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 566
    functionDepth: 3
    functionLinenumber: 566
    functionLinenumberEnd: 590
    functionName: fu_bios_settings_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - fwupd_json_array_get_size
    - fwupd_codec_from_json
    - g_steal_pointer
    - g_ptr_array_add
    - fwupd_json_object_get_array
    - fwupd_bios_setting_new
    - fwupd_json_array_get_object
    - g_autoptr
    - FU_BIOS_SETTINGS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bios_settings_from_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 597
    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:614,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:616,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:618,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:619,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:620,1
    - Dst: fwupd_bios_setting_get_id
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:620,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:621,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBiosSettings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 624
    functionName: fu_bios_settings_to_hash_kv
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_hash_table_insert
    - fwupd_bios_setting_get_id
    - fwupd_bios_setting_get_current_value
    - g_hash_table_new_full
    - g_ptr_array_index
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_bios_settings_to_hash_kv(FuBiosSettings *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:639,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBiosSettings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 641
    functionName: fu_bios_settings_is_supported
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_BIOS_SETTINGS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bios_settings_is_supported(FuBiosSettings *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:655,1
    - Dst: FU_IS_PATH_STORE
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:655,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:656,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pstore
    argTypes:
    - FuPathStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 660
    functionName: fu_bios_settings_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_object_ref
    - g_object_new
    - FU_IS_PATH_STORE
    linkageType: ''
    returnType: FuBiosSettings
    signature: 'FuBiosSettings *

      fu_bios_settings_new(FuPathStore *pstore)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:678,1
    - Dst: FU_IS_BIOS_SETTINGS
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:678,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:679,1
    - Dst: FWUPD_IS_BIOS_SETTING
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:679,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:680,1
    - Dst: fwupd_bios_setting_get_id
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:682,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:683,1
    - Dst: fu_bios_settings_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:690,1
    - Dst: fwupd_bios_setting_get_id
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:690,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:691,1
    - Dst: fwupd_bios_setting_get_id
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:695,1
    - Dst: fu_bios_settings_add_attribute
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings.c:699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuBiosSettings*
    - FwupdBiosSetting*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 701
    functionName: fu_bios_settings_register_attr
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FWUPD_IS_BIOS_SETTING
    - fwupd_bios_setting_get_id
    - fu_bios_settings_get_attr
    - g_set_error
    - fu_bios_settings_add_attribute
    - g_set_error_literal
    - FU_IS_BIOS_SETTINGS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bios_settings_register_attr(FuBiosSettings *self, FwupdBiosSetting
      *attr, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:14,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:15,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:16,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:21,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:22,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:23,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:26,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:27,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:28,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:29,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:32,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:32,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:33,1
    - Dst: fu_msgpack_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:33,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:34,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:34,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:35,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:35,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:36,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:36,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:40,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:41,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:42,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:43,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:46,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:47,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:48,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:49,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:52,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:52,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:55,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:56,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:57,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:60,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:61,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:62,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:63,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:66,1
    - Dst: fu_msgpack_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:66,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:67,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:67,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:68,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:68,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:71,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:72,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:73,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 11
    functionDepth: 2
    functionLinenumber: 11
    functionLinenumberEnd: 75
    functionName: fu_msgpack_lookup_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-test.c
    functionUses: 0
    functionsReached:
    - fu_msgpack_item_new_integer
    - g_assert_error
    - g_ptr_array_add
    - g_assert_no_error
    - g_assert_nonnull
    - g_clear_error
    - fu_msgpack_map_lookup
    - fu_msgpack_item_new_string
    - fu_msgpack_item_new_map
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fu_msgpack_lookup_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:82,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:84,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:84,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:84,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:85,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:85,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:87,1
    - Dst: fu_msgpack_item_new_binary_stream
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:87,1
    - Dst: fu_msgpack_write
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:88,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:89,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:90,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:91,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:92,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:93,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:94,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:95,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:96,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:97,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:98,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:99,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 101
    functionName: fu_msgpack_binary_stream_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-test.c
    functionUses: 0
    functionsReached:
    - fu_msgpack_write
    - g_memory_input_stream_new_from_bytes
    - g_bytes_new
    - g_assert_cmpuint
    - g_ptr_array_add
    - g_assert_no_error
    - g_assert_nonnull
    - fu_dump_raw
    - g_assert_cmpint
    - G_INPUT_STREAM
    - g_autoptr
    - fu_msgpack_item_new_binary_stream
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_msgpack_binary_stream_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:108,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:109,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:110,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:111,1
    - Dst: fu_msgpack_parse
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:113,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:114,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:115,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:116,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:118,1
    - Dst: fu_msgpack_item_get_float
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:118,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 121
    functionName: fu_msgpack_parse_binary_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpfloat_with_epsilon
    - fu_msgpack_parse
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fu_msgpack_item_get_float
    - g_byte_array_new
    - g_byte_array_append
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_msgpack_parse_binary_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:128,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:128,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:131,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:131,1
    - Dst: fu_msgpack_write
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:146,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:147,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:148,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:149,1
    - Dst: fu_byte_array_append_uint24
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:152,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:155,1
    - Dst: fu_msgpack_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:155,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:156,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:156,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:157,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:157,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:158,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:158,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:159,1
    - Dst: fu_msgpack_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:159,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:160,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:160,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:161,1
    - Dst: fu_msgpack_item_new_float
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:161,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:162,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:162,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:163,1
    - Dst: fu_msgpack_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:163,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:164,1
    - Dst: fu_msgpack_item_new_binary
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:164,1
    - Dst: fu_msgpack_write
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:165,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:166,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:167,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:168,1
    - Dst: fu_msgpack_parse
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:171,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:172,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:173,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:174,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:176,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:177,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:178,1
    - Dst: fu_msgpack_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:178,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:180,1
    - Dst: fu_msgpack_item_get_map
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:180,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:180,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:181,1
    - Dst: fu_msgpack_item_get_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:181,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:181,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:182,1
    - Dst: fu_msgpack_item_get_integer
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:182,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:182,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:183,1
    - Dst: fu_msgpack_item_get_float
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:183,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:183,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:186,1
    - Dst: fu_msgpack_item_get_array
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:186,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 187
    functionName: fu_msgpack_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-test.c
    functionUses: 0
    functionsReached:
    - fu_msgpack_item_new_float
    - fu_msgpack_write
    - fu_msgpack_parse
    - g_assert_nonnull
    - fu_msgpack_item_get_array
    - fu_msgpack_item_new_map
    - g_ptr_array_index
    - g_assert_cmpint
    - g_byte_array_new
    - fu_msgpack_item_get_kind
    - fu_msgpack_item_new_binary
    - g_ptr_array_new_with_free_func
    - fu_msgpack_item_new_integer
    - g_assert_cmpfloat_with_epsilon
    - fu_msgpack_item_get_map
    - fu_msgpack_item_new_string
    - fu_msgpack_item_new_array
    - g_ptr_array_add
    - g_assert_no_error
    - fu_msgpack_item_get_float
    - G_N_ELEMENTS
    - fu_msgpack_item_get_integer
    - g_autoptr
    - fu_byte_array_append_uint24
    linkageType: ''
    returnType: void
    signature: void fu_msgpack_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:192,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:193,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:194,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:195,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:196,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-msgpack-test.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 198
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-msgpack-test.c
    functionUses: 3
    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: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-volume-test.c:16,1
    - Dst: fu_volume_kind_convert_to_gpt
      Src: /src/fwupd/libfwupdplugin/fu-volume-test.c:16,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-volume-test.c:19,1
    - Dst: fu_volume_kind_convert_to_gpt
      Src: /src/fwupd/libfwupdplugin/fu-volume-test.c:19,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-volume-test.c:22,1
    - Dst: fu_volume_kind_convert_to_gpt
      Src: /src/fwupd/libfwupdplugin/fu-volume-test.c:22,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-volume-test.c:25,1
    - Dst: fu_volume_kind_convert_to_gpt
      Src: /src/fwupd/libfwupdplugin/fu-volume-test.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 26
    functionName: fu_volume_gpt_type_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume-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_test_init
      Src: /src/fwupd/libfwupdplugin/fu-volume-test.c:31,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-volume-test.c:32,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-volume-test.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume-test.c
    functionUses: 3
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_test_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:31,1
    - Dst: fu_struct_zip_extra_hdr_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:32,1
    - Dst: fu_struct_zip_extra_hdr_get_datasz
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:35,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:36,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:37,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - stream
    - offset
    - extra_size
    - error
    argTypes:
    - GInputStream*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 51
    functionName: fu_zip_firmware_parse_extra
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-zip-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_zip_extra_hdr_get_datasz
    - g_prefix_error_literal
    - fu_struct_zip_extra_hdr_parse_stream
    - fu_size_checked_inc
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_zip_firmware_parse_extra(GInputStream *stream, gsize offset,
      gsize extra_size, GError **error)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_zip_cdfh_get_offset_lfh
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:61,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:69,1
    - Dst: fu_zip_file_new
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:70,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:73,1
    - Dst: fu_struct_zip_lfh_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:74,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:77,1
    - Dst: fu_input_stream_read_string
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:81,1
    - Dst: fu_struct_zip_lfh_get_filename_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:83,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:86,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:89,1
    - Dst: fu_struct_zip_lfh_get_filename_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:89,1
    - Dst: fu_path_verify_safe
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:93,1
    - Dst: fu_zip_firmware_parse_extra
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:97,1
    - Dst: fu_struct_zip_lfh_get_extra_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:99,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:102,1
    - Dst: fu_struct_zip_lfh_get_extra_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:102,1
    - Dst: fu_struct_zip_lfh_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:106,1
    - Dst: fu_struct_zip_cdfh_get_uncompressed_crc
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:108,1
    - Dst: fu_struct_zip_lfh_get_uncompressed_crc
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:110,1
    - Dst: fu_struct_zip_lfh_get_compressed_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:114,1
    - Dst: fu_struct_zip_cdfh_get_compressed_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:116,1
    - Dst: fu_struct_zip_cdfh_get_compressed_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:119,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:122,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:132,1
    - Dst: fu_struct_zip_lfh_get_uncompressed_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:138,1
    - Dst: fu_struct_zip_cdfh_get_uncompressed_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:140,1
    - Dst: fu_struct_zip_cdfh_get_uncompressed_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:143,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:146,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:156,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:165,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:175,1
    - Dst: fu_firmware_get_size_max
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:185,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:185,1
    - Dst: fu_firmware_get_size_max
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:186,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:186,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:187,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:189,1
    - Dst: fu_firmware_get_size_max
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:189,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:189,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:190,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:198,1
    - Dst: fu_struct_zip_lfh_get_compression
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:201,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:204,1
    - Dst: fu_input_stream_compute_crc32
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:213,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:222,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:224,1
    - Dst: G_CONVERTER
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:226,1
    - Dst: g_zlib_decompressor_new
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:226,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:227,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:227,1
    - Dst: g_converter_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:229,1
    - Dst: g_filter_input_stream_set_close_base_stream
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:230,1
    - Dst: G_FILTER_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:230,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:233,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:235,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:238,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:239,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:243,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:247,1
    - Dst: fu_crc32_bytes
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:249,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:251,1
    - Dst: fu_zip_compression_to_string
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:255,1
    - Dst: fu_zip_file_set_compression
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:258,1
    - Dst: FU_ZIP_FILE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:258,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:263,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:276,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:277,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:279,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:283,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 125
    argCount: 5
    argNames:
    - self
    - stream
    - st_cdfh
    - flags
    - error
    argTypes:
    - FuZipFirmware*
    - GInputStream*
    - FuStructZipCdfh*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 284
    functionName: fu_zip_firmware_parse_lfh
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-zip-firmware.c
    functionUses: 0
    functionsReached:
    - fu_zip_firmware_parse_extra
    - fu_firmware_set_bytes
    - fu_firmware_set_offset
    - fu_firmware_set_stream
    - fu_struct_zip_cdfh_get_uncompressed_size
    - fu_input_stream_compute_crc32
    - fu_zip_file_new
    - fu_struct_zip_lfh_get_filename_size
    - g_converter_input_stream_new
    - fu_path_verify_safe
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_firmware_get_size_max
    - fu_struct_zip_lfh_get_compressed_size
    - g_filter_input_stream_set_close_base_stream
    - fu_zip_file_set_compression
    - fu_crc32_bytes
    - fu_input_stream_read_string
    - g_seekable_seek
    - g_path_get_basename
    - fu_struct_zip_cdfh_get_compressed_size
    - g_zlib_decompressor_new
    - G_FILTER_INPUT_STREAM
    - FU_FIRMWARE
    - fu_struct_zip_lfh_get_extra_size
    - fu_struct_zip_lfh_get_flags
    - G_CONVERTER
    - G_SEEKABLE
    - fu_partial_input_stream_new
    - fu_struct_zip_cdfh_get_offset_lfh
    - fu_input_stream_read_bytes
    - fu_firmware_set_id
    - g_set_error
    - g_steal_pointer
    - g_format_size
    - fu_zip_compression_to_string
    - fu_struct_zip_cdfh_get_uncompressed_crc
    - fu_struct_zip_lfh_get_uncompressed_size
    - fu_struct_zip_lfh_get_compression
    - g_bytes_get_size
    - fu_size_checked_inc
    - fu_struct_zip_lfh_get_uncompressed_crc
    - g_autoptr
    - FU_ZIP_FILE
    - fu_struct_zip_lfh_parse_stream
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_zip_firmware_parse_lfh(FuZipFirmware *self,\n\t\t\t
      \ GInputStream *stream,\n\t\t\t  FuStructZipCdfh *st_cdfh,\n\t\t\t  FuFirmwareParseFlags
      flags,\n\t\t\t  GError **error)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FU_ZIP_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:292,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:295,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:297,1
    - Dst: fu_input_stream_find
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:303,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:309,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:312,1
    - Dst: fu_struct_zip_eocd_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:313,1
    - Dst: fu_struct_zip_eocd_get_disk_number
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:316,1
    - Dst: fu_struct_zip_eocd_get_cd_disk
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:317,1
    - Dst: fu_struct_zip_eocd_get_cd_number_disk
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:318,1
    - Dst: fu_struct_zip_eocd_get_cd_number
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:319,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:320,1
    - Dst: fu_struct_zip_eocd_get_cd_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:328,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:329,1
    - Dst: fu_firmware_get_images_max
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:337,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:337,1
    - Dst: fu_struct_zip_eocd_get_cd_number
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:338,1
    - Dst: fu_firmware_get_images_max
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:339,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:339,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:340,1
    - Dst: fu_struct_zip_eocd_get_cd_number
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:344,1
    - Dst: fu_firmware_get_images_max
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:345,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:345,1
    - Dst: fu_struct_zip_eocd_get_cd_offset
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:350,1
    - Dst: fu_struct_zip_eocd_get_cd_number
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:351,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:352,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:353,1
    - Dst: fu_struct_zip_cdfh_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:356,1
    - Dst: fu_struct_zip_cdfh_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:359,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:360,1
    - Dst: fu_zip_firmware_parse_lfh
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:366,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:370,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:372,1
    - Dst: fu_struct_zip_cdfh_get_filename_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:373,1
    - Dst: fu_zip_firmware_parse_extra
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:378,1
    - Dst: fu_struct_zip_cdfh_get_extra_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:380,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:383,1
    - Dst: fu_struct_zip_cdfh_get_extra_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:384,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:389,1
    - Dst: fu_struct_zip_cdfh_get_comment_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:390,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:395,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:395,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 286
    functionDepth: 3
    functionLinenumber: 286
    functionLinenumberEnd: 401
    functionName: fu_zip_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-zip-firmware.c
    functionUses: 0
    functionsReached:
    - fu_zip_firmware_parse_extra
    - fu_input_stream_find
    - fu_struct_zip_eocd_parse_stream
    - fu_struct_zip_cdfh_get_extra_size
    - fu_firmware_get_images_max
    - fu_struct_zip_eocd_get_cd_number_disk
    - fu_struct_zip_cdfh_get_filename_size
    - g_debug
    - fu_firmware_add_image
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_struct_zip_cdfh_get_flags
    - fu_struct_zip_cdfh_get_comment_size
    - fu_struct_zip_eocd_get_cd_number
    - FU_FIRMWARE
    - fu_struct_zip_eocd_get_disk_number
    - fu_struct_zip_eocd_get_cd_size
    - fu_struct_zip_eocd_get_cd_disk
    - FU_ZIP_FIRMWARE
    - fu_zip_firmware_parse_lfh
    - g_set_error
    - fu_input_stream_size
    - fu_struct_zip_eocd_get_cd_offset
    - fu_size_checked_inc
    - g_autoptr
    - fu_struct_zip_cdfh_parse_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_zip_firmware_parse(FuFirmware *firmware,\n\t\t      GInputStream
      *stream,\n\t\t      FuFirmwareParseFlags flags,\n\t\t      GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:413,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:413,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:414,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:414,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:415,1
    - Dst: fu_struct_zip_eocd_new
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:415,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:419,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:423,1
    - Dst: fu_zip_file_get_compression
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:424,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:425,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:425,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:426,1
    - Dst: fu_struct_zip_lfh_new
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:426,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:427,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:428,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:432,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:440,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:440,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:441,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:441,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:444,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:445,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:453,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:455,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:456,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:457,1
    - Dst: G_CONVERTER
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:458,1
    - Dst: g_zlib_compressor_new
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:458,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:459,1
    - Dst: g_converter_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:460,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:461,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:467,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:470,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:471,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:478,1
    - Dst: fu_zip_compression_to_string
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:482,1
    - Dst: fu_crc32_bytes
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:486,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:487,1
    - Dst: fu_struct_zip_lfh_set_uncompressed_crc
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:488,1
    - Dst: fu_struct_zip_lfh_set_uncompressed_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:489,1
    - Dst: fu_struct_zip_lfh_set_compression
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:490,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:491,1
    - Dst: fu_struct_zip_lfh_set_compressed_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:492,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:493,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:494,1
    - Dst: fu_struct_zip_lfh_set_filename_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:500,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:500,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:502,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:503,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:503,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:504,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:510,1
    - Dst: fu_zip_file_get_compression
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:511,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:512,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:512,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:513,1
    - Dst: fu_struct_zip_cdfh_new
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:513,1
    - Dst: fu_struct_zip_cdfh_set_compression
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:515,1
    - Dst: fu_struct_zip_cdfh_set_compressed_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:516,1
    - Dst: fu_struct_zip_cdfh_set_uncompressed_crc
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:517,1
    - Dst: fu_struct_zip_cdfh_set_uncompressed_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:518,1
    - Dst: fu_struct_zip_cdfh_set_filename_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:519,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:519,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:520,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:520,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:521,1
    - Dst: fu_struct_zip_cdfh_set_offset_lfh
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:527,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:528,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:528,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:530,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:531,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:531,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:536,1
    - Dst: fu_struct_zip_eocd_set_cd_offset
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:542,1
    - Dst: fu_struct_zip_eocd_set_cd_number_disk
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:543,1
    - Dst: fu_struct_zip_eocd_set_cd_number
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:544,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:546,1
    - Dst: fu_struct_zip_eocd_set_cd_size
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:552,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:553,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:556,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 96
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 557
    functionName: fu_zip_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-zip-firmware.c
    functionUses: 0
    functionsReached:
    - g_memory_input_stream_new_from_bytes
    - fu_struct_zip_cdfh_set_uncompressed_size
    - fu_firmware_set_offset
    - fu_struct_zip_lfh_set_compressed_size
    - g_ptr_array_index
    - fu_struct_zip_lfh_set_filename_size
    - fu_firmware_get_id
    - fu_byte_array_append_bytes
    - fu_struct_zip_cdfh_set_uncompressed_crc
    - g_new0
    - fu_struct_zip_cdfh_set_offset_lfh
    - fu_zip_file_get_compression
    - fu_firmware_get_bytes
    - fu_struct_zip_eocd_set_cd_number
    - g_set_error_literal
    - fu_firmware_get_offset
    - g_prefix_error_literal
    - fu_firmware_get_images
    - g_byte_array_new
    - fu_crc32_bytes
    - g_bytes_ref
    - fu_struct_zip_cdfh_set_filename_size
    - fu_struct_zip_lfh_new
    - fu_struct_zip_lfh_set_uncompressed_size
    - FU_FIRMWARE
    - fu_struct_zip_eocd_set_cd_size
    - G_CONVERTER
    - fu_struct_zip_lfh_set_compression
    - g_byte_array_append
    - fu_struct_zip_cdfh_set_compression
    - fu_struct_zip_cdfh_new
    - fu_input_stream_read_bytes
    - fu_struct_zip_eocd_set_cd_offset
    - fu_struct_zip_eocd_new
    - g_zlib_compressor_new
    - g_set_error
    - fu_struct_zip_eocd_set_cd_number_disk
    - g_steal_pointer
    - fu_struct_zip_lfh_set_uncompressed_crc
    - fu_zip_compression_to_string
    - strlen
    - fu_struct_zip_cdfh_set_compressed_size
    - g_bytes_get_size
    - g_converter_input_stream_new
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_zip_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_magic
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:562,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - firmware
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 566
    functionName: fu_zip_firmware_add_magic
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-zip-firmware.c
    functionUses: 0
    functionsReached:
    - strlen
    - fu_firmware_add_magic
    linkageType: ''
    returnType: void
    signature: void fu_zip_firmware_add_magic(FuFirmware *firmware)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuZipFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 575
    functionName: fu_zip_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-zip-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_zip_firmware_class_init(FuZipFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:580,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:580,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:581,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:581,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:582,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:582,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:583,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuZipFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 584
    functionName: fu_zip_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-zip-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_zip_firmware_init(FuZipFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:596,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-zip-firmware.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 597
    functionName: fu_zip_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-zip-firmware.c
    functionUses: 3
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_zip_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupdplugin/fu-test.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 21
    functionName: fu_test_hang_check_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-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-test.c:26,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-test.c:27,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/libfwupdplugin/fu-test.c:28,1
    - Dst: g_timeout_add
      Src: /src/fwupd/libfwupdplugin/fu-test.c:29,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/libfwupdplugin/fu-test.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - timeout_ms
    argTypes:
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: fu_test_loop_run_with_timeout
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-test.c
    functionUses: 1
    functionsReached:
    - g_main_loop_new
    - g_assert_cmpint
    - g_main_loop_run
    - g_timeout_add
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fu_test_loop_run_with_timeout(guint timeout_ms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_clear_handle_id
      Src: /src/fwupd/libfwupdplugin/fu-test.c:36,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/libfwupdplugin/fu-test.c:38,1
    - Dst: g_main_loop_unref
      Src: /src/fwupd/libfwupdplugin/fu-test.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: fu_test_loop_quit
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-test.c
    functionUses: 2
    functionsReached:
    - g_main_loop_unref
    - g_clear_handle_id
    - g_main_loop_quit
    linkageType: ''
    returnType: void
    signature: void fu_test_loop_quit(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: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_store_get_path
      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:56,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:61,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:73,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:74,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - pstore
    - error
    argTypes:
    - FuPathStore*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 75
    functionName: fu_kernel_search_path_get_current
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c
    functionUses: 1
    functionsReached:
    - fu_path_store_get_path
    - g_debug
    - g_set_error
    - g_steal_pointer
    - g_file_get_contents
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_kernel_search_path_get_current(FuPathStore *pstore, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:82,1
    - Dst: g_return_val_if_fail
      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: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:85,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:85,1
    - Dst: fu_path_store_get_path
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:87,1
    - Dst: g_file_set_contents_full
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:90,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - path
    - error
    argTypes:
    - FuKernelSearchPathLocker*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 96
    functionName: fu_kernel_search_path_set_current
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_path_store_get_path
    - g_debug
    - g_file_set_contents_full
    - strlen
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kernel_search_path_set_current(FuKernelSearchPathLocker
      *self, 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:103,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuKernelSearchPathLocker*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 107
    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:129,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:131,1
    - Dst: FU_IS_PATH_STORE
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:131,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:132,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:133,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:136,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:137,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:138,1
    - Dst: fu_kernel_search_path_get_current
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:139,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:144,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:145,1
    - Dst: fu_kernel_search_path_set_current
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:146,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - pstore
    - path
    - error
    argTypes:
    - FuPathStore*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 152
    functionName: fu_kernel_search_path_locker_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_strcmp0
    - fu_kernel_search_path_set_current
    - g_steal_pointer
    - fu_kernel_search_path_get_current
    - g_object_ref
    - g_object_new
    - g_autoptr
    - FU_IS_PATH_STORE
    linkageType: ''
    returnType: FuKernelSearchPathLocker
    signature: 'FuKernelSearchPathLocker *

      fu_kernel_search_path_locker_new(FuPathStore *pstore, const gchar *path, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_KERNEL_SEARCH_PATH_LOCKER
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:157,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:159,1
    - Dst: fu_kernel_search_path_locker_close
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:160,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:161,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 164
    functionName: fu_kernel_search_path_locker_dispose
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_warning
    - fu_kernel_search_path_locker_close
    - g_autoptr
    - FU_KERNEL_SEARCH_PATH_LOCKER
    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:169,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:170,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:171,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:172,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 174
    functionName: fu_kernel_search_path_locker_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-search-path.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - 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:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuKernelSearchPathLockerClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 182
    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: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    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: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file.c
    functionUses: 766
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_FILE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:40,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:41,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:43,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:44,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:46,1
    - Dst: fu_efi_guid_to_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:48,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:48,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:49,1
    - Dst: fu_efi_file_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 51
    functionName: fu_efi_file_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file.c
    functionUses: 0
    functionsReached:
    - FU_EFI_FILE
    - fu_firmware_get_id
    - fu_xmlb_builder_insert_kx
    - fu_efi_guid_to_name
    - fu_xmlb_builder_insert_kv
    - fu_efi_file_type_to_string
    - GET_PRIVATE
    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:58,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - blob
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 69
    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:77,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:78,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:82,1
    - Dst: fu_struct_efi_file_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:85,1
    - Dst: fu_struct_efi_file_get_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:88,1
    - Dst: fu_struct_efi_file_get_attrs
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:89,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:91,1
    - Dst: fu_struct_efi_file_get_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:91,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:92,1
    - Dst: fu_struct_efi_file_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:96,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:97,1
    - Dst: fu_struct_efi_file_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:101,1
    - Dst: fu_struct_efi_file_unref
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:104,1
    - Dst: fu_struct_efi_file2_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:105,1
    - Dst: fu_struct_efi_file2_get_extended_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:108,1
    - Dst: fu_struct_efi_file_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:110,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:113,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:124,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:126,1
    - Dst: fu_efi_file_hdr_checksum8
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:129,1
    - Dst: fu_struct_efi_file_get_hdr_checksum
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:130,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:131,1
    - Dst: fu_struct_efi_file_get_hdr_checksum
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:136,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:143,1
    - Dst: g_prefix_error_literal
      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_literal
      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: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 183
    functionName: fu_efi_file_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_file_get_data_checksum
    - fu_input_stream_compute_sum8
    - fwupd_guid_to_string
    - fu_firmware_set_stream
    - FU_EFI_FILE
    - fu_struct_efi_file_parse_stream
    - g_prefix_error_literal
    - fu_struct_efi_file_get_attrs
    - fu_struct_efi_file_get_size
    - fu_common_align_up
    - fu_firmware_set_size
    - GET_PRIVATE
    - fu_struct_efi_file_get_name
    - fu_struct_efi_file2_parse_stream
    - fu_struct_efi_file_unref
    - fu_struct_efi_file_get_type
    - fu_efi_parse_sections
    - fu_partial_input_stream_new
    - fu_struct_efi_file2_get_extended_size
    - fu_input_stream_read_bytes
    - fu_firmware_set_id
    - g_set_error
    - fu_efi_file_hdr_checksum8
    - fu_firmware_get_alignment
    - fu_struct_efi_file_get_hdr_checksum
    - g_autoptr
    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: FU_FIRMWARE
      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: FU_FIRMWARE
      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
      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: FU_FIRMWARE
      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:
    - self
    - error
    argTypes:
    - FuEfiFile*
    - 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_write
    - fu_byte_array_append_bytes
    - fu_byte_array_align_up
    - g_bytes_new
    - fu_firmware_get_bytes_with_patches
    - g_set_error
    - FU_FIRMWARE
    - fu_firmware_get_alignment
    - fu_firmware_get_images
    - fu_firmware_set_offset
    - g_byte_array_new
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_efi_file_write_sections(FuEfiFile *self, 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_size
    - FU_EFI_FILE
    - fu_firmware_get_id
    - fu_struct_efi_file_set_hdr_checksum
    - fu_byte_array_append_bytes
    - fwupd_guid_from_string
    - fu_sum8_bytes
    - fu_struct_efi_file_set_data_checksum
    - g_bytes_new_static
    - GET_PRIVATE
    - fu_struct_efi_file_new
    - fu_efi_file_write_sections
    - fu_struct_efi_file_set_attrs
    - fu_efi_file_hdr_checksum8
    - g_steal_pointer
    - fu_struct_efi_file_set_name
    - fu_struct_efi_file_set_type
    - g_bytes_get_size
    - g_autoptr
    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:
    - FU_EFI_FILE
    - xb_node_query_text_as_uint
    - GET_PRIVATE
    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: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:295,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:295,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:296,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 297
    functionName: fu_efi_file_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_alignment
    - fu_firmware_set_size_max
    - GET_PRIVATE
    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:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiFileClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 307
    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:319,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-file.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 320
    functionName: fu_efi_file_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_efi_file_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:15,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:15,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:16,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:18,1
    - Dst: fu_path_store_get_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:19,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:20,1
    - Dst: fu_path_store_get_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:22,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:23,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 25
    functionName: fu_path_store_load
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store-test.c
    functionUses: 0
    functionsReached:
    - fu_path_store_get_path
    - fu_path_store_set_path
    - g_assert_error
    - g_assert_cmpstr
    - g_autoptr
    - g_assert_null
    - fu_path_store_new
    linkageType: ''
    returnType: void
    signature: void fu_path_store_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:31,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:32,1
    - Dst: fu_path_store_load_defaults
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:34,1
    - Dst: fu_path_store_load_defaults
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:35,1
    - Dst: fu_path_store_get_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:36,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:37,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:38,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 40
    functionName: fu_path_store_defaults
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store-test.c
    functionUses: 0
    functionsReached:
    - fu_path_store_get_path
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpstr
    - g_autoptr
    - fu_path_store_load_defaults
    - fu_path_store_new
    linkageType: ''
    returnType: void
    signature: void fu_path_store_defaults(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:46,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:47,1
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:49,1
    - Dst: fu_path_store_load_from_env
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:51,1
    - Dst: fu_path_store_load_from_env
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:52,1
    - Dst: fu_path_store_get_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:53,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:54,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:55,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 57
    functionName: fu_path_store_env
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store-test.c
    functionUses: 0
    functionsReached:
    - fu_path_store_get_path
    - g_setenv
    - g_assert_nonnull
    - g_assert_no_error
    - fu_path_store_load_from_env
    - g_assert_cmpstr
    - g_autoptr
    - fu_path_store_new
    linkageType: ''
    returnType: void
    signature: void fu_path_store_env(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:63,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:64,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:66,1
    - Dst: fu_path_store_add_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:67,1
    - Dst: fu_path_store_get_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:69,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:70,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:71,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 73
    functionName: fu_path_store_prefix
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store-test.c
    functionUses: 0
    functionsReached:
    - fu_path_store_get_path
    - fu_path_store_set_path
    - g_assert_nonnull
    - g_assert_no_error
    - fu_path_store_add_prefix
    - g_assert_cmpstr
    - g_autoptr
    - fu_path_store_new
    linkageType: ''
    returnType: void
    signature: void fu_path_store_prefix(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:79,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:79,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:80,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:81,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:83,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:84,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:85,1
    - Dst: fu_path_store_set_tmpdir
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:87,1
    - Dst: fu_path_store_get_path
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:89,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:90,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 92
    functionName: fu_path_store_tmpdir
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store-test.c
    functionUses: 0
    functionsReached:
    - fu_path_store_get_path
    - g_assert_nonnull
    - g_assert_no_error
    - fu_path_store_set_tmpdir
    - fu_temporary_directory_new
    - g_autoptr
    - fu_path_store_new
    linkageType: ''
    returnType: void
    signature: void fu_path_store_tmpdir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:97,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:98,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:99,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:100,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:101,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:102,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-path-store-test.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-store-test.c
    functionUses: 3
    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_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: 12
    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_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:80,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:88,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:89,1
    - Dst: fu_struct_ifwi_fpt_entry_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:92,1
    - Dst: fu_struct_ifwi_fpt_entry_get_partition_name
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:95,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:96,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:99,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:101,1
    - Dst: fu_struct_ifwi_fpt_entry_get_length
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:104,1
    - Dst: fu_struct_ifwi_fpt_entry_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:107,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:109,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:111,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:114,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:116,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:118,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:122,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 128
    functionName: fu_ifwi_fpt_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c
    functionUses: 0
    functionsReached:
    - fu_strsafe
    - fu_firmware_set_offset
    - fu_struct_ifwi_fpt_entry_get_offset
    - fu_struct_ifwi_fpt_parse_stream
    - fu_firmware_add_image
    - fu_struct_ifwi_fpt_get_header_version
    - fu_struct_ifwi_fpt_entry_parse_stream
    - g_prefix_error_literal
    - fu_firmware_set_idx
    - fu_firmware_new
    - fu_struct_ifwi_fpt_entry_get_partition_name
    - fu_partial_input_stream_new
    - fu_struct_ifwi_fpt_entry_get_length
    - fu_firmware_set_id
    - g_set_error
    - fu_struct_ifwi_fpt_get_num_of_entries
    - fu_firmware_parse_stream
    - fu_struct_ifwi_fpt_get_header_length
    - fu_size_checked_inc
    - g_autoptr
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:134,1
    - Dst: fu_struct_ifwi_fpt_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:134,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:135,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:135,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:138,1
    - Dst: fu_size_checked_inc_product
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:140,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:143,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:144,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:145,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:147,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:150,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:151,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:151,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:152,1
    - Dst: fu_struct_ifwi_fpt_set_num_of_entries
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:158,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:162,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:163,1
    - Dst: fu_struct_ifwi_fpt_entry_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:163,1
    - Dst: fu_struct_ifwi_fpt_entry_set_partition_name
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:164,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:164,1
    - Dst: fu_struct_ifwi_fpt_entry_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:165,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:165,1
    - Dst: fu_struct_ifwi_fpt_entry_set_length
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:166,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:166,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:167,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:172,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:173,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:174,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:177,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:181,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 182
    functionName: fu_ifwi_fpt_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_ifwi_fpt_new
    - fu_struct_ifwi_fpt_entry_set_partition_name
    - fu_firmware_set_offset
    - fu_firmware_get_size
    - fu_struct_ifwi_fpt_set_num_of_entries
    - fu_size_checked_inc_product
    - fu_struct_ifwi_fpt_entry_new
    - g_ptr_array_index
    - fu_byte_array_append_bytes
    - fu_firmware_get_bytes
    - fu_firmware_get_offset
    - fu_firmware_get_images
    - fu_struct_ifwi_fpt_entry_set_length
    - fu_firmware_get_idx
    - fu_byte_array_append_array
    - g_steal_pointer
    - g_prefix_error
    - fu_struct_ifwi_fpt_entry_set_offset
    - g_bytes_get_size
    - fu_size_checked_inc
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_ifwi_fpt_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:187,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:187,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:188,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:188,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:189,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIfwiFptFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: fu_ifwi_fpt_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_set_size_max
    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:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIfwiFptFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 199
    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:211,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: fu_ifwi_fpt_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-fpt-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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:31,1
    - Dst: fwupd_bios_setting_get_path
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:31,1
    - Dst: fwupd_bios_setting_get_filename
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:32,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:34,1
    - Dst: fu_io_channel_write_raw
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:37,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:39,1
    - Dst: fwupd_bios_setting_set_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:46,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:47,1
    - Dst: fwupd_bios_setting_get_id
      Src: /src/fwupd/libfwupdplugin/fu-bios-setting.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 49
    functionName: fu_bios_setting_write_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-setting.c
    functionUses: 0
    functionsReached:
    - fwupd_bios_setting_get_filename
    - fu_io_channel_new_file
    - fwupd_bios_setting_get_id
    - fwupd_bios_setting_set_current_value
    - g_debug
    - fwupd_bios_setting_get_path
    - fu_io_channel_write_raw
    - strlen
    - g_autoptr
    - g_build_filename
    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:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBiosSettingClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    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: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    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:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    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_object_unref
    - G_OBJECT_CLASS
    - g_warning
    - g_autoptr
    - FU_DEVICE_LOCKER
    - FuDeviceLocker*::close_func
    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:
    - g_return_val_if_fail
    - g_debug
    - g_steal_pointer
    - FU_IS_DEVICE_LOCKER
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    - FuDeviceLocker*::close_func
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_locker_close(FuDeviceLocker *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:120,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:120,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:121,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: fu_device_locker_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-locker.c
    functionUses: 23
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - fu_device_locker_new_full
    linkageType: ''
    returnType: FuDeviceLocker
    signature: 'FuDeviceLocker *

      fu_device_locker_new(FuDevice *device, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:153,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:155,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:155,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:156,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:157,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:158,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:161,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:162,1
    - Dst: open_func
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:167,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:168,1
    - Dst: close_func
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:169,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:170,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device-locker.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - device
    - open_func
    - close_func
    - error
    argTypes:
    - FuDevice*
    - FuDeviceLockerFunc
    - FuDeviceLockerFunc
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 178
    functionName: fu_device_locker_new_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-locker.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - close_func
    - g_debug
    - FU_IS_DEVICE
    - g_steal_pointer
    - open_func
    - g_object_ref
    - g_object_new
    - g_autoptr
    linkageType: ''
    returnType: FuDeviceLocker
    signature: "FuDeviceLocker *\nfu_device_locker_new_full(FuDevice *device,\n\t\t\t
      \ FuDeviceLockerFunc open_func,\n\t\t\t  FuDeviceLockerFunc close_func,\n\t\t\t
      \ GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:24,1
    - Dst: fu_dummy_efivars_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:26,1
    - Dst: fu_efivars_supported
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:29,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:30,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:31,1
    - Dst: fu_efivars_space_free
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:34,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:35,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:36,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:39,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:47,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:48,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:49,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:56,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:57,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:58,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:59,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:62,1
    - Dst: fu_efivars_space_free
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:65,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:66,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:67,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:70,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:70,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:71,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:71,1
    - Dst: fu_efivars_get_names
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:74,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:75,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:76,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:77,1
    - Dst: fu_efivars_space_used
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:80,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:81,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:82,1
    - Dst: fu_efivars_delete
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:85,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:86,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:87,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:88,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:88,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:89,1
    - Dst: fu_efivars_delete
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:89,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:92,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:99,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:100,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:101,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:108,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:109,1
    - Dst: fu_efivars_delete_with_glob
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:110,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:111,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:112,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:113,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:113,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:114,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:114,1
    - Dst: fu_efivars_space_free
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:117,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:118,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:119,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:122,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:129,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 131
    functionName: fu_efivars_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars-test.c
    functionUses: 0
    functionsReached:
    - fu_efivars_get_names
    - fu_efivars_space_used
    - fu_efivars_get_data
    - fu_efivars_exists
    - fu_efivars_space_free
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fu_efivars_delete
    - fu_efivars_delete_with_glob
    - g_assert_error
    - g_assert_false
    - fu_dummy_efivars_new
    - g_assert_true
    - g_autoptr
    - fu_efivars_set_data
    - fu_efivars_supported
    linkageType: ''
    returnType: void
    signature: void fu_efivars_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:140,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:140,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:141,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:143,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:144,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:145,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:146,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:147,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:148,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:151,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:152,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:153,1
    - Dst: fu_volume_new_from_mount_path
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:154,1
    - Dst: fu_temporary_directory_get_path
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:154,1
    - Dst: fu_efivars_set_boot_current
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:157,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:158,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:159,1
    - Dst: fu_efivars_get_boot_current
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:160,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:161,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:162,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:163,1
    - Dst: fu_efivars_set_boot_next
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:166,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:167,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:168,1
    - Dst: fu_efivars_get_boot_next
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:169,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:170,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:171,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:172,1
    - Dst: fu_efivars_build_boot_order
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:175,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:176,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:177,1
    - Dst: fu_efivars_get_boot_order
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:178,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:179,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:180,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:181,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:182,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:183,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:184,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:185,1
    - Dst: fu_volume_set_partition_kind
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:188,1
    - Dst: fu_volume_set_partition_uuid
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:189,1
    - Dst: fu_context_add_esp_volume
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:190,1
    - Dst: fu_efivars_create_boot_entry_for_volume
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:193,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:199,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:200,1
    - Dst: fu_efivars_create_boot_entry_for_volume
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:201,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:207,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:208,1
    - Dst: fu_efivars_get_boot_entry
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:211,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:212,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:213,1
    - Dst: fu_efivars_get_boot_entries
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:214,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:215,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:216,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:217,1
    - Dst: fu_context_get_esp_files
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:221,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:222,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:223,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:224,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:225,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:226,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:227,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 228
    functionName: fu_efivars_boot_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars-test.c
    functionUses: 0
    functionsReached:
    - fu_efivars_get_boot_entries
    - g_assert_nonnull
    - fu_efivars_set_boot_current
    - fu_temporary_directory_build
    - fu_efivars_get_boot_entry
    - g_array_index
    - fu_context_new_full
    - fu_volume_set_partition_uuid
    - g_ptr_array_index
    - fu_temporary_directory_get_path
    - fu_efivars_get_boot_order
    - g_assert_cmpint
    - fu_context_get_efivars
    - fu_volume_new_from_mount_path
    - fu_temporary_directory_new
    - g_assert_true
    - fu_context_get_esp_files
    - fu_efivars_get_boot_next
    - fu_efivars_build_boot_order
    - fu_efivars_set_boot_next
    - fu_context_add_esp_volume
    - fu_firmware_get_filename
    - g_assert_no_error
    - fu_efivars_create_boot_entry_for_volume
    - fu_volume_set_partition_kind
    - g_assert_cmpstr
    - g_autoptr
    - fu_efivars_get_boot_current
    linkageType: ''
    returnType: void
    signature: void fu_efivars_boot_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:233,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:234,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:235,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-efivars-test.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 237
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efivars-test.c
    functionUses: 3
    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_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path.c:26,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-path.c:26,1
    - Dst: g_file_delete
      Src: /src/fwupd/libfwupdplugin/fu-path.c:27,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-path.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - path
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: fu_path_delete
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 0
    functionsReached:
    - g_file_new_for_path
    - g_autoptr
    - fwupd_error_convert
    - g_file_delete
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_path_delete(const gchar *path, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path.c:49,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:51,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:52,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-path.c:55,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-path.c:56,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-path.c:61,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:63,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-path.c:64,1
    - Dst: fu_path_rmtree
      Src: /src/fwupd/libfwupdplugin/fu-path.c:65,1
    - Dst: fu_path_delete
      Src: /src/fwupd/libfwupdplugin/fu-path.c:68,1
    - Dst: fu_path_delete
      Src: /src/fwupd/libfwupdplugin/fu-path.c:72,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - directory
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 73
    functionName: fu_path_rmtree
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_debug
    - g_file_test
    - fu_path_delete
    - g_dir_read_name
    - g_dir_open
    - g_autoptr
    - g_build_filename
    - fu_path_rmtree
    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:79,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-path.c:82,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-path.c:84,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-path.c:89,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:90,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-path.c:91,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-path.c:93,1
    - Dst: fu_path_get_file_list_internal
      Src: /src/fwupd/libfwupdplugin/fu-path.c:94,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-path.c:97,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-path.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - files
    - directory
    - error
    argTypes:
    - GPtrArray*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 101
    functionName: fu_path_get_file_list_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 1
    functionsReached:
    - g_steal_pointer
    - g_ptr_array_add
    - fwupd_error_convert
    - g_file_test
    - g_dir_read_name
    - g_dir_open
    - g_autoptr
    - g_build_filename
    - 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:119,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-path.c:119,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:121,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:122,1
    - Dst: fu_path_get_file_list_internal
      Src: /src/fwupd/libfwupdplugin/fu-path.c:124,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-path.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - path
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 127
    functionName: fu_path_get_files
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - g_steal_pointer
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - 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:143,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:144,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-path.c:146,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-path.c:147,1
    - Dst: g_mkdir_with_parents
      Src: /src/fwupd/libfwupdplugin/fu-path.c:148,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-path.c:149,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-path.c:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - dirname
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 158
    functionName: fu_path_mkdir
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_debug
    - g_set_error
    - g_file_test
    - g_mkdir_with_parents
    - fwupd_strerror
    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:176,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:177,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/libfwupdplugin/fu-path.c:179,1
    - Dst: fu_path_mkdir
      Src: /src/fwupd/libfwupdplugin/fu-path.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - filename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 181
    functionName: fu_path_mkdir_parent
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 11
    functionsReached:
    - g_return_val_if_fail
    - g_path_get_dirname
    - fu_path_mkdir
    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:197,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-path.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - basename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 207
    functionName: fu_path_find_program
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 2
    functionsReached:
    - g_find_program_in_path
    - g_set_error
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_path_find_program(const gchar *basename, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-path.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 213
    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:232,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path.c:233,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-path.c:233,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:235,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:236,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:237,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-path.c:239,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-path.c:242,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/libfwupdplugin/fu-path.c:243,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-path.c:245,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-path.c:245,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-path.c:248,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-path.c:254,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-path.c:255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - directory
    - pattern
    - error
    argTypes:
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 256
    functionName: fu_path_glob
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_ptr_array_sort
    - g_dir_open
    - g_set_error_literal
    - g_pattern_match_simple
    - g_ptr_array_add
    - g_steal_pointer
    - g_dir_read_name
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_build_filename
    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:274,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:275,1
    - Dst: realpath
      Src: /src/fwupd/libfwupdplugin/fu-path.c:278,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-path.c:279,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-path.c:283,1
    - Dst: _fullpath
      Src: /src/fwupd/libfwupdplugin/fu-path.c:287,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-path.c:288,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-path.c:292,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-path.c:296,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-path.c:297,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - filename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 305
    functionName: fu_path_make_absolute
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_set_error
    - _fullpath
    - g_file_test
    - fwupd_strerror
    - realpath
    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:322,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path.c:323,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-path.c:325,1
    - Dst: g_file_query_info
      Src: /src/fwupd/libfwupdplugin/fu-path.c:326,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-path.c:332,1
    - Dst: g_file_info_get_attribute_byte_string
      Src: /src/fwupd/libfwupdplugin/fu-path.c:336,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-path.c:338,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-path.c:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - filename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 344
    functionName: fu_path_get_symlink_target
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 0
    functionsReached:
    - g_file_info_get_attribute_byte_string
    - g_strdup
    - g_set_error_literal
    - fwupd_error_convert
    - g_file_query_info
    - g_file_new_for_path
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_path_get_symlink_target(const gchar *filename, GError **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:367,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:368,1
    - Dst: g_str_is_ascii
      Src: /src/fwupd/libfwupdplugin/fu-path.c:371,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-path.c:372,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-path.c:380,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-path.c:381,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-path.c:387,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-path.c:387,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-path.c:388,1
    - Dst: g_path_is_absolute
      Src: /src/fwupd/libfwupdplugin/fu-path.c:396,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-path.c:397,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path.c:405,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-path.c:405,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupdplugin/fu-path.c:406,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-path.c:407,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-path.c:415,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-path.c:416,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - filename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 425
    functionName: fu_path_verify_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - g_str_is_ascii
    - g_set_error_literal
    - g_str_has_suffix
    - g_strstr_len
    - g_str_has_prefix
    - g_path_is_absolute
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_path_verify_safe(const gchar *filename, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path.c:441,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-path.c:441,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-path.c:443,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-path.c:446,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-path.c:447,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-path.c:448,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path.c:451,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-path.c:454,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-path.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 455
    functionName: fu_path_sanitize_basename
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_string_replace
    - g_steal_pointer
    - g_string_free
    - g_string_new
    - g_str_has_prefix
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_path_sanitize_basename(const gchar *str)'
  - 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: 771
    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_access_to_string
    - fu_ifd_region_to_string
    - xb_builder_node_insert_text
    - FU_IFD_IMAGE
    - GET_PRIVATE
    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
    - g_return_if_fail
    - GET_PRIVATE
    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:
    - g_return_val_if_fail
    - FU_IS_IFD_IMAGE
    - 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_write
    - fu_byte_array_append_bytes
    - fu_firmware_get_bytes_with_patches
    - g_set_error
    - g_steal_pointer
    - fu_firmware_get_alignment
    - fu_firmware_get_images
    - g_byte_array_new
    - fu_common_align_up
    - g_autoptr
    - fu_byte_array_set_size
    - g_ptr_array_index
    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
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:130,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIfdImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: fu_ifd_image_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_alignment
    - fu_firmware_set_size_max
    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:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIfdImageClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 139
    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:151,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-image.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: fu_ifd_image_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_ifd_image_new(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:36,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:37,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:38,1
    - Dst: fu_struct_dfuse_element_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:41,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:44,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:45,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:49,1
    - Dst: fu_struct_dfuse_element_get_size
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:51,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:56,1
    - Dst: fu_chunk_set_address
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:57,1
    - Dst: fu_struct_dfuse_element_get_address
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:57,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:58,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:58,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - self
    - stream
    - offset
    - error
    argTypes:
    - FuDfuseFirmware*
    - GInputStream*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 63
    functionName: fu_dfuse_firmware_image_chunk_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_bytes
    - fu_chunk_get_data_sz
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_struct_dfuse_element_get_size
    - fu_struct_dfuse_element_get_address
    - fu_chunk_set_address
    - fu_size_checked_inc
    - g_autoptr
    - fu_chunk_bytes_new
    - fu_struct_dfuse_element_parse_stream
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:72,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:72,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:73,1
    - Dst: fu_struct_dfuse_image_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:76,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:81,1
    - Dst: fu_struct_dfuse_image_get_alt_setting
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:81,1
    - Dst: fu_struct_dfuse_image_get_target_named
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:82,1
    - Dst: fu_struct_dfuse_image_get_target_name
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:83,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:84,1
    - Dst: fu_struct_dfuse_image_get_chunks
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:88,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:90,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:97,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:106,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:112,1
    - Dst: fu_dfuse_firmware_image_chunk_parse
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:113,1
    - Dst: fu_firmware_add_chunk
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:116,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:120,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - self
    - stream
    - offset
    - error
    argTypes:
    - FuDfuseFirmware*
    - GInputStream*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 121
    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_set_error
    - fu_dfuse_firmware_image_chunk_parse
    - g_set_error_literal
    - fu_firmware_add_chunk
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_firmware_set_idx
    - fu_firmware_new
    - fu_struct_dfuse_image_get_target_name
    - fu_struct_dfuse_image_get_alt_setting
    - fu_size_checked_inc
    - g_autoptr
    - fu_struct_dfuse_image_parse_stream
    - fu_struct_dfuse_image_get_chunks
    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:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:135,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:139,1
    - Dst: fu_dfu_firmware_parse_footer
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:142,1
    - Dst: fu_struct_dfuse_hdr_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:146,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:151,1
    - Dst: fu_dfu_firmware_get_footer_len
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:153,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:154,1
    - Dst: fu_dfu_firmware_get_footer_len
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:158,1
    - Dst: fu_struct_dfuse_hdr_get_image_size
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:162,1
    - Dst: fu_dfu_firmware_get_footer_len
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:163,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:164,1
    - Dst: fu_struct_dfuse_hdr_get_image_size
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:170,1
    - Dst: fu_dfu_firmware_get_footer_len
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:171,1
    - Dst: fu_struct_dfuse_hdr_get_targets
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:176,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:177,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:178,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:183,1
    - Dst: fu_dfuse_firmware_image_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:184,1
    - Dst: FU_DFUSE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:184,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:190,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 194
    functionName: fu_dfuse_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
    functionUses: 0
    functionsReached:
    - fu_dfu_firmware_get_footer_len
    - fu_dfuse_firmware_image_parse_stream
    - fu_dfu_firmware_parse_footer
    - fu_input_stream_size
    - g_set_error
    - fu_firmware_add_image
    - g_prefix_error_literal
    - FU_DFUSE_FIRMWARE
    - fu_struct_dfuse_hdr_get_image_size
    - FU_DFU_FIRMWARE
    - fu_size_checked_inc
    - g_autoptr
    - fu_struct_dfuse_hdr_get_targets
    - fu_struct_dfuse_hdr_parse_stream
    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:199,1
    - Dst: fu_struct_dfuse_element_new
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:199,1
    - Dst: fu_struct_dfuse_element_set_address
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:200,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:200,1
    - Dst: fu_struct_dfuse_element_set_size
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:201,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:201,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:202,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:202,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:202,1
    - Dst: fu_struct_dfuse_element_to_bytes
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - chk
    argTypes:
    - FuDfuseFirmware*
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 204
    functionName: fu_dfuse_firmware_chunk_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_dfuse_element_set_address
    - fu_struct_dfuse_element_to_bytes
    - fu_struct_dfuse_element_new
    - fu_chunk_get_data_sz
    - fu_struct_dfuse_element_set_size
    - fu_chunk_get_data
    - g_byte_array_append
    - g_autoptr
    - fu_chunk_get_address
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_dfuse_firmware_chunk_write(FuDfuseFirmware *self, FuChunk *chk)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:210,1
    - Dst: fu_struct_dfuse_image_new
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:210,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:212,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:215,1
    - Dst: fu_firmware_get_chunks
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:216,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:220,1
    - Dst: fu_dfuse_firmware_chunk_write
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:221,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:222,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:223,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:223,1
    - Dst: fu_struct_dfuse_image_set_alt_setting
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:228,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:228,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:229,1
    - Dst: fu_struct_dfuse_image_set_target_named
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:230,1
    - Dst: fu_struct_dfuse_image_set_target_name
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:231,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:232,1
    - Dst: fu_struct_dfuse_image_set_target_size
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:236,1
    - Dst: fu_struct_dfuse_image_set_chunks
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:237,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:241,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:242,1
    - Dst: fu_struct_dfuse_image_to_bytes
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:244,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - self
    - image
    - error
    argTypes:
    - FuDfuseFirmware*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 245
    functionName: fu_dfuse_firmware_write_image
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_byte_array_append_bytes
    - fu_dfuse_firmware_chunk_write
    - fu_struct_dfuse_image_set_alt_setting
    - fu_struct_dfuse_image_set_chunks
    - fu_struct_dfuse_image_set_target_name
    - fu_struct_dfuse_image_to_bytes
    - g_ptr_array_add
    - fu_struct_dfuse_image_set_target_size
    - g_bytes_get_size
    - g_autoptr
    - fu_struct_dfuse_image_set_target_named
    - fu_struct_dfuse_image_new
    - fu_firmware_get_chunks
    - g_ptr_array_new_with_free_func
    - fu_firmware_get_idx
    - g_ptr_array_index
    - fu_size_checked_inc
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_dfuse_firmware_write_image(FuDfuseFirmware *self, FuFirmware *image, GError
      **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFUSE_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:250,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:252,1
    - Dst: fu_struct_dfuse_hdr_new
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:252,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:253,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:254,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:255,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:258,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:259,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:259,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:261,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:262,1
    - Dst: fu_dfuse_firmware_write_image
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:263,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:266,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:266,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:268,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:268,1
    - Dst: fu_struct_dfuse_hdr_set_image_size
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:272,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:274,1
    - Dst: fu_struct_dfuse_hdr_set_targets
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:281,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:285,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:286,1
    - Dst: fu_struct_dfuse_hdr_to_bytes
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:290,1
    - Dst: fu_dfu_firmware_append_footer
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:291,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:291,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 292
    functionName: fu_dfuse_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_dfuse_hdr_new
    - fu_struct_dfuse_hdr_set_targets
    - FU_DFU_FIRMWARE
    - fu_struct_dfuse_hdr_set_image_size
    - g_ptr_array_index
    - fu_byte_array_append_bytes
    - fu_struct_dfuse_hdr_to_bytes
    - fu_firmware_get_images
    - FU_DFUSE_FIRMWARE
    - g_ptr_array_new_with_free_func
    - fu_dfuse_firmware_write_image
    - FU_FIRMWARE
    - fu_dfu_firmware_append_footer
    - g_set_error
    - g_steal_pointer
    - g_ptr_array_add
    - g_bytes_get_size
    - fu_size_checked_inc
    - g_autoptr
    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:297,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:297,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:298,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:298,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:299,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:299,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:300,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuseFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 301
    functionName: fu_dfuse_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
    functionUses: 0
    functionsReached:
    - fu_dfu_firmware_set_version
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - FU_DFU_FIRMWARE
    - fu_firmware_set_size_max
    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:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDfuseFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 310
    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:322,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 323
    functionName: fu_dfuse_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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: 774
    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_hex
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:48,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: fu_dpaux_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append
    - fwupd_codec_string_append_hex
    - FU_DPAUX_DEVICE
    - GET_PRIVATE
    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:55,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:56,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: fu_dpaux_device_invalidate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - FU_DPAUX_DEVICE
    - g_clear_pointer
    - GET_PRIVATE
    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:69,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:73,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:74,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:74,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:77,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:77,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:77,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:78,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:80,1
    - Dst: fu_udev_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:81,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:81,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:88,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:88,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 96
    functionName: fu_dpaux_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_get_logical_id
    - fu_udev_device_get_sysfs_path
    - g_path_get_basename
    - fu_device_get_physical_id
    - fu_udev_device_set_physical_id
    - fu_device_set_name
    - fu_udev_device_read_sysfs
    - FU_UDEV_DEVICE
    - FU_DEVICE_CLASS
    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:101,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:102,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:103,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:105,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:108,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:109,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:109,1
    - Dst: fu_context_has_hwid_guid
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:110,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:111,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:116,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:120,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:126,1
    - Dst: fu_struct_dpaux_dpcd_parse
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:129,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:132,1
    - Dst: fu_struct_dpaux_dpcd_get_ieee_oui
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:133,1
    - Dst: fu_struct_dpaux_dpcd_get_hw_rev
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:134,1
    - Dst: fu_struct_dpaux_dpcd_get_dev_id
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:135,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:136,1
    - Dst: fu_struct_dpaux_dpcd_get_fw_ver
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:136,1
    - Dst: fu_device_add_instance_u32
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:140,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:142,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:144,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:145,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:151,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:158,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:165,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 176
    functionName: fu_dpaux_device_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_strup
    - fu_device_get_context
    - fu_struct_dpaux_dpcd_get_fw_ver
    - fu_device_get_name
    - g_prefix_error_literal
    - FU_DPAUX_DEVICE
    - fu_device_build_instance_id_full
    - g_str_has_prefix
    - fu_struct_dpaux_dpcd_get_hw_rev
    - GET_PRIVATE
    - fu_device_set_version_raw
    - fu_device_add_instance_u32
    - g_clear_pointer
    - fu_device_add_instance_u8
    - g_set_error
    - fu_dpaux_device_read
    - fu_struct_dpaux_dpcd_get_ieee_oui
    - fu_context_has_hwid_guid
    - fu_struct_dpaux_dpcd_parse
    - fu_struct_dpaux_dpcd_get_dev_id
    - g_autoptr
    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:191,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:192,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDpauxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: fu_dpaux_device_get_dpcd_offset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DPAUX_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: goffset
    signature: goffset fu_dpaux_device_get_dpcd_offset(FuDpauxDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:209,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:210,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:210,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - self
    - dpcd_offset
    argTypes:
    - FuDpauxDevice*
    - goffset
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 217
    functionName: fu_dpaux_device_set_dpcd_offset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FU_IS_DPAUX_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_dpaux_device_set_dpcd_offset(FuDpauxDevice *self, goffset dpcd_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:232,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:233,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDpauxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: fu_dpaux_device_get_dpcd_ieee_oui
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DPAUX_DEVICE
    - GET_PRIVATE
    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:249,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:250,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:250,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:254,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - dpcd_ieee_oui
    argTypes:
    - FuDpauxDevice*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 255
    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
    - FU_IS_DPAUX_DEVICE
    - G_OBJECT
    - GET_PRIVATE
    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:270,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:271,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDpauxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: fu_dpaux_device_get_dpcd_hw_rev
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DPAUX_DEVICE
    - GET_PRIVATE
    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:287,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:288,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - dpcd_hw_rev
    argTypes:
    - FuDpauxDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 290
    functionName: fu_dpaux_device_set_dpcd_hw_rev
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FU_IS_DPAUX_DEVICE
    - GET_PRIVATE
    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:305,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:306,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDpauxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: fu_dpaux_device_get_dpcd_dev_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DPAUX_DEVICE
    - GET_PRIVATE
    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:322,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:323,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:323,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:324,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:326,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - dpcd_dev_id
    argTypes:
    - FuDpauxDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 328
    functionName: fu_dpaux_device_set_dpcd_dev_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FU_IS_DPAUX_DEVICE
    - g_free
    - GET_PRIVATE
    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:351,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:353,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:353,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:354,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:355,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:358,1
    - Dst: fu_udev_device_seek
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:359,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:359,1
    - Dst: fu_udev_device_write
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:361,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:361,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: 367
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 367
    functionName: fu_dpaux_device_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_udev_device_seek
    - fu_udev_device_write
    - FU_IS_DPAUX_DEVICE
    - g_strdup_printf
    - FU_UDEV_DEVICE
    - fu_dump_raw
    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:390,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:392,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:392,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:393,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:394,1
    - Dst: fu_udev_device_seek
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:397,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:397,1
    - Dst: fu_udev_device_read
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:399,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:399,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:407,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: 411
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 411
    functionName: fu_dpaux_device_read
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_udev_device_seek
    - FU_IS_DPAUX_DEVICE
    - g_strdup_printf
    - FU_UDEV_DEVICE
    - fu_udev_device_read
    - fu_dump_raw
    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:416,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:417,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:418,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:418,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:420,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:420,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:421,1
    - Dst: FU_IS_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:421,1
    - Dst: fu_dpaux_device_set_dpcd_dev_id
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:427,1
    - Dst: fu_dpaux_device_get_dpcd_dev_id
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:428,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 429
    functionName: fu_dpaux_device_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FU_IS_DPAUX_DEVICE
    - fu_dpaux_device_set_dpcd_dev_id
    - fu_dpaux_device_get_dpcd_dev_id
    - FU_DPAUX_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_dpaux_device_incorporate(FuDevice *device, FuDevice *donor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:434,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:435,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:438,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - json_obj
    - flags
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 431
    functionDepth: 3
    functionLinenumber: 431
    functionLinenumberEnd: 443
    functionName: fu_dpaux_device_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_integer
    - FU_DPAUX_DEVICE
    - FU_DEVICE_CLASS
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_dpaux_device_add_json(FuDevice *device, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:448,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:452,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:456,1
    - Dst: fu_dpaux_device_set_dpcd_offset
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - device
    - json_obj
    - error
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 463
    functionName: fu_dpaux_device_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_get_integer_with_default
    - FU_DPAUX_DEVICE
    - FU_DEVICE_CLASS
    - fu_dpaux_device_set_dpcd_offset
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dpaux_device_from_json(FuDevice *device, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint24
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:468,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 469
    functionName: fu_dpaux_device_convert_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint24
    - fu_device_get_version_format
    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:474,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:475,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:478,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:481,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: 484
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 484
    functionName: fu_dpaux_device_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_DPAUX_DEVICE
    - g_value_set_uint
    - GET_PRIVATE
    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:489,1
    - Dst: fu_dpaux_device_set_dpcd_ieee_oui
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:492,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:492,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:495,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: 498
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 498
    functionName: fu_dpaux_device_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - fu_dpaux_device_set_dpcd_ieee_oui
    - FU_DPAUX_DEVICE
    - 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: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:503,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:507,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:507,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:508,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:508,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:509,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:509,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:510,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:510,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:511,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:511,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:512,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDpauxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 513
    functionName: fu_dpaux_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_udev_device_add_open_flag
    - GET_PRIVATE
    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:518,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:519,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:520,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 522
    functionName: fu_dpaux_device_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - FU_DPAUX_DEVICE
    - g_free
    - G_OBJECT_CLASS
    - GET_PRIVATE
    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:527,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:528,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:550,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-dpaux-device.c:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDpauxDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 558
    functionName: fu_dpaux_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dpaux-device.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_uint
    - FU_DEVICE_CLASS
    - G_OBJECT_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: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 790
    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:42,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:43,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: fu_efi_device_path_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - fu_xmlb_builder_insert_kx
    - FU_EFI_DEVICE_PATH
    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:50,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:51,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: fu_efi_device_path_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - fwupd_json_object_add_integer
    - FU_EFI_DEVICE_PATH
    linkageType: ''
    returnType: void
    signature: void fu_efi_device_path_add_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:68,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:69,1
    - Dst: FU_IS_EFI_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiDevicePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: fu_efi_device_path_get_subtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EFI_DEVICE_PATH
    - GET_PRIVATE
    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:85,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:86,1
    - Dst: FU_IS_EFI_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - subtype
    argTypes:
    - FuEfiDevicePath*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: fu_efi_device_path_set_subtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FU_IS_EFI_DEVICE_PATH
    - GET_PRIVATE
    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:96,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:97,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:100,1
    - Dst: fu_struct_efi_device_path_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:103,1
    - Dst: fu_struct_efi_device_path_get_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:106,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:107,1
    - Dst: fu_struct_efi_device_path_get_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:111,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:114,1
    - Dst: fu_struct_efi_device_path_get_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:114,1
    - Dst: fu_struct_efi_device_path_get_subtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:115,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:118,1
    - Dst: fu_struct_efi_device_path_get_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:120,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:123,1
    - Dst: fu_struct_efi_device_path_get_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:124,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:128,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:129,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:136,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:138,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 142
    functionName: fu_efi_device_path_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_bytes
    - g_debug
    - g_set_error
    - fu_input_stream_size
    - fu_struct_efi_device_path_get_subtype
    - fu_firmware_set_idx
    - fu_firmware_set_bytes
    - fu_struct_efi_device_path_parse_stream
    - fu_struct_efi_device_path_get_type
    - FU_EFI_DEVICE_PATH
    - g_autoptr
    - fu_struct_efi_device_path_get_length
    - fu_firmware_set_size
    - GET_PRIVATE
    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:147,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:148,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:149,1
    - Dst: fu_struct_efi_device_path_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:150,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:153,1
    - Dst: fu_struct_efi_device_path_set_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:156,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:156,1
    - Dst: fu_struct_efi_device_path_set_subtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:157,1
    - Dst: fu_struct_efi_device_path_set_length
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:158,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:158,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:159,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 163
    functionName: fu_efi_device_path_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_device_path_new
    - fu_byte_array_append_bytes
    - fu_struct_efi_device_path_set_type
    - fu_firmware_get_bytes
    - fu_struct_efi_device_path_set_length
    - fu_struct_efi_device_path_set_subtype
    - g_steal_pointer
    - g_bytes_get_size
    - FU_EFI_DEVICE_PATH
    - g_autoptr
    - fu_firmware_get_idx
    - GET_PRIVATE
    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:168,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:169,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 179
    functionName: fu_efi_device_path_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - xb_node_query_text_as_uint
    - FU_EFI_DEVICE_PATH
    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: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    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:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:190,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiDevicePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: fu_efi_device_path_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiDevicePathClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 201
    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: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_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: 2
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - alg
    argTypes:
    - FuTpmAlg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: fu_tpm_eventlog_item_alg_to_idx
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c
    functionUses: 0
    functionsReached:
    - G_N_ELEMENTS
    linkageType: ''
    returnType: guint
    signature: guint fu_tpm_eventlog_item_alg_to_idx(FuTpmAlg alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_tpm_eventlog_item_alg_to_idx
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:53,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:54,1
    - Dst: FU_IS_TPM_EVENTLOG_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:54,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:55,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:56,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:59,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - alg
    - checksum
    argTypes:
    - FuTpmEventlogItem*
    - FuTpmAlg
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: fu_tpm_eventlog_item_add_checksum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c
    functionUses: 1
    functionsReached:
    - fu_tpm_eventlog_item_alg_to_idx
    - g_bytes_ref
    - g_return_if_fail
    - g_bytes_unref
    - FU_IS_TPM_EVENTLOG_ITEM
    linkageType: ''
    returnType: void
    signature: void fu_tpm_eventlog_item_add_checksum(FuTpmEventlogItem *self, FuTpmAlg
      alg, GBytes *checksum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_tpm_eventlog_item_alg_to_idx
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:78,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:79,1
    - Dst: FU_IS_TPM_EVENTLOG_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:79,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:80,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:81,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:84,1
    - Dst: fu_tpm_alg_to_string
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:88,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - alg
    - error
    argTypes:
    - FuTpmEventlogItem*
    - FuTpmAlg
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 92
    functionName: fu_tpm_eventlog_item_get_checksum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_tpm_eventlog_item_alg_to_idx
    - g_bytes_ref
    - g_set_error
    - fu_tpm_alg_to_string
    - FU_IS_TPM_EVENTLOG_ITEM
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_tpm_eventlog_item_get_checksum(FuTpmEventlogItem *self, FuTpmAlg alg, GError
      **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:107,1
    - Dst: FU_IS_TPM_EVENTLOG_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTpmEventlogItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: fu_tpm_eventlog_item_get_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_TPM_EVENTLOG_ITEM
    linkageType: ''
    returnType: FuTpmEventlogItemKind
    signature: FuTpmEventlogItemKind fu_tpm_eventlog_item_get_kind(FuTpmEventlogItem
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:123,1
    - Dst: FU_IS_TPM_EVENTLOG_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - kind
    argTypes:
    - FuTpmEventlogItem*
    - FuTpmEventlogItemKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: fu_tpm_eventlog_item_set_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c
    functionUses: 1
    functionsReached:
    - FU_IS_TPM_EVENTLOG_ITEM
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_tpm_eventlog_item_set_kind(FuTpmEventlogItem *self, FuTpmEventlogItemKind
      kind)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:140,1
    - Dst: FU_IS_TPM_EVENTLOG_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTpmEventlogItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: fu_tpm_eventlog_item_get_pcr
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_TPM_EVENTLOG_ITEM
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_tpm_eventlog_item_get_pcr(FuTpmEventlogItem *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:156,1
    - Dst: FU_IS_TPM_EVENTLOG_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - pcr
    argTypes:
    - FuTpmEventlogItem*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: fu_tpm_eventlog_item_set_pcr
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c
    functionUses: 1
    functionsReached:
    - FU_IS_TPM_EVENTLOG_ITEM
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_tpm_eventlog_item_set_pcr(FuTpmEventlogItem *self, guint8 pcr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_tpm_eventlog_item_alg_to_idx
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:164,1
    - Dst: fu_tpm_eventlog_item_alg_to_idx
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:166,1
    - Dst: fu_tpm_eventlog_item_alg_to_idx
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - csum_kind
    argTypes:
    - GChecksumType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 170
    functionName: fu_tpm_eventlog_item_csum_kind_to_idx
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c
    functionUses: 0
    functionsReached:
    - fu_tpm_eventlog_item_alg_to_idx
    linkageType: ''
    returnType: guint
    signature: guint fu_tpm_eventlog_item_csum_kind_to_idx(GChecksumType csum_kind)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_EVENTLOG_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:177,1
    - Dst: fu_tpm_eventlog_item_csum_kind_to_idx
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:178,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:182,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:186,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - firmware
    - csum_kind
    - error
    argTypes:
    - FuFirmware*
    - GChecksumType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 190
    functionName: fu_tpm_eventlog_item_get_checksum_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c
    functionUses: 0
    functionsReached:
    - FU_TPM_EVENTLOG_ITEM
    - g_set_error_literal
    - fu_tpm_eventlog_item_csum_kind_to_idx
    - fu_bytes_to_string
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_tpm_eventlog_item_get_checksum_string(FuFirmware *firmware,\n\t\t\t\t\t
      GChecksumType csum_kind,\n\t\t\t\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_EVENTLOG_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:195,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:200,1
    - Dst: fu_tpm_eventlog_item_set_kind
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:202,1
    - Dst: fu_tpm_eventlog_item_kind_from_string
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:202,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:203,1
    - Dst: fu_tpm_eventlog_item_set_pcr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:205,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:208,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:209,1
    - Dst: fu_tpm_alg_to_string
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:209,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:211,1
    - Dst: fu_bytes_from_string
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:211,1
    - Dst: fu_tpm_eventlog_item_add_checksum
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 220
    functionName: fu_tpm_eventlog_item_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - fu_tpm_eventlog_item_kind_from_string
    - fu_bytes_from_string
    - xb_node_query_text_as_uint
    - fu_tpm_alg_to_string
    - fu_tpm_eventlog_item_set_kind
    - fu_tpm_eventlog_item_add_checksum
    - fu_tpm_eventlog_item_set_pcr
    - G_N_ELEMENTS
    - FU_TPM_EVENTLOG_ITEM
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_tpm_eventlog_item_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_EVENTLOG_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:225,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:226,1
    - Dst: fu_tpm_eventlog_item_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:226,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:227,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:228,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:230,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:231,1
    - Dst: fu_tpm_alg_to_string
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 234
    functionName: fu_tpm_eventlog_item_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - fu_tpm_alg_to_string
    - fu_bytes_to_string
    - fu_tpm_eventlog_item_kind_to_string
    - G_N_ELEMENTS
    - fu_xmlb_builder_insert_kv
    - FU_TPM_EVENTLOG_ITEM
    linkageType: ''
    returnType: void
    signature: void fu_tpm_eventlog_item_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_TPM_EVENTLOG_ITEM
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:239,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:241,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:243,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 247
    functionName: fu_tpm_eventlog_item_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c
    functionUses: 0
    functionsReached:
    - FU_TPM_EVENTLOG_ITEM
    - g_bytes_unref
    - G_N_ELEMENTS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_tpm_eventlog_item_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:252,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTpmEventlogItemClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 258
    functionName: fu_tpm_eventlog_item_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_tpm_eventlog_item_class_init(FuTpmEventlogItemClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTpmEventlogItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: fu_tpm_eventlog_item_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_tpm_eventlog_item_init(FuTpmEventlogItem *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.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_tpm_eventlog_item_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuTpmEventlogItem
    signature: 'FuTpmEventlogItem *

      fu_tpm_eventlog_item_new(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GUINT16_TO_BE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:33,1
    - Dst: GUINT16_TO_LE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:36,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - buf
    - val_native
    - endian
    argTypes:
    - guint8*
    - guint16
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 43
    functionName: fu_memwrite_uint16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 5
    functionsReached:
    - GUINT16_TO_LE
    - memcpy
    - 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:61,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:62,1
    - Dst: GUINT32_TO_LE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:65,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:66,1
    - Dst: g_assert_not_reached
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - buf
    - val_native
    - endian
    argTypes:
    - guint8*
    - guint32
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 71
    functionName: fu_memwrite_uint24
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 2
    functionsReached:
    - GUINT32_TO_LE
    - g_assert_not_reached
    - memcpy
    - GUINT32_TO_BE
    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:89,1
    - Dst: GUINT32_TO_LE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:92,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - buf
    - val_native
    - endian
    argTypes:
    - guint8*
    - guint32
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 99
    functionName: fu_memwrite_uint32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 2
    functionsReached:
    - GUINT32_TO_LE
    - memcpy
    - 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:117,1
    - Dst: GUINT64_TO_LE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:120,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - buf
    - val_native
    - endian
    argTypes:
    - guint8*
    - guint64
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 127
    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:144,1
    - Dst: GUINT16_FROM_BE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:147,1
    - Dst: GUINT16_FROM_LE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - endian
    argTypes:
    - guint8*
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 157
    functionName: fu_memread_uint16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 4
    functionsReached:
    - GUINT16_FROM_BE
    - memcpy
    - 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:177,1
    - Dst: GUINT32_FROM_BE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:178,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:181,1
    - Dst: GUINT32_FROM_LE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:182,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - buf
    - endian
    argTypes:
    - guint8*
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 189
    functionName: fu_memread_uint24
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 1
    functionsReached:
    - GUINT32_FROM_LE
    - memcpy
    - 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:206,1
    - Dst: GUINT32_FROM_BE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:209,1
    - Dst: GUINT32_FROM_LE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - endian
    argTypes:
    - guint8*
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 219
    functionName: fu_memread_uint32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 2
    functionsReached:
    - GUINT32_FROM_LE
    - memcpy
    - 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:236,1
    - Dst: GUINT64_FROM_BE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:239,1
    - Dst: GUINT64_FROM_LE
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - endian
    argTypes:
    - guint8*
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 249
    functionName: fu_memread_uint64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 2
    functionsReached:
    - GUINT64_FROM_BE
    - GUINT64_FROM_LE
    - memcpy
    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:278,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:279,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:280,1
    - Dst: fu_memchk_read
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:282,1
    - Dst: fu_memchk_read
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:284,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:290,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: 303
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 303
    functionName: fu_memcmp_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_memchk_read
    - g_set_error
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:326,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:330,1
    - Dst: fu_size_checked_add
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:338,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:339,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:348,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - bufsz
    - offset
    - n
    - error
    argTypes:
    - gsize
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 358
    functionName: fu_memchk_read
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - fu_size_checked_add
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_memchk_read(gsize bufsz, gsize offset, gsize n, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:381,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:385,1
    - Dst: fu_size_checked_add
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:393,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:394,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - bufsz
    - offset
    - n
    - error
    argTypes:
    - gsize
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 413
    functionName: fu_memchk_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_size_checked_add
    - g_set_error
    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:451,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:452,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:453,1
    - Dst: fu_memchk_read
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:455,1
    - Dst: fu_memchk_write
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:457,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:459,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: 461
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 461
    functionName: fu_memcpy_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - fu_memchk_write
    - fu_memchk_read
    - memcpy
    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:489,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:490,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:491,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:502,1
    - Dst: memmem
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:513,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:521,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:530,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: 537
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 537
    functionName: fu_memmem_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - memcmp
    - memmem
    - g_set_error
    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:562,1
    - Dst: g_memdup2
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - src
    - n
    - error
    argTypes:
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 572
    functionName: fu_memdup_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 0
    functionsReached:
    - g_memdup2
    - g_set_error
    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:597,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:598,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:600,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: 612
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 612
    functionName: fu_memread_uint8_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 3
    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:643,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:644,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:646,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:656,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: 658
      start: 633
    functionDepth: 3
    functionLinenumber: 633
    functionLinenumberEnd: 658
    functionName: fu_memread_uint16_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fu_memread_uint16
    - fu_memcpy_safe
    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:689,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:690,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:692,1
    - Dst: fu_memread_uint24
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:702,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: 704
      start: 679
    functionDepth: 3
    functionLinenumber: 679
    functionLinenumberEnd: 704
    functionName: fu_memread_uint24_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_memread_uint24
    - fu_memcpy_safe
    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:735,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:736,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:738,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:748,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: 750
      start: 725
    functionDepth: 3
    functionLinenumber: 725
    functionLinenumberEnd: 750
    functionName: fu_memread_uint32_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fu_memread_uint32
    - fu_memcpy_safe
    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:781,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:782,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:784,1
    - Dst: fu_memread_uint64
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:794,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: 796
      start: 771
    functionDepth: 3
    functionLinenumber: 771
    functionLinenumberEnd: 796
    functionName: fu_memread_uint64_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_memread_uint64
    - fu_memcpy_safe
    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:819,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:820,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:822,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: 830
      start: 816
    functionDepth: 3
    functionLinenumber: 816
    functionLinenumberEnd: 830
    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:861,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:862,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:864,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:865,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: 873
      start: 851
    functionDepth: 3
    functionLinenumber: 851
    functionLinenumberEnd: 873
    functionName: fu_memwrite_uint16_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_memwrite_uint16
    - fu_memcpy_safe
    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:904,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:905,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:907,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:908,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: 916
      start: 894
    functionDepth: 3
    functionLinenumber: 894
    functionLinenumberEnd: 916
    functionName: fu_memwrite_uint32_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_memcpy_safe
    - fu_memwrite_uint32
    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:947,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:948,1
    - Dst: fu_memwrite_uint64
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:950,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:951,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: 959
      start: 937
    functionDepth: 3
    functionLinenumber: 937
    functionLinenumberEnd: 959
    functionName: fu_memwrite_uint64_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_memwrite_uint64
    - 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:980,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:981,1
    - Dst: fu_memchk_read
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:983,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:986,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:988,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:994,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: 995
      start: 975
    functionDepth: 2
    functionLinenumber: 975
    functionLinenumberEnd: 995
    functionName: fu_memstrsafe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - fu_strsafe
    - g_set_error_literal
    - g_steal_pointer
    - fu_memchk_read
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_memstrsafe(const guint8 *buf, gsize bufsz, gsize offset, gsize maxsz, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:1013,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:1013,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:1017,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:1028,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:1029,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-mem.c:1031,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - buf
    - bufsz
    - offset
    - error
    argTypes:
    - guint8*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1036
    functionName: fu_memread_string_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mem.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - g_steal_pointer
    - g_string_new
    - g_string_append_c
    - g_autoptr
    linkageType: ''
    returnType: GString
    signature: 'GString *

      fu_memread_string_safe(const guint8 *buf, gsize bufsz, gsize offset, 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
    - FU_PARTIAL_INPUT_STREAM
    - g_seekable_tell
    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_return_val_if_fail
    - g_seekable_seek
    - g_seekable_tell
    - FU_IS_PARTIAL_INPUT_STREAM
    - FU_PARTIAL_INPUT_STREAM
    - G_SEEKABLE
    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_literal
      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: fu_size_checked_add
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:188,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: 20
    functionsReached:
    - g_return_val_if_fail
    - fu_size_checked_add
    - g_set_error
    - fu_input_stream_size
    - g_steal_pointer
    - g_prefix_error_literal
    - g_object_ref
    - g_object_new
    - G_IS_INPUT_STREAM
    - G_INPUT_STREAM
    - g_autoptr
    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:
    - g_return_val_if_fail
    - FU_IS_PARTIAL_INPUT_STREAM
    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:
    - g_return_val_if_fail
    - FU_IS_PARTIAL_INPUT_STREAM
    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_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:251,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:257,1
    - Dst: g_seekable_tell
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:257,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:257,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:258,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: 259
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 259
    functionName: fu_partial_input_stream_read
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_seekable_tell
    - FU_IS_PARTIAL_INPUT_STREAM
    - g_set_error_literal
    - FU_PARTIAL_INPUT_STREAM
    - G_SEEKABLE
    - g_input_stream_read
    - MIN
    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:264,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:266,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: fu_partial_input_stream_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - FU_PARTIAL_INPUT_STREAM
    - G_OBJECT_CLASS
    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:273,1
    - Dst: G_INPUT_STREAM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-partial-input-stream.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPartialInputStreamClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 277
    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: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:36,1
    - Dst: fu_struct_ms_ds20_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:38,1
    - Dst: fu_struct_ms_ds20_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:41,1
    - Dst: fu_struct_ms_ds20_get_type
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:44,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:45,1
    - Dst: fu_usb_device_ms_ds20_desc_to_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:47,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:49,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - self
    - stream
    - device
    - error
    argTypes:
    - FuUsbDeviceDs20*
    - GInputStream*
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 55
    functionName: fu_usb_device_ms_ds20_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c
    functionUses: 0
    functionsReached:
    - fu_struct_ms_ds20_get_type
    - g_debug
    - fu_input_stream_size
    - fu_usb_device_ms_ds20_desc_to_string
    - fu_struct_ms_ds20_parse_stream
    - fu_struct_ms_ds20_get_size
    - fu_size_checked_inc
    - g_autoptr
    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:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbDeviceMsDs20Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    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:67,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:67,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:68,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDeviceMsDs20*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: fu_usb_device_ms_ds20_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ms-ds20.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_raw
    - FU_FIRMWARE
    - fu_firmware_set_id
    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:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    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_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:23,1
    - Dst: fu_test_loop_quit
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: fu_plugin_device_added_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin-test.c
    functionUses: 0
    functionsReached:
    - fu_test_loop_quit
    - g_object_ref
    linkageType: ''
    returnType: void
    signature: void fu_plugin_device_added_cb(FuPlugin *plugin, FuDevice *device,
      gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:40,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:41,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:41,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:42,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:43,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:47,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:52,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:53,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:54,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:55,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:56,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:57,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:58,1
    - Dst: fu_plugin_set_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:60,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:62,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:63,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:64,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:65,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:66,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:67,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:68,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:69,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:70,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:73,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:74,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:75,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:76,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:77,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:78,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:79,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:80,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:83,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:84,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:85,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:88,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:89,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:90,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:91,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:91,1
    - Dst: g_stat
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:94,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:95,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:96,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:99,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:100,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:101,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:102,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:103,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:104,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 105
    functionName: fu_plugin_config_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - g_assert_nonnull
    - g_stat
    - fu_progress_new
    - g_autoptr
    - fu_context_load_hwinfo
    - fu_plugin_set_config_value
    - g_assert_cmpint
    - fu_temporary_directory_new
    - fu_plugin_set_name
    - fu_plugin_new
    - fu_plugin_get_config_value
    - fu_plugin_set_config_default
    - fu_context_set_path
    - fu_context_build_filename
    - fu_plugin_get_config_value_boolean
    - g_assert_no_error
    - g_file_test
    - g_test_skip
    - g_assert_true
    - g_assert_cmpstr
    - fu_temporary_directory_build
    - g_build_filename
    - g_file_set_contents
    - fu_path_mkdir_parent
    linkageType: ''
    returnType: void
    signature: void fu_plugin_config_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:110,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:110,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:111,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:112,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:112,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:115,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:116,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:117,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:119,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:120,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:121,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:122,1
    - Dst: fu_plugin_remove_device
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:123,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:124,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:127,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:128,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:129,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:130,1
    - Dst: fu_device_remove_child
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:133,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 135
    functionName: fu_plugin_devices_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_plugin_remove_device
    - fu_plugin_get_devices
    - g_assert_nonnull
    - g_assert_cmpint
    - fu_device_set_id
    - fu_device_set_name
    - fu_device_remove_child
    - fu_plugin_new
    - g_autoptr
    - fu_plugin_add_device
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_plugin_devices_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:141,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:142,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:144,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:145,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:145,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:147,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:149,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:149,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:151,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:155,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:156,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:157,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:158,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:159,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:159,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:162,1
    - Dst: fu_plugin_remove_device
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:165,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:166,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:167,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:167,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 171
    functionName: fu_plugin_delay_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin-test.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - g_signal_connect
    - fu_plugin_remove_device
    - g_assert_nonnull
    - fu_device_set_id
    - fu_device_get_id
    - fu_plugin_new
    - G_CALLBACK
    - g_clear_object
    - g_assert_cmpstr
    - g_autoptr
    - fu_plugin_add_device
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_plugin_delay_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:178,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:178,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:179,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:179,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:181,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:182,1
    - Dst: fu_plugin_get_rules
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:183,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:184,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:185,1
    - Dst: fu_plugin_get_rules
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:186,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:187,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:189,1
    - Dst: fu_plugin_get_report_metadata
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:190,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:191,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:192,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 193
    functionName: fu_plugin_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_plugin_add_rule
    - fu_plugin_get_rules
    - fu_plugin_get_report_metadata
    - g_assert_nonnull
    - g_hash_table_size
    - g_assert_cmpint
    - fu_plugin_new
    - fu_plugin_add_report_metadata
    - g_autoptr
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fu_plugin_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:199,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:199,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:200,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:200,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:201,1
    - Dst: fu_plugin_runner_modify_config
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:204,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:205,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:206,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 208
    functionName: fu_plugin_vfuncs_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - g_assert_error
    - fu_plugin_runner_modify_config
    - g_clear_error
    - g_assert_false
    - fu_plugin_new
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_plugin_vfuncs_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:213,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:213,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:214,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:214,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:217,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:218,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:219,1
    - Dst: fu_plugin_get_device_gtype_default
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:219,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:222,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:223,1
    - Dst: fu_plugin_get_device_gtype_default
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:223,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:226,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:227,1
    - Dst: fu_plugin_get_device_gtype_default
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 228
    functionName: fu_plugin_device_gtype_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - g_assert_cmpint
    - fu_plugin_new
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_gtype
    - g_autoptr
    - fu_plugin_get_device_gtype_default
    linkageType: ''
    returnType: void
    signature: void fu_plugin_device_gtype_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:234,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:234,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:235,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:235,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:236,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:237,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:237,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:238,1
    - Dst: fu_plugin_runner_backend_device_changed
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:240,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:241,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:242,1
    - Dst: fu_device_set_specialized_gtype
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:244,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:245,1
    - Dst: fu_plugin_runner_backend_device_added
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:246,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:247,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 230
    functionDepth: 6
    functionLinenumber: 230
    functionLinenumberEnd: 249
    functionName: fu_plugin_backend_device_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_runner_backend_device_added
    - fu_context_new
    - fu_device_add_private_flag
    - g_assert_no_error
    - fu_device_set_specialized_gtype
    - fu_progress_new
    - fu_plugin_new
    - fu_plugin_runner_backend_device_changed
    - g_assert_true
    - g_autoptr
    - fu_device_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-plugin-test.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: fu_plugin_backend_proxy_device_added_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin-test.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    linkageType: ''
    returnType: void
    signature: void fu_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-plugin-test.c:263,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:263,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:264,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:264,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:265,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:266,1
    - Dst: fu_plugin_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:266,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:267,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:267,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:268,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:270,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:271,1
    - Dst: fu_plugin_runner_backend_device_changed
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:272,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:273,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:274,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:277,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:279,1
    - Dst: fu_device_set_specialized_gtype
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:282,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:283,1
    - Dst: fu_plugin_runner_backend_device_added
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:284,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:285,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:286,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:289,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:290,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:290,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:293,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:294,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:295,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:296,1
    - Dst: FU_IS_SELF_TEST_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 258
    functionDepth: 6
    functionLinenumber: 258
    functionLinenumberEnd: 297
    functionName: fu_plugin_backend_proxy_device_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_plugin_runner_backend_device_added
    - fu_context_new
    - g_assert_nonnull
    - fu_progress_new
    - fu_device_new
    - g_signal_connect
    - FU_IS_SELF_TEST_DEVICE
    - fu_plugin_runner_backend_device_changed
    - fu_device_get_proxy
    - fu_device_set_id
    - fu_device_set_specialized_gtype
    - fu_plugin_new
    - FU_IS_DEVICE
    - g_assert_no_error
    - fu_device_set_proxy_gtype
    - G_CALLBACK
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_plugin_backend_proxy_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:306,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:307,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:308,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:308,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:309,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:309,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:310,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:313,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:314,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:316,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:317,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:318,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:321,1
    - Dst: fu_device_set_context
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:322,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:323,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:324,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:328,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:329,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:329,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:332,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:332,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:335,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:335,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:338,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:338,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:341,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:341,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:346,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:347,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:348,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:349,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:349,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:350,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:350,1
    - Dst: fu_device_get_child_by_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:353,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:354,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:355,1
    - Dst: fu_device_get_child_by_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:356,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:357,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 359
    functionName: fu_plugin_quirks_device_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_has_instance_id
    - fu_context_new
    - fu_device_get_children
    - g_assert_nonnull
    - fu_device_set_context
    - fu_device_get_name
    - fu_context_load_quirks
    - g_ptr_array_index
    - fu_device_new
    - fu_device_add_instance_id
    - fu_device_set_physical_id
    - g_assert_cmpint
    - fu_device_has_flag
    - fu_device_add_instance_id_full
    - g_assert_null
    - fu_device_get_child_by_logical_id
    - g_assert_false
    - fu_context_set_path
    - g_assert_error
    - g_assert_no_error
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_plugin_quirks_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:364,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:365,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:366,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:367,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:368,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:369,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:370,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:371,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:372,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:373,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:374,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-plugin-test.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 376
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - 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:
    - g_return_if_fail
    - FU_IS_IOCTL
    - g_string_append_printf
    - g_string_truncate
    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_return_val_if_fail
    - g_steal_pointer
    - g_object_ref
    - g_object_new
    - FU_IS_UDEV_DEVICE
    - g_autoptr
    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_c
    - g_str_has_suffix
    - g_string_append_printf
    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:
    - g_strdup_printf
    - fu_ioctl_append_key
    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:
    - g_strdup_printf
    - fu_ioctl_append_key
    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: fu_ioctl_append_key
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - event_id
    - key
    - value
    argTypes:
    - GString*
    - gchar*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: fu_ioctl_append_key_as_u32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_ioctl_append_key
    linkageType: ''
    returnType: void
    signature: void fu_ioctl_append_key_as_u32(GString *event_id, const gchar *key,
      guint32 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:107,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:108,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:109,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:110,1
    - Dst: fu_ioctl_append_key
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:112,1
    - Dst: fu_ioctl_append_key
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:113,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: 114
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 114
    functionName: fu_ioctl_append_key_from_buf
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_ioctl_append_key
    - g_base64_encode
    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:129,1
    - Dst: FU_IS_IOCTL
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:129,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:130,1
    - Dst: fu_ioctl_append_key_as_u8
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuIoctl*
    - gchar*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: fu_ioctl_add_key_as_u8
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_append_key_as_u8
    - g_return_if_fail
    - FU_IS_IOCTL
    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:147,1
    - Dst: FU_IS_IOCTL
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:147,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:148,1
    - Dst: fu_ioctl_append_key_as_u16
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuIoctl*
    - gchar*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: fu_ioctl_add_key_as_u16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FU_IS_IOCTL
    - fu_ioctl_append_key_as_u16
    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:160,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:162,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:163,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:168,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: 170
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 170
    functionName: fu_ioctl_add_buffer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_append_key_from_buf
    - g_ptr_array_add
    - g_strdup
    - g_new0
    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:192,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: 193
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 193
    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:215,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: 216
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 216
    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: 22
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:250,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:253,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:253,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:254,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:254,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:254,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:256,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:257,1
    - Dst: fu_ioctl_append_key_as_u16
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:258,1
    - Dst: fu_ioctl_append_key_as_u32
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:260,1
    - Dst: GPOINTER_TO_UINT
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:260,1
    - Dst: fu_ioctl_append_key_from_buf
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:262,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:268,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:268,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:269,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:269,1
    - Dst: fu_device_event_copy_data
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:274,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:284,1
    - Dst: fu_ioctl_fixup_build_key
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:285,1
    - Dst: fu_device_event_copy_data
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:288,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:297,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:305,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:305,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:305,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:307,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:307,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:313,1
    - Dst: FuIoctlFixup*::fixup_cb
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:314,1
    - Dst: fu_udev_device_ioctl
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:318,1
    - Dst: fu_device_event_set_i64
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:331,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:334,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:337,1
    - Dst: fu_ioctl_fixup_build_key
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:338,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:341,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 60
    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: 347
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 347
    functionName: fu_ioctl_execute
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 1
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - fu_device_event_set_i64
    - fu_device_get_context
    - GPOINTER_TO_UINT
    - g_ptr_array_index
    - fu_ioctl_append_key_as_u16
    - fu_ioctl_append_key_from_buf
    - fu_udev_device_ioctl
    - fu_ioctl_fixup_build_key
    - fu_device_event_get_i64
    - fu_device_save_event
    - fu_device_has_flag
    - g_string_new
    - fu_device_event_set_data
    - FU_DEVICE
    - fu_device_event_copy_data
    - g_strcmp0
    - fu_ioctl_append_key_as_u32
    - g_autoptr
    - FuIoctlFixup*::fixup_cb
    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:352,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIoctl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 354
    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:359,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:361,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:362,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:364,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-ioctl.c:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 367
    functionName: fu_ioctl_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ioctl.c
    functionUses: 0
    functionsReached:
    - FU_IOCTL
    - g_ptr_array_unref
    - g_object_unref
    - G_OBJECT_CLASS
    - g_string_free
    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:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIoctlClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 374
    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:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:16,1
    - Dst: fu_tpm_eventlog_item_new
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:16,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:17,1
    - Dst: fu_tpm_eventlog_item_new
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:18,1
    - Dst: fu_tpm_eventlog_v1_new
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:19,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:22,1
    - Dst: fu_tpm_eventlog_item_set_kind
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:25,1
    - Dst: fu_tpm_eventlog_item_set_pcr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:26,1
    - Dst: fu_tpm_eventlog_item_add_checksum
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:27,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:28,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:28,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:28,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:29,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:30,1
    - Dst: fu_tpm_eventlog_calc_checksums
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:31,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:32,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:33,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:34,1
    - Dst: fwupd_checksum_get_by_kind
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:35,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:36,1
    - Dst: fu_tpm_eventlog_item_set_kind
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:39,1
    - Dst: fu_tpm_eventlog_item_set_pcr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:40,1
    - Dst: fu_tpm_eventlog_item_add_checksum
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:41,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:42,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:42,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:42,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:43,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:44,1
    - Dst: fu_tpm_eventlog_calc_checksums
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:45,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:46,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:47,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:48,1
    - Dst: fwupd_checksum_get_by_kind
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:49,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 11
    functionDepth: 2
    functionLinenumber: 11
    functionLinenumberEnd: 51
    functionName: fu_tpm_eventlog_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c
    functionUses: 0
    functionsReached:
    - fu_tpm_eventlog_item_new
    - fwupd_checksum_get_by_kind
    - fu_tpm_eventlog_calc_checksums
    - fu_firmware_add_image
    - FU_FIRMWARE
    - g_assert_nonnull
    - fu_tpm_eventlog_item_set_kind
    - fu_tpm_eventlog_item_add_checksum
    - g_assert_no_error
    - g_assert_cmpint
    - fu_tpm_eventlog_item_set_pcr
    - g_assert_true
    - fu_tpm_eventlog_v1_new
    - g_assert_cmpstr
    - g_autoptr
    - g_bytes_new_static
    linkageType: ''
    returnType: void
    signature: void fu_tpm_eventlog_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:56,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:57,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c
    functionUses: 3
    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: []
    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-cab-firmware.c
    functionUses: 797
    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
    - FU_IS_CAB_FIRMWARE
    - GET_PRIVATE
    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: 3
    functionsReached:
    - g_return_if_fail
    - FU_IS_CAB_FIRMWARE
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_cab_firmware_set_compressed(FuCabFirmware *self, gboolean compressed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inflateEnd
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:91,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:93,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:95,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:96,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuCabFirmwareParseHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: fu_cab_firmware_parse_helper_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - inflateEnd
    - g_object_unref
    - g_free
    - g_ptr_array_unref
    linkageType: ''
    returnType: void
    signature: void fu_cab_firmware_parse_helper_free(FuCabFirmwareParseHelper *helper)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:108,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:113,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:118,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - buf
    - bufsz
    - checksum
    - error
    argTypes:
    - guint8*
    - gsize
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 131
    functionName: fu_cab_firmware_compute_checksum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 1
    functionsReached:
    - G_UNLIKELY
    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:140,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: 141
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 141
    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:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - opaque
    - items
    - size
    argTypes:
    - voidpf
    - uInt
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    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:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opaque
    - address
    argTypes:
    - voidpf
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 153
    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:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zstrm
    argTypes:
    - z_stream_deflater*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 161
    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: 31
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_size_max
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:176,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:176,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:177,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:178,1
    - Dst: fu_struct_cab_data_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:181,1
    - Dst: fu_struct_cab_data_get_comp
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:186,1
    - Dst: fu_struct_cab_data_get_uncomp
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:187,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:191,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:199,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:205,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:208,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:209,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:210,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:221,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:222,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:227,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:230,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:232,1
    - Dst: fu_struct_cab_data_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:239,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:239,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:241,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:246,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:247,1
    - Dst: fu_cab_firmware_compute_checksum
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:248,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:254,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:270,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:270,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:271,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:272,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:275,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:282,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:282,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:283,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:289,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:290,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:301,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:308,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:310,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:311,1
    - Dst: inflate
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:315,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:316,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:320,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:331,1
    - Dst: zError
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:336,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:342,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:354,1
    - Dst: inflateReset
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:363,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:365,1
    - Dst: zError
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:369,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:375,1
    - Dst: inflateSetDictionary
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:383,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:385,1
    - Dst: zError
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:389,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:392,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:392,1
    - Dst: fu_composite_input_stream_add_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:393,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:393,1
    - Dst: fu_composite_input_stream_add_partial_stream
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:398,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:399,1
    - Dst: FU_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:400,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:406,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:408,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 124
    argCount: 5
    argNames:
    - self
    - helper
    - offset
    - folder_data
    - error
    argTypes:
    - FuCabFirmware*
    - FuCabFirmwareParseHelper*
    - gsize*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 409
    functionName: fu_cab_firmware_parse_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint16
    - fu_struct_cab_data_get_uncomp
    - FU_COMPOSITE_INPUT_STREAM
    - FU_PARTIAL_INPUT_STREAM
    - fu_struct_cab_data_parse_stream
    - fu_composite_input_stream_add_bytes
    - fu_struct_cab_data_get_comp
    - inflate
    - fu_memstrsafe
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_firmware_get_size_max
    - g_byte_array_new
    - zError
    - inflateReset
    - fu_struct_cab_data_get_checksum
    - g_bytes_get_data
    - FU_FIRMWARE
    - fu_composite_input_stream_add_partial_stream
    - g_malloc0
    - fu_cab_firmware_compute_checksum
    - fu_input_stream_chunkify
    - g_byte_array_free_to_bytes
    - g_byte_array_append
    - fu_partial_input_stream_new
    - fu_input_stream_read_bytes
    - g_strcmp0
    - inflateSetDictionary
    - g_set_error
    - g_steal_pointer
    - g_format_size
    - g_bytes_get_size
    - fu_size_checked_inc
    - g_autoptr
    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:419,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:420,1
    - Dst: fu_struct_cab_folder_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:423,1
    - Dst: fu_struct_cab_folder_get_ndatab
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:428,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:429,1
    - Dst: fu_struct_cab_folder_get_compression
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:435,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:440,1
    - Dst: fu_cab_compression_to_string
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:444,1
    - Dst: fu_struct_cab_folder_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:450,1
    - Dst: fu_cab_firmware_parse_data
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:451,1
    - Dst: fu_struct_cab_folder_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:455,1
    - Dst: fu_struct_cab_folder_get_ndatab
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:456,1
    - Dst: fu_cab_firmware_parse_data
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:457,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: 464
      start: 411
    functionDepth: 4
    functionLinenumber: 411
    functionLinenumberEnd: 464
    functionName: fu_cab_firmware_parse_folder
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - fu_cab_firmware_parse_data
    - fu_struct_cab_folder_get_ndatab
    - fu_cab_compression_to_string
    - g_set_error
    - g_set_error_literal
    - fu_struct_cab_folder_get_compression
    - fu_struct_cab_folder_get_offset
    - fu_struct_cab_folder_parse_stream
    - g_autoptr
    - GET_PRIVATE
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:477,1
    - Dst: fu_cab_image_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:477,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:478,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:479,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:480,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:481,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:481,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:482,1
    - Dst: g_time_zone_new_utc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:482,1
    - Dst: fu_struct_cab_file_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:485,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:488,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:488,1
    - Dst: fu_struct_cab_file_get_uoffset
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:488,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:489,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:489,1
    - Dst: fu_struct_cab_file_get_usize
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:489,1
    - Dst: fu_struct_cab_file_get_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:492,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:494,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:501,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:504,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:509,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:515,1
    - Dst: g_ascii_isprint
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:519,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:520,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:530,1
    - Dst: fu_path_verify_safe
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:534,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:539,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:540,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:540,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:542,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:542,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:544,1
    - Dst: fu_struct_cab_file_get_uoffset
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:545,1
    - Dst: fu_struct_cab_file_get_usize
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:546,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:549,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:552,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:552,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:554,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:554,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:554,1
    - Dst: fu_struct_cab_file_get_date
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:558,1
    - Dst: fu_struct_cab_file_get_time
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:559,1
    - Dst: g_date_time_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:560,1
    - Dst: fu_cab_image_set_created
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:567,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:570,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 5
    argNames:
    - self
    - helper
    - offset
    - flags
    - error
    argTypes:
    - FuCabFirmware*
    - FuCabFirmwareParseHelper*
    - gsize*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 466
    functionDepth: 4
    functionLinenumber: 466
    functionLinenumberEnd: 571
    functionName: fu_cab_firmware_parse_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_cab_file_get_time
    - fu_struct_cab_file_get_date
    - g_time_zone_new_utc
    - fu_struct_cab_file_get_usize
    - fu_firmware_set_offset
    - fu_struct_cab_file_get_uoffset
    - g_ascii_isprint
    - g_ptr_array_index
    - fu_firmware_add_image
    - fu_path_verify_safe
    - g_set_error_literal
    - g_prefix_error_literal
    - g_string_new
    - fu_firmware_set_size
    - g_path_get_basename
    - FU_FIRMWARE
    - g_string_append_c
    - fu_struct_cab_file_get_index
    - fu_partial_input_stream_new
    - fu_cab_image_new
    - fu_input_stream_read_u8
    - fu_firmware_set_id
    - g_set_error
    - fu_firmware_parse_stream
    - fu_cab_image_set_created
    - g_date_time_new
    - fu_size_checked_inc
    - g_autoptr
    - fu_struct_cab_file_parse_stream
    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   FuFirmwareParseFlags flags,\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:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 577
    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:583,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:583,1
    - Dst: inflateInit2
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:588,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:590,1
    - Dst: zError
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:594,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:598,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:600,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - stream
    - flags
    - error
    argTypes:
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 603
    functionName: fu_cab_firmware_parse_helper_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_set_error
    - g_steal_pointer
    - inflateInit2
    - g_object_ref
    - zError
    - g_ptr_array_new_with_free_func
    - g_autoptr
    linkageType: ''
    returnType: FuCabFirmwareParseHelper
    signature: 'FuCabFirmwareParseHelper *

      fu_cab_firmware_parse_helper_new(GInputStream *stream, FuFirmwareParseFlags
      flags, GError **error)'
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: FU_CAB_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:611,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:615,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:616,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:619,1
    - Dst: fu_struct_cab_header_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:623,1
    - Dst: fu_struct_cab_header_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:628,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:629,1
    - Dst: fu_struct_cab_header_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:633,1
    - Dst: fu_struct_cab_header_get_idx_cabinet
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:637,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:638,1
    - Dst: fu_struct_cab_header_get_nr_folders
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:644,1
    - Dst: fu_struct_cab_header_get_nr_files
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:645,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:646,1
    - Dst: fu_struct_cab_header_get_nr_folders
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:652,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:653,1
    - Dst: fu_struct_cab_header_get_nr_folders
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:657,1
    - Dst: fu_struct_cab_header_get_nr_files
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:661,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:662,1
    - Dst: fu_struct_cab_header_get_nr_files
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:666,1
    - Dst: fu_struct_cab_header_get_off_cffile
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:670,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:672,1
    - Dst: fu_cab_firmware_parse_helper_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:680,1
    - Dst: fu_struct_cab_header_get_nr_folders
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:685,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:689,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:690,1
    - Dst: fu_struct_cab_header_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:694,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:695,1
    - Dst: fu_struct_cab_header_reserve_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:696,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:699,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:700,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:704,1
    - Dst: fu_struct_cab_header_reserve_get_rsvd_hdr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:705,1
    - Dst: fu_struct_cab_header_reserve_get_rsvd_block
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:708,1
    - Dst: fu_struct_cab_header_reserve_get_rsvd_folder
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:709,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:713,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:721,1
    - Dst: fu_struct_cab_header_get_nr_folders
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:731,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:732,1
    - Dst: fu_composite_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:732,1
    - Dst: fu_cab_firmware_parse_folder
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:733,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:735,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:738,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:744,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:744,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:745,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:747,1
    - Dst: fu_struct_cab_header_get_nr_files
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:752,1
    - Dst: fu_cab_firmware_parse_file
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:753,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 87
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 605
    functionDepth: 5
    functionLinenumber: 605
    functionLinenumberEnd: 759
    functionName: fu_cab_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_cab_header_get_nr_files
    - fu_cab_firmware_parse_folder
    - g_autoptr
    - fu_struct_cab_header_get_idx_cabinet
    - fu_struct_cab_header_get_nr_folders
    - g_set_error_literal
    - g_prefix_error_literal
    - FU_CAB_FIRMWARE
    - fu_struct_cab_header_parse_stream
    - fu_cab_firmware_parse_file
    - fu_struct_cab_header_reserve_get_rsvd_hdr
    - fu_struct_cab_header_reserve_get_rsvd_block
    - fu_composite_input_stream_new
    - fu_struct_cab_header_get_off_cffile
    - fu_struct_cab_header_get_flags
    - fu_cab_firmware_parse_helper_new
    - fu_struct_cab_header_get_size
    - g_set_error
    - fu_input_stream_size
    - fu_struct_cab_header_reserve_get_rsvd_folder
    - g_steal_pointer
    - g_ptr_array_add
    - fu_size_checked_inc
    - 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: 29
    BranchProfiles: []
    Callsites:
    - Dst: FU_CAB_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:764,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:765,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:769,1
    - Dst: fu_struct_cab_header_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:769,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:770,1
    - Dst: fu_struct_cab_folder_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:770,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:771,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:771,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:772,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:772,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:773,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:774,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:775,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:776,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:780,1
    - Dst: fu_cab_image_get_win32_filename
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:781,1
    - Dst: FU_CAB_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:781,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:782,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:785,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:791,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:794,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:795,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:795,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:796,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:803,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:808,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:814,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:814,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:815,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:819,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:820,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:824,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:827,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:828,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:829,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:829,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:830,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:830,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:832,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:835,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:835,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:842,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:843,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:847,1
    - Dst: deflateInit2
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:848,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:855,1
    - Dst: zError
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:859,1
    - Dst: deflate
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:862,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:864,1
    - Dst: zError
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:868,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:871,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:872,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:873,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:875,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:875,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:875,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:877,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:877,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:882,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:885,1
    - Dst: fu_cab_image_get_win32_filename
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:886,1
    - Dst: FU_CAB_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:886,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:890,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:897,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:899,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:899,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:901,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:905,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:906,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:908,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:912,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:915,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:916,1
    - Dst: fu_struct_cab_header_set_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:923,1
    - Dst: fu_struct_cab_header_set_off_cffile
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:924,1
    - Dst: fu_struct_cab_header_set_nr_files
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:925,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:929,1
    - Dst: fu_cab_image_get_win32_filename
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:930,1
    - Dst: FU_CAB_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:930,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:931,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:933,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:933,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:935,1
    - Dst: fu_struct_cab_folder_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:938,1
    - Dst: fu_struct_cab_folder_set_ndatab
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:939,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:939,1
    - Dst: fu_struct_cab_folder_set_compression
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:940,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:943,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:947,1
    - Dst: fu_cab_image_get_created
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:949,1
    - Dst: FU_CAB_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:949,1
    - Dst: fu_cab_image_get_win32_filename
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:950,1
    - Dst: FU_CAB_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:950,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:951,1
    - Dst: fu_struct_cab_file_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:951,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:952,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:952,1
    - Dst: g_str_is_ascii
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:954,1
    - Dst: fu_struct_cab_file_set_fattr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:956,1
    - Dst: fu_struct_cab_file_set_usize
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:957,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:957,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:961,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:962,1
    - Dst: fu_struct_cab_file_set_uoffset
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:969,1
    - Dst: fu_struct_cab_file_set_date
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:971,1
    - Dst: g_date_time_get_year
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:972,1
    - Dst: g_date_time_get_month
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:973,1
    - Dst: g_date_time_get_day_of_month
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:974,1
    - Dst: fu_struct_cab_file_set_time
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:975,1
    - Dst: g_date_time_get_hour
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:976,1
    - Dst: g_date_time_get_minute
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:977,1
    - Dst: g_date_time_get_second
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:978,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:980,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:982,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:984,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:985,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:987,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:987,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:988,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:994,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:996,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:997,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:998,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:998,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:999,1
    - Dst: fu_struct_cab_data_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:999,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1002,1
    - Dst: fu_cab_firmware_compute_checksum
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1007,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1012,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1013,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1013,1
    - Dst: fu_cab_firmware_compute_checksum
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1014,1
    - Dst: fu_struct_cab_data_set_checksum
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1017,1
    - Dst: fu_struct_cab_data_set_comp
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1018,1
    - Dst: fu_struct_cab_data_set_uncomp
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1019,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1019,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1020,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1021,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1025,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 156
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 761
    functionDepth: 3
    functionLinenumber: 761
    functionLinenumberEnd: 1026
    functionName: fu_cab_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_cab_data_set_uncomp
    - fu_byte_array_append_uint16
    - deflateInit2
    - fu_chunk_get_data_sz
    - fu_struct_cab_file_set_time
    - fu_cab_firmware_compute_checksum
    - g_ptr_array_index
    - fu_struct_cab_header_set_nr_files
    - fu_byte_array_append_bytes
    - fu_cab_image_get_win32_filename
    - fu_struct_cab_folder_new
    - fu_firmware_get_bytes
    - fu_chunk_array_new_from_bytes
    - g_str_is_ascii
    - g_set_error_literal
    - g_prefix_error_literal
    - FU_CAB_FIRMWARE
    - fu_firmware_get_images
    - fu_struct_cab_data_set_checksum
    - g_byte_array_new
    - zError
    - g_date_time_get_hour
    - g_ptr_array_new_with_free_func
    - fu_struct_cab_folder_set_ndatab
    - deflate
    - GET_PRIVATE
    - g_date_time_get_month
    - fu_struct_cab_header_set_off_cffile
    - FU_CAB_IMAGE
    - fu_struct_cab_header_new
    - fu_byte_array_append_uint8
    - fu_struct_cab_folder_set_offset
    - fu_struct_cab_folder_set_compression
    - fu_cab_image_get_created
    - g_date_time_get_year
    - fu_chunk_get_data
    - g_byte_array_free_to_bytes
    - fu_struct_cab_data_new
    - fu_struct_cab_file_new
    - g_byte_array_append
    - g_date_time_get_day_of_month
    - fu_chunk_array_length
    - fu_struct_cab_data_set_comp
    - fu_byte_array_append_array
    - g_date_time_get_second
    - g_set_error
    - fu_chunk_array_index
    - fu_struct_cab_file_set_uoffset
    - g_steal_pointer
    - g_ptr_array_add
    - fu_struct_cab_header_set_size
    - fu_struct_cab_file_set_fattr
    - g_format_size
    - strlen
    - fu_struct_cab_file_set_date
    - g_bytes_get_size
    - g_date_time_get_minute
    - fu_size_checked_inc
    - g_autoptr
    - fu_struct_cab_file_set_usize
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_cab_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CAB_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1031,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1032,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1036,1
    - Dst: fu_strtobool
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1044
    functionName: fu_cab_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - fu_strtobool
    - FU_CAB_FIRMWARE
    - 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:1049,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1050,1
    - Dst: fu_xmlb_builder_insert_kb
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1052
    functionName: fu_cab_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kb
    - FU_CAB_FIRMWARE
    - 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:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCabFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1054
    functionDepth: 0
    functionLinenumber: 1054
    functionLinenumberEnd: 1063
    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: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1068,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1068,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1069,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1069,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1070,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1070,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1071,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1071,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1072,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1072,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1074,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1074,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1076,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-firmware.c:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCabFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1065
    functionDepth: 1
    functionLinenumber: 1065
    functionLinenumberEnd: 1078
    functionName: fu_cab_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1087
    functionDepth: 0
    functionLinenumber: 1087
    functionLinenumberEnd: 1091
    functionName: fu_cab_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    functionUses: 4
    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_get_bits
    - fu_efi_lz77_decompressor_read_source_bits
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_lz77_decompressor_decode_p(FuEfiLz77DecompressHelper
      *helper, guint32 *value, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_efi_lz77_decompressor_get_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:305,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:309,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:310,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:311,1
    - Dst: fu_efi_lz77_decompressor_get_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:317,1
    - Dst: fu_efi_lz77_decompressor_memset16
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:319,1
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:322,1
    - Dst: fu_efi_lz77_decompressor_read_source_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:340,1
    - Dst: fu_efi_lz77_decompressor_get_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:352,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:355,1
    - Dst: fu_efi_lz77_decompressor_make_huffman_table
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:368,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 5
    argNames:
    - helper
    - number_of_symbols
    - number_of_bits
    - special_symbol
    - error
    argTypes:
    - FuEfiLz77DecompressHelper*
    - guint16
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 374
    functionName: fu_efi_lz77_decompressor_read_pt_len
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 0
    functionsReached:
    - fu_efi_lz77_decompressor_get_bits
    - g_set_error_literal
    - fu_efi_lz77_decompressor_make_huffman_table
    - G_N_ELEMENTS
    - memset
    - fu_efi_lz77_decompressor_read_source_bits
    - fu_efi_lz77_decompressor_memset16
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: fu_efi_lz77_decompressor_get_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:384,1
    - Dst: fu_efi_lz77_decompressor_get_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:389,1
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:391,1
    - Dst: fu_efi_lz77_decompressor_memset16
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:392,1
    - Dst: fu_efi_lz77_decompressor_read_source_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:414,1
    - Dst: fu_efi_lz77_decompressor_get_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:423,1
    - Dst: fu_efi_lz77_decompressor_get_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:427,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:435,1
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:447,1
    - Dst: fu_efi_lz77_decompressor_make_huffman_table
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:448,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 2
    argNames:
    - helper
    - error
    argTypes:
    - FuEfiLz77DecompressHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 454
    functionName: fu_efi_lz77_decompressor_read_c_len
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 0
    functionsReached:
    - fu_efi_lz77_decompressor_get_bits
    - g_set_error_literal
    - fu_efi_lz77_decompressor_memset16
    - fu_efi_lz77_decompressor_make_huffman_table
    - memset
    - fu_efi_lz77_decompressor_read_source_bits
    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:466,1
    - Dst: fu_efi_lz77_decompressor_read_pt_len
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:470,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:471,1
    - Dst: fu_efi_lz77_decompressor_read_c_len
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:478,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:479,1
    - Dst: fu_efi_lz77_decompressor_read_pt_len
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:486,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:491,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:501,1
    - Dst: fu_efi_lz77_decompressor_read_source_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:522,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 3
    argNames:
    - helper
    - value
    - error
    argTypes:
    - FuEfiLz77DecompressHelper*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 526
    functionName: fu_efi_lz77_decompressor_decode_c
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 0
    functionsReached:
    - fu_efi_lz77_decompressor_read_pt_len
    - fu_efi_lz77_decompressor_get_bits
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_efi_lz77_decompressor_read_c_len
    - fu_efi_lz77_decompressor_read_source_bits
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_efi_lz77_decompressor_decode_c(FuEfiLz77DecompressHelper
      *helper, guint16 *value, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:544,1
    - Dst: fu_efi_lz77_decompressor_read_source_bits
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:553,1
    - Dst: fu_efi_lz77_decompressor_decode_c
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:561,1
    - Dst: fu_efi_lz77_decompressor_decode_p
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:573,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:577,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:591,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:598,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - helper
    - version
    - error
    argTypes:
    - FuEfiLz77DecompressHelper*
    - FuEfiLz77DecompressorVersion
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 528
    functionDepth: 4
    functionLinenumber: 528
    functionLinenumberEnd: 612
    functionName: fu_efi_lz77_decompressor_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_efi_lz77_decompressor_decode_p
    - g_set_error_literal
    - fu_efi_lz77_decompressor_decode_c
    - fu_efi_lz77_decompressor_read_source_bits
    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:623,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:624,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:625,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:625,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:632,1
    - Dst: fu_struct_efi_lz77_decompressor_header_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:634,1
    - Dst: fu_struct_efi_lz77_decompressor_header_get_src_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:637,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:639,1
    - Dst: fu_struct_efi_lz77_decompressor_header_get_dst_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:645,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:647,1
    - Dst: fu_firmware_get_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:653,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:654,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:655,1
    - Dst: fu_firmware_get_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:655,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:656,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:664,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:667,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:672,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:674,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:674,1
    - Dst: fu_efi_lz77_decompressor_internal
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:676,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:679,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:679,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:679,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:680,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:682,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:683,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:687,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:689,1
    - Dst: fu_efi_lz77_decompressor_version_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:691,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:694,1
    - Dst: fu_efi_lz77_decompressor_version_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:696,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:701,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:701,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 614
    functionDepth: 5
    functionLinenumber: 614
    functionLinenumberEnd: 703
    functionName: fu_efi_lz77_decompressor_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_lz77_decompressor_header_parse_stream
    - fu_firmware_set_bytes
    - fu_firmware_set_stream
    - g_set_error_literal
    - fu_firmware_get_size_max
    - g_byte_array_new
    - g_propagate_error
    - fu_struct_efi_lz77_decompressor_header_get_src_size
    - g_seekable_seek
    - fu_firmware_set_version_raw
    - G_SEEKABLE
    - g_byte_array_free_to_bytes
    - fu_struct_efi_lz77_decompressor_header_get_dst_size
    - g_set_error
    - fu_input_stream_size
    - g_steal_pointer
    - g_prefix_error
    - fu_efi_lz77_decompressor_version_to_string
    - g_format_size
    - G_N_ELEMENTS
    - g_autoptr
    - fu_byte_array_set_size
    - fu_efi_lz77_decompressor_internal
    - g_propagate_prefixed_error
    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:708,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:708,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:709,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiLz77Decompressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 710
    functionName: fu_efi_lz77_decompressor_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiLz77DecompressorClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 717
    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:729,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 730
    functionName: fu_efi_lz77_decompressor_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-lz77-decompressor.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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:32,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:33,1
    - Dst: GetLastError
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:37,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:41,1
    - Dst: GetFirmwareEnvironmentVariableA
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:49,1
    - Dst: GetLastError
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:50,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - efivars
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 60
    functionName: fu_windows_efivars_supported
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
    functionUses: 0
    functionsReached:
    - GetFirmwareType
    - g_set_error
    - g_set_error_literal
    - GetLastError
    - GetFirmwareEnvironmentVariableA
    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:66,1
    - Dst: RegCloseKey
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 72
    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:83,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:83,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:84,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:85,1
    - Dst: fu_windows_efivars_is_running_under_wine
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:88,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:89,1
    - Dst: GetFirmwareEnvironmentVariableExA
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:98,1
    - Dst: g_byte_array_free
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:105,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:105,1
    - Dst: GetLastError
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:112,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:114,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:118,1
    - Dst: GetLastError
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:122,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 7
    argNames:
    - efivars
    - guid
    - name
    - data
    - data_sz
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - guint8**
    - gsize*
    - FuEfiVariableAttrs*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 124
    functionName: fu_windows_efivars_get_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_windows_efivars_is_running_under_wine
    - g_set_error_literal
    - g_steal_pointer
    - g_strdup_printf
    - g_byte_array_new
    - GetFirmwareEnvironmentVariableExA
    - GetLastError
    - g_autoptr
    - fu_byte_array_set_size
    - g_byte_array_free
    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    FuEfiVariableAttrs *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:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - efivars
    - guid
    - name
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 130
    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:136,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:136,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:192,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:194,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:195,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:195,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:196,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:199,1
    - Dst: fu_windows_efivars_exists
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:200,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:203,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:203,1
    - Dst: fu_windows_efivars_exists
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:206,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:209,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:209,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:215,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:224,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - efivars
    - guid
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 225
    functionName: fu_windows_efivars_get_names
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - fu_windows_efivars_exists
    - g_set_error
    - g_str_has_suffix
    - g_ptr_array_add
    - g_steal_pointer
    - g_strdup_printf
    - g_string_new
    - g_string_truncate
    - g_autoptr
    - g_ptr_array_new_with_free_func
    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:236,1
    - Dst: fu_windows_efivars_is_running_under_wine
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:239,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:240,1
    - Dst: SetFirmwareEnvironmentVariableExA
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:246,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:247,1
    - Dst: GetLastError
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - efivars
    - guid
    - name
    - data
    - sz
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - guint8*
    - gsize
    - FuEfiVariableAttrs
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 255
    functionName: fu_windows_efivars_set_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_windows_efivars_is_running_under_wine
    - g_set_error_literal
    - SetFirmwareEnvironmentVariableExA
    - g_strdup_printf
    - 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    FuEfiVariableAttrs 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:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - efivars
    - guid
    - name
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 262
    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:270,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:271,1
    - Dst: fu_windows_efivars_get_names
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:273,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:275,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:277,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:277,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:281,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:282,1
    - Dst: fu_windows_efivars_delete
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:283,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: 288
      start: 264
    functionDepth: 4
    functionLinenumber: 264
    functionLinenumberEnd: 288
    functionName: fu_windows_efivars_delete_with_glob
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
    functionUses: 0
    functionsReached:
    - fu_windows_efivars_get_names
    - fu_windows_efivars_delete
    - g_steal_pointer
    - g_pattern_match_simple
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    - g_ptr_array_index
    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: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    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:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWindowsEfivarsClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 306
    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:311,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-windows-efivars.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pstore
    argTypes:
    - FuPathStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 312
    functionName: fu_efivars_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-windows-efivars.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_EFIVARS
    linkageType: ''
    returnType: FuEfivars
    signature: 'FuEfivars *

      fu_efivars_new(FuPathStore *pstore)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: efi_variables_supported
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:30,1
    - Dst: g_set_error_literal
      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_literal
    - 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:
    - efi_del_variable
    - efi_str_to_guid
    - g_set_error
    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_str_to_guid
    - g_pattern_match_simple
    - memcmp
    - efi_get_next_variable_name
    - fu_freebsd_efivars_delete
    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: 7
    argCount: 1
    argNames:
    - guid
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 95
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: efi_str_to_guid
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:107,1
    - Dst: efi_get_variable
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - efivars
    - guid
    - name
    - data
    - data_sz
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - guint8**
    - gsize*
    - FuEfiVariableAttrs*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 109
    functionName: fu_freebsd_efivars_get_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
    functionUses: 0
    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    FuEfiVariableAttrs *attr,\n\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_freebsd_efivars_exists_guid
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:116,1
    - Dst: fu_freebsd_efivars_get_data
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - efivars
    - guid
    - name
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 119
    functionName: fu_freebsd_efivars_exists
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
    functionUses: 0
    functionsReached:
    - fu_freebsd_efivars_exists_guid
    - fu_freebsd_efivars_get_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_freebsd_efivars_exists(FuEfivars *efivars, const gchar
      *guid, const gchar *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:124,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:124,1
    - Dst: efi_str_to_guid
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:128,1
    - Dst: efi_get_next_variable_name
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:131,1
    - Dst: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:132,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:133,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:133,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:138,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - efivars
    - guid
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 148
    functionName: fu_freebsd_efivars_get_names
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - efi_str_to_guid
    - g_set_error
    - g_steal_pointer
    - g_ptr_array_add
    - memcmp
    - efi_get_next_variable_name
    - g_autoptr
    - g_ptr_array_new_with_free_func
    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:157,1
    - Dst: efi_get_variable_size
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:159,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - efivars
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 171
    functionName: fu_freebsd_efivars_space_used
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - efi_get_variable_size
    - efi_get_next_variable_name
    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:183,1
    - Dst: efi_set_variable
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:185,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - efivars
    - guid
    - name
    - data
    - sz
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - guint8*
    - gsize
    - FuEfiVariableAttrs
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 196
    functionName: fu_freebsd_efivars_set_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
    functionUses: 0
    functionsReached:
    - efi_set_variable
    - efi_str_to_guid
    - g_set_error
    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    FuEfiVariableAttrs 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: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    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:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFreebsdEfivarsClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 215
    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:220,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pstore
    argTypes:
    - FuPathStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: fu_efivars_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-freebsd-efivars.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_EFIVARS
    linkageType: ''
    returnType: FuEfivars
    signature: 'FuEfivars *

      fu_efivars_new(FuPathStore *pstore)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:44,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:55,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:61,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:67,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:71,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:75,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - val
    - kind
    argTypes:
    - guint64
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 79
    functionName: fu_version_from_uint64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 2
    functionsReached:
    - g_strdup_printf
    - g_critical
    - fwupd_version_format_to_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_version_from_uint64(guint64 val, FwupdVersionFormat kind)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:97,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:105,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:112,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:116,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:120,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:124,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:125,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:126,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:127,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:128,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:132,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:140,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:148,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:170,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:177,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:181,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:186,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:187,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 2
    argNames:
    - val
    - kind
    argTypes:
    - guint32
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 190
    functionName: fu_version_from_uint32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 2
    functionsReached:
    - g_strdup_printf
    - g_critical
    - fwupd_version_format_to_string
    - FU_COMMON_VERSION_DECODE_BCD
    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:207,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:209,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:213,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:219,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:225,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:231,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:239,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:240,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:241,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:242,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:243,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:245,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:246,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - val
    - kind
    argTypes:
    - guint32
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 249
    functionName: fu_version_from_uint32_hex
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - g_critical
    - fwupd_version_format_to_string
    - FU_COMMON_VERSION_DECODE_BCD
    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:267,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:274,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:278,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:282,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:284,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:285,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - val
    - kind
    argTypes:
    - guint32
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 288
    functionName: fu_version_from_uint24
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 2
    functionsReached:
    - g_strdup_printf
    - g_critical
    - fwupd_version_format_to_string
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_version_from_uint24(guint32 val, FwupdVersionFormat kind)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:305,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:306,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:307,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:310,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:314,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:321,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:327,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:330,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:332,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:333,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - val
    - kind
    argTypes:
    - guint16
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 336
    functionName: fu_version_from_uint16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 2
    functionsReached:
    - g_strdup_printf
    - g_critical
    - fwupd_version_format_to_string
    - FU_COMMON_VERSION_DECODE_BCD
    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:353,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:355,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:357,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:359,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:360,1
    - Dst: FU_COMMON_VERSION_DECODE_BCD
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:361,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:364,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:369,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - val
    - kind
    argTypes:
    - guint16
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 373
    functionName: fu_version_from_uint16_hex
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - g_critical
    - fwupd_version_format_to_string
    - FU_COMMON_VERSION_DECODE_BCD
    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: 385
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 385
    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:393,1
    - Dst: fu_version_compare_char
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:402,1
    - Dst: fu_version_compare_char
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:406,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 407
    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:412,1
    - Dst: g_ascii_isdigit
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 418
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:423,1
    - Dst: g_ascii_isxdigit
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 429
    functionName: _g_ascii_is_xdigits
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_ascii_isxdigit
    linkageType: ''
    returnType: gboolean
    signature: gboolean _g_ascii_is_xdigits(const gchar *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 10
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 448
    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:466,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:468,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:469,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:469,1
    - Dst: fu_version_ensure_semver_internal
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:472,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:476,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:477,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:478,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:484,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:485,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:492,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:493,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:497,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:497,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - version
    - fmt
    argTypes:
    - gchar*
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 498
    functionName: fu_version_ensure_semver
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 1
    functionsReached:
    - g_string_append
    - fu_version_format_number_sections
    - g_steal_pointer
    - fu_version_ensure_semver_internal
    - g_string_free
    - g_strsplit
    - g_strv_length
    - g_string_new
    - g_auto
    - g_autoptr
    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:505,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:505,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:512,1
    - Dst: fu_version_parse_from_format
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:513,1
    - Dst: g_ascii_isdigit
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:518,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:519,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:525,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:530,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:538,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:543,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:543,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 1
    argNames:
    - version
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 544
    functionName: fu_version_ensure_semver_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 1
    functionsReached:
    - fu_version_parse_from_format
    - g_steal_pointer
    - g_ascii_isdigit
    - g_string_free
    - g_string_new
    - g_string_truncate
    - g_string_append_c
    - g_str_has_prefix
    - g_autoptr
    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:576,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:577,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:580,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:580,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:581,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:584,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:585,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:587,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:588,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - version
    - fmt
    argTypes:
    - gchar*
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 589
    functionName: fu_version_parse_from_format
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 3
    functionsReached:
    - g_strdup
    - fu_strtoull
    - g_strstr_len
    - strlen
    - fu_version_from_uint32
    - g_str_has_prefix
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_version_parse_from_format(const gchar *version, FwupdVersionFormat fmt)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:610,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:617,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:618,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:620,1
    - Dst: _g_ascii_is_digits
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:620,1
    - Dst: _g_ascii_is_xdigits
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:622,1
    - Dst: _g_ascii_is_digits
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:630,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - version
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 644
    functionName: fu_version_guess_format
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 3
    functionsReached:
    - _g_ascii_is_digits
    - g_strsplit
    - g_strv_length
    - _g_ascii_is_xdigits
    - g_auto
    - g_str_has_prefix
    linkageType: ''
    returnType: FwupdVersionFormat
    signature: FwupdVersionFormat fu_version_guess_format(const gchar *version)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 660
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:679,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:680,1
    - Dst: _g_ascii_is_xdigits
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:692,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:697,1
    - Dst: fu_version_format_convert_base
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:703,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:704,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:709,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:710,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 3
    argNames:
    - version
    - fmt
    - error
    argTypes:
    - gchar*
    - FwupdVersionFormat
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 714
    functionName: fu_version_verify_format
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    - _g_ascii_is_xdigits
    - fu_version_format_convert_base
    - fu_version_guess_format
    - fwupd_version_format_to_string
    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:720,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:721,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:728,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:732,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:733,1
    - Dst: MAX
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:734,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:734,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:734,1
    - Dst: g_ascii_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:748,1
    - Dst: g_ascii_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:749,1
    - Dst: fu_version_compare_chunk
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:758,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 2
    argNames:
    - version_a
    - version_b
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 716
    functionDepth: 2
    functionLinenumber: 716
    functionLinenumberEnd: 768
    functionName: fu_version_compare_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_version_compare_chunk
    - MAX
    - g_strsplit
    - g_strv_length
    - g_auto
    - g_ascii_strtoll
    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:787,1
    - Dst: fu_version_parse_from_format
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:791,1
    - Dst: fu_version_parse_from_format
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:792,1
    - Dst: fu_version_compare_safe
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:793,1
    - Dst: fu_version_compare_safe
      Src: /src/fwupd/libfwupdplugin/fu-version-common.c:795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - version_a
    - version_b
    - fmt
    argTypes:
    - gchar*
    - gchar*
    - FwupdVersionFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 783
    functionDepth: 3
    functionLinenumber: 783
    functionLinenumberEnd: 796
    functionName: fu_version_compare
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-version-common.c
    functionUses: 19
    functionsReached:
    - fu_version_compare_safe
    - fu_version_parse_from_format
    - g_strcmp0
    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: 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/libfwupdplugin/fu-fmap-firmware.c
    functionUses: 803
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FMAP_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:43,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:44,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:45,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:46,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    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_fmap_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FMAP_FIRMWARE
    - fu_xmlb_builder_insert_kx
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_fmap_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_FMAP_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:53,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:54,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:58,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:61,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:65,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:68,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:72,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:75,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 82
    functionName: fu_fmap_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FMAP_FIRMWARE
    - xb_node_query_text
    - fu_strtoull
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fmap_firmware_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_fmap_validate_stream
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: fu_fmap_firmware_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_fmap_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fmap_firmware_validate(FuFirmware *firmware, GInputStream
      *stream, gsize offset, GError **error)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FU_FMAP_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:97,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:98,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:101,1
    - Dst: fu_struct_fmap_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:104,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:107,1
    - Dst: fu_struct_fmap_get_base
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:107,1
    - Dst: fu_struct_fmap_get_ver_major
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:108,1
    - Dst: fu_struct_fmap_get_ver_minor
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:109,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:111,1
    - Dst: fu_struct_fmap_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:113,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:114,1
    - Dst: fu_struct_fmap_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:118,1
    - Dst: fu_struct_fmap_get_nareas
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:122,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:124,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:131,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:138,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:139,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:147,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:148,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:149,1
    - Dst: fu_struct_fmap_area_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:152,1
    - Dst: fu_struct_fmap_area_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:155,1
    - Dst: fu_struct_fmap_area_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:160,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:161,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:166,1
    - Dst: fu_struct_fmap_area_get_name
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:169,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:170,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:171,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:181,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:182,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:185,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:186,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:187,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:188,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:190,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:191,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 5
    argNames:
    - firmware
    - stream
    - offset
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 90
    functionDepth: 5
    functionLinenumber: 90
    functionLinenumberEnd: 198
    functionName: fu_fmap_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_fmap_get_ver_minor
    - fu_struct_fmap_area_get_size
    - fu_struct_fmap_area_parse_stream
    - fu_firmware_set_addr
    - FU_FMAP_FIRMWARE
    - fu_struct_fmap_get_ver_major
    - fu_firmware_new_from_gtypes
    - fu_firmware_add_image
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_struct_fmap_get_nareas
    - fu_struct_fmap_get_base
    - GET_PRIVATE
    - fu_struct_fmap_area_get_offset
    - fu_firmware_set_idx
    - fu_firmware_new
    - fu_partial_input_stream_new
    - fu_struct_fmap_area_get_name
    - fu_struct_fmap_get_size
    - g_strcmp0
    - fu_struct_fmap_parse_stream
    - fu_firmware_set_id
    - g_set_error
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - g_prefix_error
    - fu_size_checked_inc
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fmap_firmware_parse(FuFirmware *firmware,\n\t\t       GInputStream
      *stream,\n\t\t       gsize offset,\n\t\t       FuFirmwareParseFlags flags,\n\t\t
      \      GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_FMAP_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:203,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:204,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:207,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:207,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:208,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:208,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:209,1
    - Dst: fu_struct_fmap_new
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:209,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:212,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:216,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:217,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:217,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:220,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:223,1
    - Dst: fu_size_checked_inc_product
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:228,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:232,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:233,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:233,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:236,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:236,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:241,1
    - Dst: fu_struct_fmap_set_ver_major
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:243,1
    - Dst: fu_struct_fmap_set_ver_minor
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:244,1
    - Dst: fu_struct_fmap_set_base
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:245,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:245,1
    - Dst: fu_struct_fmap_set_nareas
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:246,1
    - Dst: fu_struct_fmap_set_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:247,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:248,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:252,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:253,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:253,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:254,1
    - Dst: fu_struct_fmap_area_new
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:254,1
    - Dst: fu_struct_fmap_area_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:257,1
    - Dst: fu_struct_fmap_area_set_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:258,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:258,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:259,1
    - Dst: fu_struct_fmap_area_set_name
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:260,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:260,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:263,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:264,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:264,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:270,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:271,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:271,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:274,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:278,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 279
    functionName: fu_fmap_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_firmware_set_bytes
    - fu_struct_fmap_set_base
    - fu_struct_fmap_set_nareas
    - fu_struct_fmap_area_set_offset
    - fu_size_checked_inc_product
    - g_ptr_array_index
    - fu_firmware_get_id
    - FU_FMAP_FIRMWARE
    - fu_byte_array_append_bytes
    - fu_firmware_get_bytes
    - fu_struct_fmap_set_ver_major
    - fu_firmware_get_images
    - g_byte_array_new
    - fu_struct_fmap_area_set_name
    - GET_PRIVATE
    - fu_struct_fmap_area_set_size
    - fu_struct_fmap_new
    - fu_struct_fmap_set_ver_minor
    - fu_struct_fmap_area_new
    - fu_byte_array_append_array
    - fu_struct_fmap_set_size
    - g_steal_pointer
    - fu_firmware_get_addr
    - g_bytes_get_size
    - fu_size_checked_inc
    - g_autoptr
    - 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_add_magic
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - firmware
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 288
    functionName: fu_fmap_firmware_add_magic
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_magic
    linkageType: ''
    returnType: void
    signature: void fu_fmap_firmware_add_magic(FuFirmware *firmware)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:293,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:296,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:296,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:297,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:297,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:298,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:298,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:299,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFmapFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 300
    functionName: fu_fmap_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_set_size_max
    - GET_PRIVATE
    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:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFmapFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 312
    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:324,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: fu_fmap_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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:30,1
    - Dst: fu_device_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - progress
    - percentage
    - user_data
    argTypes:
    - FuProgress*
    - gdouble
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: fu_device_progress_percentage_changed_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-progress.c
    functionUses: 0
    functionsReached:
    - fu_device_set_percentage
    - FU_DEVICE_PROGRESS
    linkageType: ''
    returnType: void
    signature: "void fu_device_progress_percentage_changed_cb(FuProgress *progress,\n\t\t\t\t\t
      gdouble percentage,\n\t\t\t\t\t gpointer user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:37,1
    - Dst: fu_device_set_status
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - progress
    - status
    - user_data
    argTypes:
    - FuProgress*
    - FwupdStatus
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: fu_device_progress_status_changed_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-progress.c
    functionUses: 0
    functionsReached:
    - fu_device_set_status
    - FU_DEVICE_PROGRESS
    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:44,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:45,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:46,1
    - Dst: fu_device_set_status
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:47,1
    - Dst: fu_device_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:48,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:49,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:50,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: fu_device_progress_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-progress.c
    functionUses: 0
    functionsReached:
    - fu_device_set_percentage
    - g_object_unref
    - G_OBJECT_CLASS
    - fu_device_set_status
    - FU_DEVICE_PROGRESS
    - g_signal_handler_disconnect
    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:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDeviceProgressClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    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: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    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:84,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:84,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:86,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:86,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:87,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:87,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:91,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:91,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:93,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:95,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:95,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:97,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:99,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:100,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device-progress.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 104
    functionName: fu_device_progress_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-progress.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - g_signal_connect
    - FU_PROGRESS
    - FU_IS_DEVICE
    - g_steal_pointer
    - g_object_ref
    - g_object_new
    - FU_IS_PROGRESS
    - G_CALLBACK
    - g_autoptr
    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: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: fu_device_has_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 88
    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: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: fu_device_has_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 88
    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: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    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: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    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: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: fu_device_has_vendor_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 3
    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: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    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: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    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: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    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: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: fu_device_add_release
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 6
    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: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    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: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    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: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    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: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    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: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    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: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: fu_device_set_plugin
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 20
    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: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    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: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: fu_device_set_summary
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    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: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: fu_device_set_details_url
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_set_details_url(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: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    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: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: fu_device_set_update_error
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 6
    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: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: fu_device_add_vendor_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    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: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: fu_device_add_protocol
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 35
    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: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    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: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    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: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    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: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    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: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    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: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: fu_device_get_created
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_created(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: fu_device_get_flags
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 4
    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: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    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: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    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: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    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: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    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: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    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: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: fu_device_get_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 22
    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: 178
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 178
    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: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    functionName: fu_device_get_summary
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    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: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: fu_device_get_details_url
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_details_url(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    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: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: fu_device_get_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 78
    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: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: fu_device_get_composite_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 3
    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: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: fu_device_get_plugin
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 23
    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: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    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: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: fu_device_get_update_state
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 12
    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: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: fu_device_get_vendor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 7
    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: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    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: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    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: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: fu_device_get_version_highest
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_version_highest(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    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: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: fu_device_get_version_format
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 25
    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: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    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: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    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: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: fu_device_get_version_highest_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fu_device_get_version_highest_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: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    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: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    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: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    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: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    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: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    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: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    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: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: fu_device_get_release_default
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 12
    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: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: fu_device_get_status
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    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: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    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: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: fu_device_get_percentage
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.h
    functionUses: 0
    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: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    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:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: FU_CBOR_ITEM_TO_ARRAY
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FU_CBOR_ITEM_TO_ARRAY(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: FU_CBOR_ITEM_TO_BYTES
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FU_CBOR_ITEM_TO_BYTES(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: FU_CBOR_ITEM_TO_STRING
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FU_CBOR_ITEM_TO_STRING(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: FU_CBOR_ITEM_TO_INT64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FU_CBOR_ITEM_TO_INT64(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: FU_CBOR_ITEM_TO_BOOLEAN
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FU_CBOR_ITEM_TO_BOOLEAN(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCborItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: fu_cbor_item_get_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    linkageType: ''
    returnType: FuCborItemKind
    signature: FuCborItemKind fu_cbor_item_get_kind(FuCborItem *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:66,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:67,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:70,1
    - Dst: fu_cbor_item_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:74,1
    - Dst: FU_CBOR_ITEM_TO_INT64
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuCborItem*
    - gint64*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 80
    functionName: fu_cbor_item_get_integer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_CBOR_ITEM_TO_INT64
    - fu_cbor_item_kind_to_string
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cbor_item_get_integer(FuCborItem *self, gint64 *value,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:97,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:98,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:101,1
    - Dst: fu_cbor_item_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:105,1
    - Dst: FU_CBOR_ITEM_TO_BOOLEAN
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuCborItem*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 111
    functionName: fu_cbor_item_get_boolean
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_CBOR_ITEM_TO_BOOLEAN
    - fu_cbor_item_kind_to_string
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cbor_item_get_boolean(FuCborItem *self, gboolean *value,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:129,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:130,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:133,1
    - Dst: fu_cbor_item_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:137,1
    - Dst: FU_CBOR_ITEM_TO_STRING
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:140,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:142,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCborItem*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 146
    functionName: fu_cbor_item_get_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_CBOR_ITEM_TO_STRING
    - g_strdup
    - fu_cbor_item_kind_to_string
    - g_set_error
    - g_set_error_literal
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_cbor_item_get_string(FuCborItem *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:164,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:165,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:168,1
    - Dst: fu_cbor_item_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:172,1
    - Dst: FU_CBOR_ITEM_TO_BYTES
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:175,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:177,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCborItem*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 184
    functionName: fu_cbor_item_get_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_ref
    - fu_cbor_item_kind_to_string
    - g_set_error
    - FU_CBOR_ITEM_TO_BYTES
    - g_set_error_literal
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_cbor_item_get_bytes(FuCborItem *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:199,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:200,1
    - Dst: FU_CBOR_ITEM_TO_ARRAY
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCborItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: fu_cbor_item_array_length
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_CBOR_ITEM_TO_ARRAY
    linkageType: ''
    returnType: guint
    signature: guint fu_cbor_item_array_length(FuCborItem *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:217,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:218,1
    - Dst: FU_CBOR_ITEM_TO_ARRAY
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCborItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: fu_cbor_item_map_length
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_CBOR_ITEM_TO_ARRAY
    linkageType: ''
    returnType: guint
    signature: guint fu_cbor_item_map_length(FuCborItem *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:236,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:237,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:238,1
    - Dst: FU_CBOR_ITEM_TO_ARRAY
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:238,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:239,1
    - Dst: FU_CBOR_ITEM_TO_ARRAY
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - idx
    argTypes:
    - FuCborItem*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 240
    functionName: fu_cbor_item_array_index
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_CBOR_ITEM_TO_ARRAY
    - g_ptr_array_index
    linkageType: ''
    returnType: FuCborItem
    signature: 'FuCborItem *

      fu_cbor_item_array_index(FuCborItem *self, guint idx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:257,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:258,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:259,1
    - Dst: FU_CBOR_ITEM_TO_ARRAY
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:259,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:260,1
    - Dst: FU_CBOR_ITEM_TO_ARRAY
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - idx
    - item_key
    - item_value
    argTypes:
    - FuCborItem*
    - guint
    - FuCborItem**
    - FuCborItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 265
    functionName: fu_cbor_item_map_index
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - FU_CBOR_ITEM_TO_ARRAY
    - g_return_if_fail
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_cbor_item_map_index(FuCborItem *self, guint idx, FuCborItem
      **item_key, FuCborItem **item_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - tag
    - value
    argTypes:
    - GByteArray*
    - FuCborTag
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: fu_cbor_item_append_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint8
    linkageType: ''
    returnType: void
    signature: void fu_cbor_item_append_raw(GByteArray *buf, FuCborTag tag, guint8
      value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_cbor_item_append_raw
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:277,1
    - Dst: fu_cbor_item_append_raw
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:279,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:280,1
    - Dst: fu_cbor_item_append_raw
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:282,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:283,1
    - Dst: fu_cbor_item_append_raw
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:285,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:286,1
    - Dst: fu_cbor_item_append_raw
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:288,1
    - Dst: fu_byte_array_append_uint64
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - buf
    - tag
    - value
    argTypes:
    - GByteArray*
    - FuCborTag
    - gint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 291
    functionName: fu_cbor_item_append_extended
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint16
    - fu_byte_array_append_uint64
    - fu_byte_array_append_uint8
    - fu_byte_array_append_uint32
    - fu_cbor_item_append_raw
    linkageType: ''
    returnType: void
    signature: void fu_cbor_item_append_extended(GByteArray *buf, FuCborTag tag, gint64
      value)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FU_CBOR_ITEM_TO_INT64
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:297,1
    - Dst: fu_cbor_item_append_extended
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:299,1
    - Dst: fu_cbor_item_append_extended
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:301,1
    - Dst: FU_CBOR_ITEM_TO_BOOLEAN
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:306,1
    - Dst: fu_cbor_item_append_extended
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:307,1
    - Dst: FU_CBOR_ITEM_TO_STRING
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:314,1
    - Dst: fu_cbor_item_append_extended
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:317,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:322,1
    - Dst: fu_cbor_item_append_extended
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:323,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:325,1
    - Dst: FU_CBOR_ITEM_TO_BYTES
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:329,1
    - Dst: fu_cbor_item_append_extended
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:330,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:330,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:331,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:332,1
    - Dst: FU_CBOR_ITEM_TO_ARRAY
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:336,1
    - Dst: fu_cbor_item_append_extended
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:337,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:339,1
    - Dst: fu_cbor_item_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:340,1
    - Dst: FU_CBOR_ITEM_TO_ARRAY
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:346,1
    - Dst: fu_cbor_item_append_extended
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:347,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:349,1
    - Dst: fu_cbor_item_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:350,1
    - Dst: fu_cbor_item_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:352,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:359,1
    - Dst: fu_cbor_item_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:363,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuCborItem*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 365
    functionName: fu_cbor_item_append
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 1
    functionsReached:
    - FU_CBOR_ITEM_TO_STRING
    - fu_byte_array_append_bytes
    - FU_CBOR_ITEM_TO_INT64
    - fu_cbor_item_append
    - g_set_error
    - fu_cbor_item_kind_to_string
    - FU_CBOR_ITEM_TO_BYTES
    - FU_CBOR_ITEM_TO_ARRAY
    - strlen
    - g_bytes_get_size
    - g_byte_array_append
    - FU_CBOR_ITEM_TO_BOOLEAN
    - fu_cbor_item_append_extended
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cbor_item_append(FuCborItem *self, GByteArray *buf, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:381,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:381,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:383,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:384,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:388,1
    - Dst: fu_cbor_item_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:392,1
    - Dst: fu_cbor_item_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:395,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:399,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCborItem*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 378
    functionDepth: 4
    functionLinenumber: 378
    functionLinenumberEnd: 400
    functionName: fu_cbor_item_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_cbor_item_kind_to_string
    - g_set_error
    - fu_cbor_item_append
    - g_steal_pointer
    - g_byte_array_new
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_cbor_item_write(FuCborItem *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:415,1
    - Dst: g_ref_count_inc
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCborItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 418
    functionName: fu_cbor_item_ref
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_ref_count_inc
    linkageType: ''
    returnType: FuCborItem
    signature: 'FuCborItem *

      fu_cbor_item_ref(FuCborItem *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:433,1
    - Dst: g_ref_count_dec
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:434,1
    - Dst: FuCborItem*::value_destroy
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:437,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCborItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 440
    functionName: fu_cbor_item_unref
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FuCborItem*::value_destroy
    - g_free
    - g_ref_count_dec
    linkageType: ''
    returnType: FuCborItem
    signature: 'FuCborItem *

      fu_cbor_item_unref(FuCborItem *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:455,1
    - Dst: g_ref_count_init
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:456,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 461
    functionName: fu_cbor_item_new_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_ref_count_init
    - g_new0
    linkageType: ''
    returnType: FuCborItem
    signature: 'FuCborItem *

      fu_cbor_item_new_string(const gchar *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:476,1
    - Dst: g_ref_count_init
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:477,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 482
    functionName: fu_cbor_item_new_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_ref_count_init
    - g_bytes_ref
    - g_new0
    linkageType: ''
    returnType: FuCborItem
    signature: 'FuCborItem *

      fu_cbor_item_new_bytes(GBytes *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:488,1
    - Dst: g_ref_count_init
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 494
    functionName: fu_cbor_item_new_string_steal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_ref_count_init
    - g_new0
    linkageType: ''
    returnType: FuCborItem
    signature: 'FuCborItem *

      fu_cbor_item_new_string_steal(gchar *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:509,1
    - Dst: g_ref_count_init
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:510,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - gint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 516
    functionName: fu_cbor_item_new_integer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_ref_count_init
    - g_new0
    linkageType: ''
    returnType: FuCborItem
    signature: 'FuCborItem *

      fu_cbor_item_new_integer(gint64 value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:531,1
    - Dst: g_ref_count_init
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:532,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 536
    functionName: fu_cbor_item_new_boolean
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_ref_count_init
    - g_new0
    - GUINT_TO_POINTER
    linkageType: ''
    returnType: FuCborItem
    signature: 'FuCborItem *

      fu_cbor_item_new_boolean(gboolean value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_cbor_item_unref
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:541,1
    - Dst: fu_cbor_item_unref
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:542,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pair
    argTypes:
    - FuCborPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 544
    functionName: fu_cbor_item_map_pair_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_free
    - fu_cbor_item_unref
    linkageType: ''
    returnType: void
    signature: void fu_cbor_item_map_pair_free(FuCborPair *pair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:558,1
    - Dst: g_ref_count_init
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:559,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 564
    functionName: fu_cbor_item_new_map
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_ref_count_init
    - g_ptr_array_new_with_free_func
    - g_new0
    linkageType: ''
    returnType: FuCborItem
    signature: 'FuCborItem *

      fu_cbor_item_new_map(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:578,1
    - Dst: g_ref_count_init
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:579,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 584
    functionName: fu_cbor_item_new_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_ref_count_init
    - g_ptr_array_new_with_free_func
    - g_new0
    linkageType: ''
    returnType: FuCborItem
    signature: 'FuCborItem *

      fu_cbor_item_new_array(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:601,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:602,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:603,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:607,1
    - Dst: fu_cbor_item_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:611,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:614,1
    - Dst: FU_CBOR_ITEM_TO_ARRAY
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:614,1
    - Dst: fu_cbor_item_ref
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:614,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - item
    - error
    argTypes:
    - FuCborItem*
    - FuCborItem*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 616
    functionName: fu_cbor_item_array_append
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_cbor_item_kind_to_string
    - g_set_error
    - fu_cbor_item_ref
    - g_ptr_array_add
    - FU_CBOR_ITEM_TO_ARRAY
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cbor_item_array_append(FuCborItem *self, FuCborItem *item,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:637,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:638,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:639,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:640,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:641,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:645,1
    - Dst: fu_cbor_item_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:649,1
    - Dst: fu_cbor_item_ref
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:653,1
    - Dst: fu_cbor_item_ref
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:654,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:655,1
    - Dst: FU_CBOR_ITEM_TO_ARRAY
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:655,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:655,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - self
    - item_key
    - item_val
    - error
    argTypes:
    - FuCborItem*
    - FuCborItem*
    - FuCborItem*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 657
    functionName: fu_cbor_item_map_append
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_new0
    - fu_cbor_item_kind_to_string
    - g_set_error
    - fu_cbor_item_ref
    - g_steal_pointer
    - g_ptr_array_add
    - FU_CBOR_ITEM_TO_ARRAY
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_cbor_item_map_append(FuCborItem *self,\n\t\t\tFuCborItem
      *item_key,\n\t\t\tFuCborItem *item_val,\n\t\t\tGError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:663,1
    - Dst: FU_CBOR_ITEM_TO_INT64
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:663,1
    - Dst: FU_CBOR_ITEM_TO_BOOLEAN
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:667,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:668,1
    - Dst: FU_CBOR_ITEM_TO_STRING
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:672,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:674,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:677,1
    - Dst: FU_CBOR_ITEM_TO_BYTES
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:681,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:682,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:683,1
    - Dst: FU_CBOR_ITEM_TO_ARRAY
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:687,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:688,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:690,1
    - Dst: fu_cbor_item_append_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:691,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:693,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:695,1
    - Dst: FU_CBOR_ITEM_TO_ARRAY
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:699,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:700,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:702,1
    - Dst: fu_cbor_item_append_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:703,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:704,1
    - Dst: fu_cbor_item_append_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:705,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:707,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:709,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - self
    - str
    argTypes:
    - FuCborItem*
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 712
    functionName: fu_cbor_item_append_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 1
    functionsReached:
    - FU_CBOR_ITEM_TO_STRING
    - g_string_append
    - FU_CBOR_ITEM_TO_INT64
    - FU_CBOR_ITEM_TO_BYTES
    - fu_bytes_to_string
    - FU_CBOR_ITEM_TO_ARRAY
    - g_string_append_printf
    - FU_CBOR_ITEM_TO_BOOLEAN
    - fu_cbor_item_append_string
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_cbor_item_append_string(FuCborItem *self, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:727,1
    - Dst: fu_cbor_item_append_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:728,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-cbor-item.c:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCborItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 724
    functionDepth: 2
    functionLinenumber: 724
    functionLinenumberEnd: 730
    functionName: fu_cbor_item_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_append_string
    - g_string_new
    - g_string_free
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_cbor_item_to_string(FuCborItem *self)'
  - 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/libfwupdplugin/fu-zip-file.c
    functionUses: 808
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:34,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:35,1
    - Dst: FU_IS_ZIP_FILE
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuZipFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: fu_zip_file_get_compression
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-zip-file.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ZIP_FILE
    - GET_PRIVATE
    linkageType: ''
    returnType: FuZipCompression
    signature: FuZipCompression fu_zip_file_get_compression(FuZipFile *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:51,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:52,1
    - Dst: FU_IS_ZIP_FILE
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - compression
    argTypes:
    - FuZipFile*
    - FuZipCompression
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: fu_zip_file_set_compression
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-zip-file.c
    functionUses: 3
    functionsReached:
    - FU_IS_ZIP_FILE
    - g_return_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_zip_file_set_compression(FuZipFile *self, FuZipCompression
      compression)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_ZIP_FILE
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:59,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:60,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:64,1
    - Dst: fu_zip_compression_from_string
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 70
    functionName: fu_zip_file_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-zip-file.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - fu_zip_compression_from_string
    - FU_ZIP_FILE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_zip_file_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ZIP_FILE
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:75,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:76,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:77,1
    - Dst: fu_zip_compression_to_string
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: fu_zip_file_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-zip-file.c
    functionUses: 0
    functionsReached:
    - fu_zip_compression_to_string
    - FU_ZIP_FILE
    - fu_xmlb_builder_insert_kv
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_zip_file_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuZipFileClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: fu_zip_file_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-zip-file.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_zip_file_class_init(FuZipFileClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:93,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:93,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:94,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:94,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:95,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuZipFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: fu_zip_file_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-zip-file.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_zip_file_init(FuZipFile *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:108,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-zip-file.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: fu_zip_file_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-zip-file.c
    functionUses: 3
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_zip_file_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-oprom-firmware.c
    functionUses: 812
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:54,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:55,1
    - Dst: FU_IS_OPROM_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuOpromFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: fu_oprom_firmware_get_machine_type
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_OPROM_FIRMWARE
    - 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:72,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:73,1
    - Dst: FU_IS_OPROM_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuOpromFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: fu_oprom_firmware_get_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_OPROM_FIRMWARE
    - 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:90,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:91,1
    - Dst: FU_IS_OPROM_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuOpromFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: fu_oprom_firmware_get_compression_type
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_OPROM_FIRMWARE
    - 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:98,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:99,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:100,1
    - Dst: fu_xmlb_builder_insert_kx
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 105
    functionName: fu_oprom_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_OPROM_FIRMWARE
    - GET_PRIVATE
    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:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_OPROM_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:119,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:126,1
    - Dst: fu_struct_oprom_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:129,1
    - Dst: fu_struct_oprom_get_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:132,1
    - Dst: fu_struct_oprom_get_compression_type
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:133,1
    - Dst: fu_struct_oprom_get_machine_type
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:134,1
    - Dst: fu_struct_oprom_get_pci_header_offset
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:137,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:139,1
    - Dst: fu_struct_oprom_pci_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:147,1
    - Dst: fu_struct_oprom_pci_get_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:150,1
    - Dst: fu_struct_oprom_pci_get_device_id
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:151,1
    - Dst: fu_struct_oprom_pci_get_image_length
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:154,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:156,1
    - Dst: fu_size_checked_inc_product
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:159,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:163,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:166,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:167,1
    - Dst: fu_struct_oprom_pci_get_code_type
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:167,1
    - Dst: fu_struct_oprom_pci_get_indicator
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:170,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:171,1
    - Dst: fu_struct_oprom_get_expansion_header_offset
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:174,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:176,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:177,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:185,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:188,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:189,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:190,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 113
    functionDepth: 5
    functionLinenumber: 113
    functionLinenumberEnd: 196
    functionName: fu_oprom_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_oprom_get_subsystem
    - FU_OPROM_FIRMWARE
    - fu_struct_oprom_pci_parse_stream
    - fu_struct_oprom_get_compression_type
    - fu_firmware_set_offset
    - fu_struct_oprom_pci_get_image_length
    - fu_firmware_add_flag
    - fu_size_checked_inc_product
    - fu_struct_oprom_get_pci_header_offset
    - fu_firmware_new_from_gtypes
    - fu_firmware_add_image
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_struct_oprom_pci_get_code_type
    - fu_firmware_set_size
    - GET_PRIVATE
    - fu_struct_oprom_parse_stream
    - fu_firmware_set_idx
    - fu_firmware_set_id
    - fu_struct_oprom_get_expansion_header_offset
    - fu_struct_oprom_get_machine_type
    - fu_struct_oprom_pci_get_vendor_id
    - fu_struct_oprom_pci_get_indicator
    - g_autoptr
    - fu_struct_oprom_pci_get_device_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: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_OPROM_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:201,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:202,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:204,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:204,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:205,1
    - Dst: fu_struct_oprom_new
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:205,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:206,1
    - Dst: fu_struct_oprom_pci_new
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:206,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:207,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:210,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:211,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:214,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:214,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:215,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:216,1
    - Dst: fu_struct_oprom_set_image_size
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:222,1
    - Dst: fu_struct_oprom_set_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:223,1
    - Dst: fu_struct_oprom_set_machine_type
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:224,1
    - Dst: fu_struct_oprom_set_compression_type
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:225,1
    - Dst: fu_struct_oprom_set_expansion_header_offset
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:227,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:231,1
    - Dst: fu_struct_oprom_pci_set_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:234,1
    - Dst: fu_struct_oprom_pci_set_device_id
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:235,1
    - Dst: fu_struct_oprom_pci_set_image_length
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:236,1
    - Dst: fu_struct_oprom_pci_set_code_type
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:237,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:237,1
    - Dst: fu_firmware_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:238,1
    - Dst: fu_struct_oprom_pci_set_indicator
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:239,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:240,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:241,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:245,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:246,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 198
    functionDepth: 5
    functionLinenumber: 198
    functionLinenumberEnd: 251
    functionName: fu_oprom_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_align_up
    - FU_OPROM_FIRMWARE
    - fu_struct_oprom_pci_set_device_id
    - fu_struct_oprom_set_expansion_header_offset
    - fu_byte_array_append_bytes
    - fu_firmware_get_image_by_id_bytes
    - g_prefix_error_literal
    - g_byte_array_new
    - fu_common_align_up
    - fu_firmware_get_idx
    - fu_struct_oprom_set_compression_type
    - fu_struct_oprom_pci_set_image_length
    - fu_struct_oprom_set_image_size
    - GET_PRIVATE
    - fu_struct_oprom_pci_set_indicator
    - fu_struct_oprom_pci_set_vendor_id
    - fu_struct_oprom_set_machine_type
    - g_byte_array_append
    - fu_struct_oprom_pci_new
    - fu_struct_oprom_pci_set_code_type
    - fu_byte_array_append_array
    - g_steal_pointer
    - fu_struct_oprom_new
    - fu_struct_oprom_set_subsystem
    - fu_firmware_has_flag
    - g_bytes_get_size
    - fu_size_checked_inc
    - g_autoptr
    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:256,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:257,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:261,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:264,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:268,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:271,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:275,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:278,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:282,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:285,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:289,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:292,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 299
    functionName: fu_oprom_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - xb_node_query_text
    - FU_OPROM_FIRMWARE
    - GET_PRIVATE
    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:304,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:304,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:305,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:305,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:306,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:306,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:307,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:307,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:308,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuOpromFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 309
    functionName: fu_oprom_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuOpromFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 320
    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:332,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: fu_oprom_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
    functionUses: 2
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 819
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:85,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:86,1
    - Dst: FU_IS_UDEV_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: fu_device_rescan
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:88,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:88,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:89,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: fu_udev_device_emit_changed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - g_debug
    - fu_device_rescan
    - g_return_if_fail
    - FU_DEVICE
    - g_signal_emit
    - FU_IS_UDEV_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:96,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:97,1
    - Dst: fu_io_channel_open_flags_to_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:98,1
    - Dst: fwupd_codec_string_append_hex
      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
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:105,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: fu_udev_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_io_channel_open_flags_to_string
    - fwupd_codec_string_append
    - FU_UDEV_DEVICE
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    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:112,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:119,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:120,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:123,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:124,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:127,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:127,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:128,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:128,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUdevDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 139
    functionName: fu_udev_device_ensure_bind_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_udev_device_get_sysfs_path
    - g_path_get_basename
    - g_set_error
    - fu_udev_device_read_property
    - GET_PRIVATE
    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:145,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:148,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:151,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:152,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:153,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - subsystem
    argTypes:
    - FuUdevDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 154
    functionName: fu_udev_device_set_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_object_notify
    - g_strcmp0
    - g_free
    - G_OBJECT
    - GET_PRIVATE
    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:168,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:171,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:174,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:175,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:176,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - bind_id
    argTypes:
    - FuUdevDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 177
    functionName: fu_udev_device_set_bind_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_object_notify
    - g_strcmp0
    - g_free
    - G_OBJECT
    - GET_PRIVATE
    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:182,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:185,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:188,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:189,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:190,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - driver
    argTypes:
    - FuUdevDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 191
    functionName: fu_udev_device_set_driver
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_object_notify
    - g_strcmp0
    - g_free
    - G_OBJECT
    - GET_PRIVATE
    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:205,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:208,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:211,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:212,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:213,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device_file
    argTypes:
    - FuUdevDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 214
    functionName: fu_udev_device_set_device_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_object_notify
    - g_strcmp0
    - g_free
    - G_OBJECT
    - GET_PRIVATE
    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:225,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:226,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:231,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:231,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:232,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:232,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:232,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:234,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:238,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:238,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:239,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:239,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:242,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:242,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:247,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:247,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:250,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:250,1
    - Dst: fu_path_get_symlink_target
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:251,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:254,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:258,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:261,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 262
    functionName: fu_udev_device_get_symlink_target
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - g_strdup
    - fu_udev_device_get_sysfs_path
    - g_path_get_basename
    - fu_device_load_event
    - fu_device_event_set_str
    - g_set_error_literal
    - g_steal_pointer
    - fu_device_get_context
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_save_event
    - fu_device_has_flag
    - fu_path_get_symlink_target
    - fu_device_event_get_str
    - g_build_filename
    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:268,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:269,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - number
    argTypes:
    - FuUdevDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: fu_udev_device_set_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_UDEV_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:277,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:280,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:283,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:284,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:285,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - devtype
    argTypes:
    - FuUdevDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 286
    functionName: fu_udev_device_set_devtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_object_notify
    - g_strcmp0
    - g_free
    - G_OBJECT
    - GET_PRIVATE
    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:292,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:293,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:293,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:293,1
    - Dst: g_ascii_isdigit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:298,1
    - Dst: g_string_erase
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:299,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:304,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUdevDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 315
    functionName: fu_udev_device_parse_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_sysfs_path
    - fu_strtoull
    - g_ascii_isdigit
    - g_string_new
    - g_string_erase
    - g_autoptr
    - GET_PRIVATE
    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:320,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:323,1
    - Dst: g_strv_contains
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:326,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:330,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:333,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:334,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUdevDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 339
    functionName: fu_udev_device_ensure_devtype_from_modalias
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strsplit
    - g_strv_length
    - fu_udev_device_read_property
    - g_strv_contains
    - g_auto
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_device_ensure_devtype_from_modalias(FuUdevDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:345,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:348,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:349,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - devname
    argTypes:
    - FuUdevDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 352
    functionName: fu_udev_device_build_devfs_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - g_strcmp0
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_udev_device_build_devfs_path(FuUdevDevice *self, const gchar *devname)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:357,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:358,1
    - Dst: fu_udev_device_get_symlink_target
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:366,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:368,1
    - Dst: fu_udev_device_set_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:371,1
    - Dst: fu_udev_device_get_symlink_target
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:374,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:376,1
    - Dst: fu_udev_device_ensure_devtype_from_modalias
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:378,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:384,1
    - Dst: fu_udev_device_build_devfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:387,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:388,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:393,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:399,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:400,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:402,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:405,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:411,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:413,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:417,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:418,1
    - Dst: fu_udev_device_parse_number
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:419,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:420,1
    - Dst: g_ascii_strup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:425,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:427,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:427,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:431,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:438,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:452,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:456,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:457,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:458,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:460,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:461,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:471,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:472,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:481,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:482,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 354
    functionDepth: 4
    functionLinenumber: 354
    functionLinenumberEnd: 493
    functionName: fu_udev_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_build_devfs_path
    - fu_device_add_instance_strup
    - fu_udev_device_get_symlink_target
    - g_ascii_strup
    - g_debug
    - fu_device_add_instance_str
    - g_prefix_error_literal
    - fu_device_set_vendor
    - fu_device_build_instance_id_full
    - g_str_has_prefix
    - GET_PRIVATE
    - fu_udev_device_get_sysfs_path
    - fu_device_set_vid
    - fu_strtoull
    - fu_device_build_vendor_id_u16
    - fu_device_get_vid
    - fu_udev_device_read_sysfs
    - fu_udev_device_read_property
    - fu_udev_device_parse_number
    - fu_udev_device_ensure_devtype_from_modalias
    - FU_UDEV_DEVICE
    - fu_udev_device_set_device_file
    - fu_device_set_pid
    - g_autoptr
    - fu_udev_device_set_subsystem
    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:509,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:511,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:511,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:514,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:514,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:514,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:514,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:517,1
    - Dst: fu_device_get_backend_parent
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:518,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:518,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:521,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - subsystem
    argTypes:
    - FuUdevDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 524
    functionName: fu_udev_device_get_subsystem_depth
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_device_get_backend_parent_with_subsystem
    - g_set_object
    - FU_DEVICE
    - fu_device_get_id
    - fu_device_get_backend_parent
    - g_autoptr
    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:529,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:530,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 533
    functionName: fu_udev_device_probe_complete
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_DEVICE
    - g_hash_table_remove_all
    - GET_PRIVATE
    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:538,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:539,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:541,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:544,1
    - Dst: FU_DEVICE
      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:548,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:549,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:552,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:552,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:553,1
    - Dst: fu_udev_device_ensure_bind_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:557,1
    - Dst: fu_output_stream_from_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:559,1
    - Dst: g_output_stream_write_all
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:562,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:564,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 568
    functionName: fu_udev_device_unbind_driver
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_sysfs_path
    - fu_udev_device_ensure_bind_id
    - g_set_error_literal
    - g_output_stream_write_all
    - FU_DEVICE
    - g_file_test
    - fu_output_stream_from_path
    - fu_device_has_flag
    - strlen
    - FU_UDEV_DEVICE
    - g_autoptr
    - g_build_filename
    - GET_PRIVATE
    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:576,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:577,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:578,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:580,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:581,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:584,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:584,1
    - Dst: g_strdelimit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:588,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:591,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:595,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:596,1
    - Dst: fu_udev_device_ensure_bind_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:606,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:609,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:616,1
    - Dst: G_OUTPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:618,1
    - Dst: g_file_replace
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:618,1
    - Dst: g_output_stream_write_all
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:621,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:623,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - device
    - subsystem
    - driver
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 627
    functionName: fu_udev_device_bind_driver
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - G_OUTPUT_STREAM
    - g_file_replace
    - g_set_error
    - fu_udev_device_ensure_bind_id
    - g_output_stream_write_all
    - FU_DEVICE
    - g_strdup_printf
    - g_file_test
    - fu_device_has_flag
    - g_strdelimit
    - strlen
    - g_file_new_for_path
    - FU_UDEV_DEVICE
    - g_autoptr
    - GET_PRIVATE
    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:632,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:633,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 635
    functionName: fu_udev_device_get_open_flags
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: FuIoChannelOpenFlags
    signature: FuIoChannelOpenFlags fu_udev_device_get_open_flags(FuUdevDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:640,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:641,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 644
    functionName: fu_udev_device_invalidate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_DEVICE
    - g_hash_table_remove_all
    - GET_PRIVATE
    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:649,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:650,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:651,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:653,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:653,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:654,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:654,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:657,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:657,1
    - Dst: fu_udev_device_set_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:659,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:659,1
    - Dst: fu_udev_device_set_bind_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:661,1
    - Dst: fu_udev_device_get_bind_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:661,1
    - Dst: fu_udev_device_set_driver
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:663,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:663,1
    - Dst: fu_udev_device_set_devtype
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:665,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:665,1
    - Dst: fu_udev_device_set_number
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:667,1
    - Dst: fu_udev_device_get_number
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:667,1
    - Dst: fu_udev_device_get_open_flags
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:669,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 670
    functionName: fu_udev_device_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_device_file
    - fu_udev_device_get_open_flags
    - fu_udev_device_set_number
    - fu_udev_device_get_number
    - fu_udev_device_set_bind_id
    - fu_udev_device_get_devtype
    - fu_udev_device_set_devtype
    - fu_udev_device_set_driver
    - g_return_if_fail
    - fu_udev_device_get_bind_id
    - fu_udev_device_get_driver
    - fu_udev_device_set_device_file
    - fu_udev_device_set_subsystem
    - FU_IS_UDEV_DEVICE
    - FU_UDEV_DEVICE
    - fu_udev_device_get_subsystem
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_incorporate(FuDevice *device, FuDevice *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:685,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:686,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 688
    functionName: fu_udev_device_get_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 11
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    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:703,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:704,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:704,1
    - Dst: fu_udev_device_ensure_bind_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 700
    functionDepth: 2
    functionLinenumber: 700
    functionLinenumberEnd: 707
    functionName: fu_udev_device_get_bind_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_udev_device_ensure_bind_id
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    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:722,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:723,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 725
    functionName: fu_udev_device_get_driver
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    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:740,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:741,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 743
    functionName: fu_udev_device_get_device_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_udev_device_get_device_file(FuUdevDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:758,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:758,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:760,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:760,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:761,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:761,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:762,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 763
    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_get_physical_id
    - fu_device_has_private_flag
    - 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:778,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:779,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 781
    functionName: fu_udev_device_get_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    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:786,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:787,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:787,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:788,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:788,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:791,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:791,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:792,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:796,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:797,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:798,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:800,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:801,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:803,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:805,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:807,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:808,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:808,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:813,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:816,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:817,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:817,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 818
    functionName: fu_udev_device_get_parent_subsystems
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_udev_device_get_devtype
    - fu_device_get_backend_parent_with_subsystem
    - g_steal_pointer
    - g_set_object
    - g_string_free
    - FU_DEVICE
    - g_object_ref
    - fu_udev_device_get_subsystem
    - fu_device_has_flag
    - g_string_new
    - g_string_append_printf
    - g_string_truncate
    - FU_UDEV_DEVICE
    - g_autoptr
    - GET_PRIVATE
    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:824,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:826,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:826,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:830,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:831,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:831,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:834,1
    - Dst: fu_udev_device_get_devtype
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:834,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - subsystem
    argTypes:
    - FuUdevDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 838
    functionName: fu_udev_device_match_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - fu_udev_device_get_devtype
    - g_strsplit
    - FU_IS_UDEV_DEVICE
    - g_auto
    - fu_udev_device_get_subsystem
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_device_match_subsystem(FuUdevDevice *self, const gchar
      *subsystem)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:848,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:849,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:851,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:851,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:852,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:853,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:856,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:856,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:856,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:857,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:859,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:860,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:867,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:867,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:868,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:871,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:873,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:881,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:882,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:884,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - self
    - subsystem
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 841
    functionDepth: 2
    functionLinenumber: 841
    functionLinenumberEnd: 885
    functionName: fu_udev_device_get_device_file_from_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_dir_open
    - g_strcmp0
    - fu_udev_device_get_sysfs_path
    - g_set_error
    - g_steal_pointer
    - fwupd_error_convert
    - g_strdup_printf
    - g_error_matches
    - g_dir_read_name
    - FU_IS_UDEV_DEVICE
    - FU_UDEV_DEVICE
    - g_propagate_error
    - g_autoptr
    - g_build_filename
    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:901,1
    - Dst: g_strrstr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:903,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:903,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:906,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 897
    functionDepth: 2
    functionLinenumber: 897
    functionLinenumberEnd: 907
    functionName: fu_udev_device_get_devpath
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_udev_device_get_sysfs_path
    - g_strrstr
    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:932,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:933,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:935,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:935,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:936,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:937,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:940,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:942,1
    - Dst: fu_udev_device_match_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:945,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:946,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:951,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:952,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:952,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:954,1
    - Dst: fu_udev_device_get_parent_subsystems
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:959,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:960,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:969,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:970,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:970,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:971,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:971,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:972,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:972,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:975,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:977,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:980,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:981,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:981,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:982,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:982,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:983,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:983,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:984,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:984,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:985,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:986,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:986,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:988,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:989,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:991,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:994,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:995,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:997,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1000,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1002,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1011,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1011,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 57
    argCount: 3
    argNames:
    - self
    - subsystems
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 927
    functionDepth: 2
    functionLinenumber: 927
    functionLinenumberEnd: 1013
    functionName: fu_udev_device_set_physical_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - fu_device_get_physical_id
    - g_object_ref
    - g_strdup_printf
    - g_auto
    - fu_udev_device_match_subsystem
    - fu_device_set_physical_id
    - g_strsplit
    - fu_udev_device_get_subsystem
    - fu_udev_device_get_sysfs_path
    - FU_DEVICE
    - fu_udev_device_read_property
    - FU_UDEV_DEVICE
    - g_return_val_if_fail
    - fu_udev_device_get_parent_subsystems
    - g_strcmp0
    - g_set_error
    - fu_device_get_backend_parent_with_subsystem
    - FU_IS_UDEV_DEVICE
    - g_autoptr
    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:1028,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1029,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1025
    functionDepth: 0
    functionLinenumber: 1025
    functionLinenumberEnd: 1031
    functionName: fu_udev_device_get_io_channel
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    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:1046,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1047,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1047,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1048,1
    - Dst: FU_IS_IO_CHANNEL
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1048,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - io_channel
    argTypes:
    - FuUdevDevice*
    - FuIOChannel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1050
    functionName: fu_udev_device_set_io_channel
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - g_set_object
    - FU_IS_UDEV_DEVICE
    - FU_IS_IO_CHANNEL
    - 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:1064,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1065,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuUdevDevice*
    - FuIoChannelOpenFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1061
    functionDepth: 0
    functionLinenumber: 1061
    functionLinenumberEnd: 1067
    functionName: fu_udev_device_remove_open_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_UDEV_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_remove_open_flag(FuUdevDevice *self, FuIoChannelOpenFlags
      flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1084,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1085,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuUdevDevice*
    - FuIoChannelOpenFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1091
    functionName: fu_udev_device_add_open_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_UDEV_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_add_open_flag(FuUdevDevice *self, FuIoChannelOpenFlags
      flag)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1096,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1097,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1100,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1100,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1107,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1108,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1112,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1112,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1113,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1113,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1118,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1119,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1093
    functionDepth: 1
    functionLinenumber: 1093
    functionLinenumberEnd: 1127
    functionName: fu_udev_device_open
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_id_display
    - fu_io_channel_new_file
    - g_critical
    - g_set_object
    - FU_DEVICE
    - fu_device_has_flag
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_udev_device_add_open_flag
    - GET_PRIVATE
    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:1132,1
    - Dst: fu_device_probe_invalidate
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1134,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1136
    functionName: fu_udev_device_rescan
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - fu_device_probe_invalidate
    - fu_device_has_flag
    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:1141,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1142,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1145,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1145,1
    - Dst: fu_io_channel_shutdown
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1156
    functionName: fu_udev_device_close
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_io_channel_shutdown
    - FU_DEVICE
    - fu_device_has_flag
    - FU_UDEV_DEVICE
    - GET_PRIVATE
    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:1173,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1173,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1174,1
    - Dst: fu_udev_device_close
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1176,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1176,1
    - Dst: fu_udev_device_open
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1178,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUdevDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1170
    functionDepth: 2
    functionLinenumber: 1170
    functionLinenumberEnd: 1179
    functionName: fu_udev_device_reopen
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_udev_device_open
    - FU_DEVICE
    - FU_IS_UDEV_DEVICE
    - fu_udev_device_close
    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:1194,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1194,1
    - Dst: fu_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1191
    functionDepth: 1
    functionLinenumber: 1191
    functionLinenumberEnd: 1196
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1210,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1212,1
    - Dst: g_timer_new
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1212,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1214,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1214,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1215,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1216,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1217,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1220,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1220,1
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1221,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1229,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1229,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1230,1
    - Dst: ioctl
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1240,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1240,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1246,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1252,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1259,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1266,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1272,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1276,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1279,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1290,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    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: 1296
      start: 1199
    functionDepth: 1
    functionLinenumber: 1199
    functionLinenumberEnd: 1296
    functionName: fu_udev_device_ioctl
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_device_get_id_display
    - g_set_error
    - ioctl
    - g_set_error_literal
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_timer_elapsed
    - fu_io_channel_unix_get_fd
    - memset
    - FU_IS_UDEV_DEVICE
    - g_timer_new
    - fwupd_strerror
    - g_autoptr
    - GET_PRIVATE
    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:1315,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1319,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1319,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1320,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1321,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1324,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1324,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1325,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1325,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1325,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1327,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1335,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1335,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1336,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1336,1
    - Dst: fu_device_event_copy_data
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1339,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1344,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1344,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1348,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1348,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1349,1
    - Dst: pread
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1358,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1358,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1359,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1362,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1368,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1369,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1375,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1378,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: 1384
      start: 1312
    functionDepth: 3
    functionLinenumber: 1312
    functionLinenumberEnd: 1384
    functionName: fu_udev_device_pread
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - fu_device_get_context
    - g_strdup_printf
    - fu_device_get_id_display
    - g_set_error_literal
    - fu_device_save_event
    - fu_device_has_flag
    - fu_device_event_set_data
    - pread
    - GET_PRIVATE
    - fwupd_error_convert
    - FU_DEVICE
    - fu_device_event_copy_data
    - g_return_val_if_fail
    - g_io_error_from_errno
    - g_set_error
    - fu_io_channel_unix_get_fd
    - FU_IS_UDEV_DEVICE
    - fwupd_strerror
    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:1401,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1403,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1403,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1404,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1407,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1407,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1414,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1414,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1415,1
    - Dst: fu_io_channel_seek
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - offset
    - error
    argTypes:
    - FuUdevDevice*
    - goffset
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1398
    functionDepth: 1
    functionLinenumber: 1398
    functionLinenumberEnd: 1423
    functionName: fu_udev_device_seek
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_device_get_id_display
    - g_set_error
    - FU_DEVICE
    - fu_device_has_flag
    - FU_IS_UDEV_DEVICE
    - fu_io_channel_seek
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_device_seek(FuUdevDevice *self, goffset offset, GError
      **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1446,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1450,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1450,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1451,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1454,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1454,1
    - Dst: fu_device_check_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1455,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1455,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1460,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1460,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1461,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1461,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1461,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1463,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1464,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1474,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1474,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1475,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1475,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1483,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1483,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1486,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1486,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1491,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1491,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1492,1
    - Dst: pwrite
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1501,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1501,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1503,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1506,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1512,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1513,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1519,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1524,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 5
    argNames:
    - self
    - port
    - buf
    - bufsz
    - error
    argTypes:
    - FuUdevDevice*
    - goffset
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1439
    functionDepth: 3
    functionLinenumber: 1439
    functionLinenumberEnd: 1530
    functionName: fu_udev_device_pwrite
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - fu_device_get_context
    - g_strdup_printf
    - fu_device_get_id_display
    - g_set_error_literal
    - fu_device_save_event
    - fu_device_has_flag
    - fu_device_event_set_data
    - GET_PRIVATE
    - fu_device_check_fwupd_version
    - fwupd_error_convert
    - FU_DEVICE
    - g_return_val_if_fail
    - g_io_error_from_errno
    - g_set_error
    - fu_device_has_private_flag
    - fu_io_channel_unix_get_fd
    - FU_IS_UDEV_DEVICE
    - fwupd_strerror
    - g_base64_encode
    - pwrite
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1557,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1561,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1563,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1563,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1564,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1565,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1568,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1568,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1569,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1569,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1569,1
    - Dst: fu_device_check_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1572,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1572,1
    - Dst: fu_device_get_created
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1573,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1573,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1574,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1578,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1583,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1583,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1584,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1584,1
    - Dst: fu_device_event_check_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1587,1
    - Dst: fu_device_event_copy_data
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1589,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1594,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1594,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1597,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1597,1
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1598,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1606,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1606,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1607,1
    - Dst: fu_io_channel_read_raw
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1614,1
    - Dst: fu_device_event_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1622,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1623,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1623,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1631,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    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: 1633
      start: 1548
    functionDepth: 4
    functionLinenumber: 1548
    functionLinenumberEnd: 1633
    functionName: fu_udev_device_read
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - fu_device_get_context
    - fu_io_channel_read_raw
    - g_strdup_printf
    - fu_device_event_set_error
    - fu_device_get_id_display
    - fu_device_save_event
    - fu_device_has_flag
    - fu_device_event_set_data
    - g_propagate_error
    - GET_PRIVATE
    - fu_device_event_check_error
    - fu_device_check_fwupd_version
    - FU_DEVICE
    - memset
    - fu_device_event_copy_data
    - g_return_val_if_fail
    - g_set_error
    - g_steal_pointer
    - fu_device_has_private_flag
    - FU_IS_UDEV_DEVICE
    - fu_device_get_created
    - g_autoptr
    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:1659,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1659,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1660,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1661,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1663,1
    - Dst: fu_udev_device_read
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1664,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1666,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: 1667
      start: 1649
    functionDepth: 5
    functionLinenumber: 1649
    functionLinenumberEnd: 1667
    functionName: fu_udev_device_read_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_new
    - g_malloc0
    - FU_IS_UDEV_DEVICE
    - fu_udev_device_read
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1691,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1691,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1693,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1693,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1694,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1695,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1697,1
    - Dst: fu_udev_device_read
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1698,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1700,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1701,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - self
    - count
    - timeout_ms
    - flags
    - error
    argTypes:
    - FuUdevDevice*
    - gsize
    - guint
    - FuIoChannelFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1683
    functionDepth: 5
    functionLinenumber: 1683
    functionLinenumberEnd: 1702
    functionName: fu_udev_device_read_byte_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_steal_pointer
    - g_byte_array_set_size
    - g_byte_array_new
    - FU_IS_UDEV_DEVICE
    - fu_udev_device_read
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_udev_device_read_byte_array(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: 11
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1727,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1730,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1732,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1732,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1733,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1734,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1738,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1743,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1743,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1744,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1744,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1744,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1746,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1747,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1751,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1751,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1752,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1752,1
    - Dst: fu_device_event_check_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1755,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1762,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1762,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1765,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1765,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1770,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1770,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1771,1
    - Dst: fu_io_channel_write_raw
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1778,1
    - Dst: fu_device_event_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1785,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1786,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1786,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 6
    argNames:
    - self
    - buf
    - bufsz
    - timeout_ms
    - flags
    - error
    argTypes:
    - FuUdevDevice*
    - guint8*
    - gsize
    - guint
    - FuIoChannelFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1719
    functionDepth: 4
    functionLinenumber: 1719
    functionLinenumberEnd: 1792
    functionName: fu_udev_device_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - fu_context_has_flag
    - g_critical
    - fu_device_load_event
    - fu_device_get_context
    - fu_io_channel_write_raw
    - g_strdup_printf
    - fu_device_event_set_error
    - fu_device_get_id_display
    - fu_device_save_event
    - fu_device_has_flag
    - g_propagate_error
    - GET_PRIVATE
    - fu_device_event_check_error
    - FU_DEVICE
    - g_return_val_if_fail
    - g_set_error
    - g_steal_pointer
    - fu_device_has_private_flag
    - FU_IS_UDEV_DEVICE
    - g_autoptr
    - g_base64_encode
    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:1815,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1815,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1816,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1817,1
    - Dst: fu_udev_device_write
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1818,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1819,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1820,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: 1824
      start: 1808
    functionDepth: 5
    functionLinenumber: 1808
    functionLinenumberEnd: 1824
    functionName: fu_udev_device_write_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_udev_device_write
    - g_bytes_get_data
    - g_bytes_get_size
    - FU_IS_UDEV_DEVICE
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1847,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1847,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1848,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1849,1
    - Dst: fu_udev_device_write
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - self
    - buf
    - timeout_ms
    - flags
    - error
    argTypes:
    - FuUdevDevice*
    - GByteArray*
    - guint
    - FuIoChannelFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1840
    functionDepth: 5
    functionLinenumber: 1840
    functionLinenumberEnd: 1851
    functionName: fu_udev_device_write_byte_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_udev_device_write
    - FU_IS_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_udev_device_write_byte_array(FuUdevDevice *self,\n\t\t\t\tGByteArray
      *buf,\n\t\t\t\tguint timeout_ms,\n\t\t\t\tFuIoChannelFlags flags,\n\t\t\t\tGError
      **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1870,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1871,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1871,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1873,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1873,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1874,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1877,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1877,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1878,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1878,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1878,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1880,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1884,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1884,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1886,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1888,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1888,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1891,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1894,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1896,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1896,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1897,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1902,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1902,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1905,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1906,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1912,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1912,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1914,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1917,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1918,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1918,1
    - Dst: fu_strjoin
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1922,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1923,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1927,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUdevDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1864
    functionDepth: 3
    functionLinenumber: 1864
    functionLinenumberEnd: 1928
    functionName: fu_udev_device_list_sysfs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - fu_strjoin
    - fu_device_get_context
    - g_auto
    - fu_device_event_get_str
    - g_set_error_literal
    - g_strsplit
    - fu_device_save_event
    - fu_device_has_flag
    - g_dir_read_name
    - g_ptr_array_new_with_free_func
    - fu_udev_device_get_sysfs_path
    - fu_device_event_set_str
    - fwupd_error_convert
    - FU_DEVICE
    - g_dir_open
    - g_return_val_if_fail
    - g_strdup
    - g_steal_pointer
    - g_ptr_array_add
    - FU_IS_UDEV_DEVICE
    - g_autoptr
    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:1950,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1951,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1953,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1953,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1954,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1955,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1958,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1958,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1959,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1959,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1959,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1961,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1965,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1965,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1966,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1966,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1969,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1969,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1974,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1974,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1977,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1978,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1984,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1984,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1985,1
    - Dst: fu_io_channel_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1988,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1994,1
    - Dst: g_utf8_validate
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1997,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:1998,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2003,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2013,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2016,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 4
    argNames:
    - self
    - attr
    - timeout_ms
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1943
    functionDepth: 3
    functionLinenumber: 1943
    functionLinenumberEnd: 2017
    functionName: fu_udev_device_read_sysfs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 3
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - fu_device_get_context
    - fu_io_channel_read_byte_array
    - g_strdup_printf
    - fu_device_event_get_str
    - fu_io_channel_new_file
    - g_set_error_literal
    - fu_device_save_event
    - fu_device_has_flag
    - fu_udev_device_get_sysfs_path
    - fu_device_event_set_str
    - FU_DEVICE
    - g_utf8_validate
    - g_return_val_if_fail
    - g_strdup
    - g_strndup
    - g_steal_pointer
    - g_prefix_error
    - FU_IS_UDEV_DEVICE
    - g_autoptr
    - g_build_filename
    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:2043,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2044,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2046,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2046,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2047,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2048,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2051,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2051,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2052,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2052,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2052,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2054,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2058,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2058,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2059,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2059,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2062,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2067,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2067,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2070,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2071,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2077,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2077,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2078,1
    - Dst: fu_io_channel_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2082,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2084,1
    - Dst: fu_device_event_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2090,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2093,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 5
    argNames:
    - self
    - attr
    - count
    - timeout_ms
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - gssize
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2094
      start: 2033
    functionDepth: 3
    functionLinenumber: 2033
    functionLinenumberEnd: 2094
    functionName: fu_udev_device_read_sysfs_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - fu_device_get_context
    - g_strdup_printf
    - fu_io_channel_new_file
    - g_set_error_literal
    - fu_device_save_event
    - fu_device_has_flag
    - fu_udev_device_get_sysfs_path
    - fu_device_event_get_bytes
    - FU_DEVICE
    - g_return_val_if_fail
    - g_steal_pointer
    - g_prefix_error
    - fu_io_channel_read_bytes
    - fu_device_event_set_bytes
    - FU_IS_UDEV_DEVICE
    - g_autoptr
    - g_build_filename
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2120,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2122,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2122,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2123,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2124,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2125,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2128,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2128,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2129,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2129,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2129,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2131,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2135,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2135,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2136,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2136,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2141,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2141,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2145,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2146,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2152,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2152,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2153,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2159,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2159,1
    - Dst: fu_io_channel_write_raw
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2160,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2162,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2166,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - self
    - attr
    - val
    - timeout_ms
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - gchar*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2172
      start: 2110
    functionDepth: 2
    functionLinenumber: 2110
    functionLinenumberEnd: 2172
    functionName: fu_udev_device_write_sysfs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_io_channel_new_file
    - fu_udev_device_get_sysfs_path
    - fu_device_load_event
    - g_set_error_literal
    - fu_device_get_context
    - fu_device_has_private_flag
    - fu_io_channel_write_raw
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_save_event
    - fu_device_has_flag
    - strlen
    - g_prefix_error
    - FU_IS_UDEV_DEVICE
    - g_autoptr
    - g_build_filename
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2198,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2200,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2200,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2201,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2202,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2203,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2206,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2206,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2207,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2207,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2207,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2209,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2210,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2214,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2214,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2215,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2215,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2220,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2220,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2224,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2225,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2231,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2231,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2232,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2238,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2238,1
    - Dst: fu_io_channel_write_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2239,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2244,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - self
    - attr
    - buf
    - timeout_ms
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - GByteArray*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2250
      start: 2188
    functionDepth: 2
    functionLinenumber: 2188
    functionLinenumberEnd: 2250
    functionName: fu_udev_device_write_sysfs_byte_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_io_channel_new_file
    - fu_udev_device_get_sysfs_path
    - fu_device_load_event
    - g_set_error_literal
    - fu_device_get_context
    - fu_device_has_private_flag
    - g_prefix_error
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_save_event
    - fu_device_has_flag
    - FU_IS_UDEV_DEVICE
    - fu_io_channel_write_byte_array
    - g_autoptr
    - g_build_filename
    - g_base64_encode
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2276,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2278,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2278,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2279,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2280,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2281,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2284,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2284,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2285,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2285,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2285,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2288,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2288,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2288,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2289,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2293,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2293,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2294,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2294,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2299,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2299,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2303,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2304,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2310,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2310,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2311,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2317,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2317,1
    - Dst: fu_io_channel_write_bytes
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2318,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2323,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - self
    - attr
    - blob
    - timeout_ms
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - GBytes*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2329
      start: 2266
    functionDepth: 2
    functionLinenumber: 2266
    functionLinenumberEnd: 2329
    functionName: fu_udev_device_write_sysfs_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - fu_device_get_context
    - g_strdup_printf
    - fu_io_channel_new_file
    - g_set_error_literal
    - fu_device_save_event
    - fu_device_has_flag
    - fu_udev_device_get_sysfs_path
    - g_bytes_get_data
    - FU_DEVICE
    - g_return_val_if_fail
    - fu_io_channel_write_bytes
    - g_prefix_error
    - fu_device_has_private_flag
    - g_bytes_get_size
    - FU_IS_UDEV_DEVICE
    - g_autoptr
    - g_build_filename
    - g_base64_encode
    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:2344,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2345,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2347
      start: 2341
    functionDepth: 0
    functionLinenumber: 2341
    functionLinenumberEnd: 2347
    functionName: fu_udev_device_get_devtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 9
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    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:2362,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2363,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2363,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2365,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2367
      start: 2359
    functionDepth: 0
    functionLinenumber: 2359
    functionLinenumberEnd: 2367
    functionName: fu_udev_device_get_subsystem_devtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_strdup_printf
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    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:2373,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2374,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2374,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2375,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2378,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2379,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2380,1
    - Dst: fu_udev_device_set_devtype
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2381,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2383,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2383,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuUdevDevice*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2370
    functionDepth: 1
    functionLinenumber: 2370
    functionLinenumberEnd: 2384
    functionName: fu_udev_device_add_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_hash_table_insert
    - fu_udev_device_set_devtype
    - g_return_if_fail
    - fu_udev_device_set_device_file
    - FU_IS_UDEV_DEVICE
    - GET_PRIVATE
    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:2401,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2406,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2406,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2407,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2408,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2411,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2411,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2412,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2412,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2412,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2414,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2418,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2418,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2419,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2419,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2422,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2422,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2427,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2427,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2432,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2433,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2439,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2442,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2443,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2444,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2445,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2446,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2451,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2451,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2453,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2463,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2466,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FuUdevDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2467
      start: 2398
    functionDepth: 4
    functionLinenumber: 2398
    functionLinenumberEnd: 2467
    functionName: fu_udev_device_read_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 5
    functionsReached:
    - fu_context_has_flag
    - g_hash_table_insert
    - fu_device_load_event
    - g_hash_table_lookup
    - fu_device_get_context
    - g_strdup_printf
    - g_auto
    - fu_device_event_get_str
    - g_strsplit
    - fu_device_save_event
    - fu_device_has_flag
    - GET_PRIVATE
    - fu_device_event_set_str
    - FU_DEVICE
    - g_strstr_len
    - fu_udev_device_read_sysfs
    - g_return_val_if_fail
    - g_strdup
    - g_set_error
    - g_steal_pointer
    - FU_IS_UDEV_DEVICE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_udev_device_read_property(FuUdevDevice *self, const gchar *key, GError **error)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2472,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2473,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2476,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2477,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2478,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2480,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2483,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2485,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2487,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2489,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2491,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2492,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2493,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2493,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2494,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2495,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2495,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - device
    - json_obj
    - flags
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2496
      start: 2469
    functionDepth: 3
    functionLinenumber: 2469
    functionLinenumberEnd: 2496
    functionName: fu_udev_device_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_udev_device_get_sysfs_path
    - fu_device_get_vid
    - fwupd_json_object_add_integer
    - FU_UDEV_DEVICE
    - fwupd_json_object_add_string
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_add_json(FuDevice *device, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2501,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2505,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2507,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2508,1
    - Dst: fu_udev_device_set_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2510,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2511,1
    - Dst: fu_udev_device_set_devtype
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2513,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2514,1
    - Dst: fu_udev_device_set_driver
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2516,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2517,1
    - Dst: fu_udev_device_set_bind_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2519,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2520,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2522,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2523,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2526,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2527,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2530,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - device
    - json_obj
    - error
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2498
    functionDepth: 2
    functionLinenumber: 2498
    functionLinenumberEnd: 2534
    functionName: fu_udev_device_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_set_bind_id
    - fu_device_set_vid
    - fu_udev_device_set_devtype
    - fu_udev_device_set_driver
    - fu_device_set_backend_id
    - fu_udev_device_set_device_file
    - fu_device_set_pid
    - fwupd_json_object_get_string
    - FU_UDEV_DEVICE
    - fwupd_json_object_get_integer_with_default
    - fu_udev_device_set_subsystem
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_udev_device_from_json(FuDevice *device, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2539,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2540,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2543,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2546,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2549,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2552,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2555,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2558,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: 2561
      start: 2536
    functionDepth: 0
    functionLinenumber: 2536
    functionLinenumberEnd: 2561
    functionName: fu_udev_device_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_DEVICE
    - g_value_set_string
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    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:2566,1
    - Dst: fu_udev_device_set_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2569,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2569,1
    - Dst: fu_udev_device_set_bind_id
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2572,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2572,1
    - Dst: fu_udev_device_set_driver
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2575,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2575,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2578,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2578,1
    - Dst: fu_udev_device_set_devtype
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2581,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2581,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2584,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: 2587
      start: 2563
    functionDepth: 1
    functionLinenumber: 2563
    functionLinenumberEnd: 2587
    functionName: fu_udev_device_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_set_bind_id
    - fu_udev_device_set_devtype
    - g_value_get_string
    - fu_udev_device_set_driver
    - fu_udev_device_set_device_file
    - FU_UDEV_DEVICE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - fu_udev_device_set_subsystem
    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:2592,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2593,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2595,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2596,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2597,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2598,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2599,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2600,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2602,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2605
      start: 2589
    functionDepth: 0
    functionLinenumber: 2589
    functionLinenumberEnd: 2605
    functionName: fu_udev_device_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - G_OBJECT_CLASS
    - g_free
    - FU_UDEV_DEVICE
    - g_hash_table_unref
    - GET_PRIVATE
    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:2610,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2611
      start: 2607
    functionDepth: 1
    functionLinenumber: 2607
    functionLinenumberEnd: 2611
    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:2616,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2617
      start: 2613
    functionDepth: 1
    functionLinenumber: 2613
    functionLinenumberEnd: 2617
    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:2622,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2623,1
    - Dst: fu_device_set_acquiesce_delay
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2624,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2624,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2625,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2625,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2626,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2626,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2627,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2627,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2629,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2631,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2631,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2635
      start: 2619
    functionDepth: 1
    functionLinenumber: 2619
    functionLinenumberEnd: 2635
    functionName: fu_udev_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_acquiesce_delay
    - g_signal_connect
    - g_hash_table_new_full
    - FU_DEVICE
    - G_CALLBACK
    - GET_PRIVATE
    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:2640,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2641,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2668,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2669,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2685,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2690,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2699,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2704,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2713,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2718,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2727,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2732,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2741,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device.c:2746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUdevDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2747
      start: 2637
    functionDepth: 0
    functionLinenumber: 2637
    functionLinenumberEnd: 2747
    functionName: fu_udev_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_signal_new
    - G_OBJECT_CLASS
    - g_param_spec_string
    - G_TYPE_FROM_CLASS
    - FU_DEVICE_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:2763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - sysfs_path
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2764
      start: 2760
    functionDepth: 0
    functionLinenumber: 2760
    functionLinenumberEnd: 2764
    functionName: fu_udev_device_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device.c
    functionUses: 2
    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: 2
    EdgeCount: 2
    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: 4
    functionsReached:
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_sum8(const guint8 *buf, gsize bufsz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:57,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:58,1
    - Dst: fu_memchk_read
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:60,1
    - Dst: fu_sum8
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 6
    argNames:
    - buf
    - bufsz
    - offset
    - n
    - value
    - error
    argTypes:
    - guint8*
    - gsize
    - gsize
    - gsize
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: fu_sum8_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sum.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_memchk_read
    - fu_sum8
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_sum8_safe(const guint8 *buf, gsize bufsz, gsize offset,
      gsize n, guint8 *value, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:80,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:81,1
    - Dst: fu_sum8
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:83,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:83,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - blob
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: fu_sum8_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sum.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_get_data
    - g_bytes_get_size
    - fu_sum8
    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:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 105
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:129,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:130,1
    - Dst: fu_memchk_read
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:132,1
    - Dst: fu_sum16
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 6
    argNames:
    - buf
    - bufsz
    - offset
    - n
    - value
    - error
    argTypes:
    - guint8*
    - gsize
    - gsize
    - gsize
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: fu_sum16_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sum.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_sum16
    - fu_memchk_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_sum16_safe(const guint8 *buf, gsize bufsz, gsize offset,
      gsize n, guint16 *value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:152,1
    - Dst: fu_sum16
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:153,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:153,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - blob
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: fu_sum16_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sum.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_get_data
    - fu_sum16
    - g_bytes_get_size
    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:173,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:174,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - bufsz
    - endian
    argTypes:
    - guint8*
    - gsize
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 178
    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:195,1
    - Dst: fu_sum16w
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:196,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:196,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - blob
    - endian
    argTypes:
    - GBytes*
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: fu_sum16w_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sum.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_get_data
    - fu_sum16w
    - g_bytes_get_size
    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:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 218
    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:233,1
    - Dst: fu_sum32
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:234,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:234,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - blob
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: fu_sum32_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sum.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_get_data
    - g_bytes_get_size
    - 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:254,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:255,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - bufsz
    - endian
    argTypes:
    - guint8*
    - gsize
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 259
    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:276,1
    - Dst: fu_sum32w
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:277,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:277,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-sum.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - blob
    - endian
    argTypes:
    - GBytes*
    - FuEndianType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: fu_sum32w_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-sum.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_sum32w
    - g_bytes_get_data
    - g_bytes_get_size
    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: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 863
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:63,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:64,1
    - Dst: FU_IS_BACKEND
      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_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:65,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:66,1
    - Dst: g_thread_self
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:66,1
    - Dst: fu_device_set_context
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:70,1
    - Dst: fu_device_set_backend
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:73,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:76,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:77,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:80,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:81,1
    - Dst: g_get_real_time
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:81,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:84,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:84,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:85,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:86,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:90,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:91,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:91,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:92,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuBackend*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 94
    functionName: fu_backend_device_added
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 6
    functionsReached:
    - FU_IS_BACKEND
    - fu_device_get_backend_id
    - g_strdup
    - g_thread_self
    - g_hash_table_insert
    - g_debug
    - fu_device_set_created_usec
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_get_real_time
    - fu_device_set_backend_id
    - g_signal_emit
    - g_object_ref
    - fu_device_set_context
    - fu_device_get_created_usec
    - g_hash_table_contains
    - fu_device_set_backend
    - GET_PRIVATE
    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:108,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:109,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:109,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:110,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:110,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:111,1
    - Dst: g_thread_self
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:111,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:112,1
    - Dst: g_hash_table_remove
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:113,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuBackend*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: fu_backend_device_removed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 10
    functionsReached:
    - FU_IS_BACKEND
    - g_hash_table_remove
    - fu_device_get_backend_id
    - g_thread_self
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_signal_emit
    - 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:128,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:129,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:129,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:130,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:130,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:131,1
    - Dst: g_thread_self
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:131,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuBackend*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: fu_backend_device_changed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 2
    functionsReached:
    - FU_IS_BACKEND
    - g_thread_self
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_signal_emit
    - 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:148,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:149,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:149,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:150,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:150,1
    - Dst: FuBackendClass*::registered
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuBackend*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 153
    functionName: fu_backend_registered
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 1
    functionsReached:
    - FU_IS_BACKEND
    - FuBackendClass*::registered
    - FU_IS_DEVICE
    - FU_BACKEND_GET_CLASS
    - g_return_if_fail
    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:174,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:176,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:176,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:177,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:177,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:178,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:181,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:185,1
    - Dst: FuBackendClass*::get_device_parent
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - device
    - subsystem
    - error
    argTypes:
    - FuBackend*
    - FuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 189
    functionName: fu_backend_get_device_parent
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_BACKEND
    - FuBackendClass*::get_device_parent
    - g_set_error
    - FU_IS_DEVICE
    - FU_BACKEND_GET_CLASS
    - G_OBJECT_TYPE_NAME
    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:206,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:207,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:209,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:209,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:210,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:211,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:214,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:218,1
    - Dst: FuBackendClass*::create_device
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:221,1
    - Dst: fu_device_set_backend
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:224,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - backend_id
    - error
    argTypes:
    - FuBackend*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 228
    functionName: fu_backend_create_device
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_BACKEND
    - g_set_error
    - g_steal_pointer
    - FU_BACKEND_GET_CLASS
    - G_OBJECT_TYPE_NAME
    - fu_device_set_backend
    - FuBackendClass*::create_device
    - g_autoptr
    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:245,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:246,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:248,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:248,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:249,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:249,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:250,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:254,1
    - Dst: FuBackendClass*::create_device_for_donor
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:257,1
    - Dst: fu_device_set_backend
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:260,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - donor
    - error
    argTypes:
    - FuBackend*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 264
    functionName: fu_backend_create_device_for_donor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_BACKEND
    - FU_IS_DEVICE
    - g_steal_pointer
    - FU_BACKEND_GET_CLASS
    - g_object_ref
    - FuBackendClass*::create_device_for_donor
    - fu_device_set_backend
    - g_autoptr
    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:288,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:289,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:291,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:291,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:292,1
    - Dst: FuBackendClass*::invalidate
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 297
    functionName: fu_backend_invalidate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - FU_IS_BACKEND
    - FuBackendClass*::invalidate
    - FU_BACKEND_GET_CLASS
    - g_return_if_fail
    - GET_PRIVATE
    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:312,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:313,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:315,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:315,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:316,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:317,1
    - Dst: fwupd_codec_string_append_bool
      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: FuBackendClass*::to_string
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - idt
    - str
    argTypes:
    - FuBackend*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 309
    functionDepth: 3
    functionLinenumber: 309
    functionLinenumberEnd: 324
    functionName: fu_backend_add_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 1
    functionsReached:
    - FU_BACKEND_GET_CLASS
    - G_OBJECT_TYPE_NAME
    - FuBackendClass*::to_string
    - fwupd_codec_string_append
    - fwupd_codec_string_append_bool
    - GET_PRIVATE
    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:343,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:344,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:346,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:346,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:347,1
    - Dst: FuBackendClass*::setup
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - self
    - flags
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuBackendSetupFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 359
    functionName: fu_backend_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_BACKEND
    - FuBackendClass*::setup
    - FU_BACKEND_GET_CLASS
    - GET_PRIVATE
    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:364,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:365,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:366,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:368,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:369,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:370,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:374,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:374,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:379,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:390,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:391,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:396,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:401,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:402,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:405,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:410,1
    - Dst: g_type_from_name
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:413,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:415,1
    - Dst: g_type_is_a
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:422,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:423,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:424,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:429,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:430,1
    - Dst: fu_device_set_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:432,1
    - Dst: fu_device_from_json
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:433,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:435,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:436,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:443,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:446,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:446,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:450,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:451,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:452,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:454,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:455,1
    - Dst: fu_device_get_events
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:456,1
    - Dst: fu_device_clear_events
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:458,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:460,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:461,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:463,1
    - Dst: fu_backend_device_changed
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:464,1
    - Dst: g_ptr_array_remove
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:465,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:470,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:471,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:471,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:476,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:477,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:479,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:482,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:483,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:484,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:487,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:488,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:489,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:489,1
    - Dst: fu_backend_create_device_for_donor
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:493,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:496,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:499,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:501,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:501,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:506,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 90
    argCount: 3
    argNames:
    - codec
    - json_obj
    - error
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 511
    functionName: fu_backend_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_backend_lookup_by_id
    - fu_device_locker_new
    - g_object_ref
    - g_object_new
    - fu_device_get_created_usec
    - fu_device_clear_events
    - fu_backend_device_changed
    - fwupd_json_array_get_object
    - g_ptr_array_index
    - fu_device_probe
    - fu_device_get_id_display
    - g_debug
    - fwupd_json_array_get_size
    - g_type_is_a
    - fu_device_set_fwupd_version
    - fwupd_json_object_get_array
    - fu_device_has_flag
    - fu_backend_device_removed
    - fu_backend_get_devices
    - g_ptr_array_new_with_free_func
    - g_propagate_error
    - GET_PRIVATE
    - g_ptr_array_remove
    - fu_backend_create_device_for_donor
    - fu_backend_device_added
    - fu_device_from_json
    - fu_device_get_events
    - fu_device_add_event
    - fwupd_json_object_get_string
    - FU_BACKEND
    - fu_device_get_backend_id
    - fu_backend_get_name
    - g_type_name
    - g_set_error
    - g_steal_pointer
    - g_ptr_array_add
    - fu_device_has_private_flag
    - g_error_matches
    - g_autoptr
    - g_type_from_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_backend_from_json(FwupdCodec *codec, FwupdJsonObject *json_obj,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:516,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:517,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:518,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:519,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:519,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:522,1
    - Dst: g_hash_table_get_values
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:523,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:525,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:526,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:526,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:527,1
    - Dst: fu_device_add_json
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:529,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:530,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:532,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 513
    functionDepth: 3
    functionLinenumber: 513
    functionLinenumberEnd: 533
    functionName: fu_backend_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - g_hash_table_get_values
    - fu_device_add_json
    - fwupd_json_object_new
    - fwupd_json_array_new
    - FU_DEVICE
    - fu_device_has_flag
    - fwupd_json_array_add_object
    - FU_BACKEND
    - g_autoptr
    - fwupd_json_object_add_string
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_backend_add_json(FwupdCodec *codec, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:551,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:552,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:552,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:553,1
    - Dst: fu_backend_setup
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:554,1
    - Dst: FuBackendClass*::coldplug
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 559
    functionName: fu_backend_coldplug
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_BACKEND
    - fu_backend_setup
    - FU_BACKEND_GET_CLASS
    - FuBackendClass*::coldplug
    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:574,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:575,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 577
    functionName: fu_backend_get_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 8
    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:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 594
    functionName: fu_backend_get_context
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 8
    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:609,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:610,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 612
    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:626,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:627,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - enabled
    argTypes:
    - FuBackend*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 629
    functionName: fu_backend_set_enabled
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - FU_IS_BACKEND
    - g_return_if_fail
    - GET_PRIVATE
    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:645,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:646,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:646,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:647,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - backend_id
    argTypes:
    - FuBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 649
    functionName: fu_backend_lookup_by_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 10
    functionsReached:
    - g_return_val_if_fail
    - g_hash_table_lookup
    - 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:656,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:656,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 657
    functionName: fu_backend_get_devices_sort_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_id
    - g_strcmp0
    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:672,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:673,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:674,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:676,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:676,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:678,1
    - Dst: g_hash_table_get_values
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:679,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:681,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:681,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:682,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 684
    functionName: fu_backend_get_devices
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_BACKEND
    - g_ptr_array_sort
    - g_hash_table_get_values
    - g_steal_pointer
    - g_ptr_array_add
    - g_object_ref
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    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:689,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:690,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:693,1
    - Dst: g_value_set_boolean
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:696,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:699,1
    - Dst: g_value_set_gtype
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:702,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:705,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: 708
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 708
    functionName: fu_backend_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - g_value_set_string
    - g_value_set_gtype
    - g_value_set_object
    - g_value_set_boolean
    - FU_BACKEND
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    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:713,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:714,1
    - Dst: g_value_dup_string
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:717,1
    - Dst: g_value_get_boolean
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:720,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:723,1
    - Dst: g_value_get_object
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:723,1
    - Dst: g_value_get_gtype
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:726,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:729,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: 732
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 732
    functionName: fu_backend_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - g_value_dup_string
    - g_set_object
    - g_value_get_boolean
    - g_value_get_gtype
    - g_value_get_object
    - FU_BACKEND
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    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: 739
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 739
    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:744,1
    - Dst: g_thread_self
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:747,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 750
    functionName: fu_backend_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - g_thread_self
    - g_hash_table_new_full
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_backend_init(FuBackend *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:755,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:756,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:757,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:758,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 760
    functionName: fu_backend_dispose
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_clear_object
    - FU_BACKEND
    - g_hash_table_remove_all
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_backend_dispose(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:765,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:766,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:767,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:768,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 770
    functionName: fu_backend_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_free
    - FU_BACKEND
    - g_hash_table_unref
    - GET_PRIVATE
    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:775,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:791,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:796,1
    - Dst: g_param_spec_boolean
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:806,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:811,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:821,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:826,1
    - Dst: g_param_spec_gtype
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:835,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:840,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:851,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:852,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:870,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:871,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:889,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-backend.c:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBackendClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 899
    functionName: fu_backend_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-backend.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_gtype
    - g_signal_new
    - g_param_spec_boolean
    - g_param_spec_object
    - G_OBJECT_CLASS
    - g_param_spec_string
    - G_TYPE_FROM_CLASS
    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_literal
      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: 4
    functionLinenumber: 39
    functionLinenumberEnd: 134
    functionName: fu_i2c_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_set_number
    - fu_device_get_context
    - g_strdup_printf
    - FU_I2C_DEVICE
    - g_auto
    - fu_context_get_hwid_guids
    - g_ptr_array_index
    - fu_udev_device_get_number
    - fu_device_add_instance_str
    - g_set_error_literal
    - fu_device_build_instance_id_full
    - g_str_has_prefix
    - fu_udev_device_get_subsystem
    - fu_strsplit
    - fu_udev_device_get_sysfs_path
    - fu_strtoull
    - fu_udev_device_set_physical_id
    - FU_DEVICE
    - fu_udev_device_read_sysfs
    - fu_udev_device_parse_number
    - FU_UDEV_DEVICE
    - FU_DEVICE_CLASS
    - fu_udev_device_get_device_file
    - g_strcmp0
    - fu_device_get_backend_parent_with_subsystem
    - fu_device_add_instance_strsafe
    - fu_device_has_private_flag
    - strlen
    - fu_udev_device_set_device_file
    - g_autoptr
    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: GUINT_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:157,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:163,1
    - Dst: g_set_error_literal
      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: 4
    functionLinenumber: 149
    functionLinenumberEnd: 176
    functionName: fu_i2c_device_set_address
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_execute
    - g_set_error_literal
    - g_prefix_error
    - fu_udev_device_ioctl_new
    - GUINT_TO_POINTER
    - FU_UDEV_DEVICE
    - g_autoptr
    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: 4
    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: 4
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: fu_i2c_device_read
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-i2c-device.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_DEVICE
    - fu_udev_device_pread
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_i2c_device_read(FuI2cDevice *self, guint8 *buf, gsize bufsz,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:219,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:219,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:220,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:220,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:221,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-i2c-device.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuI2cDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: fu_i2c_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-i2c-device.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_DEVICE
    - fu_device_register_private_flag
    - fu_udev_device_add_open_flag
    - FU_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:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuI2cDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 229
    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_add_string
    - FWUPD_CODEC
    - FU_COMPOSITE_INPUT_STREAM
    - fwupd_codec_string_append_hex
    - g_ptr_array_index
    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_object_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_composite_input_stream_item_free(FuCompositeInputStreamItem
      *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:107,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:109,1
    - Dst: FU_IS_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:109,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:110,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:111,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:113,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:114,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:114,1
    - Dst: fu_composite_input_stream_add_partial_stream
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:117,1
    - Dst: FU_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - bytes
    - error
    argTypes:
    - FuCompositeInputStream*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 120
    functionName: fu_composite_input_stream_add_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - g_memory_input_stream_new_from_bytes
    - fu_composite_input_stream_add_partial_stream
    - FU_PARTIAL_INPUT_STREAM
    - FU_IS_COMPOSITE_INPUT_STREAM
    - g_bytes_get_size
    - g_autoptr
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_composite_input_stream_add_bytes(FuCompositeInputStream
      *self, GBytes *bytes, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:139,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:142,1
    - Dst: FU_IS_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:142,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:143,1
    - Dst: FU_IS_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:143,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:144,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:144,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:144,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:145,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:150,1
    - Dst: fu_partial_input_stream_get_size
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:151,1
    - Dst: FU_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:152,1
    - Dst: g_size_checked_add
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:155,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:156,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:165,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:166,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:169,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:172,1
    - Dst: fu_partial_input_stream_get_size
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:173,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:175,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:180,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - self
    - partial_stream
    - error
    argTypes:
    - FuCompositeInputStream*
    - FuPartialInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 182
    functionName: fu_composite_input_stream_add_partial_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - g_new0
    - fu_partial_input_stream_get_size
    - g_debug
    - FU_IS_PARTIAL_INPUT_STREAM
    - g_set_error_literal
    - FU_PARTIAL_INPUT_STREAM
    - g_prefix_error_literal
    - g_ptr_array_add
    - g_steal_pointer
    - g_object_ref
    - G_INPUT_STREAM
    - FU_IS_COMPOSITE_INPUT_STREAM
    - g_size_checked_add
    - fu_size_checked_inc
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_composite_input_stream_add_partial_stream(FuCompositeInputStream
      *self,\n\t\t\t\t\t     FuPartialInputStream *partial_stream,\n\t\t\t\t\t     GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:201,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:203,1
    - Dst: FU_IS_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:203,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:204,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:204,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:205,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:205,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:206,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:209,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:211,1
    - Dst: fu_composite_input_stream_add_partial_stream
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:216,1
    - Dst: FU_PARTIAL_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuCompositeInputStream*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 219
    functionName: fu_composite_input_stream_add_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_composite_input_stream_add_partial_stream
    - FU_PARTIAL_INPUT_STREAM
    - g_prefix_error_literal
    - G_INPUT_STREAM
    - G_IS_INPUT_STREAM
    - FU_IS_COMPOSITE_INPUT_STREAM
    - g_autoptr
    - 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:224,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:225,1
    - Dst: FU_IS_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - seekable
    argTypes:
    - GSeekable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: fu_composite_input_stream_tell
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_COMPOSITE_INPUT_STREAM
    - FU_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: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    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:241,1
    - Dst: fu_partial_input_stream_get_size
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:242,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - offset
    - error
    argTypes:
    - FuCompositeInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 252
    functionName: fu_composite_input_stream_get_item_for_offset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_ptr_array_index
    - fu_partial_input_stream_get_size
    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:261,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:263,1
    - Dst: FU_IS_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:263,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:264,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: 278
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 278
    functionName: fu_composite_input_stream_seek
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_COMPOSITE_INPUT_STREAM
    - FU_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: 284
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 284
    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:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - seekable
    - offset
    - cancellable
    - error
    argTypes:
    - GSeekable*
    - goffset
    - GCancellable*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 297
    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: 307
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 307
    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:321,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: fu_composite_input_stream_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 4
    functionsReached:
    - g_object_new
    - G_INPUT_STREAM
    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:331,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:335,1
    - Dst: FU_IS_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:335,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:336,1
    - Dst: fu_composite_input_stream_get_item_for_offset
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:339,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:343,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:343,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:351,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:351,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: 363
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 363
    functionName: fu_composite_input_stream_read
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_composite_input_stream_get_item_for_offset
    - g_seekable_seek
    - FU_COMPOSITE_INPUT_STREAM
    - G_SEEKABLE
    - G_INPUT_STREAM
    - FU_IS_COMPOSITE_INPUT_STREAM
    - g_input_stream_read
    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:368,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:369,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 371
    functionName: fu_composite_input_stream_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - FU_COMPOSITE_INPUT_STREAM
    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:376,1
    - Dst: G_INPUT_STREAM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-composite-input-stream.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCompositeInputStreamClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 380
    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:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCompositeInputStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 387
    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:39,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:48,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:49,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:50,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: 56
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 56
    functionName: fu_firmware_strparse_uint4_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-common.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - fu_strsafe
    - g_prefix_error
    - fu_memcpy_safe
    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:82,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:91,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:92,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:93,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: 99
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 99
    functionName: fu_firmware_strparse_uint8_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-common.c
    functionUses: 4
    functionsReached:
    - fu_strtoull
    - fu_strsafe
    - g_prefix_error
    - fu_memcpy_safe
    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:125,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:134,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:135,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:136,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: 142
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 142
    functionName: fu_firmware_strparse_uint16_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-common.c
    functionUses: 2
    functionsReached:
    - fu_strtoull
    - fu_strsafe
    - g_prefix_error
    - fu_memcpy_safe
    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:168,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:177,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:178,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:179,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: 185
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 185
    functionName: fu_firmware_strparse_uint24_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-common.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - fu_strsafe
    - g_prefix_error
    - fu_memcpy_safe
    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:211,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:220,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:221,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-firmware-common.c:222,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: 228
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 228
    functionName: fu_firmware_strparse_uint32_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-firmware-common.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - fu_strsafe
    - g_prefix_error
    - fu_memcpy_safe
    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:
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:15,1
    - Dst: fu_xor8
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:15,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:16,1
    - Dst: fu_xor8
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 17
    functionName: fu_xor8_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-xor-test.c
    functionUses: 0
    functionsReached:
    - fu_xor8
    - g_assert_cmpint
    linkageType: ''
    returnType: void
    signature: void fu_xor8_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:25,1
    - Dst: fu_xor8_safe
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:27,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:28,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:29,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:30,1
    - Dst: fu_xor8_safe
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:31,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:32,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:33,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:34,1
    - Dst: fu_xor8_safe
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:36,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:37,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 39
    functionName: fu_xor8_safe_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-xor-test.c
    functionUses: 0
    functionsReached:
    - fu_xor8_safe
    - g_assert_error
    - g_assert_no_error
    - g_assert_cmpint
    - g_assert_false
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_xor8_safe_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:44,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:45,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:46,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-xor-test.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-xor-test.c
    functionUses: 3
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSelfTestDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: fu_self_test_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_self_test_device_init(FuSelfTestDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSelfTestDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: fu_self_test_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-self-test-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_self_test_device_class_init(FuSelfTestDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:20,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:20,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:21,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:22,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:24,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:25,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: fu_device_version_format_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_device_add_private_flag
    - fu_device_get_version
    - fu_device_set_version_format
    - g_assert_cmpstr
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_version_format_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:31,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:31,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:34,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:35,1
    - Dst: fu_device_set_version_lowest_raw
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:36,1
    - Dst: fu_device_set_version_highest_raw
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:37,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:39,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:39,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:40,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:40,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:41,1
    - Dst: fu_device_get_version_highest
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:41,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:44,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:45,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:45,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:46,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:46,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:47,1
    - Dst: fu_device_get_version_highest
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 48
    functionName: fu_device_version_format_raw_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_lowest
    - fu_device_set_version_raw
    - fu_device_get_version_highest
    - fu_device_get_version
    - g_object_new
    - fu_device_set_version_highest_raw
    - fu_device_set_version_format
    - g_assert_cmpstr
    - g_autoptr
    - 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-device-test.c:54,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:54,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:55,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:56,1
    - Dst: fu_device_open
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:57,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:58,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:59,1
    - Dst: fu_device_open
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:60,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:61,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:62,1
    - Dst: fu_device_close
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:63,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:64,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:65,1
    - Dst: fu_device_close
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:66,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:67,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:68,1
    - Dst: fu_device_close
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:69,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 71
    functionName: fu_device_open_refcount_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_open
    - g_assert_no_error
    - fu_device_set_id
    - g_assert_true
    - g_autoptr
    - fu_device_close
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_open_refcount_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:77,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:77,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:78,1
    - Dst: fu_device_rescan
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:81,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:82,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: fu_device_rescan_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_rescan
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_rescan_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:89,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:90,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:90,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:93,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:94,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:95,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:95,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:96,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:96,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:99,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:100,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:101,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:101,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:102,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:102,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:105,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:106,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:107,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:107,1
    - Dst: g_test_expect_message
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:111,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:113,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:114,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:115,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:115,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:116,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 117
    functionName: fu_device_name_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - g_test_expect_message
    - fu_device_get_vendor
    - fu_device_set_name
    - fu_device_set_vendor
    - fu_device_get_name
    - g_assert_cmpstr
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_name_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:125,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:126,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:128,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:131,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:132,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:134,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:135,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:136,1
    - Dst: fu_cfi_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:138,1
    - Dst: fu_device_setup
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:139,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:139,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:140,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:141,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:144,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:145,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:146,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:147,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:150,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:151,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:152,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:153,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:154,1
    - Dst: fu_cfi_device_get_size
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:154,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:155,1
    - Dst: fu_cfi_device_get_page_size
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:155,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:156,1
    - Dst: fu_cfi_device_get_sector_size
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:156,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:157,1
    - Dst: fu_cfi_device_get_block_size
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 158
    functionName: fu_device_cfi_device_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_context_set_path
    - fu_cfi_device_get_block_size
    - fu_cfi_device_get_cmd
    - g_assert_no_error
    - fu_device_setup
    - g_assert_cmpint
    - FU_DEVICE
    - fu_cfi_device_new
    - fu_cfi_device_get_size
    - fu_cfi_device_get_page_size
    - fu_context_load_quirks
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - fu_cfi_device_get_sector_size
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_cfi_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:163,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:163,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:166,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:167,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:167,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:168,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:169,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:169,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:170,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:170,1
    - Dst: fu_device_set_metadata_boolean
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:173,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:174,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:174,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:175,1
    - Dst: fu_device_get_metadata_boolean
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:175,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:176,1
    - Dst: fu_device_get_metadata_boolean
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:176,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:179,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:180,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:180,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:181,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:181,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:182,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: fu_device_metadata_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_get_metadata_boolean
    - fu_device_get_metadata_integer
    - g_assert_true
    - fu_device_set_metadata_integer
    - g_assert_cmpint
    - fu_device_get_metadata
    - g_assert_false
    - fu_device_set_metadata_boolean
    - fu_device_set_metadata
    - g_assert_cmpstr
    - g_autoptr
    - g_assert_null
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_metadata_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:188,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:188,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:189,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:189,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:190,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:190,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:191,1
    - Dst: fu_device_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:191,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:194,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:195,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:196,1
    - Dst: fu_device_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:196,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:197,1
    - Dst: fu_device_get_status
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:197,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:200,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:201,1
    - Dst: fu_device_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:201,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:202,1
    - Dst: fu_device_get_status
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:202,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:205,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:206,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:207,1
    - Dst: fu_device_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:207,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:208,1
    - Dst: fu_device_get_status
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 209
    functionName: fu_device_progress_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_progress_set_percentage
    - fu_device_get_percentage
    - fu_device_get_status
    - g_assert_cmpint
    - fu_progress_new
    - fu_progress_set_status
    - g_clear_object
    - fu_device_progress_new
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_progress_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:225,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:225,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:226,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:226,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:227,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:230,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:231,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:232,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:233,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:234,1
    - Dst: fu_device_get_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:235,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:236,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:237,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:237,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:240,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 243
    functionName: fu_device_strsafe_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_strsafe
    - fu_device_build_instance_id
    - fu_device_add_instance_strsafe
    - fu_device_convert_instance_ids
    - g_assert_no_error
    - g_assert_cmpint
    - fu_context_new_full
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - fu_device_get_instance_ids
    - g_ptr_array_index
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_strsafe_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:248,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:248,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:249,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:249,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:250,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:250,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:252,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:253,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:254,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:255,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:256,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:257,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:258,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:261,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:262,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:262,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:263,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:263,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:264,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:267,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:268,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:269,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:269,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:270,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:270,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:273,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:274,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:275,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:276,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:277,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:277,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:278,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:278,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:279,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 280
    functionName: fu_device_inhibit_children_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_child
    - fu_device_uninhibit
    - fu_device_add_private_flag
    - fu_device_set_id
    - fu_device_set_name
    - g_assert_false
    - fu_device_has_flag
    - fu_device_inhibit
    - g_assert_true
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_inhibit_children_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:285,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:286,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 289
    functionName: fu_device_poll_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_set_metadata_integer
    - fu_device_get_metadata_integer
    - g_debug
    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-device-test.c:295,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:295,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:296,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:297,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:298,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:302,1
    - Dst: fu_device_poll
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:305,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:306,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:307,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:308,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:309,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:312,1
    - Dst: fu_test_loop_run_with_timeout
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:313,1
    - Dst: fu_test_loop_quit
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:314,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:315,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:316,1
    - Dst: fu_test_loop_quit
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:317,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:320,1
    - Dst: fu_device_poll_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:321,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:322,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:323,1
    - Dst: fu_test_loop_run_with_timeout
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:324,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:325,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:326,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:326,1
    - Dst: fu_test_loop_quit
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:327,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:330,1
    - Dst: fu_test_loop_run_with_timeout
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:331,1
    - Dst: fu_test_loop_quit
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:332,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:333,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:333,1
    - Dst: fu_test_loop_quit
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 335
    functionName: fu_device_poll_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_test_loop_quit
    - fu_device_get_metadata_integer
    - fu_test_loop_run_with_timeout
    - fu_device_set_metadata_integer
    - fu_device_add_private_flag
    - FU_DEVICE_GET_CLASS
    - g_assert_no_error
    - g_assert_cmpint
    - fu_device_poll
    - g_assert_nonnull
    - fu_device_poll_locker_new
    - g_assert_true
    - g_clear_object
    - g_autoptr
    - fu_device_set_poll_interval
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_poll_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:342,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:342,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:343,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:343,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:344,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:345,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:346,1
    - Dst: fu_device_add_possible_plugin
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:349,1
    - Dst: fu_device_add_possible_plugin
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:350,1
    - Dst: fu_device_get_possible_plugins
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:351,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:352,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:354,1
    - Dst: fu_device_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:355,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:356,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:357,1
    - Dst: fu_device_get_contents_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:359,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:360,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:361,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 362
    functionName: fu_device_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_device_add_possible_plugin
    - fu_device_get_contents_bytes
    - fu_device_get_contents
    - g_assert_no_error
    - g_assert_cmpint
    - g_test_build_filename
    - g_bytes_get_size
    - fu_device_get_possible_plugins
    - g_assert_cmpstr
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:368,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:368,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:369,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:369,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:370,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:370,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:371,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:371,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:372,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:373,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:374,1
    - Dst: fu_device_get_results
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:377,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:378,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:379,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:380,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:382,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:387,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:388,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:389,1
    - Dst: fu_device_read_firmware
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:391,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:392,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:393,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:394,1
    - Dst: fu_device_dump_firmware
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:396,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:397,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:398,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:399,1
    - Dst: fu_device_unbind_driver
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:401,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:402,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:403,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:404,1
    - Dst: fu_device_bind_driver
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:405,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:406,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:407,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:408,1
    - Dst: fu_device_detach
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:411,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:412,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:413,1
    - Dst: fu_device_attach
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:414,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:415,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:416,1
    - Dst: fu_device_activate
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:417,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:418,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:419,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:422,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:423,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:424,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:425,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 427
    functionName: fu_device_vfuncs_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_device_add_private_flag
    - fu_progress_new
    - fu_device_read_firmware
    - fu_device_attach
    - fu_device_new
    - fu_device_probe
    - fu_device_activate
    - fu_device_dump_firmware
    - g_assert_null
    - fu_device_bind_driver
    - fu_firmware_new
    - g_assert_false
    - fu_device_detach
    - fu_device_write_firmware
    - g_assert_error
    - g_assert_no_error
    - fu_device_get_results
    - g_clear_error
    - g_assert_true
    - g_autoptr
    - fu_device_unbind_driver
    linkageType: ''
    returnType: void
    signature: void fu_device_vfuncs_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:433,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:433,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:434,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:434,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:435,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:438,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:439,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:440,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:443,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:443,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:446,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:447,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:447,1
    - Dst: fu_device_setup
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:449,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:450,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:451,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:452,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:452,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:455,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:456,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 457
    functionName: fu_device_instance_ids_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_device_add_instance_id
    - fu_device_has_guid
    - g_assert_no_error
    - fu_device_setup
    - g_assert_false
    - fu_context_load_quirks
    - g_assert_true
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_instance_ids_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:462,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:462,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:463,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:463,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:464,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:464,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:465,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:465,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:468,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:469,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:469,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:472,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:475,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:476,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:476,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:479,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:479,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:484,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:485,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:486,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:487,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:488,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:488,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:491,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:491,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:494,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:494,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:497,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:497,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:502,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:503,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:503,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:506,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 509
    functionName: fu_device_composite_id_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_set_id
    - fu_device_get_composite_id
    - g_assert_cmpstr
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_composite_id_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:514,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:514,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:516,1
    - Dst: fu_device_set_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:517,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:518,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:518,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:519,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:519,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:522,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:523,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:523,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:526,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:527,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:527,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:528,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:528,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:529,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:529,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:532,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:533,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:533,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:534,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:534,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:537,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:538,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:538,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:539,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:539,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:540,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:540,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:543,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:544,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:544,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:545,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:545,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:548,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:549,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:549,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:550,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:550,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:551,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:552,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:552,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:553,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 554
    functionName: fu_device_inhibit_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_uninhibit
    - fu_device_set_battery_threshold
    - fu_device_has_inhibit
    - fu_device_set_battery_level
    - g_assert_false
    - fu_device_has_flag
    - fu_device_inhibit
    - fu_device_set_update_state
    - g_assert_true
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_inhibit_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:559,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:559,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:561,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:561,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:562,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:562,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:563,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:563,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:566,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:567,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:567,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:568,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:568,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:569,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:569,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:572,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:573,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:573,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:574,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:574,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:575,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 576
    functionName: fu_device_inhibit_updateable_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_uninhibit
    - fu_device_get_update_error
    - g_assert_false
    - fu_device_has_flag
    - fu_device_inhibit
    - g_assert_cmpstr
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_inhibit_updateable_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:582,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:582,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:584,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:585,1
    - Dst: fu_device_set_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:587,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:588,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:588,1
    - Dst: fu_device_set_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:589,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:590,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:590,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:591,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:591,1
    - Dst: fu_device_set_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:592,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:593,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:593,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:594,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:594,1
    - Dst: fu_device_set_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:595,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:596,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:596,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:597,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:597,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:599,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 607
    functionName: fu_device_custom_flags_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_register_private_flag
    - fu_device_to_string
    - fu_device_has_private_flag
    - g_assert_false
    - fu_device_set_custom_flags
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_custom_flags_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:612,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:612,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:613,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:613,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:615,1
    - Dst: fu_device_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:615,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:618,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:619,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:620,1
    - Dst: fu_device_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:620,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:621,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:624,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:625,1
    - Dst: fu_device_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:625,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:628,1
    - Dst: fu_device_set_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:632,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:633,1
    - Dst: fu_device_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:633,1
    - Dst: fu_device_set_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:636,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:637,1
    - Dst: fu_device_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:637,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:640,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:641,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:642,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:643,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:643,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:646,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:647,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 648
    functionName: fu_device_flags_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_get_flags
    - fu_device_add_flag
    - g_assert_true
    - g_assert_cmpint
    - fu_device_remove_flag
    - g_assert_false
    - fu_device_has_flag
    - fu_device_set_custom_flags
    - fu_device_set_proxy
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_flags_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:654,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:654,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:655,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:655,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:656,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:656,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:657,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:660,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:661,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:662,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:664,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:665,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:668,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:672,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:673,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:673,1
    - Dst: fu_device_setup
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:677,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:678,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:679,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:680,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 681
    functionName: fu_device_children_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_device_add_child
    - fu_device_add_instance_id
    - fu_device_set_physical_id
    - fu_device_has_guid
    - g_assert_no_error
    - fu_device_setup
    - g_assert_false
    - fu_context_load_quirks
    - g_assert_true
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_children_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:686,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:686,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:687,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:688,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:688,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:689,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:690,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:690,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:691,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:693,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:694,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:695,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:698,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:699,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:702,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:702,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:703,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:703,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:704,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:704,1
    - Dst: fu_device_get_root
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:707,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:708,1
    - Dst: fu_device_get_root
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:709,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:710,1
    - Dst: fu_device_get_root
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:711,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 713
    functionName: fu_device_parent_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_set_physical_id
    - fu_device_get_root
    - fu_device_get_parent_internal
    - g_assert_true
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_parent_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:718,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:718,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:719,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:719,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:720,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:720,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:722,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:723,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:723,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:725,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:725,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:726,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:726,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:726,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:729,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:729,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:730,1
    - Dst: fu_device_get_summary
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 731
    functionName: fu_device_incorporate_descendant_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_device_get_summary
    - fu_device_incorporate
    - fu_device_set_name
    - FU_DEVICE
    - g_object_new
    - fu_device_set_summary
    - fu_device_get_name
    - g_assert_cmpstr
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_incorporate_descendant_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:736,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:736,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:737,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:737,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:738,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:738,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:740,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:744,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:747,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:748,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:749,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:749,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:752,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:752,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:755,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:756,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:756,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:759,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:759,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:762,1
    - Dst: fwupd_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:763,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:763,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:764,1
    - Dst: fwupd_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:765,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 766
    functionName: fu_device_incorporate_non_generic_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_has_instance_id
    - fu_context_new
    - fwupd_device_has_instance_id
    - g_assert_true
    - fu_device_add_private_flag
    - fu_device_convert_instance_ids
    - fu_device_incorporate
    - FWUPD_DEVICE
    - g_assert_false
    - fu_device_add_instance_id_full
    - g_autoptr
    - fu_device_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-device-test.c:771,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:771,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:772,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:772,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:773,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:773,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:775,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:776,1
    - Dst: fu_device_add_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:777,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:779,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:783,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:783,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:784,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:784,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:785,1
    - Dst: fu_device_has_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:785,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:787,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:788,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 789
    functionName: fu_device_incorporate_flag_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_context_new
    - fu_device_get_logical_id
    - fu_device_set_physical_id
    - fu_device_get_physical_id
    - fu_device_incorporate
    - fu_device_add_vendor_id
    - g_assert_true
    - fu_device_has_vendor_id
    - g_assert_cmpstr
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_incorporate_flag_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:796,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:796,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:797,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:797,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:798,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:798,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:799,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:802,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:803,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:806,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:807,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:808,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:811,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:812,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:813,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:814,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:815,1
    - Dst: fu_device_add_instance_u32
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:816,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:817,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:818,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:821,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:828,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:829,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:830,1
    - Dst: fu_device_get_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:830,1
    - Dst: fu_device_set_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:831,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:834,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:835,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:836,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:837,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:840,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:841,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:842,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:845,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:846,1
    - Dst: fu_device_get_equivalent_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:846,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:849,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:849,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:850,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:850,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:851,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:851,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:852,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:852,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:853,1
    - Dst: fu_device_get_modified_usec
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:853,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:854,1
    - Dst: fu_device_get_icons
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:854,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:855,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:856,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:857,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:858,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:859,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:860,1
    - Dst: fu_device_get_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 861
    functionName: fu_device_incorporate_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_get_modified_usec
    - fu_context_new
    - fu_device_has_instance_id
    - fu_device_get_equivalent_id
    - fu_device_set_created_usec
    - fu_device_add_private_flag
    - fu_device_incorporate
    - fu_device_get_created_usec
    - fu_context_load_quirks
    - fu_device_new
    - fu_device_register_private_flag
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - fu_device_add_icon
    - g_assert_cmpint
    - fu_device_get_metadata
    - fu_device_get_custom_flags
    - fu_device_set_equivalent_id
    - fu_device_build_instance_id_full
    - fu_device_has_flag
    - fu_device_add_instance_u32
    - fu_device_set_modified_usec
    - fu_device_set_custom_flags
    - fu_device_set_metadata
    - fu_context_set_path
    - fu_device_get_icons
    - g_assert_no_error
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: void
    signature: void fu_device_incorporate_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: 874
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 874
    functionName: fu_device_retry_success_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_retry_success_cb(FuDevice *device, gpointer user_data,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 883
    functionName: fu_device_retry_failed_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_retry_failed_cb(FuDevice *device, gpointer user_data,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 896
    functionName: fu_device_retry_success_3rd_try_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_retry_success_3rd_try_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:902,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:902,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:903,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:908,1
    - Dst: fu_device_retry
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:912,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:913,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:914,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:915,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 917
    functionName: fu_device_retry_success_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - g_assert_no_error
    - g_assert_cmpint
    - fu_device_retry_add_recovery
    - fu_device_retry
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_retry_success_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:923,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:923,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:924,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:929,1
    - Dst: fu_device_retry
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:933,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:934,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:935,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:936,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 938
    functionName: fu_device_retry_failed_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - g_assert_error
    - g_assert_cmpint
    - fu_device_retry_add_recovery
    - fu_device_retry
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_retry_failed_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:944,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:944,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:945,1
    - Dst: fu_device_retry
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:950,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:951,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:952,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:953,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 955
    functionName: fu_device_retry_hardware_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - g_assert_no_error
    - g_assert_cmpint
    - fu_device_retry
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_retry_hardware_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:961,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:961,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:962,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:963,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:965,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:966,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:967,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:970,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:971,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:972,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:975,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:976,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:977,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:981,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:982,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:983,1
    - Dst: fu_device_get_possible_plugins
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:986,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:987,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:988,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 989
    functionName: fu_device_possible_plugin_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - fu_device_get_possible_plugins
    - g_assert_cmpint
    - g_assert_true
    - fu_device_set_quirk_kv
    - g_assert_cmpstr
    - g_autoptr
    - g_ptr_array_index
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_possible_plugin_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:994,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:994,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:995,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:995,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:997,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:998,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1000,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1001,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1002,1
    - Dst: fu_device_set_parent
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1003,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1005,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1005,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1006,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1006,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1009,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1010,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1011,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1012,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 1013
    functionName: fu_device_parent_name_prefix_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_device_add_private_flag
    - fu_device_set_id
    - fu_device_has_private_flag
    - fu_device_set_name
    - fu_device_get_name
    - g_assert_true
    - fu_device_set_parent
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_parent_name_prefix_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1018,1
    - Dst: fu_device_new
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1018,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1024,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1025,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1027,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1028,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1029,1
    - Dst: fu_device_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1031,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1032,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1033,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1035,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1036,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1038
    functionName: fu_device_id_display_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_get_id_display
    - fu_device_set_plugin
    - fu_device_set_id
    - fu_device_set_name
    - g_assert_cmpstr
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: void
    signature: void fu_device_id_display_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1043,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1044,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1045,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1046,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1047,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1048,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1049,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1050,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1051,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1052,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1053,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1054,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1055,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1056,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1057,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1058,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1059,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1060,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1061,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1063,1
    - Dst: g_test_slow
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1065,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1066,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1067,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1068,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1069,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1070,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1071,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1072,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1073,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1074,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1075,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1076,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1077,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1078,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-device-test.c:1079,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1080
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    - g_test_slow
    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: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 882
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:56,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:57,1
    - Dst: FU_IS_SREC_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSrecFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: fu_srec_firmware_get_records
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_SREC_FIRMWARE
    - GET_PRIVATE
    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:73,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:74,1
    - Dst: FU_IS_SREC_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - addr_min
    argTypes:
    - FuSrecFirmware*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: fu_srec_firmware_set_addr_min
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FU_IS_SREC_FIRMWARE
    - GET_PRIVATE
    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:90,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:91,1
    - Dst: FU_IS_SREC_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - addr_max
    argTypes:
    - FuSrecFirmware*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: fu_srec_firmware_set_addr_max
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FU_IS_SREC_FIRMWARE
    - GET_PRIVATE
    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:98,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rcd
    argTypes:
    - FuSrecFirmwareRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    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:122,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ln
    - kind
    - addr
    argTypes:
    - guint
    - FuFirmwareSrecRecordKind
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: fu_srec_firmware_record_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - g_byte_array_new
    - g_new0
    linkageType: ''
    returnType: FuSrecFirmwareRecord
    signature: 'FuSrecFirmwareRecord *

      fu_srec_firmware_record_new(guint ln, FuFirmwareSrecRecordKind kind, guint32
      addr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:134,1
    - Dst: fu_srec_firmware_record_new
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:135,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - rcd
    argTypes:
    - FuSrecFirmwareRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: fu_srec_firmware_record_dup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_byte_array_ref
    - fu_srec_firmware_record_new
    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:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 160
    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:172,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:173,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:183,1
    - Dst: g_strdelimit
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:191,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:192,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:200,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:202,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:210,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:220,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:223,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:240,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:249,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:256,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:303,1
    - Dst: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:315,1
    - Dst: fu_firmware_strparse_uint24_safe
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:324,1
    - Dst: fu_firmware_strparse_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:332,1
    - Dst: g_assert_not_reached
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:340,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:342,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:348,1
    - Dst: fu_srec_firmware_record_new
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:357,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:361,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:367,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:370,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:370,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: 372
      start: 168
    functionDepth: 4
    functionLinenumber: 168
    functionLinenumberEnd: 372
    functionName: fu_srec_firmware_tokenize_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - fu_srec_firmware_record_new
    - fu_firmware_strparse_uint16_safe
    - fu_strsafe
    - fu_firmware_strparse_uint8_safe
    - fu_firmware_strparse_uint24_safe
    - g_set_error
    - g_debug
    - g_set_error_literal
    - g_steal_pointer
    - g_ptr_array_add
    - fu_byte_array_append_uint8
    - fu_firmware_strparse_uint32_safe
    - g_assert_not_reached
    - strlen
    - g_strdelimit
    - g_autoptr
    - GET_PRIVATE
    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:380,1
    - Dst: fu_strsplit_stream
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:384,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 396
    functionName: fu_srec_firmware_tokenize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - fu_strsplit_stream
    - g_set_error_literal
    - 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:404,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:405,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:410,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:411,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:411,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:415,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:419,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:419,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:423,1
    - Dst: g_ascii_isgraph
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:434,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:436,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:439,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:447,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:466,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:476,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:486,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:492,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:502,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:512,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:517,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:521,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:526,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:540,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:541,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:542,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 68
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 544
    functionName: fu_srec_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_addr
    - fu_firmware_set_id
    - g_debug
    - g_set_error
    - g_bytes_new
    - FU_SREC_FIRMWARE
    - fu_byte_array_append_uint8
    - g_ascii_isgraph
    - fu_firmware_set_bytes
    - g_byte_array_new
    - g_string_new
    - g_byte_array_append
    - g_string_append_c
    - g_autoptr
    - g_ptr_array_index
    - GET_PRIVATE
    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:554,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:554,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:560,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:564,1
    - Dst: g_byte_array_remove_index
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:565,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:568,1
    - Dst: fu_sum8
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:573,1
    - Dst: fu_sum8
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:574,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:578,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:581,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:583,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:584,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 5
    argNames:
    - str
    - kind
    - addr
    - buf
    - bufsz
    argTypes:
    - GString*
    - FuFirmwareSrecRecordKind
    - guint32
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 585
    functionName: fu_srec_firmware_write_line
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint16
    - g_byte_array_remove_index
    - fu_sum8
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - g_string_append_printf
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_srec_firmware_write_line(GString *str,\n\t\t\t    FuFirmwareSrecRecordKind
      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:590,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:590,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:591,1
    - Dst: g_string_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: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:593,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:594,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:600,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:603,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:609,1
    - Dst: fu_srec_firmware_write_line
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:614,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:621,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:622,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:623,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:624,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:627,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:628,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:631,1
    - Dst: fu_srec_firmware_write_line
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:634,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:636,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:637,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:638,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:641,1
    - Dst: fu_srec_firmware_write_line
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:643,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:643,1
    - Dst: fu_srec_firmware_write_line
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:647,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:650,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:651,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 587
    functionDepth: 3
    functionLinenumber: 587
    functionLinenumberEnd: 652
    functionName: fu_srec_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_srec_firmware_write_line
    - fu_firmware_get_bytes_with_patches
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - g_steal_pointer
    - fu_firmware_get_addr
    - g_byte_array_new
    - strlen
    - fu_chunk_get_data
    - g_string_new
    - g_bytes_get_size
    - g_byte_array_append
    - fu_chunk_array_length
    - g_autoptr
    - fu_chunk_get_address
    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:657,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:658,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:659,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 661
    functionName: fu_srec_firmware_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FU_SREC_FIRMWARE
    - G_OBJECT_CLASS
    - GET_PRIVATE
    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:666,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:667,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:668,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware.c:668,1
    - Dst: fu_firmware_set_size_max
      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: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSrecFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 670
    functionName: fu_srec_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    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: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_srec_firmware_new(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:43,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:45,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:46,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:47,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:49,1
    - Dst: g_file_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:50,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:51,1
    - Dst: g_file_make_directory_with_parents
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:52,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:55,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:56,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - filename
    - bytes
    - error
    argTypes:
    - gchar*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 58
    functionName: fu_bytes_set_contents
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 14
    functionsReached:
    - g_return_val_if_fail
    - g_file_make_directory_with_parents
    - g_debug
    - g_bytes_get_data
    - g_file_query_exists
    - g_file_new_for_path
    - g_autoptr
    - g_file_set_contents
    - g_file_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bytes_set_contents(const gchar *filename, GBytes *bytes,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:79,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:80,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:82,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:83,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:84,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:86,1
    - Dst: g_file_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:87,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:88,1
    - Dst: g_file_make_directory_with_parents
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:89,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:92,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:93,1
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:94,1
    - Dst: g_file_set_contents_full
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:95,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:102,1
    - Dst: g_chmod
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:104,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:105,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - filename
    - bytes
    - mode
    - error
    argTypes:
    - gchar*
    - GBytes*
    - gint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 114
    functionName: fu_bytes_set_contents_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - g_file_make_directory_with_parents
    - g_debug
    - GLIB_CHECK_VERSION
    - g_set_error
    - g_bytes_get_data
    - g_chmod
    - g_file_query_exists
    - g_file_set_contents_full
    - g_file_new_for_path
    - fwupd_strerror
    - g_autoptr
    - g_file_set_contents
    - g_file_get_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bytes_set_contents_full(const gchar *filename, GBytes *bytes,
      gint mode, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:131,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:133,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:134,1
    - Dst: g_mapped_file_new
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:137,1
    - Dst: g_mapped_file_get_length
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:138,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:141,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:142,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:145,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:150,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:152,1
    - Dst: g_mapped_file_get_length
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:154,1
    - Dst: g_mapped_file_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - filename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 156
    functionName: fu_bytes_get_contents
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 34
    functionsReached:
    - g_return_val_if_fail
    - g_mapped_file_new
    - g_debug
    - g_file_get_contents
    - fwupd_error_convert
    - g_bytes_new_take
    - g_mapped_file_get_bytes
    - g_mapped_file_get_length
    - g_autoptr
    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: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:181,1
    - Dst: g_malloc
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:184,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:185,1
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:186,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:187,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:188,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - bytes
    - blksz
    - padval
    argTypes:
    - GBytes*
    - gsize
    - gchar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 193
    functionName: fu_bytes_align
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_ref
    - g_debug
    - g_bytes_get_data
    - memcpy
    - g_malloc
    - g_bytes_new_take
    - memset
    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:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 215
    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:237,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:238,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:239,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:241,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:242,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:243,1
    - Dst: MAX
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - bytes1
    - bytes2
    - error
    argTypes:
    - GBytes*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 244
    functionName: fu_bytes_compare
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_get_data
    - MAX
    - fu_memcmp_safe
    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:263,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:264,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:267,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:269,1
    - Dst: g_malloc
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:270,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:272,1
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:273,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:274,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - bytes
    - sz
    - data
    argTypes:
    - GBytes*
    - gsize
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 279
    functionName: fu_bytes_pad
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_ref
    - g_bytes_get_data
    - memcpy
    - g_malloc
    - g_bytes_new_take
    - memset
    - g_bytes_get_size
    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:297,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:298,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:301,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:302,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:305,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:306,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:313,1
    - Dst: g_bytes_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:316,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - bytes
    - offset
    - length
    - error
    argTypes:
    - GBytes*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 317
    functionName: fu_bytes_new_offset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_ref
    - g_bytes_new_from_bytes
    - g_set_error
    - g_bytes_get_size
    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:340,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - bytes
    - bufsz
    - error
    argTypes:
    - GBytes*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 346
    functionName: fu_bytes_get_data_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 1
    functionsReached:
    - g_bytes_get_data
    - g_set_error_literal
    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:363,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:363,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:365,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:367,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:369,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:370,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 371
    functionName: fu_bytes_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_get_data
    - g_steal_pointer
    - g_string_free
    - g_string_new
    - g_string_append_printf
    - g_autoptr
    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:387,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:389,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:390,1
    - Dst: fu_byte_array_from_string
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:392,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:395,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-bytes.c:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - str
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 396
    functionName: fu_bytes_from_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bytes.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_steal_pointer
    - g_byte_array_free_to_bytes
    - g_autoptr
    - fu_byte_array_from_string
    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:46,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - idx
    argTypes:
    - FuChunk*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: fu_chunk_set_idx
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 3
    functionsReached:
    - g_return_if_fail
    - FU_IS_CHUNK
    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:63,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: fu_chunk_get_idx
    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_idx(FuChunk *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:79,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - page
    argTypes:
    - FuChunk*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: fu_chunk_set_page
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - FU_IS_CHUNK
    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:96,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    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:112,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - address
    argTypes:
    - FuChunk*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: fu_chunk_set_address
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 3
    functionsReached:
    - g_return_if_fail
    - FU_IS_CHUNK
    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:129,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: fu_chunk_get_address
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 2
    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:146,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: fu_chunk_get_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 3
    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:168,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:168,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 176
    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:191,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: fu_chunk_get_data_sz
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 5
    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:199,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - data_sz
    argTypes:
    - FuChunk*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: fu_chunk_set_data_sz
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - FU_IS_CHUNK
    linkageType: ''
    returnType: void
    signature: void fu_chunk_set_data_sz(FuChunk *self, gsize data_sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:215,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:215,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:221,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:223,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:224,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - FuChunk*
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 227
    functionName: fu_chunk_set_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 0
    functionsReached:
    - g_bytes_ref
    - g_bytes_get_data
    - g_return_if_fail
    - FU_IS_CHUNK
    - g_bytes_get_size
    - g_clear_pointer
    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:242,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:242,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:244,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 246
    functionName: fu_chunk_get_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_ref
    - g_bytes_new_static
    - FU_IS_CHUNK
    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:265,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: 272
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 272
    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:287,1
    - Dst: fu_chunk_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 290
    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:295,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:296,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:297,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:300,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:302,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:305,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:308,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:310,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - flags
    - bn
    argTypes:
    - FuChunk*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 314
    functionName: fu_chunk_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 1
    functionsReached:
    - fu_memstrsafe
    - fu_xmlb_builder_insert_kx
    - xb_builder_node_insert_text
    - g_strdup_printf
    - MIN
    - g_base64_encode
    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:329,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:329,1
    - Dst: fu_chunk_export
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:330,1
    - Dst: xb_builder_node_export
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 326
    functionDepth: 4
    functionLinenumber: 326
    functionLinenumberEnd: 336
    functionName: fu_chunk_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 0
    functionsReached:
    - fu_chunk_export
    - g_autoptr
    - xb_builder_node_new
    - xb_builder_node_export
    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:351,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:351,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:353,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:354,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:354,1
    - Dst: fu_chunk_export
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:355,1
    - Dst: xb_builder_node_export
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - chunks
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 348
    functionDepth: 4
    functionLinenumber: 348
    functionLinenumberEnd: 362
    functionName: fu_chunk_array_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 0
    functionsReached:
    - xb_builder_node_new
    - xb_builder_node_insert
    - fu_chunk_export
    - g_autoptr
    - xb_builder_node_export
    - g_ptr_array_index
    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:390,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:391,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:392,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:394,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - data
    - data_sz
    - addr_offset
    - page_sz
    - packet_sz
    - error
    argTypes:
    - guint8*
    - gsize
    - gsize
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 402
    functionName: fu_chunk_array_mutable_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_chunk_array_new
    - g_ptr_array_index
    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,\n\t\t\t   GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:429,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:430,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:432,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:433,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:434,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:437,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:442,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:448,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:458,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:460,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:464,1
    - Dst: fu_chunk_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:465,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:470,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:477,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:482,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 6
    argNames:
    - data
    - data_sz
    - addr_offset
    - page_sz
    - packet_sz
    - error
    argTypes:
    - guint8*
    - gsize
    - gsize
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 483
    functionName: fu_chunk_array_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_steal_pointer
    - g_ptr_array_add
    - fu_chunk_new
    - g_warning
    - MIN
    - g_autoptr
    - fu_size_checked_inc
    - g_ptr_array_new_with_free_func
    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,\n\t\t
      \  GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:490,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:492,1
    - Dst: FU_IS_CHUNK
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:492,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:493,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:493,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:494,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:497,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:500,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:503,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:506,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:507,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:510,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:511,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:511,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:512,1
    - Dst: fu_chunk_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:513,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:515,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:516,1
    - Dst: fu_chunk_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:517,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - self
    - n
    - error
    argTypes:
    - FuChunk*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 522
    functionName: fu_chunk_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_new
    - fu_chunk_set_bytes
    - XB_IS_NODE
    - xb_node_query_text_as_uint
    - FU_IS_CHUNK
    - xb_node_query_first
    - g_autoptr
    - xb_node_get_text
    - g_base64_decode
    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:527,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:529,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-chunk.c:530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 531
    functionName: fu_chunk_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk.c
    functionUses: 0
    functionsReached:
    - FU_CHUNK
    - g_bytes_unref
    - G_OBJECT_CLASS
    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:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuChunkClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 538
    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: 543
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 543
    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: 889
    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_firmware_get_bytes
    - fu_bytes_to_string
    - fu_efi_signature_kind_to_string
    - fu_xmlb_builder_insert_kv
    - FU_EFI_SIGNATURE
    - g_autoptr
    - GET_PRIVATE
    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
    - g_object_new
    - g_autoptr
    - GET_PRIVATE
    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:
    - g_return_if_fail
    - FU_IS_EFI_SIGNATURE
    - GET_PRIVATE
    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_literal
      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_literal
      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:
    - fu_input_stream_read_safe
    - fu_input_stream_read_bytes
    - g_set_error
    - fwupd_guid_to_string
    - g_prefix_error_literal
    - fu_firmware_set_bytes
    - fu_firmware_get_size
    - FU_EFI_SIGNATURE
    - g_autoptr
    - GET_PRIVATE
    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
    - fu_firmware_get_bytes_with_patches
    - fwupd_guid_from_string
    - g_steal_pointer
    - g_byte_array_new
    - g_byte_array_append
    - FU_EFI_SIGNATURE
    - g_autoptr
    - GET_PRIVATE
    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_strdup
    - xb_node_query_text
    - g_set_error
    - fu_bytes_from_string
    - fwupd_guid_from_string
    - g_prefix_error
    - fu_firmware_set_bytes
    - g_free
    - fu_efi_signature_kind_from_string
    - FU_EFI_SIGNATURE
    - g_autoptr
    - GET_PRIVATE
    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
    - FU_EFI_SIGNATURE
    - g_autoptr
    - g_compute_checksum_for_bytes
    - GET_PRIVATE
    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
    - G_OBJECT_CLASS
    - GET_PRIVATE
    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
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:279,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiSignature*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 280
    functionName: fu_efi_signature_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    - 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_log_get_debug_enabled
      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: 1
    functionLinenumber: 26
    functionLinenumberEnd: 92
    functionName: fu_dump_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dump.c
    functionUses: 1
    functionsReached:
    - g_string_append
    - g_return_if_fail
    - g_log_get_debug_enabled
    - g_ascii_isprint
    - g_string_new
    - g_string_append_printf
    - g_log
    - g_autoptr
    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: 2
    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: 3
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: fu_dump_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dump.c
    functionUses: 1
    functionsReached:
    - g_bytes_get_data
    - fu_dump_raw
    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: 900
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:44,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:45,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:46,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:47,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:48,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 50
    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:55,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:63,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:64,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPciDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: fu_pci_device_ensure_subsys_instance_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_str
    - g_strdup_printf
    - FU_DEVICE
    - GET_PRIVATE
    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:79,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:80,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:80,1
    - Dst: fu_pci_device_ensure_subsys_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - subsystem_vid
    argTypes:
    - FuPciDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 85
    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
    - g_return_if_fail
    - FU_IS_PCI_DEVICE
    - GET_PRIVATE
    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:100,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:101,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPciDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    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:117,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:118,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:118,1
    - Dst: fu_pci_device_ensure_subsys_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - subsystem_pid
    argTypes:
    - FuPciDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 123
    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
    - g_return_if_fail
    - FU_IS_PCI_DEVICE
    - GET_PRIVATE
    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:138,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:139,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPciDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 141
    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:155,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:156,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:156,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:158,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - revision
    argTypes:
    - FuPciDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 159
    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_IS_PCI_DEVICE
    - FU_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:174,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:175,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPciDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 177
    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:182,1
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:183,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:184,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:185,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:187,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:187,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:188,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:188,1
    - Dst: fu_pci_device_set_subsystem_vid
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:193,1
    - Dst: fu_pci_device_get_subsystem_vid
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:193,1
    - Dst: fu_pci_device_set_subsystem_pid
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:195,1
    - Dst: fu_pci_device_get_subsystem_pid
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:195,1
    - Dst: fu_pci_device_set_revision
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:197,1
    - Dst: fu_pci_device_get_revision
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 198
    functionName: fu_pci_device_to_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 0
    functionsReached:
    - FU_PCI_DEVICE
    - fu_pci_device_get_subsystem_vid
    - fu_pci_device_get_subsystem_pid
    - g_return_if_fail
    - FU_IS_PCI_DEVICE
    - fu_pci_device_set_revision
    - fu_pci_device_set_subsystem_vid
    - fu_pci_device_get_revision
    - fu_pci_device_set_subsystem_pid
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_pci_device_to_incorporate(FuDevice *device, FuDevice *donor)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:203,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:204,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:214,1
    - Dst: g_ascii_strup
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:218,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:218,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:218,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:221,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:227,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:228,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:234,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:244,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:247,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:247,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:252,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:253,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:258,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:258,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:264,1
    - Dst: fu_pci_device_set_revision
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:266,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:268,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:269,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:271,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:272,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:273,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:276,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:278,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:279,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:293,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:293,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:299,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:308,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:308,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:314,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:324,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:334,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:335,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:350,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:350,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:353,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:354,1
    - Dst: fu_pci_device_ensure_subsys_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:357,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 200
    functionDepth: 5
    functionLinenumber: 200
    functionLinenumberEnd: 359
    functionName: fu_pci_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_strdup_printf
    - fu_device_set_version_format
    - g_ascii_strup
    - fu_device_set_physical_id
    - fu_device_build_instance_id_full
    - fu_pci_device_ensure_subsys_instance_id
    - fu_udev_device_get_subsystem
    - fu_device_get_version_format
    - GET_PRIVATE
    - fu_strtoull
    - fu_pci_device_set_revision
    - fu_udev_device_read_sysfs
    - g_warning
    - fu_udev_device_read_property
    - FU_UDEV_DEVICE
    - FU_DEVICE_CLASS
    - FU_PCI_DEVICE
    - fu_device_get_version
    - fu_device_has_private_flag_quark
    - g_autoptr
    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: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:370,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:370,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:383,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:383,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:396,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:396,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:409,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:409,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:422,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:422,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:435,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:435,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:448,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:448,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:456,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:456,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:464,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:464,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:477,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:477,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:485,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:485,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:493,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:493,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:506,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:506,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:514,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:514,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:522,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:522,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:535,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:535,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:543,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:543,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:556,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:556,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:564,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:564,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 88
    argCount: 2
    argNames:
    - self
    - base
    argTypes:
    - FuPciDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 571
    functionName: fu_pci_device_set_quirks_fallback
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_quirk_kv
    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:576,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:577,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:580,1
    - Dst: fu_pci_device_set_quirks_fallback
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 584
    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
    - FU_DEVICE_CLASS
    - GET_PRIVATE
    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: 589
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 589
    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:594,1
    - Dst: g_quark_from_static_string
      Src: /src/fwupd/libfwupdplugin/fu-pci-device.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPciDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 601
    functionName: fu_pci_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pci-device.c
    functionUses: 0
    functionsReached:
    - g_quark_from_static_string
    - 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:55,1
    - Dst: FU_IS_IO_CHANNEL
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIOChannel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: fu_io_channel_unix_get_fd
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_IO_CHANNEL
    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:73,1
    - Dst: FU_IS_IO_CHANNEL
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:73,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:74,1
    - Dst: g_close
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIOChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 82
    functionName: fu_io_channel_shutdown
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_IO_CHANNEL
    - 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:99,1
    - Dst: FU_IS_IO_CHANNEL
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:99,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:100,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:103,1
    - Dst: lseek
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:109,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:110,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:113,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:119,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - offset
    - error
    argTypes:
    - FuIOChannel*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 126
    functionName: fu_io_channel_seek
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_io_error_from_errno
    - g_set_error
    - g_set_error_literal
    - fwupd_error_convert
    - fwupd_strerror
    - FU_IS_IO_CHANNEL
    - lseek
    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:135,1
    - Dst: read
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIOChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 142
    functionName: fu_io_channel_flush_input
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 0
    functionsReached:
    - g_poll
    - read
    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:166,1
    - Dst: fu_io_channel_write_raw
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:167,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: 168
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 168
    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:180,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: 186
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 186
    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:212,1
    - Dst: FU_IS_IO_CHANNEL
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:212,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:213,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:213,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:214,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:215,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: 216
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 216
    functionName: fu_io_channel_write_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_input_stream_chunkify
    - FU_IS_IO_CHANNEL
    - G_IS_INPUT_STREAM
    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:239,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: 240
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 240
    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:267,1
    - Dst: FU_IS_IO_CHANNEL
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:267,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:268,1
    - Dst: fu_io_channel_flush_input
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:272,1
    - Dst: write
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:278,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:281,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:285,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:288,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:295,1
    - Dst: g_poll
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:310,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:314,1
    - Dst: write
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:324,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:327,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:331,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:335,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:338,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:344,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: 354
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 354
    functionName: fu_io_channel_write_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - write
    - g_debug
    - g_set_error
    - g_poll
    - fu_io_channel_flush_input
    - fwupd_strerror
    - FU_IS_IO_CHANNEL
    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:377,1
    - Dst: fu_io_channel_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:378,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:381,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: 382
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 382
    functionName: fu_io_channel_read_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 1
    functionsReached:
    - g_autoptr
    - fu_io_channel_read_byte_array
    - g_bytes_new
    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:409,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:409,1
    - 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_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:412,1
    - Dst: FU_IS_IO_CHANNEL
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:412,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:415,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:415,1
    - Dst: read
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:420,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:422,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:425,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:431,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:432,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:439,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:441,1
    - Dst: g_poll
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:447,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:449,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:455,1
    - Dst: read
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:465,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:471,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:474,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:480,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:481,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:487,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:497,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:504,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:511,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:521,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:530,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: 531
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 531
    functionName: fu_io_channel_read_byte_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_io_error_from_errno
    - g_set_error
    - g_set_error_literal
    - g_steal_pointer
    - fwupd_error_convert
    - g_byte_array_set_size
    - g_byte_array_new
    - g_poll
    - MIN
    - g_byte_array_append
    - g_autoptr
    - fwupd_strerror
    - FU_IS_IO_CHANNEL
    - read
    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:558,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:560,1
    - Dst: FU_IS_IO_CHANNEL
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:560,1
    - Dst: fu_io_channel_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:562,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:566,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:566,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: 570
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 570
    functionName: fu_io_channel_read_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_io_channel_read_byte_array
    - memcpy
    - MIN
    - g_autoptr
    - FU_IS_IO_CHANNEL
    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:575,1
    - Dst: g_close
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:577,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 579
    functionName: fu_io_channel_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 0
    functionsReached:
    - FU_IO_CHANNEL
    - g_close
    - 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:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIOChannelClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 586
    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: 592
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 592
    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:608,1
    - Dst: FU_IO_CHANNEL
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - gint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 611
    functionName: fu_io_channel_unix_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_IO_CHANNEL
    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:631,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:632,1
    - Dst: g_open
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:650,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:652,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:655,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:661,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:662,1
    - Dst: fu_io_channel_unix_new
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:665,1
    - Dst: g_steal_fd
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:665,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - filename
    - open_flags
    - error
    argTypes:
    - gchar*
    - FuIoChannelOpenFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 666
    functionName: fu_io_channel_new_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - fu_io_channel_unix_new
    - g_io_error_from_errno
    - g_set_error
    - g_open
    - fwupd_error_convert
    - fwupd_strerror
    - g_steal_fd
    linkageType: ''
    returnType: FuIOChannel
    signature: 'FuIOChannel *

      fu_io_channel_new_file(const gchar *filename, FuIoChannelOpenFlags open_flags,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:685,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:686,1
    - Dst: memfd_create
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:688,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:690,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:693,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:699,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:700,1
    - Dst: fu_io_channel_unix_new
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:703,1
    - Dst: g_steal_fd
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:703,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-io-channel.c:705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - name
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 708
    functionName: fu_io_channel_virtual_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-io-channel.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_io_channel_unix_new
    - g_io_error_from_errno
    - g_set_error
    - g_set_error_literal
    - fwupd_error_convert
    - memfd_create
    - fwupd_strerror
    - g_steal_fd
    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_return_val_if_fail
    - fu_firmware_get_id
    - g_string_replace
    - FU_IS_CAB_IMAGE
    - FU_FIRMWARE
    - fu_cab_image_set_win32_filename
    - g_string_new
    - g_autoptr
    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_return_if_fail
    - g_free
    - g_strdup
    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_unref
    - g_return_if_fail
    - g_date_time_ref
    linkageType: ''
    returnType: void
    signature: void fu_cab_image_set_created(FuCabImage *self, GDateTime *created)
  - BBCount: 5
    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: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:115,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:115,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:116,1
    - Dst: fu_path_verify_safe
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:117,1
    - Dst: fu_cab_image_set_win32_filename
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:119,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:123,1
    - Dst: g_date_time_new_from_iso8601
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:123,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:125,1
    - Dst: fu_cab_image_set_created
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 137
    functionName: fu_cab_image_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-image.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - g_string_replace
    - g_set_error
    - fu_path_verify_safe
    - FU_CAB_IMAGE
    - fu_cab_image_set_created
    - fu_cab_image_set_win32_filename
    - g_string_new
    - g_autoptr
    - g_date_time_new_from_iso8601
    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:142,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:143,1
    - Dst: g_date_time_format_iso8601
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:145,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: fu_cab_image_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-image.c
    functionUses: 0
    functionsReached:
    - FU_CAB_IMAGE
    - fu_xmlb_builder_insert_kv
    - g_date_time_format_iso8601
    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:153,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:154,1
    - Dst: g_date_time_unref
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:156,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 158
    functionName: fu_cab_image_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-image.c
    functionUses: 0
    functionsReached:
    - g_date_time_unref
    - FU_CAB_IMAGE
    - g_free
    - G_OBJECT_CLASS
    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:163,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCabImageClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 168
    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:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:174,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:174,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:176,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cab-image.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCabImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: fu_cab_image_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: fu_cab_image_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cab-image.c
    functionUses: 6
    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
    - G_OBJECT_CLASS
    - FU_SECURITY_ATTRS
    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:
    - FWUPD_IS_SECURITY_ATTR
    - g_ptr_array_add
    - g_return_if_fail
    - g_object_ref
    - FU_IS_SECURITY_ATTRS
    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: 3
    functionsReached:
    - FWUPD_IS_SECURITY_ATTR
    - fwupd_security_attr_get_plugin
    - fwupd_security_attr_get_appstream_id
    - g_return_if_fail
    - g_strdup_printf
    - g_warning
    - FU_IS_SECURITY_ATTRS
    - fu_security_attrs_append_internal
    - fwupd_security_attr_set_url
    - g_str_has_prefix
    - fwupd_security_attr_get_url
    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_return_val_if_fail
    - g_strcmp0
    - fwupd_security_attr_get_appstream_id
    - g_set_error
    - g_set_error_literal
    - g_object_ref
    - FU_IS_SECURITY_ATTRS
    - g_ptr_array_index
    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:
    - g_return_val_if_fail
    - fwupd_security_attr_has_flag
    - FWUPD_CODEC
    - g_variant_builder_init
    - fwupd_codec_to_variant
    - g_variant_builder_add_value
    - G_VARIANT_TYPE
    - FU_IS_SECURITY_ATTRS
    - g_variant_new
    - g_ptr_array_index
    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_return_val_if_fail
    - fwupd_security_attr_has_flag
    - g_steal_pointer
    - g_ptr_array_add
    - g_object_ref
    - FU_IS_SECURITY_ATTRS
    - g_autoptr
    - fu_security_attr_check_fwupd_version
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_security_attrs_get_all(FuSecurityAttrs *self, const gchar *fwupd_version)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:230,1
    - Dst: FU_IS_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:230,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: fu_security_attrs_get_all_mutable
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_ptr_array_ref
    - FU_IS_SECURITY_ATTRS
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_security_attrs_get_all_mutable(FuSecurityAttrs *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:245,1
    - Dst: FU_IS_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:245,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: fu_security_attrs_remove_all
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 4
    functionsReached:
    - g_return_if_fail
    - g_ptr_array_set_size
    - FU_IS_SECURITY_ATTRS
    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:268,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:268,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:274,1
    - Dst: FU_IS_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:274,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:282,1
    - Dst: fwupd_security_attr_get_level
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:283,1
    - Dst: fu_security_attr_check_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:285,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:287,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:289,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:305,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:306,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:308,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:309,1
    - Dst: fu_security_attr_check_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:311,1
    - Dst: fwupd_security_attr_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:314,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:317,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:321,1
    - Dst: fwupd_security_attr_flag_to_suffix
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:323,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:328,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:335,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:335,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 39
    argCount: 3
    argNames:
    - self
    - fwupd_version
    - flags
    argTypes:
    - FuSecurityAttrs*
    - gchar*
    - FuSecurityAttrsFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 336
    functionName: fu_security_attrs_calculate_hsi
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_security_attr_has_flag
    - g_string_append
    - fwupd_security_attr_get_flags
    - g_steal_pointer
    - g_string_free
    - fwupd_security_attr_flag_to_suffix
    - g_string_new
    - FU_IS_SECURITY_ATTRS
    - fu_security_attr_check_fwupd_version
    - g_string_append_printf
    - g_autoptr
    - fwupd_security_attr_get_level
    - g_ptr_array_index
    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:341,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:344,1
    - Dst: fwupd_security_attr_get_level
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:344,1
    - Dst: fwupd_security_attr_has_flag
      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_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:349,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:350,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:351,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:353,1
    - Dst: fwupd_security_attr_get_name
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:357,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:358,1
    - Dst: fwupd_security_attr_get_name
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:358,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:360,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:360,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:362,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - attr
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 363
    functionName: fu_security_attrs_get_sort_key
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_has_flag
    - g_string_append
    - fwupd_security_attr_get_appstream_id
    - g_string_free
    - g_string_new
    - g_string_append_printf
    - fwupd_security_attr_get_name
    - fwupd_security_attr_get_level
    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:370,1
    - Dst: fu_security_attrs_get_sort_key
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:371,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item1
    - item2
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 373
    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:427,1
    - Dst: fwupd_security_attr_get_level
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:430,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:434,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:438,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:439,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:440,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:446,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:447,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - attr
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 448
    functionName: fu_security_attrs_ensure_level
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_has_flag
    - g_strcmp0
    - fwupd_security_attr_get_appstream_id
    - fwupd_security_attr_set_level
    - g_warning
    - G_N_ELEMENTS
    - fwupd_security_attr_get_level
    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:504,1
    - Dst: fwupd_security_attr_get_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:507,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:511,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:515,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:516,1
    - Dst: fwupd_security_attr_set_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:517,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:525,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - attr
    argTypes:
    - FwupdSecurityAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 526
    functionName: fu_security_attrs_ensure_fwupd_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_has_flag
    - g_strcmp0
    - fwupd_security_attr_set_fwupd_version
    - fwupd_security_attr_get_appstream_id
    - g_warning
    - G_N_ELEMENTS
    - fwupd_security_attr_get_fwupd_version
    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:543,1
    - Dst: FU_IS_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:543,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:547,1
    - Dst: fu_security_attrs_ensure_level
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:548,1
    - Dst: fu_security_attrs_ensure_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:549,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:554,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:555,1
    - Dst: fwupd_security_attr_get_plugin
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:556,1
    - Dst: fwupd_security_attr_get_obsoletes
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:557,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:560,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:561,1
    - Dst: fwupd_security_attr_get_plugin
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:562,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:565,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:566,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:572,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:574,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:577,1
    - Dst: fwupd_security_attr_has_obsolete
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:581,1
    - Dst: fwupd_security_attr_has_obsolete
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:583,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:585,1
    - Dst: fwupd_security_attr_add_obsolete
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:590,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:595,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:597,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:598,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:599,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:604,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:613,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 614
    functionName: fu_security_attrs_depsolve
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 4
    functionsReached:
    - fu_security_attrs_ensure_fwupd_version
    - g_ptr_array_sort
    - g_strcmp0
    - fwupd_security_attr_has_flag
    - fwupd_security_attr_get_plugin
    - fwupd_security_attr_has_obsolete
    - g_debug
    - fwupd_security_attr_get_appstream_id
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_get_obsoletes
    - fu_security_attrs_ensure_level
    - g_return_if_fail
    - FU_IS_SECURITY_ATTRS
    - fwupd_security_attr_add_obsolete
    - g_ptr_array_index
    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:619,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:620,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:620,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:621,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:621,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:624,1
    - Dst: fwupd_security_attr_get_created
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:625,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:626,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:626,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:628,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:630,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:631,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:631,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:632,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:633,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:635,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 616
    functionDepth: 3
    functionLinenumber: 616
    functionLinenumberEnd: 636
    functionName: fu_security_attrs_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_get_created
    - fwupd_security_attr_has_flag
    - FWUPD_CODEC
    - fwupd_json_object_add_array
    - fwupd_json_object_new
    - fwupd_codec_to_json
    - fwupd_json_array_new
    - FU_SECURITY_ATTRS
    - fwupd_security_attr_set_created
    - fwupd_json_array_add_object
    - g_autoptr
    - fu_security_attrs_get_all
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_security_attrs_add_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, FwupdCodecFlags flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:641,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:642,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:645,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:648,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:649,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:650,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:650,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:652,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:655,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:655,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:657,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:659,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - codec
    - json_obj
    - error
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 638
    functionDepth: 3
    functionLinenumber: 638
    functionLinenumberEnd: 664
    functionName: fu_security_attrs_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_has_flag
    - FWUPD_CODEC
    - fwupd_json_array_get_size
    - fwupd_codec_from_json
    - fwupd_json_object_get_array
    - FU_SECURITY_ATTRS
    - fwupd_security_attr_new
    - fu_security_attrs_append
    - fwupd_json_array_get_object
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_security_attrs_from_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FwupdCodecInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 671
    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:690,1
    - Dst: g_hash_table_new
      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_hash_table_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:691,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:692,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:692,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:693,1
    - Dst: fu_security_attrs_get_all
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:693,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:694,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:695,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:697,1
    - Dst: FU_IS_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:697,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:698,1
    - Dst: FU_IS_SECURITY_ATTRS
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:698,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:702,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:703,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:704,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:708,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:709,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:710,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:717,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:718,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:718,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:720,1
    - Dst: fwupd_security_attr_copy
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:720,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:721,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:721,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:728,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:730,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:730,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:732,1
    - Dst: fwupd_security_attr_copy
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:732,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:733,1
    - Dst: fwupd_security_attr_set_result_fallback
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:734,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:736,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:737,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:737,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:745,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:746,1
    - Dst: fwupd_security_attr_get_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:746,1
    - Dst: fwupd_security_attr_get_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:752,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:753,1
    - Dst: fwupd_security_attr_copy
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:753,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:754,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:754,1
    - Dst: fwupd_security_attr_set_result_fallback
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:755,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:757,1
    - Dst: fwupd_security_attr_set_flags
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:758,1
    - Dst: fwupd_security_attr_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:758,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:759,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:759,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:764,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 2
    argNames:
    - attrs1
    - attrs2
    argTypes:
    - FuSecurityAttrs*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 765
    functionName: fu_security_attrs_compare
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fwupd_security_attr_get_result
    - g_hash_table_insert
    - fwupd_security_attr_copy
    - fwupd_security_attr_get_appstream_id
    - fwupd_security_attr_set_result
    - fwupd_security_attr_set_flags
    - g_hash_table_lookup
    - g_steal_pointer
    - g_ptr_array_add
    - fwupd_security_attr_get_flags
    - g_hash_table_new
    - FU_IS_SECURITY_ATTRS
    - g_autoptr
    - fwupd_security_attr_set_result_fallback
    - g_ptr_array_new_with_free_func
    - fu_security_attrs_get_all
    - g_ptr_array_index
    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:782,1
    - Dst: fu_security_attrs_compare
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs.c:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - attrs1
    - attrs2
    argTypes:
    - FuSecurityAttrs*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 779
    functionDepth: 3
    functionLinenumber: 779
    functionLinenumberEnd: 784
    functionName: fu_security_attrs_equal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs.c
    functionUses: 1
    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:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 797
    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: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    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: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: fu_plugin_has_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-plugin.h
    functionUses: 36
    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: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    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: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    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_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:17,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:18,1
    - Dst: fu_context_efivars_check_free_space
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:20,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:21,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:22,1
    - Dst: fu_context_efivars_check_free_space
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:24,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:25,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 27
    functionName: fu_context_efivars_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context-test.c
    functionUses: 0
    functionsReached:
    - fu_context_efivars_check_free_space
    - g_assert_error
    - g_assert_no_error
    - g_assert_false
    - fu_context_new_full
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_context_efivars_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:32,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:34,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:34,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:35,1
    - Dst: fu_context_add_backend
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:37,1
    - Dst: fu_context_get_backend_by_name
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:38,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:39,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 41
    functionName: fu_context_backends_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_context_add_backend
    - g_assert_nonnull
    - g_assert_no_error
    - g_object_new
    - fu_context_get_backend_by_name
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_context_backends_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:46,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:46,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:48,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:48,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:49,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:50,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:50,1
    - Dst: fu_context_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:51,1
    - Dst: fu_context_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:52,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:53,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:53,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:54,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:55,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:56,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 57
    functionName: fu_context_flags_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context-test.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_context_new
    - fu_context_add_flag
    - fu_context_remove_flag
    - g_assert_false
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_context_flags_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:62,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:62,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:66,1
    - Dst: fu_context_add_udev_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:69,1
    - Dst: fu_context_add_udev_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:70,1
    - Dst: fu_context_get_udev_subsystems
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:71,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:72,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:73,1
    - Dst: fu_context_add_udev_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:76,1
    - Dst: fu_context_get_plugin_names_for_udev_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:80,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:81,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:82,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:83,1
    - Dst: fu_context_get_plugin_names_for_udev_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:86,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:87,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:88,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 90
    functionName: fu_context_udev_subsystems_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context-test.c
    functionUses: 0
    functionsReached:
    - fu_context_get_plugin_names_for_udev_subsystem
    - fu_context_new
    - fu_context_get_udev_subsystems
    - g_assert_nonnull
    - g_assert_cmpint
    - g_assert_no_error
    - g_autoptr
    - fu_context_add_udev_subsystem
    linkageType: ''
    returnType: void
    signature: void fu_context_udev_subsystems_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:95,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:95,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:97,1
    - Dst: fu_context_get_power_state
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:97,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:98,1
    - Dst: fu_context_get_lid_state
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:98,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:99,1
    - Dst: fu_context_get_display_state
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:99,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:100,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:100,1
    - Dst: fu_context_set_power_state
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:102,1
    - Dst: fu_context_set_power_state
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:103,1
    - Dst: fu_context_set_lid_state
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:104,1
    - Dst: fu_context_set_lid_state
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:105,1
    - Dst: fu_context_set_display_state
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:106,1
    - Dst: fu_context_set_display_state
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:107,1
    - Dst: fu_context_set_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:108,1
    - Dst: fu_context_set_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:109,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:111,1
    - Dst: fu_context_get_power_state
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:111,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:112,1
    - Dst: fu_context_get_lid_state
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:112,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:113,1
    - Dst: fu_context_get_display_state
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:113,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:114,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 115
    functionName: fu_context_state_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context-test.c
    functionUses: 0
    functionsReached:
    - fu_context_set_battery_level
    - fu_context_new
    - fu_context_set_display_state
    - fu_context_get_power_state
    - g_assert_cmpint
    - fu_context_get_lid_state
    - fu_context_set_lid_state
    - fu_context_get_display_state
    - g_autoptr
    - fu_context_get_battery_level
    - fu_context_set_power_state
    linkageType: ''
    returnType: void
    signature: void fu_context_state_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:120,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:122,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:124,1
    - Dst: fu_context_get_firmware_gtype_ids
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:126,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:127,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:128,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:129,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:129,1
    - Dst: fu_context_get_firmware_gtypes
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:131,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:132,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:133,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:134,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:134,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:136,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:136,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:137,1
    - Dst: fu_context_get_firmware_gtype_by_id
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 138
    functionName: fu_context_firmware_gtypes_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_context_get_firmware_gtype_ids
    - g_assert_cmpstr
    - g_assert_nonnull
    - fu_context_get_firmware_gtypes
    - g_assert_cmpint
    - g_array_index
    - fu_context_get_firmware_gtype_by_id
    - fu_context_add_firmware_gtype
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_context_firmware_gtypes_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:145,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:145,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:146,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:146,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:147,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:151,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:152,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:153,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:155,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:156,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:157,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:159,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:160,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:161,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:162,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:162,1
    - Dst: fu_context_get_smbios
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:162,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:163,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:165,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:165,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:166,1
    - Dst: fu_context_get_chassis_kind
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:166,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:169,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:169,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:170,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:170,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:173,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 174
    functionName: fu_context_hwids_dmi_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context-test.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_context_new
    - g_assert_cmpuint
    - fu_firmware_to_string
    - fu_progress_new
    - fu_context_load_quirks
    - fu_context_load_hwinfo
    - g_debug
    - fu_context_get_hwid_value
    - FU_FIRMWARE
    - g_assert_false
    - fu_context_set_path
    - fu_context_get_chassis_kind
    - g_assert_no_error
    - fu_context_get_smbios
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_context_hwids_dmi_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:179,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:179,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:180,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:180,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:181,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:184,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:185,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:186,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:187,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:188,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:189,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:192,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 193
    functionName: fu_context_hwids_unset_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - fu_context_has_hwid_flag
    - fu_progress_new
    - g_assert_false
    - fu_context_new_full
    - fu_context_load_quirks
    - g_assert_true
    - g_autoptr
    - fu_context_load_hwinfo
    linkageType: ''
    returnType: void
    signature: void fu_context_hwids_unset_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:201,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:201,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:202,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:202,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:203,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:204,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:205,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:206,1
    - Dst: fu_context_add_firmware_gtypes
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:208,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:211,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:212,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:213,1
    - Dst: fu_context_set_tmpdir
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:214,1
    - Dst: fu_firmware_new_from_xml
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:217,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:243,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:244,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:245,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:246,1
    - Dst: fu_firmware_write_file
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:247,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:247,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:248,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:249,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:251,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:252,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:253,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:254,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:254,1
    - Dst: fu_context_get_smbios
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:254,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:255,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:257,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:257,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:258,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:258,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:261,1
    - Dst: fu_context_get_chassis_kind
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 195
    functionDepth: 5
    functionLinenumber: 195
    functionLinenumberEnd: 262
    functionName: fu_context_hwids_fdt_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpuint
    - fu_context_set_tmpdir
    - g_assert_nonnull
    - fu_firmware_to_string
    - fu_progress_new
    - fu_context_new_full
    - g_autoptr
    - fu_context_load_hwinfo
    - fu_context_add_firmware_gtypes
    - g_debug
    - fu_context_get_hwid_value
    - g_file_new_for_path
    - fu_temporary_directory_new
    - fu_firmware_write_file
    - fu_firmware_new_from_xml
    - FU_FIRMWARE
    - fu_context_get_chassis_kind
    - g_assert_no_error
    - fu_context_get_smbios
    - g_assert_true
    - g_assert_cmpstr
    - fu_temporary_directory_build
    linkageType: ''
    returnType: void
    signature: void fu_context_hwids_fdt_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:270,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:270,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:271,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:274,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:275,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:277,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:278,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:279,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:282,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:283,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:286,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:287,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:290,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:291,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:294,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:295,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:298,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:299,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:302,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:303,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:306,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 308
    functionName: fu_context_quirks_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_context_set_path
    - fu_context_lookup_quirk_by_id
    - g_assert_no_error
    - fu_context_load_quirks
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_context_quirks_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:313,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:314,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:315,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:316,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:317,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:318,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:319,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:320,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:321,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:322,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:323,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:324,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-context-test.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 326
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:25,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:28,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:34,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:39,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:40,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:41,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:46,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:47,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:48,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:49,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:50,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:51,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:53,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:56,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:57,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:58,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:59,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:60,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:61,1
    - Dst: fu_context_get_bios_settings
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:63,1
    - Dst: fu_bios_settings_get_all
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:64,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:65,1
    - Dst: fu_context_get_bios_setting_pending_reboot
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:68,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:69,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:72,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:73,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:74,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:75,1
    - Dst: fwupd_bios_setting_get_description
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:76,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:77,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:78,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:79,1
    - Dst: fwupd_bios_setting_get_possible_values
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:80,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:82,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:84,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:86,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:92,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:93,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:94,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:95,1
    - Dst: fwupd_bios_setting_get_possible_values
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:96,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:98,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:100,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:102,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:110,1
    - Dst: fwupd_bios_setting_get_read_only
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:111,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:112,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:113,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:114,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:115,1
    - Dst: g_strrstr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:116,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:117,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:119,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:122,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:125,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:126,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:127,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:128,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:129,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:130,1
    - Dst: g_clear_error
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:131,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:133,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:136,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:137,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:138,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:139,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:140,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:141,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:144,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:145,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:148,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:149,1
    - Dst: fwupd_bios_setting_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:150,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:151,1
    - Dst: fwupd_bios_setting_get_lower_bound
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:152,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:153,1
    - Dst: fwupd_bios_setting_get_upper_bound
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:154,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:155,1
    - Dst: fwupd_bios_setting_get_scalar_increment
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:156,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:157,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:160,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:161,1
    - Dst: fwupd_bios_setting_get_lower_bound
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:162,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:163,1
    - Dst: fwupd_bios_setting_get_upper_bound
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:164,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:165,1
    - Dst: fwupd_bios_setting_get_description
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:166,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:167,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:170,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:171,1
    - Dst: fwupd_bios_setting_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:172,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:173,1
    - Dst: fwupd_bios_setting_get_possible_values
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:174,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:176,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:178,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:180,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:184,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:185,1
    - Dst: fwupd_bios_setting_get_read_only
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:186,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:187,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:189,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:192,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:193,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:194,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:195,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:196,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:197,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 130
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 199
    functionName: fu_bios_settings_load_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fwupd_bios_setting_get_possible_values
    - fu_context_get_bios_setting
    - fwupd_bios_setting_get_current_value
    - g_assert_nonnull
    - g_free
    - g_ptr_array_index
    - g_debug
    - fwupd_bios_setting_get_upper_bound
    - fu_bios_settings_get_all
    - g_assert_cmpint
    - fwupd_bios_setting_get_read_only
    - fu_context_reload_bios_settings
    - g_assert_null
    - fwupd_bios_setting_get_lower_bound
    - fwupd_bios_setting_get_description
    - fu_context_get_bios_setting_pending_reboot
    - g_assert_false
    - fwupd_bios_setting_get_scalar_increment
    - fwupd_bios_setting_get_kind
    - g_strcmp0
    - fu_context_set_path
    - fwupd_bios_setting_get_name
    - g_strrstr
    - g_assert_no_error
    - g_file_test
    - g_clear_error
    - fu_context_get_bios_settings
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - g_build_filename
    linkageType: ''
    returnType: void
    signature: void fu_bios_settings_load_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:204,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:205,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:206,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_backend_get_context
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:22,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:24,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:25,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:25,1
    - Dst: fu_device_set_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:26,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:26,1
    - Dst: fu_device_set_backend
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:27,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:27,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:28,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:28,1
    - Dst: fu_udev_device_set_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:30,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:30,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:31,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:31,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:34,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:35,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:36,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:39,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:39,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:42,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:43,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:44,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:44,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:47,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:48,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:49,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 2
    argNames:
    - backend
    - hid_phys
    argTypes:
    - FuBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 52
    functionName: fu_hidraw_device_test_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_fwupd_version
    - fu_device_event_set_str
    - fu_device_set_backend_id
    - FU_DEVICE
    - g_object_new
    - fu_udev_device_set_device_file
    - fu_device_event_new
    - fu_device_add_event
    - fu_backend_get_context
    - fu_device_set_backend
    - g_autoptr
    - FU_UDEV_DEVICE
    - fu_udev_device_set_subsystem
    linkageType: ''
    returnType: FuHidrawDevice
    signature: 'FuHidrawDevice *

      fu_hidraw_device_test_new(FuBackend *backend, const gchar *hid_phys)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:61,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:62,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:62,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:64,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:67,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:68,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:69,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:71,1
    - Dst: fu_hidraw_device_test_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:79,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:81,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:81,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:82,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:83,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:86,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:86,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 87
    functionName: fu_hidraw_device_probe_hid_phys_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - fu_context_new
    - g_assert_no_error
    - fu_device_get_physical_id
    - FU_DEVICE
    - g_object_new
    - fu_hidraw_device_test_new
    - fu_context_load_quirks
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_hidraw_device_probe_hid_phys_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:101,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:103,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:106,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:107,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:108,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:110,1
    - Dst: fu_hidraw_device_test_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:120,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:123,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:123,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:124,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:125,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:128,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:128,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:128,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:133,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:133,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:133,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:134,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:134,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 135
    functionName: fu_hidraw_device_probe_hid_phys_empty_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - fu_context_new
    - fu_device_get_pid
    - g_assert_no_error
    - fu_device_get_physical_id
    - g_assert_cmpint
    - FU_DEVICE
    - fu_device_get_vid
    - g_object_new
    - fu_hidraw_device_test_new
    - fu_context_load_quirks
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_hidraw_device_probe_hid_phys_empty_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:140,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:141,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:142,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:144,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:30,1
    - Dst: fu_cbor_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:30,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:34,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:42,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:53,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:54,1
    - Dst: fu_cbor_parse_item
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:55,1
    - Dst: fu_cbor_parse_item
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:58,1
    - Dst: fu_cbor_item_map_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:61,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:66,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - helper
    - len
    - current_depth
    - error
    argTypes:
    - FuCborParseHelper*
    - guint64
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 67
    functionName: fu_cbor_parse_map
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-common.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - fu_cbor_parse_item
    - g_steal_pointer
    - fu_cbor_item_new_map
    - fu_cbor_item_map_append
    - g_autoptr
    linkageType: ''
    returnType: FuCborItem
    signature: 'FuCborItem *

      fu_cbor_parse_map(FuCborParseHelper *helper, guint64 len, guint current_depth,
      GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:72,1
    - Dst: fu_cbor_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:72,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:76,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:84,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:95,1
    - Dst: fu_cbor_parse_item
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:96,1
    - Dst: fu_cbor_item_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:99,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:104,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - helper
    - len
    - current_depth
    - error
    argTypes:
    - FuCborParseHelper*
    - guint64
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 105
    functionName: fu_cbor_parse_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-common.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_array_append
    - g_debug
    - g_set_error
    - fu_cbor_parse_item
    - g_steal_pointer
    - fu_cbor_item_new_array
    - g_autoptr
    linkageType: ''
    returnType: FuCborItem
    signature: 'FuCborItem *

      fu_cbor_parse_array(FuCborParseHelper *helper, guint64 len, guint current_depth,
      GError **error)'
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:115,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:118,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:119,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:124,1
    - Dst: fu_cbor_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:124,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:128,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:132,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:136,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:137,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:142,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:150,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:151,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:156,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:164,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:165,1
    - Dst: fu_input_stream_read_u64
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:170,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:177,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:185,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:186,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:190,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:196,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:204,1
    - Dst: fu_cbor_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:208,1
    - Dst: fu_cbor_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:210,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:214,1
    - Dst: fu_input_stream_read_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:222,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:225,1
    - Dst: fu_cbor_item_new_string_steal
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:227,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:227,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:230,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:232,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:240,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:243,1
    - Dst: fu_cbor_item_new_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:245,1
    - Dst: fu_cbor_item_new_boolean
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:249,1
    - Dst: fu_cbor_item_new_boolean
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:251,1
    - Dst: fu_cbor_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:253,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:254,1
    - Dst: fu_cbor_special_value_to_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:259,1
    - Dst: fu_cbor_parse_map
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:263,1
    - Dst: fu_cbor_parse_array
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:265,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:268,1
    - Dst: fu_cbor_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:273,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 109
    argCount: 3
    argNames:
    - helper
    - current_depth
    - error
    argTypes:
    - FuCborParseHelper*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 275
    functionName: fu_cbor_parse_item
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-common.c
    functionUses: 2
    functionsReached:
    - fu_input_stream_read_u16
    - fu_cbor_item_new_integer
    - g_debug
    - fu_input_stream_read_u32
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_cbor_special_value_to_string
    - fu_cbor_parse_map
    - fu_input_stream_read_string
    - fu_cbor_item_new_string_steal
    - fu_cbor_item_new_string
    - fu_input_stream_read_u64
    - fu_input_stream_read_u8
    - fu_input_stream_read_bytes
    - fu_cbor_tag_to_string
    - g_set_error
    - g_steal_pointer
    - fu_cbor_parse_array
    - fu_cbor_item_new_bytes
    - fu_cbor_item_new_boolean
    - fu_size_checked_inc
    - g_autoptr
    linkageType: ''
    returnType: FuCborItem
    signature: 'FuCborItem *

      fu_cbor_parse_item(FuCborParseHelper *helper, guint current_depth, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:300,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:308,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:308,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:309,1
    - Dst: fu_cbor_parse_item
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:313,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:315,1
    - Dst: fu_cbor_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:318,1
    - Dst: fu_cbor_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:319,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:320,1
    - Dst: fu_cbor_item_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:324,1
    - Dst: fu_cbor_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:324,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cbor-common.c:331,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 6
    argNames:
    - stream
    - offset
    - max_depth
    - max_items
    - max_length
    - error
    argTypes:
    - GInputStream*
    - gsize*
    - guint
    - guint
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 292
    functionDepth: 4
    functionLinenumber: 292
    functionLinenumberEnd: 332
    functionName: fu_cbor_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-common.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_cbor_item_kind_to_string
    - g_set_error
    - fu_cbor_parse_item
    - g_steal_pointer
    - g_prefix_error
    - fu_cbor_item_get_kind
    - G_IS_INPUT_STREAM
    - g_autoptr
    linkageType: ''
    returnType: FuCborItem
    signature: "FuCborItem *\nfu_cbor_parse(GInputStream *stream,\n\t      gsize *offset,\n\t
      \     guint max_depth,\n\t      guint max_items,\n\t      guint max_length,\n\t
      \     GError **error)"
  - 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: 2
    argNames:
    - pstore
    - error
    argTypes:
    - FuPathStore*
    - 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(FuPathStore *pstore, 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_literal
      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: g_strcmp0
      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_strcmp0
    - strncmp
    - g_bus_get_sync
    - g_variant_unref
    - g_steal_pointer
    - g_dbus_error_strip_remote_error
    - g_dbus_proxy_new_sync
    - g_prefix_error_literal
    - g_prefix_error
    - g_variant_iter_init
    - g_ptr_array_add
    - strlen
    - g_ptr_array_new_with_free_func
    - g_dbus_proxy_call_sync
    - g_autoptr
    - g_variant_iter_next
    - g_variant_get
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-common-freebsd.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pstore
    - error
    argTypes:
    - FuPathStore*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: fu_common_get_olson_timezone_id_impl
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common-freebsd.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_common_get_olson_timezone_id_impl(FuPathStore *pstore, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:15,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:16,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:17,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:19,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:20,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:21,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:22,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:23,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:24,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:25,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:26,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 11
    functionDepth: 5
    functionLinenumber: 11
    functionLinenumberEnd: 27
    functionName: fu_srec_firmware_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_bytes
    - g_assert_nonnull
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - g_assert_cmpint
    - g_bytes_get_size
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_srec_firmware_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:35,1
    - Dst: fu_srec_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:35,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:36,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:37,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:38,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:43,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:43,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:44,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:45,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:46,1
    - Dst: fu_firmware_tokenize
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:47,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:48,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:49,1
    - Dst: fu_srec_firmware_get_records
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:51,1
    - Dst: FU_SREC_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:51,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:52,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:53,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:54,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:55,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:56,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:57,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:58,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:59,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 61
    functionName: fu_srec_firmware_tokenization_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c
    functionUses: 0
    functionsReached:
    - fu_srec_firmware_get_records
    - g_memory_input_stream_new_from_bytes
    - fu_srec_firmware_new
    - g_assert_nonnull
    - g_assert_no_error
    - FU_SREC_FIRMWARE
    - g_assert_cmpint
    - strlen
    - fu_firmware_tokenize
    - g_assert_true
    - g_autoptr
    - g_bytes_new_static
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_srec_firmware_tokenization_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:66,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:67,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:68,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:69,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:70,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_type_ensure
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-udev-device-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device-test.c:19,1
    - Dst: fu_context_new
      Src: /src/fwupd/libfwupdplugin/fu-udev-device-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device-test.c:20,1
    - Dst: fu_udev_device_new
      Src: /src/fwupd/libfwupdplugin/fu-udev-device-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device-test.c:22,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-udev-device-test.c:24,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device-test.c:25,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-udev-device-test.c:26,1
    - Dst: fu_udev_device_list_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-udev-device-test.c:29,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-udev-device-test.c:30,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-udev-device-test.c:31,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-udev-device-test.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 14
    functionDepth: 5
    functionLinenumber: 14
    functionLinenumberEnd: 33
    functionName: fu_udev_device_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_udev_device_new
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fu_udev_device_list_sysfs
    - fu_udev_device_read_property
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_udev_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-udev-device-test.c:38,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-udev-device-test.c:39,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-udev-device-test.c:40,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-udev-device-test.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-udev-device-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - 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/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: 17
    functionsReached:
    - g_return_val_if_fail
    - g_file_read
    - g_steal_pointer
    - fwupd_error_convert
    - G_INPUT_STREAM
    - g_file_new_for_path
    - g_autoptr
    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: 2
    functionLinenumber: 62
    functionLinenumberEnd: 98
    functionName: fu_input_stream_read_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - fu_memchk_write
    - g_seekable_seek
    - g_set_error
    - g_prefix_error
    - G_SEEKABLE
    - G_IS_INPUT_STREAM
    - g_input_stream_read
    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: 3
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: fu_input_stream_read_u8
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - fu_input_stream_read_safe
    - G_IS_INPUT_STREAM
    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: 3
    functionLinenumber: 140
    functionLinenumberEnd: 155
    functionName: fu_input_stream_read_u16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - fu_input_stream_read_safe
    - G_IS_INPUT_STREAM
    - 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: 3
    functionLinenumber: 171
    functionLinenumberEnd: 186
    functionName: fu_input_stream_read_u24
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_input_stream_read_safe
    - G_IS_INPUT_STREAM
    - 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: 3
    functionLinenumber: 202
    functionLinenumberEnd: 217
    functionName: fu_input_stream_read_u32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fu_input_stream_read_safe
    - fu_memread_uint32
    - G_IS_INPUT_STREAM
    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: 3
    functionLinenumber: 233
    functionLinenumberEnd: 248
    functionName: fu_input_stream_read_u64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_input_stream_read_safe
    - fu_memread_uint64
    - G_IS_INPUT_STREAM
    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: 3
    functionsReached:
    - g_return_val_if_fail
    - g_seekable_seek
    - g_set_error_literal
    - g_steal_pointer
    - g_seekable_can_seek
    - g_byte_array_new
    - FU_IS_PROGRESS
    - G_IS_SEEKABLE
    - G_IS_INPUT_STREAM
    - G_SEEKABLE
    - MIN
    - g_byte_array_append
    - g_input_stream_read
    - fu_progress_set_percentage_full
    - g_autoptr
    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: 26
    functionsReached:
    - g_return_val_if_fail
    - g_steal_pointer
    - fu_input_stream_read_byte_array
    - FU_IS_PROGRESS
    - g_byte_array_free_to_bytes
    - G_IS_INPUT_STREAM
    - g_autoptr
    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: 3
    functionsReached:
    - g_return_val_if_fail
    - g_strndup
    - g_set_error_literal
    - fu_input_stream_read_byte_array
    - G_IS_INPUT_STREAM
    - g_autoptr
    - g_utf8_validate_len
    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_literal
      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: 31
    functionsReached:
    - g_return_val_if_fail
    - g_seekable_seek
    - g_seekable_tell
    - g_seekable_can_seek
    - g_prefix_error_literal
    - G_IS_SEEKABLE
    - G_SEEKABLE
    - G_IS_INPUT_STREAM
    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: 14
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_checksum_new
    - g_checksum_get_string
    - fu_input_stream_chunkify
    - G_IS_INPUT_STREAM
    - g_autoptr
    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_return_val_if_fail
    - fu_input_stream_chunkify
    - G_IS_INPUT_STREAM
    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_return_val_if_fail
    - fu_input_stream_chunkify
    - G_IS_INPUT_STREAM
    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:
    - fu_sum32
    - g_set_error
    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_return_val_if_fail
    - fu_input_stream_chunkify
    - G_IS_INPUT_STREAM
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_crc32_fast
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:602,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: 604
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 604
    functionName: fu_input_stream_compute_crc32_fast_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 0
    functionsReached:
    - fu_crc32_fast
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_input_stream_compute_crc32_fast_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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:626,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:626,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:627,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:628,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:633,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:638,1
    - Dst: fu_crc32_done
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:640,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - stream
    - kind
    - crc
    - error
    argTypes:
    - GInputStream*
    - FuCrcKind
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 642
    functionName: fu_input_stream_compute_crc32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_input_stream_chunkify
    - fu_crc32_done
    - G_IS_INPUT_STREAM
    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:653,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: 655
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 655
    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:677,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:677,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:678,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:679,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:680,1
    - Dst: fu_crc16_done
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:682,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - stream
    - kind
    - crc
    - error
    argTypes:
    - GInputStream*
    - FuCrcKind
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 684
    functionName: fu_input_stream_compute_crc16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_input_stream_chunkify
    - fu_crc16_done
    - G_IS_INPUT_STREAM
    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:705,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:707,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:707,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:708,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:709,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:711,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:718,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:719,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:720,1
    - Dst: func_cb
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:723,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:723,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:723,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: 727
      start: 699
    functionDepth: 3
    functionLinenumber: 699
    functionLinenumberEnd: 727
    functionName: fu_input_stream_chunkify
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 9
    functionsReached:
    - g_return_val_if_fail
    - func_cb
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data
    - G_IS_INPUT_STREAM
    - fu_chunk_array_length
    - g_autoptr
    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:752,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:752,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:757,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:757,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:758,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:759,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:760,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:761,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:764,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:765,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:768,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:774,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:776,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:776,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:779,1
    - Dst: fu_memmem_safe
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:782,1
    - Dst: g_byte_array_remove_range
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:791,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-input-stream.c:797,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 6
    argNames:
    - stream
    - buf
    - bufsz
    - offset
    - offset_found
    - error
    argTypes:
    - GInputStream*
    - guint8*
    - gsize
    - gsize
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 744
    functionDepth: 2
    functionLinenumber: 744
    functionLinenumberEnd: 803
    functionName: fu_input_stream_find
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-input-stream.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    - g_steal_pointer
    - fu_memmem_safe
    - fu_input_stream_read_byte_array
    - g_byte_array_new
    - g_byte_array_remove_range
    - g_error_matches
    - G_IS_INPUT_STREAM
    - g_byte_array_append
    - g_propagate_error
    - g_autoptr
    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     gsize
      *offset_found,\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: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    functionUses: 911
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:36,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:37,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:38,1
    - Dst: fu_v4l_cap_to_string
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:40,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: fu_v4l_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    functionUses: 0
    functionsReached:
    - fu_v4l_cap_to_string
    - fwupd_codec_string_append
    - FU_V4L_DEVICE
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    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:58,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:59,1
    - Dst: FU_IS_V4L_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuV4lDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: fu_v4l_device_get_index
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_V4L_DEVICE
    - GET_PRIVATE
    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:79,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:80,1
    - Dst: FU_IS_V4L_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuV4lDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: fu_v4l_device_get_caps
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_V4L_DEVICE
    - GET_PRIVATE
    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:88,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:90,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:90,1
    - Dst: fu_device_get_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:92,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:93,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:93,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:100,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:100,1
    - Dst: fu_device_get_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:102,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:103,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:103,1
    - Dst: fu_device_get_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:105,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:106,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:106,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - usb_device
    - error
    argTypes:
    - FuV4lDevice*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 116
    functionName: fu_v4l_device_usb_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - fu_device_incorporate
    - FU_DEVICE
    - fu_device_build_instance_id_full
    - fu_device_get_instance_str
    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:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:124,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:127,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:127,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:132,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:135,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:135,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:141,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:147,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:153,1
    - Dst: fu_v4l_device_usb_probe
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 118
    functionDepth: 4
    functionLinenumber: 118
    functionLinenumberEnd: 161
    functionName: fu_v4l_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - fu_device_get_backend_parent_with_subsystem
    - g_prefix_error_literal
    - fu_device_set_name
    - fu_udev_device_read_sysfs
    - FU_V4L_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_v4l_device_usb_probe
    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:167,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:168,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:170,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:170,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:170,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 163
    functionDepth: 4
    functionLinenumber: 163
    functionLinenumberEnd: 188
    functionName: fu_v4l_device_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_execute
    - fu_udev_device_ioctl_new
    - FU_V4L_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    - GET_PRIVATE
    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:193,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:194,1
    - Dst: fu_v4l_device_get_index
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:195,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:195,1
    - Dst: fu_v4l_device_get_caps
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:196,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: fu_v4l_device_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    functionUses: 0
    functionsReached:
    - fu_v4l_device_get_index
    - fu_v4l_device_get_caps
    - FU_V4L_DEVICE
    - GET_PRIVATE
    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:202,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-v4l-device.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuV4lDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: fu_v4l_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-v4l-device.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_DEVICE
    - fu_udev_device_add_open_flag
    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:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuV4lDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 213
    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:109,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    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:125,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:125,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:126,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:129,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:133,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FuProgress*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 135
    functionName: fu_progress_set_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 34
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FU_IS_PROGRESS
    - 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:150,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    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:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    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:174,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:174,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:175,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:178,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:182,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FuProgress*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: fu_progress_set_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 9
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FU_IS_PROGRESS
    - 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:199,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: fu_progress_get_status
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 1
    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:215,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuProgress*
    - FuProgressFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: fu_progress_add_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 19
    functionsReached:
    - FU_IS_PROGRESS
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_progress_add_flag(FuProgress *self, FuProgressFlags flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:231,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuProgress*
    - FuProgressFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 233
    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, FuProgressFlags flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_clear_handle_id
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 241
    functionName: fu_progress_sleep_idle_stop
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - g_clear_handle_id
    linkageType: ''
    returnType: void
    signature: void fu_progress_sleep_idle_stop(FuProgress *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:255,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuProgress*
    - FuProgressFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 257
    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, FuProgressFlags flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:271,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:271,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - status
    argTypes:
    - FuProgress*
    - FwupdStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 280
    functionName: fu_progress_set_status
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 3
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:295,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: fu_progress_get_percentage
    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_percentage(FuProgress *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:302,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:302,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:303,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:303,1
    - Dst: fu_progress_get_profile
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - parent
    argTypes:
    - FuProgress*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 306
    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: 322
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: fu_progress_get_duration
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    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: 328
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 328
    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:334,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - str
    - level
    argTypes:
    - FuProgress*
    - GString*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 341
    functionName: fu_progress_build_parent_chain
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 1
    functionsReached:
    - fu_progress_build_parent_chain
    - g_string_append_printf
    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:359,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:359,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:360,1
    - Dst: fu_progress_sleep_idle_stop
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:363,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:368,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:368,1
    - Dst: fu_progress_build_parent_chain
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:369,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:370,1
    - Dst: fu_progress_set_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:380,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:380,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:382,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:383,1
    - Dst: fwupd_percentage_delta_notify
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:388,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:391,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - percentage
    argTypes:
    - FuProgress*
    - gdouble
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 392
    functionName: fu_progress_set_percentage
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 1
    functionsReached:
    - fu_progress_set_duration
    - g_signal_handlers_disconnect_by_data
    - g_return_if_fail
    - g_signal_emit
    - FU_IS_PROGRESS
    - g_warning
    - g_string_new
    - fu_progress_sleep_idle_stop
    - g_timer_elapsed
    - fwupd_percentage_delta_notify
    - fu_progress_build_parent_chain
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_progress_set_percentage(FuProgress *self, gdouble percentage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:408,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:408,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:409,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - progress_done
    - progress_total
    argTypes:
    - FuProgress*
    - gsize
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 413
    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:428,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - profile
    argTypes:
    - FuProgress*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 430
    functionName: fu_progress_set_profile
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 6
    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:445,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 447
    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:460,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:460,1
    - Dst: fu_progress_sleep_idle_stop
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:463,1
    - Dst: g_timer_start
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:471,1
    - Dst: g_timer_start
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:472,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 478
    functionName: fu_progress_reset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 5
    functionsReached:
    - g_timer_start
    - g_return_if_fail
    - g_ptr_array_set_size
    - FU_IS_PROGRESS
    - fu_progress_sleep_idle_stop
    linkageType: ''
    returnType: void
    signature: void fu_progress_reset(FuProgress *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:495,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:495,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:496,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:506,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:510,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:517,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:521,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:522,1
    - Dst: g_timer_start
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:525,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - step_max
    argTypes:
    - FuProgress*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 492
    functionDepth: 3
    functionLinenumber: 492
    functionLinenumberEnd: 526
    functionName: fu_progress_set_steps
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 13
    functionsReached:
    - g_timer_start
    - fu_progress_set_percentage
    - fu_progress_add_step
    - g_signal_handlers_disconnect_by_data
    - fu_progress_add_flag
    - g_return_if_fail
    - FU_IS_PROGRESS
    - g_ptr_array_index
    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:541,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 543
    functionName: fu_progress_get_global_fraction
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    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:559,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 561
    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:570,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - discrete
    - step_max
    argTypes:
    - guint
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 574
    functionName: fu_progress_discrete_to_percent
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - g_warning
    - MIN
    linkageType: ''
    returnType: gdouble
    signature: gdouble fu_progress_discrete_to_percent(guint discrete, guint step_max)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:588,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:595,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - idx
    argTypes:
    - FuProgress*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 596
    functionName: fu_progress_get_step_percentage
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - MIN
    - 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:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - child
    - status
    - self
    argTypes:
    - FuProgress*
    - FwupdStatus
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 602
    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:614,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:624,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:630,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:631,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:632,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:632,1
    - Dst: fu_progress_get_step_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:637,1
    - Dst: fu_progress_get_step_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:641,1
    - Dst: fu_progress_get_step_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:642,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:648,1
    - Dst: fu_progress_discrete_to_percent
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:653,1
    - Dst: fu_progress_discrete_to_percent
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:654,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:663,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - child
    - percentage
    - self
    argTypes:
    - FuProgress*
    - gdouble
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 604
    functionDepth: 3
    functionLinenumber: 604
    functionLinenumberEnd: 664
    functionName: fu_progress_child_percentage_changed_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_percentage
    - fu_progress_get_step_percentage
    - fu_progress_get_status
    - g_warning
    - fu_progress_discrete_to_percent
    - fu_progress_set_status
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_progress_child_percentage_changed_cb(FuProgress *child, gdouble
      percentage, FuProgress *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:683,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:683,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:685,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:685,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:686,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:687,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:690,1
    - Dst: fu_progress_get_global_fraction
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:702,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:703,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:703,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:705,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:708,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:708,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:710,1
    - Dst: fu_progress_set_parent
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:712,1
    - Dst: fu_progress_set_name
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:714,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:718,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:721,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:721,1
    - Dst: g_timer_start
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:724,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - self
    - status
    - value
    - name
    argTypes:
    - FuProgress*
    - FwupdStatus
    - guint
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 680
    functionDepth: 2
    functionLinenumber: 680
    functionLinenumberEnd: 728
    functionName: fu_progress_add_step
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 22
    functionsReached:
    - fu_progress_set_name
    - g_timer_start
    - g_signal_connect
    - FU_PROGRESS
    - g_steal_pointer
    - g_return_if_fail
    - g_ptr_array_add
    - fu_progress_get_global_fraction
    - fu_progress_new
    - FU_IS_PROGRESS
    - fu_progress_set_parent
    - G_CALLBACK
    - fu_progress_set_status
    - g_autoptr
    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:741,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:741,1
    - Dst: fu_progress_sleep_idle_stop
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:744,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:752,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:756,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:757,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 738
    functionDepth: 3
    functionLinenumber: 738
    functionLinenumberEnd: 759
    functionName: fu_progress_finished
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 4
    functionsReached:
    - fu_progress_set_percentage
    - fu_progress_add_flag
    - g_return_if_fail
    - FU_IS_PROGRESS
    - fu_progress_sleep_idle_stop
    - g_ptr_array_index
    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:776,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:776,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:777,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:781,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:782,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:785,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 786
    functionName: fu_progress_get_child
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 29
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PROGRESS
    - FU_PROGRESS
    - g_ptr_array_index
    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:794,1
    - Dst: g_string_new
      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: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:804,1
    - Dst: g_string_set_size
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:807,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:808,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:812,1
    - Dst: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:813,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:820,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:822,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:823,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:827,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:829,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:830,1
    - Dst: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:830,1
    - Dst: fabs
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:833,1
    - Dst: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:833,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:838,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:841,1
    - Dst: fu_progress_get_name_fallback
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:841,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:843,1
    - Dst: fu_progress_get_name_fallback
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:843,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:844,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:848,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 850
    functionName: fu_progress_show_profile
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - fu_progress_get_duration
    - g_string_append
    - g_debug
    - g_string_set_size
    - fabs
    - fu_progress_get_name_fallback
    - g_warning
    - g_string_new
    - g_string_append_printf
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_progress_show_profile(FuProgress *self)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:866,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:866,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:867,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:871,1
    - Dst: fu_progress_sleep_idle_stop
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:872,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:884,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:884,1
    - Dst: fu_progress_build_parent_chain
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:885,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:886,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:893,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:893,1
    - Dst: fu_progress_build_parent_chain
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:894,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:895,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:900,1
    - Dst: fu_progress_set_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:906,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:906,1
    - Dst: g_timer_start
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:907,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:912,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:912,1
    - Dst: fu_progress_build_parent_chain
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:913,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:914,1
    - Dst: fu_progress_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:919,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:921,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:921,1
    - Dst: fu_progress_build_parent_chain
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:922,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:923,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:937,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:938,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:939,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:939,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:941,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:941,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:943,1
    - Dst: fu_progress_get_step_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:951,1
    - Dst: fu_progress_discrete_to_percent
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:953,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:954,1
    - Dst: fu_progress_show_profile
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:958,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 860
    functionDepth: 3
    functionLinenumber: 860
    functionLinenumberEnd: 959
    functionName: fu_progress_step_done
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 33
    functionsReached:
    - g_timer_start
    - fu_progress_set_percentage
    - fu_progress_set_duration
    - fu_progress_get_step_percentage
    - g_return_if_fail
    - fu_progress_get_status
    - FU_IS_PROGRESS
    - g_warning
    - g_string_new
    - fu_progress_sleep_idle_stop
    - g_timer_elapsed
    - fu_progress_has_flag
    - fu_progress_build_parent_chain
    - fu_progress_set_status
    - g_autoptr
    - fu_progress_discrete_to_percent
    - fu_progress_show_profile
    - g_ptr_array_index
    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:977,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:977,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:978,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:980,1
    - Dst: g_usleep
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:982,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - delay_ms
    argTypes:
    - FuProgress*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 972
    functionDepth: 3
    functionLinenumber: 972
    functionLinenumberEnd: 985
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:990,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:993,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:994,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:995,1
    - Dst: fu_progress_sleep_idle_stop
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 987
    functionDepth: 1
    functionLinenumber: 987
    functionLinenumberEnd: 1005
    functionName: fu_progress_sleep_idle_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - FU_PROGRESS
    - g_debug
    - g_signal_emit
    - fu_progress_sleep_idle_stop
    - MIN
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_progress_sleep_idle_cb(gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1020,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1020,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1021,1
    - Dst: fu_progress_sleep_idle_stop
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1023,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1024,1
    - Dst: fu_progress_set_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1025,1
    - Dst: g_timeout_add
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1027,1
    - Dst: MAX
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - delay_ms
    argTypes:
    - FuProgress*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1017
    functionDepth: 3
    functionLinenumber: 1017
    functionLinenumberEnd: 1028
    functionName: fu_progress_sleep_idle
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_percentage
    - g_return_if_fail
    - MAX
    - FU_IS_PROGRESS
    - fu_progress_sleep_idle_stop
    - g_timeout_add
    - fu_progress_set_duration
    linkageType: ''
    returnType: void
    signature: void fu_progress_sleep_idle(FuProgress *self, guint delay_ms)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1039,1
    - Dst: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1041,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1043,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1045,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1047,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1049,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1050,1
    - Dst: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1050,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1051,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1054,1
    - Dst: fu_progress_traceback_cb
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1055,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: 1057
      start: 1030
    functionDepth: 1
    functionLinenumber: 1030
    functionLinenumberEnd: 1057
    functionName: fu_progress_traceback_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 1
    functionsReached:
    - fu_progress_get_duration
    - g_string_append
    - fu_progress_traceback_cb
    - g_string_append_printf
    - g_ptr_array_index
    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:1072,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1074,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1074,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1078,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1079,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1085,1
    - Dst: fu_progress_traceback_cb
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1088,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1091,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1091,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1069
    functionDepth: 2
    functionLinenumber: 1069
    functionLinenumberEnd: 1092
    functionName: fu_progress_traceback
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 2
    functionsReached:
    - g_getenv
    - fu_strtoull
    - fu_progress_traceback_cb
    - g_steal_pointer
    - g_string_free
    - g_warning
    - g_string_new
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_progress_traceback(FuProgress *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1097,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1103,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1104,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1106,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1108,1
    - Dst: fwupd_status_to_string
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1108,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1110,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1111,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1112,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1114,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1115,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1115,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - codec
    - idt
    - str
    argTypes:
    - FwupdCodec*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1094
    functionDepth: 3
    functionLinenumber: 1094
    functionLinenumberEnd: 1117
    functionName: fu_progress_add_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_add_string
    - FWUPD_CODEC
    - FU_PROGRESS
    - fwupd_codec_string_append
    - fwupd_codec_string_append_int
    - fwupd_status_to_string
    - g_ptr_array_index
    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: 1123
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1123
    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:1131,1
    - Dst: g_timer_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1132,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1125
    functionDepth: 0
    functionLinenumber: 1125
    functionLinenumberEnd: 1136
    functionName: fu_progress_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - g_timer_new
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_progress_init(FuProgress *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1141,1
    - Dst: fu_progress_show_profile
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1145,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1147,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1148,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1149,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1150,1
    - Dst: g_timer_destroy
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1151,1
    - Dst: g_timer_destroy
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1152,1
    - Dst: g_source_remove
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1154,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1138
    functionDepth: 2
    functionLinenumber: 1138
    functionLinenumberEnd: 1157
    functionName: fu_progress_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - g_source_remove
    - FU_PROGRESS
    - g_ptr_array_unref
    - g_timer_destroy
    - fu_progress_reset
    - G_OBJECT_CLASS
    - g_free
    - fu_progress_show_profile
    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:1162,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1174,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1175,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1193,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuProgressClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1203
    functionName: fu_progress_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 0
    functionsReached:
    - G_TYPE_FROM_CLASS
    - g_signal_new
    - 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:1217,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1219,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress.c:1220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1221
    functionName: fu_progress_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress.c
    functionUses: 61
    functionsReached:
    - g_object_new
    - FU_PROGRESS
    - fu_progress_set_id
    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: 916
    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_device_get_firmware_size_max
    - FU_IS_CFI_DEVICE
    - 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
    - g_return_if_fail
    - FU_IS_CFI_DEVICE
    - FU_DEVICE
    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:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FU_IS_CFI_DEVICE
    - g_free
    - GET_PRIVATE
    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
    - g_value_set_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    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
    - fu_cfi_device_set_flash_id
    - g_value_get_string
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    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
    - g_free
    - G_OBJECT_CLASS
    - GET_PRIVATE
    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_literal
      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:
    - fu_cfi_device_send_command
    - g_set_error
    - FU_CFI_DEVICE
    - g_prefix_error_literal
    - fu_cfi_device_chip_select_locker_new
    - fu_progress_new
    - 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
    - fu_device_retry_full
    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_literal
      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:
    - fu_cfi_device_send_command
    - fu_cfi_device_set_flash_id
    - FU_CFI_DEVICE_GET_CLASS
    - g_prefix_error_literal
    - fu_cfi_device_chip_select_locker_new
    - fu_progress_new
    - g_string_new
    - g_string_append_printf
    - FuCfiDeviceClass*::read_jedec
    - g_autoptr
    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:
    - fu_device_add_flag
    - g_strndup
    - FU_CFI_DEVICE
    - fu_device_add_instance_str
    - g_set_error_literal
    - FU_DEVICE
    - strlen
    - fu_device_build_instance_id_full
    - fu_cfi_device_read_jedec
    - GET_PRIVATE
    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_return_val_if_fail
    - g_set_error
    - g_set_error_literal
    - FU_IS_CFI_DEVICE
    - fu_cfi_device_cmd_to_string
    - GET_PRIVATE
    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:
    - g_return_if_fail
    - FU_IS_CFI_DEVICE
    - GET_PRIVATE
    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:
    - g_return_if_fail
    - FU_IS_CFI_DEVICE
    - GET_PRIVATE
    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:
    - g_return_if_fail
    - FU_IS_CFI_DEVICE
    - GET_PRIVATE
    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:
    - g_strcmp0
    - FU_CFI_DEVICE
    - fu_strtoull
    - g_set_error_literal
    - GET_PRIVATE
    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
    - fwupd_codec_string_append
    - fu_cfi_device_cmd_to_string
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    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: 3
    functionLinenumber: 592
    functionLinenumberEnd: 619
    functionName: fu_cfi_device_send_command
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - FU_CFI_DEVICE_GET_CLASS
    - FU_IS_CFI_DEVICE
    - FuCfiDeviceClass*::send_command
    - FU_IS_PROGRESS
    - fu_dump_raw
    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:
    - g_return_val_if_fail
    - FuCfiDeviceClass*::chip_select
    - g_set_error_literal
    - FU_CFI_DEVICE_GET_CLASS
    - FU_IS_CFI_DEVICE
    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:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 653
    functionName: fu_cfi_device_chip_select_assert_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_CFI_DEVICE
    - fu_cfi_device_chip_select
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfi_device_chip_select_assert_cb(FuDevice *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:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 659
    functionName: fu_cfi_device_chip_select_deassert_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_CFI_DEVICE
    - fu_cfi_device_chip_select
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfi_device_chip_select_deassert_cb(FuDevice *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
    - Dst: FU_DEVICE
      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
    - 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: 4
    functionLinenumber: 682
    functionLinenumberEnd: 702
    functionName: fu_cfi_device_write_enable
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_cfi_device_send_command
    - fu_device_locker_close
    - fu_cfi_device_chip_select_locker_new
    - fu_progress_new
    - fu_cfi_device_wait_for_status
    - g_autoptr
    - 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: 4
    functionLinenumber: 704
    functionLinenumberEnd: 726
    functionName: fu_cfi_device_chip_erase
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_cfi_device_send_command
    - fu_device_locker_close
    - fu_cfi_device_chip_select_locker_new
    - fu_progress_new
    - fu_cfi_device_wait_for_status
    - g_autoptr
    - 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: 5
    functionLinenumber: 728
    functionLinenumberEnd: 756
    functionName: fu_cfi_device_write_page
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_cfi_device_send_command
    - g_debug
    - fu_chunk_get_data_sz
    - fu_device_locker_close
    - fu_byte_array_append_uint8
    - fu_cfi_device_chip_select_locker_new
    - g_byte_array_new
    - fu_chunk_get_address
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_cfi_device_write_enable
    - fu_cfi_device_wait_for_status
    - g_autoptr
    - fu_byte_array_append_uint24
    - 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: 6
    functionLinenumber: 758
    functionLinenumberEnd: 781
    functionName: fu_cfi_device_write_pages
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_cfi_device_write_page
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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: 4
    functionLinenumber: 783
    functionLinenumberEnd: 803
    functionName: fu_cfi_device_read_block
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_cfi_device_send_command
    - fu_chunk_get_data_sz
    - fu_cfi_device_get_cmd
    - fu_chunk_get_data_out
    - fu_cfi_device_chip_select_locker_new
    - g_autoptr
    - fu_memwrite_uint24
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfi_device_read_block(FuCfiDevice *self, FuChunk *block,
      FuProgress *progress, GError **error)
  - BBCount: 3
    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:821,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:822,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:824,1
    - Dst: fu_cfi_device_read_block
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:825,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:825,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:827,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:831,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - self
    - bufsz
    - progress
    - error
    argTypes:
    - FuCfiDevice*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 805
    functionDepth: 5
    functionLinenumber: 805
    functionLinenumberEnd: 832
    functionName: fu_cfi_device_read_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - fu_cfi_device_get_block_size
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_chunk_array_mutable_new
    - g_byte_array_new
    - fu_cfi_device_read_block
    - g_autoptr
    - fu_progress_get_child
    - fu_byte_array_set_size
    - g_ptr_array_index
    - fu_progress_set_id
    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:837,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:838,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:839,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:842,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:848,1
    - Dst: fu_cfi_device_read_firmware
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 834
    functionDepth: 6
    functionLinenumber: 834
    functionLinenumberEnd: 855
    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_locker_new
    - fu_device_get_firmware_size_max
    - g_autoptr
    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:864,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:865,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:866,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:867,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:868,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:871,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:876,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:877,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:878,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:879,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:882,1
    - Dst: fu_cfi_device_write_enable
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:887,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:888,1
    - Dst: fu_cfi_device_chip_erase
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:891,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:892,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:895,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:898,1
    - Dst: fu_cfi_device_get_page_size
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:901,1
    - Dst: fu_cfi_device_write_pages
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:902,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:902,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:903,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:906,1
    - Dst: fu_cfi_device_read_firmware
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:909,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:910,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:911,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:914,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:917,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:918,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:921,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: 925
      start: 857
    functionDepth: 7
    functionLinenumber: 857
    functionLinenumberEnd: 925
    functionName: fu_cfi_device_write_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_cfi_device_read_firmware
    - fu_progress_add_step
    - FU_CFI_DEVICE
    - fu_firmware_get_bytes
    - fu_chunk_array_new_from_bytes
    - fu_device_locker_new
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_cfi_device_chip_erase
    - fu_cfi_device_write_pages
    - fu_bytes_compare
    - fu_cfi_device_get_page_size
    - fu_cfi_device_write_enable
    - g_bytes_get_size
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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: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
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:933,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:934,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 927
    functionDepth: 3
    functionLinenumber: 927
    functionLinenumberEnd: 936
    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 *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:941,1
    - Dst: fu_device_add_protocol
      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_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:955,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:955,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:956,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:956,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:957,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:957,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:958,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:958,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:959,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:959,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:960,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:960,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:961,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:961,1
    - Dst: fu_device_set_summary
      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: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 963
    functionName: fu_cfi_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_add_protocol
    - fu_device_build_vendor_id
    - GET_PRIVATE
    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:968,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:969,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:969,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 973
    functionName: fu_cfi_device_constructed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_CFI_DEVICE
    - fu_device_add_instance_id
    - G_OBJECT_CLASS
    - FU_DEVICE
    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:978,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:979,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:1000,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-cfi-device.c:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCfiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 1006
    functionName: fu_cfi_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfi-device.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_string
    - 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:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - proxy
    - flash_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1022
    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(FuDevice *proxy, const gchar *flash_id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_mkhi_status_to_string
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:29,1
    - Dst: fu_error_map_entry_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:37,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - result
    - error
    argTypes:
    - FuMkhiStatus
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: fu_heci_device_result_to_error
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-heci-device.c
    functionUses: 0
    functionsReached:
    - fu_error_map_entry_to_gerror
    - fu_mkhi_status_to_string
    - G_N_ELEMENTS
    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:57,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:58,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:59,1
    - Dst: fu_mkhi_read_file_request_new
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:59,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:60,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:62,1
    - Dst: FU_IS_HECI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:62,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:63,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:64,1
    - Dst: fu_mkhi_read_file_request_set_filename
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:67,1
    - Dst: fu_mkhi_read_file_request_set_data_size
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:69,1
    - Dst: fu_mkhi_read_file_request_set_flags
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:70,1
    - Dst: fu_mei_device_write
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:71,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:71,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:79,1
    - Dst: fu_mei_device_read
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:80,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:80,1
    - Dst: fu_mkhi_read_file_response_parse
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:87,1
    - Dst: fu_heci_device_result_to_error
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:90,1
    - Dst: fu_mkhi_read_file_response_get_result
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:90,1
    - Dst: fu_mkhi_read_file_response_get_data_size
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:94,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:96,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:106,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:107,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - self
    - filename
    - error
    argTypes:
    - FuHeciDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 108
    functionName: fu_heci_device_read_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-heci-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_set_size
    - FU_MEI_DEVICE
    - FU_IS_HECI_DEVICE
    - fu_mkhi_read_file_response_get_result
    - fu_mkhi_read_file_response_parse
    - fu_heci_device_result_to_error
    - fu_mkhi_read_file_request_set_data_size
    - g_byte_array_new
    - fu_mei_device_read
    - fu_mei_device_write
    - fu_mkhi_read_file_request_set_flags
    - g_byte_array_append
    - fu_mkhi_read_file_request_set_filename
    - g_return_val_if_fail
    - g_set_error
    - g_steal_pointer
    - fu_mkhi_read_file_request_new
    - g_autoptr
    - fu_mkhi_read_file_response_get_data_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:132,1
    - Dst: fu_mkhi_read_file_ex_request_new
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:132,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:133,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:134,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:134,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:135,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:135,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:137,1
    - Dst: FU_IS_HECI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:137,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:138,1
    - Dst: fu_mkhi_read_file_ex_request_set_file_id
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:141,1
    - Dst: fu_mkhi_read_file_ex_request_set_data_size
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:142,1
    - Dst: fu_mkhi_read_file_ex_request_set_flags
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:143,1
    - Dst: fu_mei_device_write
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:144,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:144,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:152,1
    - Dst: fu_mei_device_read
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:153,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:153,1
    - Dst: fu_mkhi_read_file_ex_response_parse
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:160,1
    - Dst: fu_heci_device_result_to_error
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:163,1
    - Dst: fu_mkhi_read_file_ex_response_get_result
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:163,1
    - Dst: fu_mkhi_read_file_ex_response_get_data_size
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:168,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:170,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:180,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:181,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: 182
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 182
    functionName: fu_heci_device_read_file_ex
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-heci-device.c
    functionUses: 0
    functionsReached:
    - FU_MEI_DEVICE
    - FU_IS_HECI_DEVICE
    - fu_mkhi_read_file_ex_response_get_data_size
    - fu_mkhi_read_file_ex_request_set_file_id
    - fu_heci_device_result_to_error
    - g_byte_array_new
    - fu_mkhi_read_file_ex_response_parse
    - fu_mei_device_write
    - fu_mei_device_read
    - fu_mkhi_read_file_ex_request_set_data_size
    - fu_mkhi_read_file_ex_response_get_result
    - g_byte_array_append
    - g_return_val_if_fail
    - g_set_error
    - g_steal_pointer
    - fu_mkhi_read_file_ex_request_new
    - fu_mkhi_read_file_ex_request_set_flags
    - g_autoptr
    - 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:208,1
    - Dst: fu_mkhi_arbh_svn_get_info_request_new
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:208,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:209,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:210,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:210,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:212,1
    - Dst: FU_IS_HECI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:212,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:213,1
    - Dst: fu_mei_device_write
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:216,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:216,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:224,1
    - Dst: fu_mei_device_get_max_msg_length
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:224,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:224,1
    - Dst: fu_mei_device_read
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:225,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:225,1
    - Dst: fu_mkhi_arbh_svn_get_info_response_parse
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:232,1
    - Dst: fu_heci_device_result_to_error
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:235,1
    - Dst: fu_mkhi_arbh_svn_get_info_response_get_result
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:235,1
    - Dst: fu_mkhi_arbh_svn_get_info_response_get_num_entries
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:240,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:243,1
    - Dst: fu_mkhi_arbh_svn_info_entry_parse
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:247,1
    - Dst: fu_mkhi_arbh_svn_info_entry_get_usage_id
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:252,1
    - Dst: fu_mkhi_arbh_svn_info_entry_get_executing
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:255,1
    - Dst: fu_mkhi_arbh_svn_info_entry_get_min_allowed
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:258,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-heci-device.c:268,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: 278
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 278
    functionName: fu_heci_device_arbh_svn_get_info
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-heci-device.c
    functionUses: 0
    functionsReached:
    - fu_mkhi_arbh_svn_get_info_request_new
    - FU_MEI_DEVICE
    - FU_IS_HECI_DEVICE
    - fu_heci_device_result_to_error
    - fu_mkhi_arbh_svn_info_entry_parse
    - g_byte_array_new
    - fu_mkhi_arbh_svn_info_entry_get_min_allowed
    - fu_mei_device_read
    - fu_mei_device_write
    - fu_mkhi_arbh_svn_get_info_response_parse
    - fu_mkhi_arbh_svn_get_info_response_get_result
    - fu_mkhi_arbh_svn_get_info_response_get_num_entries
    - fu_mei_device_get_max_msg_length
    - g_return_val_if_fail
    - g_set_error
    - fu_mkhi_arbh_svn_info_entry_get_executing
    - fu_mkhi_arbh_svn_info_entry_get_usage_id
    - g_autoptr
    - 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: 283
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 283
    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: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    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:30,1
    - Dst: g_spawn_command_line_sync
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:33,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:39,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:41,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:42,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:42,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:43,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:45,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:46,1
    - Dst: g_strstrip
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:46,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:51,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:52,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:53,1
    - Dst: fu_hwids_get_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:56,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:57,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:58,1
    - Dst: fu_context_set_chassis_kind
      Src: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c:59,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - self
    - error
    argTypes:
    - FuContext*
    - FuHwids*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 65
    functionName: fu_hwids_darwin_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids-darwin.c
    functionUses: 0
    functionsReached:
    - fu_hwids_get_value
    - g_strcmp0
    - g_strstrip
    - g_strsplit
    - g_strv_length
    - g_strstr_len
    - fu_hwids_add_value
    - G_N_ELEMENTS
    - fu_context_set_chassis_kind
    - g_auto
    - g_spawn_command_line_sync
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hwids_darwin_setup(FuContext *ctx, FuHwids *self, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_efivars_get_path_store
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:40,1
    - Dst: fu_path_store_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - efivars
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: fu_linux_efivars_get_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - fu_path_store_build_filename
    - fu_efivars_get_path_store
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_linux_efivars_get_path(FuEfivars *efivars, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_linux_efivars_get_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:55,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - efivars
    - guid
    - name
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 59
    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 *\nfu_linux_efivars_get_filename(FuEfivars *efivars,\n\t\t\t
      \     const gchar *guid,\n\t\t\t      const gchar *name,\n\t\t\t      GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_linux_efivars_get_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:64,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:67,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - efivars
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 76
    functionName: fu_linux_efivars_supported
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_file_test
    - fu_linux_efivars_get_path
    - g_set_error
    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:86,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:92,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:96,1
    - Dst: ioctl
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:119,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:121,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:125,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: 129
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 129
    functionName: fu_linux_efivars_set_immutable_fd
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - fwupd_strerror
    - g_set_error
    - ioctl
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_efivars_set_immutable_fd(int fd, gboolean value,
      gboolean *value_old, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:137,1
    - Dst: open
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:141,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:143,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:147,1
    - Dst: fu_linux_efivars_set_immutable_fd
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - fn
    - value
    - value_old
    - error
    argTypes:
    - gchar*
    - gboolean
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 151
    functionName: fu_linux_efivars_set_immutable
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - open
    - fwupd_strerror
    - g_str_has_prefix
    - fu_linux_efivars_set_immutable_fd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_efivars_set_immutable(const gchar *fn, gboolean value,
      gboolean *value_old, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:157,1
    - Dst: fu_linux_efivars_get_filename
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:159,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:162,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:163,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:164,1
    - Dst: fu_linux_efivars_set_immutable
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:167,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:168,1
    - Dst: g_file_delete
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - efivars
    - guid
    - name
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 172
    functionName: fu_linux_efivars_delete
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_linux_efivars_set_immutable
    - g_prefix_error
    - g_file_delete
    - g_file_query_exists
    - fu_linux_efivars_get_filename
    - g_file_new_for_path
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_efivars_delete(FuEfivars *efivars, const gchar *guid,
      const gchar *name, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:183,1
    - Dst: fu_linux_efivars_get_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:185,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:188,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:191,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:192,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:193,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:194,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:195,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:195,1
    - Dst: fu_linux_efivars_set_immutable
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:196,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:197,1
    - Dst: g_file_delete
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - efivars
    - guid
    - name_glob
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 205
    functionName: fu_linux_efivars_delete_with_glob
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - fu_linux_efivars_get_path
    - fu_linux_efivars_set_immutable
    - g_pattern_match_simple
    - g_prefix_error
    - g_file_delete
    - g_strdup_printf
    - g_dir_read_name
    - g_dir_open
    - g_file_new_for_path
    - g_autoptr
    - g_build_filename
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:212,1
    - Dst: fu_linux_efivars_get_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:214,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:217,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:220,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - efivars
    - guid
    argTypes:
    - FuEfivars*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 225
    functionName: fu_linux_efivars_exists_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - fu_linux_efivars_get_path
    - g_str_has_suffix
    - g_dir_read_name
    - g_dir_open
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_efivars_exists_guid(FuEfivars *efivars, const gchar
      *guid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_linux_efivars_exists_guid
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:234,1
    - Dst: fu_linux_efivars_get_filename
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:236,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - efivars
    - guid
    - name
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 4
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: fu_linux_efivars_exists
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_file_test
    - fu_linux_efivars_get_filename
    - fu_linux_efivars_exists_guid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_efivars_exists(FuEfivars *efivars, const gchar *guid,
      const gchar *name)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:256,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:257,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:258,1
    - Dst: fu_linux_efivars_get_filename
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:261,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:264,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:265,1
    - Dst: g_file_read
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:265,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:267,1
    - Dst: g_file_input_stream_query_info
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:270,1
    - Dst: G_FILE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:270,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:275,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:276,1
    - Dst: g_file_info_get_attribute_uint64
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:281,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:283,1
    - Dst: g_input_stream_read
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:292,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:294,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:295,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:304,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:313,1
    - Dst: g_input_stream_read_all
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:314,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:315,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:318,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 7
    argNames:
    - efivars
    - guid
    - name
    - data
    - data_sz
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - guint8**
    - gsize*
    - FuEfiVariableAttrs*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 242
    functionDepth: 4
    functionLinenumber: 242
    functionLinenumberEnd: 321
    functionName: fu_linux_efivars_get_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_input_stream_read_all
    - g_set_error
    - G_FILE_INPUT_STREAM
    - g_file_read
    - g_set_error_literal
    - g_steal_pointer
    - fwupd_error_convert
    - g_file_input_stream_query_info
    - g_prefix_error_literal
    - g_malloc0
    - fu_linux_efivars_get_filename
    - G_INPUT_STREAM
    - g_file_new_for_path
    - g_input_stream_read
    - g_autoptr
    - g_file_info_get_attribute_uint64
    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  FuEfiVariableAttrs *attr,\n\t\t\t  GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:328,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:329,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:329,1
    - Dst: fu_linux_efivars_get_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:332,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:335,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:338,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:339,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:342,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:343,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:343,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:349,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:358,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - efivars
    - guid
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 359
    functionName: fu_linux_efivars_get_names
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - fu_linux_efivars_get_path
    - g_dir_open
    - g_strcmp0
    - g_set_error
    - g_steal_pointer
    - g_ptr_array_add
    - strlen
    - g_dir_read_name
    - g_autoptr
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_linux_efivars_get_names(FuEfivars *efivars, const gchar *guid, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:368,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:369,1
    - Dst: fu_linux_efivars_get_filename
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:371,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:374,1
    - Dst: g_file_monitor_file
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:375,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:377,1
    - Dst: g_file_monitor_set_rate_limit
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:380,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - efivars
    - guid
    - name
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 361
    functionDepth: 4
    functionLinenumber: 361
    functionLinenumberEnd: 382
    functionName: fu_linux_efivars_get_monitor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_file_monitor_file
    - g_steal_pointer
    - fwupd_error_convert
    - fu_linux_efivars_get_filename
    - g_file_new_for_path
    - g_file_monitor_set_rate_limit
    - g_autoptr
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:390,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:391,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:392,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:393,1
    - Dst: fu_linux_efivars_get_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:396,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:399,1
    - Dst: g_file_query_info
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:400,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:406,1
    - Dst: g_file_info_get_attribute_uint64
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:408,1
    - Dst: g_dir_open
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:414,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:417,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:419,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:420,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:420,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:421,1
    - Dst: g_file_query_info
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:423,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:430,1
    - Dst: g_file_info_get_attribute_uint64
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:433,1
    - Dst: g_file_info_get_attribute_uint64
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:436,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 2
    argNames:
    - efivars
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 442
    functionName: fu_linux_efivars_space_used
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - fu_linux_efivars_get_path
    - g_debug
    - fwupd_error_convert
    - g_build_filename
    - g_file_query_info
    - g_dir_read_name
    - g_dir_open
    - g_file_new_for_path
    - g_autoptr
    - g_file_info_get_attribute_uint64
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_linux_efivars_space_used(FuEfivars *efivars, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:449,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:450,1
    - Dst: fu_linux_efivars_get_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:453,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:456,1
    - Dst: g_file_query_info
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:457,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:463,1
    - Dst: g_file_info_get_attribute_uint64
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:466,1
    - Dst: statfs
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:472,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:474,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:478,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:485,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - efivars
    - error
    argTypes:
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 444
    functionDepth: 3
    functionLinenumber: 444
    functionLinenumberEnd: 494
    functionName: fu_linux_efivars_space_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - fu_linux_efivars_get_path
    - g_set_error
    - g_set_error_literal
    - fwupd_error_convert
    - g_file_query_info
    - g_file_new_for_path
    - fwupd_strerror
    - statfs
    - g_autoptr
    - g_file_info_get_attribute_uint64
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_linux_efivars_space_free(FuEfivars *efivars, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:509,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:510,1
    - Dst: fu_linux_efivars_get_filename
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:513,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:516,1
    - Dst: fu_linux_efivars_set_immutable
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:517,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:518,1
    - Dst: open
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:528,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:530,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:535,1
    - Dst: g_unix_output_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:538,1
    - Dst: g_steal_fd
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:538,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:539,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:540,1
    - Dst: g_output_stream_write
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:541,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:542,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:543,1
    - Dst: fu_linux_efivars_set_immutable
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:548,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:549,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 7
    argNames:
    - efivars
    - guid
    - name
    - data
    - sz
    - attr
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - gchar*
    - guint8*
    - gsize
    - FuEfiVariableAttrs
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 496
    functionDepth: 4
    functionLinenumber: 496
    functionLinenumberEnd: 555
    functionName: fu_linux_efivars_set_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 0
    functionsReached:
    - g_output_stream_write
    - g_set_error
    - fu_linux_efivars_set_immutable
    - g_unix_output_stream_new
    - g_prefix_error
    - g_malloc0
    - memcpy
    - g_file_test
    - g_prefix_error_literal
    - fu_linux_efivars_get_filename
    - g_steal_fd
    - fwupd_error_convert
    - fwupd_strerror
    - g_autoptr
    - open
    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  FuEfiVariableAttrs 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: 560
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 560
    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:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLinuxEfivarsClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 576
    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:581,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-linux-efivars.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pstore
    argTypes:
    - FuPathStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 582
    functionName: fu_efivars_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-linux-efivars.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_EFIVARS
    linkageType: ''
    returnType: FuEfivars
    signature: 'FuEfivars *

      fu_efivars_new(FuPathStore *pstore)'
  - 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_strdup
    - g_strcmp0
    - 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_literal
      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: 2
    argNames:
    - pstore
    - error
    argTypes:
    - FuPathStore*
    - 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:
    - g_set_error
    - fu_common_convert_tzinfo_to_olson_id
    - g_prefix_error_literal
    - g_strstr_len
    - g_utf16_to_utf8
    - GetLastError
    - GetTimeZoneInformation
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_common_get_olson_timezone_id_impl(FuPathStore *pstore, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:45,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:46,1
    - Dst: fu_xmlb_builder_insert_kx
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 52
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:58,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:62,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:62,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:63,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:63,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:69,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:69,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:69,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:71,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:71,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuUsbInterface*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 54
    functionDepth: 5
    functionLinenumber: 54
    functionLinenumberEnd: 75
    functionName: fu_usb_interface_parse_extra
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - fu_firmware_add_image
    - FU_FIRMWARE
    - g_object_new
    - fu_firmware_parse_bytes
    - fu_firmware_get_size
    - fu_size_checked_inc
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_interface_parse_extra(FuUsbInterface *self, const guint8
      *buf, gsize bufsz, GError **error)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:80,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:83,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:86,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:89,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:96,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:103,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:110,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:117,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:124,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:131,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:136,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:138,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:139,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:140,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:141,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:143,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:146,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:146,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:148,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:148,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:153,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:156,1
    - Dst: fu_usb_interface_parse_extra
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:157,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 3
    argNames:
    - codec
    - json_obj
    - error
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 77
    functionDepth: 6
    functionLinenumber: 77
    functionLinenumberEnd: 163
    functionName: fu_usb_interface_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - fwupd_json_array_get_size
    - fwupd_codec_from_json
    - g_ptr_array_add
    - fwupd_json_object_get_array
    - g_object_ref
    - g_object_new
    - FU_USB_INTERFACE
    - fwupd_json_object_get_string
    - fu_usb_interface_parse_extra
    - fwupd_json_array_get_object
    - g_autoptr
    - fwupd_json_object_get_integer_with_default
    - g_base64_decode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_interface_from_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:168,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:169,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:169,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:169,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:173,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:175,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:180,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:185,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:190,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:195,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:200,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:205,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:209,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:209,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:212,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:212,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:213,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:213,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:214,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:216,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:222,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:222,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:224,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:225,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:225,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:225,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:227,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:229,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:230,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 232
    functionName: fu_usb_interface_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - FWUPD_CODEC
    - fu_byte_array_append_bytes
    - fwupd_json_object_add_string
    - fu_firmware_get_bytes
    - fwupd_json_object_new
    - FU_FIRMWARE
    - fwupd_codec_to_json
    - fu_firmware_get_images
    - fwupd_json_array_new
    - fwupd_json_object_add_integer
    - FU_USB_INTERFACE
    - fwupd_json_array_add_object
    - g_byte_array_new
    - g_autoptr
    - g_base64_encode
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_usb_interface_add_json(FwupdCodec *codec, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:244,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:247,1
    - Dst: fu_usb_interface_parse_extra
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:250,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:253,1
    - Dst: fu_usb_endpoint_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:253,1
    - Dst: FU_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - iface
    - error
    argTypes:
    - struct libusb_interface_descriptor*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 241
    functionDepth: 6
    functionLinenumber: 241
    functionLinenumberEnd: 256
    functionName: fu_usb_interface_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_add
    - memcpy
    - g_object_new
    - FU_USB_INTERFACE
    - fu_usb_interface_parse_extra
    - 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:271,1
    - Dst: FU_IS_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: fu_usb_interface_get_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_INTERFACE
    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:288,1
    - Dst: FU_IS_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 290
    functionName: fu_usb_interface_get_alternate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_INTERFACE
    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:305,1
    - Dst: FU_IS_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: fu_usb_interface_get_class
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_INTERFACE
    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:323,1
    - Dst: FU_IS_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: fu_usb_interface_get_subclass
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_INTERFACE
    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:341,1
    - Dst: FU_IS_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 343
    functionName: fu_usb_interface_get_protocol
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_INTERFACE
    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:358,1
    - Dst: FU_IS_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 360
    functionName: fu_usb_interface_get_index
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_USB_INTERFACE
    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:375,1
    - Dst: FU_IS_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:375,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: fu_usb_interface_get_endpoints
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_ptr_array_ref
    - FU_IS_USB_INTERFACE
    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:383,1
    - Dst: FU_IS_USB_INTERFACE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:383,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:384,1
    - Dst: FU_IS_USB_ENDPOINT
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:384,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:385,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - endpoint
    argTypes:
    - FuUsbInterface*
    - FuUsbEndpoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 386
    functionName: fu_usb_interface_add_endpoint
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_add
    - g_return_if_fail
    - g_object_ref
    - FU_IS_USB_INTERFACE
    - FU_IS_USB_ENDPOINT
    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:394,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:395,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:398,1
    - Dst: fu_usb_interface_hdr_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:403,1
    - Dst: fu_usb_interface_hdr_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:406,1
    - Dst: fu_usb_interface_hdr_get_interface_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:408,1
    - Dst: fu_usb_interface_hdr_get_alternate_setting
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:409,1
    - Dst: fu_usb_interface_hdr_get_num_endpoints
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:410,1
    - Dst: fu_usb_interface_hdr_get_interface_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:411,1
    - Dst: fu_usb_interface_hdr_get_interface_sub_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:412,1
    - Dst: fu_usb_interface_hdr_get_interface_protocol
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:413,1
    - Dst: fu_usb_interface_hdr_get_interface
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:414,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:415,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:415,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:419,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:420,1
    - Dst: fu_usb_interface_parse_extra
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:427,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 388
    functionDepth: 6
    functionLinenumber: 388
    functionLinenumberEnd: 433
    functionName: fu_usb_interface_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_hdr_get_alternate_setting
    - fu_usb_interface_hdr_get_num_endpoints
    - fu_firmware_set_size
    - fu_usb_interface_hdr_get_interface_number
    - FU_FIRMWARE_CLASS
    - FU_FIRMWARE
    - fu_usb_interface_hdr_parse_stream
    - fu_usb_interface_hdr_get_interface_protocol
    - fu_input_stream_read_byte_array
    - FU_USB_INTERFACE
    - fu_usb_interface_hdr_get_length
    - fu_usb_interface_hdr_get_interface
    - fu_usb_interface_parse_extra
    - fu_usb_interface_hdr_get_interface_sub_class
    - g_autoptr
    - 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: 440
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 440
    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:445,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:446,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 448
    functionName: fu_usb_interface_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - FU_USB_INTERFACE
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    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:453,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:454,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:454,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:455,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 456
    functionName: fu_usb_interface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-interface.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_ptr_array_new_with_free_func
    - fu_firmware_set_size_max
    - fu_firmware_add_image_gtype
    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:461,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-interface.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbInterfaceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 466
    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: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 931
    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: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    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: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    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:64,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:65,1
    - Dst: fu_xmlb_builder_insert_kx
      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: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:81,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:82,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:87,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 94
    functionName: fu_ifd_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_IFD_FIRMWARE
    - g_strdup_printf
    - GET_PRIVATE
    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:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:107,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:108,1
    - Dst: fu_composite_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:108,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:111,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:114,1
    - Dst: fu_composite_input_stream_add_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:117,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:117,1
    - Dst: fu_composite_input_stream_add_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:121,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:121,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - stream
    - error
    argTypes:
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 124
    functionName: fu_ifd_firmware_fixup_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_composite_input_stream_add_bytes
    - fu_composite_input_stream_new
    - g_bytes_new
    - fu_composite_input_stream_add_stream
    - FU_COMPOSITE_INPUT_STREAM
    - fu_input_stream_size
    - g_steal_pointer
    - g_object_ref
    - g_autoptr
    linkageType: ''
    returnType: GInputStream
    signature: 'GInputStream *

      fu_ifd_firmware_fixup_stream(GInputStream *stream, GError **error)'
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - region
    - flash_master
    - new_layout
    argTypes:
    - FuIfdRegion
    - guint32
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 172
    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:180,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:181,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:183,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:184,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:185,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:188,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:191,1
    - Dst: fu_ifd_firmware_fixup_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:200,1
    - Dst: fu_struct_ifd_fdbar_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:205,1
    - Dst: fu_struct_ifd_fdbar_get_descriptor_map0
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:208,1
    - Dst: fu_struct_ifd_fdbar_get_descriptor_map1
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:222,1
    - Dst: fu_struct_ifd_fdbar_get_descriptor_map2
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:225,1
    - Dst: fu_struct_ifd_fcba_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:229,1
    - Dst: fu_struct_ifd_fcba_get_flcomp
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:232,1
    - Dst: fu_struct_ifd_fcba_get_flill
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:233,1
    - Dst: fu_struct_ifd_fcba_get_flill1
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:234,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:237,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:243,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:249,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:257,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:259,1
    - Dst: fu_ifd_region_to_string
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:267,1
    - Dst: FU_IFD_FREG_BASE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:268,1
    - Dst: FU_IFD_FREG_LIMIT
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:269,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:271,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:272,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:280,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:281,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:283,1
    - Dst: fu_ifd_bios_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:290,1
    - Dst: fu_ifd_image_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:292,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:294,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:300,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:301,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:303,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:304,1
    - Dst: fu_ifd_firmware_region_to_access
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:310,1
    - Dst: fu_ifd_image_set_access
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:313,1
    - Dst: FU_IFD_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:313,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 79
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 174
    functionDepth: 4
    functionLinenumber: 174
    functionLinenumberEnd: 319
    functionName: fu_ifd_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_ifd_fdbar_get_descriptor_map0
    - fu_struct_ifd_fdbar_parse_stream
    - fu_ifd_firmware_region_to_access
    - fu_ifd_bios_new
    - fu_struct_ifd_fdbar_get_descriptor_map2
    - fu_struct_ifd_fcba_get_flill1
    - g_autoptr
    - FU_IFD_IMAGE
    - fu_firmware_set_addr
    - fu_ifd_firmware_fixup_stream
    - g_new0
    - fu_ifd_region_to_string
    - g_debug
    - fu_firmware_add_image
    - FU_IFD_FIRMWARE
    - fu_ifd_image_set_access
    - g_prefix_error_literal
    - fu_struct_ifd_fdbar_get_descriptor_map1
    - GET_PRIVATE
    - fu_struct_ifd_fcba_parse_stream
    - fu_firmware_set_idx
    - FU_IFD_FREG_LIMIT
    - fu_struct_ifd_fcba_get_flill
    - FU_IFD_FREG_BASE
    - fu_partial_input_stream_new
    - fu_struct_ifd_fcba_get_flcomp
    - fu_firmware_set_id
    - g_set_error
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - fu_ifd_image_new
    - fu_input_stream_read_u32
    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:335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - cmd
    argTypes:
    - FuIfdFirmware*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 343
    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: 13
    BranchProfiles: []
    Callsites:
    - Dst: FU_IFD_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:348,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:349,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:351,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:351,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:352,1
    - Dst: fu_struct_ifd_fcba_new
      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_struct_ifd_fdbar_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:353,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:354,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:355,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:358,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:360,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:360,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:361,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:362,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:365,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:366,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:367,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:368,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:369,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:370,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:375,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:381,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:381,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:382,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:386,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:388,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:388,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:391,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:392,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:396,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:399,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:399,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:399,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:402,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:403,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:403,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:404,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:406,1
    - Dst: MAX
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:409,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:411,1
    - Dst: fu_struct_ifd_fdbar_set_descriptor_map0
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:414,1
    - Dst: fu_struct_ifd_fdbar_set_descriptor_map1
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:415,1
    - Dst: fu_struct_ifd_fdbar_set_descriptor_map2
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:416,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:417,1
    - Dst: fu_struct_ifd_fcba_set_flcomp
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:428,1
    - Dst: fu_struct_ifd_fcba_set_flill
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:429,1
    - Dst: fu_struct_ifd_fcba_set_flill1
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:430,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:431,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:446,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:446,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:449,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:449,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:449,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:450,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:451,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:454,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:455,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:467,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:467,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:470,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:470,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:470,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:471,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:473,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:474,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:475,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:477,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:483,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 77
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 345
    functionDepth: 4
    functionLinenumber: 345
    functionLinenumberEnd: 484
    functionName: fu_ifd_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_hash_table_insert
    - fu_firmware_get_image_by_idx
    - g_bytes_new
    - g_hash_table_lookup
    - MAX
    - fu_struct_ifd_fdbar_set_descriptor_map2
    - fu_firmware_set_addr
    - fu_firmware_get_id
    - fu_struct_ifd_fcba_set_flill1
    - g_debug
    - fu_firmware_add_image
    - fu_struct_ifd_fdbar_set_descriptor_map0
    - FU_IFD_FIRMWARE
    - fu_struct_ifd_fdbar_new
    - g_hash_table_new_full
    - fu_struct_ifd_fdbar_set_descriptor_map1
    - fu_memcpy_safe
    - g_byte_array_new
    - fu_memwrite_uint32_safe
    - fu_firmware_new_from_bytes
    - fu_firmware_get_idx
    - GET_PRIVATE
    - g_bytes_ref
    - g_bytes_get_data
    - fu_firmware_set_idx
    - fu_struct_ifd_fcba_set_flill
    - fu_struct_ifd_fcba_set_flcomp
    - fu_firmware_set_id
    - g_set_error
    - g_steal_pointer
    - g_prefix_error
    - fu_struct_ifd_fcba_new
    - fu_firmware_get_addr
    - GUINT_TO_POINTER
    - g_bytes_get_size
    - fu_size_checked_inc
    - g_autoptr
    - 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:489,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:490,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:494,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:497,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:500,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:503,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:506,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 514
    functionName: fu_ifd_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IFD_FIRMWARE
    - xb_node_query_text_as_uint
    - 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:519,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:532,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:532,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:533,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:533,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:534,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:534,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:535,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:535,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:536,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIfdFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 537
    functionName: fu_ifd_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_size_max
    - GET_PRIVATE
    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:542,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:543,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:544,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 546
    functionName: fu_ifd_firmware_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IFD_FIRMWARE
    - g_free
    - G_OBJECT_CLASS
    - GET_PRIVATE
    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:551,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIfdFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 559
    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:571,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 572
    functionName: fu_ifd_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_ifd_firmware_new(void)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:41,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:45,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: fu_struct_cfu_payload_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:49,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:54,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:55,1
    - Dst: fu_struct_cfu_payload_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:59,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:61,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:67,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:70,1
    - Dst: fu_chunk_set_address
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:71,1
    - Dst: fu_struct_cfu_payload_get_addr
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:71,1
    - Dst: fu_firmware_add_chunk
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:72,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:75,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 81
    functionName: fu_cfu_payload_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-payload.c
    functionUses: 0
    functionsReached:
    - fu_struct_cfu_payload_get_size
    - fu_struct_cfu_payload_get_addr
    - fu_input_stream_read_bytes
    - fu_input_stream_size
    - g_set_error_literal
    - fu_firmware_add_chunk
    - fu_struct_cfu_payload_parse_stream
    - g_prefix_error_literal
    - fu_chunk_set_address
    - fu_size_checked_inc
    - g_autoptr
    - fu_chunk_bytes_new
    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:86,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:87,1
    - Dst: fu_firmware_get_chunks
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:89,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:94,1
    - Dst: fu_struct_cfu_payload_new
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:94,1
    - Dst: fu_struct_cfu_payload_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:95,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:95,1
    - Dst: fu_struct_cfu_payload_set_size
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:96,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:96,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:97,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:98,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:98,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:98,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 101
    functionName: fu_cfu_payload_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-payload.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_array
    - fu_chunk_get_data_sz
    - fu_struct_cfu_payload_set_size
    - g_steal_pointer
    - g_byte_array_new
    - fu_chunk_get_data
    - fu_struct_cfu_payload_set_addr
    - g_byte_array_append
    - fu_firmware_get_chunks
    - g_autoptr
    - fu_struct_cfu_payload_new
    - g_ptr_array_index
    - fu_chunk_get_address
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_cfu_payload_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:106,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:106,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:107,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuPayload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: fu_cfu_payload_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-payload.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCfuPayloadClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 116
    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:128,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-cfu-payload.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: fu_cfu_payload_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cfu-payload.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 938
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:42,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:43,1
    - Dst: fu_xmlb_builder_insert_kx
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: fu_dfu_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_DFU_FIRMWARE
    - GET_PRIVATE
    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:54,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:55,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: fu_dfu_firmware_get_footer_len
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DFU_FIRMWARE
    - GET_PRIVATE
    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:72,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:73,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: fu_dfu_firmware_get_vid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DFU_FIRMWARE
    - GET_PRIVATE
    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:90,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:91,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: fu_dfu_firmware_get_pid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DFU_FIRMWARE
    - GET_PRIVATE
    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:108,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:109,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: fu_dfu_firmware_get_release
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DFU_FIRMWARE
    - GET_PRIVATE
    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:126,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:127,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: fu_dfu_firmware_get_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DFU_FIRMWARE
    - GET_PRIVATE
    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:143,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:144,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - vid
    argTypes:
    - FuDfuFirmware*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: fu_dfu_firmware_set_vid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_DFU_FIRMWARE
    - g_return_if_fail
    - GET_PRIVATE
    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:160,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:161,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - pid
    argTypes:
    - FuDfuFirmware*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: fu_dfu_firmware_set_pid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_DFU_FIRMWARE
    - g_return_if_fail
    - GET_PRIVATE
    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:177,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:178,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - release
    argTypes:
    - FuDfuFirmware*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: fu_dfu_firmware_set_release
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_DFU_FIRMWARE
    - g_return_if_fail
    - GET_PRIVATE
    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:194,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:195,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - version
    argTypes:
    - FuDfuFirmware*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: fu_dfu_firmware_set_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 1
    functionsReached:
    - FU_IS_DFU_FIRMWARE
    - g_return_if_fail
    - GET_PRIVATE
    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:203,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:206,1
    - Dst: fu_struct_dfu_ftr_validate_stream
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 213
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:224,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:225,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:227,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:230,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:234,1
    - Dst: fu_struct_dfu_ftr_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:244,1
    - Dst: fu_struct_dfu_ftr_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:247,1
    - Dst: fu_struct_dfu_ftr_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:248,1
    - Dst: fu_struct_dfu_ftr_get_release
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:249,1
    - Dst: fu_struct_dfu_ftr_get_ver
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:250,1
    - Dst: fu_struct_dfu_ftr_get_len
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:251,1
    - Dst: fu_crc32_safe
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:256,1
    - Dst: fu_struct_dfu_ftr_get_crc
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:264,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:265,1
    - Dst: fu_struct_dfu_ftr_get_crc
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:270,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:277,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:288,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuDfuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 299
    functionName: fu_dfu_firmware_parse_footer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 1
    functionsReached:
    - fu_input_stream_read_bytes
    - g_set_error
    - g_bytes_get_data
    - fu_struct_dfu_ftr_get_pid
    - fu_struct_dfu_ftr_parse_stream
    - fu_struct_dfu_ftr_get_vid
    - fu_struct_dfu_ftr_get_release
    - fu_struct_dfu_ftr_get_crc
    - fu_struct_dfu_ftr_get_ver
    - fu_struct_dfu_ftr_get_len
    - g_autoptr
    - fu_crc32_safe
    - GET_PRIVATE
    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:307,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:308,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:310,1
    - Dst: fu_dfu_firmware_parse_footer
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:313,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:317,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:319,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 301
    functionDepth: 4
    functionLinenumber: 301
    functionLinenumberEnd: 324
    functionName: fu_dfu_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_bytes
    - fu_dfu_firmware_parse_footer
    - fu_input_stream_size
    - fu_firmware_set_bytes
    - FU_DFU_FIRMWARE
    - g_autoptr
    - GET_PRIVATE
    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:329,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:330,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:330,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:331,1
    - Dst: fu_struct_dfu_ftr_new
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:331,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:334,1
    - Dst: fu_struct_dfu_ftr_set_release
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:335,1
    - Dst: fu_struct_dfu_ftr_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:336,1
    - Dst: fu_struct_dfu_ftr_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:337,1
    - Dst: fu_struct_dfu_ftr_set_ver
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:338,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:339,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:340,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:341,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - self
    - contents
    - error
    argTypes:
    - FuDfuFirmware*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 344
    functionName: fu_dfu_firmware_append_footer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 1
    functionsReached:
    - fu_crc32
    - fu_byte_array_append_bytes
    - fu_struct_dfu_ftr_set_pid
    - fu_struct_dfu_ftr_set_release
    - fu_struct_dfu_ftr_new
    - fu_struct_dfu_ftr_set_vid
    - fu_struct_dfu_ftr_set_ver
    - g_steal_pointer
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - g_byte_array_append
    - g_autoptr
    - GET_PRIVATE
    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:349,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:350,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:350,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:351,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:355,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:363,1
    - Dst: fu_dfu_firmware_append_footer
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 346
    functionDepth: 3
    functionLinenumber: 346
    functionLinenumberEnd: 367
    functionName: fu_dfu_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - fu_dfu_firmware_append_footer
    - fu_firmware_get_bytes_with_patches
    - g_set_error_literal
    - fu_firmware_get_images
    - FU_DFU_FIRMWARE
    - g_autoptr
    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:372,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:373,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:377,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:380,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:383,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:386,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 392
    functionName: fu_dfu_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text_as_uint
    - FU_DFU_FIRMWARE
    - GET_PRIVATE
    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:397,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:402,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:402,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:403,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:403,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:404,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 405
    functionName: fu_dfu_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    - fu_firmware_add_flag
    - GET_PRIVATE
    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:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDfuFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 416
    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:428,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 429
    functionName: fu_dfu_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-dfu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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_strstrip
    - fu_smbios_get_string
    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:
    - fu_smbios_get_integer
    - g_strdup_printf
    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:
    - fu_smbios_get_integer
    - g_strdup_printf
    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:125,1
    - Dst: fu_context_set_chassis_kind
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:129,1
    - Dst: fu_smbios_get_integer
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:138,1
    - Dst: func
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:140,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:142,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:145,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c:152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - ctx
    - self
    - error
    argTypes:
    - FuContext*
    - FuHwids*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 157
    functionName: fu_hwids_smbios_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids-smbios.c
    functionUses: 0
    functionsReached:
    - fu_smbios_setup
    - func
    - g_debug
    - g_info
    - fu_context_get_smbios
    - fu_context_set_chassis_kind
    - fu_hwids_add_value
    - fu_smbios_get_integer
    - g_autoptr
    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: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
    functionUses: 953
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_USWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:43,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:44,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:45,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:47,1
    - Dst: fu_uswid_payload_compression_to_string
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:50,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:52,1
    - Dst: fu_uswid_payload_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 53
    functionName: fu_uswid_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - fu_uswid_payload_compression_to_string
    - fu_xmlb_builder_insert_kv
    - FU_USWID_FIRMWARE
    - fu_uswid_payload_format_to_string
    - GET_PRIVATE
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - format
    - error
    argTypes:
    - FuUswidPayloadFormat
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 76
    functionName: fu_uswid_firmware_format_to_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    linkageType: ''
    returnType: GType
    signature: GType fu_uswid_firmware_format_to_gtype(FuUswidPayloadFormat format,
      GError **error)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: FU_USWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:84,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:91,1
    - Dst: fu_struct_uswid_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:94,1
    - Dst: fu_struct_uswid_get_hdrver
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:99,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:101,1
    - Dst: fu_struct_uswid_get_hdrsz
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:109,1
    - Dst: fu_struct_uswid_get_payloadsz
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:110,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:112,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:118,1
    - Dst: fu_struct_uswid_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:122,1
    - Dst: fu_struct_uswid_get_compression
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:123,1
    - Dst: fu_struct_uswid_get_flags
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:128,1
    - Dst: fu_struct_uswid_get_format
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:137,1
    - Dst: fu_uswid_firmware_format_to_gtype
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:138,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:147,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:151,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:152,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:153,1
    - Dst: G_CONVERTER
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:154,1
    - Dst: g_zlib_decompressor_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:154,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:155,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:157,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:160,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:160,1
    - Dst: g_converter_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:162,1
    - Dst: g_filter_input_stream_set_close_base_stream
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:163,1
    - Dst: G_FILTER_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:163,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:168,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:169,1
    - Dst: fu_lzma_decompress_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:172,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:176,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:180,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:189,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:191,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:200,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:200,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:201,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:204,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:207,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:213,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:215,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:216,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:222,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 101
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 78
    functionDepth: 5
    functionLinenumber: 78
    functionLinenumberEnd: 227
    functionName: fu_uswid_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_uswid_get_hdrsz
    - fu_struct_uswid_get_format
    - fu_lzma_decompress_bytes
    - g_object_new
    - fu_firmware_get_size
    - g_autoptr
    - fu_struct_uswid_get_compression
    - fu_uswid_firmware_format_to_gtype
    - fu_struct_uswid_get_flags
    - fu_firmware_add_image
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_firmware_parse_bytes
    - g_filter_input_stream_set_close_base_stream
    - FU_USWID_FIRMWARE
    - MIN
    - fu_firmware_set_size
    - GET_PRIVATE
    - g_seekable_seek
    - g_zlib_decompressor_new
    - G_FILTER_INPUT_STREAM
    - G_CONVERTER
    - G_SEEKABLE
    - fu_bytes_new_offset
    - fu_partial_input_stream_new
    - fu_input_stream_read_bytes
    - fu_struct_uswid_get_hdrver
    - g_set_error
    - fu_struct_uswid_parse_stream
    - g_bytes_get_size
    - g_converter_input_stream_new
    - 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: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_USWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:232,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:233,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:235,1
    - Dst: fu_struct_uswid_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:235,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:236,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:237,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:238,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:238,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:242,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:252,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:253,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:253,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:256,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:265,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:266,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:267,1
    - Dst: G_CONVERTER
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:269,1
    - Dst: g_zlib_compressor_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:269,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:270,1
    - Dst: g_converter_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:271,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:272,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:276,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:276,1
    - Dst: fu_lzma_compress_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:277,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:281,1
    - Dst: fu_struct_uswid_set_hdrver
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:285,1
    - Dst: fu_struct_uswid_set_payloadsz
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:286,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:286,1
    - Dst: fu_struct_uswid_set_flags
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:287,1
    - Dst: fu_struct_uswid_set_compression
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:288,1
    - Dst: fu_struct_uswid_set_format
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:289,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:293,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:297,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:303,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:305,1
    - Dst: fu_struct_uswid_set_hdrsz
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:307,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:310,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:311,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 61
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 229
    functionDepth: 4
    functionLinenumber: 229
    functionLinenumberEnd: 312
    functionName: fu_uswid_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_struct_uswid_set_hdrsz
    - g_bytes_new
    - fu_lzma_compress_bytes
    - g_memory_input_stream_new_from_data
    - fu_struct_uswid_set_hdrver
    - g_ptr_array_index
    - fu_byte_array_append_bytes
    - fu_struct_uswid_new
    - g_set_error_literal
    - fu_firmware_get_images
    - g_byte_array_new
    - FU_USWID_FIRMWARE
    - fu_struct_uswid_set_compression
    - GET_PRIVATE
    - g_byte_array_set_size
    - G_CONVERTER
    - fu_struct_uswid_set_format
    - fu_input_stream_read_bytes
    - fu_struct_uswid_set_flags
    - fu_struct_uswid_set_payloadsz
    - g_set_error
    - g_zlib_compressor_new
    - g_steal_pointer
    - g_bytes_get_size
    - g_converter_input_stream_new
    - g_autoptr
    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:317,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:318,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:323,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:328,1
    - Dst: fu_uswid_payload_compression_from_string
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:330,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 345
    functionName: fu_uswid_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - g_set_error
    - xb_node_query_text_as_uint
    - fu_uswid_payload_compression_from_string
    - FU_USWID_FIRMWARE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uswid_firmware_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_magic
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - firmware
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 354
    functionName: fu_uswid_firmware_add_magic
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_magic
    linkageType: ''
    returnType: void
    signature: void fu_uswid_firmware_add_magic(FuFirmware *firmware)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:359,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:363,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:363,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:364,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:364,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:365,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:365,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:366,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:366,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:367,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:367,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:368,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUswidFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 369
    functionName: fu_uswid_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    - GET_PRIVATE
    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:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUswidFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 381
    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:393,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 394
    functionName: fu_uswid_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    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: 27
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:53,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:54,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:55,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:56,1
    - Dst: fu_struct_elf_file_header64le_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:59,1
    - Dst: fu_size_from_uint64
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:64,1
    - Dst: fu_struct_elf_file_header64le_get_phoff
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:64,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:68,1
    - Dst: fu_struct_elf_file_header64le_get_phentsize
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:70,1
    - Dst: fu_struct_elf_file_header64le_get_phnum
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:71,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:73,1
    - Dst: fu_struct_elf_program_header64le_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:74,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:77,1
    - Dst: fu_size_from_uint64
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:82,1
    - Dst: fu_struct_elf_file_header64le_get_shoff
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:82,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:86,1
    - Dst: fu_struct_elf_file_header64le_get_shnum
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:88,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:98,1
    - Dst: fu_struct_elf_section_header64le_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:99,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:102,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:102,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:103,1
    - Dst: fu_struct_elf_file_header64le_get_shentsize
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:104,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:111,1
    - Dst: fu_struct_elf_section_header64le_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:112,1
    - Dst: fu_struct_elf_section_header64le_get_size
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:113,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:116,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:116,1
    - Dst: fu_size_from_uint64
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:119,1
    - Dst: fu_size_from_uint64
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:121,1
    - Dst: fu_struct_elf_file_header64le_get_shstrndx
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:125,1
    - Dst: fu_struct_elf_section_header64le_get_type
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:126,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:128,1
    - Dst: fu_elf_section_header_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:133,1
    - Dst: fu_struct_elf_section_header64le_get_type
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:134,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:137,1
    - Dst: fu_struct_elf_section_header64le_get_type
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:147,1
    - Dst: fu_struct_elf_section_header64le_get_type
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:153,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:154,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:159,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:162,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:165,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:166,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:172,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:181,1
    - Dst: fu_struct_elf_section_header64le_get_name
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:182,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:184,1
    - Dst: fu_struct_elf_section_header64le_get_type
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:186,1
    - Dst: fu_struct_elf_section_header64le_get_type
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:188,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:192,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:199,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:202,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:210,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 94
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 215
    functionName: fu_elf_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_elf_file_header64le_get_phoff
    - fu_firmware_get_image_by_idx
    - fu_struct_elf_file_header64le_get_phentsize
    - fu_elf_section_header_type_to_string
    - fu_struct_elf_file_header64le_get_shoff
    - g_ptr_array_index
    - fu_struct_elf_program_header64le_parse_stream
    - fu_struct_elf_file_header64le_get_shnum
    - fu_memstrsafe
    - fu_firmware_add_image
    - g_set_error_literal
    - fu_struct_elf_file_header64le_get_phnum
    - g_prefix_error_literal
    - fu_input_stream_read_byte_array
    - fu_struct_elf_section_header64le_get_name
    - g_ptr_array_new_with_free_func
    - fu_size_from_uint64
    - fu_struct_elf_section_header64le_get_offset
    - fu_struct_elf_file_header64le_parse_stream
    - fu_firmware_new
    - fu_firmware_set_idx
    - fu_struct_elf_section_header64le_parse_stream
    - fu_struct_elf_section_header64le_get_type
    - fu_partial_input_stream_new
    - fu_struct_elf_section_header64le_get_size
    - fu_firmware_set_id
    - g_set_error
    - fu_struct_elf_file_header64le_get_shstrndx
    - fu_firmware_parse_stream
    - g_steal_pointer
    - g_ptr_array_add
    - fu_struct_elf_file_header64le_get_shentsize
    - fu_size_checked_inc
    - g_autoptr
    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:226,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - FuElfFirmwareStrtabEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 228
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:235,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:235,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:238,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:242,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:244,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:245,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:250,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:251,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:253,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - strtab
    - name
    - error
    argTypes:
    - GPtrArray*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 255
    functionName: fu_elf_firmware_strtab_insert
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_new0
    - g_steal_pointer
    - g_ptr_array_add
    - g_prefix_error_literal
    - strlen
    - fu_size_checked_inc
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elf_firmware_strtab_insert(GPtrArray *strtab, const gchar
      *name, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:260,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:261,1
    - Dst: fu_elf_firmware_strtab_insert
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:262,1
    - Dst: fu_elf_firmware_strtab_insert
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:264,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 267
    functionName: fu_elf_firmware_strtab_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - fu_elf_firmware_strtab_insert
    - g_autoptr
    - g_steal_pointer
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_elf_firmware_strtab_new(GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:272,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:272,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:274,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:275,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - strtab
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 278
    functionName: fu_elf_firmware_strtab_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_byte_array_new
    - g_byte_array_append
    - g_autoptr
    - g_ptr_array_index
    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:284,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - strtab
    - name
    argTypes:
    - GPtrArray*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 289
    functionName: fu_elf_firmware_strtab_get_offset_for_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_ptr_array_index
    linkageType: ''
    returnType: gsize
    signature: gsize fu_elf_firmware_strtab_get_offset_for_name(GPtrArray *strtab,
      const gchar *name)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:296,1
    - Dst: fu_struct_elf_file_header64le_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:296,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:297,1
    - Dst: fu_struct_elf_program_header64le_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:297,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:298,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:298,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:299,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:299,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:300,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:300,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:301,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:302,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:303,1
    - Dst: fu_elf_firmware_strtab_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:311,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:314,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:316,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:317,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:318,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:322,1
    - Dst: fu_elf_firmware_strtab_insert
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:325,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:325,1
    - Dst: fu_elf_firmware_strtab_write
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:328,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:339,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:341,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:342,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:342,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:345,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:349,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:351,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:353,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:356,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:357,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:358,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:358,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:359,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:372,1
    - Dst: fu_struct_elf_section_header64le_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:373,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:374,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:377,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:378,1
    - Dst: fu_struct_elf_section_header64le_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:379,1
    - Dst: fu_elf_firmware_strtab_get_offset_for_name
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:381,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:381,1
    - Dst: fu_struct_elf_section_header64le_set_name
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:382,1
    - Dst: fu_struct_elf_section_header64le_set_type
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:383,1
    - Dst: fu_struct_elf_section_header64le_set_flags
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:385,1
    - Dst: fu_struct_elf_section_header64le_set_addr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:386,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:388,1
    - Dst: fu_struct_elf_section_header64le_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:389,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:390,1
    - Dst: fu_struct_elf_section_header64le_set_size
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:391,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:391,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:392,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:395,1
    - Dst: fu_struct_elf_section_header64le_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:396,1
    - Dst: fu_struct_elf_section_header64le_set_name
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:397,1
    - Dst: fu_struct_elf_section_header64le_set_type
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:399,1
    - Dst: fu_struct_elf_section_header64le_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:401,1
    - Dst: fu_struct_elf_section_header64le_set_size
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:404,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:405,1
    - Dst: fu_struct_elf_file_header64le_set_entry
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:409,1
    - Dst: fu_struct_elf_file_header64le_set_shoff
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:410,1
    - Dst: fu_struct_elf_file_header64le_set_phentsize
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:413,1
    - Dst: fu_struct_elf_file_header64le_set_phnum
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:415,1
    - Dst: fu_struct_elf_file_header64le_set_shentsize
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:416,1
    - Dst: fu_struct_elf_file_header64le_set_shnum
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:418,1
    - Dst: fu_struct_elf_file_header64le_set_shstrndx
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:419,1
    - Dst: fu_struct_elf_program_header64le_set_vaddr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:420,1
    - Dst: fu_struct_elf_program_header64le_set_paddr
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:421,1
    - Dst: fu_struct_elf_program_header64le_set_filesz
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:422,1
    - Dst: fu_struct_elf_program_header64le_set_memsz
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:425,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:430,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:431,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:432,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:433,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:434,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 85
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 435
    functionName: fu_elf_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_elf_file_header64le_set_shstrndx
    - fu_struct_elf_section_header64le_set_addr
    - fu_struct_elf_file_header64le_set_phentsize
    - fu_elf_firmware_strtab_new
    - fu_firmware_set_offset
    - fu_firmware_get_size
    - fu_struct_elf_section_header64le_set_offset
    - fu_struct_elf_program_header64le_set_memsz
    - g_ptr_array_index
    - fu_struct_elf_file_header64le_new
    - fu_firmware_get_id
    - fu_elf_firmware_strtab_write
    - fu_elf_firmware_strtab_insert
    - fu_byte_array_append_bytes
    - fu_firmware_get_bytes
    - fu_struct_elf_file_header64le_set_entry
    - fu_firmware_get_offset
    - fu_firmware_get_images
    - fu_struct_elf_file_header64le_set_shoff
    - fu_struct_elf_program_header64le_set_vaddr
    - g_byte_array_new
    - fu_struct_elf_program_header64le_set_paddr
    - fu_firmware_get_idx
    - fu_struct_elf_section_header64le_set_type
    - fu_struct_elf_file_header64le_set_shentsize
    - fu_struct_elf_file_header64le_set_phnum
    - g_byte_array_append
    - fu_struct_elf_section_header64le_set_size
    - fu_byte_array_append_array
    - fu_struct_elf_section_header64le_set_name
    - fu_struct_elf_program_header64le_set_filesz
    - g_set_error
    - fu_struct_elf_file_header64le_set_shnum
    - fu_struct_elf_section_header64le_new
    - g_steal_pointer
    - g_prefix_error
    - fu_struct_elf_program_header64le_new
    - fu_elf_firmware_strtab_get_offset_for_name
    - fu_struct_elf_section_header64le_set_flags
    - fu_size_checked_inc
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_elf_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:440,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:440,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:441,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:441,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:442,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElfFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 443
    functionName: fu_elf_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_set_size_max
    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:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElfFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 452
    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:464,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-elf-firmware.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 465
    functionName: fu_elf_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_elf_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:37,1
    - Dst: FU_IS_INTEL_ME_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelMeDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: fu_intel_me_device_get_family
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_INTEL_ME_DEVICE
    linkageType: ''
    returnType: FuIntelMeFamily
    signature: FuIntelMeFamily fu_intel_me_device_get_family(FuIntelMeDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:54,1
    - Dst: FU_IS_INTEL_ME_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelMeDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: fu_intel_me_device_get_issue
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_INTEL_ME_DEVICE
    linkageType: ''
    returnType: FuIntelMeIssue
    signature: FuIntelMeIssue fu_intel_me_device_get_issue(FuIntelMeDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_ME_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:61,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:62,1
    - Dst: fu_intel_me_family_to_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:62,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:63,1
    - Dst: fu_intel_me_issue_to_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:63,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:64,1
    - Dst: fu_me_hfs_cws_to_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:67,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:68,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:69,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:71,1
    - Dst: fu_struct_intel_me_hfsts_get_value
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 77
    functionName: fu_intel_me_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - fu_me_hfs_cws_to_string
    - fu_intel_me_family_to_string
    - fwupd_codec_string_append
    - FU_INTEL_ME_DEVICE
    - g_strdup_printf
    - fu_struct_intel_me_hfsts_get_value
    - G_N_ELEMENTS
    - fwupd_codec_string_append_hex
    - fu_intel_me_issue_to_string
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:89,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:89,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:91,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:92,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:95,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:96,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:97,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:104,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:105,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:109,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:110,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:114,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:115,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:119,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:120,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIntelMeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 127
    functionName: fu_intel_me_device_parse_versions
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_set_error
    - fu_strtoull
    - g_steal_pointer
    - g_prefix_error
    - FU_DEVICE
    - fu_device_get_version
    - g_strsplit
    - g_strv_length
    - g_auto
    linkageType: ''
    returnType: FuIntelMeVersions
    signature: 'FuIntelMeVersions *

      fu_intel_me_device_parse_versions(FuIntelMeDevice *self, GError **error)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_ME_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:132,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:134,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:157,1
    - Dst: fu_intel_me_device_parse_versions
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:159,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:161,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:187,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 34
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 196
    functionName: fu_intel_me_device_version_notify_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - FU_INTEL_ME_DEVICE
    - fu_device_get_version
    - g_warning
    - G_N_ELEMENTS
    - g_autoptr
    - fu_intel_me_device_parse_versions
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_device_version_notify_cb(FuDevice *device, GParamSpec
      *pspec, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:212,1
    - Dst: FU_IS_INTEL_ME_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:212,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:213,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:214,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - idx
    argTypes:
    - FuIntelMeDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 216
    functionName: fu_intel_me_device_get_hfsts
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_INTEL_ME_DEVICE
    - G_N_ELEMENTS
    linkageType: ''
    returnType: FuStructIntelMeHfsts
    signature: 'FuStructIntelMeHfsts *

      fu_intel_me_device_get_hfsts(FuIntelMeDevice *self, guint idx)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:231,1
    - Dst: FU_IS_INTEL_ME_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:231,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:232,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:233,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:233,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:237,1
    - Dst: fu_mei_csme11_hfsts1_parse
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:238,1
    - Dst: fu_mei_csme11_hfsts1_get_working_state
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:240,1
    - Dst: fu_struct_intel_me_hfsts_unref
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:245,1
    - Dst: fu_struct_intel_me_hfsts_ref
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - idx
    - hfsts
    argTypes:
    - FuIntelMeDevice*
    - guint
    - FuStructIntelMeHfsts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 247
    functionName: fu_intel_me_device_set_hfsts
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_INTEL_ME_DEVICE
    - fu_mei_csme11_hfsts1_parse
    - fu_mei_csme11_hfsts1_get_working_state
    - g_return_if_fail
    - fu_struct_intel_me_hfsts_ref
    - G_N_ELEMENTS
    - fu_struct_intel_me_hfsts_unref
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_device_set_hfsts(FuIntelMeDevice *self, guint idx,
      FuStructIntelMeHfsts *hfsts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:254,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:265,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:265,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:267,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:268,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:271,1
    - Dst: fu_intel_me_family_to_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:271,1
    - Dst: fu_mei_csme11_hfsts1_get_mfg_mode
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:272,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:273,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:274,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - hfsts1
    - attrs
    argTypes:
    - FuIntelMeDevice*
    - FuMeiCsme11Hfsts1*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 280
    functionName: fu_intel_me_device_add_attrs_csme11_manufacturing_mode
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - fu_mei_csme11_hfsts1_get_mfg_mode
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_intel_me_family_to_string
    - FU_DEVICE
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_add_metadata
    - fu_security_attrs_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_intel_me_device_add_attrs_csme11_manufacturing_mode(FuIntelMeDevice
      *self,\n\t\t\t\t\t\t       FuMeiCsme11Hfsts1 *hfsts1,\n\t\t\t\t\t\t       FuSecurityAttrs
      *attrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:287,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:290,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:290,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:292,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:293,1
    - Dst: fu_mei_csme18_hfsts1_get_spi_protection_mode
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:296,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:297,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:298,1
    - Dst: fu_mei_csme18_hfsts1_get_operation_mode
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:303,1
    - Dst: fu_mei_csme18_hfsts1_get_operation_mode
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:304,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:305,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:306,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - hfsts1
    - attrs
    argTypes:
    - FuIntelMeDevice*
    - FuMeiCsme18Hfsts1*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 282
    functionDepth: 3
    functionLinenumber: 282
    functionLinenumberEnd: 312
    functionName: fu_intel_me_device_add_attrs_csme18_manufacturing_mode
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - FU_DEVICE
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - fu_mei_csme18_hfsts1_get_spi_protection_mode
    - g_autoptr
    - fu_mei_csme18_hfsts1_get_operation_mode
    linkageType: ''
    returnType: void
    signature: "void fu_intel_me_device_add_attrs_csme18_manufacturing_mode(FuIntelMeDevice
      *self,\n\t\t\t\t\t\t       FuMeiCsme18Hfsts1 *hfsts1,\n\t\t\t\t\t\t       FuSecurityAttrs
      *attrs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:319,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:323,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:323,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:324,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:325,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:328,1
    - Dst: fu_intel_me_family_to_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:328,1
    - Dst: fu_mei_csme11_hfsts1_get_operation_mode
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:329,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:330,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:331,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - self
    - hfsts1
    - attrs
    argTypes:
    - FuIntelMeDevice*
    - FuMeiCsme11Hfsts1*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 337
    functionName: fu_intel_me_device_add_attrs_csme11_override_strap
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_intel_me_family_to_string
    - fu_mei_csme11_hfsts1_get_operation_mode
    - FU_DEVICE
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_add_metadata
    - fu_security_attrs_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_intel_me_device_add_attrs_csme11_override_strap(FuIntelMeDevice
      *self,\n\t\t\t\t\t\t   FuMeiCsme11Hfsts1 *hfsts1,\n\t\t\t\t\t\t   FuSecurityAttrs
      *attrs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:344,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:348,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:348,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:349,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:350,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:353,1
    - Dst: fu_intel_me_family_to_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:353,1
    - Dst: fu_mei_csme18_hfsts1_get_operation_mode
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:354,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:355,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:356,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - self
    - hfsts1
    - attrs
    argTypes:
    - FuIntelMeDevice*
    - FuMeiCsme18Hfsts1*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 362
    functionName: fu_intel_me_device_add_attrs_csme18_override_strap
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_intel_me_family_to_string
    - FU_DEVICE
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_add_metadata
    - fu_security_attrs_append
    - g_autoptr
    - fu_mei_csme18_hfsts1_get_operation_mode
    linkageType: ''
    returnType: void
    signature: "void fu_intel_me_device_add_attrs_csme18_override_strap(FuIntelMeDevice
      *self,\n\t\t\t\t\t\t   FuMeiCsme18Hfsts1 *hfsts1,\n\t\t\t\t\t\t   FuSecurityAttrs
      *attrs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:369,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:372,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:372,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:374,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:375,1
    - Dst: fu_mei_csme11_hfsts6_get_boot_guard_disable
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:378,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:379,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:380,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - self
    - hfsts6
    - attrs
    argTypes:
    - FuIntelMeDevice*
    - FuMeiCsme11Hfsts6*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 386
    functionName: fu_intel_me_device_add_attrs_csme11_bootguard_enabled
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - FU_DEVICE
    - fu_mei_csme11_hfsts6_get_boot_guard_disable
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_intel_me_device_add_attrs_csme11_bootguard_enabled(FuIntelMeDevice
      *self,\n\t\t\t\t\t\t      FuMeiCsme11Hfsts6 *hfsts6,\n\t\t\t\t\t\t      FuSecurityAttrs
      *attrs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:393,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:396,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:396,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:398,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:399,1
    - Dst: fu_mei_csme18_hfsts5_get_valid
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:402,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:403,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:404,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - self
    - hfsts5
    - attrs
    argTypes:
    - FuIntelMeDevice*
    - FuMeiCsme18Hfsts5*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 410
    functionName: fu_intel_me_device_add_attrs_csme18_bootguard_enabled
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - FU_DEVICE
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    - fu_mei_csme18_hfsts5_get_valid
    linkageType: ''
    returnType: void
    signature: "void fu_intel_me_device_add_attrs_csme18_bootguard_enabled(FuIntelMeDevice
      *self,\n\t\t\t\t\t\t      FuMeiCsme18Hfsts5 *hfsts5,\n\t\t\t\t\t\t      FuSecurityAttrs
      *attrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:417,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:420,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:420,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:422,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:423,1
    - Dst: fu_mei_csme11_hfsts6_get_boot_guard_disable
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:426,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:427,1
    - Dst: fu_mei_csme11_hfsts6_get_verified_boot
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:432,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:433,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:434,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - self
    - hfsts6
    - attrs
    argTypes:
    - FuIntelMeDevice*
    - FuMeiCsme11Hfsts6*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 440
    functionName: fu_intel_me_device_add_attrs_csme11_bootguard_verified
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - fu_mei_csme11_hfsts6_get_verified_boot
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - FU_DEVICE
    - fu_mei_csme11_hfsts6_get_boot_guard_disable
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_intel_me_device_add_attrs_csme11_bootguard_verified(FuIntelMeDevice
      *self,\n\t\t\t\t\t\t       FuMeiCsme11Hfsts6 *hfsts6,\n\t\t\t\t\t\t       FuSecurityAttrs
      *attrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:447,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:450,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:450,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:452,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:453,1
    - Dst: fu_mei_csme11_hfsts6_get_boot_guard_disable
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:456,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:457,1
    - Dst: fu_mei_csme11_hfsts6_get_force_boot_guard_acm
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:462,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:463,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:464,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - hfsts6
    - attrs
    argTypes:
    - FuIntelMeDevice*
    - FuMeiCsme11Hfsts6*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 442
    functionDepth: 3
    functionLinenumber: 442
    functionLinenumberEnd: 470
    functionName: fu_intel_me_device_add_attrs_csme11_bootguard_acm
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - fu_mei_csme11_hfsts6_get_force_boot_guard_acm
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - FU_DEVICE
    - fu_mei_csme11_hfsts6_get_boot_guard_disable
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_intel_me_device_add_attrs_csme11_bootguard_acm(FuIntelMeDevice
      *self,\n\t\t\t\t\t\t  FuMeiCsme11Hfsts6 *hfsts6,\n\t\t\t\t\t\t  FuSecurityAttrs
      *attrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:477,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:480,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:480,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:482,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:483,1
    - Dst: fu_mei_csme18_hfsts5_get_btg_acm_active
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:486,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:487,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:488,1
    - Dst: fu_mei_csme18_hfsts5_get_acm_done_sts
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:491,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:492,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:493,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - self
    - hfsts5
    - attrs
    argTypes:
    - FuIntelMeDevice*
    - FuMeiCsme18Hfsts5*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 472
    functionDepth: 3
    functionLinenumber: 472
    functionLinenumberEnd: 499
    functionName: fu_intel_me_device_add_attrs_csme18_bootguard_acm
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - fu_mei_csme18_hfsts5_get_acm_done_sts
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_mei_csme18_hfsts5_get_btg_acm_active
    - FU_DEVICE
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_intel_me_device_add_attrs_csme18_bootguard_acm(FuIntelMeDevice
      *self,\n\t\t\t\t\t\t  FuMeiCsme18Hfsts5 *hfsts5,\n\t\t\t\t\t\t  FuSecurityAttrs
      *attrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:506,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:509,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:509,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:511,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:512,1
    - Dst: fu_mei_csme11_hfsts6_get_boot_guard_disable
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:515,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:516,1
    - Dst: fu_mei_csme11_hfsts6_get_error_enforce_policy
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:522,1
    - Dst: fu_mei_csme11_hfsts6_get_error_enforce_policy
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:524,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:526,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:527,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:532,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - hfsts6
    - attrs
    argTypes:
    - FuIntelMeDevice*
    - FuMeiCsme11Hfsts6*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 501
    functionDepth: 3
    functionLinenumber: 501
    functionLinenumberEnd: 533
    functionName: fu_intel_me_device_add_attrs_csme11_bootguard_policy
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - fu_mei_csme11_hfsts6_get_error_enforce_policy
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - FU_DEVICE
    - fu_mei_csme11_hfsts6_get_boot_guard_disable
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_intel_me_device_add_attrs_csme11_bootguard_policy(FuIntelMeDevice
      *self,\n\t\t\t\t\t\t     FuMeiCsme11Hfsts6 *hfsts6,\n\t\t\t\t\t\t     FuSecurityAttrs
      *attrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:540,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:543,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:543,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:545,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:546,1
    - Dst: fu_mei_csme11_hfsts6_get_boot_guard_disable
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:549,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:550,1
    - Dst: fu_mei_csme11_hfsts6_get_fpf_soc_lock
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:555,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:556,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:557,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:562,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - self
    - hfsts6
    - attrs
    argTypes:
    - FuIntelMeDevice*
    - FuMeiCsme11Hfsts6*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 535
    functionDepth: 3
    functionLinenumber: 535
    functionLinenumberEnd: 563
    functionName: fu_intel_me_device_add_attrs_csme11_bootguard_otp
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - fu_mei_csme11_hfsts6_get_fpf_soc_lock
    - fwupd_security_attr_set_result
    - fwupd_security_attr_add_flag
    - FU_DEVICE
    - fu_mei_csme11_hfsts6_get_boot_guard_disable
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_intel_me_device_add_attrs_csme11_bootguard_otp(FuIntelMeDevice
      *self,\n\t\t\t\t\t\t  FuMeiCsme11Hfsts6 *hfsts6,\n\t\t\t\t\t\t  FuSecurityAttrs
      *attrs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:570,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:573,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:573,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:575,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:576,1
    - Dst: fu_mei_csme18_hfsts6_get_fpf_soc_configuration_lock
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:579,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:580,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:581,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - self
    - hfsts6
    - attrs
    argTypes:
    - FuIntelMeDevice*
    - FuMeiCsme18Hfsts6*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 565
    functionDepth: 3
    functionLinenumber: 565
    functionLinenumberEnd: 587
    functionName: fu_intel_me_device_add_attrs_csme18_bootguard_otp
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - fu_mei_csme18_hfsts6_get_fpf_soc_configuration_lock
    - fwupd_security_attr_set_result
    - fwupd_security_attr_add_flag
    - FU_DEVICE
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: "void fu_intel_me_device_add_attrs_csme18_bootguard_otp(FuIntelMeDevice
      *self,\n\t\t\t\t\t\t  FuMeiCsme18Hfsts6 *hfsts6,\n\t\t\t\t\t\t  FuSecurityAttrs
      *attrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:592,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:595,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:595,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:596,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:597,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:600,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:600,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:600,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:601,1
    - Dst: fu_intel_me_family_to_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:601,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:605,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:606,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:612,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:613,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - self
    - attrs
    argTypes:
    - FuIntelMeDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 589
    functionDepth: 3
    functionLinenumber: 589
    functionLinenumberEnd: 619
    functionName: fu_intel_me_device_add_attrs_mei_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_intel_me_family_to_string
    - FU_DEVICE
    - fu_device_get_version
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_add_metadata
    - fu_security_attrs_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_device_add_attrs_mei_version(FuIntelMeDevice *self,
      FuSecurityAttrs *attrs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_ME_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:624,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:630,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:631,1
    - Dst: fu_mei_csme11_hfsts1_parse
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:634,1
    - Dst: fu_mei_csme11_hfsts6_parse
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:640,1
    - Dst: fu_intel_me_device_add_attrs_csme11_manufacturing_mode
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:647,1
    - Dst: fu_intel_me_device_add_attrs_csme11_override_strap
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:648,1
    - Dst: fu_intel_me_device_add_attrs_csme11_bootguard_enabled
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:649,1
    - Dst: fu_intel_me_device_add_attrs_csme11_bootguard_verified
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:650,1
    - Dst: fu_intel_me_device_add_attrs_csme11_bootguard_acm
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:651,1
    - Dst: fu_intel_me_device_add_attrs_csme11_bootguard_policy
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:652,1
    - Dst: fu_intel_me_device_add_attrs_csme11_bootguard_otp
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:653,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:657,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:658,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:659,1
    - Dst: fu_mei_csme18_hfsts1_parse
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:662,1
    - Dst: fu_mei_csme18_hfsts5_parse
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:668,1
    - Dst: fu_mei_csme18_hfsts6_parse
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:674,1
    - Dst: fu_intel_me_device_add_attrs_csme18_manufacturing_mode
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:680,1
    - Dst: fu_intel_me_device_add_attrs_csme18_override_strap
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:681,1
    - Dst: fu_intel_me_device_add_attrs_csme18_bootguard_enabled
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:682,1
    - Dst: fu_intel_me_device_add_attrs_csme18_bootguard_acm
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:683,1
    - Dst: fu_intel_me_device_add_attrs_csme18_bootguard_otp
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:684,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:686,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:689,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:689,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:691,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:692,1
    - Dst: fu_intel_me_device_add_attrs_mei_version
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:697,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - device
    - attrs
    argTypes:
    - FuDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 621
    functionDepth: 4
    functionLinenumber: 621
    functionLinenumberEnd: 698
    functionName: fu_intel_me_device_add_security_attrs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - fu_mei_csme18_hfsts5_parse
    - fu_mei_csme18_hfsts6_parse
    - fu_intel_me_device_add_attrs_csme11_bootguard_enabled
    - fu_mei_csme11_hfsts6_parse
    - fu_intel_me_device_add_attrs_csme11_override_strap
    - fu_mei_csme11_hfsts1_parse
    - fwupd_security_attr_set_result
    - fu_intel_me_device_add_attrs_csme18_bootguard_otp
    - fu_intel_me_device_add_attrs_mei_version
    - fu_intel_me_device_add_attrs_csme18_bootguard_acm
    - fu_intel_me_device_add_attrs_csme11_bootguard_policy
    - fu_intel_me_device_add_attrs_csme11_bootguard_verified
    - fu_security_attrs_append
    - FU_INTEL_ME_DEVICE
    - FU_DEVICE
    - fu_intel_me_device_add_attrs_csme11_manufacturing_mode
    - fu_intel_me_device_add_attrs_csme18_manufacturing_mode
    - fu_intel_me_device_add_attrs_csme18_bootguard_enabled
    - fu_intel_me_device_add_attrs_csme18_override_strap
    - fu_device_security_attr_new
    - fu_intel_me_device_add_attrs_csme11_bootguard_acm
    - g_autoptr
    - fu_intel_me_device_add_attrs_csme11_bootguard_otp
    - fu_mei_csme18_hfsts1_parse
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_device_add_security_attrs(FuDevice *device, FuSecurityAttrs
      *attrs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_ME_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:703,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:707,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:709,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:710,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:712,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:713,1
    - Dst: fu_struct_intel_me_hfsts_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:713,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:715,1
    - Dst: fu_struct_intel_me_hfsts_set_value
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:717,1
    - Dst: fu_intel_me_device_set_hfsts
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:718,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - device
    - json_obj
    - error
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 700
    functionDepth: 2
    functionLinenumber: 700
    functionLinenumberEnd: 723
    functionName: fu_intel_me_device_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_intel_me_device_set_hfsts
    - fu_struct_intel_me_hfsts_new
    - FU_INTEL_ME_DEVICE
    - g_strdup_printf
    - G_N_ELEMENTS
    - fwupd_json_object_get_string
    - fu_struct_intel_me_hfsts_set_value
    - g_autoptr
    - fwupd_json_object_get_integer_with_default
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_me_device_from_json(FuDevice *device, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_ME_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:728,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:729,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:730,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:731,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:732,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:732,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:733,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:734,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:737,1
    - Dst: fu_struct_intel_me_hfsts_get_value
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:739,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - device
    - json_obj
    - flags
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 725
    functionDepth: 3
    functionLinenumber: 725
    functionLinenumberEnd: 741
    functionName: fu_intel_me_device_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - FU_INTEL_ME_DEVICE
    - fu_device_get_version
    - g_strdup_printf
    - fwupd_json_object_add_integer
    - fu_struct_intel_me_hfsts_get_value
    - G_N_ELEMENTS
    - fwupd_json_object_add_string
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_device_add_json(FuDevice *device, FwupdJsonObject
      *json_obj, FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:746,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:746,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:747,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:747,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:748,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:748,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:749,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:749,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:750,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:750,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:751,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:751,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:752,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:752,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelMeDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 756
    functionName: fu_intel_me_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_physical_id
    - g_signal_connect
    - fu_device_add_icon
    - fu_device_set_name
    - FU_DEVICE
    - FWUPD_DEVICE
    - G_CALLBACK
    - fu_device_set_version_format
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_device_init(FuIntelMeDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_ME_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:761,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:762,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:762,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 768
    functionName: fu_intel_me_device_constructed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - FU_INTEL_ME_DEVICE
    - fu_device_add_instance_id_full
    - G_OBJECT_CLASS
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_device_constructed(GObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_ME_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:773,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:775,1
    - Dst: fu_struct_intel_me_hfsts_unref
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:777,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 781
    functionName: fu_intel_me_device_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - FU_INTEL_ME_DEVICE
    - G_N_ELEMENTS
    - fu_struct_intel_me_hfsts_unref
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:786,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelMeDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 794
    functionName: fu_intel_me_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_device_class_init(FuIntelMeDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-me-device.c:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 810
    functionName: fu_intel_me_device_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    functionUses: 3
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuIntelMeDevice
    signature: 'FuIntelMeDevice *

      fu_intel_me_device_new(FuContext *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:16,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:21,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:22,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:23,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:25,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:25,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:27,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:28,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:29,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:30,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:30,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:31,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:31,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:32,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:32,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:33,1
    - Dst: strncmp
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:33,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:33,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:35,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:36,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:37,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:38,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:38,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:39,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:39,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:40,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:40,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:41,1
    - Dst: strncmp
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:41,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:41,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:43,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:44,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:45,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:46,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:46,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:47,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:47,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:48,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:48,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:49,1
    - Dst: strncmp
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:49,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:49,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:51,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:52,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:53,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:54,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 13
    functionDepth: 3
    functionLinenumber: 13
    functionLinenumberEnd: 56
    functionName: fu_chunk_array_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_idx
    - strncmp
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fu_chunk_get_data
    - fu_chunk_array_length
    - g_autoptr
    - g_assert_null
    - g_bytes_new_static
    - fu_chunk_get_address
    linkageType: ''
    returnType: void
    signature: void fu_chunk_array_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:66,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:67,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:70,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:71,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:73,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:74,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:75,1
    - Dst: fu_chunk_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:76,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:77,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:90,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:91,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:92,1
    - Dst: fu_chunk_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:93,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:94,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:107,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:108,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:109,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:110,1
    - Dst: fu_chunk_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:111,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:112,1
    - Dst: xb_version_string
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:112,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:113,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:115,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:118,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:119,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:120,1
    - Dst: fu_chunk_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:121,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:122,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:150,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:151,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:152,1
    - Dst: fu_chunk_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:153,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:154,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 189
    functionName: fu_chunk_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c
    functionUses: 0
    functionsReached:
    - xb_version_string
    - fu_chunk_array_new
    - g_debug
    - fu_chunk_array_to_string
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fu_version_compare
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_chunk_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:197,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:198,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:200,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:201,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:202,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:203,1
    - Dst: fu_chunk_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:204,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:205,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:218,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:219,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:220,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:221,1
    - Dst: fu_chunk_array_to_string
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:222,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 191
    functionDepth: 5
    functionLinenumber: 191
    functionLinenumberEnd: 246
    functionName: fu_chunk_array_null_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new
    - fu_chunk_array_to_string
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_chunk_array_null_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:251,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:252,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:253,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:254,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 256
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c
    functionUses: 3
    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_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_xmlb_builder_insert_kv
    - FU_EFI_X509_SIGNATURE
    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:
    - g_strdup
    - g_strcmp0
    - FU_IS_EFI_X509_SIGNATURE
    - g_return_if_fail
    - 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_N_ELEMENTS
    - g_string_replace
    - g_string_new
    - g_string_free
    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:
    - fu_firmware_set_version_raw
    - fu_efi_x509_signature_normalize_vendor
    - fu_strtoull
    - FU_FIRMWARE
    - g_string_new
    - g_string_truncate
    - g_autoptr
    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:
    - g_return_val_if_fail
    - g_strdup
    - g_strcmp0
    - FU_IS_EFI_X509_SIGNATURE
    - g_strdup_printf
    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_strdup
    - g_strcmp0
    - fu_efi_x509_signature_set_subject_vendor
    - fu_efi_x509_signature_set_subject_name
    - FU_IS_EFI_X509_SIGNATURE
    - g_return_if_fail
    - g_strsplit
    - g_free
    - g_auto
    - g_str_has_prefix
    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: 7
    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
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:258,1
    - Dst: fu_x509_certificate_get_subject
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:259,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:260,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:261,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:261,1
    - Dst: fu_x509_certificate_get_subject
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:262,1
    - Dst: fu_firmware_set_filename
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:263,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 222
    functionDepth: 5
    functionLinenumber: 222
    functionLinenumberEnd: 268
    functionName: fu_efi_x509_signature_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_efi_x509_signature_set_subject
    - fu_firmware_get_id
    - g_debug
    - fu_firmware_get_bytes
    - fu_efi_x509_signature_set_issuer
    - fu_firmware_parse_bytes
    - fu_x509_certificate_get_issuer
    - fu_firmware_set_version_raw
    - FU_FIRMWARE
    - g_date_time_get_year
    - fu_firmware_get_version_raw
    - fu_x509_certificate_new
    - fu_firmware_set_id
    - fu_firmware_set_filename
    - FU_EFI_X509_SIGNATURE
    - fu_x509_certificate_get_subject
    - fu_firmware_get_filename
    - FU_FIRMWARE_CLASS
    - fu_x509_certificate_get_activation_time
    - g_autoptr
    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:273,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 274
    functionName: fu_efi_x509_signature_convert_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint64
    - fu_firmware_get_version_format
    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:279,1
    - Dst: FU_EFI_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:279,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:280,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiX509Signature*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 281
    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_FIRMWARE
    - fu_efi_signature_set_kind
    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:286,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:287,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:288,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:289,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:290,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 292
    functionName: fu_efi_x509_signature_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c
    functionUses: 0
    functionsReached:
    - g_free
    - G_OBJECT_CLASS
    - FU_EFI_X509_SIGNATURE
    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:297,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-x509-signature.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiX509SignatureClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 303
    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:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 318
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:20,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:21,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:22,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:23,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:24,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:26,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:27,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:28,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:29,1
    - Dst: fwupd_security_attr_set_created
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:30,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:31,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:32,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:33,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:35,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:35,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:36,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:37,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:38,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:59,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:60,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:62,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:62,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:63,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:64,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:67,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:68,1
    - Dst: fwupd_codec_to_json_string
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:70,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:70,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:71,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:72,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:73,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 75
    functionName: fu_security_attrs_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - FWUPD_CODEC
    - g_assert_true
    - fwupd_security_attr_set_plugin
    - fu_test_compare_lines
    - fwupd_security_attr_set_level
    - g_assert_nonnull
    - fu_security_attrs_new
    - g_assert_no_error
    - fwupd_security_attr_set_created
    - fwupd_codec_to_json_string
    - g_test_skip
    - fwupd_security_attr_new
    - g_error_matches
    - fwupd_codec_from_json_string
    - fu_security_attrs_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_security_attrs_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:91,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:94,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:95,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:96,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:99,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:100,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:101,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:102,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:103,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:104,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:105,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:106,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:107,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:110,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:111,1
    - Dst: fwupd_security_attr_set_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:112,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:113,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:114,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:115,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:116,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:117,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:118,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:121,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:122,1
    - Dst: fwupd_security_attr_set_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:123,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:124,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:125,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:126,1
    - Dst: fu_security_attrs_depsolve
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:127,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:128,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:129,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:130,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:130,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:131,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:134,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:135,1
    - Dst: fwupd_security_attr_set_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:136,1
    - Dst: fwupd_security_attr_set_level
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:137,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:138,1
    - Dst: fwupd_security_attr_add_obsolete
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:139,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:140,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:141,1
    - Dst: fu_security_attrs_depsolve
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:142,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:143,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:144,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:145,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:148,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:149,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:150,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:151,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:152,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:153,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:154,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:155,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:156,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:159,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:160,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:161,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:162,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:163,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:164,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:165,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:166,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:169,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:170,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:171,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:172,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:173,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:174,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:175,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:176,1
    - Dst: fwupd_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:179,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:180,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:181,1
    - Dst: fwupd_security_attr_set_url
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:182,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:183,1
    - Dst: fu_security_attrs_calculate_hsi
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:184,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:185,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:189,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 191
    functionName: fu_security_attrs_hsi_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c
    functionUses: 0
    functionsReached:
    - fu_security_attrs_append
    - fwupd_security_attr_has_flag
    - fwupd_security_attr_set_fwupd_version
    - g_assert_true
    - fwupd_security_attr_set_plugin
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_level
    - fu_security_attrs_new
    - fu_security_attrs_depsolve
    - g_strdup_printf
    - fwupd_security_attr_new
    - fu_security_attrs_calculate_hsi
    - fwupd_security_attr_set_url
    - g_clear_object
    - g_assert_cmpstr
    - g_autoptr
    - fwupd_security_attr_add_obsolete
    linkageType: ''
    returnType: void
    signature: void fu_security_attrs_hsi_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:196,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:197,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:198,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 200
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c
    functionUses: 3
    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: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:19,1
    - Dst: fu_utf8_to_utf16_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:21,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:25,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:26,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:27,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:28,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:29,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:30,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:31,1
    - Dst: fu_utf16_to_utf8_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:32,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:33,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:34,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:37,1
    - Dst: fu_utf16_to_utf8_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:38,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:39,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 41
    functionName: fu_string_utf16_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string-test.c
    functionUses: 0
    functionsReached:
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - g_byte_array_set_size
    - fu_utf16_to_utf8_byte_array
    - fu_utf8_to_utf16_byte_array
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_string_utf16_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_strpassmask
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:58,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 61
    functionName: fu_strpassmask_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string-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_debug
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:67,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:68,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:68,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: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: fu_string_strnsplit_add_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string-test.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_ptr_array_add
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_string_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: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: fu_string_strnsplit_nop_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string-test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_string_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-string-test.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:88,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:89,1
    - Dst: g_string_sized_new
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:89,1
    - Dst: fu_strsplit_full
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:92,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:93,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:94,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:95,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:96,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:96,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:97,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:97,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:98,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:98,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:99,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:99,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:103,1
    - Dst: fu_strsplit_full
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:104,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:105,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:106,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 109
    functionName: fu_strsplit_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string-test.c
    functionUses: 0
    functionsReached:
    - g_string_append
    - fu_strsplit_full
    - g_assert_no_error
    - g_assert_cmpint
    - g_string_sized_new
    - g_autoptr
    - g_assert_true
    - g_assert_cmpstr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_strsplit_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_strstrip
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:124,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:128,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:128,1
    - Dst: fu_string_strip
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:129,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 132
    functionName: fu_strstrip_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string-test.c
    functionUses: 0
    functionsReached:
    - fu_string_strip
    - fu_strstrip
    - g_string_new
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_strstrip_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:139,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:141,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:142,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:143,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:144,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:146,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:147,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:148,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:149,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:151,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:152,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:153,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:154,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:156,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:157,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:158,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:159,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:160,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:161,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:162,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 164
    functionName: fu_strtoull_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string-test.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_assert_no_error
    - g_assert_cmpint
    - g_assert_false
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_strtoull_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:171,1
    - Dst: fu_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:173,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:174,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:175,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:176,1
    - Dst: fu_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:178,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:179,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:180,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:181,1
    - Dst: fu_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:183,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:184,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:185,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:186,1
    - Dst: fu_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:188,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:189,1
    - Dst: fu_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:190,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:191,1
    - Dst: fu_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:192,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:193,1
    - Dst: fu_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:194,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 196
    functionName: fu_strtoll_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - g_assert_cmpint
    - g_assert_false
    - fu_strtoll
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_strtoll_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:202,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: 205
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 205
    functionName: fu_strsplit_stream_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string-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-string-test.c:217,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:218,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:220,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:223,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:225,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:225,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:225,1
    - Dst: fu_strsplit_stream
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:226,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:227,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:228,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:229,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:231,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:231,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:231,1
    - Dst: fu_strsplit_stream
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:232,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:233,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:234,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:235,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:237,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:237,1
    - Dst: fu_strsplit_stream
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:238,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:239,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:240,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 242
    functionName: fu_strsplit_stream_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string-test.c
    functionUses: 0
    functionsReached:
    - g_memory_input_stream_new_from_data
    - g_assert_no_error
    - g_assert_cmpint
    - fu_strsplit_stream
    - strlen
    - G_INPUT_STREAM
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_strsplit_stream_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:247,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:248,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:249,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:250,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:251,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:252,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:253,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:254,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-string-test.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 256
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string-test.c
    functionUses: 3
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_test_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:46,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:48,1
    - Dst: FU_IS_VOLUME_LOCKER
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:48,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:49,1
    - Dst: fu_volume_unmount
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:53,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:54,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:55,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:58,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVolumeLocker*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 65
    functionName: fu_volume_locker_close
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume-locker.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_debug
    - g_steal_pointer
    - fu_volume_unmount
    - FU_IS_VOLUME_LOCKER
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_volume_locker_close(FuVolumeLocker *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_VOLUME_LOCKER
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:70,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:73,1
    - Dst: fu_volume_unmount
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:74,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:75,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:78,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 80
    functionName: fu_volume_locker_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume-locker.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - fu_volume_unmount
    - FU_VOLUME_LOCKER
    - G_OBJECT_CLASS
    - g_warning
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_volume_locker_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVolumeLockerClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: fu_volume_locker_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume-locker.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_volume_locker_class_init(FuVolumeLockerClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVolumeLocker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: fu_volume_locker_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume-locker.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_volume_locker_init(FuVolumeLocker *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:109,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:109,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:111,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:111,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:112,1
    - Dst: fu_volume_is_mounted
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:115,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:116,1
    - Dst: fu_volume_mount
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:119,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:120,1
    - Dst: fu_volume_unmount
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:121,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:122,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:123,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:131,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:133,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-volume-locker.c:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - volume
    - error
    argTypes:
    - FuVolume*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 135
    functionName: fu_volume_locker_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-volume-locker.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_VOLUME
    - g_debug
    - fu_volume_is_mounted
    - g_steal_pointer
    - fu_volume_mount
    - fu_volume_unmount
    - g_object_ref
    - g_object_new
    - g_error_matches
    - g_autoptr
    linkageType: ''
    returnType: FuVolumeLocker
    signature: 'FuVolumeLocker *

      fu_volume_locker_new(FuVolume *volume, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:28,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:29,1
    - Dst: fu_cbor_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:31,1
    - Dst: fu_cbor_item_get_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:32,1
    - Dst: fu_cbor_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:34,1
    - Dst: fu_cbor_item_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:34,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:37,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:38,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:39,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:43,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - item
    - error
    argTypes:
    - FuCborItem*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 48
    functionName: fu_coswid_read_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_cbor_item_get_bytes
    - g_bytes_get_data
    - g_set_error_literal
    - fwupd_guid_to_string
    - fu_cbor_item_get_kind
    - fu_cbor_item_get_string
    - g_bytes_get_size
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_coswid_read_string(FuCborItem *item, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:67,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:68,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:69,1
    - Dst: fu_cbor_item_get_integer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:71,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - item
    - value
    - error
    argTypes:
    - FuCborItem*
    - FuCoswidTag*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 77
    functionName: fu_coswid_read_tag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_cbor_item_get_integer
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_read_tag(FuCborItem *item, FuCoswidTag *value, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:96,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:97,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:98,1
    - Dst: fu_cbor_item_get_integer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:100,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - item
    - value
    - error
    argTypes:
    - FuCborItem*
    - FuCoswidVersionScheme*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 106
    functionName: fu_coswid_read_version_scheme
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_cbor_item_get_integer
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_read_version_scheme(FuCborItem *item, FuCoswidVersionScheme
      *value, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:121,1
    - Dst: fu_cbor_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:122,1
    - Dst: fu_cbor_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:122,1
    - Dst: fu_cbor_item_map_append
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:123,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - item
    - tag
    - value
    argTypes:
    - FuCborItem*
    - FuCoswidTag
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: fu_coswid_write_tag_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_new_string
    - fu_cbor_item_new_integer
    - g_critical
    - fu_cbor_item_map_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_coswid_write_tag_string(FuCborItem *item, FuCoswidTag tag,
      const gchar *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:141,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:141,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:142,1
    - Dst: fu_cbor_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:143,1
    - Dst: fu_cbor_item_new_bytes
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:143,1
    - Dst: fu_cbor_item_map_append
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:144,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - item
    - tag
    - buf
    - bufsz
    argTypes:
    - FuCborItem*
    - FuCoswidTag
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: fu_coswid_write_tag_bytestring
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_new_integer
    - g_critical
    - g_bytes_new
    - fu_cbor_item_new_bytes
    - fu_cbor_item_map_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_coswid_write_tag_bytestring(FuCborItem *item, FuCoswidTag tag,
      const guint8 *buf, gsize bufsz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:161,1
    - Dst: fu_cbor_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:161,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:162,1
    - Dst: fu_cbor_item_new_boolean
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:162,1
    - Dst: fu_cbor_item_map_append
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:163,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - item
    - tag
    - value
    argTypes:
    - FuCborItem*
    - FuCoswidTag
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: fu_coswid_write_tag_bool
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_new_integer
    - g_critical
    - fu_cbor_item_new_boolean
    - fu_cbor_item_map_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_coswid_write_tag_bool(FuCborItem *item, FuCoswidTag tag, gboolean
      value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:180,1
    - Dst: fu_cbor_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:180,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:181,1
    - Dst: fu_cbor_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:181,1
    - Dst: fu_cbor_item_map_append
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:182,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - item
    - tag
    - value
    argTypes:
    - FuCborItem*
    - FuCoswidTag
    - gint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 184
    functionName: fu_coswid_write_tag_integer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_new_integer
    - fu_cbor_item_map_append
    - g_autoptr
    - g_critical
    linkageType: ''
    returnType: void
    signature: void fu_coswid_write_tag_integer(FuCborItem *item, FuCoswidTag tag,
      gint64 value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:199,1
    - Dst: fu_cbor_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:199,1
    - Dst: fu_cbor_item_map_append
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:200,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - item
    - tag
    - value
    argTypes:
    - FuCborItem*
    - FuCoswidTag
    - FuCborItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: fu_coswid_write_tag_item
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_new_integer
    - fu_cbor_item_map_append
    - g_autoptr
    - g_critical
    linkageType: ''
    returnType: void
    signature: void fu_coswid_write_tag_item(FuCborItem *item, FuCoswidTag tag, FuCborItem
      *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:221,1
    - Dst: fu_cbor_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:224,1
    - Dst: func
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:225,1
    - Dst: fu_cbor_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:228,1
    - Dst: fu_cbor_item_array_length
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:229,1
    - Dst: fu_cbor_item_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:230,1
    - Dst: fu_cbor_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:231,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:232,1
    - Dst: func
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:238,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-common.c:245,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - item
    - func
    - user_data
    - error
    argTypes:
    - FuCborItem*
    - FuCoswidItemFunc
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 250
    functionName: fu_coswid_parse_one_or_many
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-common.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - func
    - g_set_error_literal
    - fu_cbor_item_get_kind
    - fu_cbor_item_array_index
    - fu_cbor_item_array_length
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_coswid_parse_one_or_many(FuCborItem *item,\n\t\t\t    FuCoswidItemFunc
      func,\n\t\t\t    gpointer user_data,\n\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuProcessorDevice*
    - FuProcessorFeatureFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: fu_processor_device_has_feature
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_processor_device_has_feature(FuProcessorDevice *self, FuProcessorFeatureFlags
      flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:50,1
    - Dst: FU_IS_PROCESSOR_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProcessorDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: fu_processor_device_get_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PROCESSOR_DEVICE
    linkageType: ''
    returnType: FuProcessorKind
    signature: FuProcessorKind fu_processor_device_get_kind(FuProcessorDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:69,1
    - Dst: FU_IS_PROCESSOR_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - mitigation_flag
    argTypes:
    - FuProcessorDevice*
    - FuProcessorMitigationFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: fu_processor_device_needs_mitigation
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PROCESSOR_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_processor_device_needs_mitigation(FuProcessorDevice *self,\n\t\t\t\t
      \    FuProcessorMitigationFlags mitigation_flag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:86,1
    - Dst: FU_IS_PROCESSOR_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProcessorDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: fu_processor_device_get_sinkclose_microcode_ver
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PROCESSOR_DEVICE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_processor_device_get_sinkclose_microcode_ver(FuProcessorDevice
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:103,1
    - Dst: FU_IS_PROCESSOR_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProcessorDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: fu_processor_device_get_entrysign_psp_ver
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PROCESSOR_DEVICE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_processor_device_get_entrysign_psp_ver(FuProcessorDevice *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PROCESSOR_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:110,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:112,1
    - Dst: fu_processor_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:115,1
    - Dst: fu_processor_feature_flags_to_string
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:118,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:119,1
    - Dst: fu_processor_mitigation_flags_to_string
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:123,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:124,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:126,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 131
    functionName: fu_processor_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - fu_processor_kind_to_string
    - fwupd_codec_string_append
    - FU_PROCESSOR_DEVICE
    - fu_processor_mitigation_flags_to_string
    - fwupd_codec_string_append_int
    - fu_processor_feature_flags_to_string
    linkageType: ''
    returnType: void
    signature: void fu_processor_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_cpuid
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:145,1
    - Dst: fu_device_add_instance_u4
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:161,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:161,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:162,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:162,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:163,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:163,1
    - Dst: fu_device_add_instance_u4
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:164,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:164,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:165,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:165,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:172,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:172,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:173,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuProcessorDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 184
    functionName: fu_processor_device_add_instance_ids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_u4
    - fu_device_add_instance_u8
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_build_instance_id_full
    - fu_cpuid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_processor_device_add_instance_ids(FuProcessorDevice *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_cpuid
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:193,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:195,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:204,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:213,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:224,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:224,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:225,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuProcessorDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 231
    functionName: fu_processor_device_probe_manufacturer_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_strsafe
    - FU_DEVICE
    - fu_device_build_instance_id_full
    - fu_cpuid
    - fu_memcpy_safe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_processor_device_probe_manufacturer_id(FuProcessorDevice
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_cpuid
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:243,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:245,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:254,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:263,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:272,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:282,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:282,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuProcessorDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 284
    functionName: fu_processor_device_probe_model
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_name
    - fu_cpuid
    - FU_DEVICE
    - fu_memcpy_safe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_processor_device_probe_model(FuProcessorDevice *self, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_cpuid
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:293,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:300,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuProcessorDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 308
    functionName: fu_processor_device_probe_extended_features
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - fu_cpuid
    - fu_cpu_get_vendor
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_processor_device_probe_extended_features(FuProcessorDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_PROCESSOR_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:313,1
    - Dst: fu_processor_device_probe_manufacturer_id
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:314,1
    - Dst: fu_processor_device_probe_model
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:316,1
    - Dst: fu_processor_device_probe_extended_features
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:318,1
    - Dst: fu_processor_device_add_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 310
    functionDepth: 4
    functionLinenumber: 310
    functionLinenumberEnd: 323
    functionName: fu_processor_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - fu_processor_device_probe_manufacturer_id
    - fu_processor_device_add_instance_ids
    - FU_PROCESSOR_DEVICE
    - fu_processor_device_probe_extended_features
    - fu_processor_device_probe_model
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_processor_device_probe(FuDevice *device, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_PROCESSOR_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:331,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:332,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:334,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:336,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:339,1
    - Dst: fu_processor_mitigation_flags_from_string
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:340,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:343,1
    - Dst: fu_processor_kind_from_string
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:344,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:347,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:349,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:354,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:355,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:356,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:359,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 361
    functionName: fu_processor_device_set_quirk_kv
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - fu_processor_mitigation_flags_from_string
    - fu_strtoull
    - fu_device_set_metadata_integer
    - g_set_error_literal
    - FU_PROCESSOR_DEVICE
    - fu_processor_kind_from_string
    - g_free
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_processor_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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:366,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:369,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:369,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:370,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:371,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:373,1
    - Dst: fu_processor_device_has_feature
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:375,1
    - Dst: fu_processor_device_has_feature
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:376,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:377,1
    - Dst: fu_processor_device_has_feature
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:382,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:383,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:391,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - self
    - attrs
    argTypes:
    - FuProcessorDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 392
    functionName: fu_processor_device_add_security_attrs_cet_enabled
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_processor_device_has_feature
    - FU_DEVICE
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_cpu_get_vendor
    - fu_security_attrs_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_processor_device_add_security_attrs_cet_enabled(FuProcessorDevice
      *self, FuSecurityAttrs *attrs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:397,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:397,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:400,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:401,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:402,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:406,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:409,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:413,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:413,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:414,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:415,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:416,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:419,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:425,1
    - Dst: g_spawn_command_line_sync
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:428,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:429,1
    - Dst: g_spawn_check_wait_status
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:432,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:433,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:434,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:439,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - self
    - attrs
    argTypes:
    - FuProcessorDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 440
    functionName: fu_processor_device_add_security_attrs_cet_active
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_has_flag
    - fwupd_security_attr_add_flag
    - fu_context_build_filename
    - g_debug
    - fwupd_security_attr_set_result
    - fu_device_get_context
    - g_spawn_check_wait_status
    - FU_DEVICE
    - g_warning
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - fu_security_attrs_get_by_appstream_id
    - g_autoptr
    - g_spawn_command_line_sync
    linkageType: ''
    returnType: void
    signature: void fu_processor_device_add_security_attrs_cet_active(FuProcessorDevice
      *self, FuSecurityAttrs *attrs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:445,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:448,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:448,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:449,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:450,1
    - Dst: fu_processor_device_has_feature
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:453,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:454,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - attrs
    argTypes:
    - FuProcessorDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 442
    functionDepth: 3
    functionLinenumber: 442
    functionLinenumberEnd: 460
    functionName: fu_processor_device_add_security_attrs_intel_tme
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_processor_device_has_feature
    - FU_DEVICE
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_processor_device_add_security_attrs_intel_tme(FuProcessorDevice
      *self, FuSecurityAttrs *attrs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:465,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:468,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:468,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:469,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:470,1
    - Dst: fu_processor_device_has_feature
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:473,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:474,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - attrs
    argTypes:
    - FuProcessorDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 462
    functionDepth: 3
    functionLinenumber: 462
    functionLinenumberEnd: 480
    functionName: fu_processor_device_add_security_attrs_smap
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_processor_device_has_feature
    - FU_DEVICE
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_processor_device_add_security_attrs_smap(FuProcessorDevice
      *self, FuSecurityAttrs *attrs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:487,1
    - Dst: fu_processor_device_add_security_attrs_intel_tme
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:488,1
    - Dst: fu_processor_device_add_security_attrs_cet_enabled
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:489,1
    - Dst: fu_processor_device_add_security_attrs_cet_active
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:490,1
    - Dst: fu_processor_device_add_security_attrs_smap
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - attrs
    argTypes:
    - FuProcessorDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 483
    functionDepth: 4
    functionLinenumber: 483
    functionLinenumberEnd: 492
    functionName: fu_processor_device_add_x86_64_security_attrs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - fu_processor_device_add_security_attrs_smap
    - fu_processor_device_add_security_attrs_cet_active
    - fu_processor_device_add_security_attrs_intel_tme
    - fu_cpu_get_vendor
    - fu_processor_device_add_security_attrs_cet_enabled
    linkageType: ''
    returnType: void
    signature: void fu_processor_device_add_x86_64_security_attrs(FuProcessorDevice
      *self, FuSecurityAttrs *attrs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PROCESSOR_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:499,1
    - Dst: uname
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:502,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:503,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:507,1
    - Dst: fu_processor_device_add_x86_64_security_attrs
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - device
    - attrs
    argTypes:
    - FuDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 495
    functionDepth: 5
    functionLinenumber: 495
    functionLinenumberEnd: 510
    functionName: fu_processor_device_add_security_attrs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_processor_device_add_x86_64_security_attrs
    - uname
    - FU_PROCESSOR_DEVICE
    - g_warning
    linkageType: ''
    returnType: void
    signature: void fu_processor_device_add_security_attrs(FuDevice *device, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:515,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 516
    functionName: fu_processor_device_convert_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_processor_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:521,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:521,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:522,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:522,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:523,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:523,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:524,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:524,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:525,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuProcessorDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 526
    functionName: fu_processor_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_physical_id
    - fu_device_add_icon
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_version_format
    linkageType: ''
    returnType: void
    signature: void fu_processor_device_init(FuProcessorDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PROCESSOR_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:531,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:532,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 534
    functionName: fu_processor_device_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - G_OBJECT_CLASS
    - FU_PROCESSOR_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_processor_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:539,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuProcessorDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 547
    functionName: fu_processor_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_processor_device_class_init(FuProcessorDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-processor-device.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 563
    functionName: fu_processor_device_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-processor-device.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuProcessorDevice
    signature: 'FuProcessorDevice *

      fu_processor_device_new(FuContext *ctx)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - gtype
    argTypes:
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 45
    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:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:53,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:53,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:54,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:54,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:58,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:59,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:59,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:60,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:60,1
    - Dst: fwupd_json_object_add_object
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:61,1
    - Dst: fu_efi_device_path_list_gtype_to_member_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:63,1
    - Dst: G_OBJECT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:63,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:65,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 68
    functionName: fu_efi_device_path_list_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_TYPE
    - fwupd_json_object_add_array
    - FWUPD_CODEC
    - fwupd_json_object_new
    - FU_FIRMWARE
    - fwupd_codec_to_json
    - fwupd_json_array_new
    - fu_firmware_get_images
    - fu_efi_device_path_list_gtype_to_member_name
    - fwupd_json_object_add_object
    - fwupd_json_array_add_object
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: "void fu_efi_device_path_list_add_json(FwupdCodec *codec,\n\t\t\t\t
      FwupdJsonObject *json_obj,\n\t\t\t\t FwupdCodecFlags flags)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:78,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:82,1
    - Dst: fu_struct_efi_device_path_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:85,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_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:90,1
    - Dst: fu_struct_efi_device_path_get_subtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:91,1
    - Dst: FU_EFI_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:93,1
    - Dst: fu_efi_file_path_device_path_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:93,1
    - Dst: fu_struct_efi_device_path_get_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:94,1
    - Dst: fu_struct_efi_device_path_get_subtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:96,1
    - Dst: FU_EFI_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:98,1
    - Dst: fu_efi_hard_drive_device_path_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:98,1
    - Dst: fu_efi_device_path_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:100,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:102,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:102,1
    - Dst: fu_firmware_parse_stream
      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
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:106,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:112,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:112,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:114,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:114,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:114,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 120
    functionName: fu_efi_device_path_list_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c
    functionUses: 0
    functionsReached:
    - fu_efi_hard_drive_device_path_new
    - fu_efi_device_path_new
    - fu_firmware_add_image
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - fu_struct_efi_device_path_get_subtype
    - g_set_error_literal
    - fu_firmware_set_offset
    - fu_struct_efi_device_path_get_type
    - fu_firmware_get_size
    - FU_EFI_DEVICE_PATH
    - fu_size_checked_inc
    - g_autoptr
    - fu_efi_file_path_device_path_new
    - fu_struct_efi_device_path_parse_stream
    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:125,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:126,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:127,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:132,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:132,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:135,1
    - Dst: fu_struct_efi_device_path_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:139,1
    - Dst: fu_struct_efi_device_path_set_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:140,1
    - Dst: fu_struct_efi_device_path_set_subtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:141,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:142,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 146
    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_new
    - fu_firmware_write
    - fu_byte_array_append_bytes
    - fu_byte_array_append_array
    - fu_struct_efi_device_path_set_type
    - fu_struct_efi_device_path_set_subtype
    - g_steal_pointer
    - fu_firmware_get_images
    - g_byte_array_new
    - g_autoptr
    - g_ptr_array_index
    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: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    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:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiDevicePathListClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    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: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:165,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:165,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:166,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:166,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:167,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:167,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:168,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:168,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:169,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiDevicePathList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: fu_efi_device_path_list_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-device-path-list.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_set_size_max
    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:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    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:
    - g_strdup
    - fwupd_guid_hash_string
    - fwupd_guid_is_valid
    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_return_val_if_fail
    - g_ascii_isalnum
    - g_set_error
    - g_ascii_isalpha
    - g_ascii_islower
    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_object_unref
    - g_free
    - g_string_free
    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_strndup
    - g_strcmp0
    - g_set_error
    - fu_strstrip
    - xb_builder_node_insert_text
    - g_set_object
    - g_strsplit
    - g_string_assign
    - g_warning
    - xb_builder_node_insert
    - fu_quirks_validate_flags
    - g_auto
    - fu_quirks_build_group_key
    - g_autoptr
    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:
    - g_new0
    - g_bytes_get_data
    - g_steal_pointer
    - fu_strsplit_full
    - xb_builder_node_new
    - g_bytes_new_take
    - strlen
    - g_string_new
    - g_bytes_get_size
    - g_autoptr
    - xb_builder_node_export
    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
    - g_memory_input_stream_new_from_bytes
    - xb_builder_source_ctx_get_bytes
    - g_autoptr
    - fu_quirks_convert_keyfile_to_xml
    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_new
    - g_str_has_suffix
    - g_ptr_array_index
    - g_ptr_array_sort
    - xb_builder_source_add_simple_adapter
    - g_debug
    - xb_builder_import_source
    - g_dir_read_name
    - g_file_new_for_path
    - g_ptr_array_new_with_free_func
    - g_info
    - fwupd_error_convert
    - g_dir_open
    - xb_builder_source_load_file
    - g_ptr_array_add
    - g_prefix_error
    - g_file_test
    - g_autoptr
    - g_build_filename
    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: 18
    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_context_get_path
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:372,1
    - Dst: fu_quirks_add_quirks_for_path
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:374,1
    - Dst: fu_context_get_path
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:379,1
    - Dst: fu_quirks_add_quirks_for_path
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:381,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:387,1
    - Dst: g_file_new_tmp
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:388,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:393,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:400,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:402,1
    - Dst: xb_builder_set_profile_flags
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:403,1
    - Dst: xb_builder_ensure
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:409,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:416,1
    - Dst: fu_strjoin
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:417,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:418,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:423,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:425,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:430,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:435,1
    - Dst: xb_query_new_full
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:438,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:443,1
    - Dst: xb_silo_query_build_index
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:446,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:447,1
    - Dst: xb_silo_query_build_index
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:450,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:451,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQuirks*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 457
    functionName: fu_quirks_check_silo
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - fu_quirks_add_quirks_for_path
    - fu_strjoin
    - xb_silo_query_build_index
    - fu_context_get_path
    - xb_silo_is_valid
    - g_ptr_array_sort
    - g_debug
    - g_prefix_error_literal
    - xb_query_new_full
    - g_file_new_for_path
    - xb_silo_query_first
    - xb_builder_set_profile_flags
    - g_getenv
    - g_info
    - fwupd_error_convert
    - xb_builder_ensure
    - g_file_new_tmp
    - fu_context_build_filename
    - g_autoptr
    - xb_builder_new
    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:474,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:475,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:476,1
    - Dst: XB_QUERY_CONTEXT_INIT
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:476,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:478,1
    - Dst: FU_IS_QUIRKS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:478,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:479,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:480,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:481,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:486,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:487,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:493,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:493,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:496,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:497,1
    - Dst: sqlite3_step
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:498,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:499,1
    - Dst: g_intern_string
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:501,1
    - Dst: fu_quirks_check_silo
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:507,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:508,1
    - Dst: xb_query_context_set_flags
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:517,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:518,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:518,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:519,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:519,1
    - Dst: xb_silo_query_first_with_context
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:520,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:522,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:524,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:526,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:530,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:530,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:531,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 3
    argNames:
    - self
    - guid
    - key
    argTypes:
    - FuQuirks*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 471
    functionDepth: 3
    functionLinenumber: 471
    functionLinenumberEnd: 532
    functionName: fu_quirks_lookup_by_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 2
    functionsReached:
    - sqlite3_prepare_v2
    - fu_quirks_check_silo
    - FU_IS_QUIRKS
    - xb_query_context_get_bindings
    - g_auto
    - xb_silo_query_first_with_context
    - sqlite3_errmsg
    - sqlite3_step
    - g_debug
    - sqlite3_column_text
    - xb_value_bindings_bind_str
    - g_warning
    - g_intern_string
    - g_return_val_if_fail
    - xb_query_context_set_flags
    - g_error_matches
    - g_autoptr
    - xb_node_get_text
    - XB_QUERY_CONTEXT_INIT
    - sqlite3_bind_text
    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:555,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:556,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:557,1
    - Dst: XB_QUERY_CONTEXT_INIT
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:557,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:559,1
    - Dst: FU_IS_QUIRKS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:559,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:560,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:561,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:562,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:567,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:569,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:574,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:574,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:577,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:579,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:585,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:585,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:588,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:589,1
    - Dst: sqlite3_step
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:591,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:592,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:593,1
    - Dst: iter_cb
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:594,1
    - Dst: fu_quirks_check_silo
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:600,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:601,1
    - Dst: xb_query_context_set_flags
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:610,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:611,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:611,1
    - Dst: xb_value_bindings_bind_str
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:613,1
    - Dst: xb_query_context_get_bindings
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:613,1
    - Dst: xb_silo_query_with_context
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:614,1
    - Dst: xb_silo_query_with_context
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:616,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:619,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:621,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:623,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:627,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:629,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:629,1
    - Dst: iter_cb
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:630,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:631,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:632,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 5
    argNames:
    - self
    - guid
    - key
    - iter_cb
    - user_data
    argTypes:
    - FuQuirks*
    - gchar*
    - gchar*
    - FuQuirksIter
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 548
    functionDepth: 3
    functionLinenumber: 548
    functionLinenumberEnd: 638
    functionName: fu_quirks_lookup_by_id_iter
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 1
    functionsReached:
    - sqlite3_prepare_v2
    - fu_quirks_check_silo
    - FU_IS_QUIRKS
    - xb_query_context_get_bindings
    - xb_node_get_attr
    - xb_silo_query_with_context
    - g_auto
    - g_ptr_array_index
    - sqlite3_errmsg
    - sqlite3_step
    - g_debug
    - sqlite3_column_text
    - iter_cb
    - xb_value_bindings_bind_str
    - g_warning
    - g_return_val_if_fail
    - xb_query_context_set_flags
    - g_error_matches
    - g_autoptr
    - xb_node_get_text
    - XB_QUERY_CONTEXT_INIT
    - sqlite3_bind_text
    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:655,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuQuirksDbHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 657
    functionName: fu_quirks_db_helper_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_string_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:667,1
    - Dst: g_ascii_strup
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:670,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:672,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:673,1
    - Dst: sqlite3_reset
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:674,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:675,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:676,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:677,1
    - Dst: sqlite3_step
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:678,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:679,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - helper
    - vid
    - name
    - error
    argTypes:
    - FuQuirksDbHelper*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 661
    functionDepth: 3
    functionLinenumber: 661
    functionLinenumberEnd: 689
    functionName: fu_quirks_db_add_vendor_entry
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - FU_QUIRKS
    - sqlite3_errmsg
    - sqlite3_reset
    - sqlite3_step
    - g_set_error
    - g_strdup_printf
    - fwupd_guid_hash_string
    - g_ascii_strup
    - sqlite3_bind_text
    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:698,1
    - Dst: g_ascii_strup
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:701,1
    - Dst: g_ascii_strup
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:702,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:704,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:710,1
    - Dst: sqlite3_reset
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:711,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:712,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:713,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:714,1
    - Dst: sqlite3_step
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:715,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:716,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:720,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: 726
      start: 691
    functionDepth: 3
    functionLinenumber: 691
    functionLinenumberEnd: 726
    functionName: fu_quirks_db_add_name_entry
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - FU_QUIRKS
    - sqlite3_errmsg
    - sqlite3_reset
    - sqlite3_step
    - g_set_error
    - g_strdup_printf
    - fwupd_guid_hash_string
    - g_ascii_strup
    - sqlite3_bind_text
    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:732,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - str
    - n
    argTypes:
    - gchar*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 736
    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:748,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:749,1
    - Dst: _g_ascii_isxstrn
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:753,1
    - Dst: g_string_set_size
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:754,1
    - Dst: g_string_append_len
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:755,1
    - Dst: fu_quirks_db_add_vendor_entry
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:756,1
    - Dst: _g_ascii_isxstrn
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:763,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:764,1
    - Dst: fu_quirks_db_add_name_entry
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:765,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: 774
      start: 738
    functionDepth: 4
    functionLinenumber: 738
    functionLinenumberEnd: 774
    functionName: fu_quirks_db_add_usbids_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_string_append_len
    - g_strndup
    - fu_quirks_db_add_name_entry
    - g_string_set_size
    - fu_quirks_db_add_vendor_entry
    - g_strstr_len
    - _g_ascii_isxstrn
    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:787,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:791,1
    - Dst: fu_quirks_db_add_vendor_entry
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:792,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: 793
      start: 776
    functionDepth: 4
    functionLinenumber: 776
    functionLinenumberEnd: 793
    functionName: fu_quirks_db_add_ouitxt_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - fu_quirks_db_add_vendor_entry
    - _g_ascii_isxstrn
    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:806,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:810,1
    - Dst: fu_quirks_db_add_vendor_entry
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:811,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: 812
      start: 795
    functionDepth: 4
    functionLinenumber: 795
    functionLinenumberEnd: 812
    functionName: fu_quirks_db_add_pnpids_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - g_strstr_len
    - fu_quirks_db_add_vendor_entry
    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:829,1
    - Dst: g_usleep
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:832,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:835,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:840,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - sql
    - error
    argTypes:
    - FuQuirks*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 845
    functionName: fu_quirks_db_sqlite3_exec
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_usleep
    - sqlite3_exec
    - sqlite3_errmsg
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_quirks_db_sqlite3_exec(FuQuirks *self, const gchar *sql,
      GError **error)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:850,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:851,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:852,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:852,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:853,1
    - Dst: fu_quirks_db_sqlite3_exec
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:866,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:878,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:882,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:883,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:885,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:892,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:893,1
    - Dst: g_file_query_info
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:895,1
    - Dst: g_file_info_get_attribute_uint64
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:902,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:903,1
    - Dst: sqlite3_prepare_v2
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:907,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:912,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:916,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:919,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:920,1
    - Dst: sqlite3_step
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:921,1
    - Dst: sqlite3_column_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:922,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:923,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:924,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:927,1
    - Dst: fu_quirks_db_sqlite3_exec
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:931,1
    - Dst: fu_quirks_db_sqlite3_exec
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:933,1
    - Dst: sqlite3_prepare_v3
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:937,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:943,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:947,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:952,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:955,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:955,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:956,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:957,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:959,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:968,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:969,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:970,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:973,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:974,1
    - Dst: g_file_read
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:974,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:982,1
    - Dst: fu_strsplit_stream
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:983,1
    - Dst: sqlite3_reset
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:988,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:989,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:990,1
    - Dst: sqlite3_bind_text
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:991,1
    - Dst: sqlite3_step
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:992,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:993,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:997,1
    - Dst: fu_quirks_db_sqlite3_exec
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1000,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 85
    argCount: 3
    argNames:
    - self
    - load_flags
    - error
    argTypes:
    - FuQuirks*
    - FuQuirksLoadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 847
    functionDepth: 3
    functionLinenumber: 847
    functionLinenumberEnd: 1005
    functionName: fu_quirks_db_load
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - sqlite3_prepare_v2
    - sqlite3_prepare_v3
    - sqlite3_errmsg
    - sqlite3_step
    - g_new0
    - fu_quirks_db_sqlite3_exec
    - g_debug
    - sqlite3_reset
    - sqlite3_column_text
    - g_string_new
    - g_file_new_for_path
    - fwupd_guid_hash_string
    - g_file_info_get_attribute_uint64
    - g_file_query_info
    - G_INPUT_STREAM
    - g_strcmp0
    - fu_context_build_filename
    - g_set_error
    - g_file_read
    - g_file_query_exists
    - fu_strsplit_stream
    - G_N_ELEMENTS
    - g_string_append_printf
    - g_autoptr
    - sqlite3_bind_text
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_quirks_db_load(FuQuirks *self, FuQuirksLoadFlags load_flags,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1023,1
    - Dst: FU_IS_QUIRKS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1023,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1024,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1028,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1034,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1041,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1042,1
    - Dst: sqlite3_open
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1044,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1045,1
    - Dst: sqlite3_errmsg
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1050,1
    - Dst: fu_quirks_db_load
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1053,1
    - Dst: fu_quirks_check_silo
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1059,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - load_flags
    - error
    argTypes:
    - FuQuirks*
    - FuQuirksLoadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1020
    functionDepth: 4
    functionLinenumber: 1020
    functionLinenumberEnd: 1060
    functionName: fu_quirks_load
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - g_getenv
    - sqlite3_errmsg
    - g_debug
    - fu_context_build_filename
    - g_set_error
    - fu_quirks_db_load
    - fu_quirks_check_silo
    - FU_IS_QUIRKS
    - sqlite3_open
    - fu_path_mkdir_parent
    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:1075,1
    - Dst: FU_IS_QUIRKS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1075,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1076,1
    - Dst: g_hash_table_add
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1077,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - possible_key
    argTypes:
    - FuQuirks*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1078
    functionName: fu_quirks_add_possible_key
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - FU_IS_QUIRKS
    - g_return_if_fail
    - g_hash_table_add
    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:1084,1
    - Dst: sqlite3_db_release_memory
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1086,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - self
    argTypes:
    - FuContext*
    - FuQuirks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1088
    functionName: fu_quirks_housekeeping_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - sqlite3_release_memory
    - sqlite3_db_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:1093,1
    - Dst: g_signal_handlers_disconnect_by_data
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1095,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1096,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1097,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1098
    functionName: fu_quirks_dispose
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_signal_handlers_disconnect_by_data
    - FU_QUIRKS
    - 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:1103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQuirksClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1106
    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:1111,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1112,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
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1126,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1127,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1128,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1129,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1130,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1131,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1132,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1133,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1134,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1135,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1136,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1137,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1138,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1139,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1140,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1141,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1142,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1143,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1144,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1145,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1146,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1147,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1148,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1149,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1150,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1151,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1152,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1153,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1154,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1155,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQuirks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1157
    functionName: fu_quirks_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - fu_quirks_add_possible_key
    - g_hash_table_new_full
    linkageType: ''
    returnType: void
    signature: void fu_quirks_init(FuQuirks *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_QUIRKS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1162,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1164,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1166,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1168,1
    - Dst: sqlite3_close
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1171,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1173,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1174,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1176
    functionName: fu_quirks_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 0
    functionsReached:
    - FU_QUIRKS
    - g_ptr_array_unref
    - g_object_unref
    - G_OBJECT_CLASS
    - sqlite3_close
    - g_hash_table_unref
    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:1191,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1192,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1193,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1193,1
    - Dst: FU_QUIRKS
      Src: /src/fwupd/libfwupdplugin/fu-quirks.c:1194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1195
    functionName: fu_quirks_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-quirks.c
    functionUses: 3
    functionsReached:
    - FU_QUIRKS
    - g_signal_connect
    - g_object_ref
    - g_object_new
    - 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:44,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:45,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: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: fu_usb_bos_descriptor_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
    functionUses: 0
    functionsReached:
    - fu_usb_descriptor_kind_to_string
    - fu_xmlb_builder_insert_kv
    - 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
    - xb_node_query_text
    - FU_USB_BOS_DESCRIPTOR
    - g_set_error
    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: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:82,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:91,1
    - Dst: g_base64_decode
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:96,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:96,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:99,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:99,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:100,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:106,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:107,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - codec
    - json_obj
    - error
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 113
    functionName: fu_usb_bos_descriptor_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
    functionUses: 0
    functionsReached:
    - g_memory_input_stream_new_from_data
    - fu_firmware_set_id
    - fu_firmware_add_image
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - g_steal_pointer
    - FU_USB_BOS_DESCRIPTOR
    - fu_firmware_new
    - fwupd_json_object_get_string
    - g_autoptr
    - fwupd_json_object_get_integer_with_default
    - g_base64_decode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_bos_descriptor_from_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_BOS_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:119,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:123,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:129,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:129,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:130,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:132,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:132,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:132,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 115
    functionDepth: 5
    functionLinenumber: 115
    functionLinenumberEnd: 135
    functionName: fu_usb_bos_descriptor_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    - FU_FIRMWARE
    - fu_firmware_get_image_by_id_bytes
    - FU_USB_BOS_DESCRIPTOR
    - fwupd_json_object_add_integer
    - g_bytes_get_size
    - g_autoptr
    - g_base64_encode
    - fwupd_json_object_add_string
    linkageType: ''
    returnType: void
    signature: void fu_usb_bos_descriptor_add_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:150,1
    - Dst: FU_IS_USB_BOS_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbBosDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    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:160,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:161,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:164,1
    - Dst: fu_usb_bos_hdr_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:169,1
    - Dst: fu_usb_bos_hdr_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:172,1
    - Dst: fu_usb_bos_hdr_get_dev_capability_type
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:173,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:177,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:177,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:178,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:180,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:185,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:188,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:194,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:195,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:195,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 154
    functionDepth: 4
    functionLinenumber: 154
    functionLinenumberEnd: 201
    functionName: fu_usb_bos_descriptor_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
    functionUses: 0
    functionsReached:
    - fu_usb_bos_hdr_parse_stream
    - fu_firmware_set_id
    - fu_firmware_add_image
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - FU_FIRMWARE_CLASS
    - fu_usb_bos_hdr_get_length
    - g_prefix_error_literal
    - FU_USB_BOS_DESCRIPTOR
    - fu_firmware_new
    - fu_usb_bos_hdr_get_dev_capability_type
    - g_autoptr
    - 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:206,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:207,1
    - Dst: fu_usb_bos_hdr_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:207,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:208,1
    - Dst: fu_usb_bos_hdr_set_dev_capability_type
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:210,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:211,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:213,1
    - Dst: fu_usb_bos_hdr_set_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:214,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 203
    functionDepth: 5
    functionLinenumber: 203
    functionLinenumberEnd: 218
    functionName: fu_usb_bos_descriptor_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - fu_firmware_get_image_by_id_bytes
    - g_steal_pointer
    - FU_USB_BOS_DESCRIPTOR
    - fu_usb_bos_hdr_set_length
    - fu_usb_bos_hdr_new
    - g_autoptr
    - fu_usb_bos_hdr_set_dev_capability_type
    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: 225
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 225
    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:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbBosDescriptorClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 235
    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:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:241,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:241,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:242,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:242,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:243,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbBosDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 244
    functionName: fu_usb_bos_descriptor_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_usb_bos_descriptor_init(FuUsbBosDescriptor *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:257,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:257,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:258,1
    - Dst: fu_firmware_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_usb_bos_hdr_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:262,1
    - Dst: fu_usb_bos_hdr_get_dev_capability_type
      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:266,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:267,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:268,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:268,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - st_hdr
    argTypes:
    - FuUsbBosHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 271
    functionName: fu_usb_bos_descriptor_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-bos-descriptor.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - fu_firmware_set_id
    - fu_firmware_add_image
    - FU_FIRMWARE
    - g_steal_pointer
    - fu_usb_bos_hdr_get_length
    - fu_firmware_new
    - fu_firmware_set_bytes
    - g_object_new
    - fu_usb_bos_hdr_get_dev_capability_type
    - g_autoptr
    linkageType: ''
    returnType: FuUsbBosDescriptor
    signature: 'FuUsbBosDescriptor *

      fu_usb_bos_descriptor_new(FuUsbBosHdr *st_hdr)'
  - 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: 1
    argNames:
    - pstore
    argTypes:
    - FuPathStore*
    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:
    - g_object_new
    - FU_EFIVARS
    linkageType: ''
    returnType: FuEfivars
    signature: 'FuEfivars *

      fu_efivars_new(FuPathStore *pstore)'
  - BBCount: 3
    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: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - data
    - error
    argTypes:
    - FuPkcs7*
    - gnutls_datum_t*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 61
    functionName: fu_pkcs7_parse_x509_certificate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pkcs7.c
    functionUses: 0
    functionsReached:
    - fu_x509_certificate_new
    - g_bytes_new
    - fu_firmware_add_image
    - FU_FIRMWARE
    - fu_firmware_parse_bytes
    - g_autoptr
    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:71,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:75,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:78,1
    - Dst: gnutls_pkcs7_init
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:81,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:83,1
    - Dst: gnutls_strerror
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:87,1
    - Dst: gnutls_pkcs7_import
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:93,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:95,1
    - Dst: gnutls_strerror
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:99,1
    - Dst: gnutls_pkcs7_get_crt_count
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:105,1
    - Dst: gnutls_pkcs7_get_crt_raw2
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:107,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:109,1
    - Dst: gnutls_strerror
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:113,1
    - Dst: fu_pkcs7_parse_x509_certificate
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:117,1
    - Dst: gnutls_free
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:118,1
    - Dst: gnutls_free
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:121,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 64
    functionDepth: 6
    functionLinenumber: 64
    functionLinenumberEnd: 130
    functionName: fu_pkcs7_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pkcs7.c
    functionUses: 0
    functionsReached:
    - fu_pkcs7_parse_x509_certificate
    - gnutls_free
    - FU_PKCS7
    - g_set_error
    - gnutls_pkcs7_import
    - g_set_error_literal
    - gnutls_pkcs7_init
    - fu_input_stream_read_byte_array
    - gnutls_strerror
    - gnutls_pkcs7_get_crt_raw2
    - gnutls_pkcs7_get_crt_count
    - g_auto
    - g_autoptr
    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:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:135,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:135,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:136,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-pkcs7.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPkcs7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: fu_pkcs7_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-pkcs7.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_size_max
    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:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPkcs7Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 144
    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: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_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: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
    functionUses: 958
    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:46,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:47,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:48,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: fu_ifwi_cpd_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IFWI_CPD_FIRMWARE
    - fu_xmlb_builder_insert_kx
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_ifwi_cpd_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:64,1
    - Dst: fu_struct_ifwi_cpd_manifest_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:67,1
    - Dst: fu_struct_ifwi_cpd_manifest_get_version_major
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:72,1
    - Dst: fu_struct_ifwi_cpd_manifest_get_version_minor
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:73,1
    - Dst: fu_struct_ifwi_cpd_manifest_get_version_hotfix
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:74,1
    - Dst: fu_struct_ifwi_cpd_manifest_get_version_build
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:75,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:76,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:76,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:79,1
    - Dst: fu_struct_ifwi_cpd_manifest_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:81,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:83,1
    - Dst: fu_struct_ifwi_cpd_manifest_get_header_length
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:93,1
    - Dst: fu_size_checked_inc_product
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:94,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:101,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:103,1
    - Dst: fu_struct_ifwi_cpd_manifest_ext_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:106,1
    - Dst: fu_struct_ifwi_cpd_manifest_ext_get_extension_type
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:109,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:112,1
    - Dst: fu_struct_ifwi_cpd_manifest_ext_get_extension_length
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:115,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:119,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:126,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:131,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:134,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:138,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:139,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:140,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:142,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 5
    argNames:
    - self
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuIfwiCpdFirmware*
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 148
    functionName: fu_ifwi_cpd_firmware_parse_manifest
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_ifwi_cpd_manifest_get_version_build
    - fu_firmware_set_offset
    - fu_size_checked_inc_product
    - fu_struct_ifwi_cpd_manifest_ext_get_extension_type
    - fu_firmware_add_image
    - g_prefix_error_literal
    - fu_struct_ifwi_cpd_manifest_ext_parse_stream
    - fu_struct_ifwi_cpd_manifest_ext_get_extension_length
    - fu_firmware_set_version_raw
    - FU_FIRMWARE
    - fu_firmware_set_idx
    - fu_struct_ifwi_cpd_manifest_get_header_length
    - fu_firmware_new
    - fu_struct_ifwi_cpd_manifest_get_version_minor
    - fu_struct_ifwi_cpd_manifest_get_size
    - fu_struct_ifwi_cpd_manifest_parse_stream
    - fu_partial_input_stream_new
    - fu_struct_ifwi_cpd_manifest_get_version_major
    - g_set_error
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - fu_firmware_add_image_gtype
    - fu_struct_ifwi_cpd_manifest_get_version_hotfix
    - fu_size_checked_inc
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ifwi_cpd_firmware_parse_manifest(FuIfwiCpdFirmware *self,\n\t\t\t\t
      \   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:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 157
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_IFWI_CPD_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:165,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:166,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:167,1
    - Dst: fu_struct_ifwi_cpd_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:172,1
    - Dst: fu_struct_ifwi_cpd_get_header_version
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:175,1
    - Dst: fu_struct_ifwi_cpd_get_entry_version
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:176,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:177,1
    - Dst: fu_struct_ifwi_cpd_get_partition_name
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:177,1
    - Dst: fu_struct_ifwi_cpd_get_num_of_entries
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:180,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:182,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:190,1
    - Dst: fu_struct_ifwi_cpd_get_header_length
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:190,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:195,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:195,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:197,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:200,1
    - Dst: fu_struct_ifwi_cpd_entry_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:202,1
    - Dst: fu_struct_ifwi_cpd_entry_get_name
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:207,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:208,1
    - Dst: fu_struct_ifwi_cpd_entry_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:211,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:213,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:217,1
    - Dst: fu_struct_ifwi_cpd_entry_get_length
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:219,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:222,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:225,1
    - Dst: fu_struct_ifwi_cpd_entry_get_length
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:230,1
    - Dst: fu_ifwi_cpd_firmware_parse_manifest
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:232,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:241,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:243,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 159
    functionDepth: 5
    functionLinenumber: 159
    functionLinenumberEnd: 249
    functionName: fu_ifwi_cpd_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_ifwi_cpd_get_partition_name
    - fu_firmware_set_offset
    - fu_ifwi_cpd_firmware_parse_manifest
    - fu_firmware_add_image
    - g_prefix_error_literal
    - fu_struct_ifwi_cpd_get_entry_version
    - fu_struct_ifwi_cpd_get_header_length
    - GET_PRIVATE
    - fu_struct_ifwi_cpd_entry_get_offset
    - fu_firmware_set_idx
    - fu_struct_ifwi_cpd_entry_get_length
    - fu_firmware_new
    - fu_struct_ifwi_cpd_entry_parse_stream
    - fu_struct_ifwi_cpd_parse_stream
    - fu_struct_ifwi_cpd_get_header_version
    - fu_partial_input_stream_new
    - fu_struct_ifwi_cpd_get_num_of_entries
    - fu_firmware_set_id
    - g_set_error
    - fu_firmware_parse_stream
    - fu_struct_ifwi_cpd_entry_get_name
    - FU_IFWI_CPD_FIRMWARE
    - fu_size_checked_inc
    - g_autoptr
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_IFWI_CPD_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:254,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:255,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:257,1
    - Dst: fu_struct_ifwi_cpd_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:257,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:258,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:258,1
    - Dst: fu_struct_ifwi_cpd_set_num_of_entries
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:261,1
    - Dst: fu_struct_ifwi_cpd_set_header_version
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:262,1
    - Dst: fu_struct_ifwi_cpd_set_entry_version
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:263,1
    - Dst: fu_struct_ifwi_cpd_set_checksum
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:264,1
    - Dst: fu_struct_ifwi_cpd_set_partition_name
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:265,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:265,1
    - Dst: fu_struct_ifwi_cpd_set_crc32
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:266,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:269,1
    - Dst: fu_size_checked_inc_product
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:271,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:274,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:275,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:277,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:279,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:282,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:283,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:283,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:284,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:291,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:292,1
    - Dst: fu_struct_ifwi_cpd_entry_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:292,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:295,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:296,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:300,1
    - Dst: fu_struct_ifwi_cpd_entry_set_name
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:303,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:303,1
    - Dst: fu_struct_ifwi_cpd_entry_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:305,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:305,1
    - Dst: fu_struct_ifwi_cpd_entry_set_length
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:306,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:306,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:307,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:312,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:313,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:314,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:317,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:321,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 322
    functionName: fu_ifwi_cpd_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_ifwi_cpd_entry_set_length
    - fu_firmware_set_offset
    - fu_firmware_get_size
    - fu_size_checked_inc_product
    - g_ptr_array_index
    - fu_struct_ifwi_cpd_set_entry_version
    - fu_firmware_get_id
    - fu_byte_array_append_bytes
    - fu_struct_ifwi_cpd_entry_new
    - fu_firmware_get_bytes
    - fu_firmware_get_offset
    - fu_firmware_get_images
    - fu_struct_ifwi_cpd_entry_set_name
    - fu_firmware_get_idx
    - GET_PRIVATE
    - fu_struct_ifwi_cpd_set_num_of_entries
    - fu_struct_ifwi_cpd_set_partition_name
    - fu_struct_ifwi_cpd_set_crc32
    - fu_struct_ifwi_cpd_new
    - fu_struct_ifwi_cpd_set_checksum
    - fu_byte_array_append_array
    - g_set_error
    - g_steal_pointer
    - g_prefix_error
    - fu_struct_ifwi_cpd_set_header_version
    - FU_IFWI_CPD_FIRMWARE
    - fu_struct_ifwi_cpd_entry_set_offset
    - g_bytes_get_size
    - fu_size_checked_inc
    - g_autoptr
    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:327,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:328,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:332,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:335,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:339,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:342,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 349
    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
    - fu_strtoull
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ifwi_cpd_firmware_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint64
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:354,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 355
    functionName: fu_ifwi_cpd_firmware_convert_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint64
    - fu_firmware_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ifwi_cpd_firmware_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:360,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:360,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:361,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:361,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:362,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:362,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:363,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIfwiCpdFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 364
    functionName: fu_ifwi_cpd_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_set_size_max
    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:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIfwiCpdFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 376
    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:388,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 389
    functionName: fu_ifwi_cpd_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifwi-cpd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 962
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:134,1
    - Dst: libusb_strerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:134,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - rc
    - error
    argTypes:
    - gint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 137
    functionName: fu_usb_device_libusb_error_to_gerror
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - libusb_strerror
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_libusb_error_to_gerror(gint rc, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_error_map_entry_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:151,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - status
    - error
    argTypes:
    - gint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 152
    functionName: fu_usb_device_libusb_status_to_gerror
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_error_map_entry_to_gerror
    - G_N_ELEMENTS
    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:167,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:168,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 170
    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:175,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:179,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:179,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:180,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: fu_usb_device_not_open_error
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_vid
    - fu_device_get_pid
    - FU_DEVICE
    - g_set_error
    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:187,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:188,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:191,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:195,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:196,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 198
    functionName: fu_usb_device_invalidate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - FU_DEVICE_CLASS
    - g_ptr_array_set_size
    - GET_PRIVATE
    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:203,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:206,1
    - Dst: libusb_ref_device
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - usb_device
    argTypes:
    - FuUsbDevice*
    - struct libusb_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 209
    functionName: fu_usb_device_set_dev
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - libusb_ref_device
    - g_clear_pointer
    - GET_PRIVATE
    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:214,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 215
    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:220,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 221
    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:226,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:227,1
    - Dst: g_value_set_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:230,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:233,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: 236
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 236
    functionName: fu_usb_device_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_value_set_pointer
    - FU_USB_DEVICE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    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:241,1
    - Dst: fu_usb_device_set_dev
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:244,1
    - Dst: g_value_get_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:244,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:247,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: 250
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 250
    functionName: fu_usb_device_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - fu_usb_device_set_dev
    - g_value_get_pointer
    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:255,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:256,1
    - Dst: libusb_close
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:259,1
    - Dst: libusb_unref_device
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:261,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:263,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:264,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:265,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:266,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:267,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 270
    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
    - libusb_close
    - FU_USB_DEVICE
    - GET_PRIVATE
    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:275,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:277,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:278,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:279,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:280,1
    - Dst: fu_device_set_acquiesce_delay
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:281,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:281,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:282,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:282,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:283,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:283,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:287,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:287,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:289,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:291,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:291,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 295
    functionName: fu_usb_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_register_private_flag
    - fu_device_set_acquiesce_delay
    - g_signal_connect
    - FU_DEVICE
    - G_CALLBACK
    - fu_device_retry_add_recovery
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    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:310,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:311,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - claim_retry_count
    argTypes:
    - FuUsbDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: fu_usb_device_set_claim_retry_count
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    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:328,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:329,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 331
    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:345,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:346,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - configuration
    argTypes:
    - FuUsbDevice*
    - gint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 348
    functionName: fu_usb_device_set_configuration
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_return_if_fail
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    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:362,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:365,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:365,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:368,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:372,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:378,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - device
    - number
    argTypes:
    - FuUsbDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 381
    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_add
    - FU_IS_USB_DEVICE
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    - GET_PRIVATE
    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:389,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:389,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:392,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:394,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:407,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:410,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:414,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:415,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:416,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:418,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:421,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:423,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:427,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:427,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:428,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:428,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 383
    functionDepth: 4
    functionLinenumber: 383
    functionLinenumberEnd: 438
    functionName: fu_usb_device_query_hub
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_str
    - g_prefix_error_literal
    - fu_dump_raw
    - FU_DEVICE
    - fu_memread_uint8_safe
    - fu_device_build_instance_id_full
    - g_string_new
    - fu_usb_device_get_spec
    - g_string_append_printf
    - fu_common_align_up
    - g_autoptr
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_query_hub(FuUsbDevice *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:443,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:445,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:445,1
    - Dst: fu_context_get_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:446,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:451,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:451,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:454,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:458,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:458,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:459,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:459,1
    - Dst: libusb_open
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:465,1
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:469,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:469,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:471,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:477,1
    - Dst: libusb_wrap_sys_device
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:478,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:480,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: 26
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    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
    - fu_usb_device_libusb_error_to_gerror
    - g_set_error_literal
    - libusb_open
    - fu_device_get_context
    - FU_DEVICE
    - fu_device_get_vid
    - fu_context_get_data
    - fu_device_has_flag
    - fu_udev_device_get_io_channel
    - fu_io_channel_unix_get_fd
    - libusb_close
    - FU_UDEV_DEVICE
    - libusb_wrap_sys_device
    - GET_PRIVATE
    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
    - libusb_close
    - fu_device_has_flag
    - GET_PRIVATE
    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:
    - g_return_val_if_fail
    - fu_usb_device_libusb_error_to_gerror
    - libusb_set_configuration
    - fu_usb_device_not_open_error
    - FU_DEVICE
    - fu_device_has_flag
    - FU_IS_USB_DEVICE
    - libusb_get_configuration
    - GET_PRIVATE
    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_literal
      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_literal
      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
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:588,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:588,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 590
    functionName: fu_usb_device_open
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_usb_device_claim_interface
    - g_prefix_error_literal
    - g_prefix_error
    - fu_usb_device_open_internal
    - FU_DEVICE
    - fu_device_has_flag
    - fu_device_retry_add_recovery
    - FU_IS_USB_DEVICE
    - fu_usb_device_set_configuration_internal
    - FU_USB_DEVICE
    - FU_DEVICE_CLASS
    - g_ptr_array_index
    - GET_PRIVATE
    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:605,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:606,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 609
    functionName: fu_usb_device_get_bus
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - FU_DEVICE
    - fu_device_has_flag
    - 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:624,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:625,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 628
    functionName: fu_usb_device_get_address
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - FU_DEVICE
    - fu_device_has_flag
    - 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:643,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:644,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 646
    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:661,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:662,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 664
    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: 672
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 672
    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:678,1
    - Dst: fu_usb_device_build_parent_port_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:680,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:681,1
    - Dst: libusb_get_port_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - dev
    argTypes:
    - GString*
    - libusb_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 682
    functionName: fu_usb_device_build_parent_port_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - libusb_get_port_number
    - g_string_append_printf
    - fu_usb_device_build_parent_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:690,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:691,1
    - Dst: libusb_get_bus_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:691,1
    - Dst: fu_usb_device_build_parent_port_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:692,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:693,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct libusb_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 684
    functionDepth: 2
    functionLinenumber: 684
    functionLinenumberEnd: 695
    functionName: fu_usb_device_build_physical_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_build_parent_port_number
    - g_string_free
    - g_string_new
    - libusb_get_bus_number
    - g_string_append_printf
    - g_string_truncate
    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:700,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:702,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:702,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:703,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:706,1
    - Dst: fu_usb_device_get_manufacturer_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:707,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:710,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:711,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:713,1
    - Dst: g_strchomp
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:713,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:715,1
    - Dst: fu_usb_device_get_bus
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:717,1
    - Dst: fu_usb_device_get_address
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:718,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:724,1
    - Dst: fu_usb_device_get_product_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:725,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:728,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:729,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:731,1
    - Dst: g_strchomp
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:731,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:733,1
    - Dst: fu_usb_device_get_bus
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:734,1
    - Dst: fu_usb_device_get_address
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:735,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:741,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:742,1
    - Dst: fu_usb_device_get_serial_number_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:743,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:746,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:747,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:749,1
    - Dst: g_strchomp
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:749,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:751,1
    - Dst: fu_usb_device_get_bus
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:753,1
    - Dst: fu_usb_device_get_address
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:754,1
    - Dst: fu_usb_device_get_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:760,1
    - Dst: fu_usb_device_query_hub
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:761,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 697
    functionDepth: 5
    functionLinenumber: 697
    functionLinenumberEnd: 767
    functionName: fu_usb_device_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_get_bus
    - fu_device_get_name
    - fu_device_get_serial
    - fu_usb_device_get_address
    - g_debug
    - fu_usb_device_get_manufacturer_index
    - fu_usb_device_get_class
    - fu_device_set_vendor
    - fu_usb_device_get_product_index
    - fu_device_get_vendor
    - fu_usb_device_get_string_descriptor
    - fu_device_set_serial
    - fu_device_set_name
    - FU_USB_DEVICE
    - g_strchomp
    - g_return_val_if_fail
    - fu_usb_device_query_hub
    - fu_usb_device_get_serial_number_index
    - fu_device_has_private_flag
    - FU_IS_USB_DEVICE
    - g_autoptr
    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:772,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:773,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:776,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:776,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:780,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:782,1
    - Dst: fu_device_get_icons
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:787,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:789,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:792,1
    - Dst: fu_usb_interface_get_subclass
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:793,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:794,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:798,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:799,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:802,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:803,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:806,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:807,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 813
    functionName: fu_usb_device_ready
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_get_interfaces
    - fu_device_get_icons
    - fu_device_add_icon
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_usb_interface_get_class
    - fu_device_has_flag
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_interface_get_subclass
    - g_ptr_array_index
    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:818,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:819,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:821,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:821,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:822,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:827,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:829,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:832,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:833,1
    - Dst: fu_usb_device_release_interface
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:836,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:840,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:841,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:842,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:846,1
    - Dst: fu_usb_device_close_internal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:855,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:859,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 815
    functionDepth: 3
    functionLinenumber: 815
    functionLinenumberEnd: 860
    functionName: fu_usb_device_close
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_debug
    - fu_usb_device_release_interface
    - fu_device_has_flag
    - g_error_matches
    - g_warning
    - fu_usb_device_close_internal
    - FU_IS_USB_DEVICE
    - FU_USB_DEVICE
    - g_autoptr
    - FU_DEVICE_CLASS
    - g_ptr_array_index
    - GET_PRIVATE
    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:866,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:867,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:868,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:872,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:872,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:875,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:883,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:886,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:887,1
    - Dst: FU_IS_USB_DEVICE_MS_DS20
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:890,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:894,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:894,1
    - Dst: fu_usb_device_ds20_apply_to_device
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:900,1
    - Dst: FU_USB_DEVICE_DS20
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:900,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:901,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:904,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:904,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - self
    - bos
    - error
    argTypes:
    - FuUsbDevice*
    - FuUsbBosDescriptor*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 862
    functionDepth: 5
    functionLinenumber: 862
    functionLinenumberEnd: 908
    functionName: fu_usb_device_probe_bos_descriptor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE_DS20
    - g_debug
    - fu_firmware_new_from_gtypes
    - FU_IS_USB_DEVICE_MS_DS20
    - FU_FIRMWARE
    - fu_device_add_private_flag
    - g_prefix_error_literal
    - fu_firmware_to_string
    - FU_DEVICE
    - fu_usb_device_ds20_apply_to_device
    - g_autoptr
    - fu_firmware_get_image_by_id_stream
    - fu_device_locker_new_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_probe_bos_descriptor(FuUsbDevice *self, FuUsbBosDescriptor
      *bos, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:918,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: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:922,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:922,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:922,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:924,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:928,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:928,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:930,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:930,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:933,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:936,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:940,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:940,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:940,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:942,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:942,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:946,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:946,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:946,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:947,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:948,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:955,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:956,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:959,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:959,1
    - Dst: fu_device_event_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:965,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:968,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - self
    - basename
    - error
    argTypes:
    - FuUsbDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 910
    functionDepth: 3
    functionLinenumber: 910
    functionLinenumberEnd: 969
    functionName: fu_usb_device_load_descriptor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_device_get_backend_id
    - fu_device_load_event
    - g_set_error
    - fu_device_event_get_bytes
    - g_steal_pointer
    - fu_device_get_context
    - g_file_get_contents
    - fwupd_error_convert
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_save_event
    - fu_device_has_flag
    - g_file_test
    - g_bytes_new_take
    - fu_device_event_set_bytes
    - g_autoptr
    - g_build_filename
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_usb_device_load_descriptor(FuUsbDevice *self, const gchar *basename, GError
      **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:974,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:975,1
    - Dst: fu_linear_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:975,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:976,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:977,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:979,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:984,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:985,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:986,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:988,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:988,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:994,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:996,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:997,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:997,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - blob
    - error
    argTypes:
    - FuUsbDevice*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 971
    functionDepth: 5
    functionLinenumber: 971
    functionLinenumberEnd: 1002
    functionName: fu_usb_device_parse_bos_descriptor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_linear_firmware_new
    - g_steal_pointer
    - g_ptr_array_add
    - fu_firmware_get_images
    - g_object_ref
    - fu_firmware_parse_bytes
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_parse_bos_descriptor(FuUsbDevice *self, GBytes
      *blob, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1007,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1018,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1021,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1022,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1026,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1029,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1029,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1033,1
    - Dst: libusb_get_bos_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1037,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1038,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1047,1
    - Dst: fu_usb_bos_hdr_parse
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1050,1
    - Dst: fu_usb_bos_descriptor_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1057,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1060,1
    - Dst: libusb_free_bos_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1062,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1064,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1065,1
    - Dst: fu_usb_device_load_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1068,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1070,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1071,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1072,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1072,1
    - Dst: fu_usb_device_parse_bos_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1076,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1004
    functionDepth: 6
    functionLinenumber: 1004
    functionLinenumberEnd: 1083
    functionName: fu_usb_device_ensure_bos_descriptors
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_bos_hdr_parse
    - fu_usb_device_load_descriptor
    - libusb_get_bos_descriptor
    - g_set_error
    - fu_usb_device_libusb_error_to_gerror
    - fu_device_locker_new
    - g_ptr_array_add
    - g_steal_pointer
    - fu_usb_bos_descriptor_new
    - fu_usb_device_not_open_error
    - FU_DEVICE
    - g_error_matches
    - fu_usb_device_get_spec
    - libusb_free_bos_descriptor
    - fu_usb_device_parse_bos_descriptor
    - g_propagate_error
    - g_autoptr
    - GET_PRIVATE
    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:1088,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1089,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1092,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1092,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1093,1
    - Dst: fu_usb_device_ensure_bos_descriptors
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1097,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1098,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1099,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1100,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1103,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1103,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1104,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1108,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1109,1
    - Dst: fu_usb_bos_descriptor_get_capability
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1111,1
    - Dst: fu_usb_device_probe_bos_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1113,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1115,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1117,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1085
    functionDepth: 7
    functionLinenumber: 1085
    functionLinenumberEnd: 1123
    functionName: fu_usb_device_probe_bos_descriptors
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_usb_bos_descriptor_get_capability
    - g_set_error_literal
    - g_steal_pointer
    - fwupd_error_convert
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_usb_device_probe_bos_descriptor
    - fu_usb_device_ensure_bos_descriptors
    - g_error_matches
    - g_warning
    - g_propagate_error
    - g_autoptr
    - g_ptr_array_index
    - GET_PRIVATE
    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:1128,1
    - Dst: libusb_get_device_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1133,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1135,1
    - Dst: libusb_strerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1139,1
    - Dst: libusb_get_bus_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1142,1
    - Dst: libusb_get_device_address
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1143,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1144,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1144,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1145,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1145,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1154,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1154,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1157,1
    - Dst: fu_udev_device_read_property
      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_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1165,1
    - Dst: fu_usb_device_ensure_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1170,1
    - Dst: fu_usb_device_ensure_bos_descriptors
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1172,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1176,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1177,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1177,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1178,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1178,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1179,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1179,1
    - Dst: fu_usb_device_build_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1184,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1185,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1185,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1188,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1188,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1188,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1189,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1189,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1125
    functionDepth: 7
    functionLinenumber: 1125
    functionLinenumberEnd: 1194
    functionName: fu_usb_device_probe_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_device_set_physical_id
    - libusb_get_device_address
    - fu_udev_device_add_open_flag
    - GET_PRIVATE
    - fu_usb_device_build_physical_id
    - g_path_get_basename
    - fu_udev_device_get_sysfs_path
    - fu_device_set_vid
    - fu_strtoull
    - FU_DEVICE
    - libusb_get_device_descriptor
    - fu_usb_device_ensure_bos_descriptors
    - fu_udev_device_read_property
    - libusb_get_bus_number
    - FU_UDEV_DEVICE
    - fu_usb_device_ensure_interfaces
    - libusb_strerror
    - g_set_error
    - fu_udev_device_set_device_file
    - fu_device_set_pid
    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:1199,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1201,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1202,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1205,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1205,1
    - Dst: fu_usb_device_probe_internal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1206,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1211,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1211,1
    - Dst: fu_usb_device_get_release
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1214,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1216,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1217,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1217,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1219,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1220,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1224,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1225,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1232,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1241,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1242,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1255,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1257,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1261,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1262,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1262,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1263,1
    - Dst: fu_usb_interface_get_subclass
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1263,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1264,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1264,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1265,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1272,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1280,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1292,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1293,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1293,1
    - Dst: g_strrstr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1295,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1299,1
    - Dst: fu_device_add_parent_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1301,1
    - Dst: fu_usb_device_probe_bos_descriptors
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1306,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1307,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1308,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1310,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1196
    functionDepth: 8
    functionLinenumber: 1196
    functionLinenumberEnd: 1317
    functionName: fu_usb_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_get_interfaces
    - fu_device_get_physical_id
    - fu_device_set_version_format
    - g_ptr_array_index
    - fu_usb_device_probe_bos_descriptors
    - g_debug
    - g_prefix_error_literal
    - fu_usb_interface_get_protocol
    - fu_device_has_flag
    - fu_device_build_instance_id_full
    - fu_device_get_version_format
    - fu_device_set_version_raw
    - fu_device_build_vendor_id_u16
    - fu_usb_device_get_release
    - FU_DEVICE
    - fu_device_get_vid
    - g_warning
    - FU_USB_DEVICE
    - fu_usb_interface_get_subclass
    - g_strdup
    - g_strcmp0
    - fu_device_add_instance_u8
    - g_strrstr
    - fu_usb_device_probe_internal
    - fu_device_has_private_flag
    - fu_usb_interface_get_class
    - fu_device_has_private_flag_quark
    - fu_device_add_parent_physical_id
    - g_error_matches
    - g_autoptr
    - fu_device_add_instance_u16
    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:1332,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1333,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1329
    functionDepth: 0
    functionLinenumber: 1329
    functionLinenumberEnd: 1335
    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:1350,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1351,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1347
    functionDepth: 0
    functionLinenumber: 1347
    functionLinenumberEnd: 1353
    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:1368,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1369,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1371
    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:1376,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1377,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - iface
    argTypes:
    - FuUsbDevice*
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1373
    functionDepth: 0
    functionLinenumber: 1373
    functionLinenumberEnd: 1378
    functionName: fu_usb_device_add_interface_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_ptr_array_add
    - GET_PRIVATE
    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:1383,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1384,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1385,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1386,1
    - Dst: fu_usb_device_set_dev
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1388,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1392,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1396,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1397,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1397,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1404,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1405,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1405,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1412,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1413,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1413,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1419,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1420,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1420,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - device
    - device_donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1380
    functionDepth: 1
    functionLinenumber: 1380
    functionLinenumberEnd: 1423
    functionName: fu_usb_device_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_add
    - memcpy
    - g_object_ref
    - FU_USB_DEVICE
    - fu_usb_device_set_dev
    - g_ptr_array_index
    - GET_PRIVATE
    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:1428,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1425
    functionDepth: 1
    functionLinenumber: 1425
    functionLinenumberEnd: 1429
    functionName: fu_usb_device_convert_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_usb_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1471,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1477,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1477,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1478,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1481,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1481,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1482,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1482,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1482,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1484,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1485,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1505,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1505,1
    - Dst: fu_device_load_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: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1511,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1513,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1514,1
    - Dst: fu_usb_device_libusb_status_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1516,1
    - Dst: fu_device_event_copy_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1517,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1521,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1521,1
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1522,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1530,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1533,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1533,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1533,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1535,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1535,1
    - Dst: libusb_control_transfer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1545,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1554,1
    - Dst: fu_device_event_set_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1556,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1565,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    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: 1569
      start: 1456
    functionDepth: 3
    functionLinenumber: 1456
    functionLinenumberEnd: 1569
    functionName: fu_usb_device_control_transfer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - fu_usb_device_libusb_error_to_gerror
    - fu_device_event_set_i64
    - fu_device_get_context
    - g_strdup_printf
    - fu_device_event_get_i64
    - fu_device_save_event
    - fu_device_has_flag
    - fu_usb_device_libusb_status_to_gerror
    - fu_device_event_set_data
    - GET_PRIVATE
    - FU_DEVICE
    - memset
    - fu_device_event_copy_data
    - g_return_val_if_fail
    - libusb_control_transfer
    - fu_device_has_private_flag
    - fu_usb_device_not_open_error
    - FU_IS_USB_DEVICE
    - g_base64_encode
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1603,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1609,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1609,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1610,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1613,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1613,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1614,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1614,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1614,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1616,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1617,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1627,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1627,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1630,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1630,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1633,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1635,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1636,1
    - Dst: fu_usb_device_libusb_status_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1638,1
    - Dst: fu_device_event_copy_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1639,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1643,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1643,1
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1644,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1652,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1655,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1655,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1655,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1657,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1657,1
    - Dst: libusb_bulk_transfer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1661,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1662,1
    - Dst: fu_device_event_set_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1664,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1672,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    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: 1676
      start: 1593
    functionDepth: 3
    functionLinenumber: 1593
    functionLinenumberEnd: 1676
    functionName: fu_usb_device_bulk_transfer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - fu_usb_device_libusb_error_to_gerror
    - fu_device_event_set_i64
    - fu_device_get_context
    - g_strdup_printf
    - fu_device_event_get_i64
    - fu_device_save_event
    - fu_device_has_flag
    - fu_usb_device_libusb_status_to_gerror
    - fu_device_event_set_data
    - libusb_bulk_transfer
    - GET_PRIVATE
    - FU_DEVICE
    - memset
    - fu_device_event_copy_data
    - g_return_val_if_fail
    - fu_device_has_private_flag
    - fu_usb_device_not_open_error
    - FU_IS_USB_DEVICE
    - g_base64_encode
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1707,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1713,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1713,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1714,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1717,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1717,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1718,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1718,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1718,1
    - Dst: g_base64_encode
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1720,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1721,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1731,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1731,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1734,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1734,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1737,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1739,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1740,1
    - Dst: fu_usb_device_libusb_status_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1742,1
    - Dst: fu_device_event_copy_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1743,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1747,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1747,1
    - Dst: memset
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1748,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1756,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1759,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1759,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1759,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1761,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1761,1
    - Dst: libusb_interrupt_transfer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1765,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1766,1
    - Dst: fu_device_event_set_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1768,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1776,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    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: 1780
      start: 1697
    functionDepth: 3
    functionLinenumber: 1697
    functionLinenumberEnd: 1780
    functionName: fu_usb_device_interrupt_transfer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - fu_usb_device_libusb_error_to_gerror
    - fu_device_event_set_i64
    - fu_device_get_context
    - g_strdup_printf
    - libusb_interrupt_transfer
    - fu_device_event_get_i64
    - fu_device_save_event
    - fu_device_has_flag
    - fu_usb_device_libusb_status_to_gerror
    - fu_device_event_set_data
    - GET_PRIVATE
    - FU_DEVICE
    - memset
    - fu_device_event_copy_data
    - g_return_val_if_fail
    - fu_device_has_private_flag
    - fu_usb_device_not_open_error
    - FU_IS_USB_DEVICE
    - g_base64_encode
    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:1802,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1805,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1805,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1806,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1809,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1809,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1812,1
    - Dst: libusb_reset_device
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1814,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1817,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1799
    functionDepth: 2
    functionLinenumber: 1799
    functionLinenumberEnd: 1818
    functionName: fu_usb_device_reset
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - libusb_reset_device
    - fu_usb_device_libusb_error_to_gerror
    - fu_usb_device_not_open_error
    - FU_DEVICE
    - fu_device_has_flag
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_reset(FuUsbDevice *self, GError **error)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1823,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1825,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1826,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1829,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1830,1
    - Dst: fu_usb_device_hdr_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1838,1
    - Dst: fu_usb_device_hdr_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1841,1
    - Dst: fu_usb_device_hdr_get_usb
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1843,1
    - Dst: fu_usb_device_hdr_get_device_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1844,1
    - Dst: fu_usb_device_hdr_get_device_sub_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1845,1
    - Dst: fu_usb_device_hdr_get_device_protocol
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1846,1
    - Dst: fu_usb_device_hdr_get_max_packet_size0
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1847,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1848,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1848,1
    - Dst: fu_usb_device_hdr_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1848,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1849,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1849,1
    - Dst: fu_usb_device_hdr_get_product
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1849,1
    - Dst: fu_usb_device_hdr_get_device
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1850,1
    - Dst: fu_usb_device_hdr_get_manufacturer_idx
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1851,1
    - Dst: fu_usb_device_hdr_get_product_idx
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1852,1
    - Dst: fu_usb_device_hdr_get_serial_number_idx
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1853,1
    - Dst: fu_usb_device_hdr_get_num_configurations
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1854,1
    - Dst: fu_usb_device_hdr_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1856,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1857,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1859,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1860,1
    - Dst: fu_usb_base_hdr_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1863,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1865,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1867,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1869,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1869,1
    - Dst: fu_usb_base_hdr_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1874,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1875,1
    - Dst: fu_usb_base_hdr_get_descriptor_type
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1883,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1885,1
    - Dst: fu_usb_config_descriptor_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1886,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1887,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1887,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:1893,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1895,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1895,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1896,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1896,1
    - Dst: fu_usb_device_add_interface_internal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1902,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1905,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1907,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1908,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1909,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1910,1
    - Dst: fu_usb_base_hdr_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1912,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1916,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1916,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1917,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1920,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1921,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1921,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1926,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1928,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1928,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1929,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1929,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1936,1
    - Dst: fu_usb_endpoint_get_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1937,1
    - Dst: fu_usb_interface_add_endpoint
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1939,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1942,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1943,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1944,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1944,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1951,1
    - Dst: fu_usb_hid_descriptor_set_iface_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1953,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1955,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1956,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1957,1
    - Dst: fu_usb_descriptor_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1960,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1961,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1965,1
    - Dst: fu_usb_base_hdr_get_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1965,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 97
    argCount: 3
    argNames:
    - self
    - blob
    - error
    argTypes:
    - FuUsbDevice*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1820
    functionDepth: 5
    functionLinenumber: 1820
    functionLinenumberEnd: 1971
    functionName: fu_usb_device_parse_descriptor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_add_interface_internal
    - fu_usb_device_hdr_get_usb
    - g_object_new
    - fu_firmware_get_size
    - fu_usb_config_descriptor_new
    - fu_usb_device_hdr_get_max_packet_size0
    - fu_usb_device_hdr_get_product
    - fu_usb_device_hdr_get_device_class
    - fu_usb_hid_descriptor_set_iface_number
    - fu_usb_interface_get_number
    - g_debug
    - fu_firmware_add_image
    - fu_usb_base_hdr_parse_bytes
    - g_set_error_literal
    - fu_firmware_parse_bytes
    - fu_usb_device_hdr_get_manufacturer_idx
    - fu_usb_base_hdr_get_length
    - g_propagate_error
    - GET_PRIVATE
    - fu_usb_device_hdr_get_product_idx
    - fu_usb_device_hdr_get_length
    - fu_usb_device_hdr_get_num_configurations
    - fu_device_set_vid
    - FU_FIRMWARE
    - fu_usb_endpoint_get_number
    - fu_usb_base_hdr_get_descriptor_type
    - FU_DEVICE
    - fu_usb_descriptor_kind_to_string
    - fu_usb_device_hdr_parse_bytes
    - fu_usb_device_hdr_get_serial_number_idx
    - fu_usb_device_hdr_get_device
    - fu_usb_device_hdr_get_device_protocol
    - g_set_error
    - g_steal_pointer
    - g_ptr_array_add
    - g_set_object
    - fu_usb_interface_get_class
    - fu_usb_interface_add_endpoint
    - g_error_matches
    - g_bytes_get_size
    - fu_device_set_pid
    - fu_size_checked_inc
    - fu_usb_device_hdr_get_vendor
    - g_autoptr
    - fu_usb_device_hdr_get_device_sub_class
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_parse_descriptor(FuUsbDevice *self, GBytes *blob,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1976,1
    - Dst: libusb_get_active_config_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1986,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1987,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1993,1
    - Dst: fu_usb_interface_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1993,1
    - Dst: fu_usb_device_add_interface_internal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1996,1
    - Dst: libusb_free_config_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:1999,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2001,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2002,1
    - Dst: fu_usb_device_load_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2004,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2006,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2007,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2007,1
    - Dst: fu_usb_device_parse_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2011,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 1973
    functionDepth: 7
    functionLinenumber: 1973
    functionLinenumberEnd: 2018
    functionName: fu_usb_device_ensure_interfaces
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - fu_usb_device_load_descriptor
    - fu_usb_interface_new
    - fu_usb_device_libusb_error_to_gerror
    - g_steal_pointer
    - fu_usb_device_add_interface_internal
    - libusb_free_config_descriptor
    - g_error_matches
    - fu_usb_device_parse_descriptor
    - g_propagate_error
    - g_autoptr
    - libusb_get_active_config_descriptor
    - GET_PRIVATE
    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:2034,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2036,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2036,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2037,1
    - Dst: fu_usb_device_ensure_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2039,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2041,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2042
      start: 2031
    functionDepth: 8
    functionLinenumber: 2031
    functionLinenumberEnd: 2042
    functionName: fu_usb_device_get_interfaces
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_ptr_array_ref
    - FU_IS_USB_DEVICE
    - fu_usb_device_ensure_interfaces
    - GET_PRIVATE
    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:2068,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2070,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2070,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2071,1
    - Dst: fu_usb_device_ensure_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2074,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2077,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2078,1
    - Dst: fu_usb_interface_get_subclass
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2080,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2082,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2084,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2088,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: 2097
      start: 2061
    functionDepth: 8
    functionLinenumber: 2061
    functionLinenumberEnd: 2097
    functionName: fu_usb_device_get_interface
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    - fu_usb_interface_get_protocol
    - fu_usb_interface_get_class
    - g_object_ref
    - FU_IS_USB_DEVICE
    - fu_usb_device_ensure_interfaces
    - fu_usb_interface_get_subclass
    - g_ptr_array_index
    - GET_PRIVATE
    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:2114,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2120,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2120,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2121,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2124,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2124,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2125,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2125,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2125,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2127,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2131,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2131,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2133,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2135,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2135,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2138,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2140,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2143,1
    - Dst: fu_usb_device_libusb_status_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2145,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2148,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2151,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2151,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2151,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2154,1
    - Dst: libusb_get_string_descriptor_ascii
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2158,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2160,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2165,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2165,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2165,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2167,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2167,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2168,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2171,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 3
    argNames:
    - self
    - desc_index
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2172
      start: 2111
    functionDepth: 3
    functionLinenumber: 2111
    functionLinenumberEnd: 2172
    functionName: fu_usb_device_get_string_descriptor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - fu_context_has_flag
    - libusb_get_string_descriptor_ascii
    - fu_device_load_event
    - fu_usb_device_libusb_error_to_gerror
    - fu_device_get_context
    - g_strdup_printf
    - fu_device_event_get_i64
    - fu_device_save_event
    - fu_device_has_flag
    - fu_usb_device_libusb_status_to_gerror
    - fu_device_event_set_data
    - GET_PRIVATE
    - g_bytes_get_data
    - fu_device_event_get_bytes
    - FU_DEVICE
    - g_return_val_if_fail
    - g_strndup
    - fu_usb_device_not_open_error
    - g_bytes_get_size
    - FU_IS_USB_DEVICE
    - g_autoptr
    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:2196,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2196,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2197,1
    - Dst: fu_usb_device_get_string_descriptor_bytes_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2198,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: 2199
      start: 2190
    functionDepth: 1
    functionLinenumber: 2190
    functionLinenumberEnd: 2199
    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_usb_device_get_string_descriptor_bytes_full
    - FU_IS_USB_DEVICE
    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:2222,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2226,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2228,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2228,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2229,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2233,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2233,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2234,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2234,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2234,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2236,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2244,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2244,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2246,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2248,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2248,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2251,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2253,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2256,1
    - Dst: fu_usb_device_libusb_status_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2258,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2261,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2264,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2268,1
    - Dst: libusb_get_string_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2271,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2273,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2278,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2278,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2278,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2280,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2280,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2281,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2285,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: 2286
      start: 2215
    functionDepth: 3
    functionLinenumber: 2215
    functionLinenumberEnd: 2286
    functionName: fu_usb_device_get_string_descriptor_bytes_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - fu_context_has_flag
    - g_bytes_new
    - fu_device_load_event
    - fu_usb_device_libusb_error_to_gerror
    - fu_device_get_context
    - g_strdup_printf
    - g_autoptr
    - fu_device_event_get_i64
    - fu_device_save_event
    - fu_device_has_flag
    - fu_usb_device_libusb_status_to_gerror
    - fu_device_event_set_data
    - GET_PRIVATE
    - fu_device_event_get_bytes
    - g_malloc0
    - FU_DEVICE
    - g_return_val_if_fail
    - g_steal_pointer
    - fu_usb_device_not_open_error
    - FU_IS_USB_DEVICE
    - 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:2294,1
    - Dst: libusb_detach_kernel_driver
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2298,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2302,1
    - Dst: libusb_claim_interface
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2305,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2306,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 4
    argNames:
    - self
    - iface
    - flags
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - FuUsbDeviceClaimFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2288
    functionDepth: 1
    functionLinenumber: 2288
    functionLinenumberEnd: 2307
    functionName: fu_usb_device_claim_interface_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - libusb_claim_interface
    - fu_usb_device_libusb_error_to_gerror
    - 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:2317,1
    - Dst: fu_usb_device_claim_interface_internal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2320
      start: 2314
    functionDepth: 2
    functionLinenumber: 2314
    functionLinenumberEnd: 2320
    functionName: fu_usb_device_claim_interface_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - fu_usb_device_claim_interface_internal
    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:2341,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2343,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2343,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2344,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2347,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2347,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2351,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2355,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2355,1
    - Dst: fu_usb_device_claim_interface_internal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2362,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - self
    - iface
    - flags
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - FuUsbDeviceClaimFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2363
      start: 2335
    functionDepth: 2
    functionLinenumber: 2335
    functionLinenumberEnd: 2363
    functionName: fu_usb_device_claim_interface
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_usb_device_not_open_error
    - FU_DEVICE
    - fu_device_retry_full
    - fu_device_has_flag
    - FU_IS_USB_DEVICE
    - fu_usb_device_claim_interface_internal
    - GET_PRIVATE
    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:2384,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2387,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2387,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2388,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2391,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2391,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2395,1
    - Dst: libusb_release_interface
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2397,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2399,1
    - Dst: libusb_attach_kernel_driver
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2402,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2406,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - self
    - iface
    - flags
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - FuUsbDeviceClaimFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2378
    functionDepth: 2
    functionLinenumber: 2378
    functionLinenumberEnd: 2410
    functionName: fu_usb_device_release_interface
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_usb_device_libusb_error_to_gerror
    - libusb_attach_kernel_driver
    - fu_usb_device_not_open_error
    - FU_DEVICE
    - fu_device_has_flag
    - FU_IS_USB_DEVICE
    - libusb_release_interface
    - GET_PRIVATE
    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:2417,1
    - Dst: fu_usb_device_ensure_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2419,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2422,1
    - Dst: fu_usb_config_descriptor_get_configuration_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2423,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - configuration_value
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2433
      start: 2412
    functionDepth: 8
    functionLinenumber: 2412
    functionLinenumberEnd: 2433
    functionName: fu_usb_device_get_config_descriptor_for_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_usb_config_descriptor_get_configuration_value
    - fu_usb_device_ensure_interfaces
    - g_ptr_array_index
    - GET_PRIVATE
    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:2450,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2455,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2455,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2458,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2458,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2459,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2459,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2459,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2461,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2465,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2465,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2466,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2467,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2467,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2470,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2473,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2474,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2481,1
    - Dst: libusb_get_active_config_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2488,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2490,1
    - Dst: libusb_free_config_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2492,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2499,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2499,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2505,1
    - Dst: fu_usb_device_get_config_descriptor_for_value
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2515,1
    - Dst: fu_usb_config_descriptor_get_configuration
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2518,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2520,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2530,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2530,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2530,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2532,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2532,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2533,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2537
      start: 2447
    functionDepth: 9
    functionLinenumber: 2447
    functionLinenumberEnd: 2537
    functionName: fu_usb_device_get_configuration_index
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - fu_usb_device_libusb_error_to_gerror
    - fu_device_get_context
    - g_strdup_printf
    - fu_device_save_event
    - fu_device_has_flag
    - fu_device_event_set_data
    - libusb_get_active_config_descriptor
    - GET_PRIVATE
    - fu_usb_device_get_config_descriptor_for_value
    - g_bytes_get_data
    - fu_strtoull
    - fu_device_event_get_bytes
    - FU_DEVICE
    - libusb_free_config_descriptor
    - fu_udev_device_read_sysfs
    - FU_UDEV_DEVICE
    - g_return_val_if_fail
    - g_set_error
    - fu_usb_config_descriptor_get_configuration
    - g_bytes_get_size
    - FU_IS_USB_DEVICE
    - g_autoptr
    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:2552,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2553,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2555
      start: 2549
    functionDepth: 0
    functionLinenumber: 2549
    functionLinenumberEnd: 2555
    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:2578,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2584,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2584,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2585,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2588,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2588,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2589,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2589,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2589,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2591,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2599,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2599,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2601,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2603,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2603,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2606,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2608,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2609,1
    - Dst: fu_usb_device_libusb_status_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2611,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2612,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2615,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2616,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2623,1
    - Dst: libusb_get_active_config_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2629,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2630,1
    - Dst: libusb_free_config_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2646,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2648,1
    - Dst: fu_usb_device_get_interface
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2650,1
    - Dst: fu_usb_interface_get_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2653,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2658,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2670,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2670,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2670,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2672,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2672,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2673,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: 2678
      start: 2571
    functionDepth: 9
    functionLinenumber: 2571
    functionLinenumberEnd: 2678
    functionName: fu_usb_device_get_custom_index
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - fu_usb_device_libusb_error_to_gerror
    - fu_usb_device_get_interface
    - fu_device_get_context
    - g_strdup_printf
    - fu_device_event_get_i64
    - fu_device_save_event
    - fu_device_has_flag
    - fu_usb_device_libusb_status_to_gerror
    - fu_device_event_set_data
    - libusb_get_active_config_descriptor
    - GET_PRIVATE
    - g_bytes_get_data
    - fu_device_event_get_bytes
    - FU_DEVICE
    - libusb_free_config_descriptor
    - g_return_val_if_fail
    - fu_usb_interface_get_index
    - g_set_error
    - g_bytes_get_size
    - FU_IS_USB_DEVICE
    - g_autoptr
    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:2696,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2699,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2699,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2700,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2703,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2703,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2707,1
    - Dst: libusb_set_interface_alt_setting
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2708,1
    - Dst: fu_usb_device_libusb_error_to_gerror
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2709,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - self
    - iface
    - alt
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2710
      start: 2693
    functionDepth: 2
    functionLinenumber: 2693
    functionLinenumberEnd: 2710
    functionName: fu_usb_device_set_interface_alt
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_usb_device_libusb_error_to_gerror
    - fu_usb_device_not_open_error
    - FU_DEVICE
    - libusb_set_interface_alt_setting
    - fu_device_has_flag
    - FU_IS_USB_DEVICE
    - GET_PRIVATE
    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:2718,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2720,1
    - Dst: fu_usb_hid_descriptor_get_blob
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2723,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2727,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2728,1
    - Dst: fu_usb_hid_descriptor_get_iface_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2730,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2731,1
    - Dst: fu_usb_hid_descriptor_get_iface_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2737,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2744,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2747,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2749,1
    - Dst: fu_usb_hid_descriptor_get_iface_number
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2753,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2760,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2760,1
    - Dst: fu_usb_hid_descriptor_set_blob
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2761,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - self
    - hid_descriptor
    - error
    argTypes:
    - FuUsbDevice*
    - FuUsbHidDescriptor*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2763
      start: 2712
    functionDepth: 4
    functionLinenumber: 2712
    functionLinenumberEnd: 2763
    functionName: fu_usb_device_ensure_hid_descriptor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_hid_descriptor_get_descriptor_length
    - g_debug
    - g_set_error
    - g_steal_pointer
    - g_prefix_error_literal
    - g_malloc0
    - fu_dump_raw
    - g_bytes_new_take
    - fu_usb_hid_descriptor_get_iface_number
    - fu_usb_hid_descriptor_set_blob
    - g_autoptr
    - fu_usb_hid_descriptor_get_blob
    - fu_usb_device_control_transfer
    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:2768,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2770,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2770,1
    - Dst: fu_usb_device_not_open_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2774,1
    - Dst: fu_usb_device_ensure_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2777,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2780,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2781,1
    - Dst: fu_usb_device_ensure_hid_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2782,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2783,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2784,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2786,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2786,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2792
      start: 2765
    functionDepth: 8
    functionLinenumber: 2765
    functionLinenumberEnd: 2792
    functionName: fu_usb_device_ensure_hid_descriptors
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_steal_pointer
    - fu_usb_device_not_open_error
    - FU_DEVICE
    - fu_device_has_flag
    - g_error_matches
    - g_autoptr
    - fu_usb_device_ensure_hid_descriptor
    - g_propagate_error
    - fu_usb_device_ensure_interfaces
    - g_ptr_array_index
    - GET_PRIVATE
    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:2811,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2812,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2813,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2815,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2815,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2816,1
    - Dst: fu_usb_device_ensure_hid_descriptors
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2818,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2821,1
    - Dst: fu_usb_hid_descriptor_get_blob
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2822,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2824,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2825,1
    - Dst: fu_usb_hid_descriptor_get_blob
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2825,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2827,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2828
      start: 2808
    functionDepth: 9
    functionLinenumber: 2808
    functionLinenumberEnd: 2828
    functionName: fu_usb_device_get_hid_descriptors
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_ref
    - FU_IS_USB_DEVICE
    - fu_usb_hid_descriptor_get_blob
    - g_ptr_array_add
    - g_steal_pointer
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - fu_usb_device_ensure_hid_descriptors
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_usb_device_get_hid_descriptors(FuUsbDevice *self, GError **error)'
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2833,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2834,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2837,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2838,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2839,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2840,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2843,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2845,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2845,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2846,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2848,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2848,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2849,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2851,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2851,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2852,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2855,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2858,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2865,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2872,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2879,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2886,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2889,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2898,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2900,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2901,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2902,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2903,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2905,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2908,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2908,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2912,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2912,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2917,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2919,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2920,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2921,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2922,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2924,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2927,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2927,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2931,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2931,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2936,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2938,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2939,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2939,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2940,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2941,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2942,1
    - Dst: fwupd_json_array_get_node
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2945,1
    - Dst: fwupd_json_object_add_node
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2948,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2949,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2949,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2953,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2953,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2958,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2960,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2961,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2962,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2962,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2964,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2967,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2967,1
    - Dst: fu_usb_device_add_interface_internal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2969,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 108
    argCount: 3
    argNames:
    - device
    - json_obj
    - error
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2977
      start: 2830
    functionDepth: 3
    functionLinenumber: 2830
    functionLinenumberEnd: 2977
    functionName: fu_usb_device_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - FWUPD_CODEC
    - fwupd_codec_from_json
    - fwupd_json_array_get_node
    - fu_usb_device_add_interface_internal
    - g_object_ref
    - g_object_new
    - fwupd_json_array_get_object
    - fu_device_set_physical_id
    - fwupd_json_array_get_size
    - fwupd_json_object_new
    - fwupd_json_object_add_node
    - fwupd_json_object_get_array
    - GET_PRIVATE
    - fu_device_set_vid
    - FU_DEVICE
    - fwupd_json_object_get_string
    - FU_USB_DEVICE
    - g_ptr_array_add
    - fu_device_set_pid
    - g_autoptr
    - fwupd_json_object_get_integer_with_default
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_from_json(FuDevice *device, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2982,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2983,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2984,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2985,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2986,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2987,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2990,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2991,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2993,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2993,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2994,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2994,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2995,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2997,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2997,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2999,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:2999,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3000,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3002,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3002,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3005,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3007,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3009,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3011,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3013,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3017,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3021,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3023,1
    - Dst: fu_usb_device_ensure_bos_descriptors
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3026,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3027,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3029,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3029,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3032,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3033,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3033,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3034,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3034,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3035,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3037,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3042,1
    - Dst: fwupd_json_array_new
      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: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3046,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3046,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3047,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3047,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3048,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3050,1
    - Dst: fu_usb_device_ensure_hid_descriptors
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3054,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3055,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3057,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3057,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3060,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3061,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3061,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3062,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3064,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3064,1
    - Dst: fwupd_json_object_get_node
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3066,1
    - Dst: fwupd_json_array_add_node
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3068,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3070,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3074,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3076,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3078,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3078,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3080,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3081,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3081,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3082,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3082,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3083,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3085,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 85
    argCount: 3
    argNames:
    - device
    - json_obj
    - flags
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3087
      start: 2979
    functionDepth: 9
    functionLinenumber: 2979
    functionLinenumberEnd: 3087
    functionName: fu_usb_device_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - FWUPD_CODEC
    - fu_device_get_pid
    - fu_usb_device_get_interfaces
    - fu_device_get_physical_id
    - fwupd_json_array_new
    - g_ptr_array_index
    - g_debug
    - fwupd_json_object_new
    - fwupd_codec_to_json
    - fwupd_json_object_add_integer
    - fwupd_json_array_add_object
    - fwupd_json_array_add_node
    - GET_PRIVATE
    - FU_DEVICE
    - fu_device_get_vid
    - fu_usb_device_ensure_bos_descriptors
    - fwupd_json_object_get_node
    - FU_USB_DEVICE
    - fwupd_json_object_add_string
    - g_autoptr
    - fu_usb_device_ensure_hid_descriptors
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_add_json(FuDevice *device, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - usb_device
    argTypes:
    - FuContext*
    - libusb_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3104
      start: 3100
    functionDepth: 0
    functionLinenumber: 3100
    functionLinenumberEnd: 3104
    functionName: fu_usb_device_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 1
    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:3109,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3110,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3113,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3114,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3115,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3116,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3119,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3120,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3121,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3123,1
    - Dst: fu_usb_class_to_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3126,1
    - Dst: fu_usb_device_get_class
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3126,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3128,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3130,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3131,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3131,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3135,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3138,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3139,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3139,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3143,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3146,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3147,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3147,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3151,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3153,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3154,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3155,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3158,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3161
      start: 3106
    functionDepth: 3
    functionLinenumber: 3106
    functionLinenumberEnd: 3161
    functionName: fu_usb_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_add_string
    - FWUPD_CODEC
    - fu_usb_class_to_string
    - fwupd_codec_string_append
    - g_strdup_printf
    - fu_usb_device_get_class
    - fwupd_codec_string_append_hex
    - g_bytes_get_size
    - FU_USB_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3166,1
    - Dst: fu_usb_device_parse_descriptor
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fuzzer
    - blob
    - error
    argTypes:
    - FuFuzzer*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3168
      start: 3163
    functionDepth: 6
    functionLinenumber: 3163
    functionLinenumberEnd: 3168
    functionName: fu_usb_device_fuzzer_test_input
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_parse_descriptor
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_device_fuzzer_test_input(FuFuzzer *fuzzer, GBytes *blob,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3173,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3174,1
    - Dst: fu_firmware_new_from_xml
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3175,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3175,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - fuzzer
    - blob
    - error
    argTypes:
    - FuFuzzer*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3179
      start: 3170
    functionDepth: 4
    functionLinenumber: 3170
    functionLinenumberEnd: 3179
    functionName: fu_usb_device_fuzzer_build_example
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_new_from_xml
    - fu_firmware_write
    - g_bytes_get_data
    - g_type_ensure
    - g_autoptr
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_usb_device_fuzzer_build_example(FuFuzzer *fuzzer, GBytes *blob, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuFuzzerInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3186
      start: 3181
    functionDepth: 0
    functionLinenumber: 3181
    functionLinenumberEnd: 3186
    functionName: fu_usb_device_fuzzer_iface_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_fuzzer_iface_init(FuFuzzerInterface *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3191,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3192,1
    - Dst: g_quark_from_static_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3212,1
    - Dst: g_param_spec_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3222,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-usb-device.c:3226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3227
      start: 3188
    functionDepth: 0
    functionLinenumber: 3188
    functionLinenumberEnd: 3227
    functionName: fu_usb_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_quark_from_static_string
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    - g_param_spec_pointer
    linkageType: ''
    returnType: void
    signature: void fu_usb_device_class_init(FuUsbDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:18,1
    - Dst: fu_cbor_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:19,1
    - Dst: fu_cbor_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:20,1
    - Dst: fu_cbor_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:23,1
    - Dst: fu_cbor_item_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:25,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:26,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:27,1
    - Dst: fu_cbor_item_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:28,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:29,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:30,1
    - Dst: fu_cbor_item_write
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:32,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:33,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:34,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:35,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:37,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:38,1
    - Dst: fu_cbor_parse
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:39,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:40,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 13
    functionDepth: 5
    functionLinenumber: 13
    functionLinenumberEnd: 42
    functionName: fu_cbor_item_depth_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-test.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_array_append
    - g_memory_input_stream_new_from_data
    - fu_cbor_item_write
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fu_cbor_parse
    - g_assert_true
    - fu_cbor_item_new_array
    - g_autoptr
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fu_cbor_item_depth_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:49,1
    - Dst: fu_cbor_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:50,1
    - Dst: fu_cbor_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:51,1
    - Dst: fu_cbor_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:53,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:54,1
    - Dst: fu_cbor_item_map_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:56,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:57,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:58,1
    - Dst: fu_cbor_item_map_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:59,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:60,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:61,1
    - Dst: fu_cbor_item_write
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:63,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:64,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:65,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:66,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:68,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:69,1
    - Dst: fu_cbor_parse
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:70,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:71,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 44
    functionDepth: 5
    functionLinenumber: 44
    functionLinenumberEnd: 73
    functionName: fu_cbor_item_items_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-test.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_new_integer
    - g_memory_input_stream_new_from_data
    - fu_cbor_item_write
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fu_cbor_parse
    - fu_cbor_item_new_map
    - g_assert_true
    - fu_cbor_item_map_append
    - g_autoptr
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fu_cbor_item_items_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:81,1
    - Dst: fu_cbor_item_new_boolean
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:84,1
    - Dst: fu_cbor_item_get_boolean
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:86,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:87,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:88,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:89,1
    - Dst: fu_cbor_item_get_integer
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:92,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:93,1
    - Dst: fu_cbor_item_get_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:94,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:95,1
    - Dst: fu_cbor_item_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:96,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:97,1
    - Dst: fu_cbor_item_write
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:100,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:101,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 75
    functionDepth: 5
    functionLinenumber: 75
    functionLinenumberEnd: 103
    functionName: fu_cbor_item_boolean_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-test.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_get_bytes
    - fu_cbor_item_write
    - fu_cbor_item_get_boolean
    - g_assert_error
    - g_assert_no_error
    - fu_cbor_item_get_integer
    - g_assert_false
    - fu_cbor_item_get_string
    - fu_cbor_item_new_boolean
    - g_assert_true
    - g_autoptr
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fu_cbor_item_boolean_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:109,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:110,1
    - Dst: fu_cbor_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:110,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:111,1
    - Dst: fu_cbor_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:112,1
    - Dst: fu_cbor_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:112,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:113,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:114,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:115,1
    - Dst: fu_cbor_item_map_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:117,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:118,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:119,1
    - Dst: fu_cbor_item_map_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:120,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:121,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:122,1
    - Dst: fu_cbor_item_write
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:124,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:125,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:126,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:127,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:129,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:130,1
    - Dst: fu_cbor_parse
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:131,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:132,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 105
    functionDepth: 5
    functionLinenumber: 105
    functionLinenumberEnd: 134
    functionName: fu_cbor_item_integer_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-test.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_new_integer
    - g_memory_input_stream_new_from_data
    - fu_cbor_item_write
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fu_cbor_parse
    - fu_cbor_item_new_map
    - g_assert_true
    - fu_cbor_item_map_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_cbor_item_integer_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:143,1
    - Dst: fu_cbor_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:143,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:144,1
    - Dst: fu_cbor_item_new_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:144,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:145,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:146,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:147,1
    - Dst: fu_cbor_item_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:149,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:150,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:151,1
    - Dst: fu_cbor_item_write
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:152,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:153,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:154,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:155,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:157,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:158,1
    - Dst: fu_cbor_parse
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:159,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:160,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:161,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:162,1
    - Dst: fu_cbor_item_array_length
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:162,1
    - Dst: fu_cbor_item_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:163,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:164,1
    - Dst: fu_cbor_item_get_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:165,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:166,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 136
    functionDepth: 5
    functionLinenumber: 136
    functionLinenumberEnd: 168
    functionName: fu_cbor_item_string_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-test.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_new_string
    - fu_cbor_item_array_append
    - g_memory_input_stream_new_from_data
    - fu_cbor_item_write
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - g_assert_null
    - fu_cbor_item_array_index
    - fu_cbor_parse
    - fu_cbor_item_get_string
    - g_assert_true
    - fu_cbor_item_new_array
    - g_autoptr
    - fu_cbor_item_array_length
    linkageType: ''
    returnType: void
    signature: void fu_cbor_item_string_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:175,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:175,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:176,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:178,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:179,1
    - Dst: fu_cbor_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:179,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:180,1
    - Dst: fu_cbor_item_new_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:180,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:181,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:182,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:183,1
    - Dst: fu_cbor_item_array_append
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:185,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:186,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:187,1
    - Dst: fu_cbor_item_write
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:188,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:189,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:190,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:191,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:193,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:194,1
    - Dst: fu_cbor_parse
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:195,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:196,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:197,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:198,1
    - Dst: fu_cbor_item_array_length
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:198,1
    - Dst: fu_cbor_item_array_index
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:199,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:200,1
    - Dst: fu_cbor_item_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:201,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:202,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:203,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:204,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:204,1
    - Dst: fu_cbor_item_to_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:207,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 170
    functionDepth: 5
    functionLinenumber: 170
    functionLinenumberEnd: 209
    functionName: fu_cbor_item_bytes_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-test.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_array_append
    - g_memory_input_stream_new_from_data
    - fu_cbor_item_write
    - fu_cbor_item_get_bytes
    - g_assert_cmpstr
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fu_cbor_item_array_index
    - fu_cbor_item_new_bytes
    - fu_cbor_parse
    - g_bytes_get_size
    - fu_cbor_item_to_string
    - g_assert_true
    - fu_cbor_item_new_array
    - g_autoptr
    - fu_cbor_item_array_length
    - g_bytes_new_static
    linkageType: ''
    returnType: void
    signature: void fu_cbor_item_bytes_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:215,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:216,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:217,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:234,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:235,1
    - Dst: fu_cbor_parse
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:237,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:238,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:239,1
    - Dst: fu_cbor_item_to_string
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:241,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:242,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 211
    functionDepth: 5
    functionLinenumber: 211
    functionLinenumberEnd: 248
    functionName: fu_cbor_item_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-test.c
    functionUses: 0
    functionsReached:
    - g_memory_input_stream_new_from_data
    - g_debug
    - g_assert_nonnull
    - g_assert_no_error
    - fu_cbor_parse
    - fu_cbor_item_to_string
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_cbor_item_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:253,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:254,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:255,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:256,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:257,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:258,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:259,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:260,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-cbor-test.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 262
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-cbor-test.c
    functionUses: 3
    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: []
    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: 1013
    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_strdup
    - FU_IS_CSV_ENTRY
    - g_ptr_array_add
    - g_return_if_fail
    - GET_PRIVATE
    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_return_val_if_fail
    - FU_IS_CSV_ENTRY
    - g_ptr_array_index
    - 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:
    - g_return_val_if_fail
    - FU_IS_CSV_ENTRY
    - fu_csv_firmware_get_idx_for_column_id
    - FU_FIRMWARE
    - fu_firmware_get_parent
    - FU_CSV_FIRMWARE
    - FU_IS_CSV_FIRMWARE
    - g_ptr_array_index
    - GET_PRIVATE
    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_literal
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:105,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:109,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: 110
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 110
    functionName: fu_csv_entry_get_value_by_column_id_uint64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 0
    functionsReached:
    - fu_csv_entry_get_value_by_column_id
    - g_set_error_literal
    - fu_strtoull
    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:115,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:116,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:117,1
    - Dst: fu_firmware_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:117,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:118,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:118,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:121,1
    - Dst: fu_csv_firmware_get_column_id
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:122,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 126
    functionName: fu_csv_entry_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 0
    functionsReached:
    - fu_csv_firmware_get_column_id
    - fu_firmware_get_parent
    - FU_CSV_FIRMWARE
    - FU_CSV_ENTRY
    - xb_builder_node_insert
    - fu_xmlb_builder_insert_kv
    - g_autoptr
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_csv_entry_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_CSV_ENTRY
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:131,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:132,1
    - Dst: fu_firmware_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:132,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:134,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:138,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:142,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:144,1
    - Dst: fu_csv_firmware_get_column_id
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:147,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:149,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:150,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:151,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:151,1
    - Dst: fu_csv_entry_add_value
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:152,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 155
    functionName: fu_csv_entry_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 0
    functionsReached:
    - fu_csv_entry_add_value
    - fu_csv_firmware_add_column_id
    - fu_csv_firmware_get_column_id
    - g_set_error_literal
    - fwupd_error_convert
    - xb_node_query
    - xb_node_get_element
    - fu_firmware_get_parent
    - FU_CSV_FIRMWARE
    - FU_CSV_ENTRY
    - g_autoptr
    - xb_node_get_text
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_csv_entry_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_CSV_ENTRY
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:160,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:161,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:162,1
    - Dst: fu_firmware_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:162,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:162,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:167,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:171,1
    - Dst: fu_csv_firmware_get_column_id
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:179,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:180,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:181,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:181,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:182,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:184,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:186,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:186,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:187,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:188,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:188,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:189,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:191,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:193,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:193,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:197,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:197,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - token
    - token_idx
    - user_data
    - error
    argTypes:
    - GString*
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 199
    functionName: fu_csv_entry_parse_token_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_firmware_set_version_raw
    - g_strcmp0
    - fu_firmware_set_id
    - fu_firmware_set_version
    - g_set_error
    - fu_csv_firmware_get_column_id
    - fu_strtoull
    - FU_FIRMWARE
    - g_set_error_literal
    - g_ptr_array_add
    - fu_firmware_set_idx
    - fu_firmware_get_parent
    - FU_CSV_FIRMWARE
    - FU_CSV_ENTRY
    - GET_PRIVATE
    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:207,1
    - Dst: fu_strsplit_stream
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 209
    functionName: fu_csv_entry_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 0
    functionsReached:
    - fu_strsplit_stream
    - FU_CSV_ENTRY
    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:214,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:215,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:216,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:216,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:217,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:217,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:221,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:223,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:225,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:227,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:228,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 232
    functionName: fu_csv_entry_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 0
    functionsReached:
    - g_string_append
    - g_steal_pointer
    - g_byte_array_new
    - g_string_new
    - FU_CSV_ENTRY
    - g_byte_array_append
    - g_autoptr
    - g_ptr_array_index
    - GET_PRIVATE
    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:237,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:238,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:239,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCsvEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 240
    functionName: fu_csv_entry_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    - 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:245,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:246,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:247,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 249
    functionName: fu_csv_entry_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - FU_CSV_ENTRY
    - GET_PRIVATE
    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:254,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCsvEntryClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 261
    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:273,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-csv-entry.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 274
    functionName: fu_csv_entry_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-csv-entry.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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_return_val_if_fail
    - g_strndup
    - g_set_error
    - g_set_error_literal
    - kenv
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_kenv_get_string(const gchar *key, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - progress
    - percentage
    - data
    argTypes:
    - FuProgress*
    - gdouble
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: fu_progress_percentage_changed_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress-test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_progress_percentage_changed_cb(FuProgress *progress, gdouble
      percentage, gpointer data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:31,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:31,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:34,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:34,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:36,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:39,1
    - Dst: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:39,1
    - Dst: fu_progress_set_profile
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:41,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:42,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:43,1
    - Dst: g_usleep
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:45,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:46,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:47,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:48,1
    - Dst: g_usleep
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:51,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:52,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:55,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:56,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:57,1
    - Dst: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:57,1
    - Dst: fu_progress_traceback
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:58,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 60
    functionName: fu_progress_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpfloat_with_epsilon
    - fu_progress_get_duration
    - g_usleep
    - g_signal_connect
    - FU_PROGRESS
    - g_debug
    - fu_progress_set_steps
    - fu_progress_set_profile
    - fu_progress_step_done
    - g_assert_cmpint
    - fu_progress_traceback
    - fu_progress_new
    - G_CALLBACK
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_progress_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:66,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:66,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:68,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:68,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:70,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:73,1
    - Dst: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:73,1
    - Dst: fu_progress_sleep_idle
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:75,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:76,1
    - Dst: fu_test_loop_run_with_timeout
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:78,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:79,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:80,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:82,1
    - Dst: fu_progress_get_duration
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 83
    functionName: fu_progress_idle_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpfloat_with_epsilon
    - fu_progress_get_duration
    - g_signal_connect
    - FU_PROGRESS
    - fu_test_loop_run_with_timeout
    - g_assert_cmpint
    - fu_progress_new
    - G_CALLBACK
    - fu_progress_sleep_idle
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_progress_idle_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:90,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:90,1
    - Dst: fu_progress_set_profile
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:93,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:94,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:95,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:95,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:97,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:106,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:107,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:108,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:109,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:112,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:113,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:114,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:116,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:117,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:118,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:119,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:122,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:123,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:124,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:125,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:128,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:129,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:132,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 134
    functionName: fu_progress_child_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpfloat_with_epsilon
    - g_signal_connect
    - FU_PROGRESS
    - g_debug
    - fu_progress_set_steps
    - fu_progress_set_profile
    - fu_progress_step_done
    - g_assert_cmpint
    - fu_progress_new
    - G_CALLBACK
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_progress_child_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:140,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:140,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:142,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:144,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:145,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:145,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:147,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:148,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:149,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:150,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:152,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 136
    functionDepth: 4
    functionLinenumber: 136
    functionLinenumberEnd: 153
    functionName: fu_progress_scaling_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpfloat_with_epsilon
    - fu_progress_get_percentage
    - fu_progress_set_percentage
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_progress_new
    - g_autoptr
    - fu_progress_get_child
    linkageType: ''
    returnType: void
    signature: void fu_progress_scaling_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:160,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:160,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:163,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:164,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:164,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:166,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:170,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:171,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:172,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:175,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:178,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 155
    functionDepth: 4
    functionLinenumber: 155
    functionLinenumberEnd: 180
    functionName: fu_progress_parent_one_step_proxy_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpfloat_with_epsilon
    - fu_progress_set_percentage
    - g_signal_connect
    - FU_PROGRESS
    - fu_progress_set_steps
    - g_assert_cmpint
    - fu_progress_new
    - G_CALLBACK
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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-progress-test.c:185,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:185,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:190,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:191,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:192,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:193,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:194,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:194,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:195,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:195,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:198,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:199,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:200,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:201,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:202,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:202,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:205,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:208,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:208,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:211,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:214,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:214,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:216,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:217,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:217,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:220,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:220,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:223,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:224,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:225,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:226,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:227,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:228,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:228,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:231,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:232,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:232,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:235,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:235,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:245,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:246,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:247,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:248,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:250,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:253,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:253,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:255,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:258,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:260,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:261,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:261,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:264,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:264,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:266,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:269,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:269,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:270,1
    - Dst: fu_progress_get_status
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 271
    functionName: fu_progress_non_equal_steps_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpfloat_with_epsilon
    - fu_progress_get_percentage
    - fu_progress_add_step
    - fu_progress_set_steps
    - fu_progress_step_done
    - g_assert_cmpint
    - fu_progress_get_status
    - fu_progress_new
    - fu_progress_set_status
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_progress_non_equal_steps_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:277,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:277,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:280,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:282,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:283,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:284,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:285,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 273
    functionDepth: 4
    functionLinenumber: 273
    functionLinenumberEnd: 289
    functionName: fu_progress_finish_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress-test.c
    functionUses: 0
    functionsReached:
    - fu_progress_finished
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_progress_new
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_progress_finish_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:295,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:295,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:298,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:299,1
    - Dst: fu_progress_get_global_fraction
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:299,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:302,1
    - Dst: g_assert_cmpfloat_with_epsilon
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:303,1
    - Dst: fu_progress_get_global_fraction
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:303,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:306,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:307,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:308,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:309,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:310,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:311,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 315
    functionName: fu_progress_global_fraction_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress-test.c
    functionUses: 0
    functionsReached:
    - fu_progress_finished
    - g_assert_cmpfloat_with_epsilon
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_progress_get_global_fraction
    - fu_progress_new
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_progress_global_fraction_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:321,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:321,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:324,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:326,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:327,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:328,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:332,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 317
    functionDepth: 4
    functionLinenumber: 317
    functionLinenumberEnd: 334
    functionName: fu_progress_child_finished
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress-test.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_progress_new
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_progress_child_finished(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:339,1
    - Dst: g_test_slow
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:340,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:341,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:342,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:344,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:345,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:346,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:347,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:348,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:349,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:350,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-progress-test.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 352
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-progress-test.c
    functionUses: 3
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_test_init
    - g_test_slow
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_config
      Src: /src/fwupd/libfwupdplugin/fu-hwids-config.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-config.c:19,1
    - Dst: fu_hwids_get_keys
      Src: /src/fwupd/libfwupdplugin/fu-hwids-config.c:19,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hwids-config.c:23,1
    - Dst: fu_config_get_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-config.c:24,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-config.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - self
    - error
    argTypes:
    - FuContext*
    - FuHwids*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 31
    functionName: fu_hwids_config_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids-config.c
    functionUses: 0
    functionsReached:
    - fu_hwids_get_keys
    - fu_config_get_value
    - fu_hwids_add_value
    - g_autoptr
    - g_ptr_array_index
    - fu_context_get_config
    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: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c
    functionUses: 1021
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:50,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:51,1
    - Dst: FU_IS_USB_DEVICE_DS20
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - version_lowest
    argTypes:
    - FuUsbDeviceDs20*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 53
    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
    - g_return_if_fail
    - GET_PRIVATE
    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:70,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:72,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:72,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:73,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:73,1
    - Dst: g_malloc0
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:75,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:77,1
    - Dst: FU_IS_USB_DEVICE_DS20
      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:78,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:78,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:79,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:81,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:94,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:98,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:109,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:112,1
    - Dst: FuUsbDeviceDs20Class*::parse
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuUsbDeviceDs20*
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 67
    functionDepth: 4
    functionLinenumber: 67
    functionLinenumberEnd: 114
    functionName: fu_usb_device_ds20_apply_to_device
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FuUsbDeviceDs20Class*::parse
    - g_memory_input_stream_new_from_data
    - g_set_error
    - FU_FIRMWARE
    - g_prefix_error
    - g_malloc0
    - fu_dump_raw
    - FU_IS_USB_DEVICE_DS20
    - FU_USB_DEVICE_DS20_GET_CLASS
    - fu_firmware_get_size
    - FU_IS_USB_DEVICE
    - g_autoptr
    - fu_firmware_get_idx
    - fu_usb_device_control_transfer
    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:122,1
    - Dst: fu_struct_ds20_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:126,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:129,1
    - Dst: fu_struct_ds20_get_guid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:129,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:130,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:130,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:131,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 141
    functionName: fu_usb_device_ds20_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - g_strcmp0
    - g_set_error
    - fwupd_guid_to_string
    - fu_struct_ds20_get_guid
    - fu_struct_ds20_parse_stream
    - g_autoptr
    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: 153
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 153
    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:161,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:162,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:165,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:165,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:167,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:170,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:171,1
    - Dst: fu_struct_ds20_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:174,1
    - Dst: fu_struct_ds20_get_platform_ver
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:177,1
    - Dst: fu_struct_ds20_get_total_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:178,1
    - Dst: fu_struct_ds20_get_vendor_code
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:179,1
    - Dst: fu_struct_ds20_get_alt_code
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:180,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:181,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:187,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:187,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:191,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:195,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:199,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:207,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:218,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:219,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 230
    functionName: fu_usb_device_ds20_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c
    functionUses: 0
    functionsReached:
    - fu_struct_ds20_get_alt_code
    - fu_struct_ds20_get_vendor_code
    - g_ptr_array_index
    - g_ptr_array_sort
    - FU_USB_DEVICE_DS20
    - g_new0
    - g_debug
    - g_set_error_literal
    - fu_struct_ds20_get_platform_ver
    - g_ptr_array_new_with_free_func
    - fu_struct_ds20_get_total_length
    - fu_firmware_set_size
    - GET_PRIVATE
    - fu_firmware_set_idx
    - fu_struct_ds20_parse_stream
    - fu_firmware_get_version_raw
    - g_set_error
    - fu_input_stream_size
    - g_steal_pointer
    - g_ptr_array_add
    - g_autoptr
    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:235,1
    - Dst: fu_struct_ds20_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:235,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:239,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:239,1
    - Dst: fu_struct_ds20_set_guid
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:244,1
    - Dst: fu_struct_ds20_set_platform_ver
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:245,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:245,1
    - Dst: fu_struct_ds20_set_total_length
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:246,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:246,1
    - Dst: fu_struct_ds20_set_vendor_code
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:247,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:247,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 249
    functionName: fu_usb_device_ds20_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_firmware_get_version_raw
    - fwupd_guid_from_string
    - g_steal_pointer
    - fu_struct_ds20_set_total_length
    - fu_struct_ds20_set_platform_ver
    - fu_struct_ds20_new
    - fu_firmware_get_size
    - fu_struct_ds20_set_guid
    - g_autoptr
    - fu_firmware_get_idx
    - fu_struct_ds20_set_vendor_code
    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:254,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:254,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:255,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbDeviceDs20*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: fu_usb_device_ds20_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-device-ds20.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsbDeviceDs20Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    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: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 1023
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_file_monitor_cancel
      Src: /src/fwupd/libfwupdplugin/fu-config.c:52,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-config.c:53,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-config.c:55,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-config.c:56,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-config.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuConfigItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: fu_config_item_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_free
    - g_file_monitor_cancel
    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:65,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-config.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    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:72,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-config.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    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:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - section
    - key
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    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:85,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-config.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:87,1
    - Dst: g_key_file_new
      Src: /src/fwupd/libfwupdplugin/fu-config.c:87,1
    - Dst: g_key_file_load_from_data
      Src: /src/fwupd/libfwupdplugin/fu-config.c:89,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-config.c:90,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-config.c:91,1
    - Dst: g_key_file_get_groups
      Src: /src/fwupd/libfwupdplugin/fu-config.c:95,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-config.c:97,1
    - Dst: g_key_file_get_keys
      Src: /src/fwupd/libfwupdplugin/fu-config.c:99,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:101,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/libfwupdplugin/fu-config.c:110,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:112,1
    - Dst: fu_config_build_section_key
      Src: /src/fwupd/libfwupdplugin/fu-config.c:120,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-config.c:121,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-config.c:122,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:123,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:130,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/libfwupdplugin/fu-config.c:131,1
    - Dst: g_key_file_get_comment
      Src: /src/fwupd/libfwupdplugin/fu-config.c:132,1
    - Dst: g_key_file_set_comment
      Src: /src/fwupd/libfwupdplugin/fu-config.c:134,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:139,1
    - Dst: g_key_file_get_comment
      Src: /src/fwupd/libfwupdplugin/fu-config.c:148,1
    - Dst: g_key_file_set_comment
      Src: /src/fwupd/libfwupdplugin/fu-config.c:150,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:155,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 3
    argNames:
    - self
    - blob
    - error
    argTypes:
    - FuConfig*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 166
    functionName: fu_config_load_bytes_replace
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_key_file_new
    - g_debug
    - g_key_file_get_comment
    - g_bytes_get_data
    - g_key_file_get_keys
    - fu_config_build_section_key
    - g_hash_table_lookup
    - g_prefix_error
    - g_key_file_set_string
    - g_key_file_get_string
    - g_key_file_set_comment
    - g_key_file_load_from_data
    - g_bytes_get_size
    - g_auto
    - g_key_file_get_groups
    - g_autoptr
    - GET_PRIVATE
    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:171,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-config.c:204,1
    - Dst: g_key_file_get_value
      Src: /src/fwupd/libfwupdplugin/fu-config.c:206,1
    - Dst: fu_config_build_section_key
      Src: /src/fwupd/libfwupdplugin/fu-config.c:214,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-config.c:215,1
    - Dst: g_ascii_strcasecmp
      Src: /src/fwupd/libfwupdplugin/fu-config.c:219,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-config.c:220,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:221,1
    - Dst: g_key_file_remove_comment
      Src: /src/fwupd/libfwupdplugin/fu-config.c:225,1
    - Dst: g_key_file_remove_key
      Src: /src/fwupd/libfwupdplugin/fu-config.c:229,1
    - Dst: g_key_file_get_keys
      Src: /src/fwupd/libfwupdplugin/fu-config.c:236,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-config.c:237,1
    - Dst: g_key_file_remove_comment
      Src: /src/fwupd/libfwupdplugin/fu-config.c:238,1
    - Dst: g_key_file_remove_group
      Src: /src/fwupd/libfwupdplugin/fu-config.c:239,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 242
    functionName: fu_config_migrate_keyfile
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_debug
    - g_key_file_remove_comment
    - g_key_file_get_keys
    - g_hash_table_lookup
    - fu_config_build_section_key
    - g_key_file_remove_group
    - g_key_file_get_value
    - g_strv_length
    - g_auto
    - g_key_file_remove_key
    - g_ascii_strcasecmp
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_config_migrate_keyfile(FuConfig *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:247,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-config.c:249,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:251,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:255,1
    - Dst: g_file_query_info
      Src: /src/fwupd/libfwupdplugin/fu-config.c:258,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:264,1
    - Dst: g_file_info_get_attribute_uint32
      Src: /src/fwupd/libfwupdplugin/fu-config.c:267,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-config.c:269,1
    - Dst: g_file_info_set_attribute_uint32
      Src: /src/fwupd/libfwupdplugin/fu-config.c:273,1
    - Dst: g_file_set_attributes_from_info
      Src: /src/fwupd/libfwupdplugin/fu-config.c:276,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuConfig*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 291
    functionName: fu_config_ensure_permissions
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_file_set_attributes_from_info
    - g_debug
    - g_info
    - g_prefix_error
    - g_file_info_set_attribute_uint32
    - g_file_query_info
    - g_file_info_get_attribute_uint32
    - g_autoptr
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_config_ensure_permissions(FuConfig *self, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:296,1
    - Dst: fu_config_ensure_permissions
      Src: /src/fwupd/libfwupdplugin/fu-config.c:305,1
    - Dst: g_key_file_load_from_data
      Src: /src/fwupd/libfwupdplugin/fu-config.c:312,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-config.c:315,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:316,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:317,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:319,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-config.c:320,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-config.c:322,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:325,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-config.c:327,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:330,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:333,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-config.c:333,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:334,1
    - Dst: fu_config_load_bytes_replace
      Src: /src/fwupd/libfwupdplugin/fu-config.c:337,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:338,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FuConfig*
    - FuConfigLoadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 345
    functionName: fu_config_reload
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - fu_bytes_get_contents
    - g_debug
    - g_steal_pointer
    - fu_config_ensure_permissions
    - g_prefix_error
    - fu_config_load_bytes_replace
    - g_error_matches
    - g_key_file_load_from_data
    - g_propagate_error
    - g_autoptr
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_config_reload(FuConfig *self, FuConfigLoadFlags flags,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:354,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:355,1
    - Dst: g_file_get_path
      Src: /src/fwupd/libfwupdplugin/fu-config.c:356,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-config.c:360,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-config.c:365,1
    - Dst: fu_config_reload
      Src: /src/fwupd/libfwupdplugin/fu-config.c:366,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-config.c:367,1
    - Dst: fu_config_emit_changed
      Src: /src/fwupd/libfwupdplugin/fu-config.c:368,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: 369
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 369
    functionName: fu_config_monitor_changed_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_info
    - g_debug
    - fu_config_emit_changed
    - fu_config_reload
    - g_warning
    - g_autoptr
    - g_file_get_path
    - FU_CONFIG
    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:385,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:386,1
    - Dst: FU_IS_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:386,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:387,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:388,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-config.c:389,1
    - Dst: fu_config_build_section_key
      Src: /src/fwupd/libfwupdplugin/fu-config.c:390,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-config.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - self
    - section
    - key
    - value
    argTypes:
    - FuConfig*
    - gchar*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 392
    functionName: fu_config_set_default
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - fu_config_build_section_key
    - g_return_if_fail
    - FU_IS_CONFIG
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_config_set_default(FuConfig *self, const gchar *section, const
      gchar *key, const gchar *value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:397,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-config.c:402,1
    - Dst: g_key_file_to_data
      Src: /src/fwupd/libfwupdplugin/fu-config.c:409,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-config.c:413,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/libfwupdplugin/fu-config.c:416,1
    - Dst: g_file_set_contents_full
      Src: /src/fwupd/libfwupdplugin/fu-config.c:418,1
    - Dst: fu_config_reload
      Src: /src/fwupd/libfwupdplugin/fu-config.c:425,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-config.c:429,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuConfig*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 431
    functionName: fu_config_save
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_file_set_contents_full
    - fu_config_reload
    - GET_PRIVATE
    - g_key_file_to_data
    - g_ptr_array_index
    - fu_path_mkdir_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_config_save(FuConfig *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:450,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:451,1
    - Dst: FU_IS_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:451,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:452,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:453,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/libfwupdplugin/fu-config.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - self
    - section
    - key
    - value
    argTypes:
    - FuConfig*
    - gchar*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 455
    functionName: fu_config_set_value_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 1
    functionsReached:
    - g_key_file_set_string
    - g_return_if_fail
    - FU_IS_CONFIG
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: "void fu_config_set_value_internal(FuConfig *self,\n\t\t\t     const
      gchar *section,\n\t\t\t     const gchar *key,\n\t\t\t     const gchar *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:478,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:480,1
    - Dst: FU_IS_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:480,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:481,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:482,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:483,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-config.c:487,1
    - Dst: fu_config_migrate_keyfile
      Src: /src/fwupd/libfwupdplugin/fu-config.c:492,1
    - Dst: g_key_file_set_string
      Src: /src/fwupd/libfwupdplugin/fu-config.c:495,1
    - Dst: fu_config_save
      Src: /src/fwupd/libfwupdplugin/fu-config.c:496,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: 497
      start: 471
    functionDepth: 4
    functionLinenumber: 471
    functionLinenumberEnd: 497
    functionName: fu_config_set_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fu_config_migrate_keyfile
    - g_set_error_literal
    - g_key_file_set_string
    - FU_IS_CONFIG
    - fu_config_save
    - GET_PRIVATE
    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:511,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:512,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:514,1
    - Dst: FU_IS_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:514,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:515,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:516,1
    - Dst: g_key_file_remove_group
      Src: /src/fwupd/libfwupdplugin/fu-config.c:519,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-config.c:521,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-config.c:524,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-config.c:524,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-config.c:525,1
    - Dst: fu_config_save
      Src: /src/fwupd/libfwupdplugin/fu-config.c:530,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - section
    - error
    argTypes:
    - FuConfig*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 508
    functionDepth: 4
    functionLinenumber: 508
    functionLinenumberEnd: 531
    functionName: fu_config_reset_defaults
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_key_file_remove_group
    - g_steal_pointer
    - fwupd_error_convert
    - FU_IS_CONFIG
    - g_error_matches
    - fu_config_save
    - g_propagate_error
    - g_autoptr
    - GET_PRIVATE
    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:550,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:553,1
    - Dst: FU_IS_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:553,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:554,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:555,1
    - Dst: g_key_file_get_string
      Src: /src/fwupd/libfwupdplugin/fu-config.c:557,1
    - Dst: fu_config_build_section_key
      Src: /src/fwupd/libfwupdplugin/fu-config.c:559,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-config.c:560,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-config.c:561,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-config.c:563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - section
    - key
    argTypes:
    - FuConfig*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 564
    functionName: fu_config_get_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_hash_table_lookup
    - fu_config_build_section_key
    - g_steal_pointer
    - FU_IS_CONFIG
    - g_key_file_get_string
    - GET_PRIVATE
    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:584,1
    - Dst: FU_IS_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:584,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:585,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:586,1
    - Dst: fu_config_get_value
      Src: /src/fwupd/libfwupdplugin/fu-config.c:587,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-config.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 591
    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:608,1
    - Dst: fu_config_get_value
      Src: /src/fwupd/libfwupdplugin/fu-config.c:609,1
    - Dst: fu_config_build_section_key
      Src: /src/fwupd/libfwupdplugin/fu-config.c:611,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-config.c:612,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-config.c:614,1
    - Dst: g_ascii_strcasecmp
      Src: /src/fwupd/libfwupdplugin/fu-config.c:617,1
    - Dst: g_ascii_strcasecmp
      Src: /src/fwupd/libfwupdplugin/fu-config.c:619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - section
    - key
    argTypes:
    - FuConfig*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 620
    functionName: fu_config_get_value_bool
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 12
    functionsReached:
    - g_critical
    - g_hash_table_lookup
    - fu_config_build_section_key
    - fu_config_get_value
    - g_ascii_strcasecmp
    - GET_PRIVATE
    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:637,1
    - Dst: fu_config_get_value
      Src: /src/fwupd/libfwupdplugin/fu-config.c:640,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:641,1
    - Dst: fu_config_build_section_key
      Src: /src/fwupd/libfwupdplugin/fu-config.c:644,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-config.c:645,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-config.c:647,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-config.c:653,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-config.c:654,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - section
    - key
    argTypes:
    - FuConfig*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 658
    functionName: fu_config_get_value_u64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 3
    functionsReached:
    - g_critical
    - fu_strtoull
    - g_hash_table_lookup
    - fu_config_build_section_key
    - fu_config_get_value
    - g_warning
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_config_get_value_u64(FuConfig *self, const gchar *section,
      const gchar *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:672,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:673,1
    - Dst: FU_IS_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:673,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-config.c:674,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-config.c:676,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-config.c:677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - basename
    argTypes:
    - FuConfig*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 678
    functionName: fu_config_set_basename
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FU_IS_CONFIG
    - g_free
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_config_set_basename(FuConfig *self, const gchar *basename)
  - 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_new0
    - g_debug
    - g_file_info_get_attribute_boolean
    - g_ptr_array_add
    - g_steal_pointer
    - g_file_query_exists
    - g_file_query_info
    - g_file_new_for_path
    - g_autoptr
    - g_build_filename
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_config_add_location(FuConfig *self, const gchar *dirname,
      gboolean is_mutable, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:730,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:734,1
    - Dst: FU_IS_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:734,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:735,1
    - Dst: fu_path_store_get_path
      Src: /src/fwupd/libfwupdplugin/fu-config.c:738,1
    - Dst: fu_config_add_location
      Src: /src/fwupd/libfwupdplugin/fu-config.c:740,1
    - Dst: fu_path_store_get_path
      Src: /src/fwupd/libfwupdplugin/fu-config.c:743,1
    - Dst: fu_config_add_location
      Src: /src/fwupd/libfwupdplugin/fu-config.c:745,1
    - Dst: fu_config_reload
      Src: /src/fwupd/libfwupdplugin/fu-config.c:748,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-config.c:754,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config.c:755,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-config.c:755,1
    - Dst: g_file_monitor
      Src: /src/fwupd/libfwupdplugin/fu-config.c:756,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-config.c:759,1
    - Dst: G_FILE_MONITOR
      Src: /src/fwupd/libfwupdplugin/fu-config.c:759,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-config.c:761,1
    - Dst: fu_config_emit_loaded
      Src: /src/fwupd/libfwupdplugin/fu-config.c:767,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FuConfig*
    - FuConfigLoadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 727
    functionDepth: 3
    functionLinenumber: 727
    functionLinenumberEnd: 769
    functionName: fu_config_load
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_path_store_get_path
    - g_signal_connect
    - fu_config_add_location
    - fu_config_emit_loaded
    - FU_IS_CONFIG
    - G_CALLBACK
    - g_file_new_for_path
    - g_file_monitor
    - fu_config_reload
    - g_autoptr
    - G_FILE_MONITOR
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_config_load(FuConfig *self, FuConfigLoadFlags flags, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:773,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:774,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-config.c:777,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-config.c:780,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: 783
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 783
    functionName: fu_config_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_CONFIG
    - g_value_set_object
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_config_get_property(GObject *object, guint prop_id, GValue
      *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:788,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:789,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-config.c:792,1
    - Dst: g_value_get_object
      Src: /src/fwupd/libfwupdplugin/fu-config.c:792,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-config.c:795,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: 798
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 798
    functionName: fu_config_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_set_object
    - g_value_get_object
    - FU_CONFIG
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_config_set_property(GObject *object, guint prop_id, const GValue
      *value, GParamSpec *pspec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:803,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-config.c:804,1
    - Dst: g_key_file_new
      Src: /src/fwupd/libfwupdplugin/fu-config.c:805,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-config.c:806,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-config.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 808
    functionName: fu_config_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_key_file_new
    - g_hash_table_new_full
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_config_init(FuConfig *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:813,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:814,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-config.c:815,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-config.c:816,1
    - Dst: g_key_file_unref
      Src: /src/fwupd/libfwupdplugin/fu-config.c:817,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-config.c:818,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-config.c:819,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-config.c:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 821
    functionName: fu_config_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_object_unref
    - G_OBJECT_CLASS
    - g_key_file_unref
    - g_free
    - FU_CONFIG
    - g_hash_table_unref
    - GET_PRIVATE
    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:826,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-config.c:833,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-config.c:838,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-config.c:847,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-config.c:848,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-config.c:864,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-config.c:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuConfigClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 873
    functionName: fu_config_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_signal_new
    - g_param_spec_object
    - G_OBJECT_CLASS
    - G_TYPE_FROM_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_config_class_init(FuConfigClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-config.c:889,1
    - Dst: FU_IS_PATH_STORE
      Src: /src/fwupd/libfwupdplugin/fu-config.c:889,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-config.c:890,1
    - Dst: FU_CONFIG
      Src: /src/fwupd/libfwupdplugin/fu-config.c:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pstore
    argTypes:
    - FuPathStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 892
    functionName: fu_config_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_object_new
    - FU_CONFIG
    - FU_IS_PATH_STORE
    linkageType: ''
    returnType: FuConfig
    signature: 'FuConfig *

      fu_config_new(FuPathStore *pstore)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 1042
    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_bytes_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_bytes_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_ptr_array_new_with_free_func
    - g_new0
    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_free
    - g_ptr_array_unref
    linkageType: ''
    returnType: void
    signature: void fu_coswid_firmware_payload_free(FuCoswidFirmwarePayload *payload)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:120,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:121,1
    - Dst: fu_cbor_item_map_length
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:123,1
    - Dst: fu_cbor_item_map_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:128,1
    - Dst: fu_coswid_read_tag
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:129,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:130,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:134,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:135,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:137,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:141,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:142,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:144,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:149,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:150,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:152,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:156,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:157,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:158,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - item
    - user_data
    - error
    argTypes:
    - FuCborItem*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 164
    functionName: fu_coswid_firmware_parse_meta
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_map_length
    - fu_coswid_read_string
    - FU_COSWID_FIRMWARE
    - g_debug
    - fu_coswid_tag_to_string
    - g_prefix_error
    - g_prefix_error_literal
    - fu_coswid_read_tag
    - g_free
    - fu_cbor_item_map_index
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_parse_meta(FuCborItem *item, gpointer user_data,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:170,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:171,1
    - Dst: fu_cbor_item_map_length
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:173,1
    - Dst: fu_cbor_item_map_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:178,1
    - Dst: fu_coswid_read_tag
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:179,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:180,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:184,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:185,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:187,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:191,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:192,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - item
    - user_data
    - error
    argTypes:
    - FuCborItem*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 199
    functionName: fu_coswid_firmware_parse_evidence
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_map_length
    - fu_coswid_read_string
    - FU_COSWID_FIRMWARE
    - g_debug
    - fu_coswid_tag_to_string
    - g_prefix_error
    - g_prefix_error_literal
    - fu_coswid_read_tag
    - g_free
    - fu_cbor_item_map_index
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_parse_evidence(FuCborItem *item, gpointer
      user_data, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:205,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:206,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:207,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:207,1
    - Dst: fu_cbor_item_map_length
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:209,1
    - Dst: fu_cbor_item_map_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:214,1
    - Dst: fu_coswid_read_tag
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:215,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:216,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:220,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:221,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:223,1
    - Dst: fu_cbor_item_get_integer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:228,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:229,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:234,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:235,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:236,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:241,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:241,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - item
    - user_data
    - error
    argTypes:
    - FuCborItem*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 243
    functionName: fu_coswid_firmware_parse_link
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_map_length
    - fu_coswid_read_string
    - FU_COSWID_FIRMWARE
    - g_new0
    - fu_cbor_item_map_index
    - g_debug
    - fu_coswid_tag_to_string
    - g_steal_pointer
    - g_ptr_array_add
    - g_prefix_error
    - g_prefix_error_literal
    - fu_cbor_item_get_integer
    - fu_coswid_read_tag
    - g_free
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_parse_link(FuCborItem *item, gpointer user_data,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:251,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:251,1
    - Dst: fu_cbor_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:256,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:257,1
    - Dst: fu_cbor_item_array_length
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:263,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:264,1
    - Dst: fu_cbor_item_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:270,1
    - Dst: fu_cbor_item_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:271,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:273,1
    - Dst: fu_cbor_item_get_integer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:279,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:280,1
    - Dst: fu_cbor_item_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:286,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:288,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:291,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:291,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - item
    - user_data
    - error
    argTypes:
    - FuCborItem*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 293
    functionName: fu_coswid_firmware_parse_hash
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_get_bytes
    - g_new0
    - g_set_error_literal
    - g_steal_pointer
    - g_ptr_array_add
    - g_prefix_error_literal
    - fu_cbor_item_get_kind
    - fu_cbor_item_get_integer
    - fu_cbor_item_array_index
    - g_autoptr
    - fu_cbor_item_array_length
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_parse_hash(FuCborItem *item, gpointer user_data,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_cbor_item_array_length
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:299,1
    - Dst: fu_cbor_item_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:300,1
    - Dst: fu_coswid_firmware_parse_hash
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - item
    - user_data
    - error
    argTypes:
    - FuCborItem*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 305
    functionName: fu_coswid_firmware_parse_hash_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_coswid_firmware_parse_hash
    - fu_cbor_item_array_index
    - fu_cbor_item_array_length
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_parse_hash_array(FuCborItem *item, gpointer
      user_data, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:311,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:312,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:313,1
    - Dst: fu_coswid_firmware_payload_new
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:313,1
    - Dst: fu_cbor_item_map_length
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:315,1
    - Dst: fu_cbor_item_map_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:320,1
    - Dst: fu_coswid_read_tag
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:321,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:322,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:326,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:327,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:329,1
    - Dst: fu_cbor_item_get_integer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:334,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:337,1
    - Dst: fu_cbor_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:345,1
    - Dst: fu_cbor_item_array_length
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:346,1
    - Dst: fu_cbor_item_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:347,1
    - Dst: fu_cbor_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:350,1
    - Dst: fu_coswid_firmware_parse_hash_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:351,1
    - Dst: fu_coswid_firmware_parse_hash
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:356,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:362,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:369,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:370,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:371,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:376,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:376,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 3
    argNames:
    - item
    - user_data
    - error
    argTypes:
    - FuCborItem*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 308
    functionDepth: 4
    functionLinenumber: 308
    functionLinenumberEnd: 378
    functionName: fu_coswid_firmware_parse_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_get_integer
    - fu_coswid_read_tag
    - g_free
    - fu_cbor_item_array_length
    - g_debug
    - g_set_error_literal
    - g_prefix_error_literal
    - GET_PRIVATE
    - fu_cbor_item_map_length
    - fu_cbor_item_map_index
    - fu_coswid_read_string
    - fu_coswid_firmware_payload_new
    - FU_COSWID_FIRMWARE
    - fu_coswid_tag_to_string
    - g_steal_pointer
    - g_ptr_array_add
    - g_prefix_error
    - fu_cbor_item_get_kind
    - fu_cbor_item_array_index
    - fu_coswid_firmware_parse_hash
    - fu_coswid_firmware_parse_hash_array
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_parse_file(FuCborItem *item, gpointer user_data,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:384,1
    - Dst: fu_cbor_item_map_length
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:385,1
    - Dst: fu_cbor_item_map_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:390,1
    - Dst: fu_coswid_read_tag
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:391,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:392,1
    - Dst: fu_coswid_parse_one_or_many
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:396,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:402,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:403,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:404,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - item
    - user_data
    - error
    argTypes:
    - FuCborItem*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 410
    functionName: fu_coswid_firmware_parse_path_elements
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_map_length
    - FU_COSWID_FIRMWARE
    - g_debug
    - fu_coswid_parse_one_or_many
    - fu_coswid_tag_to_string
    - g_prefix_error
    - fu_coswid_read_tag
    - fu_cbor_item_map_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_parse_path_elements(FuCborItem *item, gpointer
      user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:416,1
    - Dst: fu_cbor_item_map_length
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:417,1
    - Dst: fu_cbor_item_map_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:422,1
    - Dst: fu_coswid_read_tag
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:423,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:424,1
    - Dst: fu_coswid_parse_one_or_many
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:428,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:434,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:435,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:436,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - item
    - user_data
    - error
    argTypes:
    - FuCborItem*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 413
    functionDepth: 3
    functionLinenumber: 413
    functionLinenumberEnd: 442
    functionName: fu_coswid_firmware_parse_directory
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_map_length
    - FU_COSWID_FIRMWARE
    - g_debug
    - fu_coswid_parse_one_or_many
    - fu_coswid_tag_to_string
    - g_prefix_error
    - fu_coswid_read_tag
    - fu_cbor_item_map_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_parse_directory(FuCborItem *item, gpointer
      user_data, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:448,1
    - Dst: fu_cbor_item_map_length
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:449,1
    - Dst: fu_cbor_item_map_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:454,1
    - Dst: fu_coswid_read_tag
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:455,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:456,1
    - Dst: fu_coswid_parse_one_or_many
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:460,1
    - Dst: fu_coswid_parse_one_or_many
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:466,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:472,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:473,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:474,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - item
    - user_data
    - error
    argTypes:
    - FuCborItem*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 480
    functionName: fu_coswid_firmware_parse_payload
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_map_length
    - FU_COSWID_FIRMWARE
    - g_debug
    - fu_coswid_parse_one_or_many
    - fu_coswid_tag_to_string
    - g_prefix_error
    - fu_coswid_read_tag
    - fu_cbor_item_map_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_parse_payload(FuCborItem *item, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:488,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:490,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - entity
    - item
    - error
    argTypes:
    - FuCoswidFirmwareEntity*
    - FuCborItem*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 498
    functionName: fu_coswid_firmware_parse_entity_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_coswid_read_string
    - g_free
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_coswid_firmware_parse_entity_name(FuCoswidFirmwareEntity
      *entity,\n\t\t\t\t     FuCborItem *item,\n\t\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:506,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:508,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - entity
    - item
    - error
    argTypes:
    - FuCoswidFirmwareEntity*
    - FuCborItem*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 516
    functionName: fu_coswid_firmware_parse_entity_regid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_coswid_read_string
    - g_free
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_coswid_firmware_parse_entity_regid(FuCoswidFirmwareEntity
      *entity,\n\t\t\t\t      FuCborItem *item,\n\t\t\t\t      GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_cbor_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:523,1
    - Dst: fu_cbor_item_get_integer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:525,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:526,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:530,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:537,1
    - Dst: fu_cbor_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:539,1
    - Dst: fu_cbor_item_array_length
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:540,1
    - Dst: fu_cbor_item_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:542,1
    - Dst: fu_cbor_item_get_integer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:543,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:544,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:549,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:556,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:559,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - entity
    - item
    - error
    argTypes:
    - FuCoswidFirmwareEntity*
    - FuCborItem*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 568
    functionName: fu_coswid_firmware_parse_entity_role
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - FU_BIT_SET
    - g_prefix_error_literal
    - fu_cbor_item_get_kind
    - fu_cbor_item_get_integer
    - fu_cbor_item_array_index
    - fu_cbor_item_array_length
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_coswid_firmware_parse_entity_role(FuCoswidFirmwareEntity
      *entity,\n\t\t\t\t     FuCborItem *item,\n\t\t\t\t     GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:574,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:575,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:576,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:576,1
    - Dst: fu_cbor_item_map_length
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:578,1
    - Dst: fu_cbor_item_map_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:583,1
    - Dst: fu_coswid_read_tag
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:584,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:585,1
    - Dst: fu_coswid_firmware_parse_entity_name
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:589,1
    - Dst: fu_coswid_firmware_parse_entity_regid
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:592,1
    - Dst: fu_coswid_firmware_parse_entity_role
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:595,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:598,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:599,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:600,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:606,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:613,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:621,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:621,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - item
    - user_data
    - error
    argTypes:
    - FuCborItem*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 571
    functionDepth: 4
    functionLinenumber: 571
    functionLinenumberEnd: 623
    functionName: fu_coswid_firmware_parse_entity
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_map_length
    - FU_COSWID_FIRMWARE
    - g_new0
    - fu_cbor_item_map_index
    - g_debug
    - fu_coswid_tag_to_string
    - g_set_error_literal
    - fu_coswid_firmware_parse_entity_regid
    - g_prefix_error
    - fu_coswid_firmware_parse_entity_name
    - fu_coswid_firmware_parse_entity_role
    - g_ptr_array_add
    - g_steal_pointer
    - fu_coswid_read_tag
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_parse_entity(FuCborItem *item, gpointer
      user_data, GError **error)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:631,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:632,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:634,1
    - Dst: fu_cbor_parse
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:636,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:644,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:647,1
    - Dst: fu_cbor_item_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:648,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:649,1
    - Dst: fu_cbor_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:653,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:654,1
    - Dst: fu_cbor_item_map_length
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:662,1
    - Dst: fu_cbor_item_map_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:667,1
    - Dst: fu_coswid_read_tag
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:668,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:669,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:675,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:677,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:680,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:682,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:683,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:685,1
    - Dst: fu_coswid_read_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:689,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:691,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:694,1
    - Dst: fu_coswid_read_version_scheme
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:696,1
    - Dst: fu_coswid_parse_one_or_many
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:701,1
    - Dst: fu_coswid_parse_one_or_many
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:707,1
    - Dst: fu_coswid_parse_one_or_many
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:713,1
    - Dst: fu_coswid_parse_one_or_many
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:719,1
    - Dst: fu_coswid_parse_one_or_many
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:725,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:731,1
    - Dst: fu_coswid_tag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:731,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:736,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:736,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:738,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 73
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 625
    functionDepth: 5
    functionLinenumber: 625
    functionLinenumberEnd: 747
    functionName: fu_coswid_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version
    - fu_coswid_read_tag
    - g_free
    - fu_coswid_read_version_scheme
    - fu_firmware_get_id
    - g_debug
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_cbor_item_to_string
    - fu_firmware_set_size
    - GET_PRIVATE
    - g_getenv
    - fu_cbor_item_map_length
    - fu_coswid_parse_one_or_many
    - fu_cbor_item_map_index
    - fu_coswid_read_string
    - FU_COSWID_FIRMWARE
    - fu_firmware_set_id
    - fu_coswid_tag_to_string
    - g_prefix_error
    - fu_cbor_item_get_kind
    - fu_cbor_parse
    - fu_firmware_get_version
    - g_autoptr
    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:752,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:753,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:771,1
    - Dst: fwupd_checksum_type_to_string_display
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:775,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:781,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:783,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:785,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:788,1
    - Dst: fwupd_checksum_type_to_string_display
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:792,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - firmware
    - csum_kind
    - error
    argTypes:
    - FuFirmware*
    - GChecksumType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 794
    functionName: fu_coswid_firmware_get_checksum
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_COSWID_FIRMWARE
    - g_set_error
    - fu_bytes_to_string
    - fwupd_checksum_type_to_string_display
    - g_ptr_array_index
    - GET_PRIVATE
    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:809,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:810,1
    - Dst: FU_IS_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCoswidFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 812
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:827,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:828,1
    - Dst: FU_IS_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCoswidFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 830
    functionName: fu_coswid_firmware_get_persistent_id
    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_persistent_id(FuCoswidFirmware *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:845,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:846,1
    - Dst: FU_IS_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCoswidFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 848
    functionName: fu_coswid_firmware_get_device_id
    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_device_id(FuCoswidFirmware *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:853,1
    - Dst: fu_cbor_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:853,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:854,1
    - Dst: fu_cbor_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:854,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:855,1
    - Dst: fu_cbor_item_new_bytes
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:855,1
    - Dst: fu_cbor_item_array_append
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:856,1
    - Dst: fu_cbor_item_array_append
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:858,1
    - Dst: fu_cbor_item_array_append
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:860,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - root
    - hash
    - error
    argTypes:
    - FuCborItem*
    - FuCoswidFirmwareHash*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 865
    functionName: fu_coswid_firmware_write_hash
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_cbor_item_array_append
    - fu_cbor_item_new_integer
    - fu_cbor_item_new_bytes
    - fu_cbor_item_new_array
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_write_hash(FuCborItem *root, FuCoswidFirmwareHash
      *hash, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:870,1
    - Dst: fu_cbor_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:870,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:871,1
    - Dst: fu_cbor_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:871,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:873,1
    - Dst: fu_coswid_write_tag_integer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:875,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:877,1
    - Dst: fu_cbor_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:877,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:879,1
    - Dst: fu_coswid_firmware_write_hash
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:880,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:881,1
    - Dst: fu_coswid_write_tag_item
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:885,1
    - Dst: fu_coswid_write_tag_item
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:887,1
    - Dst: fu_cbor_item_array_append
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:888,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - root
    - payload
    - error
    argTypes:
    - FuCborItem*
    - FuCoswidFirmwarePayload*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 867
    functionDepth: 3
    functionLinenumber: 867
    functionLinenumberEnd: 889
    functionName: fu_coswid_firmware_write_payload
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_coswid_write_tag_string
    - fu_cbor_item_array_append
    - fu_coswid_firmware_write_hash
    - g_prefix_error_literal
    - fu_coswid_write_tag_integer
    - fu_coswid_write_tag_item
    - fu_cbor_item_new_map
    - fu_cbor_item_new_array
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_write_payload(FuCborItem *root, FuCoswidFirmwarePayload
      *payload, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:894,1
    - Dst: fu_cbor_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:894,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:895,1
    - Dst: fu_cbor_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:895,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:897,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:899,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:901,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:902,1
    - Dst: fu_cbor_item_new_integer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:902,1
    - Dst: fu_cbor_item_array_append
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:903,1
    - Dst: fu_coswid_write_tag_item
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:907,1
    - Dst: fu_cbor_item_array_append
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:908,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - root
    - entity
    - error
    argTypes:
    - FuCborItem*
    - FuCoswidFirmwareEntity*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 891
    functionDepth: 3
    functionLinenumber: 891
    functionLinenumberEnd: 909
    functionName: fu_coswid_firmware_write_entity
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_coswid_write_tag_string
    - FU_BIT_IS_SET
    - fu_cbor_item_array_append
    - fu_cbor_item_new_integer
    - fu_coswid_write_tag_item
    - fu_cbor_item_new_map
    - fu_cbor_item_new_array
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_write_entity(FuCborItem *root, FuCoswidFirmwareEntity
      *entity, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:914,1
    - Dst: fu_cbor_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:914,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:915,1
    - Dst: fu_cbor_item_array_append
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - root
    - device_id
    - error
    argTypes:
    - FuCborItem*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 911
    functionDepth: 3
    functionLinenumber: 911
    functionLinenumberEnd: 917
    functionName: fu_coswid_firmware_write_evidence
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_coswid_write_tag_string
    - g_autoptr
    - fu_cbor_item_array_append
    - fu_cbor_item_new_map
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_write_evidence(FuCborItem *root, const
      gchar *device_id, GError **error)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:922,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:923,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:924,1
    - Dst: fu_cbor_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:924,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:925,1
    - Dst: fu_cbor_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:925,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:928,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:929,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:931,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:931,1
    - Dst: fu_coswid_write_tag_bytestring
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:935,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:940,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:942,1
    - Dst: fu_coswid_write_tag_bool
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:945,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:947,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:948,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:949,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:951,1
    - Dst: fu_coswid_write_tag_integer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:954,1
    - Dst: fu_coswid_write_tag_item
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:957,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:958,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:960,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:962,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:967,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:974,1
    - Dst: fu_cbor_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:974,1
    - Dst: fu_coswid_firmware_write_evidence
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:975,1
    - Dst: fu_coswid_write_tag_item
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:977,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:982,1
    - Dst: fu_cbor_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:982,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:984,1
    - Dst: fu_coswid_firmware_write_entity
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:985,1
    - Dst: fu_coswid_write_tag_item
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:988,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:993,1
    - Dst: fu_cbor_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:993,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:995,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:996,1
    - Dst: fu_cbor_item_new_map
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:996,1
    - Dst: fu_coswid_write_tag_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:998,1
    - Dst: fu_coswid_write_tag_integer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1002,1
    - Dst: fu_cbor_item_array_append
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1003,1
    - Dst: fu_coswid_write_tag_item
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1006,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1011,1
    - Dst: fu_cbor_item_new_array
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1011,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1013,1
    - Dst: fu_coswid_firmware_write_payload
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1014,1
    - Dst: fu_coswid_write_tag_item
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1017,1
    - Dst: fu_cbor_item_write
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1021,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 71
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 919
    functionDepth: 5
    functionLinenumber: 919
    functionLinenumberEnd: 1022
    functionName: fu_coswid_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_coswid_write_tag_item
    - fu_coswid_firmware_write_evidence
    - fu_coswid_write_tag_bytestring
    - g_ptr_array_index
    - fu_firmware_get_id
    - fu_cbor_item_array_append
    - fu_cbor_item_write
    - fwupd_guid_from_string
    - fu_coswid_firmware_write_payload
    - fu_cbor_item_new_map
    - GET_PRIVATE
    - fu_coswid_write_tag_string
    - fu_coswid_write_tag_bool
    - fu_coswid_firmware_write_entity
    - fu_coswid_write_tag_integer
    - fu_cbor_item_new_array
    - FU_COSWID_FIRMWARE
    - fu_firmware_get_version
    - g_autoptr
    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:1027,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1030,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1031,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1031,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1034,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1036,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1039,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1040,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1042,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1045,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1048,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1051,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1052,1
    - Dst: fu_coswid_entity_role_from_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1053,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1056,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1063,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1068,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1068,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - self
    - n
    - error
    argTypes:
    - FuCoswidFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1070
    functionName: fu_coswid_firmware_build_entity
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - xb_node_query_text
    - g_new0
    - g_set_error
    - g_steal_pointer
    - g_ptr_array_add
    - fwupd_error_convert
    - FU_BIT_SET
    - xb_node_query
    - g_autoptr
    - xb_node_get_text
    - fu_coswid_entity_role_from_string
    - g_ptr_array_index
    - GET_PRIVATE
    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:1075,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1077,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1077,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1080,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1082,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1085,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1088,1
    - Dst: fu_coswid_link_rel_from_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1090,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1092,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1102,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - self
    - n
    - error
    argTypes:
    - FuCoswidFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1072
    functionDepth: 1
    functionLinenumber: 1072
    functionLinenumberEnd: 1104
    functionName: fu_coswid_firmware_build_link
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - xb_node_query_text
    - g_new0
    - g_set_error
    - g_steal_pointer
    - g_ptr_array_add
    - fwupd_error_convert
    - fu_coswid_link_rel_from_string
    - g_autoptr
    - GET_PRIVATE
    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:1113,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1113,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1116,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1118,1
    - Dst: fu_bytes_from_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1121,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1126,1
    - Dst: fu_coswid_hash_alg_from_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1128,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1130,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1140,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - self
    - n
    - payload
    - error
    argTypes:
    - FuCoswidFirmware*
    - XbNode*
    - FuCoswidFirmwarePayload*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1106
    functionDepth: 3
    functionLinenumber: 1106
    functionLinenumberEnd: 1142
    functionName: fu_coswid_firmware_build_hash
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - g_new0
    - g_set_error
    - fu_bytes_from_string
    - g_steal_pointer
    - g_ptr_array_add
    - fwupd_error_convert
    - fu_coswid_hash_alg_from_string
    - g_autoptr
    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:1147,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1150,1
    - Dst: fu_coswid_firmware_payload_new
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1150,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1151,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1154,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1156,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1157,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1162,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1165,1
    - Dst: fu_coswid_firmware_build_hash
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1166,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1172,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - self
    - n
    - error
    argTypes:
    - FuCoswidFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1144
    functionDepth: 4
    functionLinenumber: 1144
    functionLinenumberEnd: 1174
    functionName: fu_coswid_firmware_build_payload
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - xb_node_query_text
    - fu_coswid_firmware_payload_new
    - fu_coswid_firmware_build_hash
    - xb_node_query_text_as_uint
    - g_steal_pointer
    - g_ptr_array_add
    - xb_node_query
    - g_autoptr
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_coswid_firmware_build_payload(FuCoswidFirmware *self, XbNode
      *n, GError **error)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1179,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1180,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1182,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1183,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1184,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1187,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1189,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1190,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1192,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1193,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1195,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1196,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1198,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1199,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1201,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1203,1
    - Dst: fu_coswid_version_scheme_from_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1205,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1207,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1217,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1220,1
    - Dst: fu_coswid_firmware_build_link
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1221,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1227,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1230,1
    - Dst: fu_coswid_firmware_build_payload
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1231,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1237,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1240,1
    - Dst: fu_coswid_firmware_build_entity
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1241,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1176
    functionDepth: 5
    functionLinenumber: 1176
    functionLinenumberEnd: 1248
    functionName: fu_coswid_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - xb_node_query_text
    - fu_coswid_version_scheme_from_string
    - FU_COSWID_FIRMWARE
    - g_set_error
    - fu_coswid_firmware_build_link
    - fu_coswid_firmware_build_entity
    - xb_node_query
    - fu_coswid_firmware_build_payload
    - g_autoptr
    - g_ptr_array_index
    - GET_PRIVATE
    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:1253,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1254,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1256,1
    - Dst: fu_coswid_version_scheme_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1258,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1260,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1261,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1262,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1263,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1264,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1266,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1267,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1267,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1268,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1270,1
    - Dst: fu_coswid_link_rel_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1272,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1276,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1277,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1277,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1278,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1279,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1281,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1282,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1282,1
    - Dst: fu_bytes_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1283,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1284,1
    - Dst: fu_coswid_hash_alg_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1286,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1287,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1291,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1292,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1292,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1293,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1294,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1296,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1297,1
    - Dst: fu_coswid_entity_role_to_string
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1299,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1250
    functionDepth: 1
    functionLinenumber: 1250
    functionLinenumberEnd: 1303
    functionName: fu_coswid_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_BIT_IS_SET
    - fu_coswid_link_rel_to_string
    - FU_COSWID_FIRMWARE
    - fu_coswid_entity_role_to_string
    - fu_coswid_hash_alg_to_string
    - fu_xmlb_builder_insert_kx
    - fu_bytes_to_string
    - fu_xmlb_builder_insert_kv
    - xb_builder_node_insert
    - fu_coswid_version_scheme_to_string
    - g_autoptr
    - g_ptr_array_index
    - GET_PRIVATE
    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:1308,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1310,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1312,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1314,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1315,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1315,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1316,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCoswidFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1305
    functionDepth: 1
    functionLinenumber: 1305
    functionLinenumberEnd: 1317
    functionName: fu_coswid_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    - 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:1322,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1323,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1325,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1326,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1327,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1328,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1329,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1330,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1331,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1332,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1319
    functionDepth: 0
    functionLinenumber: 1319
    functionLinenumberEnd: 1335
    functionName: fu_coswid_firmware_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_COSWID_FIRMWARE
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - g_free
    - GET_PRIVATE
    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:1340,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCoswidFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1337
    functionDepth: 0
    functionLinenumber: 1337
    functionLinenumberEnd: 1348
    functionName: fu_coswid_firmware_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    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:1360,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c:1360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1357
    functionDepth: 0
    functionLinenumber: 1357
    functionLinenumberEnd: 1361
    functionName: fu_coswid_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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:51,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:53,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:54,1
    - Dst: fu_xmlb_builder_insert_kx
      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_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:57,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:58,1
    - Dst: fu_efi_hard_drive_device_path_partition_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:61,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:62,1
    - Dst: fu_efi_hard_drive_device_path_signature_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 66
    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_xmlb_builder_insert_kx
    - fwupd_guid_to_string
    - fu_efi_hard_drive_device_path_signature_type_to_string
    - fu_xmlb_builder_insert_kv
    - fu_efi_hard_drive_device_path_partition_format_to_string
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:73,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:75,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:77,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:78,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:79,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:81,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:82,1
    - Dst: fu_efi_hard_drive_device_path_partition_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:85,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:86,1
    - Dst: fu_efi_hard_drive_device_path_signature_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 90
    functionName: fu_efi_hard_drive_device_path_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - FU_EFI_HARD_DRIVE_DEVICE_PATH
    - fwupd_guid_to_string
    - fwupd_json_object_add_integer
    - fu_efi_hard_drive_device_path_signature_type_to_string
    - fu_efi_hard_drive_device_path_partition_format_to_string
    - fwupd_json_object_add_string
    linkageType: ''
    returnType: void
    signature: "void fu_efi_hard_drive_device_path_add_json(FwupdCodec *codec,\n\t\t\t\t
      \      FwupdJsonObject *json_obj,\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:98,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:99,1
    - Dst: fu_struct_efi_hard_drive_device_path_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:102,1
    - Dst: fu_struct_efi_hard_drive_device_path_get_partition_number
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:105,1
    - Dst: fu_struct_efi_hard_drive_device_path_get_partition_start
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:106,1
    - Dst: fu_struct_efi_hard_drive_device_path_get_partition_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:107,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:108,1
    - Dst: fu_struct_efi_hard_drive_device_path_get_partition_signature
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:109,1
    - Dst: fu_struct_efi_hard_drive_device_path_get_partition_format
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:111,1
    - Dst: fu_struct_efi_hard_drive_device_path_get_signature_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:112,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 117
    functionName: fu_efi_hard_drive_device_path_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - FU_EFI_HARD_DRIVE_DEVICE_PATH
    - fu_struct_efi_hard_drive_device_path_get_partition_start
    - fu_struct_efi_hard_drive_device_path_parse_stream
    - fu_struct_efi_hard_drive_device_path_get_signature_type
    - fu_firmware_set_size
    - memcpy
    - fu_struct_efi_hard_drive_device_path_get_partition_format
    - fu_struct_efi_hard_drive_device_path_get_partition_number
    - fu_struct_efi_hard_drive_device_path_get_partition_signature
    - g_autoptr
    - fu_struct_efi_hard_drive_device_path_get_partition_size
    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:122,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:123,1
    - Dst: fu_struct_efi_hard_drive_device_path_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:123,1
    - Dst: fu_struct_efi_hard_drive_device_path_set_partition_number
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:126,1
    - Dst: fu_struct_efi_hard_drive_device_path_set_partition_start
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:127,1
    - Dst: fu_struct_efi_hard_drive_device_path_set_partition_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:128,1
    - Dst: fu_struct_efi_hard_drive_device_path_set_partition_signature
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:129,1
    - Dst: fu_struct_efi_hard_drive_device_path_set_partition_format
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:131,1
    - Dst: fu_struct_efi_hard_drive_device_path_set_signature_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:132,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 136
    functionName: fu_efi_hard_drive_device_path_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - FU_EFI_HARD_DRIVE_DEVICE_PATH
    - fu_struct_efi_hard_drive_device_path_set_partition_size
    - g_steal_pointer
    - 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
    - fu_struct_efi_hard_drive_device_path_set_partition_start
    - fu_struct_efi_hard_drive_device_path_set_partition_format
    - g_autoptr
    - fu_struct_efi_hard_drive_device_path_new
    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:141,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:146,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:148,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:152,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:154,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:158,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:160,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:164,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:166,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:172,1
    - Dst: fu_efi_hard_drive_device_path_partition_format_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:175,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:177,1
    - Dst: fu_efi_hard_drive_device_path_signature_type_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:180,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 185
    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
    - xb_node_query_text
    - fu_strtoull
    - fwupd_guid_from_string
    - fu_efi_hard_drive_device_path_signature_type_from_string
    - fu_efi_hard_drive_device_path_partition_format_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:190,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:190,1
    - Dst: fu_efi_device_path_set_subtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:191,1
    - Dst: FU_EFI_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiHardDriveDevicePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 193
    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_FIRMWARE
    - fu_firmware_set_idx
    - FU_EFI_DEVICE_PATH
    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:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiHardDriveDevicePathClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 203
    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:218,1
    - Dst: FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiHardDriveDevicePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: fu_efi_hard_drive_device_path_get_partition_signature
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
    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:237,1
    - Dst: FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiHardDriveDevicePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: fu_efi_hard_drive_device_path_get_partition_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
    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:256,1
    - Dst: FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiHardDriveDevicePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: fu_efi_hard_drive_device_path_get_partition_start
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
    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:273,1
    - Dst: FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiHardDriveDevicePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 275
    functionName: fu_efi_hard_drive_device_path_get_partition_number
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
    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:291,1
    - Dst: FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:291,1
    - 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: memcmp
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:298,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - dp1
    - dp2
    argTypes:
    - FuEfiHardDriveDevicePath*
    - FuEfiHardDriveDevicePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 307
    functionName: fu_efi_hard_drive_device_path_compare
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - memcmp
    - FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
    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: 313
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 313
    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: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_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:345,1
    - Dst: fu_efi_hard_drive_device_path_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:345,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:348,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:350,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:350,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:351,1
    - Dst: fu_volume_get_block_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:354,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:356,1
    - Dst: fu_volume_get_partition_number
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:361,1
    - Dst: fu_volume_get_partition_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:362,1
    - Dst: fu_volume_get_partition_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:363,1
    - Dst: fu_volume_get_partition_kind
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:366,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:368,1
    - Dst: fu_volume_get_partition_uuid
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:374,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:376,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:382,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:383,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:387,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:392,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:394,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:394,1
    - Dst: fu_firmware_strparse_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:395,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:396,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:400,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:403,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:413,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c:422,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 2
    argNames:
    - volume
    - error
    argTypes:
    - FuVolume*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 341
    functionDepth: 4
    functionLinenumber: 341
    functionLinenumberEnd: 423
    functionName: fu_efi_hard_drive_device_path_new_from_volume
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-hard-drive-device-path.c
    functionUses: 1
    functionsReached:
    - FU_IS_VOLUME
    - fu_volume_get_partition_uuid
    - fu_volume_get_partition_offset
    - fu_firmware_strparse_uint32_safe
    - fu_volume_get_block_size
    - g_auto
    - fu_efi_hard_drive_device_path_new
    - fu_volume_get_partition_size
    - g_debug
    - fu_volume_get_partition_kind
    - g_set_error_literal
    - fwupd_guid_from_string
    - g_strsplit
    - fu_memwrite_uint32_safe
    - fu_volume_get_partition_number
    - g_return_val_if_fail
    - g_strcmp0
    - g_set_error
    - g_steal_pointer
    - g_prefix_error
    - strlen
    - g_autoptr
    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: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 1060
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_SECTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:42,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:43,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:45,1
    - Dst: fu_xmlb_builder_insert_kv
      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_efi_guid_to_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:51,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:51,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:52,1
    - Dst: fu_efi_section_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 56
    functionName: fu_efi_section_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_xmlb_builder_insert_kx
    - fu_efi_guid_to_name
    - fu_efi_section_type_to_string
    - fu_xmlb_builder_insert_kv
    - FU_EFI_SECTION
    - GET_PRIVATE
    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:64,1
    - Dst: fu_efi_volume_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:64,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:65,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:72,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuEfiSection*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 73
    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:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:83,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:86,1
    - Dst: fu_lzma_decompress_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:89,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:91,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:94,1
    - Dst: fu_efi_parse_sections
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:95,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:95,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuEfiSection*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 100
    functionName: fu_efi_section_parse_lzma_sections
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_bytes
    - g_memory_input_stream_new_from_bytes
    - fu_lzma_decompress_bytes
    - FU_FIRMWARE
    - g_prefix_error_literal
    - fu_efi_parse_sections
    - g_autoptr
    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:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:109,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:112,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:119,1
    - Dst: fu_utf16_to_utf8_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuEfiSection*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 126
    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
    - g_autoptr
    - GET_PRIVATE
    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:136,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:138,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:139,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:142,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:142,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:143,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:145,1
    - Dst: fu_utf16_to_utf8_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:148,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:150,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:153,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuEfiSection*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 128
    functionDepth: 4
    functionLinenumber: 128
    functionLinenumberEnd: 155
    functionName: fu_efi_section_parse_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_raw
    - fu_input_stream_read_u16
    - fu_firmware_set_version
    - FU_FIRMWARE
    - g_prefix_error_literal
    - fu_input_stream_read_byte_array
    - fu_utf16_to_utf8_byte_array
    - 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:163,1
    - Dst: fu_struct_efi_section_compression_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:164,1
    - Dst: fu_struct_efi_section_compression_get_compression_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:167,1
    - Dst: fu_efi_parse_sections
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:169,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:169,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:170,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:174,1
    - Dst: fu_efi_lz77_decompressor_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:174,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:175,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:176,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:182,1
    - Dst: fu_efi_parse_sections
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:185,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:185,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuEfiSection*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 191
    functionName: fu_efi_section_parse_compression_sections
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_struct_efi_section_compression_parse_stream
    - fu_struct_efi_section_compression_get_compression_type
    - FU_FIRMWARE
    - fu_efi_lz77_decompressor_new
    - fu_firmware_parse_stream
    - g_prefix_error_literal
    - fu_efi_parse_sections
    - 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:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - guid
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 221
    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:231,1
    - Dst: fu_struct_efi_section_freeform_subtype_guid_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:233,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:238,1
    - Dst: fu_struct_efi_section_freeform_subtype_guid_get_guid
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:238,1
    - Dst: fu_efi_section_freeform_subtype_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:240,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:242,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuEfiSection*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 247
    functionName: fu_efi_section_parse_freeform_subtype_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_efi_section_freeform_subtype_guid_to_string
    - fwupd_guid_to_string
    - fu_struct_efi_section_freeform_subtype_guid_parse_stream
    - fu_struct_efi_section_freeform_subtype_guid_get_guid
    - 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: 29
    BranchProfiles: []
    Callsites:
    - Dst: FU_EFI_SECTION
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:255,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:256,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:261,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:262,1
    - Dst: fu_struct_efi_section_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:265,1
    - Dst: fu_struct_efi_section_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:270,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:271,1
    - Dst: fu_struct_efi_section2_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:272,1
    - Dst: fu_struct_efi_section2_get_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:275,1
    - Dst: fu_struct_efi_section2_get_extended_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:276,1
    - Dst: fu_struct_efi_section_get_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:279,1
    - Dst: fu_struct_efi_section_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:280,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:284,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:293,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:296,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:309,1
    - Dst: fu_struct_efi_section_guid_defined_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:310,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:313,1
    - Dst: fu_struct_efi_section_guid_defined_get_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:313,1
    - Dst: fu_firmware_set_id
      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:316,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:317,1
    - Dst: fu_struct_efi_section_guid_defined_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:321,1
    - Dst: fu_struct_efi_section_guid_defined_get_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:324,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:325,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:326,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:332,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:333,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:336,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:338,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:341,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:342,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:343,1
    - Dst: fu_efi_section_parse_volume_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:348,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:349,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:353,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:353,1
    - Dst: fu_efi_section_parse_lzma_sections
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:355,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:356,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:360,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:360,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:362,1
    - Dst: fu_efi_section_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:363,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:366,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:367,1
    - Dst: fu_efi_section_parse_user_interface
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:369,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:370,1
    - Dst: fu_efi_section_parse_version
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:374,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:375,1
    - Dst: fu_efi_section_parse_compression_sections
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:379,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:383,1
    - Dst: fu_efi_section_parse_freeform_subtype_guid
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:387,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:391,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:399,1
    - Dst: fu_efi_section_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:400,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:404,1
    - Dst: fu_efi_section_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:405,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 110
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 249
    functionDepth: 5
    functionLinenumber: 249
    functionLinenumberEnd: 412
    functionName: fu_efi_section_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - fu_efi_section_parse_volume_image
    - fu_struct_efi_section_guid_defined_get_offset
    - fwupd_guid_to_string
    - fu_struct_efi_section_guid_defined_parse_stream
    - fu_firmware_set_offset
    - fu_efi_section_parse_lzma_sections
    - fu_firmware_set_stream
    - fu_struct_efi_section_get_size
    - fu_struct_efi_section2_parse_stream
    - fu_firmware_get_id
    - fu_efi_section_parse_user_interface
    - g_debug
    - fu_efi_section_parse_compression_sections
    - g_prefix_error_literal
    - fu_efi_section_parse_freeform_subtype_guid
    - fu_firmware_set_size
    - GET_PRIVATE
    - fu_struct_efi_section_guid_defined_get_name
    - fu_struct_efi_section_parse_stream
    - g_warning
    - fu_struct_efi_section2_get_type
    - fu_partial_input_stream_new
    - fu_efi_section_parse_version
    - fu_struct_efi_section2_get_extended_size
    - g_strcmp0
    - fu_firmware_set_id
    - g_set_error
    - fu_input_stream_size
    - fu_efi_section_type_to_string
    - fu_struct_efi_section_get_type
    - FU_EFI_SECTION
    - fu_size_checked_inc
    - g_autoptr
    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:417,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:418,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:419,1
    - Dst: fu_struct_efi_section_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:419,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:420,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:423,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:430,1
    - Dst: fu_struct_efi_section_guid_defined_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:431,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:432,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:432,1
    - Dst: fu_struct_efi_section_guid_defined_set_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:437,1
    - Dst: fu_struct_efi_section_guid_defined_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:438,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:440,1
    - Dst: fu_struct_efi_section_set_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:442,1
    - Dst: fu_struct_efi_section_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:443,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:443,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:446,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 414
    functionDepth: 3
    functionLinenumber: 414
    functionLinenumberEnd: 448
    functionName: fu_efi_section_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_byte_array_append_bytes
    - fu_byte_array_append_array
    - fu_struct_efi_section_new
    - fu_firmware_get_bytes_with_patches
    - fwupd_guid_from_string
    - fu_struct_efi_section_set_type
    - g_steal_pointer
    - FU_EFI_SECTION
    - g_bytes_get_size
    - fu_struct_efi_section_set_size
    - fu_struct_efi_section_guid_defined_new
    - g_autoptr
    - fu_struct_efi_section_guid_defined_set_name
    - fu_struct_efi_section_guid_defined_set_offset
    - GET_PRIVATE
    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:453,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:454,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:459,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:462,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:465,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:472,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 477
    functionName: fu_efi_section_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - xb_node_query_text
    - g_set_error
    - xb_node_query_text_as_uint
    - FU_EFI_SECTION
    - GET_PRIVATE
    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:482,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:485,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:485,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:486,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:486,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:488,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:488,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:489,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:489,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:491,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:491,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:493,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:493,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:494,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiSection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 495
    functionName: fu_efi_section_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    - GET_PRIVATE
    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:500,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:501,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:502,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 504
    functionName: fu_efi_section_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_EFI_SECTION
    - G_OBJECT_CLASS
    - GET_PRIVATE
    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:509,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiSectionClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 516
    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:528,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-section.c:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 529
    functionName: fu_efi_section_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-section.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 1067
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:50,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:51,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:52,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:53,1
    - Dst: fwupd_codec_string_append_int
      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
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:58,1
    - Dst: fu_display_state_to_string
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:61,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:63,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:63,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 66
    functionName: fu_drm_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - fu_display_state_to_string
    - FU_FIRMWARE
    - FU_DRM_DEVICE
    - fu_firmware_to_string
    - fwupd_codec_string_append
    - fwupd_codec_string_append_bool
    - fwupd_codec_string_append_int
    - GET_PRIVATE
    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:81,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:82,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDrmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: fu_drm_device_get_state
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DRM_DEVICE
    - GET_PRIVATE
    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:99,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:100,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDrmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: fu_drm_device_get_enabled
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DRM_DEVICE
    - GET_PRIVATE
    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:117,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:118,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDrmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: fu_drm_device_get_connector_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DRM_DEVICE
    - GET_PRIVATE
    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:135,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:136,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDrmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: fu_drm_device_get_crtc_x
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DRM_DEVICE
    - GET_PRIVATE
    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:153,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:154,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDrmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: fu_drm_device_get_crtc_y
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DRM_DEVICE
    - GET_PRIVATE
    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:171,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:172,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDrmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: fu_drm_device_get_crtc_width
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DRM_DEVICE
    - GET_PRIVATE
    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:189,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:190,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDrmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: fu_drm_device_get_crtc_height
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DRM_DEVICE
    - GET_PRIVATE
    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:207,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:208,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDrmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 210
    functionName: fu_drm_device_get_edid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DRM_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: FuEdid
    signature: 'FuEdid *

      fu_drm_device_get_edid(FuDrmDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:224,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:225,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:225,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - edid
    argTypes:
    - FuDrmDevice*
    - FuEdid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: fu_drm_device_set_edid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - g_set_object
    - FU_IS_DRM_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_drm_device_set_edid(FuDrmDevice *self, FuEdid *edid)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:232,1
    - Dst: FU_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:233,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:234,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:235,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:235,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:239,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:242,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:243,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:251,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:251,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:255,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:256,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:256,1
    - Dst: fu_display_state_from_string
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:260,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:261,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:261,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:266,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:270,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:270,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:272,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:273,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:275,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:279,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:279,1
    - Dst: fu_device_add_parent_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:281,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:283,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:283,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:288,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:289,1
    - Dst: fu_edid_new
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:289,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:290,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:292,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:295,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:295,1
    - Dst: fu_drm_device_set_edid
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:301,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:304,1
    - Dst: fu_edid_get_pnp_id
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:304,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:305,1
    - Dst: fu_edid_get_product_code
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:305,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:306,1
    - Dst: fu_edid_get_eisa_id
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:316,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:317,1
    - Dst: fu_edid_get_eisa_id
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:317,1
    - Dst: fu_edid_get_serial_number
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:318,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:319,1
    - Dst: fu_edid_get_serial_number
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:319,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:320,1
    - Dst: fu_edid_get_pnp_id
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:320,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 229
    functionDepth: 5
    functionLinenumber: 229
    functionLinenumberEnd: 325
    functionName: fu_drm_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_DRM_DEVICE
    - fu_edid_get_pnp_id
    - g_auto
    - fu_edid_get_serial_number
    - fu_display_state_from_string
    - fu_device_set_physical_id
    - fu_device_add_instance_str
    - g_set_error_literal
    - fu_edid_get_product_code
    - g_strsplit
    - fu_firmware_parse_bytes
    - fu_device_build_instance_id_full
    - fu_drm_device_set_edid
    - GET_PRIVATE
    - fu_udev_device_get_sysfs_path
    - g_path_get_basename
    - FU_FIRMWARE
    - fu_device_set_serial
    - FU_DEVICE
    - fu_device_set_name
    - g_strstr_len
    - fu_udev_device_read_sysfs
    - fu_device_add_parent_backend_id
    - fu_edid_get_eisa_id
    - FU_UDEV_DEVICE
    - fu_edid_new
    - g_strdup
    - g_strcmp0
    - fu_bytes_get_contents
    - fu_device_get_backend_parent_with_subsystem
    - g_autoptr
    - g_build_filename
    - fu_device_build_vendor_id
    - fu_device_add_instance_u16
    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:331,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:332,1
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:333,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:333,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:337,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:338,1
    - Dst: drmModeGetResources
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:338,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:340,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:347,1
    - Dst: drmModeGetCrtc
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:347,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 362
    functionName: fu_drm_device_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - FU_DRM_DEVICE
    - drmModeGetCrtc
    - fu_udev_device_get_io_channel
    - fu_io_channel_unix_get_fd
    - drmModeGetResources
    - FU_UDEV_DEVICE
    - g_autoptr
    - GET_PRIVATE
    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:367,1
    - Dst: FU_DRM_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:368,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:369,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:370,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:378,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:380,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 17
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 389
    functionName: fu_drm_device_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_object_ref
    - FU_DRM_DEVICE
    - GET_PRIVATE
    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:394,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDrmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 395
    functionName: fu_drm_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_DEVICE
    - fu_udev_device_add_open_flag
    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:400,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:401,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:403,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:405,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 408
    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
    - g_free
    - GET_PRIVATE
    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:413,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-drm-device.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDrmDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 420
    functionName: fu_drm_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-drm-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_drm_device_class_init(FuDrmDeviceClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_CONFIG_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:40,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:44,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - codec
    - json_obj
    - error
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 61
    functionName: fu_usb_config_descriptor_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_get_integer_with_default
    - FU_USB_CONFIG_DESCRIPTOR
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usb_config_descriptor_from_json(FwupdCodec *codec, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_USB_CONFIG_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:68,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:72,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: fu_usb_config_descriptor_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_integer
    - FU_USB_CONFIG_DESCRIPTOR
    linkageType: ''
    returnType: void
    signature: "void fu_usb_config_descriptor_add_json(FwupdCodec *codec,\n\t\t\t\t
      \ FwupdJsonObject *json_obj,\n\t\t\t\t  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_descriptor_hdr_parse_stream
    - FU_USB_CONFIG_DESCRIPTOR
    - fu_usb_descriptor_hdr_get_configuration_value
    - fu_usb_descriptor_hdr_get_configuration
    - g_autoptr
    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:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:151,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsbConfigDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: fu_usb_config_descriptor_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:164,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: fu_usb_config_descriptor_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-usb-config-descriptor.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_USB_CONFIG_DESCRIPTOR
    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_strcmp0
    - g_ptr_array_index
    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:
    - FU_DUMMY_EFIVARS
    - g_ptr_array_remove
    - g_set_error_literal
    - fu_dummy_efivars_find_by_guid_name
    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:
    - g_ptr_array_remove
    - g_ptr_array_new
    - g_pattern_match_simple
    - g_ptr_array_add
    - FU_DUMMY_EFIVARS
    - g_autoptr
    - g_ptr_array_index
    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_strcmp0
    - g_ptr_array_index
    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
    - fu_dummy_efivars_exists_guid
    - fu_dummy_efivars_find_by_guid_name
    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*
    - FuEfiVariableAttrs*
    - 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:
    - FU_DUMMY_EFIVARS
    - fu_dummy_efivars_find_by_guid_name
    - g_memdup2
    - g_set_error
    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  FuEfiVariableAttrs *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:
    - g_strdup
    - g_strcmp0
    - g_steal_pointer
    - g_ptr_array_add
    - g_autoptr
    - FU_DUMMY_EFIVARS
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    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:
    - FU_DUMMY_EFIVARS
    - strlen
    - g_ptr_array_index
    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
    - FuEfiVariableAttrs
    - 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:
    - g_strdup
    - fu_dummy_efivars_find_by_guid_name
    - g_new0
    - g_ptr_array_add
    - g_byte_array_set_size
    - g_byte_array_new
    - g_byte_array_append
    - FU_DUMMY_EFIVARS
    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  FuEfiVariableAttrs 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:
    - FU_DUMMY_EFIVARS
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    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:
    - FU_EFIVARS_CLASS
    - G_OBJECT_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:
    - g_object_new
    - FU_EFIVARS
    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: 1081
    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:
    - g_return_val_if_fail
    - FWUPD_IS_SECURITY_ATTR
    - fwupd_security_attr_get_fwupd_version
    - 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:
    - g_strcmp0
    - fwupd_bios_setting_get_id
    - fwupd_bios_setting_get_possible_values
    - fwupd_security_attr_set_bios_setting_target_value
    - g_strrstr
    - fu_context_get_bios_setting
    - fwupd_security_attr_set_bios_setting_id
    - fwupd_bios_setting_get_current_value
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_bios_setting_current_value
    - FU_SECURITY_ATTR
    - g_utf8_strdown
    - fwupd_bios_setting_get_read_only
    - fwupd_bios_setting_get_kind
    - g_ptr_array_index
    - GET_PRIVATE
    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:
    - GET_PRIVATE
    - g_clear_object
    - G_OBJECT_CLASS
    - FU_SECURITY_ATTR
    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_return_val_if_fail
    - fwupd_security_attr_set_appstream_id
    - FU_IS_CONTEXT
    - g_steal_pointer
    - g_object_ref
    - g_object_new
    - FWUPD_SECURITY_ATTR
    - g_autoptr
    - GET_PRIVATE
    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_return_val_if_fail
    - g_file_replace
    - G_OUTPUT_STREAM
    - g_steal_pointer
    - fwupd_error_convert
    - g_file_new_for_path
    - g_autoptr
    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:
    - g_return_val_if_fail
    - g_output_stream_write_bytes
    - G_IS_OUTPUT_STREAM
    - g_set_error
    - fwupd_error_convert
    - FU_IS_PROGRESS
    - g_bytes_get_size
    - fu_bytes_new_offset
    - fu_progress_set_percentage_full
    - g_autoptr
    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:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:15,1
    - Dst: fu_kernel_parse_cmdline
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:17,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:17,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:18,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:19,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:19,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:20,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:20,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:21,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:21,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:22,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:22,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:23,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:23,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:24,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:24,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:25,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:25,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:26,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 27
    functionName: fu_kernel_cmdline_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-test.c
    functionUses: 0
    functionsReached:
    - g_hash_table_contains
    - g_hash_table_lookup
    - g_assert_nonnull
    - g_assert_false
    - strlen
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    - fu_kernel_parse_cmdline
    linkageType: ''
    returnType: void
    signature: void fu_kernel_cmdline_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:34,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:35,1
    - Dst: fu_kernel_parse_config
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:37,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:37,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:38,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:39,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:40,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:40,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:41,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:41,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:42,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: fu_kernel_config_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-test.c
    functionUses: 0
    functionsReached:
    - g_hash_table_contains
    - g_hash_table_lookup
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_false
    - strlen
    - fu_kernel_parse_config
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_kernel_config_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:52,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:52,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:55,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:59,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:60,1
    - Dst: fu_kernel_locked_down
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:61,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:62,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:64,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:65,1
    - Dst: fu_kernel_locked_down
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:66,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:67,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:69,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:70,1
    - Dst: fu_kernel_locked_down
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:71,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 73
    functionName: fu_kernel_lockdown_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-test.c
    functionUses: 0
    functionsReached:
    - fu_kernel_locked_down
    - fu_path_store_set_path
    - g_assert_false
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - fu_path_store_new
    linkageType: ''
    returnType: void
    signature: void fu_kernel_lockdown_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:78,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:79,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:80,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:81,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:82,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-kernel-test.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-kernel-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - 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_return_val_if_fail
    - fu_firmware_get_bytes
    - FU_IS_EFI_FILE_PATH_DEVICE_PATH
    - fu_utf16_to_utf8_bytes
    - FU_FIRMWARE
    - g_steal_pointer
    - g_strdelimit
    - g_autoptr
    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_return_val_if_fail
    - g_strdup
    - g_bytes_new
    - FU_IS_EFI_FILE_PATH_DEVICE_PATH
    - FU_FIRMWARE
    - fu_firmware_set_bytes
    - g_strdelimit
    - fu_utf8_to_utf16_byte_array
    - g_autoptr
    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
    - fu_efi_file_path_device_path_get_name
    - 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: 2
    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_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - codec
    - json_obj
    - flags
    argTypes:
    - FwupdCodec*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 125
    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
    - fu_efi_file_path_device_path_get_name
    - fwupd_json_object_add_string
    linkageType: ''
    returnType: void
    signature: "void fu_efi_file_path_device_path_add_json(FwupdCodec *codec,\n\t\t\t\t
      \     FwupdJsonObject *json_obj,\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:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:131,1
    - Dst: xb_node_query_first
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:134,1
    - Dst: fu_efi_file_path_device_path_set_name
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:136,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 142
    functionName: fu_efi_file_path_device_path_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c
    functionUses: 0
    functionsReached:
    - xb_node_query_first
    - FU_EFI_FILE_PATH_DEVICE_PATH
    - g_autoptr
    - xb_node_get_text
    - fu_efi_file_path_device_path_set_name
    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: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    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:153,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:153,1
    - Dst: fu_efi_device_path_set_subtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:154,1
    - Dst: FU_EFI_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-efi-file-path-device-path.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiFilePathDevicePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 156
    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_FIRMWARE
    - fu_firmware_set_idx
    - FU_EFI_DEVICE_PATH
    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:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiFilePathDevicePathClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 164
    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:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 179
    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: 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-hidraw-device.c
    functionUses: 1084
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:41,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:42,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:43,1
    - Dst: fu_hid_bus_type_to_string
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: fu_hidraw_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - fwupd_codec_string_append
    - fu_hid_bus_type_to_string
    - FU_HIDRAW_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_hidraw_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:59,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:60,1
    - Dst: FU_IS_HIDRAW_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidrawDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: fu_hidraw_device_get_bus_type
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_HIDRAW_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: FuHidBusType
    signature: FuHidBusType fu_hidraw_device_get_bus_type(FuHidrawDevice *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:81,1
    - Dst: fu_hid_descriptor_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:82,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:82,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:83,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:86,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:94,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:99,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:107,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:110,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:112,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:113,1
    - Dst: FU_HID_DESCRIPTOR
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:115,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:115,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHidrawDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 75
    functionDepth: 5
    functionLinenumber: 75
    functionLinenumberEnd: 123
    functionName: fu_hidraw_device_parse_descriptor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_execute
    - g_bytes_new
    - g_set_error_literal
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_udev_device_ioctl_new
    - fu_hid_descriptor_new
    - fu_dump_raw
    - FU_HID_DESCRIPTOR
    - fu_firmware_parse_bytes
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: FuHidDescriptor
    signature: 'FuHidDescriptor *

      fu_hidraw_device_parse_descriptor(FuHidrawDevice *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:128,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:131,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:131,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:134,1
    - Dst: fu_device_incorporate
      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_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHidrawDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 145
    functionName: fu_hidraw_device_probe_usb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_parent_with_subsystem
    - fu_device_has_private_flag
    - fu_device_incorporate
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hidraw_device_probe_usb(FuHidrawDevice *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:151,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:152,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:154,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:154,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:154,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:155,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:157,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:165,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:166,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:167,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:170,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:170,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:176,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:177,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:178,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:179,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 147
    functionDepth: 4
    functionLinenumber: 147
    functionLinenumberEnd: 190
    functionName: fu_hidraw_device_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_ioctl_execute
    - g_debug
    - fu_device_set_vid
    - g_set_error_literal
    - g_steal_pointer
    - fu_udev_device_ioctl_new
    - FU_HIDRAW_DEVICE
    - fu_device_get_vid
    - fu_device_has_flag
    - g_error_matches
    - fu_device_set_pid
    - FU_UDEV_DEVICE
    - g_propagate_error
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hidraw_device_setup(FuDevice *device, GError **error)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:195,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:198,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:199,1
    - Dst: fu_udev_device_parse_number
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:202,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:202,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:206,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:211,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:211,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:214,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:215,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:216,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:216,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:218,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:224,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:227,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:229,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:231,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:237,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:240,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:245,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:245,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:247,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:247,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:249,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:249,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:253,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:253,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:255,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:255,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:257,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:257,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:261,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:261,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:264,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:264,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:266,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:266,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:269,1
    - Dst: fu_hidraw_device_probe_usb
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:270,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:275,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:275,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:277,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:283,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:283,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:288,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:288,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:291,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:293,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:299,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:301,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:301,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:305,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:305,1
    - Dst: fu_udev_device_get_device_file_from_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:308,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:308,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:313,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:313,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:317,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:317,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:317,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:318,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:324,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:324,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:324,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:325,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:325,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:325,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:326,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:333,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:342,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:342,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 192
    functionDepth: 5
    functionLinenumber: 192
    functionLinenumberEnd: 346
    functionName: fu_hidraw_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_logical_id
    - fu_device_get_pid
    - fu_device_get_physical_id
    - g_strv_length
    - fu_device_get_name
    - g_auto
    - fu_device_set_physical_id
    - g_set_error_literal
    - g_prefix_error_literal
    - g_strsplit
    - fu_device_build_instance_id_full
    - g_str_has_prefix
    - fu_device_get_vendor
    - fu_hidraw_device_probe_usb
    - fu_device_set_logical_id
    - fu_udev_device_get_sysfs_path
    - g_info
    - fu_device_set_version_raw
    - fu_device_set_vid
    - fu_strtoull
    - fu_device_build_vendor_id_u16
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_get_vid
    - fu_udev_device_read_property
    - fu_udev_device_parse_number
    - FU_UDEV_DEVICE
    - fu_udev_device_get_device_file_from_subsystem
    - fu_udev_device_get_device_file
    - fu_device_get_backend_parent_with_subsystem
    - fu_udev_device_set_device_file
    - fu_device_set_pid
    - g_autoptr
    - fu_device_add_instance_u16
    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:371,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:371,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:371,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:374,1
    - Dst: FU_IS_HIDRAW_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:374,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:375,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:376,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:379,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:380,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:383,1
    - Dst: HIDIOCSFEATURE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:384,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:393,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: 399
      start: 362
    functionDepth: 4
    functionLinenumber: 362
    functionLinenumberEnd: 399
    functionName: fu_hidraw_device_set_feature
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_ioctl_execute
    - g_set_error_literal
    - fu_udev_device_ioctl_new
    - FU_IS_HIDRAW_DEVICE
    - fu_dump_raw
    - HIDIOCSFEATURE
    - FU_UDEV_DEVICE
    - fu_memdup_safe
    - g_autoptr
    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:423,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:423,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:423,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:426,1
    - Dst: FU_IS_HIDRAW_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:426,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:427,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:428,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:431,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:432,1
    - Dst: HIDIOCGFEATURE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:433,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:441,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:447,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: 453
      start: 415
    functionDepth: 4
    functionLinenumber: 415
    functionLinenumberEnd: 453
    functionName: fu_hidraw_device_get_feature
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_ioctl_execute
    - g_set_error_literal
    - fu_udev_device_ioctl_new
    - FU_IS_HIDRAW_DEVICE
    - fu_dump_raw
    - HIDIOCGFEATURE
    - FU_UDEV_DEVICE
    - g_autoptr
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:477,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:477,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:477,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:480,1
    - Dst: FU_IS_HIDRAW_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:480,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:481,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:482,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:485,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:486,1
    - Dst: HIDIOCGINPUT
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:487,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:495,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:501,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: 507
      start: 469
    functionDepth: 4
    functionLinenumber: 469
    functionLinenumberEnd: 507
    functionName: fu_hidraw_device_get_input
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_ioctl_execute
    - g_set_error_literal
    - HIDIOCGINPUT
    - fu_udev_device_ioctl_new
    - FU_IS_HIDRAW_DEVICE
    - fu_dump_raw
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hidraw_device_get_input(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: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:530,1
    - Dst: FU_IS_HIDRAW_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:530,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:531,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:532,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:534,1
    - Dst: fu_udev_device_write
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:535,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - flags
    - error
    argTypes:
    - FuHidrawDevice*
    - guint8*
    - gsize
    - FuIoChannelFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 523
    functionDepth: 5
    functionLinenumber: 523
    functionLinenumberEnd: 541
    functionName: fu_hidraw_device_set_report
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_udev_device_write
    - FU_IS_HIDRAW_DEVICE
    - FU_UDEV_DEVICE
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hidraw_device_set_report(FuHidrawDevice *self,\n\t\t\t
      \   const guint8 *buf,\n\t\t\t    gsize bufsz,\n\t\t\t    FuIoChannelFlags flags,\n\t\t\t
      \   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:566,1
    - Dst: FU_IS_HIDRAW_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:566,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:567,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:568,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:570,1
    - Dst: fu_udev_device_read
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:571,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:571,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:581,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:584,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - flags
    - error
    argTypes:
    - FuHidrawDevice*
    - guint8*
    - gsize
    - FuIoChannelFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 557
    functionDepth: 5
    functionLinenumber: 557
    functionLinenumberEnd: 586
    functionName: fu_hidraw_device_get_report
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - FU_IS_HIDRAW_DEVICE
    - FU_UDEV_DEVICE
    - fu_udev_device_read
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hidraw_device_get_report(FuHidrawDevice *self,\n\t\t\t
      \   guint8 *buf,\n\t\t\t    gsize bufsz,\n\t\t\t    FuIoChannelFlags 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:591,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hidraw-device.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidrawDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: fu_hidraw_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_DEVICE
    - fu_udev_device_add_open_flag
    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:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHidrawDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 601
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:63,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:64,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:65,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:66,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:67,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:68,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:69,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:70,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:71,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:72,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:73,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:74,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:75,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:76,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:77,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:78,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:79,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:80,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:81,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:82,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:83,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:84,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:85,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:86,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:87,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:88,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:89,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:90,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:91,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:92,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:93,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:94,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:95,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:96,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:97,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:98,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:99,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:100,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:101,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:102,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:103,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:104,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:105,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:106,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:107,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:108,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:109,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:110,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:111,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:112,1
    - Dst: fu_context_add_firmware_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context-helper.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 52
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 114
    functionName: fu_context_add_firmware_gtypes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context-helper.c
    functionUses: 4
    functionsReached:
    - fu_context_add_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_context_add_firmware_gtypes(FuContext *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-string.c:46,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-string.c:55,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-string.c:61,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-string.c:63,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-string.c:64,1
    - Dst: g_ascii_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-string.c:72,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-string.c:73,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-string.c:74,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-string.c:83,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-string.c:92,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-string.c:101,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: 114
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 114
    functionName: fu_strtoull
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 51
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - g_ascii_strtoull
    - strlen
    - g_str_has_prefix
    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:145,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-string.c:154,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-string.c:160,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-string.c:162,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-string.c:163,1
    - Dst: g_ascii_strtoll
      Src: /src/fwupd/libfwupdplugin/fu-string.c:171,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-string.c:172,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-string.c:173,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-string.c:179,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-string.c:189,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-string.c:198,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: 211
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 211
    functionName: fu_strtoll
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 3
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - strlen
    - g_str_has_prefix
    - g_ascii_strtoll
    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:230,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-string.c:238,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-string.c:243,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-string.c:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - str
    - value
    - error
    argTypes:
    - gchar*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 256
    functionName: fu_strtobool
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 3
    functionsReached:
    - g_set_error_literal
    - g_strcmp0
    - 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:274,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-string.c:284,1
    - Dst: g_ascii_isspace
      Src: /src/fwupd/libfwupdplugin/fu-string.c:288,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-string.c:291,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - str
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 292
    functionName: fu_strstrip
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - g_strndup
    - g_ascii_isspace
    - g_strdup
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_strstrip(const gchar *str)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_ascii_isspace
      Src: /src/fwupd/libfwupdplugin/fu-string.c:309,1
    - Dst: g_string_erase
      Src: /src/fwupd/libfwupdplugin/fu-string.c:313,1
    - Dst: g_ascii_isspace
      Src: /src/fwupd/libfwupdplugin/fu-string.c:317,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupdplugin/fu-string.c:321,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - str
    argTypes:
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 322
    functionName: fu_string_strip
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 1
    functionsReached:
    - g_string_erase
    - g_ascii_isspace
    - g_string_truncate
    linkageType: ''
    returnType: void
    signature: void fu_string_strip(GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:341,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:342,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:344,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-string.c:348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - str
    - bufsz
    - offset
    argTypes:
    - gchar*
    - gsize
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 351
    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:369,1
    - Dst: g_utf8_get_char
      Src: /src/fwupd/libfwupdplugin/fu-string.c:372,1
    - Dst: g_unichar_iswide
      Src: /src/fwupd/libfwupdplugin/fu-string.c:373,1
    - Dst: g_unichar_iszerowidth
      Src: /src/fwupd/libfwupdplugin/fu-string.c:375,1
    - Dst: g_utf8_next_char
      Src: /src/fwupd/libfwupdplugin/fu-string.c:377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - text
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 380
    functionName: fu_strwidth
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 8
    functionsReached:
    - g_return_val_if_fail
    - g_utf8_next_char
    - g_utf8_get_char
    - g_unichar_iswide
    - g_unichar_iszerowidth
    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:400,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:401,1
    - Dst: g_strndup
      Src: /src/fwupd/libfwupdplugin/fu-string.c:403,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-string.c:404,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-string.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 407
    functionName: fu_strsplit
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - g_strndup
    - 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:426,1
    - Dst: fu_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-string.c:427,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-string.c:427,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-string.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 431
    functionName: fu_strsplit_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_strsplit
    - g_bytes_get_data
    - g_bytes_get_size
    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:449,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:449,1
    - Dst: strncmp
      Src: /src/fwupd/libfwupdplugin/fu-string.c:457,1
    - Dst: g_string_append_len
      Src: /src/fwupd/libfwupdplugin/fu-string.c:468,1
    - Dst: g_utf8_validate_len
      Src: /src/fwupd/libfwupdplugin/fu-string.c:471,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-string.c:472,1
    - Dst: FuStrsplitHelper*::callback
      Src: /src/fwupd/libfwupdplugin/fu-string.c:474,1
    - Dst: g_byte_array_remove_range
      Src: /src/fwupd/libfwupdplugin/fu-string.c:483,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-string.c:483,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 3
    argNames:
    - buf
    - helper
    - error
    argTypes:
    - GByteArray*
    - FuStrsplitHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 485
    functionName: fu_strsplit_buffer_drain
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 0
    functionsReached:
    - g_string_append_len
    - strncmp
    - g_debug
    - g_byte_array_remove_range
    - FuStrsplitHelper*::callback
    - g_string_new
    - MIN
    - g_autoptr
    - g_utf8_validate_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:514,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string.c:515,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:515,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string.c:516,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:524,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-string.c:524,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:525,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:526,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:527,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-string.c:529,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:531,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-string.c:533,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-string.c:537,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/libfwupdplugin/fu-string.c:539,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-string.c:546,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string.c:547,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-string.c:547,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-string.c:550,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/libfwupdplugin/fu-string.c:550,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/libfwupdplugin/fu-string.c:550,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-string.c:551,1
    - Dst: fu_strsplit_buffer_drain
      Src: /src/fwupd/libfwupdplugin/fu-string.c:552,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: 558
      start: 506
    functionDepth: 3
    functionLinenumber: 506
    functionLinenumberEnd: 558
    functionName: fu_strsplit_stream
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_strsplit_buffer_drain
    - g_prefix_error_literal
    - g_object_ref
    - g_byte_array_new
    - strlen
    - fu_chunk_array_new_from_stream
    - G_IS_INPUT_STREAM
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_chunk_array_length
    - g_autoptr
    - 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:592,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:593,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:594,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:595,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-string.c:598,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-string.c:599,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string.c:603,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:603,1
    - Dst: callback
      Src: /src/fwupd/libfwupdplugin/fu-string.c:604,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-string.c:610,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:610,1
    - Dst: strncmp
      Src: /src/fwupd/libfwupdplugin/fu-string.c:613,1
    - Dst: g_string_append_len
      Src: /src/fwupd/libfwupdplugin/fu-string.c:616,1
    - Dst: callback
      Src: /src/fwupd/libfwupdplugin/fu-string.c:617,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: 624
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 624
    functionName: fu_strsplit_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - g_string_append_len
    - strncmp
    - strlen
    - g_string_new
    - g_autoptr
    - 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:641,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:641,1
    - Dst: g_ascii_isgraph
      Src: /src/fwupd/libfwupdplugin/fu-string.c:649,1
    - Dst: g_ascii_isspace
      Src: /src/fwupd/libfwupdplugin/fu-string.c:649,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-string.c:650,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-string.c:653,1
    - Dst: g_ascii_isspace
      Src: /src/fwupd/libfwupdplugin/fu-string.c:654,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-string.c:661,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-string.c:661,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 2
    argNames:
    - str
    - maxsz
    argTypes:
    - gchar*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 662
    functionName: fu_strsafe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 16
    functionsReached:
    - g_steal_pointer
    - g_string_free
    - g_ascii_isgraph
    - g_ascii_isspace
    - g_string_new
    - g_string_append_c
    - g_autoptr
    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:678,1
    - Dst: fu_strsafe
      Src: /src/fwupd/libfwupdplugin/fu-string.c:679,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-string.c:679,1
    - Dst: MIN
      Src: /src/fwupd/libfwupdplugin/fu-string.c:680,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-string.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - blob
    - maxsz
    argTypes:
    - GBytes*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 681
    functionName: fu_strsafe_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - fu_strsafe
    - g_bytes_get_data
    - g_bytes_get_size
    - MIN
    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:704,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-string.c:706,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-string.c:708,1
    - Dst: g_strjoinv
      Src: /src/fwupd/libfwupdplugin/fu-string.c:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - separator
    - array
    argTypes:
    - gchar*
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 710
    functionName: fu_strjoin
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 14
    functionsReached:
    - g_return_val_if_fail
    - g_new0
    - g_ptr_array_index
    - 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:725,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:725,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-string.c:726,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-string.c:727,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-string.c:732,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-string.c:733,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-string.c:735,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-string.c:757,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-string.c:757,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 31
    argCount: 1
    argNames:
    - str
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 758
    functionName: fu_strpassmask
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 2
    functionsReached:
    - g_steal_pointer
    - g_string_free
    - g_strstr_len
    - strlen
    - G_N_ELEMENTS
    - g_string_new
    - g_str_has_prefix
    - 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:777,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:778,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-string.c:781,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-string.c:787,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-string.c:789,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/libfwupdplugin/fu-string.c:790,1
    - Dst: g_utf16_to_utf8
      Src: /src/fwupd/libfwupdplugin/fu-string.c:792,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - array
    - endian
    - error
    argTypes:
    - GByteArray*
    - FuEndianType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 793
    functionName: fu_utf16_to_utf8_byte_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - g_new0
    - fu_memwrite_uint16
    - g_set_error_literal
    - g_utf16_to_utf8
    - 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:815,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:815,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:818,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:819,1
    - Dst: g_utf8_to_utf16
      Src: /src/fwupd/libfwupdplugin/fu-string.c:821,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-string.c:827,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/libfwupdplugin/fu-string.c:828,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-string.c:830,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - str
    - endian
    - flags
    - error
    argTypes:
    - gchar*
    - FuEndianType
    - FuUtfConvertFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 808
    functionDepth: 2
    functionLinenumber: 808
    functionLinenumberEnd: 831
    functionName: fu_utf8_to_utf16_byte_array
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - fu_byte_array_append_uint16
    - g_steal_pointer
    - g_byte_array_new
    - fu_memread_uint16
    - g_utf8_to_utf16
    - g_autoptr
    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:850,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:851,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-string.c:853,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-string.c:854,1
    - Dst: fu_utf16_to_utf8_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-string.c:855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - bytes
    - endian
    - error
    argTypes:
    - GBytes*
    - FuEndianType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 845
    functionDepth: 2
    functionLinenumber: 845
    functionLinenumberEnd: 856
    functionName: fu_utf16_to_utf8_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_get_data
    - fu_utf16_to_utf8_byte_array
    - g_bytes_get_size
    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:876,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:878,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-string.c:879,1
    - Dst: fu_utf8_to_utf16_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-string.c:881,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-string.c:884,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - str
    - endian
    - flags
    - error
    argTypes:
    - gchar*
    - FuEndianType
    - FuUtfConvertFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 870
    functionDepth: 3
    functionLinenumber: 870
    functionLinenumberEnd: 885
    functionName: fu_utf8_to_utf16_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-string.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_utf8_to_utf16_byte_array
    - g_autoptr
    - g_bytes_new
    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: 4
    functionLinenumber: 22
    functionLinenumberEnd: 82
    functionName: fu_serio_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-serio-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_device_file
    - fu_device_set_physical_id
    - FU_SERIO_DEVICE
    - fu_device_add_instance_strsafe
    - fu_udev_device_get_devpath
    - fu_device_set_summary
    - fu_udev_device_read_sysfs
    - fu_device_build_instance_id_full
    - fu_udev_device_set_device_file
    - g_strdup_printf
    - FU_UDEV_DEVICE
    - g_str_has_prefix
    - g_ascii_strup
    - fu_udev_device_get_device_file_from_subsystem
    - FU_DEVICE_CLASS
    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: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 1087
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:45,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:46,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-fdt-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: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: fu_fdt_firmware_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_FDT_FIRMWARE
    - GET_PRIVATE
    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:63,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:64,1
    - Dst: FU_IS_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFdtFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: fu_fdt_firmware_get_cpuid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FDT_FIRMWARE
    - 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:80,1
    - Dst: g_return_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: 2
    argNames:
    - self
    - cpuid
    argTypes:
    - FuFdtFirmware*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: fu_fdt_firmware_set_cpuid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IS_FDT_FIRMWARE
    - g_return_if_fail
    - GET_PRIVATE
    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:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:101,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:101,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:101,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:103,1
    - Dst: FU_IS_FDT_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:103,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:104,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:105,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:106,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:111,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:116,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:119,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:123,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - self
    - path
    - error
    argTypes:
    - FuFdtFirmware*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 124
    functionName: fu_fdt_firmware_get_image_by_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_FDT_IMAGE
    - FU_FIRMWARE
    - g_steal_pointer
    - g_set_object
    - fu_firmware_get_image_by_id
    - g_object_ref
    - FU_IS_FDT_FIRMWARE
    - g_strsplit
    - g_auto
    - g_autoptr
    linkageType: ''
    returnType: FuFdtImage
    signature: 'FuFdtImage *

      fu_fdt_firmware_get_image_by_path(FuFdtFirmware *self, const gchar *path, GError
      **error)'
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:133,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:134,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:134,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:134,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:141,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:143,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:149,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:151,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:152,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:162,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:163,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:175,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:176,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:180,1
    - Dst: fu_memread_string_safe
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:188,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:191,1
    - Dst: fu_fdt_image_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:193,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:195,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:196,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:197,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:199,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:205,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:206,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:212,1
    - Dst: fu_firmware_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:212,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:222,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:224,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:227,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:228,1
    - Dst: fu_struct_fdt_prop_parse
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:236,1
    - Dst: fu_struct_fdt_prop_get_len
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:239,1
    - Dst: fu_struct_fdt_prop_get_nameoff
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:240,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:243,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:244,1
    - Dst: fu_memread_string_safe
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:250,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:252,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:255,1
    - Dst: fu_fdt_image_set_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:258,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:258,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:259,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:265,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:277,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 94
    argCount: 4
    argNames:
    - self
    - fw
    - strtab
    - error
    argTypes:
    - FuFdtFirmware*
    - GBytes*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 282
    functionName: fu_fdt_firmware_parse_dt_struct
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - fu_fdt_image_new
    - fu_fdt_image_set_attr
    - g_object_ref
    - fu_firmware_set_offset
    - fu_memread_uint32_safe
    - fu_firmware_add_image
    - fu_memread_string_safe
    - FU_FDT_IMAGE
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_firmware_get_parent
    - fu_common_align_up
    - fu_struct_fdt_prop_get_len
    - g_bytes_get_data
    - FU_FIRMWARE
    - g_warning
    - fu_struct_fdt_prop_parse
    - fu_bytes_new_offset
    - fu_firmware_set_id
    - g_set_error
    - g_set_object
    - g_prefix_error
    - fu_struct_fdt_prop_get_nameoff
    - fu_size_checked_inc
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fdt_firmware_parse_dt_struct(FuFdtFirmware *self, GBytes
      *fw, GByteArray *strtab, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:293,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:299,1
    - Dst: fu_struct_fdt_reserve_entry_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:301,1
    - Dst: fu_struct_fdt_reserve_entry_get_address
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:304,1
    - Dst: fu_struct_fdt_reserve_entry_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:305,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:306,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:311,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:312,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - self
    - stream
    - offset
    - error
    argTypes:
    - FuFdtFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 319
    functionName: fu_fdt_firmware_parse_mem_rsvmap
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_fdt_reserve_entry_get_address
    - g_debug
    - fu_input_stream_size
    - g_prefix_error_literal
    - fu_struct_fdt_reserve_entry_parse_stream
    - fu_struct_fdt_reserve_entry_get_size
    - fu_size_checked_inc
    - g_autoptr
    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:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 325
    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:333,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:334,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:338,1
    - Dst: fu_struct_fdt_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:341,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:344,1
    - Dst: fu_struct_fdt_get_totalsize
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:346,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:348,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:356,1
    - Dst: fu_struct_fdt_get_boot_cpuid_phys
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:359,1
    - Dst: fu_struct_fdt_get_off_mem_rsvmap
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:360,1
    - Dst: fu_fdt_firmware_parse_mem_rsvmap
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:362,1
    - Dst: fu_struct_fdt_get_last_comp_version
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:365,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:366,1
    - Dst: fu_struct_fdt_get_last_comp_version
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:370,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:374,1
    - Dst: fu_struct_fdt_get_version
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:374,1
    - Dst: fu_struct_fdt_get_size_dt_struct
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:377,1
    - Dst: fu_struct_fdt_get_size_dt_strings
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:378,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:379,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:380,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:381,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:383,1
    - Dst: fu_struct_fdt_get_off_dt_strings
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:384,1
    - Dst: fu_struct_fdt_get_size_dt_strings
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:385,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:391,1
    - Dst: fu_struct_fdt_get_off_dt_struct
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:392,1
    - Dst: fu_struct_fdt_get_size_dt_struct
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:393,1
    - Dst: fu_struct_fdt_get_size_dt_struct
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:398,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:399,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:405,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:405,1
    - Dst: fu_fdt_firmware_parse_dt_struct
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:406,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 327
    functionDepth: 5
    functionLinenumber: 327
    functionLinenumberEnd: 412
    functionName: fu_fdt_firmware_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_struct_fdt_get_off_dt_strings
    - fu_struct_fdt_get_version
    - g_set_error_literal
    - fu_struct_fdt_get_boot_cpuid_phys
    - fu_struct_fdt_get_off_mem_rsvmap
    - fu_input_stream_read_byte_array
    - fu_firmware_set_size
    - GET_PRIVATE
    - fu_fdt_firmware_parse_dt_struct
    - fu_firmware_set_version_raw
    - fu_struct_fdt_parse_stream
    - fu_struct_fdt_get_off_dt_struct
    - fu_struct_fdt_get_totalsize
    - g_byte_array_free_to_bytes
    - fu_fdt_firmware_parse_mem_rsvmap
    - fu_struct_fdt_get_size_dt_struct
    - g_set_error
    - fu_input_stream_size
    - g_steal_pointer
    - FU_FDT_FIRMWARE
    - fu_struct_fdt_get_size_dt_strings
    - fu_struct_fdt_get_last_comp_version
    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:427,1
    - Dst: GPOINTER_TO_UINT
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:428,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:430,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:432,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:432,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:433,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:434,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:434,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - helper
    - key
    argTypes:
    - FuFdtFirmwareBuildHelper*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 436
    functionName: fu_fdt_firmware_append_to_strtab
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - g_debug
    - GPOINTER_TO_UINT
    - fu_byte_array_append_uint8
    - strlen
    - GUINT_TO_POINTER
    - g_byte_array_append
    - g_hash_table_lookup_extended
    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:445,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:445,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:446,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:446,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:446,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:447,1
    - Dst: fu_fdt_image_get_attrs
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:447,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:451,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:459,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:461,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:461,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:463,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:465,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:469,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:470,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:471,1
    - Dst: fu_struct_fdt_prop_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:471,1
    - Dst: fu_fdt_image_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:473,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:476,1
    - Dst: fu_struct_fdt_prop_set_len
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:477,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:477,1
    - Dst: fu_struct_fdt_prop_set_nameoff
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:478,1
    - Dst: fu_fdt_firmware_append_to_strtab
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:479,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:480,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:481,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:482,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:487,1
    - Dst: fu_fdt_firmware_write_image
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:488,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:493,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: 495
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 495
    functionName: fu_fdt_firmware_write_image
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 1
    functionsReached:
    - fu_byte_array_align_up
    - fu_fdt_firmware_append_to_strtab
    - fu_fdt_firmware_write_image
    - fu_fdt_image_get_attrs
    - fu_byte_array_append_uint32
    - g_autoptr
    - fu_struct_fdt_prop_set_len
    - g_ptr_array_index
    - fu_firmware_get_id
    - fu_byte_array_append_bytes
    - g_set_error_literal
    - fu_firmware_get_images
    - FU_FIRMWARE
    - fu_byte_array_append_uint8
    - fu_fdt_image_get_attr
    - g_byte_array_append
    - fu_struct_fdt_prop_new
    - fu_byte_array_append_array
    - strlen
    - g_bytes_get_size
    - fu_struct_fdt_prop_set_nameoff
    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:500,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:501,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:505,1
    - Dst: g_byte_array_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: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:506,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:507,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:507,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:508,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:508,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:509,1
    - Dst: fu_struct_fdt_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:509,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:510,1
    - Dst: fu_struct_fdt_reserve_entry_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:510,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:518,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:522,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:526,1
    - Dst: fu_fdt_firmware_write_image
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:529,1
    - Dst: FU_FDT_IMAGE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:530,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:530,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:535,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:539,1
    - Dst: fu_struct_fdt_set_totalsize
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:542,1
    - Dst: fu_struct_fdt_set_off_dt_struct
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:543,1
    - Dst: fu_struct_fdt_set_off_dt_strings
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:544,1
    - Dst: fu_struct_fdt_set_off_mem_rsvmap
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:545,1
    - Dst: fu_struct_fdt_set_version
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:546,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:546,1
    - Dst: fu_struct_fdt_set_boot_cpuid_phys
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:547,1
    - Dst: fu_struct_fdt_set_size_dt_strings
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:548,1
    - Dst: fu_struct_fdt_set_size_dt_struct
      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: fu_byte_array_append_array
      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: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:555,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:556,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:557,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:558,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 497
    functionDepth: 3
    functionLinenumber: 497
    functionLinenumberEnd: 562
    functionName: fu_fdt_firmware_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_fdt_set_totalsize
    - fu_byte_array_align_up
    - fu_fdt_firmware_write_image
    - fu_struct_fdt_reserve_entry_new
    - fu_byte_array_append_uint32
    - g_autoptr
    - g_ptr_array_index
    - fu_struct_fdt_set_size_dt_strings
    - FU_FDT_IMAGE
    - g_set_error_literal
    - g_hash_table_new_full
    - fu_struct_fdt_set_off_dt_strings
    - fu_firmware_get_images
    - g_byte_array_new
    - fu_struct_fdt_set_version
    - fu_common_align_up
    - GET_PRIVATE
    - fu_struct_fdt_set_size_dt_struct
    - fu_struct_fdt_new
    - fu_struct_fdt_set_off_dt_struct
    - fu_struct_fdt_set_boot_cpuid_phys
    - fu_firmware_get_version_raw
    - fu_byte_array_append_array
    - g_steal_pointer
    - fu_struct_fdt_set_off_mem_rsvmap
    - FU_FDT_FIRMWARE
    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:567,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:568,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 578
    functionName: fu_fdt_firmware_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text_as_uint
    - FU_FDT_FIRMWARE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fdt_firmware_build(FuFirmware *firmware, XbNode *n, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:583,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:583,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:584,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:584,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:585,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFdtFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 586
    functionName: fu_fdt_firmware_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFdtFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 597
    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:609,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 610
    functionName: fu_fdt_firmware_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 74
    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: 86
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 86
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - kind
    argTypes:
    - FuCrcKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: fu_crc_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    linkageType: ''
    returnType: guint
    signature: guint fu_crc_size(FuCrcKind kind)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:125,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:126,1
    - Dst: fu_crc_reflect8
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - kind
    - buf
    - bufsz
    - crc
    argTypes:
    - FuCrcKind
    - guint8*
    - gsize
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 139
    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:155,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:156,1
    - Dst: fu_crc_reflect
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - kind
    - crc
    argTypes:
    - FuCrcKind
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: fu_crc8_done
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_crc_reflect
    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:176,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:177,1
    - Dst: fu_crc8_done
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:178,1
    - Dst: fu_crc8_step
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - kind
    - buf
    - bufsz
    argTypes:
    - FuCrcKind
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: fu_crc8
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_crc8_done
    - fu_crc8_step
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_crc8(FuCrcKind kind, const guint8 *buf, gsize bufsz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:210,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:211,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:212,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:213,1
    - Dst: fu_memchk_read
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:215,1
    - Dst: fu_crc8
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 7
    argNames:
    - kind
    - buf
    - bufsz
    - offset
    - n
    - value
    - error
    argTypes:
    - FuCrcKind
    - guint8*
    - gsize
    - gsize
    - gsize
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 220
    functionName: fu_crc8_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_crc8
    - fu_memchk_read
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_crc8_safe(FuCrcKind kind,\n\t     const guint8 *buf,\n\t
      \    gsize bufsz,\n\t     gsize offset,\n\t     gsize n,\n\t     guint8 *value,\n\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:236,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:237,1
    - Dst: fu_crc8
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:238,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:238,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - kind
    - blob
    argTypes:
    - FuCrcKind
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 239
    functionName: fu_crc8_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_get_data
    - fu_crc8
    - g_bytes_get_size
    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:261,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:262,1
    - Dst: fu_crc_reflect8
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - kind
    - buf
    - bufsz
    - crc
    argTypes:
    - FuCrcKind
    - guint8*
    - gsize
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 276
    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:292,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:293,1
    - Dst: fu_crc_reflect
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - kind
    - crc
    argTypes:
    - FuCrcKind
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 296
    functionName: fu_crc16_done
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_crc_reflect
    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:313,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:314,1
    - Dst: fu_crc16_done
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:315,1
    - Dst: fu_crc16_step
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - kind
    - buf
    - bufsz
    argTypes:
    - FuCrcKind
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 316
    functionName: fu_crc16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_crc16_done
    - fu_crc16_step
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_crc16(FuCrcKind kind, const guint8 *buf, gsize bufsz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:347,1
    - 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: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:350,1
    - Dst: fu_memchk_read
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:352,1
    - Dst: fu_crc16
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 7
    argNames:
    - kind
    - buf
    - bufsz
    - offset
    - n
    - value
    - error
    argTypes:
    - FuCrcKind
    - guint8*
    - gsize
    - gsize
    - gsize
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 338
    functionDepth: 4
    functionLinenumber: 338
    functionLinenumberEnd: 357
    functionName: fu_crc16_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_crc16
    - fu_memchk_read
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_crc16_safe(FuCrcKind kind,\n\t      const guint8 *buf,\n\t
      \     gsize bufsz,\n\t      gsize offset,\n\t      gsize n,\n\t      guint16
      *value,\n\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:373,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:374,1
    - Dst: fu_crc16
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:375,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:375,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - kind
    - blob
    argTypes:
    - FuCrcKind
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 370
    functionDepth: 4
    functionLinenumber: 370
    functionLinenumberEnd: 376
    functionName: fu_crc16_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_get_data
    - fu_crc16
    - g_bytes_get_size
    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:398,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:399,1
    - Dst: fu_crc_reflect8
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - kind
    - buf
    - bufsz
    - crc
    argTypes:
    - FuCrcKind
    - guint8*
    - gsize
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 413
    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: crc32_z
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - bufsz
    - crc
    argTypes:
    - guint8*
    - gsize
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 432
    functionName: fu_crc32_fast
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 1
    functionsReached:
    - crc32_z
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_crc32_fast(const guint8 *buf, gsize bufsz, guint32 crc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:448,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:449,1
    - Dst: fu_crc_reflect
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - kind
    - crc
    argTypes:
    - FuCrcKind
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 452
    functionName: fu_crc32_done
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_crc_reflect
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_crc32_done(FuCrcKind kind, guint32 crc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:469,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:470,1
    - Dst: crc32_z
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:474,1
    - Dst: fu_crc32_done
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:476,1
    - Dst: fu_crc32_step
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - kind
    - buf
    - bufsz
    argTypes:
    - FuCrcKind
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 466
    functionDepth: 3
    functionLinenumber: 466
    functionLinenumberEnd: 477
    functionName: fu_crc32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - fu_crc32_step
    - fu_crc32_done
    - crc32_z
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_crc32(FuCrcKind kind, const guint8 *buf, gsize bufsz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:508,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:509,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:510,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:511,1
    - Dst: fu_memchk_read
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:513,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 7
    argNames:
    - kind
    - buf
    - bufsz
    - offset
    - n
    - value
    - error
    argTypes:
    - FuCrcKind
    - guint8*
    - gsize
    - gsize
    - gsize
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 499
    functionDepth: 4
    functionLinenumber: 499
    functionLinenumberEnd: 518
    functionName: fu_crc32_safe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_crc32
    - fu_memchk_read
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_crc32_safe(FuCrcKind kind,\n\t      const guint8 *buf,\n\t
      \     gsize bufsz,\n\t      gsize offset,\n\t      gsize n,\n\t      guint32
      *value,\n\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:534,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:535,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:536,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:536,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - kind
    - blob
    argTypes:
    - FuCrcKind
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 531
    functionDepth: 4
    functionLinenumber: 531
    functionLinenumberEnd: 537
    functionName: fu_crc32_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - fu_crc32
    - g_bytes_get_data
    - g_bytes_get_size
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_crc32_bytes(FuCrcKind kind, GBytes *blob)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:563,1
    - Dst: fu_crc32
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:565,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:566,1
    - Dst: fu_crc_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:566,1
    - Dst: fu_crc16
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:572,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:573,1
    - Dst: fu_crc_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:573,1
    - Dst: fu_crc8
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:579,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:580,1
    - Dst: fu_crc_kind_to_string
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:580,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:589,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:596,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 5
    argNames:
    - buf
    - bufsz
    - crc_target
    - kind
    - error
    argTypes:
    - guint8*
    - gsize
    - guint32
    - FuCrcKind*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 558
    functionDepth: 4
    functionLinenumber: 558
    functionLinenumberEnd: 607
    functionName: fu_crc_find
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-crc.c
    functionUses: 1
    functionsReached:
    - fu_crc32
    - g_debug
    - fu_crc_kind_to_string
    - fu_crc16
    - g_set_error_literal
    - fu_crc8
    - G_N_ELEMENTS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_crc_find(const guint8 *buf, gsize bufsz, guint32 crc_target,
      FuCrcKind *kind, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - cur
    - new
    argTypes:
    - guint16
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 626
    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:643,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:644,1
    - Dst: fu_crc_misr16_step
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:647,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/libfwupdplugin/fu-crc.c:647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - init
    - buf
    - bufsz
    argTypes:
    - guint16
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 649
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_path
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:37,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:40,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:41,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:47,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:48,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:50,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:51,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:60,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:62,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:64,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:70,1
    - Dst: fu_context_set_chassis_kind
      Src: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c:73,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - ctx
    - self
    - error
    argTypes:
    - FuContext*
    - FuHwids*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 79
    functionName: fu_hwids_dmi_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids-dmi.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_debug
    - g_set_error
    - fu_strtoull
    - g_file_get_contents
    - g_file_test
    - fu_context_set_chassis_kind
    - g_warning
    - fu_hwids_add_value
    - fu_context_get_path
    - g_autoptr
    - g_build_filename
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hwids_dmi_setup(FuContext *ctx, FuHwids *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:23,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:24,1
    - Dst: fu_config_new
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:26,1
    - Dst: g_test_skip
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:32,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:37,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:38,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:39,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:40,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:41,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:42,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:43,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:46,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:47,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:48,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:49,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:50,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:51,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:56,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:57,1
    - Dst: g_chmod
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:59,1
    - Dst: g_stat
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:60,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:61,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:62,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:65,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:66,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:67,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:68,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:69,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:70,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:77,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:78,1
    - Dst: fu_config_load
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:80,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:81,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:82,1
    - Dst: fu_config_set_value
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:84,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:85,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:86,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:88,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:89,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:90,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:91,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:91,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:92,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:92,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:93,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:93,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:94,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 15
    functionDepth: 5
    functionLinenumber: 15
    functionLinenumberEnd: 95
    functionName: fu_config_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config-test.c
    functionUses: 0
    functionsReached:
    - g_chmod
    - g_file_get_contents
    - g_assert_nonnull
    - fu_config_load
    - g_stat
    - fu_path_store_new
    - g_autoptr
    - fu_path_store_set_path
    - g_assert_cmpint
    - fu_temporary_directory_new
    - fu_config_new
    - fu_config_set_value
    - g_strstr_len
    - g_assert_no_error
    - g_test_skip
    - g_assert_true
    - fu_temporary_directory_build
    - g_build_filename
    - g_file_set_contents
    - fu_path_mkdir_parent
    linkageType: ''
    returnType: void
    signature: void fu_config_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:100,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:101,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-config-test.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-config-test.c
    functionUses: 3
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_test_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:40,1
    - Dst: fu_tpm_eventlog_item_new
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:41,1
    - Dst: fu_struct_tpm_event_log1_item_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:43,1
    - Dst: fu_struct_tpm_event_log1_item_get_pcr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:46,1
    - Dst: fu_struct_tpm_event_log1_item_get_type
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:47,1
    - Dst: fu_struct_tpm_event_log1_item_get_datasz
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:48,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:50,1
    - Dst: fu_tpm_eventlog_item_set_pcr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:58,1
    - Dst: fu_tpm_eventlog_item_set_kind
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:59,1
    - Dst: fu_struct_tpm_event_log1_item_get_digest
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:60,1
    - Dst: g_bytes_new
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:61,1
    - Dst: fu_tpm_eventlog_item_add_checksum
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:62,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:64,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:65,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:72,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:72,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:74,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:74,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 81
    functionName: fu_tpm_eventlog_v1_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c
    functionUses: 0
    functionsReached:
    - fu_tpm_eventlog_item_new
    - fu_input_stream_read_bytes
    - g_bytes_new
    - fu_firmware_add_image
    - fu_input_stream_size
    - fu_struct_tpm_event_log1_item_get_pcr
    - fu_struct_tpm_event_log1_item_get_datasz
    - g_set_error_literal
    - fu_struct_tpm_event_log1_item_get_digest
    - fu_tpm_eventlog_item_set_kind
    - fu_tpm_eventlog_item_add_checksum
    - FU_FIRMWARE
    - fu_firmware_set_bytes
    - fu_tpm_eventlog_item_set_pcr
    - fu_struct_tpm_event_log1_item_get_type
    - fu_struct_tpm_event_log1_item_parse_stream
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_tpm_eventlog_v1_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-tpm-eventlog-v1.c:86,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:87,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:87,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:91,1
    - Dst: fu_struct_tpm_event_log1_item_new
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:92,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:93,1
    - Dst: fu_struct_tpm_event_log1_item_set_pcr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:95,1
    - Dst: fu_tpm_eventlog_item_get_pcr
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:95,1
    - Dst: fu_struct_tpm_event_log1_item_set_type
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:96,1
    - Dst: fu_tpm_eventlog_item_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:96,1
    - Dst: fu_tpm_eventlog_item_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:98,1
    - Dst: fu_struct_tpm_event_log1_item_set_digest
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:101,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:102,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:103,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:106,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:106,1
    - Dst: fu_struct_tpm_event_log1_item_set_datasz
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:109,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:109,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:110,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:113,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 118
    functionName: fu_tpm_eventlog_v1_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c
    functionUses: 0
    functionsReached:
    - fu_tpm_eventlog_item_get_kind
    - g_ptr_array_index
    - fu_byte_array_append_bytes
    - fu_struct_tpm_event_log1_item_new
    - fu_firmware_get_bytes
    - fu_firmware_get_images
    - g_byte_array_new
    - fu_struct_tpm_event_log1_item_set_datasz
    - fu_tpm_eventlog_item_get_checksum
    - g_bytes_get_data
    - FU_FIRMWARE
    - g_byte_array_append
    - fu_struct_tpm_event_log1_item_set_type
    - g_steal_pointer
    - fu_tpm_eventlog_item_get_pcr
    - fu_struct_tpm_event_log1_item_set_digest
    - g_bytes_get_size
    - g_autoptr
    - fu_struct_tpm_event_log1_item_set_pcr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_tpm_eventlog_v1_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTpmEventlogV1Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: fu_tpm_eventlog_v1_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_tpm_eventlog_v1_class_init(FuTpmEventlogV1Class *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:131,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:131,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:132,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTpmEventlogV1*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: fu_tpm_eventlog_v1_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_tpm_eventlog_v1_init(FuTpmEventlogV1 *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:148,1
    - Dst: FU_TPM_EVENTLOG
      Src: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: fu_tpm_eventlog_v1_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_TPM_EVENTLOG
    linkageType: ''
    returnType: FuTpmEventlog
    signature: 'FuTpmEventlog *

      fu_tpm_eventlog_v1_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-intel-thunderbolt-nvm.c
    functionUses: 1093
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:60,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:61,1
    - Dst: FU_IS_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltNvm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    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:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltNvm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    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:95,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:96,1
    - Dst: FU_IS_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltNvm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 98
    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:113,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:114,1
    - Dst: FU_IS_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltNvm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 116
    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:131,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:132,1
    - Dst: FU_IS_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltNvm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    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:149,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:150,1
    - Dst: FU_IS_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltNvm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 152
    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:170,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:171,1
    - Dst: FU_IS_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltNvm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 173
    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:180,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:181,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:182,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:183,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:184,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:185,1
    - Dst: fu_intel_thunderbolt_nvm_family_to_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:187,1
    - Dst: fu_xmlb_builder_insert_kb
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:188,1
    - Dst: fu_xmlb_builder_insert_kb
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:189,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:190,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:191,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:192,1
    - Dst: fu_xmlb_builder_insert_kb
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:193,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:197,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:198,1
    - Dst: fu_intel_thunderbolt_nvm_section_to_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:201,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 208
    functionName: fu_intel_thunderbolt_nvm_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - fu_intel_thunderbolt_nvm_section_to_string
    - g_return_if_fail
    - fu_intel_thunderbolt_nvm_family_to_string
    - g_strdup_printf
    - FU_INTEL_THUNDERBOLT_NVM
    - fu_xmlb_builder_insert_kv
    - xb_builder_node_insert
    - g_autoptr
    - fu_xmlb_builder_insert_kb
    - GET_PRIVATE
    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: 214
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 214
    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:231,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:234,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - self
    - stream
    - offset
    - value
    - error
    argTypes:
    - FuIntelThunderboltNvm*
    - GInputStream*
    - guint32
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 247
    functionName: fu_intel_thunderbolt_nvm_read_ucode_section_len
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u16
    - g_prefix_error_literal
    - 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\tgsize
      *value,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:255,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:300,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:306,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:309,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:316,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:321,1
    - Dst: fu_intel_thunderbolt_nvm_read_ucode_section_len
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:332,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:340,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:341,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuIntelThunderboltNvm*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 250
    functionDepth: 5
    functionLinenumber: 250
    functionLinenumberEnd: 351
    functionName: fu_intel_thunderbolt_nvm_read_sections
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u8
    - fu_input_stream_read_u16
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_intel_thunderbolt_nvm_read_ucode_section_len
    - fu_size_checked_inc
    - fu_input_stream_read_u32
    - GET_PRIVATE
    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:356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltNvm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 362
    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:370,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:371,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:401,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:401,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:408,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:413,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:419,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:425,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:430,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:436,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:442,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:456,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:463,1
    - Dst: fu_intel_thunderbolt_nvm_read_sections
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:472,1
    - Dst: fu_intel_thunderbolt_nvm_missing_needed_drom
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:474,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:475,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:484,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:491,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:494,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:501,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:511,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:518,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:521,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:521,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:533,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:539,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:556,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:563,1
    - Dst: fu_intel_thunderbolt_nvm_valid_pd_pointer
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:566,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:570,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:572,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:573,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 97
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 364
    functionDepth: 6
    functionLinenumber: 364
    functionLinenumberEnd: 578
    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_INTEL_THUNDERBOLT_NVM
    - g_autoptr
    - fu_firmware_add_image
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_intel_thunderbolt_nvm_missing_needed_drom
    - GET_PRIVATE
    - fu_firmware_set_version_raw
    - fu_intel_thunderbolt_nvm_read_sections
    - FU_FIRMWARE
    - fu_firmware_new
    - fu_input_stream_read_u8
    - fu_firmware_set_id
    - g_set_error
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - fu_input_stream_read_u32
    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:584,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:585,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:586,1
    - Dst: fu_intel_thunderbolt_nvm_digital_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:586,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:587,1
    - Dst: fu_intel_thunderbolt_nvm_drom_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:587,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:588,1
    - Dst: fu_intel_thunderbolt_nvm_arc_params_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:589,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:590,1
    - Dst: fu_intel_thunderbolt_nvm_dram_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:590,1
    - Dst: fu_intel_thunderbolt_nvm_digital_set_available_sections
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:593,1
    - Dst: fu_intel_thunderbolt_nvm_digital_set_device_id
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:596,1
    - Dst: fu_intel_thunderbolt_nvm_digital_set_version
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:597,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:597,1
    - Dst: fu_intel_thunderbolt_nvm_digital_set_flags_host
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:598,1
    - Dst: fu_intel_thunderbolt_nvm_digital_set_flash_size
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:599,1
    - Dst: fu_intel_thunderbolt_nvm_digital_set_flags_is_native
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:600,1
    - Dst: fu_intel_thunderbolt_nvm_digital_set_drom
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:603,1
    - Dst: fu_intel_thunderbolt_nvm_drom_set_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:604,1
    - Dst: fu_intel_thunderbolt_nvm_drom_set_model_id
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:605,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:606,1
    - Dst: fu_intel_thunderbolt_nvm_digital_set_arc_params
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:609,1
    - Dst: fu_intel_thunderbolt_nvm_arc_params_set_pd_pointer
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:610,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:611,1
    - Dst: fu_intel_thunderbolt_nvm_digital_set_ucode
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:614,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:615,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 619
    functionName: fu_intel_thunderbolt_nvm_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - fu_intel_thunderbolt_nvm_arc_params_new
    - fu_intel_thunderbolt_nvm_drom_set_vendor_id
    - FU_INTEL_THUNDERBOLT_NVM
    - fu_intel_thunderbolt_nvm_digital_set_arc_params
    - fu_intel_thunderbolt_nvm_digital_set_version
    - fu_intel_thunderbolt_nvm_digital_set_flash_size
    - fu_intel_thunderbolt_nvm_drom_new
    - fu_intel_thunderbolt_nvm_dram_new
    - fu_intel_thunderbolt_nvm_digital_set_drom
    - fu_intel_thunderbolt_nvm_digital_set_ucode
    - GET_PRIVATE
    - fu_intel_thunderbolt_nvm_digital_set_device_id
    - fu_intel_thunderbolt_nvm_digital_set_flags_is_native
    - fu_intel_thunderbolt_nvm_digital_new
    - fu_intel_thunderbolt_nvm_arc_params_set_pd_pointer
    - fu_firmware_get_version_raw
    - fu_byte_array_append_array
    - fu_intel_thunderbolt_nvm_digital_set_flags_host
    - fu_intel_thunderbolt_nvm_digital_set_available_sections
    - fu_intel_thunderbolt_nvm_drom_set_model_id
    - g_steal_pointer
    - g_autoptr
    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:627,1
    - Dst: FU_INTEL_THUNDERBOLT_NVM
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:628,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:629,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:630,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:651,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:661,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:671,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:678,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: 688
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 688
    functionName: fu_intel_thunderbolt_nvm_check_compatible
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - FU_INTEL_THUNDERBOLT_NVM
    - g_set_error
    - g_set_error_literal
    - GET_PRIVATE
    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:693,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:694,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:698,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:701,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:705,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:708,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:712,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:715,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:719,1
    - Dst: fu_intel_thunderbolt_nvm_family_from_string
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:721,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:723,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:731,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:734,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:738,1
    - Dst: fu_strtobool
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:740,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:743,1
    - Dst: fu_strtobool
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:745,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 751
    functionName: fu_intel_thunderbolt_nvm_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - g_set_error
    - fu_strtoull
    - FU_INTEL_THUNDERBOLT_NVM
    - fu_intel_thunderbolt_nvm_family_from_string
    - fu_strtobool
    - GET_PRIVATE
    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:756,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 757
    functionName: fu_intel_thunderbolt_nvm_convert_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16
    - fu_firmware_get_version_format
    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:762,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:762,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:763,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:763,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:764,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:764,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:765,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:765,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:766,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelThunderboltNvm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 759
    functionDepth: 2
    functionLinenumber: 759
    functionLinenumberEnd: 767
    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
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelThunderboltNvmClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 779
    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:791,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 792
    functionName: fu_intel_thunderbolt_nvm_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-intel-thunderbolt-nvm.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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: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_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:52,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:54,1
    - Dst: FU_IS_EFI_SIGNATURE_LIST
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:54,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:58,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:59,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:59,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:61,1
    - Dst: fu_efi_signature_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:65,1
    - Dst: fu_efi_x509_signature_build_dedupe_key
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:66,1
    - Dst: FU_EFI_X509_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:66,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:68,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:68,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:70,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:72,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:73,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:73,1
    - Dst: g_object_ref
      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: fu_firmware_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:75,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:75,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:76,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:77,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:77,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:77,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:79,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:84,1
    - Dst: g_hash_table_get_values
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:85,1
    - Dst: FU_EFI_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:87,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:88,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:88,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiSignatureList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 93
    functionName: fu_efi_signature_list_get_newest
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
    functionUses: 1
    functionsReached:
    - g_hash_table_insert
    - g_hash_table_lookup
    - g_object_ref
    - g_ptr_array_index
    - g_debug
    - g_hash_table_new_full
    - fu_efi_x509_signature_build_dedupe_key
    - fu_firmware_get_images
    - g_ptr_array_new_with_free_func
    - fu_efi_signature_get_kind
    - FU_FIRMWARE
    - FU_IS_EFI_SIGNATURE_LIST
    - g_hash_table_get_values
    - g_return_val_if_fail
    - fu_firmware_get_version_raw
    - FU_EFI_X509_SIGNATURE
    - g_steal_pointer
    - g_ptr_array_add
    - fu_firmware_get_checksum
    - FU_EFI_SIGNATURE
    - g_autoptr
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_efi_signature_list_get_newest(FuEfiSignatureList *self)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:108,1
    - Dst: fu_struct_efi_signature_list_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:111,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:114,1
    - Dst: fu_struct_efi_signature_list_get_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:114,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:116,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:118,1
    - Dst: fu_struct_efi_signature_list_get_list_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:121,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:123,1
    - Dst: fu_struct_efi_signature_list_get_header_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:130,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:132,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:141,1
    - Dst: fu_struct_efi_signature_list_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:149,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:151,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:159,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:167,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:171,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:175,1
    - Dst: FU_EFI_SIGNATURE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:180,1
    - Dst: fu_efi_x509_signature_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:180,1
    - Dst: fu_efi_signature_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:182,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:184,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:184,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:185,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:187,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:187,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:189,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:189,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:189,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:191,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:194,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 5
    argNames:
    - self
    - stream
    - offset
    - flags
    - error
    argTypes:
    - FuEfiSignatureList*
    - GInputStream*
    - gsize*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 195
    functionName: fu_efi_signature_list_parse_list
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_signature_list_get_list_size
    - fwupd_guid_to_string
    - g_debug
    - fu_firmware_add_image
    - g_set_error_literal
    - fu_struct_efi_signature_list_parse_stream
    - fu_struct_efi_signature_list_get_size
    - fu_firmware_set_size
    - FU_FIRMWARE
    - fu_efi_x509_signature_new
    - g_strcmp0
    - g_set_error
    - fu_firmware_parse_stream
    - fu_struct_efi_signature_list_get_header_size
    - fu_struct_efi_signature_list_get_type
    - fu_efi_signature_new
    - FU_EFI_SIGNATURE
    - fu_size_checked_inc
    - g_autoptr
    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:206,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:213,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:216,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:217,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:218,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 228
    functionName: fu_efi_signature_list_validate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_safe
    - g_strcmp0
    - g_set_error_literal
    - fwupd_guid_to_string
    - g_prefix_error_literal
    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:236,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:241,1
    - Dst: fu_efi_signature_list_parse_list
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 230
    functionDepth: 5
    functionLinenumber: 230
    functionLinenumberEnd: 250
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:256,1
    - Dst: fu_struct_efi_signature_list_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:256,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:257,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:260,1
    - Dst: fu_struct_efi_signature_list_set_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:265,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:268,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:268,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:271,1
    - Dst: fu_struct_efi_signature_list_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:272,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:272,1
    - Dst: fu_struct_efi_signature_list_set_list_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:273,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:275,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - sig
    - error
    argTypes:
    - FuEfiSignature*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 252
    functionDepth: 4
    functionLinenumber: 252
    functionLinenumberEnd: 279
    functionName: fu_efi_signature_list_write_x509
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_byte_array_append_bytes
    - fu_struct_efi_signature_list_set_type
    - fu_struct_efi_signature_list_set_list_size
    - fwupd_guid_from_string
    - FU_FIRMWARE
    - fu_struct_efi_signature_list_set_size
    - g_steal_pointer
    - g_bytes_get_size
    - fu_struct_efi_signature_list_new
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_signature_list_write_x509(FuEfiSignature *sig, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:285,1
    - Dst: fu_struct_efi_signature_list_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:285,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:288,1
    - Dst: fu_struct_efi_signature_list_set_type
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:293,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:297,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:298,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:300,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:300,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:303,1
    - Dst: fu_struct_efi_signature_list_set_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:307,1
    - Dst: fu_struct_efi_signature_list_set_list_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:308,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - sigs
    - error
    argTypes:
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 281
    functionDepth: 4
    functionLinenumber: 281
    functionLinenumberEnd: 312
    functionName: fu_efi_signature_list_write_sha256
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_byte_array_append_bytes
    - fu_struct_efi_signature_list_set_type
    - fu_struct_efi_signature_list_set_list_size
    - fwupd_guid_from_string
    - FU_FIRMWARE
    - fu_struct_efi_signature_list_set_size
    - g_steal_pointer
    - fu_struct_efi_signature_list_new
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_signature_list_write_sha256(GPtrArray *sigs, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:317,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:317,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:318,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:318,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:319,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:319,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:320,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:320,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:324,1
    - Dst: fu_efi_signature_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:325,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:326,1
    - Dst: fu_efi_signature_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:329,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:330,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:337,1
    - Dst: fu_efi_signature_list_write_sha256
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:338,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:341,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:346,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:347,1
    - Dst: fu_efi_signature_list_write_x509
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:348,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:351,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:355,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 314
    functionDepth: 5
    functionLinenumber: 314
    functionLinenumberEnd: 356
    functionName: fu_efi_signature_list_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
    functionUses: 0
    functionsReached:
    - fu_efi_signature_get_kind
    - fu_efi_signature_list_write_sha256
    - g_ptr_array_new
    - g_steal_pointer
    - g_ptr_array_add
    - fu_firmware_get_images
    - g_byte_array_new
    - g_byte_array_append
    - g_autoptr
    - fu_efi_signature_list_write_x509
    - g_ptr_array_index
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_efi_signature_list_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:362,1
    - Dst: fu_firmware_add_magic
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:366,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:367,1
    - Dst: fu_firmware_add_magic
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - firmware
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 372
    functionName: fu_efi_signature_list_add_magic
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
    functionUses: 0
    functionsReached:
    - fwupd_guid_from_string
    - fu_firmware_add_magic
    linkageType: ''
    returnType: void
    signature: void fu_efi_signature_list_add_magic(FuFirmware *firmware)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 385
    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:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEfiSignatureListClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 395
    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:400,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:400,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:401,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:401,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:402,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:402,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:403,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:403,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:404,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEfiSignatureList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 405
    functionName: fu_efi_signature_list_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_efi_signature_list_init(FuEfiSignatureList *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:17,1
    - Dst: fu_path_verify_safe
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:30,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:31,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:32,1
    - Dst: fu_path_verify_safe
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:33,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:34,1
    - Dst: g_assert_true
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:35,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:37,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:38,1
    - Dst: fu_path_verify_safe
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:39,1
    - Dst: g_assert_error
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:40,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 43
    functionName: fu_path_verify_safe_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-test.c
    functionUses: 0
    functionsReached:
    - fu_path_verify_safe
    - g_assert_error
    - g_assert_no_error
    - g_assert_false
    - G_N_ELEMENTS
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_path_verify_safe_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:64,1
    - Dst: fu_path_sanitize_basename
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:65,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:66,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:69,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:69,1
    - Dst: g_assert_false
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:70,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:70,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:71,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:71,1
    - Dst: g_assert_null
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:72,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 74
    functionName: fu_path_sanitize_basename_func
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-test.c
    functionUses: 0
    functionsReached:
    - fu_path_sanitize_basename
    - g_assert_cmpstr
    - g_assert_false
    - g_strstr_len
    - G_N_ELEMENTS
    - g_str_has_prefix
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fu_path_sanitize_basename_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:79,1
    - Dst: g_test_init
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:80,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:81,1
    - Dst: g_test_add_func
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:82,1
    - Dst: g_test_run
      Src: /src/fwupd/libfwupdplugin/fu-path-test.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: main
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-path-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - 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: 5
    argNames:
    - (
    - val
    - ','
    - pos
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: FU_BIT_SET
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.h
    functionUses: 5
    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: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    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: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    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: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    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
    - g_assert_nonnull
    - LLVMFuzzerTestOneInput
    - g_printerr
    - LLVMFuzzerInitialize
    - 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: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1108
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:167,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:168,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:171,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:174,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:177,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:180,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:183,1
    - Dst: g_value_set_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:186,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:189,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:192,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:195,1
    - Dst: g_value_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:198,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:198,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupdplugin/fu-device.c:201,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupdplugin/fu-device.c:204,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupdplugin/fu-device.c:207,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupdplugin/fu-device.c:210,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-device.c:213,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: 216
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 216
    functionName: fu_device_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_value_set_uint
    - fu_device_get_parent_internal
    - g_value_set_string
    - FU_DEVICE
    - g_value_set_object
    - g_value_set_uint64
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    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:221,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:224,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:224,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:227,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:227,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:230,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:230,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:233,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:233,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/libfwupdplugin/fu-device.c:236,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:236,1
    - Dst: fu_device_set_update_image
      Src: /src/fwupd/libfwupdplugin/fu-device.c:239,1
    - Dst: g_value_get_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:239,1
    - Dst: fu_device_set_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:242,1
    - Dst: g_value_get_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:242,1
    - Dst: fu_device_set_backend
      Src: /src/fwupd/libfwupdplugin/fu-device.c:245,1
    - Dst: g_value_get_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:245,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/libfwupdplugin/fu-device.c:248,1
    - Dst: g_value_get_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:248,1
    - Dst: fu_device_set_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:251,1
    - Dst: g_value_get_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:251,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:254,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupdplugin/fu-device.c:254,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:257,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupdplugin/fu-device.c:257,1
    - Dst: fu_device_set_required_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:260,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/libfwupdplugin/fu-device.c:260,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-device.c:263,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: 266
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 266
    functionName: fu_device_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_update_image
    - fu_device_set_context
    - g_value_get_uint64
    - g_value_get_object
    - fu_device_set_physical_id
    - fu_device_set_equivalent_id
    - fu_device_set_backend
    - fu_device_set_parent
    - fu_device_set_logical_id
    - fu_device_set_vid
    - FU_DEVICE
    - fu_device_set_proxy
    - g_value_get_uint
    - g_value_get_string
    - fu_device_set_required_free
    - fu_device_set_update_message
    - fu_device_set_backend_id
    - fu_device_set_pid
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    linkageType: ''
    returnType: void
    signature: void fu_device_set_property(GObject *object, guint prop_id, const GValue
      *value, GParamSpec *pspec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:271,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:327,1
    - Dst: G_LIKELY
      Src: /src/fwupd/libfwupdplugin/fu-device.c:328,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:330,1
    - Dst: g_quark_from_static_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:331,1
    - Dst: g_array_append_vals
      Src: /src/fwupd/libfwupdplugin/fu-device.c:332,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:332,1
    - Dst: g_array_append_vals
      Src: /src/fwupd/libfwupdplugin/fu-device.c:333,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 334
    functionName: fu_device_register_private_flags
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_quark_from_static_string
    - G_LIKELY
    - g_array_append_vals
    - G_N_ELEMENTS
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_register_private_flags(FuDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:340,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - flag_quark
    argTypes:
    - FuDevice*
    - GQuark
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 347
    functionName: fu_device_has_private_flag_quark
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 7
    functionsReached:
    - g_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_has_private_flag_quark(FuDevice *self, GQuark flag_quark)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:352,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - flag_quark
    argTypes:
    - FuDevice*
    - GQuark
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 359
    functionName: fu_device_private_flags_has_registered_quark
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_private_flags_has_registered_quark(FuDevice *self,
      GQuark flag_quark)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:364,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:365,1
    - Dst: g_array_append_val
      Src: /src/fwupd/libfwupdplugin/fu-device.c:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - flag_quark
    argTypes:
    - FuDevice*
    - GQuark
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 369
    functionName: fu_device_add_private_flag_quark
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_array_append_val
    - fu_device_has_private_flag_quark
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_add_private_flag_quark(FuDevice *self, GQuark flag_quark)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:374,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:376,1
    - Dst: g_array_remove_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - flag_quark
    argTypes:
    - FuDevice*
    - GQuark
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 383
    functionName: fu_device_remove_private_flag_quark
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_array_index
    - g_array_remove_index
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_remove_private_flag_quark(FuDevice *self, GQuark
      flag_quark)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:388,1
    - Dst: g_quark_from_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:389,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 396
    functionName: fu_device_find_private_flag_quark
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_array_index
    - g_quark_from_string
    - GET_PRIVATE
    linkageType: ''
    returnType: GQuark
    signature: GQuark fu_device_find_private_flag_quark(FuDevice *self, const gchar
      *flag)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:410,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:413,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:413,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:414,1
    - Dst: fu_device_register_private_flags
      Src: /src/fwupd/libfwupdplugin/fu-device.c:417,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:420,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/libfwupdplugin/fu-device.c:421,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:424,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:426,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:433,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:434,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:436,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:437,1
    - Dst: fu_device_set_order
      Src: /src/fwupd/libfwupdplugin/fu-device.c:440,1
    - Dst: fu_device_find_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:444,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupdplugin/fu-device.c:445,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:447,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-device.c:448,1
    - Dst: fu_device_add_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:453,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:454,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:454,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 455
    functionName: fu_device_add_private_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 41
    functionsReached:
    - g_object_notify
    - g_strcmp0
    - fu_device_set_order
    - g_critical
    - fu_device_add_problem
    - fu_device_get_children
    - FU_IS_DEVICE
    - fu_device_add_private_flag
    - g_return_if_fail
    - G_OBJECT_TYPE_NAME
    - fu_device_add_private_flag_quark
    - fu_device_find_private_flag_quark
    - G_OBJECT
    - G_UNLIKELY
    - fu_device_register_private_flags
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_add_private_flag(FuDevice *self, const gchar *flag)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:471,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:471,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:472,1
    - Dst: fu_device_register_private_flags
      Src: /src/fwupd/libfwupdplugin/fu-device.c:475,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:477,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/libfwupdplugin/fu-device.c:478,1
    - Dst: fu_device_find_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:480,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupdplugin/fu-device.c:481,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:483,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-device.c:484,1
    - Dst: fu_device_remove_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:489,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:490,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:490,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 491
    functionName: fu_device_remove_private_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - fu_device_remove_private_flag_quark
    - g_strcmp0
    - g_object_notify
    - g_critical
    - FU_IS_DEVICE
    - g_return_if_fail
    - G_OBJECT_TYPE_NAME
    - fu_device_remove_problem
    - fu_device_find_private_flag_quark
    - G_OBJECT
    - G_UNLIKELY
    - fu_device_register_private_flags
    linkageType: ''
    returnType: void
    signature: void fu_device_remove_private_flag(FuDevice *self, const gchar *flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:507,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:507,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:508,1
    - Dst: fu_device_register_private_flags
      Src: /src/fwupd/libfwupdplugin/fu-device.c:511,1
    - Dst: fu_device_find_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:513,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupdplugin/fu-device.c:514,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:516,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-device.c:517,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 523
    functionName: fu_device_has_private_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 57
    functionsReached:
    - g_return_val_if_fail
    - g_critical
    - FU_IS_DEVICE
    - G_OBJECT_TYPE_NAME
    - fu_device_has_private_flag_quark
    - fu_device_find_private_flag_quark
    - G_UNLIKELY
    - fu_device_register_private_flags
    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:541,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:542,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:542,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - request_kind
    argTypes:
    - FuDevice*
    - FwupdRequestKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 545
    functionName: fu_device_get_request_cnt
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:560,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 562
    functionName: fu_device_get_possible_plugins
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 6
    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:579,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:581,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:581,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:582,1
    - Dst: g_ptr_array_find_with_equal_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:585,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:587,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - plugin
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 588
    functionName: fu_device_add_possible_plugin
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - FU_IS_DEVICE
    - g_ptr_array_add
    - g_return_if_fail
    - g_ptr_array_find_with_equal_func
    - GET_PRIVATE
    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:605,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:607,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:607,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:608,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:612,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:613,1
    - Dst: g_ptr_array_remove_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - plugin
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 618
    functionName: fu_device_remove_possible_plugin
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_ptr_array_remove_index
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_remove_possible_plugin(FuDevice *self, const gchar *plugin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:638,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:641,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:641,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:642,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:646,1
    - Dst: g_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:648,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - domain
    - code
    - func
    argTypes:
    - FuDevice*
    - GQuark
    - gint
    - FuDeviceRetryFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 653
    functionName: fu_device_retry_add_recovery
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - g_new
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_ptr_array_add
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    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:667,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:668,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - delay
    argTypes:
    - FuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 670
    functionName: fu_device_retry_set_delay
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_retry_set_delay(FuDevice *self, guint delay)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:700,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:702,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:702,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:703,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:704,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:705,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:708,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:708,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:712,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/libfwupdplugin/fu-device.c:716,1
    - Dst: func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:719,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:724,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:733,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:734,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-device.c:742,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:748,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-device.c:749,1
    - Dst: FuDeviceRetryRecovery*::recovery_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:751,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:754,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:756,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 6
    argNames:
    - self
    - func
    - count
    - delay
    - user_data
    - error
    argTypes:
    - FuDevice*
    - FuDeviceRetryFunc
    - guint
    - guint
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 766
    functionName: fu_device_retry_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - func
    - g_info
    - fu_device_sleep
    - FU_IS_DEVICE
    - g_set_error_literal
    - g_steal_pointer
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_propagate_prefixed_error
    - g_error_matches
    - FuDeviceRetryRecovery*::recovery_func
    - g_autoptr
    - g_ptr_array_index
    - GET_PRIVATE
    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:794,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:795,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: 796
      start: 787
    functionDepth: 3
    functionLinenumber: 787
    functionLinenumberEnd: 796
    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:814,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:816,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:816,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:817,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:819,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:821,1
    - Dst: g_usleep
      Src: /src/fwupd/libfwupdplugin/fu-device.c:824,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - self
    - delay_ms
    argTypes:
    - FuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 825
    functionName: fu_device_sleep
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_usleep
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_device_has_flag
    - GET_PRIVATE
    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:841,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:843,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:843,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:844,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:845,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:845,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:847,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:849,1
    - Dst: fu_progress_sleep
      Src: /src/fwupd/libfwupdplugin/fu-device.c:852,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - self
    - delay_ms
    - progress
    argTypes:
    - FuDevice*
    - guint
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 838
    functionDepth: 4
    functionLinenumber: 838
    functionLinenumberEnd: 853
    functionName: fu_device_sleep_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_DEVICE
    - fu_progress_sleep
    - g_return_if_fail
    - fu_device_has_flag
    - FU_IS_PROGRESS
    - 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:878,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:879,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:879,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:880,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:881,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:883,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:883,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:884,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:885,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-device.c:885,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:886,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:886,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:887,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:890,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:890,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:891,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:891,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:891,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:893,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:897,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:897,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:898,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:899,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:901,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:901,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:904,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:907,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/libfwupdplugin/fu-device.c:910,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:915,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:915,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-device.c:918,1
    - Dst: G_OUTPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-device.c:919,1
    - Dst: g_file_replace
      Src: /src/fwupd/libfwupdplugin/fu-device.c:919,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/libfwupdplugin/fu-device.c:924,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:931,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/libfwupdplugin/fu-device.c:932,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-device.c:932,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/libfwupdplugin/fu-device.c:933,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:934,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:935,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:937,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:940,1
    - Dst: fu_output_stream_write_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:941,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:946,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-device.c:949,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/libfwupdplugin/fu-device.c:954,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: 958
      start: 869
    functionDepth: 5
    functionLinenumber: 869
    functionLinenumberEnd: 958
    functionName: fu_device_set_contents
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - G_OUTPUT_STREAM
    - fu_device_load_event
    - fu_device_get_context
    - g_strdup_printf
    - fu_byte_array_append_bytes
    - fu_progress_set_steps
    - g_byte_array_new
    - fu_device_has_flag
    - fu_device_save_event
    - fu_chunk_array_new_from_stream
    - fu_device_event_set_data
    - g_file_new_for_path
    - fu_chunk_get_bytes
    - g_file_replace
    - fu_device_event_get_bytes
    - fu_progress_step_done
    - FU_DEVICE
    - fu_chunk_array_length
    - fu_progress_set_id
    - g_return_val_if_fail
    - fu_input_stream_read_bytes
    - fu_chunk_array_index
    - FU_IS_DEVICE
    - FU_IS_PROGRESS
    - fu_output_stream_write_bytes
    - G_IS_INPUT_STREAM
    - fu_bytes_compare
    - g_autoptr
    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:981,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:983,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:983,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:984,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:985,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:986,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:986,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:987,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:989,1
    - Dst: fu_device_set_contents
      Src: /src/fwupd/libfwupdplugin/fu-device.c:990,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: 991
      start: 974
    functionDepth: 6
    functionLinenumber: 974
    functionLinenumberEnd: 991
    functionName: fu_device_set_contents_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_memory_input_stream_new_from_bytes
    - FU_IS_DEVICE
    - FU_IS_PROGRESS
    - fu_device_set_contents
    - g_autoptr
    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:1016,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1017,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1019,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1019,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1020,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1021,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1021,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1022,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_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1026,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1026,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1026,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1028,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1032,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1032,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1033,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1033,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1036,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1041,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1041,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1044,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1047,1
    - Dst: fu_device_event_set_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1053,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1056,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: 1057
      start: 1007
    functionDepth: 3
    functionLinenumber: 1007
    functionLinenumberEnd: 1057
    functionName: fu_device_get_contents_bytes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_input_stream_read_bytes
    - fu_device_load_event
    - FU_IS_DEVICE
    - fu_device_event_get_bytes
    - g_steal_pointer
    - fu_device_get_context
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_save_event
    - FU_IS_PROGRESS
    - fu_device_has_flag
    - fu_device_event_set_bytes
    - fu_input_stream_from_path
    - g_autoptr
    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:1083,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1084,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1086,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1086,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1087,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1088,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1088,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1089,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1092,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1092,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1093,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1093,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1093,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1095,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1099,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1099,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1100,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1100,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1103,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1103,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1108,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1111,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1114,1
    - Dst: fu_strsafe_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1117,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1119,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1128,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1131,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: 1132
      start: 1073
    functionDepth: 3
    functionLinenumber: 1073
    functionLinenumberEnd: 1132
    functionName: fu_device_get_contents
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - fu_device_get_context
    - g_strdup_printf
    - fu_input_stream_from_path
    - fu_device_event_get_str
    - fu_strsafe_bytes
    - g_set_error_literal
    - fu_device_save_event
    - fu_device_has_flag
    - fu_device_event_set_str
    - FU_DEVICE
    - g_return_val_if_fail
    - g_strdup
    - fu_input_stream_read_bytes
    - FU_IS_DEVICE
    - g_steal_pointer
    - FU_IS_PROGRESS
    - g_autoptr
    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:1158,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1162,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1164,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1164,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1165,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1168,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1168,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1169,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1169,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1169,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1171,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1181,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1181,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1182,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1182,1
    - Dst: fu_device_event_check_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1185,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1187,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1192,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1192,1
    - Dst: fu_context_get_smbios_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1195,1
    - Dst: fu_device_event_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1198,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1199,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1199,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1205,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: 1209
      start: 1151
    functionDepth: 4
    functionLinenumber: 1151
    functionLinenumberEnd: 1209
    functionName: fu_device_get_smbios_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_device_load_event
    - fu_device_event_check_error
    - fu_device_event_set_str
    - FU_IS_DEVICE
    - g_steal_pointer
    - fu_device_get_context
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_save_event
    - fu_device_has_flag
    - fu_context_get_smbios_string
    - fu_device_event_set_error
    - g_propagate_error
    - g_autoptr
    - fu_device_event_get_str
    - GET_PRIVATE
    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:1231,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1231,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1232,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1233,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1234,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1237,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1237,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1238,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1238,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1238,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1240,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1244,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1244,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1245,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1245,1
    - Dst: fu_device_event_get_i64
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1248,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1257,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1257,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1260,1
    - Dst: fu_device_event_set_i64
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1262,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - self
    - filename
    - exists
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1224
    functionDepth: 3
    functionLinenumber: 1224
    functionLinenumberEnd: 1266
    functionName: fu_device_query_file_exists
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_device_load_event
    - fu_device_event_set_i64
    - FU_IS_DEVICE
    - fu_device_get_context
    - fu_device_event_get_i64
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_save_event
    - fu_device_has_flag
    - g_file_test
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_query_file_exists(FuDevice *self, const gchar *filename,
      gboolean *exists, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1271,1
    - Dst: g_atomic_int_inc
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1268
    functionDepth: 0
    functionLinenumber: 1268
    functionLinenumberEnd: 1274
    functionName: fu_device_poll_locker_open_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_atomic_int_inc
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_poll_locker_open_cb(FuDevice *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1279,1
    - Dst: g_atomic_int_dec_and_test
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1276
    functionDepth: 0
    functionLinenumber: 1276
    functionLinenumberEnd: 1282
    functionName: fu_device_poll_locker_close_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_atomic_int_dec_and_test
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_poll_locker_close_cb(FuDevice *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1301,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1301,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1302,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1298
    functionDepth: 1
    functionLinenumber: 1298
    functionLinenumberEnd: 1308
    functionName: fu_device_poll_locker_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:1324,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1326,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1326,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1327,1
    - Dst: FuDeviceClass*::poll
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1321
    functionDepth: 0
    functionLinenumber: 1321
    functionLinenumberEnd: 1335
    functionName: fu_device_poll
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - FU_DEVICE_GET_CLASS
    - FuDeviceClass*::poll
    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:1340,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1341,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1342,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1345,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1347,1
    - Dst: fu_device_poll
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1351,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1337
    functionDepth: 2
    functionLinenumber: 1337
    functionLinenumberEnd: 1357
    functionName: fu_device_poll_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_device_has_private_flag
    - fu_device_poll
    - FU_DEVICE
    - g_warning
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_poll_cb(gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1373,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1375,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1375,1
    - Dst: g_clear_handle_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1377,1
    - Dst: g_timeout_add_seconds
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1381,1
    - Dst: g_timeout_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - interval
    argTypes:
    - FuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1370
    functionDepth: 0
    functionLinenumber: 1370
    functionLinenumberEnd: 1385
    functionName: fu_device_set_poll_interval
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_timeout_add_seconds
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_clear_handle_id
    - g_timeout_add
    - GET_PRIVATE
    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:1401,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1402,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1404
    functionName: fu_device_get_order
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 8
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:1419,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1420,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - order
    argTypes:
    - FuDevice*
    - gint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1416
    functionDepth: 0
    functionLinenumber: 1416
    functionLinenumberEnd: 1422
    functionName: fu_device_set_order
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:1437,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1438,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1434
    functionDepth: 0
    functionLinenumber: 1434
    functionLinenumberEnd: 1440
    functionName: fu_device_get_priority
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:1454,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1455,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - priority
    argTypes:
    - FuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1451
    functionDepth: 0
    functionLinenumber: 1451
    functionLinenumberEnd: 1457
    functionName: fu_device_set_priority
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:1472,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1473,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1469
    functionDepth: 0
    functionLinenumber: 1469
    functionLinenumberEnd: 1475
    functionName: fu_device_get_equivalent_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:1489,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1490,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1490,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1493,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1497,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1498,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1501,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1501,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1502,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1506,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1507,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1508,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1508,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - equivalent_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1486
    functionDepth: 1
    functionLinenumber: 1486
    functionLinenumberEnd: 1509
    functionName: fu_device_set_equivalent_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 5
    functionsReached:
    - g_strdup
    - g_object_notify
    - g_strcmp0
    - g_critical
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_device_get_id
    - g_free
    - fwupd_device_id_is_valid
    - G_OBJECT
    - GET_PRIVATE
    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:1517,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1517,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1518,1
    - Dst: fwupd_device_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1518,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1514
    functionDepth: 1
    functionLinenumber: 1514
    functionLinenumberEnd: 1519
    functionName: fu_device_get_parent_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 10
    functionsReached:
    - g_return_val_if_fail
    - fwupd_device_get_parent
    - FU_IS_DEVICE
    - FWUPD_DEVICE
    - FU_DEVICE
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_device_get_parent_internal(FuDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1542,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1542,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1543,1
    - Dst: fwupd_device_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1544,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1544,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1545,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1551,1
    - Dst: fwupd_device_get_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1551,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1539
    functionDepth: 1
    functionLinenumber: 1539
    functionLinenumberEnd: 1552
    functionName: fu_device_get_parent
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fwupd_device_get_parent
    - FU_IS_DEVICE
    - g_set_error_literal
    - FWUPD_DEVICE
    - FU_DEVICE
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_device_get_parent(FuDevice *self, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1571,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1571,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1573,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1567
    functionDepth: 2
    functionLinenumber: 1567
    functionLinenumberEnd: 1578
    functionName: fu_device_get_root
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_device_get_parent_internal
    - FU_IS_DEVICE
    - g_object_ref
    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:1586,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1586,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1589,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1591,1
    - Dst: fu_device_set_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - composite_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1580
    functionDepth: 2
    functionLinenumber: 1580
    functionLinenumberEnd: 1594
    functionName: fu_device_set_composite_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - fwupd_device_set_composite_id
    - fu_device_get_children
    - FWUPD_DEVICE
    - fu_device_set_composite_id
    - g_ptr_array_index
    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:1612,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1612,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1616,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1617,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1618,1
    - Dst: fu_device_set_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1623,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1623,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1627,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1627,1
    - Dst: fu_device_set_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1628,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1628,1
    - Dst: fwupd_device_set_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1631,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1631,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1631,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1632,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1632,1
    - Dst: fu_device_ensure_exported_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1635,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - self
    - parent
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1609
    functionDepth: 3
    functionLinenumber: 1609
    functionLinenumberEnd: 1636
    functionName: fu_device_set_parent
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 5
    functionsReached:
    - fu_device_get_id_display
    - g_object_notify
    - g_debug
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_device_get_context
    - fwupd_device_set_parent
    - FWUPD_DEVICE
    - fu_device_ensure_exported_name
    - fu_device_set_context
    - fu_device_get_composite_id
    - G_OBJECT
    - fu_device_set_composite_id
    linkageType: ''
    returnType: void
    signature: void fu_device_set_parent(FuDevice *self, FuDevice *parent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1648,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1649,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1649,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1650,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1650,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1651,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1652,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1653,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1654,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1655,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1656,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - self
    - proxy
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1639
    functionDepth: 1
    functionLinenumber: 1639
    functionLinenumberEnd: 1659
    functionName: fu_device_incorporate_from_proxy_flags
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - fwupd_device_flag_to_string
    - fu_device_remove_flag
    - fu_device_has_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:1664,1
    - Dst: fu_device_incorporate_from_proxy_flags
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - proxy
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1661
    functionDepth: 2
    functionLinenumber: 1661
    functionLinenumberEnd: 1666
    functionName: fu_device_proxy_flags_notify_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_incorporate_from_proxy_flags
    linkageType: ''
    returnType: void
    signature: void fu_device_proxy_flags_notify_cb(FuDevice *proxy, GParamSpec *pspec,
      gpointer user_data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1685,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1687,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1687,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1688,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1688,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1689,1
    - Dst: g_type_is_a
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1697,1
    - Dst: G_OBJECT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1697,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1698,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1699,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1700,1
    - Dst: g_clear_signal_handler
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1705,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1709,1
    - Dst: g_signal_connect
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1711,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1711,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1713,1
    - Dst: fu_device_incorporate_from_proxy_flags
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1715,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1719,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1720,1
    - Dst: fu_device_set_target
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1721,1
    - Dst: g_object_remove_weak_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1724,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1724,1
    - Dst: g_object_add_weak_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1727,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1727,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1730,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1730,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - self
    - proxy
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1682
    functionDepth: 2
    functionLinenumber: 1682
    functionLinenumberEnd: 1731
    functionName: fu_device_set_proxy
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 6
    functionsReached:
    - G_OBJECT_TYPE
    - g_critical
    - g_object_add_weak_pointer
    - G_OBJECT_TYPE_NAME
    - fu_device_incorporate
    - g_clear_signal_handler
    - g_signal_connect
    - g_type_is_a
    - GET_PRIVATE
    - g_object_notify
    - FWUPD_DEVICE
    - g_object_remove_weak_pointer
    - G_OBJECT
    - fu_device_set_target
    - g_type_name
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_set_object
    - fu_device_incorporate_from_proxy_flags
    - fu_device_has_private_flag_quark
    - G_CALLBACK
    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:1739,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1740,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1736
    functionDepth: 0
    functionLinenumber: 1736
    functionLinenumberEnd: 1742
    functionName: fu_device_get_proxy_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_device_get_proxy_internal(FuDevice *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1763,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1764,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1764,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1765,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1769,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1773,1
    - Dst: g_type_is_a
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1781,1
    - Dst: G_OBJECT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1781,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1782,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1786,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1787,1
    - Dst: fu_device_get_proxy_internal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1790,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1760
    functionDepth: 1
    functionLinenumber: 1760
    functionLinenumberEnd: 1791
    functionName: fu_device_get_proxy
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - G_OBJECT_TYPE
    - g_critical
    - g_type_name
    - g_set_error
    - g_type_is_a
    - g_set_error_literal
    - FU_IS_DEVICE
    - G_OBJECT_TYPE_NAME
    - fu_device_get_proxy_internal
    - GET_PRIVATE
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_device_get_proxy(FuDevice *self, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1807,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1808,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1808,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1809,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1813
      start: 1804
    functionDepth: 2
    functionLinenumber: 1804
    functionLinenumberEnd: 1813
    functionName: fu_device_get_proxy_with_fallback
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - fu_device_has_private_flag
    - GET_PRIVATE
    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:1829,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1829,1
    - Dst: fwupd_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1830,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1826
    functionDepth: 2
    functionLinenumber: 1826
    functionLinenumberEnd: 1831
    functionName: fu_device_get_children
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 9
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - fwupd_device_get_children
    - FWUPD_DEVICE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_device_get_children(FuDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1850,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1850,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1852,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1852,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1853,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1856,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1858,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1862,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1863,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1863,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1864,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1867,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1867,1
    - Dst: fu_strjoin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1871,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1872,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - logical_id
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1845
    functionDepth: 3
    functionLinenumber: 1845
    functionLinenumberEnd: 1879
    functionName: fu_device_get_child_by_logical_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - fu_device_get_logical_id
    - g_set_error
    - fu_device_get_children
    - g_ptr_array_new
    - FU_IS_DEVICE
    - g_set_error_literal
    - g_ptr_array_add
    - fu_strjoin
    - g_object_ref
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_device_get_child_by_logical_id(FuDevice *self, const gchar *logical_id, GError
      **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1884,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1885,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1887,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1888,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1890,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1890,1
    - Dst: fwupd_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1891,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1891,1
    - Dst: fwupd_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1893,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1893,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1881
    functionDepth: 2
    functionLinenumber: 1881
    functionLinenumberEnd: 1895
    functionName: fu_device_ensure_exported_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - fu_device_get_parent_internal
    - fu_device_has_private_flag
    - FWUPD_DEVICE
    - g_strdup_printf
    - fu_device_get_name
    - fwupd_device_set_name
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_ensure_exported_name(FuDevice *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1910,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1912,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1914,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1914,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1915,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1915,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1918,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1919,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1922,1
    - Dst: fwupd_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1925,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1925,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1925,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1929,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1930,1
    - Dst: g_hash_table_get_values
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1930,1
    - Dst: fu_device_inhibit_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1933,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1941,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1943,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1944,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1946,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1954,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1956,1
    - Dst: fu_device_get_acquiesce_delay
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1957,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1959,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1968,1
    - Dst: fu_device_set_acquiesce_delay
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1969,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1973,1
    - Dst: fu_device_ensure_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1982,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1983,1
    - Dst: fu_device_set_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1986,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:1989,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - self
    - child
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1907
    functionDepth: 4
    functionLinenumber: 1907
    functionLinenumberEnd: 1990
    functionName: fu_device_add_child
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 19
    functionsReached:
    - fu_device_add_flag
    - fu_device_inhibit_full
    - fu_device_get_children
    - fu_device_incorporate
    - g_signal_emit
    - g_ptr_array_index
    - g_debug
    - fwupd_device_add_child
    - fu_device_get_acquiesce_delay
    - fu_device_has_flag
    - fu_device_set_parent
    - GET_PRIVATE
    - fu_device_set_acquiesce_delay
    - fu_device_get_remove_delay
    - fu_device_convert_instance_ids
    - FWUPD_DEVICE
    - g_warning
    - g_hash_table_get_values
    - fu_device_ensure_id
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_device_has_private_flag
    - g_autoptr
    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:2004,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2004,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2005,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2005,1
    - Dst: fwupd_device_remove_child
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2008,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2008,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2008,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - child
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2012
      start: 2001
    functionDepth: 1
    functionLinenumber: 2001
    functionLinenumberEnd: 2012
    functionName: fu_device_remove_child
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - FWUPD_DEVICE
    - g_signal_emit
    - fwupd_device_remove_child
    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:2027,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2027,1
    - Dst: fwupd_device_remove_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2030,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2030,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2033,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2035,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2022
    functionDepth: 3
    functionLinenumber: 2022
    functionLinenumberEnd: 2038
    functionName: fu_device_remove_children
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - fu_device_get_children
    - FU_IS_DEVICE
    - g_return_if_fail
    - fwupd_device_remove_children
    - FWUPD_DEVICE
    - g_signal_emit
    - g_ptr_array_index
    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:2043,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2046,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 2040
    functionDepth: 0
    functionLinenumber: 2040
    functionLinenumberEnd: 2047
    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:2063,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2064,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2064,1
    - Dst: fu_device_ensure_parent_guids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2067
      start: 2060
    functionDepth: 1
    functionLinenumber: 2060
    functionLinenumberEnd: 2067
    functionName: fu_device_get_parent_guids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - fu_device_ensure_parent_guids
    - 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:2083,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2085,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2085,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2086,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2091,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2092,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2080
    functionDepth: 0
    functionLinenumber: 2080
    functionLinenumberEnd: 2096
    functionName: fu_device_has_parent_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FU_IS_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    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:2117,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2119,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2119,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2120,1
    - Dst: fu_device_ensure_parent_guids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2123,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2126,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2127,1
    - Dst: fu_device_has_parent_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2128,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2130,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2131,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2131,1
    - Dst: fu_device_has_parent_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2136,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2138,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2114
    functionDepth: 3
    functionLinenumber: 2114
    functionLinenumberEnd: 2139
    functionName: fu_device_add_parent_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - fu_device_ensure_parent_guids
    - fu_device_has_parent_guid
    - g_debug
    - FU_IS_DEVICE
    - g_steal_pointer
    - g_return_if_fail
    - g_ptr_array_add
    - fwupd_guid_is_valid
    - fwupd_guid_hash_string
    - GET_PRIVATE
    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:2156,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2157,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2153
    functionDepth: 0
    functionLinenumber: 2153
    functionLinenumberEnd: 2159
    functionName: fu_device_get_parent_physical_ids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:2175,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2177,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2177,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2178,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2183,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - physical_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2172
    functionDepth: 0
    functionLinenumber: 2172
    functionLinenumberEnd: 2188
    functionName: fu_device_has_parent_physical_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FU_IS_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    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:2206,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2208,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2208,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2209,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2213,1
    - Dst: fu_device_has_parent_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2216,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2218,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - physical_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2203
    functionDepth: 1
    functionLinenumber: 2203
    functionLinenumberEnd: 2219
    functionName: fu_device_add_parent_physical_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_ptr_array_add
    - fu_device_has_parent_physical_id
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    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:2236,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2237,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2239
      start: 2233
    functionDepth: 0
    functionLinenumber: 2233
    functionLinenumberEnd: 2239
    functionName: fu_device_get_parent_backend_ids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:2255,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2257,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2257,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2258,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2263,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - backend_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2252
    functionDepth: 0
    functionLinenumber: 2252
    functionLinenumberEnd: 2268
    functionName: fu_device_has_parent_backend_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FU_IS_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    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:2286,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2288,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2288,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2289,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2293,1
    - Dst: fu_device_has_parent_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2296,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2298,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - backend_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2299
      start: 2283
    functionDepth: 1
    functionLinenumber: 2283
    functionLinenumberEnd: 2299
    functionName: fu_device_add_parent_backend_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - fu_device_has_parent_backend_id
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_ptr_array_add
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    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:2304,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2305,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2306,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2307,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2308,1
    - Dst: fu_device_ensure_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2309,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2311,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2313,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - self
    - type
    - guid
    - error
    argTypes:
    - FuDevice*
    - GType
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2301
    functionDepth: 5
    functionLinenumber: 2301
    functionLinenumberEnd: 2316
    functionName: fu_device_add_child_by_type_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - fu_device_add_child
    - fu_device_add_instance_id
    - fu_device_ensure_id
    - fu_device_convert_instance_ids
    - fu_device_incorporate
    - g_object_new
    - g_autoptr
    - GET_PRIVATE
    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:2321,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2321,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2324,1
    - Dst: fu_device_add_child_by_type_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2325,1
    - Dst: G_OBJECT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2325,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2329,1
    - Dst: g_type_from_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2330,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2332,1
    - Dst: fu_device_add_child_by_type_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2338,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - str
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2347
      start: 2318
    functionDepth: 6
    functionLinenumber: 2318
    functionLinenumberEnd: 2347
    functionName: fu_device_add_child_by_kv
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_TYPE
    - fu_device_add_child_by_type_guid
    - g_set_error_literal
    - g_strsplit
    - g_strv_length
    - g_auto
    - 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:2352,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2354,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2357,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2358,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2359,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2367,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2368,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2374
      start: 2349
    functionDepth: 1
    functionLinenumber: 2349
    functionLinenumberEnd: 2374
    functionName: fu_device_set_quirk_inhibit_section
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - fu_device_uninhibit
    - g_set_error_literal
    - g_strsplit
    - g_strv_length
    - fu_device_inhibit
    - g_auto
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_set_quirk_inhibit_section(FuDevice *self, const
      gchar *value, GError **error)
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2397,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2398,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2401,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2401,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2402,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2403,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2404,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2406,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2407,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2407,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2410,1
    - Dst: fu_device_remove_possible_plugin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2411,1
    - Dst: fu_device_add_possible_plugin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2414,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2418,1
    - Dst: fu_device_set_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2419,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2422,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2423,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2425,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2428,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2429,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2432,1
    - Dst: fu_device_set_branch
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2433,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2436,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2437,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2439,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2442,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2443,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2443,1
    - Dst: fu_device_add_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2445,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2448,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2449,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2449,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2451,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2454,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2455,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2455,1
    - Dst: fu_device_add_issue
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2457,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2460,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2461,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2464,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2465,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2468,1
    - Dst: fu_device_set_version_highest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2469,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2472,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2473,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2476,1
    - Dst: fu_device_set_update_image
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2477,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2480,1
    - Dst: fu_device_set_details_url
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2481,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2484,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2485,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2485,1
    - Dst: fu_device_get_icons
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2486,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2490,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2493,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2494,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2494,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2496,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2503,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2504,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2504,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2506,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2512,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2513,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2513,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2515,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2521,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2522,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2522,1
    - Dst: fu_device_add_parent_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2524,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2527,1
    - Dst: fu_device_set_proxy_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2528,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2531,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2532,1
    - Dst: fu_device_set_firmware_size_min
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2534,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2537,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2538,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2540,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2543,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2544,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2546,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2549,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2550,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2552,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2555,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2556,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2558,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2561,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2562,1
    - Dst: fu_device_set_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2564,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2567,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2568,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2570,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2573,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2574,1
    - Dst: fu_device_set_acquiesce_delay
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2576,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2579,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2580,1
    - Dst: fwupd_version_format_from_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2580,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2583,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2584,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2584,1
    - Dst: fu_device_set_quirk_inhibit_section
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2586,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2591,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2593,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2594,1
    - Dst: g_type_from_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2598,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2600,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2609,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2611,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2612,1
    - Dst: g_type_from_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2616,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2618,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2627,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2629,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2630,1
    - Dst: g_type_from_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2634,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2636,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2645,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2646,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2646,1
    - Dst: fu_device_add_child_by_kv
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2648,1
    - Dst: FuDeviceClass*::set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2656,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2659,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 239
    argCount: 5
    argNames:
    - self
    - key
    - value
    - source
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - FuContextQuirkSource
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2664
      start: 2390
    functionDepth: 7
    functionLinenumber: 2390
    functionLinenumberEnd: 2664
    functionName: fu_device_set_quirk_kv
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - fu_device_set_version_highest
    - fu_device_set_version
    - fu_device_add_possible_plugin
    - fu_device_set_update_image
    - fu_device_set_firmware_size_max
    - fu_device_set_battery_threshold
    - fu_device_set_quirk_inhibit_section
    - FU_DEVICE_GET_CLASS
    - fu_device_add_vendor_id
    - fu_device_get_name
    - g_auto
    - fu_device_set_version_format
    - fu_device_add_child_by_kv
    - fu_device_set_details_url
    - fu_device_set_remove_delay
    - g_debug
    - g_set_error_literal
    - fu_device_add_icon
    - g_strsplit
    - fu_device_set_summary
    - fu_device_set_vendor
    - FuDeviceClass*::set_quirk_kv
    - fu_device_add_instance_id_full
    - g_str_has_prefix
    - fu_device_get_vendor
    - fu_device_add_protocol
    - GET_PRIVATE
    - fu_device_set_acquiesce_delay
    - fu_device_set_firmware_size_min
    - fu_strtoull
    - fu_device_set_name
    - fu_device_remove_possible_plugin
    - fu_device_set_custom_flags
    - fwupd_version_format_from_string
    - g_return_val_if_fail
    - g_strcmp0
    - fu_device_set_branch
    - fu_device_add_issue
    - g_type_name
    - fu_device_set_firmware_size
    - g_set_error
    - FU_IS_DEVICE
    - fu_device_get_icons
    - fu_device_set_proxy_guid
    - fu_device_set_update_message
    - fu_device_set_priority
    - fu_device_set_install_duration
    - fu_device_set_version_lowest
    - fu_device_add_parent_guid
    - g_type_from_name
    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:2679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2681
      start: 2676
    functionDepth: 0
    functionLinenumber: 2676
    functionLinenumberEnd: 2681
    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:2695,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2696,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2696,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - gtype
    argTypes:
    - FuDevice*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2692
    functionDepth: 0
    functionLinenumber: 2692
    functionLinenumberEnd: 2699
    functionName: fu_device_set_specialized_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:2714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2716
      start: 2711
    functionDepth: 0
    functionLinenumber: 2711
    functionLinenumberEnd: 2716
    functionName: fu_device_get_proxy_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    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:2730,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2731,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2731,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - gtype
    argTypes:
    - FuDevice*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2734
      start: 2727
    functionDepth: 0
    functionLinenumber: 2727
    functionLinenumberEnd: 2734
    functionName: fu_device_set_proxy_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:2749,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2750,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2752
      start: 2746
    functionDepth: 0
    functionLinenumber: 2746
    functionLinenumberEnd: 2752
    functionName: fu_device_get_firmware_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:2766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - firmware_gtype
    argTypes:
    - FuDevice*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2768
      start: 2763
    functionDepth: 0
    functionLinenumber: 2763
    functionLinenumberEnd: 2768
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2783,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2786,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2788,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2789,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2790,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - key
    - value
    - source
    - user_data
    argTypes:
    - FuContext*
    - gchar*
    - gchar*
    - FuContextQuirkSource
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2792
      start: 2775
    functionDepth: 8
    functionLinenumber: 2775
    functionLinenumberEnd: 2792
    functionName: fu_device_quirks_iter_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_critical
    - g_warning
    - g_error_matches
    - fu_device_set_quirk_kv
    - 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:2797,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2800,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2800,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2801,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2804,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2805,1
    - Dst: fu_context_lookup_quirk_by_id_iter
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - guid
    - flags
    argTypes:
    - FuDevice*
    - gchar*
    - FuDeviceInstanceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2815
      start: 2794
    functionDepth: 1
    functionLinenumber: 2794
    functionLinenumberEnd: 2815
    functionName: fu_device_add_guid_quirks
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_critical
    - fu_device_to_string
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_context_lookup_quirk_by_id_iter
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_add_guid_quirks(FuDevice *self, const gchar *guid, FuDeviceInstanceFlags
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2829,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2830,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2833
      start: 2826
    functionDepth: 0
    functionLinenumber: 2826
    functionLinenumberEnd: 2833
    functionName: fu_device_set_firmware_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:2847,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2848,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - size_min
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2844
    functionDepth: 0
    functionLinenumber: 2844
    functionLinenumberEnd: 2850
    functionName: fu_device_set_firmware_size_min
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:2864,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2865,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - size_max
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2867
      start: 2861
    functionDepth: 0
    functionLinenumber: 2861
    functionLinenumberEnd: 2867
    functionName: fu_device_set_firmware_size_max
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:2882,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2883,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2885
      start: 2879
    functionDepth: 0
    functionLinenumber: 2879
    functionLinenumberEnd: 2885
    functionName: fu_device_get_firmware_size_min
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:2900,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2901,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2903
      start: 2897
    functionDepth: 0
    functionLinenumber: 2897
    functionLinenumberEnd: 2903
    functionName: fu_device_get_firmware_size_max
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:2918,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2919,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2921
      start: 2915
    functionDepth: 0
    functionLinenumber: 2915
    functionLinenumberEnd: 2921
    functionName: fu_device_get_required_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:2940,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2941,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2941,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2945,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - required_free
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2946
      start: 2937
    functionDepth: 0
    functionLinenumber: 2937
    functionLinenumberEnd: 2946
    functionName: fu_device_set_required_free
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - FU_IS_DEVICE
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:2962,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2962,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2963,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2966,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2967,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2968,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2968,1
    - Dst: fwupd_device_has_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2972,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2973
      start: 2959
    functionDepth: 3
    functionLinenumber: 2959
    functionLinenumberEnd: 2973
    functionName: fu_device_has_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 10
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - fwupd_guid_is_valid
    - fwupd_device_has_guid
    - FWUPD_DEVICE
    - fwupd_guid_hash_string
    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:2978,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2979,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - item
    argTypes:
    - FuDeviceInstanceIdItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2981
      start: 2975
    functionDepth: 0
    functionLinenumber: 2975
    functionLinenumberEnd: 2981
    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:2986,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2990,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2991,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:2993,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - self
    - instance_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2997
      start: 2983
    functionDepth: 0
    functionLinenumber: 2983
    functionLinenumberEnd: 2997
    functionName: fu_device_get_instance_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: FuDeviceInstanceIdItem
    signature: 'FuDeviceInstanceIdItem *

      fu_device_get_instance_id(FuDevice *self, const gchar *instance_id)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3019,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3021,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3021,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3022,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3025,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3028,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3029,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3032,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - self
    - instance_id
    - flags
    argTypes:
    - FuDevice*
    - gchar*
    - FuDeviceInstanceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3038
      start: 3016
    functionDepth: 0
    functionLinenumber: 3016
    functionLinenumberEnd: 3038
    functionName: fu_device_has_instance_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 9
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - g_critical
    - FU_IS_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_has_instance_id(FuDevice *self, const gchar *instance_id,
      FuDeviceInstanceFlags flags)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3058,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3061,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3061,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3062,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3066,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3067,1
    - Dst: fu_device_get_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3072,1
    - Dst: fu_device_add_guid_quirks
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3077,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3081,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3082,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3083,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3085,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3086,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3090,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3092,1
    - Dst: fu_device_add_guid_quirks
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3096,1
    - Dst: fwupd_device_add_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3102,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3102,1
    - Dst: fwupd_device_add_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3104,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3104,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - self
    - instance_id
    - flags
    argTypes:
    - FuDevice*
    - gchar*
    - FuDeviceInstanceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3106
      start: 3053
    functionDepth: 3
    functionLinenumber: 3053
    functionLinenumberEnd: 3106
    functionName: fu_device_add_instance_id_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 9
    functionsReached:
    - g_strdup
    - fu_device_get_instance_id
    - fwupd_guid_hash_string
    - g_new0
    - g_debug
    - fwupd_device_add_guid
    - FU_IS_DEVICE
    - fwupd_device_add_instance_id
    - g_return_if_fail
    - g_ptr_array_add
    - fu_device_has_private_flag
    - fwupd_guid_is_valid
    - FWUPD_DEVICE
    - fu_device_add_guid_quirks
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: "void fu_device_add_instance_id_full(FuDevice *self,\n\t\t\t       const
      gchar *instance_id,\n\t\t\t       FuDeviceInstanceFlags flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3120,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3120,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3121,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - instance_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3126
      start: 3117
    functionDepth: 4
    functionLinenumber: 3117
    functionLinenumberEnd: 3126
    functionName: fu_device_add_instance_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 62
    functionsReached:
    - fu_device_add_instance_id_full
    - FU_IS_DEVICE
    - 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:3141,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3142,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3142,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3144,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3144,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3147,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3149,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3149,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3152
      start: 3138
    functionDepth: 0
    functionLinenumber: 3138
    functionLinenumberEnd: 3152
    functionName: fu_device_get_counterpart_guids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - FU_IS_DEVICE
    - g_steal_pointer
    - g_ptr_array_add
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    - GET_PRIVATE
    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:3168,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3169,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3169,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3170,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3174
      start: 3165
    functionDepth: 0
    functionLinenumber: 3165
    functionLinenumberEnd: 3174
    functionName: fu_device_get_metadata
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - g_hash_table_lookup
    - 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:3190,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3193,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3193,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3194,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3198,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3202
      start: 3187
    functionDepth: 0
    functionLinenumber: 3187
    functionLinenumberEnd: 3202
    functionName: fu_device_get_metadata_boolean
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - FU_IS_DEVICE
    - g_hash_table_lookup
    - GET_PRIVATE
    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:3218,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3221,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3223,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3223,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3224,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3228,1
    - Dst: fu_strtoull
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3231,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3236
      start: 3215
    functionDepth: 1
    functionLinenumber: 3215
    functionLinenumberEnd: 3236
    functionName: fu_device_get_metadata_integer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - fu_strtoull
    - FU_IS_DEVICE
    - g_hash_table_lookup
    - g_warning
    - g_autoptr
    - GET_PRIVATE
    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:3250,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3251,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3251,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3252,1
    - Dst: g_hash_table_remove
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3256
      start: 3247
    functionDepth: 0
    functionLinenumber: 3247
    functionLinenumberEnd: 3256
    functionName: fu_device_remove_metadata
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_hash_table_remove
    - FU_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:3271,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3272,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3272,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3273,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3274,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3276,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3277,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3277,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3278
      start: 3268
    functionDepth: 0
    functionLinenumber: 3268
    functionLinenumberEnd: 3278
    functionName: fu_device_set_metadata
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_hash_table_new_full
    - GET_PRIVATE
    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:3294,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3294,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3295,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3298
      start: 3291
    functionDepth: 1
    functionLinenumber: 3291
    functionLinenumberEnd: 3298
    functionName: fu_device_set_metadata_boolean
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - fu_device_set_metadata
    - FU_IS_DEVICE
    - 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:3314,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3316,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3316,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3317,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3320
      start: 3311
    functionDepth: 1
    functionLinenumber: 3311
    functionLinenumberEnd: 3320
    functionName: fu_device_set_metadata_integer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 7
    functionsReached:
    - fu_device_set_metadata
    - g_strdup_printf
    - FU_IS_DEVICE
    - 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: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3326,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3327,1
    - Dst: g_utf8_strup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3329,1
    - Dst: g_utf8_strup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3330,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3331,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3333,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3334,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3338,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3339,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3340,1
    - Dst: fu_strstrip
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3341,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3342,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3343,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3344,1
    - Dst: fu_device_ensure_exported_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3345,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3348
      start: 3323
    functionDepth: 3
    functionLinenumber: 3323
    functionLinenumberEnd: 3348
    functionName: fu_device_fixup_vendor_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_device_get_id_display
    - g_strcmp0
    - g_debug
    - fu_strstrip
    - g_steal_pointer
    - fu_device_ensure_exported_name
    - g_warning
    - strlen
    - g_utf8_strup
    - g_free
    - g_str_has_prefix
    - fu_device_get_vendor
    - GET_PRIVATE
    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:3371,1
    - Dst: fwupd_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3374,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3374,1
    - Dst: fu_device_fixup_vendor_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - vendor
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3376
      start: 3364
    functionDepth: 4
    functionLinenumber: 3364
    functionLinenumberEnd: 3376
    functionName: fu_device_set_vendor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 7
    functionsReached:
    - FWUPD_DEVICE
    - fu_strstrip
    - fwupd_device_set_vendor
    - fu_device_fixup_vendor_name
    linkageType: ''
    returnType: void
    signature: void fu_device_set_vendor(FuDevice *self, const gchar *vendor)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3383,1
    - Dst: g_string_new::g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3383,1
    - Dst: g_ascii_isprint
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3388,1
    - Dst: g_ascii_isspace
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3390,1
    - Dst: len::len
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3391,1
    - Dst: len::len
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3400,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3405,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3406,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3407,1
    - Dst: len::len
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3408,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3410,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3410,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3423,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3425,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3428,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3428,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3429,1
    - Dst: fu_device_sanitize_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3432,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3434,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3437,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3442,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3443,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3450,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3451,1
    - Dst: fu_device_fixup_vendor_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3452,1
    - Dst: fu_device_ensure_exported_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3455,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3476,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3479,1
    - Dst: fwupd_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3479,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3479,1
    - Dst: fwupd_device_id_is_valid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3485,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3486,1
    - Dst: g_compute_checksum_for_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3488,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3489,1
    - Dst: fwupd_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3491,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3491,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3495,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3497,1
    - Dst: fwupd_device_set_parent_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3498,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3498,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3503,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3503,1
    - Dst: fu_device_set_composite_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3504,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3520,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3523,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3525,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3526,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3527,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3528,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3528,1
    - Dst: fwupd_version_format_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3529,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3535,1
    - Dst: convert_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3537,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3537,1
    - Dst: fu_device_get_version_lowest_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3540,1
    - Dst: convert_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3542,1
    - Dst: fu_device_get_version_lowest_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3543,1
    - Dst: fu_device_get_version_highest_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3546,1
    - Dst: convert_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3548,1
    - Dst: fu_device_get_version_highest_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3549,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3565,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3568,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3570,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3570,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3573,1
    - Dst: fu_version_ensure_semver
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3575,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3575,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3576,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3577,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3579,1
    - Dst: if
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3583,1
    - Dst: fu_version_verify_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3584,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3584,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3586,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3588,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3592,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3592,1
    - Dst: if
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3593,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3593,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3594,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3595,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3596,1
    - Dst: fwupd_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3599,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3599,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3616,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3618,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3618,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3621,1
    - Dst: fu_version_ensure_semver
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3623,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3623,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3624,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3625,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3627,1
    - Dst: if
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3631,1
    - Dst: fu_version_verify_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3632,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3632,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3634,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3636,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3640,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3640,1
    - Dst: if
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3641,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3641,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3642,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3643,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3644,1
    - Dst: fwupd_device_set_version_lowest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3647,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3647,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3664,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3666,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3666,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3669,1
    - Dst: fu_version_ensure_semver
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3671,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3671,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3672,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3673,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3675,1
    - Dst: if
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3679,1
    - Dst: fu_version_verify_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3680,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3680,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3682,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3684,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3688,1
    - Dst: fu_device_get_version_highest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3688,1
    - Dst: if
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3689,1
    - Dst: fu_device_get_version_highest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3689,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3690,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3691,1
    - Dst: fu_device_get_version_highest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3692,1
    - Dst: fwupd_device_set_version_highest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3695,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3695,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3711,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3711,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3714,1
    - Dst: fu_version_ensure_semver
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3716,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3716,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3717,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3718,1
    - Dst: fwupd_device_set_version_bootloader
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3719,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3719,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3737,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3738,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3738,1
    - Dst: fwupd_device_set_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3740,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3740,1
    - Dst: convert_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3742,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3744,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 1
    argNames:
    - value
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3746
      start: 3378
    functionDepth: 4
    functionLinenumber: 3378
    functionLinenumberEnd: 3746
    functionName: fu_device_sanitize_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_critical
    - fu_device_set_version
    - fu_device_get_children
    - g_string_new::g_string_new
    - FU_DEVICE_GET_CLASS
    - fwupd_device_set_version_lowest
    - if
    - g_ascii_isspace
    - g_ascii_isprint
    - g_free
    - fu_device_get_version_lowest
    - fwupd_version_format_to_string
    - fu_device_set_composite_id
    - g_ptr_array_index
    - fwupd_device_set_version_raw
    - fu_device_get_version_raw
    - g_debug
    - g_compute_checksum_for_string
    - fu_version_verify_format
    - fu_device_get_version_highest
    - fu_device_ensure_exported_name
    - fwupd_device_set_parent_id
    - fwupd_device_set_version_bootloader
    - fu_device_get_version_lowest_raw
    - fwupd_device_set_version
    - fu_device_get_composite_id
    - fwupd_device_set_version_highest
    - GET_PRIVATE
    - fu_device_get_version_format
    - fwupd_device_set_id
    - convert_version
    - g_string_replace
    - g_info
    - fu_device_fixup_vendor_name
    - fwupd_device_get_id
    - fu_device_set_name
    - FWUPD_DEVICE
    - fu_device_sanitize_name
    - fwupd_device_id_is_valid
    - g_warning
    - fu_version_ensure_semver
    - g_strdup
    - g_strcmp0
    - FU_IS_DEVICE
    - g_steal_pointer
    - g_return_if_fail
    - fu_device_get_version_highest_raw
    - fu_device_has_private_flag
    - g_string_free
    - fu_device_get_id
    - fu_device_get_version
    - len::len
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_sanitize_name(const gchar *value)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3760,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3761,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3761,1
    - Dst: fwupd_device_set_version_lowest_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3763,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3763,1
    - Dst: FuDeviceClass*::convert_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3765,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3769
      start: 3757
    functionDepth: 1
    functionLinenumber: 3757
    functionLinenumberEnd: 3769
    functionName: fu_device_set_version_lowest_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - FU_DEVICE_GET_CLASS
    - g_return_if_fail
    - FWUPD_DEVICE
    - fwupd_device_set_version_lowest_raw
    - FuDeviceClass*::convert_version
    - fu_device_set_version_lowest
    linkageType: ''
    returnType: void
    signature: void fu_device_set_version_lowest_raw(FuDevice *self, guint64 version_raw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3783,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3784,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3784,1
    - Dst: fwupd_device_set_version_highest_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3786,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3786,1
    - Dst: FuDeviceClass*::convert_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3788,1
    - Dst: fu_device_set_version_highest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3792
      start: 3780
    functionDepth: 1
    functionLinenumber: 3780
    functionLinenumberEnd: 3792
    functionName: fu_device_set_version_highest_raw
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - fu_device_set_version_highest
    - FU_IS_DEVICE
    - FU_DEVICE_GET_CLASS
    - g_return_if_fail
    - FWUPD_DEVICE
    - FuDeviceClass*::convert_version
    - fwupd_device_set_version_highest_raw
    linkageType: ''
    returnType: void
    signature: void fu_device_set_version_highest_raw(FuDevice *self, guint64 version_raw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3809,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3810,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3810,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3813,1
    - Dst: FuDeviceClass*::convert_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3819,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - version_raw
    - error
    argTypes:
    - FuDevice*
    - guint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3820
      start: 3806
    functionDepth: 0
    functionLinenumber: 3806
    functionLinenumberEnd: 3820
    functionName: fu_device_convert_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - FU_IS_DEVICE
    - FU_DEVICE_GET_CLASS
    - FuDeviceClass*::convert_version
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_convert_version(FuDevice *self, guint64 version_raw, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3826,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3826,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3827,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3829
      start: 3823
    functionDepth: 1
    functionLinenumber: 3823
    functionLinenumberEnd: 3829
    functionName: fu_device_is_updatable
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - fu_device_has_flag
    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:3834,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3835,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - inhibit
    argTypes:
    - FuDeviceInhibit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3837
      start: 3831
    functionDepth: 0
    functionLinenumber: 3831
    functionLinenumberEnd: 3837
    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:3842,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3844,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3848,1
    - Dst: g_hash_table_get_values
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3848,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3849,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3849,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3853,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3854,1
    - Dst: fwupd_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3855,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3855,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3863,1
    - Dst: fu_strjoin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3867,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3868,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3870,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3873,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3874,1
    - Dst: fwupd_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3875,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3875,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3877,1
    - Dst: fwupd_device_set_problems
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3881,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3881,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3882
      start: 3839
    functionDepth: 1
    functionLinenumber: 3839
    functionLinenumberEnd: 3882
    functionName: fu_device_ensure_inhibits
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_hash_table_get_values
    - g_ptr_array_new
    - fu_strjoin
    - g_hash_table_size
    - g_ptr_array_add
    - fu_device_set_update_error
    - fu_device_remove_flag
    - fwupd_device_add_flag
    - FWUPD_DEVICE
    - fu_device_has_flag
    - g_autoptr
    - fwupd_device_set_problems
    - GET_PRIVATE
    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:3887,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3889,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3891,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3893,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3895,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3897,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3899,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3901,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3903,1
    - Dst: fu_device_get_equivalent_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3905,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3906,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3907,1
    - Dst: fu_device_get_equivalent_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3908,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3911,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3914,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3915,1
    - Dst: fu_context_get_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3916,1
    - Dst: fu_context_get_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3917,1
    - Dst: fu_device_get_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3920,1
    - Dst: fu_device_get_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3921,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3922,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3924,1
    - Dst: fu_device_get_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3925,1
    - Dst: fu_device_get_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3926,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 2
    argNames:
    - self
    - device_problem
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3929
      start: 3884
    functionDepth: 1
    functionLinenumber: 3884
    functionLinenumberEnd: 3929
    functionName: fu_device_problem_to_inhibit_reason
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_device_get_equivalent_id
    - fu_device_get_battery_level
    - fu_device_get_battery_threshold
    - fu_context_get_battery_threshold
    - g_strdup_printf
    - fu_context_get_battery_level
    - GET_PRIVATE
    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:3937,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3940,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3940,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3944,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3952,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3955,1
    - Dst: g_new0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3960,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3962,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3964,1
    - Dst: fu_device_problem_to_inhibit_reason
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3966,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3968,1
    - Dst: fu_device_ensure_inhibits
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3971,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3974,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3975,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3977,1
    - Dst: fu_device_inhibit_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:3978,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: 3981
      start: 3931
    functionDepth: 3
    functionLinenumber: 3931
    functionLinenumberEnd: 3981
    functionName: fu_device_inhibit_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - g_new0
    - fu_device_inhibit_full
    - fu_device_get_children
    - FU_IS_DEVICE
    - g_hash_table_lookup
    - g_return_if_fail
    - g_hash_table_new_full
    - fu_device_ensure_inhibits
    - fu_device_has_private_flag
    - fwupd_device_problem_to_string
    - g_ptr_array_index
    - fu_device_problem_to_inhibit_reason
    - GET_PRIVATE
    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:4000,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4000,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4001,1
    - Dst: fu_device_inhibit_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - inhibit_id
    - reason
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4003
      start: 3997
    functionDepth: 4
    functionLinenumber: 3997
    functionLinenumberEnd: 4003
    functionName: fu_device_inhibit
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 8
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_device_inhibit_full
    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:4019,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4021,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4021,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4022,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - inhibit_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4027
      start: 4016
    functionDepth: 0
    functionLinenumber: 4016
    functionLinenumberEnd: 4027
    functionName: fu_device_has_inhibit
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:4045,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4045,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4046,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4047,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - problem
    argTypes:
    - FuDevice*
    - FwupdDeviceProblem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4048
      start: 4042
    functionDepth: 1
    functionLinenumber: 4042
    functionLinenumberEnd: 4048
    functionName: fu_device_remove_problem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 8
    functionsReached:
    - fwupd_device_problem_to_string
    - FU_IS_DEVICE
    - fu_device_uninhibit
    - 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:4064,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4064,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4065,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4066,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - problem
    argTypes:
    - FuDevice*
    - FwupdDeviceProblem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4067
      start: 4061
    functionDepth: 1
    functionLinenumber: 4061
    functionLinenumberEnd: 4067
    functionName: fu_device_has_problem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - fwupd_device_problem_to_string
    - FU_IS_DEVICE
    - fu_device_has_inhibit
    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:4085,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4085,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4086,1
    - Dst: fu_device_inhibit_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - problem
    argTypes:
    - FuDevice*
    - FwupdDeviceProblem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4088
      start: 4082
    functionDepth: 4
    functionLinenumber: 4082
    functionLinenumberEnd: 4088
    functionName: fu_device_add_problem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 11
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_device_inhibit_full
    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:4106,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4108,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4108,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4109,1
    - Dst: g_hash_table_remove
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4113,1
    - Dst: fu_device_ensure_inhibits
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4114,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4117,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4118,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4120,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - inhibit_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4124
      start: 4103
    functionDepth: 3
    functionLinenumber: 4103
    functionLinenumberEnd: 4124
    functionName: fu_device_uninhibit
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 7
    functionsReached:
    - g_hash_table_remove
    - fu_device_uninhibit
    - fu_device_get_children
    - FU_IS_DEVICE
    - fu_device_ensure_inhibits
    - g_return_if_fail
    - fu_device_has_private_flag
    - g_ptr_array_index
    - GET_PRIVATE
    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:4141,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4144,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4144,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4145,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4153,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4154,1
    - Dst: g_strjoin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4164,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4164,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4164,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4167
      start: 4138
    functionDepth: 1
    functionLinenumber: 4138
    functionLinenumberEnd: 4167
    functionName: fu_device_ensure_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - fu_device_get_logical_id
    - fu_device_to_string
    - g_set_error
    - FU_IS_DEVICE
    - fu_device_get_physical_id
    - fu_device_set_id
    - g_strjoin
    - GET_PRIVATE
    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:4183,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4184,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4186
      start: 4180
    functionDepth: 0
    functionLinenumber: 4180
    functionLinenumberEnd: 4186
    functionName: fu_device_get_logical_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 14
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:4201,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4202,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4202,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4203,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4206,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4211,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4213,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4219,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4220,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4222,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - logical_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4223
      start: 4198
    functionDepth: 1
    functionLinenumber: 4198
    functionLinenumberEnd: 4223
    functionName: fu_device_set_logical_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 7
    functionsReached:
    - g_strdup
    - g_object_notify
    - g_strcmp0
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_device_get_id
    - g_warning
    - g_free
    - G_OBJECT
    - GET_PRIVATE
    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:4240,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4241,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4245
      start: 4237
    functionDepth: 0
    functionLinenumber: 4237
    functionLinenumberEnd: 4245
    functionName: fu_device_get_backend_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 19
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:4261,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4262,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4262,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4263,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4266,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4269,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4270,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4272,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - backend_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4273
      start: 4258
    functionDepth: 0
    functionLinenumber: 4258
    functionLinenumberEnd: 4273
    functionName: fu_device_set_backend_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 7
    functionsReached:
    - g_strdup
    - g_object_notify
    - g_strcmp0
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_free
    - G_OBJECT
    - GET_PRIVATE
    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:4288,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4289,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4291
      start: 4285
    functionDepth: 0
    functionLinenumber: 4285
    functionLinenumberEnd: 4291
    functionName: fu_device_get_backend
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:4305,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4307,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4307,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4308,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4308,1
    - Dst: fu_device_set_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4316,1
    - Dst: fu_backend_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4316,1
    - Dst: g_object_remove_weak_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4320,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4320,1
    - Dst: g_object_add_weak_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4322,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4322,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4326,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4326,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - self
    - backend
    argTypes:
    - FuDevice*
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4327
      start: 4302
    functionDepth: 1
    functionLinenumber: 4302
    functionLinenumberEnd: 4327
    functionName: fu_device_set_backend
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 5
    functionsReached:
    - FU_IS_BACKEND
    - g_object_notify
    - FU_IS_DEVICE
    - g_object_add_weak_pointer
    - g_return_if_fail
    - g_object_remove_weak_pointer
    - fu_device_set_context
    - fu_backend_get_context
    - G_OBJECT
    - GET_PRIVATE
    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:4348,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4351,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4352,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4354,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4354,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4355,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4359,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4367,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4367,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4368,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4368,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4368,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4370,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4374,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4374,1
    - Dst: fu_device_check_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4380,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4381,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4381,1
    - Dst: fu_device_event_check_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4384,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4387,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4387,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4389,1
    - Dst: fu_backend_get_device_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4391,1
    - Dst: fu_device_set_target
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4396,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4397,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4402,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4404,1
    - Dst: g_type_from_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4411,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4413,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4421,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4421,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4421,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4422,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4423,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4425,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4426,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4428,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4429,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4431,1
    - Dst: fu_device_set_target
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4433,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4434,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4439,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4439,1
    - Dst: fu_backend_get_device_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4442,1
    - Dst: fu_device_event_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4445,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4446,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4446,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4449,1
    - Dst: fu_device_event_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4451,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4452,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4452,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4458,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4458,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4459,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4460,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4460,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4461,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4462,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4464,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4466,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4467,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4469,1
    - Dst: fu_device_set_target
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4474,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4475,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 85
    argCount: 3
    argNames:
    - self
    - subsystem
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4476
      start: 4345
    functionDepth: 4
    functionLinenumber: 4345
    functionLinenumberEnd: 4476
    functionName: fu_device_get_backend_parent_with_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 10
    functionsReached:
    - fu_context_has_flag
    - fu_device_add_flag
    - fu_device_load_event
    - G_OBJECT_TYPE_NAME
    - fu_device_get_context
    - fu_device_get_physical_id
    - g_strdup_printf
    - g_object_new
    - fu_device_event_set_error
    - fu_device_event_get_str
    - fu_device_probe
    - fu_device_set_physical_id
    - g_debug
    - g_set_error_literal
    - fu_device_save_event
    - fu_device_has_flag
    - g_propagate_error
    - GET_PRIVATE
    - fu_device_event_check_error
    - fu_device_check_fwupd_version
    - fu_device_event_set_str
    - fu_device_set_id
    - FU_DEVICE
    - g_return_val_if_fail
    - fu_device_get_backend_id
    - fu_device_set_target
    - g_set_error
    - FU_IS_DEVICE
    - g_steal_pointer
    - fu_device_set_backend_id
    - fu_device_get_id
    - g_autoptr
    - fu_backend_get_device_parent
    - g_type_from_name
    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:4496,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4496,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4497,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4499
      start: 4493
    functionDepth: 5
    functionLinenumber: 4493
    functionLinenumberEnd: 4499
    functionName: fu_device_get_backend_parent
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_device_get_backend_parent_with_subsystem
    - FU_IS_DEVICE
    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:4514,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4515,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4517
      start: 4511
    functionDepth: 0
    functionLinenumber: 4511
    functionLinenumberEnd: 4517
    functionName: fu_device_get_update_request_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:4531,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4532,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4532,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4535,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4538,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - update_request_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4540
      start: 4528
    functionDepth: 0
    functionLinenumber: 4528
    functionLinenumberEnd: 4540
    functionName: fu_device_set_update_request_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:4555,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4556,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4558
      start: 4552
    functionDepth: 0
    functionLinenumber: 4552
    functionLinenumberEnd: 4558
    functionName: fu_device_get_update_message
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:4572,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4573,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4573,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4576,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4579,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4580,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4581,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - update_message
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4582
      start: 4569
    functionDepth: 0
    functionLinenumber: 4569
    functionLinenumberEnd: 4582
    functionName: fu_device_set_update_message
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 5
    functionsReached:
    - g_strdup
    - g_object_notify
    - g_strcmp0
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_free
    - G_OBJECT
    - GET_PRIVATE
    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:4597,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4598,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4600
      start: 4594
    functionDepth: 0
    functionLinenumber: 4594
    functionLinenumberEnd: 4600
    functionName: fu_device_get_update_image
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:4614,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4615,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4615,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4618,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4621,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4622,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4623,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - update_image
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4624
      start: 4611
    functionDepth: 0
    functionLinenumber: 4611
    functionLinenumberEnd: 4624
    functionName: fu_device_set_update_image
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - g_strdup
    - g_object_notify
    - g_strcmp0
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_free
    - G_OBJECT
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_set_update_image(FuDevice *self, const gchar *update_image)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4640,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4641,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4641,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4642,1
    - Dst: fu_version_compare
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - fwupd_version
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4648
      start: 4637
    functionDepth: 4
    functionLinenumber: 4637
    functionLinenumberEnd: 4648
    functionName: fu_device_check_fwupd_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - fu_version_compare
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_check_fwupd_version(FuDevice *self, const gchar
      *fwupd_version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4664,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4665,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4665,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4666,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4666,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4669,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4672,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - fwupd_version
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4674
      start: 4661
    functionDepth: 1
    functionLinenumber: 4661
    functionLinenumberEnd: 4674
    functionName: fu_device_set_fwupd_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_device_has_flag
    - g_free
    - GET_PRIVATE
    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:4690,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4691,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4693
      start: 4687
    functionDepth: 0
    functionLinenumber: 4687
    functionLinenumberEnd: 4693
    functionName: fu_device_get_proxy_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:4707,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4708,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4708,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4711,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4714,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - proxy_guid
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4716
      start: 4704
    functionDepth: 0
    functionLinenumber: 4704
    functionLinenumberEnd: 4716
    functionName: fu_device_set_proxy_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:4737,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4738,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4738,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4739,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4740,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4743,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4748,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4750,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4756,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4757,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4759,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4759,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - physical_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4760
      start: 4734
    functionDepth: 1
    functionLinenumber: 4734
    functionLinenumberEnd: 4760
    functionName: fu_device_set_physical_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 22
    functionsReached:
    - g_strdup
    - g_object_notify
    - g_strcmp0
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_device_get_id
    - g_warning
    - g_free
    - G_OBJECT
    - GET_PRIVATE
    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:4778,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4779,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4781
      start: 4775
    functionDepth: 0
    functionLinenumber: 4775
    functionLinenumberEnd: 4781
    functionName: fu_device_get_physical_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 20
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:4796,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4796,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4800,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuDevice*
    - FwupdDeviceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4803
      start: 4792
    functionDepth: 4
    functionLinenumber: 4792
    functionLinenumberEnd: 4803
    functionName: fu_device_remove_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 15
    functionsReached:
    - FWUPD_DEVICE
    - fwupd_device_remove_flag
    - fu_device_uninhibit
    linkageType: ''
    returnType: void
    signature: void fu_device_remove_flag(FuDevice *self, FwupdDeviceFlags flag)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4817,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4825,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4826,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4827,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4829,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4830,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4831,1
    - Dst: fu_device_ensure_inhibits
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4838,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4843,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4845,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4850,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4852,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4856,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4858,1
    - Dst: fwupd_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4865,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4865,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4870,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4874,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4880,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4883,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuDevice*
    - FwupdDeviceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4886
      start: 4814
    functionDepth: 5
    functionLinenumber: 4814
    functionLinenumberEnd: 4886
    functionName: fu_device_add_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 82
    functionsReached:
    - g_critical
    - g_debug
    - fu_device_add_problem
    - fu_device_ensure_inhibits
    - G_OBJECT_TYPE_NAME
    - fu_device_remove_flag
    - fwupd_device_add_flag
    - FWUPD_DEVICE
    - fu_device_has_flag
    - fu_device_inhibit
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_add_flag(FuDevice *self, FwupdDeviceFlags flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4901,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4904,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4904,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4905,1
    - Dst: fwupd_device_flag_from_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4909,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4910,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4911,1
    - Dst: fu_device_register_private_flags
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4917,1
    - Dst: fu_device_find_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4920,1
    - Dst: G_UNLIKELY
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4921,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4922,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4922,1
    - Dst: g_quark_from_static_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4927,1
    - Dst: g_array_append_val
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4928,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4929
      start: 4898
    functionDepth: 1
    functionLinenumber: 4898
    functionLinenumberEnd: 4929
    functionName: fu_device_register_private_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 5
    functionsReached:
    - g_critical
    - FU_IS_DEVICE
    - g_quark_from_static_string
    - g_return_if_fail
    - fwupd_device_flag_from_string
    - G_OBJECT_TYPE_NAME
    - fu_device_find_private_flag_quark
    - g_array_append_val
    - G_UNLIKELY
    - fu_device_register_private_flags
    - GET_PRIVATE
    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:4937,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4940,1
    - Dst: fwupd_device_flag_from_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4941,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4943,1
    - Dst: fu_device_find_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4946,1
    - Dst: fu_device_remove_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4948,1
    - Dst: fwupd_device_flag_from_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4955,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4957,1
    - Dst: fu_device_find_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4960,1
    - Dst: fu_device_add_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4962,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - self
    - hint
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4965
      start: 4931
    functionDepth: 6
    functionLinenumber: 4931
    functionLinenumberEnd: 4965
    functionName: fu_device_set_custom_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_remove_private_flag_quark
    - g_return_if_fail
    - fwupd_device_flag_from_string
    - fu_device_remove_flag
    - fu_device_add_private_flag_quark
    - fu_device_find_private_flag_quark
    - g_str_has_prefix
    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:4980,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4982,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4982,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4983,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4986,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4987,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4991,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4991,1
    - Dst: fu_device_set_custom_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:4993,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - custom_flags
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4995
      start: 4977
    functionDepth: 7
    functionLinenumber: 4977
    functionLinenumberEnd: 4995
    functionName: fu_device_set_custom_flags
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - g_strdup
    - FU_IS_DEVICE
    - fu_device_set_custom_flag
    - g_return_if_fail
    - g_strsplit
    - g_free
    - g_auto
    - GET_PRIVATE
    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:5010,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5011,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5013
      start: 5007
    functionDepth: 0
    functionLinenumber: 5007
    functionLinenumberEnd: 5013
    functionName: fu_device_get_custom_flags
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:5029,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5030,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5032
      start: 5026
    functionDepth: 0
    functionLinenumber: 5026
    functionLinenumberEnd: 5032
    functionName: fu_device_get_remove_delay
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:5051,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5052,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - remove_delay
    argTypes:
    - FuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5054
      start: 5048
    functionDepth: 0
    functionLinenumber: 5048
    functionLinenumberEnd: 5054
    functionName: fu_device_set_remove_delay
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 8
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:5070,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5071,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5073
      start: 5067
    functionDepth: 0
    functionLinenumber: 5067
    functionLinenumberEnd: 5073
    functionName: fu_device_get_acquiesce_delay
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:5092,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5093,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - acquiesce_delay
    argTypes:
    - FuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5095
      start: 5089
    functionDepth: 0
    functionLinenumber: 5089
    functionLinenumberEnd: 5095
    functionName: fu_device_set_acquiesce_delay
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:5109,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5109,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5113,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5115,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5117,1
    - Dst: fwupd_device_set_update_state
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5119,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - self
    - update_state
    argTypes:
    - FuDevice*
    - FwupdUpdateState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5120
      start: 5106
    functionDepth: 5
    functionLinenumber: 5106
    functionLinenumberEnd: 5120
    functionName: fu_device_set_update_state
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 11
    functionsReached:
    - fu_device_add_problem
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_device_set_update_error
    - FWUPD_DEVICE
    - fwupd_device_set_update_state
    - fu_device_remove_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:5125,1
    - Dst: fu_device_get_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5126,1
    - Dst: fu_device_get_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5126,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5127,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5131
      start: 5122
    functionDepth: 5
    functionLinenumber: 5122
    functionLinenumberEnd: 5131
    functionName: fu_device_ensure_battery_inhibit
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_problem
    - fu_device_get_battery_threshold
    - fu_device_remove_problem
    - fu_device_get_battery_level
    linkageType: ''
    returnType: void
    signature: void fu_device_ensure_battery_inhibit(FuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5146,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5146,1
    - Dst: fwupd_device_get_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5147,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5148
      start: 5143
    functionDepth: 1
    functionLinenumber: 5143
    functionLinenumberEnd: 5148
    functionName: fu_device_get_battery_level
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - fwupd_device_get_battery_level
    - FWUPD_DEVICE
    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:5165,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5165,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5166,1
    - Dst: fwupd_device_set_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5167,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5167,1
    - Dst: fu_device_ensure_battery_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - battery_level
    argTypes:
    - FuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5169
      start: 5162
    functionDepth: 6
    functionLinenumber: 5162
    functionLinenumberEnd: 5169
    functionName: fu_device_set_battery_level
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - FWUPD_DEVICE
    - fu_device_ensure_battery_inhibit
    - fwupd_device_set_battery_level
    linkageType: ''
    returnType: void
    signature: void fu_device_set_battery_level(FuDevice *self, guint battery_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5188,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5188,1
    - Dst: fwupd_device_get_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5189,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5190
      start: 5185
    functionDepth: 1
    functionLinenumber: 5185
    functionLinenumberEnd: 5190
    functionName: fu_device_get_battery_threshold
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - fwupd_device_get_battery_threshold
    - FWUPD_DEVICE
    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:5207,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5207,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5208,1
    - Dst: fwupd_device_set_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5209,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5209,1
    - Dst: fu_device_ensure_battery_inhibit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - battery_threshold
    argTypes:
    - FuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5211
      start: 5204
    functionDepth: 6
    functionLinenumber: 5204
    functionLinenumberEnd: 5211
    functionName: fu_device_set_battery_threshold
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - fwupd_device_set_battery_threshold
    - FU_IS_DEVICE
    - g_return_if_fail
    - FWUPD_DEVICE
    - fu_device_ensure_battery_inhibit
    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:5229,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5230,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5230,1
    - Dst: fwupd_device_get_created
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5234,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5235
      start: 5226
    functionDepth: 1
    functionLinenumber: 5226
    functionLinenumberEnd: 5235
    functionName: fu_device_get_created_usec
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - FWUPD_DEVICE
    - fwupd_device_get_created
    - GET_PRIVATE
    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:5251,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5252,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5252,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5253,1
    - Dst: fwupd_device_set_created
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5256,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - created_usec
    argTypes:
    - FuDevice*
    - gint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5257
      start: 5248
    functionDepth: 1
    functionLinenumber: 5248
    functionLinenumberEnd: 5257
    functionName: fu_device_set_created_usec
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 12
    functionsReached:
    - fwupd_device_set_created
    - FU_IS_DEVICE
    - g_return_if_fail
    - FWUPD_DEVICE
    - GET_PRIVATE
    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:5275,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5276,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5276,1
    - Dst: fwupd_device_get_modified
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5280,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5281
      start: 5272
    functionDepth: 1
    functionLinenumber: 5272
    functionLinenumberEnd: 5281
    functionName: fu_device_get_modified_usec
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - fwupd_device_get_modified
    - FU_IS_DEVICE
    - FWUPD_DEVICE
    - GET_PRIVATE
    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:5296,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5297,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5299
      start: 5293
    functionDepth: 0
    functionLinenumber: 5293
    functionLinenumberEnd: 5299
    functionName: fu_device_get_vid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 16
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:5313,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5314,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5314,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5318,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - vid
    argTypes:
    - FuDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5319
      start: 5310
    functionDepth: 0
    functionLinenumber: 5310
    functionLinenumberEnd: 5319
    functionName: fu_device_set_vid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 9
    functionsReached:
    - g_object_notify
    - FU_IS_DEVICE
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:5334,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5335,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5337
      start: 5331
    functionDepth: 0
    functionLinenumber: 5331
    functionLinenumberEnd: 5337
    functionName: fu_device_get_pid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 14
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:5351,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5352,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5352,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5356,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - pid
    argTypes:
    - FuDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5357
      start: 5348
    functionDepth: 0
    functionLinenumber: 5348
    functionLinenumberEnd: 5357
    functionName: fu_device_set_pid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 9
    functionsReached:
    - g_object_notify
    - FU_IS_DEVICE
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:5373,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5374,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5374,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5375,1
    - Dst: fwupd_device_set_modified
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5378,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - modified_usec
    argTypes:
    - FuDevice*
    - gint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5379
      start: 5370
    functionDepth: 1
    functionLinenumber: 5370
    functionLinenumberEnd: 5379
    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
    - fwupd_device_set_modified
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_set_modified_usec(FuDevice *self, gint64 modified_usec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_instance_flags_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5384,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5385,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5385,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5387,1
    - Dst: g_strjoinv
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - flags
    argTypes:
    - FuDeviceInstanceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5391
      start: 5381
    functionDepth: 0
    functionLinenumber: 5381
    functionLinenumberEnd: 5391
    functionName: fu_device_instance_flag_to_string_trunc
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_instance_flags_to_string
    - g_strsplit
    - strlen
    - g_strjoinv
    - g_auto
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_instance_flag_to_string_trunc(FuDeviceInstanceFlags flags)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5396,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5399,1
    - Dst: fu_device_instance_flag_to_string_trunc
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5400,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5401,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5404,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5405,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5407,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5410,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5411,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5412,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5413,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5414,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5415,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5416,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5417,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5418,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5419,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5420,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5421,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5422,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5423,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5425,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5425,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5427,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5427,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5429,1
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5432,1
    - Dst: fwupd_codec_string_append_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5434,1
    - Dst: fwupd_codec_string_append_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5435,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5436,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5438,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5439,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5441,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5443,1
    - Dst: g_list_sort
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5444,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5444,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5447,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5448,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5452,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5453,1
    - Dst: fu_strjoin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5456,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5457,1
    - Dst: fu_strjoin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5460,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5461,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5464,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5464,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5466,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5467,1
    - Dst: g_quark_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5467,1
    - Dst: fu_strjoin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5470,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5471,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5477,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5478,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5480,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5481,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5485,1
    - Dst: g_hash_table_get_values
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5485,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5489,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5492,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5496,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5498,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5501,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5502,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5505,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5505,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5509,1
    - Dst: fu_device_to_string_impl
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5510,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 89
    argCount: 3
    argNames:
    - self
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5512
      start: 5393
    functionDepth: 3
    functionLinenumber: 5393
    functionLinenumberEnd: 5512
    functionName: fu_device_to_string_impl
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - fwupd_codec_add_string
    - FWUPD_CODEC
    - fu_strjoin
    - g_hash_table_lookup
    - g_array_index
    - g_strdup_printf
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append_int
    - g_ptr_array_index
    - g_quark_to_string
    - fu_device_instance_flag_to_string_trunc
    - g_list_sort
    - g_hash_table_iter_next
    - GET_PRIVATE
    - g_hash_table_get_keys
    - g_ptr_array_new
    - fwupd_codec_string_append
    - fu_device_to_string_impl
    - g_hash_table_get_values
    - g_type_name
    - fwupd_codec_string_append_size
    - g_ptr_array_add
    - g_hash_table_iter_init
    - g_autoptr
    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:5517,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5517,1
    - Dst: G_OBJECT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5518,1
    - Dst: g_type_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5519,1
    - Dst: g_type_class_peek
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5520,1
    - Dst: G_OBJECT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5521,1
    - Dst: g_type_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5522,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5524,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5528
      start: 5514
    functionDepth: 0
    functionLinenumber: 5514
    functionLinenumberEnd: 5528
    functionName: fu_device_get_common_class_parents
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_TYPE
    - g_type_parent
    - g_ptr_array_new
    - g_type_class_peek
    - g_steal_pointer
    - g_ptr_array_add
    - g_autoptr
    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:5545,1
    - Dst: fwupd_codec_add_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5548,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5548,1
    - Dst: G_OBJECT_TYPE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5551,1
    - Dst: g_type_parent
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5552,1
    - Dst: g_type_class_peek
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5553,1
    - Dst: FU_IS_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5554,1
    - Dst: g_list_prepend
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5556,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5559,1
    - Dst: FuDeviceClass*::to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5562,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5568,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5570,1
    - Dst: fu_device_add_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5571,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - self
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5573
      start: 5540
    functionDepth: 3
    functionLinenumber: 5540
    functionLinenumberEnd: 5573
    functionName: fu_device_add_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_type_parent
    - fwupd_codec_add_string
    - G_OBJECT_TYPE
    - FWUPD_CODEC
    - fu_device_get_children
    - g_type_class_peek
    - g_list_prepend
    - fu_device_add_string
    - FU_IS_DEVICE_CLASS
    - FuDeviceClass*::to_string
    - g_autoptr
    - FU_DEVICE_CLASS
    - g_ptr_array_index
    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:5589,1
    - Dst: fu_device_add_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5590,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5592
      start: 5586
    functionDepth: 4
    functionLinenumber: 5586
    functionLinenumberEnd: 5592
    functionName: fu_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 19
    functionsReached:
    - fu_device_add_string
    - g_string_new
    - g_string_free
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_to_string(FuDevice *self)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5607,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5608,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5608,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5609,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5611,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5611,1
    - Dst: fu_device_ensure_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5613,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5614,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5615,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5616,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5616,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5620,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5621,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5622,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5624,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5625,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5625,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5629,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5629,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5630
      start: 5604
    functionDepth: 2
    functionLinenumber: 5604
    functionLinenumberEnd: 5630
    functionName: fu_device_get_id_display
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 34
    functionsReached:
    - g_return_val_if_fail
    - g_string_append
    - g_debug
    - fu_device_ensure_id
    - FU_IS_DEVICE
    - g_steal_pointer
    - fu_device_get_plugin
    - g_string_free
    - fu_device_get_id
    - g_string_new
    - g_string_append_printf
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_device_get_id_display(FuDevice *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5646,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5647,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5647,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5648,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5648,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5652,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5653,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5658,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5659,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5659,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - self
    - ctx
    argTypes:
    - FuDevice*
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5660
      start: 5643
    functionDepth: 3
    functionLinenumber: 5643
    functionLinenumberEnd: 5660
    functionName: fu_device_set_context
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 8
    functionsReached:
    - fu_device_get_id_display
    - g_object_notify
    - g_critical
    - FU_IS_DEVICE
    - FU_IS_CONTEXT
    - g_return_if_fail
    - g_set_object
    - G_OBJECT
    - GET_PRIVATE
    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:5675,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5676,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5678
      start: 5672
    functionDepth: 0
    functionLinenumber: 5672
    functionLinenumberEnd: 5678
    functionName: fu_device_get_context
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 40
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:5694,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5696,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5696,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5697,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5701,1
    - Dst: FuDeviceClass*::get_results
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5710
      start: 5691
    functionDepth: 0
    functionLinenumber: 5691
    functionLinenumberEnd: 5710
    functionName: fu_device_get_results
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - FU_IS_DEVICE
    - FU_DEVICE_GET_CLASS
    - FuDeviceClass*::get_results
    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:5733,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5734,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_FIRMWARE
      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: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5739,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5740,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5744,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5752,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5753,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5754,1
    - Dst: FuDeviceClass*::write_firmware
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5755,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5761,1
    - Dst: fu_device_get_update_request_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5762,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5763,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5763,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5764,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5766,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5767,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5769,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5770,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5772,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5772,1
    - Dst: fwupd_request_set_image
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5773,1
    - Dst: fu_device_get_update_image
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5773,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5774,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: 5780
      start: 5726
    functionDepth: 3
    functionLinenumber: 5726
    functionLinenumberEnd: 5780
    functionName: fu_device_write_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - FU_DEVICE_GET_CLASS
    - fu_firmware_to_string
    - FuDeviceClass*::write_firmware
    - fwupd_request_set_message
    - g_set_error_literal
    - FU_IS_FIRMWARE
    - fu_device_get_update_message
    - GET_PRIVATE
    - fwupd_request_new
    - g_info
    - fwupd_request_set_id
    - fwupd_request_set_image
    - fu_device_emit_request
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - g_set_object
    - fu_device_add_request_flag
    - FU_IS_PROGRESS
    - fu_device_get_update_request_id
    - g_autoptr
    - fu_device_get_update_image
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5808,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5809,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5810,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5813,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5813,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5814,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5814,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5815,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5815,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5816,1
    - Dst: FuDeviceClass*::prepare_firmware
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5820,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5824,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5825,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5828,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5829,1
    - Dst: FuDeviceClass*::check_firmware
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5835,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5840,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5843,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5853,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5865,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 5
    argNames:
    - self
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5866
      start: 5801
    functionDepth: 4
    functionLinenumber: 5801
    functionLinenumberEnd: 5866
    functionName: fu_device_prepare_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FuDeviceClass*::prepare_firmware
    - g_set_error
    - fu_firmware_parse_stream
    - FU_IS_DEVICE
    - g_steal_pointer
    - FU_DEVICE_GET_CLASS
    - fu_firmware_new
    - g_object_new
    - FU_IS_PROGRESS
    - fu_firmware_get_size
    - G_IS_INPUT_STREAM
    - g_autoptr
    - FuDeviceClass*::check_firmware
    - GET_PRIVATE
    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:5892,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5893,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5894,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5896,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5896,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5897,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5897,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5898,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5901,1
    - Dst: FuDeviceClass*::read_firmware
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5903,1
    - Dst: fu_device_dump_firmware
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5906,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5910,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5910,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5911,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5913,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5915,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - self
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5916
      start: 5886
    functionDepth: 5
    functionLinenumber: 5886
    functionLinenumberEnd: 5916
    functionName: fu_device_read_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - g_steal_pointer
    - FU_DEVICE_GET_CLASS
    - g_set_object
    - FuDeviceClass*::read_firmware
    - g_object_new
    - FU_IS_PROGRESS
    - fu_firmware_parse_bytes
    - fu_device_dump_firmware
    - g_autoptr
    - fu_firmware_new_from_bytes
    - GET_PRIVATE
    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:5936,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5937,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5939,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5939,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5940,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5940,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5941,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5945,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5953,1
    - Dst: FuDeviceClass*::dump_firmware
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5955
      start: 5933
    functionDepth: 0
    functionLinenumber: 5933
    functionLinenumberEnd: 5955
    functionName: fu_device_dump_firmware
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - g_set_error_literal
    - FU_DEVICE_GET_CLASS
    - g_set_object
    - FU_IS_PROGRESS
    - FuDeviceClass*::dump_firmware
    - GET_PRIVATE
    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:5971,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5971,1
    - Dst: fu_device_detach_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5973
      start: 5968
    functionDepth: 2
    functionLinenumber: 5968
    functionLinenumberEnd: 5973
    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:5990,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5991,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5993,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5993,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5994,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5994,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:5995,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6002,1
    - Dst: FuDeviceClass*::detach
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6003,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6004
      start: 5987
    functionDepth: 0
    functionLinenumber: 5987
    functionLinenumberEnd: 6004
    functionName: fu_device_detach_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - FU_DEVICE_GET_CLASS
    - g_set_object
    - FuDeviceClass*::detach
    - FU_IS_PROGRESS
    - GET_PRIVATE
    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:6020,1
    - Dst: fu_progress_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6020,1
    - Dst: fu_device_attach_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6022
      start: 6017
    functionDepth: 2
    functionLinenumber: 6017
    functionLinenumberEnd: 6022
    functionName: fu_device_attach
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - fu_progress_new
    - g_autoptr
    - fu_device_attach_full
    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:6039,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6040,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6042,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6042,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6043,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6043,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6044,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6051,1
    - Dst: FuDeviceClass*::attach
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6052,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6053
      start: 6036
    functionDepth: 0
    functionLinenumber: 6036
    functionLinenumberEnd: 6053
    functionName: fu_device_attach_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - FU_DEVICE_GET_CLASS
    - g_set_object
    - FU_IS_PROGRESS
    - FuDeviceClass*::attach
    - GET_PRIVATE
    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:6069,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6071,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6071,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6072,1
    - Dst: FuDeviceClass*::reload
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6079,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6080
      start: 6066
    functionDepth: 0
    functionLinenumber: 6066
    functionLinenumberEnd: 6080
    functionName: fu_device_reload
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - 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:6099,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6100,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6102,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6102,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6103,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6103,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6104,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6111,1
    - Dst: FuDeviceClass*::prepare
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - self
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6113
      start: 6096
    functionDepth: 0
    functionLinenumber: 6096
    functionLinenumberEnd: 6113
    functionName: fu_device_prepare
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FuDeviceClass*::prepare
    - FU_IS_DEVICE
    - FU_DEVICE_GET_CLASS
    - g_set_object
    - FU_IS_PROGRESS
    - GET_PRIVATE
    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:6132,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6133,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6135,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6135,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6136,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6136,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6137,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6144,1
    - Dst: FuDeviceClass*::cleanup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - self
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6146
      start: 6129
    functionDepth: 0
    functionLinenumber: 6129
    functionLinenumberEnd: 6146
    functionName: fu_device_cleanup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FuDeviceClass*::cleanup
    - FU_IS_DEVICE
    - FU_DEVICE_GET_CLASS
    - g_set_object
    - FU_IS_PROGRESS
    - GET_PRIVATE
    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:6151,1
    - Dst: FuDeviceClass*::open
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6153
      start: 6148
    functionDepth: 0
    functionLinenumber: 6148
    functionLinenumberEnd: 6153
    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:6158,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6159,1
    - Dst: g_atomic_int_inc
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6162,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6167,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6168,1
    - Dst: fu_device_ensure_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6173,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6174,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6180,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6181,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6187,1
    - Dst: FuDeviceClass*::open
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6191,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6192,1
    - Dst: fu_device_setup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6199,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6200,1
    - Dst: fu_device_ensure_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6205,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6206,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6211,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6213
      start: 6155
    functionDepth: 3
    functionLinenumber: 6155
    functionLinenumberEnd: 6213
    functionName: fu_device_open_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - g_atomic_int_inc
    - fu_device_ensure_id
    - fu_device_add_private_flag
    - FU_DEVICE_GET_CLASS
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - fu_device_retry_full
    - fu_device_setup
    - FuDeviceClass*::open
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_open_internal(FuDevice *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6242,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6242,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6243,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6246,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6247,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6248,1
    - Dst: fu_device_setup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6250,1
    - Dst: fu_device_ensure_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6252,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6256,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6257,1
    - Dst: fu_device_open_internal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6260,1
    - Dst: fu_device_open_internal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6263,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6264
      start: 6239
    functionDepth: 4
    functionLinenumber: 6239
    functionLinenumberEnd: 6264
    functionName: fu_device_open
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_device_probe
    - fu_device_open_internal
    - fu_device_ensure_id
    - FU_IS_DEVICE
    - fu_device_add_private_flag
    - fu_device_setup
    - fu_device_has_private_flag
    - fu_device_has_private_flag_quark
    - fu_device_get_proxy
    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:6269,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6270,1
    - Dst: g_atomic_int_dec_and_test
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6275,1
    - Dst: FuDeviceClass*::close
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6280,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6287
      start: 6266
    functionDepth: 2
    functionLinenumber: 6266
    functionLinenumberEnd: 6287
    functionName: fu_device_close_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_GET_CLASS
    - FuDeviceClass*::close
    - GET_PRIVATE
    - g_atomic_int_dec_and_test
    - fu_device_remove_private_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_close_internal(FuDevice *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6315,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6315,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6316,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6319,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6320,1
    - Dst: fu_device_close_internal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6325,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6329,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6330,1
    - Dst: fu_device_close_internal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6333,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6339
      start: 6312
    functionDepth: 3
    functionLinenumber: 6312
    functionLinenumberEnd: 6339
    functionName: fu_device_close
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - fu_device_close_internal
    - fu_device_has_private_flag
    - fu_device_has_private_flag_quark
    - fu_device_get_proxy
    - fu_device_remove_private_flag
    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:6357,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6358,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6360,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6360,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6361,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6368,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6369,1
    - Dst: FuDeviceClass*::probe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6375,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6380,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6381,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6388
      start: 6354
    functionDepth: 1
    functionLinenumber: 6354
    functionLinenumberEnd: 6388
    functionName: fu_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 19
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - g_set_error_literal
    - FU_DEVICE_GET_CLASS
    - FuDeviceClass*::probe
    - fu_device_has_private_flag_quark
    - GET_PRIVATE
    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:6402,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6404,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6404,1
    - Dst: FuDeviceClass*::probe_complete
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6408
      start: 6399
    functionDepth: 0
    functionLinenumber: 6399
    functionLinenumberEnd: 6408
    functionName: fu_device_probe_complete
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FuDeviceClass*::probe_complete
    - FU_IS_DEVICE
    - 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:6424,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6425,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6427,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6427,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6428,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6432,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6433,1
    - Dst: fu_device_get_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6433,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6434,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6434,1
    - Dst: FuDeviceClass*::rescan
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6438,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6439,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6444,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6446
      start: 6421
    functionDepth: 1
    functionLinenumber: 6421
    functionLinenumberEnd: 6446
    functionName: fu_device_rescan
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FuDeviceClass*::rescan
    - FU_IS_DEVICE
    - FU_DEVICE_GET_CLASS
    - g_ptr_array_set_size
    - fu_device_convert_instance_ids
    - fu_device_get_guids
    - fu_device_get_instance_ids
    - GET_PRIVATE
    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:6460,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6462,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6462,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6463,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6463,1
    - Dst: FuDeviceClass*::set_progress
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6469
      start: 6457
    functionDepth: 0
    functionLinenumber: 6457
    functionLinenumberEnd: 6469
    functionName: fu_device_set_progress
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - FU_DEVICE_GET_CLASS
    - g_return_if_fail
    - FU_IS_PROGRESS
    - 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:6488,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6491,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6491,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6494,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6498,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6501,1
    - Dst: fwupd_device_add_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6507,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6507,1
    - Dst: fwupd_device_add_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6508,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6508,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6513,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6515
      start: 6485
    functionDepth: 2
    functionLinenumber: 6485
    functionLinenumberEnd: 6515
    functionName: fu_device_convert_instance_ids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 14
    functionsReached:
    - fwupd_device_add_guid
    - FU_IS_DEVICE
    - fwupd_device_add_instance_id
    - g_return_if_fail
    - fu_device_has_private_flag
    - FWUPD_DEVICE
    - fu_device_has_private_flag_quark
    - fu_device_get_guids
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_convert_instance_ids(FuDevice *self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6533,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6534,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6537,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6537,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6538,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6541,1
    - Dst: FuDeviceClass*::setup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6550,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6555,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6556,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6561,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6563,1
    - Dst: fu_device_setup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6564,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6569,1
    - Dst: FuDeviceClass*::ready
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6573,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6579
      start: 6530
    functionDepth: 3
    functionLinenumber: 6530
    functionLinenumberEnd: 6579
    functionName: fu_device_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - fu_device_probe
    - fu_device_get_children
    - FU_IS_DEVICE
    - g_set_error_literal
    - FU_DEVICE_GET_CLASS
    - fu_device_convert_instance_ids
    - FuDeviceClass*::setup
    - fu_device_setup
    - FuDeviceClass*::ready
    - fu_device_has_private_flag_quark
    - g_ptr_array_index
    - GET_PRIVATE
    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:6597,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6598,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6600,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6600,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6601,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6601,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6602,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6606,1
    - Dst: FuDeviceClass*::activate
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6607,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6612
      start: 6594
    functionDepth: 0
    functionLinenumber: 6594
    functionLinenumberEnd: 6612
    functionName: fu_device_activate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FuDeviceClass*::activate
    - FU_IS_DEVICE
    - FU_DEVICE_GET_CLASS
    - g_set_object
    - FU_IS_PROGRESS
    - GET_PRIVATE
    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:6630,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6631,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6632,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6632,1
    - Dst: FuDeviceClass*::invalidate
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6637
      start: 6627
    functionDepth: 0
    functionLinenumber: 6627
    functionLinenumberEnd: 6637
    functionName: fu_device_probe_invalidate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FU_IS_DEVICE
    - FuDeviceClass*::invalidate
    - FU_DEVICE_GET_CLASS
    - g_return_if_fail
    - GET_PRIVATE
    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:6652,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6653,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6655,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6655,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6662,1
    - Dst: FuDeviceClass*::report_metadata_pre
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6663,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6665
      start: 6649
    functionDepth: 0
    functionLinenumber: 6649
    functionLinenumberEnd: 6665
    functionName: fu_device_report_metadata_pre
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - g_steal_pointer
    - FU_DEVICE_GET_CLASS
    - g_hash_table_new_full
    - FuDeviceClass*::report_metadata_pre
    - g_autoptr
    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:6680,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6681,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6683,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6683,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6690,1
    - Dst: FuDeviceClass*::report_metadata_post
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6691,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6693
      start: 6677
    functionDepth: 0
    functionLinenumber: 6677
    functionLinenumberEnd: 6693
    functionName: fu_device_report_metadata_post
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - g_steal_pointer
    - FU_DEVICE_GET_CLASS
    - g_hash_table_new_full
    - FuDeviceClass*::report_metadata_post
    - g_autoptr
    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:6707,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6709,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6709,1
    - Dst: FuDeviceClass*::add_security_attrs
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - attrs
    argTypes:
    - FuDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6714
      start: 6704
    functionDepth: 0
    functionLinenumber: 6704
    functionLinenumberEnd: 6714
    functionName: fu_device_add_security_attrs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 5
    functionsReached:
    - FU_IS_DEVICE
    - FU_DEVICE_GET_CLASS
    - FuDeviceClass*::add_security_attrs
    - 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:6733,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6735,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6735,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6736,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6737,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6738,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6742,1
    - Dst: FuDeviceClass*::bind_driver
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6750,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - subsystem
    - driver
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6751
      start: 6730
    functionDepth: 0
    functionLinenumber: 6730
    functionLinenumberEnd: 6751
    functionName: fu_device_bind_driver
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FuDeviceClass*::bind_driver
    - g_set_error_literal
    - FU_IS_DEVICE
    - FU_DEVICE_GET_CLASS
    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:6771,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6773,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6773,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6774,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6778,1
    - Dst: FuDeviceClass*::unbind_driver
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6787
      start: 6768
    functionDepth: 0
    functionLinenumber: 6768
    functionLinenumberEnd: 6787
    functionName: fu_device_unbind_driver
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FuDeviceClass*::unbind_driver
    - g_set_error_literal
    - FU_IS_DEVICE
    - FU_DEVICE_GET_CLASS
    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:6803,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6804,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6804,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6805,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6809
      start: 6800
    functionDepth: 0
    functionLinenumber: 6800
    functionLinenumberEnd: 6809
    functionName: fu_device_get_instance_str
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DEVICE
    - g_hash_table_lookup
    - 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:6826,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6826,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6827,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6831,1
    - Dst: fwupd_device_add_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6832,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6832,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - prefix
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6833
      start: 6821
    functionDepth: 2
    functionLinenumber: 6821
    functionLinenumberEnd: 6833
    functionName: fu_device_build_vendor_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 9
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - FWUPD_DEVICE
    - g_strdup_printf
    - fwupd_device_add_vendor_id
    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:6850,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6850,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6851,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6855,1
    - Dst: fwupd_device_add_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6856,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - prefix
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6857
      start: 6845
    functionDepth: 2
    functionLinenumber: 6845
    functionLinenumberEnd: 6857
    functionName: fu_device_build_vendor_id_u16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 42
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - FWUPD_DEVICE
    - g_strdup_printf
    - fwupd_device_add_vendor_id
    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:6862,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6867,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6869,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6873,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6875,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - self
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6877
      start: 6859
    functionDepth: 4
    functionLinenumber: 6859
    functionLinenumberEnd: 6877
    functionName: fu_device_incorporate_instance_ids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_id_full
    - fu_device_has_private_flag_quark
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_incorporate_instance_ids(FuDevice *self, FuDevice *donor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6891,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6893,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6893,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6894,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6894,1
    - Dst: FuDeviceClass*::incorporate_from_proxy
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - proxy
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6899
      start: 6888
    functionDepth: 0
    functionLinenumber: 6888
    functionLinenumberEnd: 6899
    functionName: fu_device_incorporate_from_proxy
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - FU_DEVICE_GET_CLASS
    - FuDeviceClass*::incorporate_from_proxy
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_device_incorporate_from_proxy(FuDevice *self, FuDevice *proxy)
  - BBCount: 72
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6914,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6915,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6917,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6917,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6918,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6918,1
    - Dst: fu_device_set_context
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6922,1
    - Dst: fu_device_set_backend
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6924,1
    - Dst: fwupd_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6928,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6928,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6928,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6929,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6932,1
    - Dst: fwupd_device_set_serial
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6933,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6933,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6936,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6936,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6937,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6937,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6941,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6945,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6949,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6953,1
    - Dst: fu_device_set_pid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6957,1
    - Dst: fu_device_get_vendor_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6960,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6962,1
    - Dst: fu_device_add_vendor_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6963,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6968,1
    - Dst: fu_device_set_acquiesce_delay
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6972,1
    - Dst: fu_device_get_icons
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6975,1
    - Dst: fu_device_get_icons
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6976,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6978,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6979,1
    - Dst: fu_device_set_fwupd_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6985,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6988,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6989,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6994,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6995,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6996,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:6996,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7000,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7001,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7002,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7002,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7007,1
    - Dst: fu_device_get_common_class_parents
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7008,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7012,1
    - Dst: FuDeviceClass*::incorporate
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7015,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7022,1
    - Dst: fu_device_set_update_image
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7026,1
    - Dst: fu_device_incorporate_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7029,1
    - Dst: fu_device_set_specialized_gtype
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7033,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7039,1
    - Dst: fu_device_add_possible_plugin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7040,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7047,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7048,1
    - Dst: fu_device_get_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7049,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7050,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7055,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7056,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7058,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7062,1
    - Dst: fu_device_set_proxy_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7064,1
    - Dst: fu_device_register_private_flags
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7068,1
    - Dst: g_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7071,1
    - Dst: fu_device_private_flags_has_registered_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7072,1
    - Dst: fu_device_add_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7074,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7081,1
    - Dst: fu_device_set_modified_usec
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7083,1
    - Dst: fu_device_get_equivalent_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7086,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7087,1
    - Dst: fu_device_get_equivalent_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7087,1
    - Dst: fu_device_set_required_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7092,1
    - Dst: fu_device_set_update_request_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7096,1
    - Dst: fu_device_set_custom_flags
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7100,1
    - Dst: fu_device_get_parent_physical_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7103,1
    - Dst: fu_device_get_parent_backend_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7104,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7107,1
    - Dst: fu_device_add_parent_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7108,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7113,1
    - Dst: fu_device_add_parent_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7114,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7119,1
    - Dst: fu_device_add_parent_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7120,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7128,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7129,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7130,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7131,1
    - Dst: fu_device_get_instance_ids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7136,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7138,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7139,1
    - Dst: fu_device_add_guid_quirks
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7140,1
    CyclomaticComplexity: 111
    EdgeCount: 111
    ICount: 189
    argCount: 3
    argNames:
    - self
    - donor
    - flag
    argTypes:
    - FuDevice*
    - FuDevice*
    - FuDeviceIncorporateFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7143
      start: 6911
    functionDepth: 8
    functionLinenumber: 6911
    functionLinenumberEnd: 7143
    functionName: fu_device_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 16
    functionsReached:
    - fu_device_set_update_image
    - fu_device_get_equivalent_id
    - fu_device_add_possible_plugin
    - fu_device_set_created_usec
    - fu_device_add_guid_quirks
    - fu_device_get_common_class_parents
    - g_array_index
    - fu_device_set_context
    - fu_device_add_private_flag_quark
    - fu_device_set_update_state
    - fu_device_add_vendor_id
    - g_ptr_array_index
    - fu_device_set_remove_delay
    - fu_device_set_physical_id
    - fu_device_set_fwupd_version
    - fu_device_private_flags_has_registered_quark
    - fu_device_add_instance_str
    - fu_device_get_vendor_ids
    - fu_device_add_icon
    - fwupd_device_incorporate
    - fu_device_get_update_error
    - fu_device_get_update_state
    - fu_device_incorporate_instance_ids
    - fu_device_get_metadata
    - fu_device_set_vendor
    - fu_device_set_equivalent_id
    - fu_device_get_instance_str
    - fu_device_set_backend
    - fu_device_set_update_request_id
    - fu_device_get_vendor
    - g_hash_table_iter_next
    - fu_device_get_parent_physical_ids
    - fwupd_guid_hash_string
    - GET_PRIVATE
    - fu_device_set_logical_id
    - fu_device_set_acquiesce_delay
    - fu_device_set_vid
    - fu_device_set_modified_usec
    - fu_device_set_update_error
    - FWUPD_DEVICE
    - fu_device_set_specialized_gtype
    - fu_device_set_custom_flags
    - fu_device_add_event
    - fu_device_add_parent_backend_id
    - fwupd_device_set_serial
    - fu_device_set_proxy
    - fu_device_set_metadata
    - fu_device_register_private_flags
    - FU_IS_DEVICE
    - fu_device_get_icons
    - g_return_if_fail
    - fu_device_set_proxy_guid
    - fu_device_set_update_message
    - fu_device_set_backend_id
    - fu_device_get_id
    - fu_device_has_private_flag_quark
    - FuDeviceClass*::incorporate
    - fu_device_set_proxy_gtype
    - fu_device_set_required_free
    - fu_device_add_parent_physical_id
    - fu_device_get_parent_backend_ids
    - fu_device_set_pid
    - g_hash_table_iter_init
    - g_autoptr
    - fu_device_get_instance_ids
    - fu_device_add_parent_guid
    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:7159,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7161,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7161,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7162,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7162,1
    - Dst: FuDeviceClass*::replace
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7167
      start: 7156
    functionDepth: 0
    functionLinenumber: 7156
    functionLinenumberEnd: 7167
    functionName: fu_device_replace
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVICE
    - FU_DEVICE_GET_CLASS
    - FuDeviceClass*::replace
    - 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:7182,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7182,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7183,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7183,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7184,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7185,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7185,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7186,1
    - Dst: fwupd_device_flag_to_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7186,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - self
    - donor
    - flag
    argTypes:
    - FuDevice*
    - FuDevice*
    - FwupdDeviceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7189
      start: 7179
    functionDepth: 6
    functionLinenumber: 7179
    functionLinenumberEnd: 7189
    functionName: fu_device_incorporate_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - fwupd_device_flag_to_string
    - fu_device_remove_flag
    - fu_device_has_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:7204,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7204,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7205,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7205,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7206,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7208,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7209,1
    - Dst: fu_device_set_update_image
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - component
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7212
      start: 7200
    functionDepth: 1
    functionLinenumber: 7200
    functionLinenumberEnd: 7212
    functionName: fu_device_incorporate_from_component
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - xb_node_query_text
    - fu_device_set_update_image
    - XB_IS_NODE
    - FU_IS_DEVICE
    - g_return_if_fail
    - 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:7220,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7222,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - component
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7225
      start: 7214
    functionDepth: 2
    functionLinenumber: 7214
    functionLinenumberEnd: 7225
    functionName: fu_device_ensure_from_component_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_name
    - xb_node_query_text
    - fu_device_remove_private_flag
    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:7233,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7235,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - component
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7238
      start: 7227
    functionDepth: 5
    functionLinenumber: 7227
    functionLinenumberEnd: 7238
    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:7246,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7247,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7251,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7253,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7254,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7255,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7256,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7258,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - component
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7262
      start: 7240
    functionDepth: 6
    functionLinenumber: 7240
    functionLinenumberEnd: 7262
    functionName: fu_device_ensure_from_component_signed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - xb_node_query_text
    - g_strcmp0
    - fu_device_has_flag
    - g_warning
    - fu_device_remove_private_flag
    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:7270,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7272,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - component
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7275
      start: 7264
    functionDepth: 2
    functionLinenumber: 7264
    functionLinenumberEnd: 7275
    functionName: fu_device_ensure_from_component_icon
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - fu_device_add_icon
    - fu_device_remove_private_flag
    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:7281,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7283,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7283,1
    - Dst: fu_device_set_custom_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7285,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - component
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7288
      start: 7277
    functionDepth: 7
    functionLinenumber: 7277
    functionLinenumberEnd: 7288
    functionName: fu_device_ensure_from_component_flags
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - fu_device_set_custom_flag
    - g_strsplit
    - g_auto
    - fu_device_remove_private_flag
    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:7293,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7295,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7297,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7299,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7301,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7303,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7305,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7307,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7309,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7311,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7313,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7315,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7317,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7319,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7321,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7323,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7325,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7327,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7329,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7331,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7333,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7335,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7337,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7339,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 50
    argCount: 1
    argNames:
    - cat
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7342
      start: 7290
    functionDepth: 0
    functionLinenumber: 7290
    functionLinenumberEnd: 7342
    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:7348,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7351,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7355,1
    - Dst: fu_device_category_to_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7356,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7356,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7361,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7362,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7366,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7366,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7369,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7370,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7370,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7376,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7376,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7377,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - self
    - component
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7381
      start: 7344
    functionDepth: 3
    functionLinenumber: 7344
    functionLinenumberEnd: 7381
    functionName: fu_device_ensure_from_component_name_category
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_info
    - fu_device_add_private_flag
    - fu_device_category_to_name
    - fu_device_get_plugin
    - xb_node_query
    - fu_device_set_name
    - fu_device_get_id
    - g_autoptr
    - xb_node_get_text
    - g_ptr_array_index
    - fu_device_remove_private_flag
    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: 7392
      start: 7383
    functionDepth: 0
    functionLinenumber: 7383
    functionLinenumberEnd: 7392
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7398,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7401,1
    - Dst: _g_ptr_array_reverse
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7404,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7406,1
    - Dst: fwupd_version_format_from_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7407,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7407,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7414,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7415,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7416,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7418,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7418,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7419,1
    - Dst: fu_device_get_version_lowest_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7421,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7424,1
    - Dst: fu_device_get_version_lowest_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7424,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7425,1
    - Dst: fu_device_get_version_highest_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7427,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7430,1
    - Dst: fu_device_get_version_highest_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7430,1
    - Dst: fu_device_set_version_highest
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7431,1
    - Dst: fu_device_get_version_bootloader_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7433,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7435,1
    - Dst: fu_device_get_version_bootloader_raw
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7435,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7437,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7442,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - self
    - component
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7443
      start: 7394
    functionDepth: 2
    functionLinenumber: 7394
    functionLinenumberEnd: 7443
    functionName: fu_device_ensure_from_component_verfmt
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_raw
    - _g_ptr_array_reverse
    - fu_device_set_version_highest
    - fu_device_set_version
    - fu_device_get_version_bootloader_raw
    - fu_device_set_version_bootloader
    - fu_device_get_version_highest_raw
    - xb_node_query
    - fu_device_remove_private_flag
    - xb_node_get_text
    - fu_version_from_uint32
    - fu_device_get_version_lowest_raw
    - fu_device_set_version_format
    - fu_device_set_version_lowest
    - g_autoptr
    - fwupd_version_format_from_string
    - g_ptr_array_index
    - fu_device_get_version_format
    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:7457,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7457,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7458,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7458,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7461,1
    - Dst: fu_device_ensure_from_component_name
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7462,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7463,1
    - Dst: fu_device_ensure_from_component_name_category
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7464,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7465,1
    - Dst: fu_device_ensure_from_component_icon
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7466,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7467,1
    - Dst: fu_device_ensure_from_component_vendor
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7468,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7469,1
    - Dst: fu_device_ensure_from_component_signed
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7470,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7471,1
    - Dst: fu_device_ensure_from_component_verfmt
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7472,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7473,1
    - Dst: fu_device_ensure_from_component_flags
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7474,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - self
    - component
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7475
      start: 7454
    functionDepth: 8
    functionLinenumber: 7454
    functionLinenumberEnd: 7475
    functionName: fu_device_ensure_from_component
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - fu_device_ensure_from_component_icon
    - fu_device_ensure_from_component_signed
    - fu_device_ensure_from_component_verfmt
    - fu_device_ensure_from_component_vendor
    - XB_IS_NODE
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_device_ensure_from_component_name_category
    - fu_device_has_private_flag
    - fu_device_ensure_from_component_flags
    - fu_device_ensure_from_component_name
    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:7489,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7489,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7490,1
    - Dst: XB_IS_NODE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7490,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7493,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7495,1
    - Dst: fu_device_set_required_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7499,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7500,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7506,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7508,1
    - Dst: fu_device_get_checksums
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7510,1
    - Dst: xb_node_query
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7512,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7514,1
    - Dst: fu_device_has_checksum
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7515,1
    - Dst: xb_node_get_text
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7515,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7525,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7526,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7528,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7529,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - self
    - rel
    argTypes:
    - FuDevice*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7532
      start: 7486
    functionDepth: 2
    functionLinenumber: 7486
    functionLinenumberEnd: 7532
    functionName: fu_device_ensure_from_release
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - fu_device_set_version
    - xb_node_get_attr
    - XB_IS_NODE
    - FU_IS_DEVICE
    - g_return_if_fail
    - xb_node_query_text_as_uint
    - fu_device_has_private_flag
    - fu_device_set_required_free
    - xb_node_query
    - fu_device_get_checksums
    - fu_device_has_checksum
    - g_autoptr
    - xb_node_get_text
    - g_ptr_array_index
    - fu_device_remove_private_flag
    linkageType: ''
    returnType: void
    signature: void fu_device_ensure_from_release(FuDevice *self, XbNode *rel)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7550,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7552,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7552,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7553,1
    - Dst: FWUPD_IS_REQUEST
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7553,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7554,1
    - Dst: FU_IS_PROGRESS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7554,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7555,1
    - Dst: fwupd_request_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7559,1
    - Dst: fu_device_has_request_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7560,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7561,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7562,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7567,1
    - Dst: fwupd_request_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7571,1
    - Dst: fu_device_has_request_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7572,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7573,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7574,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7579,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7586,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7587,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7593,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7594,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7600,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7601,1
    - Dst: fu_progress_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7609,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7610,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7618,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7619,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7620,1
    - Dst: fwupd_request_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7621,1
    - Dst: fwupd_request_set_device_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7626,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7626,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7629,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7630,1
    - Dst: fwupd_request_get_message
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7630,1
    - Dst: fu_device_set_update_image
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7631,1
    - Dst: fwupd_request_get_image
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7631,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7636,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7638,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7639,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7641,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7644,1
    - Dst: fwupd_request_get_kind
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7645,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7647,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7656,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 4
    argNames:
    - self
    - request
    - progress
    - error
    argTypes:
    - FuDevice*
    - FwupdRequest*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7658
      start: 7547
    functionDepth: 3
    functionLinenumber: 7547
    functionLinenumberEnd: 7658
    functionName: fu_device_emit_request
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - fu_device_set_update_image
    - g_signal_emit
    - fu_device_get_id_display
    - g_debug
    - fwupd_request_get_kind
    - g_set_error_literal
    - fwupd_request_set_device_id
    - fu_device_has_flag
    - fwupd_request_get_image
    - fu_progress_set_status
    - fwupd_request_get_message
    - GET_PRIVATE
    - g_info
    - fu_device_has_request_flag
    - g_return_val_if_fail
    - FWUPD_IS_REQUEST
    - fwupd_request_has_flag
    - g_set_error
    - FU_IS_DEVICE
    - fu_device_set_update_message
    - fu_device_get_id
    - FU_IS_PROGRESS
    - fu_progress_has_flag
    - fwupd_request_get_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_emit_request(FuDevice *self, FwupdRequest *request,
      FuProgress *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7663,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7667
      start: 7660
    functionDepth: 0
    functionLinenumber: 7660
    functionLinenumberEnd: 7667
    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:7682,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7683,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7683,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7684,1
    - Dst: fu_device_ensure_instance_hash
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7685,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7686,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7686,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7687
      start: 7679
    functionDepth: 1
    functionLinenumber: 7679
    functionLinenumberEnd: 7687
    functionName: fu_device_add_instance_str
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 14
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_device_ensure_instance_hash
    - GET_PRIVATE
    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:7706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - gchar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7707
      start: 7689
    functionDepth: 0
    functionLinenumber: 7689
    functionLinenumberEnd: 7707
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7713,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7713,1
    - Dst: fu_device_strsafe_instance_id_is_valid_char
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7723,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7725,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7729,1
    - Dst: g_string_erase
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7736,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7738,1
    - Dst: fu_string_strip
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7741,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7748,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7748,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - str
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7749
      start: 7710
    functionDepth: 1
    functionLinenumber: 7710
    functionLinenumberEnd: 7749
    functionName: fu_device_strsafe_instance_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - fu_string_strip
    - g_string_erase
    - g_steal_pointer
    - g_string_append_c
    - g_string_free
    - g_string_new
    - g_string_truncate
    - fu_device_strsafe_instance_id_is_valid_char
    - 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:7764,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7765,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7765,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7766,1
    - Dst: fu_device_ensure_instance_hash
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7767,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7768,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7769,1
    - Dst: fu_device_strsafe_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7771
      start: 7761
    functionDepth: 2
    functionLinenumber: 7761
    functionLinenumberEnd: 7771
    functionName: fu_device_add_instance_strsafe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 5
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_device_strsafe_instance_id
    - fu_device_ensure_instance_hash
    - GET_PRIVATE
    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:7786,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7787,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7787,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7788,1
    - Dst: fu_device_ensure_instance_hash
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7789,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7790,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7791,1
    - Dst: g_utf8_strup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7793
      start: 7783
    functionDepth: 1
    functionLinenumber: 7783
    functionLinenumberEnd: 7793
    functionName: fu_device_add_instance_strup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_utf8_strup
    - fu_device_ensure_instance_hash
    - GET_PRIVATE
    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:7808,1
    - Dst: g_return_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: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7810,1
    - Dst: fu_device_ensure_instance_hash
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7811,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7812,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7812,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7813
      start: 7805
    functionDepth: 1
    functionLinenumber: 7805
    functionLinenumberEnd: 7813
    functionName: fu_device_add_instance_u4
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_strdup_printf
    - fu_device_ensure_instance_hash
    - GET_PRIVATE
    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:7828,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7829,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7829,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7830,1
    - Dst: fu_device_ensure_instance_hash
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7831,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7832,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7832,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7833
      start: 7825
    functionDepth: 1
    functionLinenumber: 7825
    functionLinenumberEnd: 7833
    functionName: fu_device_add_instance_u8
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_strdup_printf
    - fu_device_ensure_instance_hash
    - GET_PRIVATE
    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:7848,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7849,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7849,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7850,1
    - Dst: fu_device_ensure_instance_hash
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7851,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7852,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7852,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7853
      start: 7845
    functionDepth: 1
    functionLinenumber: 7845
    functionLinenumberEnd: 7853
    functionName: fu_device_add_instance_u16
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 9
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_strdup_printf
    - fu_device_ensure_instance_hash
    - GET_PRIVATE
    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:7868,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7869,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7869,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7870,1
    - Dst: fu_device_ensure_instance_hash
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7871,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7872,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7872,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuDevice*
    - gchar*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7873
      start: 7865
    functionDepth: 1
    functionLinenumber: 7865
    functionLinenumberEnd: 7873
    functionName: fu_device_add_instance_u32
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_strdup_printf
    - fu_device_ensure_instance_hash
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_add_instance_u32(FuDevice *self, const gchar *key, guint32
      value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7903,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7904,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7905,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7905,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7907,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7907,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7908,1
    - Dst: fu_device_get_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7914,1
    - Dst: fu_device_get_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7916,1
    - Dst: fu_device_get_instance_str
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7918,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7920,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7927,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7928,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7932,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - self
    - subsystem
    - keys
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7934
      start: 7897
    functionDepth: 5
    functionLinenumber: 7897
    functionLinenumberEnd: 7934
    functionName: fu_device_build_instance_id_strv
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_string_append
    - fu_device_add_instance_id
    - g_set_error
    - fu_device_get_parent_internal
    - FU_IS_DEVICE
    - g_string_new
    - g_string_append_printf
    - fu_device_get_instance_str
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_device_build_instance_id_strv(FuDevice *self,\n\t\t\t\t
      const gchar *subsystem,\n\t\t\t\t gchar **keys,\n\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7961,1
    - Dst: g_strv_builder_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7961,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7962,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7964,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7964,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7965,1
    - Dst: va_start
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7968,1
    - Dst: va_arg
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7970,1
    - Dst: g_strv_builder_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7973,1
    - Dst: va_end
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7975,1
    - Dst: g_strv_builder_end
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7976,1
    - Dst: fu_device_build_instance_id_strv
      Src: /src/fwupd/libfwupdplugin/fu-device.c:7979,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - error
    - subsystem
    argTypes:
    - FuDevice*
    - GError**
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7980
      start: 7957
    functionDepth: 6
    functionLinenumber: 7957
    functionLinenumberEnd: 7980
    functionName: fu_device_build_instance_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - va_end
    - FU_IS_DEVICE
    - g_strv_builder_new
    - g_strv_builder_add
    - fu_device_build_instance_id_strv
    - va_arg
    - g_strv_builder_end
    - g_auto
    - g_autoptr
    - va_start
    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:8004,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8007,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8007,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8009,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8009,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8010,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8013,1
    - Dst: va_start
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8019,1
    - Dst: va_arg
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8021,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8025,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8027,1
    - Dst: g_string_append
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8035,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8036,1
    - Dst: va_end
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8038,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8045,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - self
    - flags
    - error
    - subsystem
    argTypes:
    - FuDevice*
    - FuDeviceInstanceFlags
    - GError**
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8047
      start: 7997
    functionDepth: 4
    functionLinenumber: 7997
    functionLinenumberEnd: 8047
    functionName: fu_device_build_instance_id_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 19
    functionsReached:
    - g_return_val_if_fail
    - va_end
    - g_string_append
    - g_set_error
    - FU_IS_DEVICE
    - g_set_error_literal
    - g_hash_table_lookup
    - va_arg
    - g_string_new
    - g_string_append_printf
    - fu_device_add_instance_id_full
    - g_autoptr
    - va_start
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_device_build_instance_id_full(FuDevice *self,\n\t\t\t\t
      FuDeviceInstanceFlags 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:8063,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8064,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8066,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8066,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8067,1
    - Dst: fu_security_attr_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8069,1
    - Dst: fwupd_security_attr_set_plugin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8070,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8070,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8070,1
    - Dst: fwupd_security_attr_add_guids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8071,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8071,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8071,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8074,1
    - Dst: fu_device_get_parent_internal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8075,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8077,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8079,1
    - Dst: fwupd_security_attr_add_guid
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8080,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8085,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - appstream_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8086
      start: 8060
    functionDepth: 3
    functionLinenumber: 8060
    functionLinenumberEnd: 8086
    functionName: fu_device_security_attr_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 18
    functionsReached:
    - g_return_val_if_fail
    - fwupd_security_attr_set_plugin
    - fwupd_security_attr_add_guids
    - fwupd_security_attr_add_guid
    - fu_device_get_parent_internal
    - FU_IS_DEVICE
    - g_steal_pointer
    - fu_device_get_plugin
    - fu_security_attr_new
    - FU_DEVICE
    - fu_device_has_private_flag
    - fu_device_get_guids
    - g_autoptr
    - fu_device_get_instance_private
    - g_ptr_array_index
    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:8091,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8095
      start: 8088
    functionDepth: 0
    functionLinenumber: 8088
    functionLinenumberEnd: 8095
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8109,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8111,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8111,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8112,1
    - Dst: FU_IS_DEVICE_EVENT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8112,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8116,1
    - Dst: fu_device_ensure_events
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8120,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8123,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8124,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8126,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - event
    argTypes:
    - FuDevice*
    - FuDeviceEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8127
      start: 8106
    functionDepth: 2
    functionLinenumber: 8106
    functionLinenumberEnd: 8127
    functionName: fu_device_add_event
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 6
    functionsReached:
    - fu_device_ensure_events
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_ptr_array_set_size
    - fu_device_has_private_flag
    - g_ptr_array_add
    - g_object_ref
    - FU_IS_DEVICE_EVENT
    - fu_device_add_event
    - GET_PRIVATE
    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:8143,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8144,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8146,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8146,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8147,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8151,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8154,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8155,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8158
      start: 8140
    functionDepth: 3
    functionLinenumber: 8140
    functionLinenumberEnd: 8158
    functionName: fu_device_save_event
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 34
    functionsReached:
    - g_return_val_if_fail
    - g_debug
    - FU_IS_DEVICE
    - fu_device_save_event
    - fu_device_event_new
    - fu_device_add_event
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: FuDeviceEvent
    signature: 'FuDeviceEvent *

      fu_device_save_event(FuDevice *self, const gchar *id)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8175,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8178,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8178,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8179,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8180,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8184,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8188,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8197,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8198,1
    - Dst: fu_device_event_build_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8201,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8202,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8205,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8213,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8214,1
    - Dst: fu_device_event_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8214,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8215,1
    - Dst: fu_device_event_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8221,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8225,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8232,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8238,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8244,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8245,1
    - Dst: fu_device_event_get_id
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8245,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8247,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8253,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8260
      start: 8172
    functionDepth: 2
    functionLinenumber: 8172
    functionLinenumberEnd: 8260
    functionName: fu_device_load_event
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 35
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - g_debug
    - fu_device_load_event
    - g_set_error
    - fu_device_event_build_id
    - FU_IS_DEVICE
    - g_set_error_literal
    - fu_device_has_private_flag
    - fu_device_event_get_id
    - g_ptr_array_index
    - GET_PRIVATE
    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:8278,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8280,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8280,1
    - Dst: fu_device_get_events
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8284,1
    - Dst: fu_device_ensure_events
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8288
      start: 8275
    functionDepth: 1
    functionLinenumber: 8275
    functionLinenumberEnd: 8288
    functionName: fu_device_get_events
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - fu_device_ensure_events
    - FU_IS_DEVICE
    - fu_device_get_events
    - GET_PRIVATE
    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:8302,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8304,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8304,1
    - Dst: fu_device_clear_events
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8308,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8316
      start: 8299
    functionDepth: 1
    functionLinenumber: 8299
    functionLinenumberEnd: 8316
    functionName: fu_device_clear_events
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_ptr_array_set_size
    - fu_device_clear_events
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_clear_events(FuDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8332,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8334,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8334,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8335,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8335,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8336,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8339,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - target
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8341
      start: 8329
    functionDepth: 9
    functionLinenumber: 8329
    functionLinenumberEnd: 8341
    functionName: fu_device_set_target
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - FU_IS_DEVICE
    - g_return_if_fail
    - g_set_object
    - fu_device_incorporate
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_set_target(FuDevice *self, FuDevice *target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8346,1
    - Dst: FuDeviceClass*::add_json
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - self
    - json_obj
    - flags
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8349
      start: 8343
    functionDepth: 0
    functionLinenumber: 8343
    functionLinenumberEnd: 8349
    functionName: fu_device_add_json_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_GET_CLASS
    - FuDeviceClass*::add_json
    linkageType: ''
    returnType: void
    signature: void fu_device_add_json_internal(FuDevice *self, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8354,1
    - Dst: fu_device_get_events
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8355,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8357,1
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8358,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8359,1
    - Dst: g_date_time_new_from_unix_utc_usec
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8360,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8360,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8362,1
    - Dst: g_date_time_new_from_unix_utc
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8362,1
    - Dst: fu_device_get_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8363,1
    - Dst: g_date_time_format_iso8601
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8365,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8366,1
    - Dst: fu_device_add_json_internal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8371,1
    - Dst: fu_device_add_json_internal
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8374,1
    - Dst: fu_device_get_events
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8377,1
    - Dst: fu_device_get_events
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8378,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8380,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8380,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8382,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8383,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8383,1
    - Dst: fwupd_codec_to_json
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8384,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8384,1
    - Dst: fwupd_json_array_add_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8388,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8390,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - self
    - json_obj
    - flags
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8392
      start: 8351
    functionDepth: 3
    functionLinenumber: 8351
    functionLinenumberEnd: 8392
    functionName: fu_device_add_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 3
    functionsReached:
    - fwupd_json_object_add_array
    - FWUPD_CODEC
    - g_date_time_new_from_unix_utc_usec
    - GLIB_CHECK_VERSION
    - fwupd_json_object_new
    - g_date_time_format_iso8601
    - fwupd_codec_to_json
    - fwupd_json_array_new
    - fu_device_get_events
    - fu_device_add_json_internal
    - fu_device_get_created_usec
    - fwupd_json_array_add_object
    - g_ptr_array_index
    - g_autoptr
    - g_date_time_new_from_unix_utc
    - fwupd_json_object_add_string
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_add_json(FuDevice *self, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8399,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8400,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8401,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8403,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8405,1
    - Dst: g_date_time_new_from_iso8601
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8405,1
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8406,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8408,1
    - Dst: g_date_time_to_unix_usec
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8408,1
    - Dst: fu_device_set_created_usec
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8411,1
    - Dst: g_date_time_to_unix
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8411,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8417,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8419,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8421,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8422,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8422,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8423,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8425,1
    - Dst: fwupd_codec_from_json
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8428,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8428,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8430,1
    - Dst: FuDeviceClass*::from_json
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8436,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8440,1
    - Dst: FuDeviceClass*::from_json
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8442,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - self
    - json_obj
    - error
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8447
      start: 8395
    functionDepth: 3
    functionLinenumber: 8395
    functionLinenumberEnd: 8447
    functionName: fu_device_from_json
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 2
    functionsReached:
    - FWUPD_CODEC
    - FuDeviceClass*::from_json
    - GLIB_CHECK_VERSION
    - fu_device_set_created_usec
    - fwupd_json_array_get_size
    - fwupd_codec_from_json
    - g_date_time_to_unix_usec
    - FU_DEVICE_GET_CLASS
    - fwupd_json_object_get_array
    - fu_device_event_new
    - fu_device_add_event
    - fwupd_json_object_get_string
    - fwupd_json_array_get_object
    - g_date_time_to_unix
    - g_autoptr
    - g_date_time_new_from_iso8601
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_device_from_json(FuDevice *self, FwupdJsonObject *json_obj,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8452,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8453,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8454,1
    - Dst: g_clear_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8455,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8457
      start: 8449
    functionDepth: 0
    functionLinenumber: 8449
    functionLinenumberEnd: 8457
    functionName: fu_device_dispose
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_clear_object
    - G_OBJECT_CLASS
    - GET_PRIVATE
    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:8462,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8463,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8481,1
    - Dst: g_quark_from_static_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8482,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8493,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8494,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8496,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8512,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8513,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8515,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8531,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8532,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8534,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8549,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8554,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8563,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8568,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8577,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8582,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8591,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8596,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8604,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8609,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8618,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8623,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8632,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8637,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8646,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8651,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8660,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8665,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8674,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8679,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8688,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8695,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8704,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8711,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8720,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8727,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8736,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8744
      start: 8459
    functionDepth: 0
    functionLinenumber: 8459
    functionLinenumberEnd: 8744
    functionName: fu_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_uint
    - g_param_spec_uint64
    - g_quark_from_static_string
    - g_signal_new
    - g_param_spec_object
    - G_OBJECT_CLASS
    - G_STRUCT_OFFSET
    - G_TYPE_FROM_CLASS
    - g_param_spec_string
    - G_N_ELEMENTS
    - FU_DEVICE_CLASS
    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:8749,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8751,1
    - Dst: g_array_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8753,1
    - Dst: g_array_new
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8756
      start: 8746
    functionDepth: 0
    functionLinenumber: 8746
    functionLinenumberEnd: 8756
    functionName: fu_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_array_new
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_device_init(FuDevice *self)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8761,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8762,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8765,1
    - Dst: g_clear_signal_handler
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8768,1
    - Dst: fu_device_has_private_flag_quark
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8769,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8770,1
    - Dst: g_object_remove_weak_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8772,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8772,1
    - Dst: g_object_remove_weak_pointer
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8777,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8777,1
    - Dst: g_source_remove
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8779,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8781,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8783,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8785,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8787,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8789,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8791,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8793,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8795,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8797,1
    - Dst: g_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8798,1
    - Dst: g_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8799,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8800,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8801,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8802,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8803,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8804,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8805,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8806,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8807,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8808,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8809,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8810,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8811,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8813,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8814
      start: 8758
    functionDepth: 1
    functionLinenumber: 8758
    functionLinenumberEnd: 8814
    functionName: fu_device_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 0
    functionsReached:
    - g_source_remove
    - g_clear_signal_handler
    - g_ptr_array_unref
    - g_object_unref
    - g_array_unref
    - G_OBJECT_CLASS
    - FU_DEVICE
    - fu_device_has_private_flag_quark
    - g_object_remove_weak_pointer
    - g_free
    - G_OBJECT
    - g_hash_table_unref
    - GET_PRIVATE
    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:8826,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-device.c:8827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8828
      start: 8823
    functionDepth: 0
    functionLinenumber: 8823
    functionLinenumberEnd: 8828
    functionName: fu_device_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-device.c
    functionUses: 107
    functionsReached:
    - FU_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_device_new(FuContext *ctx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_size_checked_add
      Src: /src/fwupd/libfwupdplugin/fu-common.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gsize
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: fu_size_checked_add
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 4
    functionsReached:
    - g_size_checked_add
    linkageType: ''
    returnType: gsize
    signature: gsize fu_size_checked_add(gsize a, gsize b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-common.c:59,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-common.c:60,1
    - Dst: g_size_checked_add
      Src: /src/fwupd/libfwupdplugin/fu-common.c:63,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-common.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - value
    - len
    - error
    argTypes:
    - gsize*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 76
    functionName: fu_size_checked_inc
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 62
    functionsReached:
    - g_return_val_if_fail
    - g_size_checked_add
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_size_checked_inc(gsize *value, gsize len, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-common.c:98,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-common.c:99,1
    - Dst: g_size_checked_mul
      Src: /src/fwupd/libfwupdplugin/fu-common.c:101,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-common.c:102,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-common.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - value
    - a
    - b
    - error
    argTypes:
    - gsize*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 113
    functionName: fu_size_checked_inc_product
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - fu_size_checked_inc
    - g_size_checked_mul
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_size_checked_inc_product(gsize *value, gsize a, gsize b,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-common.c:132,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-common.c:133,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-common.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - value
    - out
    - error
    argTypes:
    - guint64
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 149
    functionName: fu_size_from_uint64
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_size_from_uint64(guint64 value, gsize *out, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-common.c:172,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-common.c:180,1
    - Dst: fwupd_error_to_string
      Src: /src/fwupd/libfwupdplugin/fu-common.c:185,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-common.c:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - value
    - entries
    - n_entries
    - error
    argTypes:
    - guint
    - FuErrorMapEntry[]
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 191
    functionName: fu_error_map_entry_to_gerror
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fwupd_error_to_string
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_error_map_entry_to_gerror(guint value,\n\t\t\t     const
      FuErrorMapEntry entries[],\n\t\t\t     guint n_entries,\n\t\t\t     GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-common.c:217,1
    - Dst: __get_cpuid_count
      Src: /src/fwupd/libfwupdplugin/fu-common.c:220,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-common.c:231,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: 234
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 234
    functionName: fu_cpuid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - __get_cpuid_count
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cpuid(guint32 leaf, guint32 *eax, guint32 *ebx, guint32
      *ecx, guint32 *edx, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-common.c:252,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-common.c:252,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-common.c:254,1
    - Dst: fu_path_store_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-common.c:256,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-common.c:259,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-common.c:262,1
    - Dst: fu_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-common.c:262,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-common.c:264,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-common.c:268,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-common.c:269,1
    - Dst: fu_strstrip
      Src: /src/fwupd/libfwupdplugin/fu-common.c:271,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-common.c:274,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-common.c:274,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-common.c:274,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-common.c:279,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - pstore
    - error
    argTypes:
    - FuPathStore*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 280
    functionName: fu_cpu_get_attrs
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_strsplit
    - g_strdup
    - g_hash_table_insert
    - fu_strstrip
    - g_file_get_contents
    - g_steal_pointer
    - g_hash_table_new_full
    - g_strsplit
    - g_strv_length
    - g_auto
    - fu_path_store_build_filename
    - g_autoptr
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_cpu_get_attrs(FuPathStore *pstore, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_cpuid
      Src: /src/fwupd/libfwupdplugin/fu-common.c:299,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 313
    functionName: fu_cpu_get_vendor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 3
    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: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_common_get_memory_size
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 2
    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:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 344
    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: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-common.c:360,1
    - Dst: FU_IS_PATH_STORE
      Src: /src/fwupd/libfwupdplugin/fu-common.c:360,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-common.c:361,1
    - Dst: fu_common_get_olson_timezone_id_impl
      Src: /src/fwupd/libfwupdplugin/fu-common.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pstore
    - error
    argTypes:
    - FuPathStore*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 363
    functionName: fu_common_get_olson_timezone_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_common_get_olson_timezone_id_impl
    - FU_IS_PATH_STORE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_common_get_olson_timezone_id(FuPathStore *pstore, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-common.c:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - value
    - alignment
    argTypes:
    - gsize
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 400
    functionName: fu_common_align_up
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 12
    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: 416
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 416
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_error_convert
      Src: /src/fwupd/libfwupdplugin/fu-common.c:438,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-common.c:442,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-common.c:451,1
    - Dst: g_quark_to_string
      Src: /src/fwupd/libfwupdplugin/fu-common.c:452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - entries
    - n_entries
    - perror
    argTypes:
    - FuErrorConvertEntry[]
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 458
    functionName: fu_error_convert
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 0
    functionsReached:
    - g_critical
    - g_quark_to_string
    - g_error_matches
    - fwupd_error_convert
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_error_convert(const FuErrorConvertEntry entries[], guint
      n_entries, GError **perror)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-common.c:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bn
    - key
    - value
    argTypes:
    - XbBuilderNode*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 477
    functionName: fu_xmlb_builder_insert_kv
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 27
    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:496,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/libfwupdplugin/fu-common.c:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bn
    - key
    - value
    argTypes:
    - XbBuilderNode*
    - gchar*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 498
    functionName: fu_xmlb_builder_insert_kx
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-common.c
    functionUses: 24
    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:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bn
    - key
    - value
    argTypes:
    - XbBuilderNode*
    - gchar*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 514
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids-kenv.c:31,1
    - Dst: fu_kenv_get_string
      Src: /src/fwupd/libfwupdplugin/fu-hwids-kenv.c:32,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-hwids-kenv.c:34,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/libfwupdplugin/fu-hwids-kenv.c:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - self
    - error
    argTypes:
    - FuContext*
    - FuHwids*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 43
    functionName: fu_hwids_kenv_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids-kenv.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_hwids_add_value
    - fu_kenv_get_string
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hwids_kenv_setup(FuContext *ctx, FuHwids *self, GError
      **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:33,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:36,1
    - Dst: fu_udev_device_get_devpath
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:38,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:38,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:41,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:43,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:43,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:44,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:44,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:45,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:52,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:54,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:62,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 30
    functionDepth: 9
    functionLinenumber: 30
    functionLinenumberEnd: 69
    functionName: fu_block_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-device.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - fu_device_get_pid
    - fu_device_set_physical_id
    - fu_device_build_instance_id
    - fu_device_get_backend_parent_with_subsystem
    - fu_device_incorporate
    - fu_device_get_vid
    - fu_udev_device_get_devpath
    - g_strdup_printf
    - fu_device_build_instance_id_full
    - FU_UDEV_DEVICE
    - g_autoptr
    - 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: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    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: 88
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 88
    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: 101
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 101
    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:129,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:129,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:129,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:131,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:134,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:135,1
    - Dst: fu_ioctl_add_const_buffer
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:136,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:137,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:142,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:152,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - self
    - cdb
    - cdbsz
    - error
    argTypes:
    - FuBlockDevice*
    - guint8*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 117
    functionDepth: 4
    functionLinenumber: 117
    functionLinenumberEnd: 172
    functionName: fu_block_device_sg_io_cmd_none
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-device.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_execute
    - fu_ioctl_add_const_buffer
    - g_set_error
    - g_set_error_literal
    - fu_ioctl_add_mutable_buffer
    - fu_dump_raw
    - fu_udev_device_ioctl_new
    - fu_ioctl_add_key_as_u8
    - FU_UDEV_DEVICE
    - fu_ioctl_add_key_as_u16
    - g_autoptr
    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:206,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:206,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:206,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:208,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:211,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:212,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:213,1
    - Dst: fu_ioctl_add_const_buffer
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:214,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:215,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:220,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:230,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:242,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:247,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: 253
      start: 189
    functionDepth: 4
    functionLinenumber: 189
    functionLinenumberEnd: 253
    functionName: fu_block_device_sg_io_cmd_read
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-device.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_execute
    - fu_ioctl_add_const_buffer
    - g_set_error
    - g_set_error_literal
    - fu_ioctl_add_mutable_buffer
    - fu_dump_raw
    - fu_udev_device_ioctl_new
    - fu_ioctl_add_key_as_u8
    - FU_UDEV_DEVICE
    - fu_ioctl_add_key_as_u16
    - g_autoptr
    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:287,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:287,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:287,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:289,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:292,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:293,1
    - Dst: fu_ioctl_add_const_buffer
      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_mutable_buffer
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:296,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:301,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:311,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:323,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-block-device.c:328,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: 334
      start: 270
    functionDepth: 4
    functionLinenumber: 270
    functionLinenumberEnd: 334
    functionName: fu_block_device_sg_io_cmd_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-block-device.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_execute
    - fu_ioctl_add_const_buffer
    - g_set_error
    - g_set_error_literal
    - fu_ioctl_add_mutable_buffer
    - fu_dump_raw
    - fu_udev_device_ioctl_new
    - fu_ioctl_add_key_as_u8
    - FU_UDEV_DEVICE
    - fu_ioctl_add_key_as_u16
    - g_autoptr
    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: 339
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 339
    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:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBlockDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 346
    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: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 1267
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:49,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:50,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:51,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:52,1
    - Dst: fwupd_codec_string_append_hex
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 55
    functionName: fu_hid_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_HID_DEVICE
    - fwupd_codec_string_append_bool
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    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:60,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:61,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:64,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:67,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: 70
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: fu_hid_device_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_HID_DEVICE
    - g_value_set_uint
    - GET_PRIVATE
    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:75,1
    - Dst: fu_hid_device_set_interface
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:78,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:78,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:81,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: 84
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 84
    functionName: fu_hid_device_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_HID_DEVICE
    - g_value_get_uint
    - fu_hid_device_set_interface
    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:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:101,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:102,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:104,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:104,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:105,1
    - Dst: fu_usb_device_get_hid_descriptors
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:107,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:107,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:112,1
    - Dst: fu_hid_descriptor_new
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:112,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:113,1
    - Dst: fu_dump_bytes
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:114,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:115,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:121,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:121,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 97
    functionDepth: 10
    functionLinenumber: 97
    functionLinenumberEnd: 124
    functionName: fu_hid_device_parse_descriptors
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_steal_pointer
    - g_ptr_array_add
    - fu_hid_descriptor_new
    - fu_dump_bytes
    - FU_HID_DEVICE
    - g_strdup_printf
    - fu_firmware_parse_bytes
    - g_autoptr
    - fu_usb_device_get_hid_descriptors
    - FU_USB_DEVICE
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    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:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:130,1
    - Dst: fu_usb_interface_get_endpoints
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:130,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:132,1
    - Dst: fu_usb_endpoint_get_direction
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:133,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:135,1
    - Dst: fu_usb_endpoint_get_direction
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:138,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:140,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:145,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 3
    argNames:
    - self
    - iface
    - error
    argTypes:
    - FuHidDevice*
    - FuUsbInterface*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 152
    functionName: fu_hid_device_autodetect_eps
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_endpoints
    - g_set_error_literal
    - fu_usb_endpoint_get_address
    - g_autoptr
    - fu_usb_endpoint_get_direction
    - g_ptr_array_index
    - GET_PRIVATE
    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:157,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:160,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:164,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:166,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:166,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:171,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:173,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:175,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:175,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:180,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 154
    functionDepth: 5
    functionLinenumber: 154
    functionLinenumberEnd: 185
    functionName: fu_hid_device_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_name
    - FU_HID_DEVICE
    - fu_udev_device_read_sysfs
    - fu_device_set_vendor
    - fu_device_get_name
    - FU_UDEV_DEVICE
    - fu_device_get_vendor
    - FU_DEVICE_CLASS
    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:190,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:191,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:195,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:199,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:199,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:204,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:205,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:205,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:209,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:210,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:211,1
    - Dst: fu_hid_device_autodetect_eps
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:214,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:221,1
    - Dst: fu_usb_device_claim_interface
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:232,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:232,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:233,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 187
    functionDepth: 9
    functionLinenumber: 187
    functionLinenumberEnd: 239
    functionName: fu_hid_device_open
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_number
    - fu_usb_device_get_interfaces
    - fu_hid_device_autodetect_eps
    - fu_usb_device_claim_interface
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_usb_interface_get_class
    - FU_HID_DEVICE
    - fu_usb_device_get_spec
    - FU_USB_DEVICE
    - g_autoptr
    - FU_DEVICE_CLASS
    - g_ptr_array_index
    - GET_PRIVATE
    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:244,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:245,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:247,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:250,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:250,1
    - Dst: fu_usb_device_release_interface
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:256,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:256,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:260,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:261,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:262,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:264,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:265,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:272,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 273
    functionName: fu_hid_device_close
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_steal_pointer
    - fu_usb_device_release_interface
    - FU_HID_DEVICE
    - g_propagate_prefixed_error
    - g_error_matches
    - fu_usb_device_get_spec
    - FU_USB_DEVICE
    - g_autoptr
    - FU_DEVICE_CLASS
    - GET_PRIVATE
    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:291,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:292,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - interface_number
    argTypes:
    - FuHidDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 295
    functionName: fu_hid_device_set_interface
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 1
    functionsReached:
    - FU_HID_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:310,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:311,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: fu_hid_device_get_interface
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_HID_DEVICE
    - GET_PRIVATE
    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:330,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:331,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - ep_addr_in
    argTypes:
    - FuHidDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 334
    functionName: fu_hid_device_set_ep_addr_in
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_HID_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:349,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:350,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 352
    functionName: fu_hid_device_get_ep_addr_in
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_HID_DEVICE
    - GET_PRIVATE
    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:369,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:370,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - ep_addr_out
    argTypes:
    - FuHidDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 373
    functionName: fu_hid_device_set_ep_addr_out
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_HID_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:388,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:389,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 391
    functionName: fu_hid_device_get_ep_addr_out
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_HID_DEVICE
    - GET_PRIVATE
    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:405,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:406,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuHidDevice*
    - FuHidDeviceFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 408
    functionName: fu_hid_device_add_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_HID_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:421,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:427,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:428,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:430,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:436,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:436,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:444,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:455,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:458,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:459,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:459,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:472,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:477,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - self
    - helper
    - error
    argTypes:
    - FuHidDevice*
    - FuHidDeviceRetryHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 418
    functionDepth: 4
    functionLinenumber: 418
    functionLinenumberEnd: 486
    functionName: fu_hid_device_set_report_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_usb_device_interrupt_transfer
    - g_strdup_printf
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_dump_raw
    - GET_PRIVATE
    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:491,1
    - Dst: fu_hid_device_set_report_internal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 488
    functionDepth: 5
    functionLinenumber: 488
    functionLinenumberEnd: 494
    functionName: fu_hid_device_set_report_internal_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_HID_DEVICE
    - fu_hid_device_set_report_internal
    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:522,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:524,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:524,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:525,1
    - Dst: g_return_val_if_fail
      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: fu_device_retry
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:538,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:538,1
    - Dst: fu_hid_device_set_report_internal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:546,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: 547
      start: 512
    functionDepth: 5
    functionLinenumber: 512
    functionLinenumberEnd: 547
    functionName: fu_hid_device_set_report
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_hid_device_set_report_internal
    - FU_DEVICE
    - FU_HID_DEVICE
    - fu_device_retry
    - GET_PRIVATE
    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:552,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:559,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:565,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:565,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:574,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:575,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:584,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:587,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:588,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:588,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:601,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:604,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:607,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - self
    - helper
    - error
    argTypes:
    - FuHidDevice*
    - FuHidDeviceRetryHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 549
    functionDepth: 4
    functionLinenumber: 549
    functionLinenumberEnd: 616
    functionName: fu_hid_device_get_report_internal
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_usb_device_interrupt_transfer
    - g_strdup_printf
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_dump_raw
    - GET_PRIVATE
    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:621,1
    - Dst: fu_hid_device_get_report_internal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 618
    functionDepth: 5
    functionLinenumber: 618
    functionLinenumberEnd: 624
    functionName: fu_hid_device_get_report_internal_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_HID_DEVICE
    - fu_hid_device_get_report_internal
    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:652,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:654,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:654,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:655,1
    - Dst: g_return_val_if_fail
      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: fu_device_retry
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:668,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:668,1
    - Dst: fu_hid_device_get_report_internal
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:676,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: 677
      start: 642
    functionDepth: 5
    functionLinenumber: 642
    functionLinenumberEnd: 677
    functionName: fu_hid_device_get_report
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_hid_device_get_report_internal
    - FU_DEVICE
    - FU_HID_DEVICE
    - fu_device_retry
    - GET_PRIVATE
    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:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 684
    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:689,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:690,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:707,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-hid-device.c:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 715
    functionName: fu_hid_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hid-device.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_uint
    - FU_DEVICE_CLASS
    - G_OBJECT_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: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1284
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:84,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:85,1
    - Dst: fu_context_get_smbios_data
      Src: /src/fwupd/libfwupdplugin/fu-context.c:87,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-context.c:89,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:92,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:98,1
    - Dst: fu_struct_smbios_bios_information_parse_bytes
      Src: /src/fwupd/libfwupdplugin/fu-context.c:100,1
    - Dst: fu_struct_smbios_bios_information_get_length
      Src: /src/fwupd/libfwupdplugin/fu-context.c:103,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:104,1
    - Dst: fu_struct_smbios_bios_information_get_characteristics_ext
      Src: /src/fwupd/libfwupdplugin/fu-context.c:110,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:112,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuContext*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 122
    functionName: fu_context_ensure_smbios_uefi_enabled
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_getenv
    - fu_context_add_flag
    - fu_struct_smbios_bios_information_parse_bytes
    - fu_struct_smbios_bios_information_get_length
    - g_set_error_literal
    - fu_context_get_smbios_data
    - fu_struct_smbios_bios_information_get_characteristics_ext
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_context_ensure_smbios_uefi_enabled(FuContext *self, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-context.c:131,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-context.c:138,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-context.c:139,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-context.c:142,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-context.c:145,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-context.c:146,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuContext*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 156
    functionName: fu_context_get_fdt_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_file_test
    - g_file_new_for_path
    - fu_context_build_filename
    - g_set_error
    linkageType: ''
    returnType: GFile
    signature: 'GFile *

      fu_context_get_fdt_file(FuContext *self, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:175,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:177,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:177,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:178,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:182,1
    - Dst: fu_fdt_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:182,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:183,1
    - Dst: fu_context_get_fdt_file
      Src: /src/fwupd/libfwupdplugin/fu-context.c:183,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/libfwupdplugin/fu-context.c:186,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:190,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:193,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuContext*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 172
    functionDepth: 5
    functionLinenumber: 172
    functionLinenumberEnd: 198
    functionName: fu_context_get_fdt
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_firmware_parse_file
    - fu_fdt_firmware_new
    - fu_context_get_fdt_file
    - FU_IS_CONTEXT
    - g_steal_pointer
    - g_prefix_error_literal
    - g_object_ref
    - g_autoptr
    - GET_PRIVATE
    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:213,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:214,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: fu_context_get_efivars
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 18
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - 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:233,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:236,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:236,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:237,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:240,1
    - Dst: fu_efivars_space_free
      Src: /src/fwupd/libfwupdplugin/fu-context.c:243,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-context.c:247,1
    - Dst: g_format_size
      Src: /src/fwupd/libfwupdplugin/fu-context.c:248,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:249,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - count
    - error
    argTypes:
    - FuContext*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 258
    functionName: fu_context_efivars_check_free_space
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_context_has_flag
    - g_set_error
    - FU_IS_CONTEXT
    - fu_efivars_space_free
    - g_format_size
    - GET_PRIVATE
    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:273,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:274,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: fu_context_get_smbios
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - 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:290,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:291,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:291,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:292,1
    - Dst: FU_IS_SMBIOS
      Src: /src/fwupd/libfwupdplugin/fu-context.c:292,1
    - Dst: g_set_object
      Src: /src/fwupd/libfwupdplugin/fu-context.c:293,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - smbios
    argTypes:
    - FuContext*
    - FuSmbios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 295
    functionName: fu_context_set_smbios
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - fu_context_add_flag
    - FU_IS_CONTEXT
    - g_return_if_fail
    - g_set_object
    - FU_IS_SMBIOS
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_context_set_smbios(FuContext *self, FuSmbios *smbios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:310,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:311,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: fu_context_get_hwids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - 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:328,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:329,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 331
    functionName: fu_context_get_config
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - 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:357,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:358,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:358,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:359,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-context.c:360,1
    - Dst: fu_smbios_get_string
      Src: /src/fwupd/libfwupdplugin/fu-context.c:363,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: 364
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 364
    functionName: fu_context_get_smbios_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_context_has_flag
    - g_critical
    - fu_smbios_get_string
    - FU_IS_CONTEXT
    - GET_PRIVATE
    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:382,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:384,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:384,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:387,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-context.c:388,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:389,1
    - Dst: fu_smbios_get_data
      Src: /src/fwupd/libfwupdplugin/fu-context.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - type
    - length
    - error
    argTypes:
    - FuContext*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 393
    functionName: fu_context_get_smbios_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_context_has_flag
    - g_critical
    - fu_smbios_get_data
    - g_set_error_literal
    - FU_IS_CONTEXT
    - GET_PRIVATE
    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:419,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:420,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:420,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:421,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-context.c:422,1
    - Dst: fu_smbios_get_integer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:425,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: 426
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 426
    functionName: fu_context_get_smbios_integer
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_context_has_flag
    - g_critical
    - FU_IS_CONTEXT
    - fu_smbios_get_integer
    - GET_PRIVATE
    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:440,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:441,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:441,1
    - Dst: fu_bios_settings_setup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuContext*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 437
    functionDepth: 8
    functionLinenumber: 437
    functionLinenumberEnd: 443
    functionName: fu_context_reload_bios_settings
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - fu_bios_settings_setup
    - GET_PRIVATE
    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:458,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:459,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:459,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 461
    functionName: fu_context_get_bios_settings
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 8
    functionsReached:
    - g_return_val_if_fail
    - g_object_ref
    - FU_IS_CONTEXT
    - 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:477,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:478,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:478,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:479,1
    - Dst: fu_bios_settings_get_attr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 474
    functionDepth: 2
    functionLinenumber: 474
    functionLinenumberEnd: 481
    functionName: fu_context_get_bios_setting
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - fu_bios_settings_get_attr
    - FU_IS_CONTEXT
    - GET_PRIVATE
    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:496,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:498,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:498,1
    - Dst: fu_bios_settings_get_pending_reboot
      Src: /src/fwupd/libfwupdplugin/fu-context.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 493
    functionDepth: 3
    functionLinenumber: 493
    functionLinenumberEnd: 501
    functionName: fu_context_get_bios_setting_pending_reboot
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - fu_bios_settings_get_pending_reboot
    - GET_PRIVATE
    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:516,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:517,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 519
    functionName: fu_context_get_chassis_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - 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:533,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:534,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - chassis_kind
    argTypes:
    - FuContext*
    - FuSmbiosChassisKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 536
    functionName: fu_context_set_chassis_kind
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 4
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_if_fail
    - GET_PRIVATE
    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:552,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:553,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:553,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:554,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-context.c:555,1
    - Dst: fu_hwids_has_guid
      Src: /src/fwupd/libfwupdplugin/fu-context.c:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 559
    functionName: fu_context_has_hwid_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_hwids_has_guid
    - g_critical
    - FU_IS_CONTEXT
    - GET_PRIVATE
    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:575,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:576,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:576,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:577,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-context.c:578,1
    - Dst: fu_hwids_get_guids
      Src: /src/fwupd/libfwupdplugin/fu-context.c:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 582
    functionName: fu_context_get_hwid_guids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_context_has_flag
    - g_critical
    - FU_IS_CONTEXT
    - fu_hwids_get_guids
    - GET_PRIVATE
    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:599,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:600,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:600,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:601,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:602,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-context.c:603,1
    - Dst: fu_hwids_get_value
      Src: /src/fwupd/libfwupdplugin/fu-context.c:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 607
    functionName: fu_context_get_hwid_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - fu_context_has_flag
    - fu_hwids_get_value
    - g_critical
    - FU_IS_CONTEXT
    - GET_PRIVATE
    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:625,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:627,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:627,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:628,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:629,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:631,1
    - Dst: g_critical
      Src: /src/fwupd/libfwupdplugin/fu-context.c:632,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:633,1
    - Dst: fu_hwids_get_replace_values
      Src: /src/fwupd/libfwupdplugin/fu-context.c:636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - keys
    - error
    argTypes:
    - FuContext*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 637
    functionName: fu_context_get_hwid_replace_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_context_has_flag
    - g_critical
    - g_set_error_literal
    - FU_IS_CONTEXT
    - fu_hwids_get_replace_values
    - GET_PRIVATE
    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:652,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:654,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:654,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:655,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:656,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-context.c:660,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:660,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - component_id
    - version
    argTypes:
    - FuContext*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 661
    functionName: fu_context_add_runtime_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - FU_IS_CONTEXT
    - g_return_if_fail
    - GET_PRIVATE
    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:677,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:679,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:679,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:680,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - component_id
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 685
    functionName: fu_context_get_runtime_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_hash_table_lookup
    - FU_IS_CONTEXT
    - 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:700,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:701,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 703
    functionName: fu_context_get_runtime_versions
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - 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:718,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:720,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:720,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:721,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:722,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-context.c:726,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:726,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - component_id
    - version
    argTypes:
    - FuContext*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 727
    functionName: fu_context_add_compile_version
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - FU_IS_CONTEXT
    - g_return_if_fail
    - GET_PRIVATE
    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:742,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:743,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 745
    functionName: fu_context_get_compile_versions
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - 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:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 753
    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:770,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-context.c:772,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:774,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:774,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:775,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-context.c:778,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-context.c:779,1
    - Dst: fu_context_add_udev_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-context.c:780,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:783,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:787,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:788,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:791,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:791,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-context.c:792,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-context.c:798,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:800,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:800,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-context.c:801,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:802,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:803,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:805,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:807,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - self
    - subsystem
    - plugin_name
    argTypes:
    - FuContext*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 808
    functionName: fu_context_add_udev_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 4
    functionsReached:
    - g_strdup
    - g_ptr_array_sort
    - g_strcmp0
    - g_hash_table_insert
    - g_info
    - g_hash_table_lookup
    - FU_IS_CONTEXT
    - g_return_if_fail
    - fu_context_add_udev_subsystem
    - g_ptr_array_add
    - g_steal_pointer
    - g_strsplit
    - g_strv_length
    - g_auto
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    - GET_PRIVATE
    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:827,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-context.c:829,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:830,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-context.c:830,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:832,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:832,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:833,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-context.c:836,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-context.c:837,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:838,1
    - Dst: g_ptr_array_extend
      Src: /src/fwupd/libfwupdplugin/fu-context.c:840,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:847,1
    - Dst: g_ptr_array_extend
      Src: /src/fwupd/libfwupdplugin/fu-context.c:849,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:853,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:862,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - self
    - subsystem
    - error
    argTypes:
    - FuContext*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 863
    functionName: fu_context_get_plugin_names_for_udev_subsystem
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    - g_ptr_array_extend
    - g_hash_table_lookup
    - FU_IS_CONTEXT
    - g_steal_pointer
    - g_strsplit
    - g_strv_length
    - g_autoptr
    - g_auto
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    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:878,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:879,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupdplugin/fu-context.c:879,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:880,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-context.c:880,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:882,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:882,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:886,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:886,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 889
    functionName: fu_context_get_udev_subsystems
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_hash_table_get_keys
    - FU_IS_CONTEXT
    - g_ptr_array_add
    - g_steal_pointer
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_context_get_udev_subsystems(FuContext *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_type_name
      Src: /src/fwupd/libfwupdplugin/fu-context.c:894,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-context.c:895,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:896,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:896,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:899,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:900,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupdplugin/fu-context.c:903,1
    - Dst: g_ascii_isupper
      Src: /src/fwupd/libfwupdplugin/fu-context.c:909,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-context.c:911,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-context.c:912,1
    - Dst: g_ascii_tolower
      Src: /src/fwupd/libfwupdplugin/fu-context.c:912,1
    - Dst: g_string_append_c
      Src: /src/fwupd/libfwupdplugin/fu-context.c:914,1
    - Dst: g_string_free
      Src: /src/fwupd/libfwupdplugin/fu-context.c:919,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:919,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - gtype
    argTypes:
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 920
    functionName: fu_context_convert_firmware_gtype_to_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_ascii_tolower
    - g_strcmp0
    - g_type_name
    - g_str_has_suffix
    - g_steal_pointer
    - g_string_append_c
    - g_string_free
    - strlen
    - g_string_new
    - g_ascii_isupper
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_context_convert_firmware_gtype_to_id(GType gtype)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:936,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:938,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:938,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:939,1
    - Dst: g_type_ensure
      Src: /src/fwupd/libfwupdplugin/fu-context.c:941,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-context.c:942,1
    - Dst: fu_context_convert_firmware_gtype_to_id
      Src: /src/fwupd/libfwupdplugin/fu-context.c:943,1
    - Dst: GSIZE_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-context.c:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - gtype
    argTypes:
    - FuContext*
    - GType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 945
    functionName: fu_context_add_firmware_gtype
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 4
    functionsReached:
    - g_hash_table_insert
    - fu_context_convert_firmware_gtype_to_id
    - FU_IS_CONTEXT
    - g_return_if_fail
    - GSIZE_TO_POINTER
    - g_type_ensure
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_context_add_firmware_gtype(FuContext *self, GType gtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:961,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:962,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:962,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:963,1
    - Dst: GPOINTER_TO_SIZE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:964,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - id
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 965
    functionName: fu_context_get_firmware_gtype_by_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - g_hash_table_lookup
    - FU_IS_CONTEXT
    - GPOINTER_TO_SIZE
    - GET_PRIVATE
    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:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 973
    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:988,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-context.c:989,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:990,1
    - Dst: g_hash_table_get_keys
      Src: /src/fwupd/libfwupdplugin/fu-context.c:990,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:992,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:992,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:996,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:996,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-context.c:998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 1000
    functionName: fu_context_get_firmware_gtype_ids
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_ptr_array_sort
    - g_hash_table_get_keys
    - FU_IS_CONTEXT
    - g_ptr_array_add
    - g_ptr_array_new_with_free_func
    - g_autoptr
    - GET_PRIVATE
    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:1015,1
    - Dst: g_array_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1016,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1017,1
    - Dst: g_hash_table_get_values
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1017,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1019,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1019,1
    - Dst: GPOINTER_TO_SIZE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1022,1
    - Dst: g_array_append_val
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1026
    functionName: fu_context_get_firmware_gtypes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - g_array_new
    - g_hash_table_get_values
    - FU_IS_CONTEXT
    - GPOINTER_TO_SIZE
    - g_array_append_val
    - g_autoptr
    - GET_PRIVATE
    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:1043,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1044,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1044,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1045,1
    - Dst: fu_quirks_add_possible_key
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1048,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1049
    functionName: fu_context_add_quirk_key
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_if_fail
    - fu_quirks_add_possible_key
    - GET_PRIVATE
    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:1066,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1068,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1068,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1069,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1070,1
    - Dst: fu_quirks_lookup_by_id
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - guid
    - key
    argTypes:
    - FuContext*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1063
    functionDepth: 4
    functionLinenumber: 1063
    functionLinenumberEnd: 1074
    functionName: fu_context_lookup_quirk_by_id
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - fu_quirks_lookup_by_id
    - GET_PRIVATE
    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:1090,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: 1091
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1091
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1114,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1120,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1120,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1121,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1122,1
    - Dst: fu_quirks_lookup_by_id_iter
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - self
    - guid
    - key
    - iter_cb
    - user_data
    argTypes:
    - FuContext*
    - gchar*
    - gchar*
    - FuContextLookupIter
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1107
    functionDepth: 4
    functionLinenumber: 1107
    functionLinenumberEnd: 1130
    functionName: fu_context_lookup_quirk_by_id_iter
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - fu_quirks_lookup_by_id_iter
    - 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:1143,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1143,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1145
    functionName: fu_context_security_changed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_signal_emit
    - FU_IS_CONTEXT
    - 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:1158,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1158,1
    - Dst: g_signal_emit
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1160
    functionName: fu_context_housekeeping
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_signal_emit
    - FU_IS_CONTEXT
    - 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:1167,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1168,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1169,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1171,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1171,1
    - Dst: fu_common_get_block_devices
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1173,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1175,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1180,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1181,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1181,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1182,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1182,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1183,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1183,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1185,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1185,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1189,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1189,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1190,1
    - Dst: fwupd_variant_get_string
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1190,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1164
    functionDepth: 1
    functionLinenumber: 1164
    functionLinenumberEnd: 1194
    functionName: fu_context_detect_full_disk_encryption
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_info
    - FU_IS_CONTEXT
    - g_return_if_fail
    - fwupd_variant_get_string
    - fu_common_get_block_devices
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_context_detect_full_disk_encryption(FuContext *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - FuContextFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1196
    functionDepth: 0
    functionLinenumber: 1196
    functionLinenumberEnd: 1205
    functionName: fu_context_flag_is_quirk_controlled
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_context_flag_is_quirk_controlled(FuContextFlags flag)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1214,1
    - Dst: g_auto
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1216,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1216,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1219,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1220,1
    - Dst: fu_context_flag_from_string
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1222,1
    - Dst: fu_context_flag_is_quirk_controlled
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1223,1
    - Dst: fu_context_remove_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1224,1
    - Dst: g_hash_table_remove
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1226,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1229,1
    - Dst: fu_context_flag_from_string
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1230,1
    - Dst: fu_context_flag_is_quirk_controlled
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1231,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1232,1
    - Dst: g_hash_table_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1234,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1234,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 5
    argNames:
    - self
    - key
    - value
    - source
    - user_data
    argTypes:
    - FuContext*
    - gchar*
    - gchar*
    - FuContextQuirkSource
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1207
    functionDepth: 1
    functionLinenumber: 1207
    functionLinenumberEnd: 1237
    functionName: fu_context_hwid_quirk_cb
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_hash_table_remove
    - g_strdup
    - g_strcmp0
    - fu_context_flag_is_quirk_controlled
    - fu_context_add_flag
    - fu_context_flag_from_string
    - fu_context_remove_flag
    - g_hash_table_add
    - g_strsplit
    - g_auto
    - g_str_has_prefix
    - GET_PRIVATE
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1245,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1247,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1248,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1251,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1239
    functionDepth: 1
    functionLinenumber: 1239
    functionLinenumberEnd: 1255
    functionName: fu_context_detect_container
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_strstr_len
    - g_file_get_contents
    - fu_context_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_context_detect_container(FuContext *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1263,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1272,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1274,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1275,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1257
    functionDepth: 1
    functionLinenumber: 1257
    functionLinenumberEnd: 1281
    functionName: fu_context_detect_hypervisor_privileged
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_context_build_filename
    - fu_context_add_flag
    - g_file_get_contents
    - g_file_test
    linkageType: ''
    returnType: void
    signature: void fu_context_detect_hypervisor_privileged(FuContext *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1286,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1288,1
    - Dst: fu_cpu_get_attrs
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1290,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1293,1
    - Dst: g_strstr_len
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1296,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1297,1
    - Dst: fu_context_detect_hypervisor_privileged
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1283
    functionDepth: 3
    functionLinenumber: 1283
    functionLinenumberEnd: 1301
    functionName: fu_context_detect_hypervisor
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - fu_context_add_flag
    - g_hash_table_lookup
    - g_strstr_len
    - fu_context_detect_hypervisor_privileged
    - g_autoptr
    - fu_cpu_get_attrs
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_context_detect_hypervisor(FuContext *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1322,1
    - Dst: g_getenv
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1325,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1326,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1327,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1328,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
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1342,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1345,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1346,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1347,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1348,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1349,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1350,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1351,1
    - Dst: fu_config_load
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1358,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1364,1
    - Dst: func
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1365,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1366,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1373,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1374,1
    - Dst: fu_hwids_setup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1376,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1377,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1378,1
    - Dst: fu_context_ensure_smbios_uefi_enabled
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1381,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1382,1
    - Dst: fu_context_get_hwid_guids
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1385,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1387,1
    - Dst: fu_context_lookup_quirk_by_id_iter
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1388,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1394,1
    - Dst: fu_context_detect_full_disk_encryption
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1396,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1397,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1401,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1403,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1404,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1405,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1406,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1408,1
    - Dst: fu_context_detect_hypervisor
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1416,1
    - Dst: fu_context_detect_container
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1417,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1419,1
    - Dst: fu_context_add_udev_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1421,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1422,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1423,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1424,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 68
    argCount: 4
    argNames:
    - self
    - progress
    - flags
    - error
    argTypes:
    - FuContext*
    - FuProgress*
    - FuContextHwidFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1316
    functionDepth: 9
    functionLinenumber: 1316
    functionLinenumberEnd: 1428
    functionName: fu_context_load_hwinfo
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 12
    functionsReached:
    - fu_context_add_flag
    - FU_IS_CONTEXT
    - fu_config_load
    - fu_context_get_hwid_guids
    - g_ptr_array_index
    - g_debug
    - fu_context_lookup_quirk_by_id_iter
    - fu_hwids_setup
    - fu_context_reload_bios_settings
    - GET_PRIVATE
    - g_getenv
    - g_info
    - fu_progress_add_step
    - fu_context_detect_container
    - fu_progress_step_done
    - fu_context_detect_full_disk_encryption
    - g_warning
    - fu_context_ensure_smbios_uefi_enabled
    - fu_progress_set_id
    - g_return_val_if_fail
    - func
    - g_strcmp0
    - g_set_error
    - fu_context_detect_hypervisor
    - g_autoptr
    - fu_context_add_udev_subsystem
    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:1444,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1445,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1445,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1446,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1441
    functionDepth: 0
    functionLinenumber: 1441
    functionLinenumberEnd: 1448
    functionName: fu_context_has_hwid_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_hash_table_lookup
    - FU_IS_CONTEXT
    - 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:1465,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1466,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1468,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1468,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1469,1
    - Dst: fu_quirks_load
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1472,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FuContext*
    - FuQuirksLoadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1462
    functionDepth: 5
    functionLinenumber: 1462
    functionLinenumberEnd: 1477
    functionName: fu_context_load_quirks
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 12
    functionsReached:
    - g_return_val_if_fail
    - fu_quirks_load
    - FU_IS_CONTEXT
    - g_warning
    - g_autoptr
    - GET_PRIVATE
    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:1492,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1493,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1489
    functionDepth: 0
    functionLinenumber: 1489
    functionLinenumberEnd: 1495
    functionName: fu_context_get_power_state
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - 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:1509,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1510,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1510,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1514,1
    - Dst: fu_power_state_to_string
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1514,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1515,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - power_state
    argTypes:
    - FuContext*
    - FuPowerState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1506
    functionDepth: 0
    functionLinenumber: 1506
    functionLinenumberEnd: 1516
    functionName: fu_context_set_power_state
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - g_info
    - FU_IS_CONTEXT
    - g_return_if_fail
    - G_OBJECT
    - fu_power_state_to_string
    - GET_PRIVATE
    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:1531,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1532,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1528
    functionDepth: 0
    functionLinenumber: 1528
    functionLinenumberEnd: 1534
    functionName: fu_context_get_lid_state
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - 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:1548,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1549,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1549,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1553,1
    - Dst: fu_lid_state_to_string
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1553,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1554,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - lid_state
    argTypes:
    - FuContext*
    - FuLidState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1545
    functionDepth: 0
    functionLinenumber: 1545
    functionLinenumberEnd: 1555
    functionName: fu_context_set_lid_state
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - g_info
    - fu_lid_state_to_string
    - FU_IS_CONTEXT
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:1570,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1571,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1567
    functionDepth: 0
    functionLinenumber: 1567
    functionLinenumberEnd: 1573
    functionName: fu_context_get_display_state
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - 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:1587,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1588,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1588,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1592,1
    - Dst: fu_display_state_to_string
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1592,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1593,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - display_state
    argTypes:
    - FuContext*
    - FuDisplayState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1584
    functionDepth: 0
    functionLinenumber: 1584
    functionLinenumberEnd: 1594
    functionName: fu_context_set_display_state
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - g_info
    - fu_display_state_to_string
    - FU_IS_CONTEXT
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:1609,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1610,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1606
    functionDepth: 0
    functionLinenumber: 1606
    functionLinenumberEnd: 1612
    functionName: fu_context_get_battery_level
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - 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:1626,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1627,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1627,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1628,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1632,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1633,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - battery_level
    argTypes:
    - FuContext*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1623
    functionDepth: 0
    functionLinenumber: 1623
    functionLinenumberEnd: 1634
    functionName: fu_context_set_battery_level
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - g_info
    - FU_IS_CONTEXT
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:1649,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1650,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1652
      start: 1646
    functionDepth: 0
    functionLinenumber: 1646
    functionLinenumberEnd: 1652
    functionName: fu_context_get_battery_threshold
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - 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:1666,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1667,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1667,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1668,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1672,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1673,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - battery_threshold
    argTypes:
    - FuContext*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1663
    functionDepth: 0
    functionLinenumber: 1663
    functionLinenumberEnd: 1674
    functionName: fu_context_set_battery_threshold
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_object_notify
    - g_info
    - FU_IS_CONTEXT
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:1688,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1689,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1689,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1693,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - context
    - flag
    argTypes:
    - FuContext*
    - FuContextFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1685
    functionDepth: 0
    functionLinenumber: 1685
    functionLinenumberEnd: 1694
    functionName: fu_context_add_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 12
    functionsReached:
    - g_object_notify
    - FU_IS_CONTEXT
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:1708,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1709,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1709,1
    - Dst: g_object_notify
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1713,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - context
    - flag
    argTypes:
    - FuContext*
    - FuContextFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1705
    functionDepth: 0
    functionLinenumber: 1705
    functionLinenumberEnd: 1714
    functionName: fu_context_remove_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 4
    functionsReached:
    - g_object_notify
    - FU_IS_CONTEXT
    - g_return_if_fail
    - G_OBJECT
    - GET_PRIVATE
    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:1730,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1731,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - context
    - flag
    argTypes:
    - FuContext*
    - FuContextFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1727
    functionDepth: 0
    functionLinenumber: 1727
    functionLinenumberEnd: 1733
    functionName: fu_context_has_flag
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 59
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - 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:1747,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1749,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1749,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1750,1
    - Dst: FU_IS_VOLUME
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1750,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1754,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1755,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1755,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1755,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1756,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1756,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1762,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1762,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - volume
    argTypes:
    - FuContext*
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1744
    functionDepth: 1
    functionLinenumber: 1744
    functionLinenumberEnd: 1763
    functionName: fu_context_add_esp_volume
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_strcmp0
    - FU_IS_VOLUME
    - fu_volume_get_id
    - g_debug
    - FU_IS_CONTEXT
    - g_return_if_fail
    - g_ptr_array_add
    - g_object_ref
    - g_ptr_array_index
    - GET_PRIVATE
    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:1775,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1776,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1776,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1777,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1778,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - location
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1772
    functionDepth: 0
    functionLinenumber: 1772
    functionLinenumberEnd: 1780
    functionName: fu_context_set_esp_location
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - FU_IS_CONTEXT
    - g_return_if_fail
    - g_free
    - GET_PRIVATE
    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:1793,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1794,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1790
    functionDepth: 0
    functionLinenumber: 1790
    functionLinenumberEnd: 1796
    functionName: fu_context_get_esp_location
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - 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:1814,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1816,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1817,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1818,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1819,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1821,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1821,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1822,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1826,1
    - Dst: fu_context_get_path
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1829,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1831,1
    - Dst: fu_volume_new_from_mount_path
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1831,1
    - Dst: fu_volume_set_partition_kind
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1832,1
    - Dst: fu_volume_set_partition_uuid
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1833,1
    - Dst: fu_context_add_esp_volume
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1834,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1835,1
    - Dst: fu_volume_new_by_kind
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1839,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1841,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1844,1
    - Dst: fu_volume_get_id_type
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1845,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1846,1
    - Dst: fu_context_add_esp_volume
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1848,1
    - Dst: fu_volume_new_by_kind
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1853,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1855,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1858,1
    - Dst: fu_volume_get_id_type
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1859,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1860,1
    - Dst: fu_volume_is_internal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1862,1
    - Dst: fu_context_add_esp_volume
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1864,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1870,1
    - Dst: fu_common_get_block_devices
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1873,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1876,1
    - Dst: g_ptr_array_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1884,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuContext*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1811
    functionDepth: 3
    functionLinenumber: 1811
    functionLinenumberEnd: 1885
    functionName: fu_context_get_esp_volumes
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - g_debug
    - fu_context_add_esp_volume
    - g_set_error_literal
    - FU_IS_CONTEXT
    - fu_common_get_block_devices
    - fu_volume_get_id_type
    - g_ptr_array_ref
    - fu_context_get_path
    - fu_volume_set_partition_kind
    - fu_volume_new_from_mount_path
    - fu_volume_set_partition_uuid
    - g_autoptr
    - fu_volume_is_internal
    - fu_volume_new_by_kind
    - g_ptr_array_index
    - GET_PRIVATE
    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:1890,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1897,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1898,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1900,1
    - Dst: g_file_test
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - esp
    argTypes:
    - FuVolume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1887
    functionDepth: 1
    functionLinenumber: 1887
    functionLinenumberEnd: 1901
    functionName: fu_context_is_esp
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_file_test
    - g_build_filename
    - fu_volume_get_mount_point
    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:1908,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1909,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1913,1
    - Dst: fu_path_get_files
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1919,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1923,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1924,1
    - Dst: g_utf8_strdown
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1925,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1928,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1930,1
    - Dst: g_info
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1932,1
    - Dst: g_strjoinv
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1938,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1939,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - esp
    - error
    argTypes:
    - FuVolume*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1903
    functionDepth: 3
    functionLinenumber: 1903
    functionLinenumberEnd: 1946
    functionName: fu_context_is_esp_linux
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_path_get_basename
    - g_info
    - g_set_error
    - g_set_error_literal
    - g_str_has_suffix
    - fu_volume_get_mount_point
    - g_str_has_prefix
    - g_strjoinv
    - g_utf8_strdown
    - fu_path_get_files
    - g_autoptr
    - g_ptr_array_index
    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:1952,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1952,1
    - Dst: GPOINTER_TO_UINT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1953,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1953,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - a
    - b
    - user_data
    argTypes:
    - gconstpointer
    - gconstpointer
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1948
    functionDepth: 0
    functionLinenumber: 1948
    functionLinenumberEnd: 1959
    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:1976,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1977,1
    - Dst: fu_context_get_esp_location
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1978,1
    - Dst: fu_context_get_esp_volumes
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1981,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1987,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1996,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1996,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1997,1
    - Dst: g_hash_table_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1997,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:1999,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2002,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2003,1
    - Dst: fu_volume_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2006,1
    - Dst: g_warning
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2008,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2014,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2015,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2016,1
    - Dst: fu_context_is_esp
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2023,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2024,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2024,1
    - Dst: fu_volume_get_size
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2029,1
    - Dst: fu_volume_get_partition_kind
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2032,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2033,1
    - Dst: fu_context_is_esp_linux
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2037,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2038,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2042,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2042,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2045,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2046,1
    - Dst: g_ptr_array_sort_with_data
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2053,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2055,1
    - Dst: GPOINTER_TO_UINT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2056,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2056,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2057,1
    - Dst: fu_volume_get_id
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2057,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2059,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2063,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2064,1
    - Dst: fu_volume_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2067,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2073,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2075,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2076,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2087,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2087,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 69
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuContext*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 1973
    functionDepth: 4
    functionLinenumber: 1973
    functionLinenumberEnd: 2088
    functionName: fu_context_get_default_esp
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_hash_table_lookup
    - fu_volume_get_size
    - g_hash_table_size
    - g_ptr_array_sort_with_data
    - GPOINTER_TO_UINT
    - g_object_ref
    - g_ptr_array_index
    - fu_context_is_esp_linux
    - g_debug
    - fu_volume_get_partition_kind
    - g_set_error_literal
    - g_hash_table_new
    - fu_context_is_esp
    - g_string_new
    - GET_PRIVATE
    - fu_context_get_esp_location
    - fu_volume_get_mount_point
    - g_warning
    - fu_volume_locker_new
    - g_strcmp0
    - fu_volume_get_id
    - fu_context_get_esp_volumes
    - g_set_error
    - GUINT_TO_POINTER
    - g_string_append_printf
    - g_autoptr
    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: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_IS_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2110,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2111,1
    - Dst: fu_context_get_esp_volumes
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2113,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2117,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2118,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2119,1
    - Dst: fu_efi_hard_drive_device_path_new_from_volume
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2121,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2123,1
    - Dst: fu_efi_hard_drive_device_path_compare
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2126,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2128,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2132,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - self
    - dp
    - error
    argTypes:
    - FuContext*
    - FuEfiHardDriveDevicePath*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2102
    functionDepth: 5
    functionLinenumber: 2102
    functionLinenumberEnd: 2134
    functionName: fu_context_get_esp_volume_by_hard_drive_device_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_efi_hard_drive_device_path_compare
    - g_debug
    - fu_context_get_esp_volumes
    - g_set_error_literal
    - FU_IS_CONTEXT
    - g_object_ref
    - FU_IS_EFI_HARD_DRIVE_DEVICE_PATH
    - fu_efi_hard_drive_device_path_new_from_volume
    - g_autoptr
    - g_ptr_array_index
    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:2139,1
    - Dst: fu_pefile_firmware_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2139,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2140,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2140,1
    - Dst: fu_firmware_set_filename
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2141,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2142,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2143,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - filename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2136
    functionDepth: 5
    functionLinenumber: 2136
    functionLinenumberEnd: 2147
    functionName: fu_context_esp_load_pe_file
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - fu_pefile_firmware_new
    - fu_firmware_parse_file
    - fu_firmware_set_filename
    - g_steal_pointer
    - g_prefix_error
    - g_file_new_for_path
    - g_autoptr
    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:2153,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2156,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2159,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2162,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2165,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - app_name
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2149
    functionDepth: 0
    functionLinenumber: 2149
    functionLinenumberEnd: 2171
    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: 19
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2180,1
    - Dst: fu_context_build_uefi_basename_for_arch
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2184,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2185,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2186,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2187,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2188,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2189,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2193,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2193,1
    - Dst: FU_EFI_HARD_DRIVE_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2198,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2199,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2199,1
    - Dst: FU_EFI_FILE_PATH_DEVICE_PATH
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2206,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2207,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2207,1
    - Dst: fu_context_get_esp_volume_by_hard_drive_device_path
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2214,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2218,1
    - Dst: fu_volume_locker_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2224,1
    - Dst: fu_efi_file_path_device_path_get_name
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2227,1
    - Dst: fu_path_verify_safe
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2230,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2234,1
    - Dst: g_build_filename
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2235,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2236,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2238,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2239,1
    - Dst: fu_context_esp_load_pe_file
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2242,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2244,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2245,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2246,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2248,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2248,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2252,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2252,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2252,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2253,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2253,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2259,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2260,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2261,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2262,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2262,1
    - Dst: fu_efi_load_option_get_metadata
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2266,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2268,1
    - Dst: fu_context_build_uefi_basename_for_arch
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2271,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2272,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2274,1
    - Dst: fu_context_esp_load_pe_file
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2277,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2279,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2280,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2281,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2283,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2283,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2287,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2287,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2287,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2288,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2288,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2294,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2295,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2295,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2296,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2297,1
    - Dst: g_string_replace
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2299,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2300,1
    - Dst: fu_context_esp_load_pe_file
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2303,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2305,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2306,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2307,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2309,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2309,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2313,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2313,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2313,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2314,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2314,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 100
    argCount: 5
    argNames:
    - self
    - entry
    - files
    - flags
    - error
    argTypes:
    - FuContext*
    - FuEfiLoadOption*
    - GPtrArray*
    - FuContextEspFileFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2320
      start: 2173
    functionDepth: 6
    functionLinenumber: 2173
    functionLinenumberEnd: 2320
    functionName: fu_context_get_esp_files_for_entry
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - fu_efi_file_path_device_path_get_name
    - g_str_has_suffix
    - FU_EFI_HARD_DRIVE_DEVICE_PATH
    - fu_firmware_get_image_by_gtype
    - g_debug
    - fu_path_verify_safe
    - g_set_error_literal
    - g_string_new
    - g_propagate_error
    - fu_firmware_get_idx
    - GET_PRIVATE
    - fu_context_build_uefi_basename_for_arch
    - fu_context_get_esp_volume_by_hard_drive_device_path
    - g_string_replace
    - FU_FIRMWARE
    - fu_volume_get_mount_point
    - fu_firmware_set_idx
    - fu_volume_locker_new
    - FU_EFI_FILE_PATH_DEVICE_PATH
    - fu_efi_load_option_get_metadata
    - fu_context_esp_load_pe_file
    - g_steal_pointer
    - g_ptr_array_add
    - g_error_matches
    - g_autoptr
    - g_build_filename
    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:2337,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2338,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2339,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2339,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2341,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2341,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2342,1
    - Dst: fu_efivars_get_boot_entries
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2344,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2348,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2349,1
    - Dst: fu_context_get_esp_files_for_entry
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2350,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2351,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2352,1
    - Dst: g_error_matches
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2353,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2354,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2355,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2355,1
    - Dst: g_propagate_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2359,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2359,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2365,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FuContext*
    - FuContextEspFileFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2366
      start: 2334
    functionDepth: 7
    functionLinenumber: 2334
    functionLinenumberEnd: 2366
    functionName: fu_context_get_esp_files
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_firmware_get_id
    - g_debug
    - fu_efivars_get_boot_entries
    - FU_FIRMWARE
    - FU_IS_CONTEXT
    - fu_context_get_esp_files_for_entry
    - g_steal_pointer
    - g_error_matches
    - g_autoptr
    - g_propagate_error
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    - GET_PRIVATE
    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:2381,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2382,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2378
    functionDepth: 0
    functionLinenumber: 2378
    functionLinenumberEnd: 2384
    functionName: fu_context_get_backends
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - 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:2400,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2401,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2401,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2402,1
    - Dst: FU_IS_BACKEND
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2402,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2403,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - backend
    argTypes:
    - FuContext*
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2397
    functionDepth: 0
    functionLinenumber: 2397
    functionLinenumberEnd: 2404
    functionName: fu_context_add_backend
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 2
    functionsReached:
    - FU_IS_BACKEND
    - FU_IS_CONTEXT
    - g_ptr_array_add
    - g_return_if_fail
    - g_object_ref
    - GET_PRIVATE
    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:2421,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2423,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2423,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2424,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2425,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2428,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2429,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2429,1
    - Dst: g_object_ref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2430,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - name
    - error
    argTypes:
    - FuContext*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2434
      start: 2418
    functionDepth: 1
    functionLinenumber: 2418
    functionLinenumberEnd: 2434
    functionName: fu_context_get_backend_by_name
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - fu_backend_get_name
    - g_set_error
    - FU_IS_CONTEXT
    - g_object_ref
    - g_ptr_array_index
    - GET_PRIVATE
    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:2440,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2442,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2442,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2443,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2446,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2447,1
    - Dst: fu_backend_get_name
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2451
      start: 2437
    functionDepth: 1
    functionLinenumber: 2437
    functionLinenumberEnd: 2451
    functionName: fu_context_has_backend
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - g_strcmp0
    - fu_backend_get_name
    - FU_IS_CONTEXT
    - g_ptr_array_index
    - GET_PRIVATE
    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:2457,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2457,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2458,1
    - Dst: g_object_get_data
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2459,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2460
      start: 2454
    functionDepth: 0
    functionLinenumber: 2454
    functionLinenumberEnd: 2460
    functionName: fu_context_get_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - g_object_get_data
    - G_OBJECT
    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:2466,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2466,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2467,1
    - Dst: g_object_set_data
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2468,1
    - Dst: G_OBJECT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - data
    argTypes:
    - FuContext*
    - gchar*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2463
    functionDepth: 0
    functionLinenumber: 2463
    functionLinenumberEnd: 2469
    functionName: fu_context_set_data
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 1
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_if_fail
    - g_object_set_data
    - G_OBJECT
    linkageType: ''
    returnType: void
    signature: void fu_context_set_data(FuContext *self, const gchar *key, gpointer
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2486,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2487,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2487,1
    - Dst: fu_path_store_get_path
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - kind
    - error
    argTypes:
    - FuContext*
    - FuPathKind
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2489
      start: 2483
    functionDepth: 1
    functionLinenumber: 2483
    functionLinenumberEnd: 2489
    functionName: fu_context_get_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 11
    functionsReached:
    - g_return_val_if_fail
    - fu_path_store_get_path
    - FU_IS_CONTEXT
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_context_get_path(FuContext *self, FuPathKind kind, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2508,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2513,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2513,1
    - Dst: fu_path_store_get_path
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2515,1
    - Dst: va_start
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2519,1
    - Dst: g_build_filename_valist
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2520,1
    - Dst: va_end
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - error
    - kind
    argTypes:
    - FuContext*
    - GError**
    - FuPathKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2524
      start: 2505
    functionDepth: 1
    functionLinenumber: 2505
    functionLinenumberEnd: 2524
    functionName: fu_context_build_filename
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 24
    functionsReached:
    - g_return_val_if_fail
    - fu_path_store_get_path
    - va_end
    - FU_IS_CONTEXT
    - g_build_filename_valist
    - va_start
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_context_build_filename(FuContext *self, GError **error, FuPathKind kind,
      ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2538,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2539,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2539,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - kind
    - dirname
    argTypes:
    - FuContext*
    - FuPathKind
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2535
    functionDepth: 1
    functionLinenumber: 2535
    functionLinenumberEnd: 2541
    functionName: fu_context_set_path
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 25
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_if_fail
    - fu_path_store_set_path
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_context_set_path(FuContext *self, FuPathKind kind, const gchar
      *dirname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2555,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2556,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2556,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2557,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2558,1
    - Dst: FU_IS_TEMPORARY_DIRECTORY
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2558,1
    - Dst: fu_path_store_set_tmpdir
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - kind
    - tmpdir
    argTypes:
    - FuContext*
    - FuPathKind
    - FuTemporaryDirectory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2560
      start: 2552
    functionDepth: 2
    functionLinenumber: 2552
    functionLinenumberEnd: 2560
    functionName: fu_context_set_tmpdir
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 22
    functionsReached:
    - FU_IS_TEMPORARY_DIRECTORY
    - FU_IS_CONTEXT
    - g_return_if_fail
    - fu_path_store_set_tmpdir
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_context_set_tmpdir(FuContext *self, FuPathKind kind, FuTemporaryDirectory
      *tmpdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2575,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2576,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2578
      start: 2572
    functionDepth: 0
    functionLinenumber: 2572
    functionLinenumberEnd: 2578
    functionName: fu_context_get_path_store
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_CONTEXT
    - GET_PRIVATE
    linkageType: ''
    returnType: FuPathStore
    signature: 'FuPathStore *

      fu_context_get_path_store(FuContext *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2593,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2594,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2594,1
    - Dst: fu_path_store_load_defaults
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2595,1
    - Dst: fu_path_store_load_from_env
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2597
      start: 2590
    functionDepth: 3
    functionLinenumber: 2590
    functionLinenumberEnd: 2597
    functionName: fu_context_load_path_store
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 2
    functionsReached:
    - FU_IS_CONTEXT
    - g_return_if_fail
    - fu_path_store_load_from_env
    - fu_path_store_load_defaults
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_context_load_path_store(FuContext *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2602,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2603,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2606,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2609,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2612,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2615,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2618,1
    - Dst: g_value_set_uint64
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2621,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2624,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: 2627
      start: 2599
    functionDepth: 0
    functionLinenumber: 2599
    functionLinenumberEnd: 2627
    functionName: fu_context_get_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_value_set_uint
    - FU_CONTEXT
    - g_value_set_uint64
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    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:2632,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2633,1
    - Dst: fu_context_set_power_state
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2636,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2636,1
    - Dst: fu_context_set_lid_state
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2639,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2639,1
    - Dst: fu_context_set_display_state
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2642,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2642,1
    - Dst: fu_context_set_battery_level
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2645,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2645,1
    - Dst: fu_context_set_battery_threshold
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2648,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2648,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2651,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2654,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: 2657
      start: 2629
    functionDepth: 1
    functionLinenumber: 2629
    functionLinenumberEnd: 2657
    functionName: fu_context_set_property
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - fu_context_set_battery_level
    - fu_context_set_display_state
    - fu_context_set_battery_threshold
    - fu_context_set_lid_state
    - FU_CONTEXT
    - g_value_get_uint64
    - g_value_get_uint
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - fu_context_set_power_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:2662,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2663,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2664,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2659
    functionDepth: 0
    functionLinenumber: 2659
    functionLinenumberEnd: 2666
    functionName: fu_context_dispose
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_ptr_array_set_size
    - G_OBJECT_CLASS
    - FU_CONTEXT
    linkageType: ''
    returnType: void
    signature: void fu_context_dispose(GObject *object)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2671,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2672,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2675,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2677,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2678,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2679,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2680,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2681,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2682,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2683,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2684,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2685,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2686,1
    - Dst: g_object_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2687,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2688,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2689,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2690,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2691,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2694
      start: 2668
    functionDepth: 0
    functionLinenumber: 2668
    functionLinenumberEnd: 2694
    functionName: fu_context_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_object_unref
    - G_OBJECT_CLASS
    - FU_CONTEXT
    - g_free
    - g_hash_table_unref
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_context_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CONTEXT
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2699,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2700,1
    - Dst: fu_dummy_efivars_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2702,1
    - Dst: fu_efivars_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2703,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2707
      start: 2696
    functionDepth: 1
    functionLinenumber: 2696
    functionLinenumberEnd: 2707
    functionName: fu_context_constructed
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - fu_efivars_new
    - G_OBJECT_CLASS
    - FU_CONTEXT
    - fu_dummy_efivars_new
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_context_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2712,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2727,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2734,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2743,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2750,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2759,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2766,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2775,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2782,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2791,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2798,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2807,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2814,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2826,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2827,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2829,1
    - Dst: g_signal_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2844,1
    - Dst: G_TYPE_FROM_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2845,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuContextClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2855
      start: 2709
    functionDepth: 0
    functionLinenumber: 2709
    functionLinenumberEnd: 2855
    functionName: fu_context_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_uint
    - g_param_spec_uint64
    - g_signal_new
    - G_OBJECT_CLASS
    - G_STRUCT_OFFSET
    - G_TYPE_FROM_CLASS
    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:2860,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2864,1
    - Dst: fu_smbios_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2865,1
    - Dst: fu_hwids_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2866,1
    - Dst: fu_config_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2867,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2868,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2869,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2873,1
    - Dst: fu_quirks_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2874,1
    - Dst: fu_bios_settings_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2875,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2876,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2877,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2878,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2880
      start: 2857
    functionDepth: 1
    functionLinenumber: 2857
    functionLinenumberEnd: 2880
    functionName: fu_context_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 0
    functionsReached:
    - fu_config_new
    - fu_smbios_new
    - fu_quirks_new
    - g_hash_table_new_full
    - fu_hwids_new
    - fu_bios_settings_new
    - GET_PRIVATE
    - g_ptr_array_new_with_free_func
    - fu_path_store_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:2886,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - FuContextFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2887
      start: 2883
    functionDepth: 0
    functionLinenumber: 2883
    functionLinenumberEnd: 2887
    functionName: fu_context_new_full
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 94
    functionsReached:
    - g_object_new
    - FU_CONTEXT
    linkageType: ''
    returnType: FuContext
    signature: 'FuContext *

      fu_context_new_full(FuContextFlags flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_new_full
      Src: /src/fwupd/libfwupdplugin/fu-context.c:2901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2902
      start: 2898
    functionDepth: 1
    functionLinenumber: 2898
    functionLinenumberEnd: 2902
    functionName: fu_context_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-context.c
    functionUses: 44
    functionsReached:
    - fu_context_new_full
    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:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuHwids*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: fu_hwids_get_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 5
    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:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuHwids*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    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: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    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:105,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:122,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:122,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:123,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHwids*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 126
    functionName: fu_hwids_get_keys
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - g_ptr_array_new
    - g_ptr_array_add
    - G_N_ELEMENTS
    - FU_IS_HWIDS
    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:135,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:140,1
    - Dst: GUINT16_TO_LE
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:149,1
    - Dst: fwupd_guid_hash_data
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - str
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 155
    functionName: fu_hwids_get_guid_for_str
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 0
    functionsReached:
    - g_utf8_to_utf16
    - g_set_error_literal
    - GUINT16_TO_LE
    - 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:173,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:173,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:174,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - FuHwids*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 180
    functionName: fu_hwids_get_replace_keys
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_hash_table_lookup
    - 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:195,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:195,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:196,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:197,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:198,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:198,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuHwids*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: fu_hwids_add_chid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - g_return_if_fail
    - FU_IS_HWIDS
    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:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 207
    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:224,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:224,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:226,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:226,1
    - Dst: g_hash_table_iter_init
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:228,1
    - Dst: g_hash_table_iter_next
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:229,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:230,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:230,1
    - Dst: g_ptr_array_sort
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:231,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHwids*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 234
    functionName: fu_hwids_get_chid_keys
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_ptr_array_sort
    - g_steal_pointer
    - g_ptr_array_add
    - g_autoptr
    - g_hash_table_iter_init
    - g_ptr_array_new_with_free_func
    - g_hash_table_iter_next
    - 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:251,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:251,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:252,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:255,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:257,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:257,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:257,1
    - Dst: g_str_to_ascii
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:261,1
    - Dst: g_strdelimit
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:262,1
    - Dst: g_strchomp
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:263,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:264,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:265,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:266,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:268,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - FuHwids*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 270
    functionName: fu_hwids_add_value
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 7
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - g_steal_pointer
    - g_return_if_fail
    - g_str_to_ascii
    - g_strdelimit
    - g_hash_table_contains
    - g_strchomp
    - 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:287,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:288,1
    - Dst: g_string_new
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:288,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:290,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:290,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:291,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:292,1
    - Dst: fu_hwids_get_replace_keys
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:295,1
    - Dst: g_strsplit
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:298,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:300,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:302,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:309,1
    - Dst: g_string_truncate
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:312,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:313,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - self
    - keys
    - error
    argTypes:
    - FuHwids*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 314
    functionName: fu_hwids_get_replace_values
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - g_set_error
    - g_hash_table_lookup
    - g_strsplit
    - g_string_new
    - fu_hwids_get_replace_keys
    - g_string_append_printf
    - g_auto
    - g_string_truncate
    - g_autoptr
    - 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:333,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:333,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:334,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:335,1
    - Dst: fu_hwids_get_replace_values
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:337,1
    - Dst: fu_hwids_get_guid_for_str
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - keys
    - error
    argTypes:
    - FuHwids*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 341
    functionName: fu_hwids_get_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fu_hwids_get_guid_for_str
    - FU_IS_HWIDS
    - fu_hwids_get_replace_values
    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:355,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:355,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:356,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:357,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:357,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:357,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:358,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - guid
    argTypes:
    - FuHwids*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 359
    functionName: fu_hwids_add_guid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 1
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - g_return_if_fail
    - g_ptr_array_add
    - GUINT_TO_POINTER
    - 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:375,1
    - Dst: fu_hwids_get_chid_keys
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:375,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:377,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:377,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:378,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:382,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:384,1
    - Dst: fu_hwids_get_guid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:387,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:389,1
    - Dst: fu_hwids_add_guid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHwids*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 372
    functionDepth: 4
    functionLinenumber: 372
    functionLinenumberEnd: 396
    functionName: fu_hwids_setup
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_debug
    - fu_hwids_get_chid_keys
    - fu_hwids_add_guid
    - g_ptr_array_index
    - fu_hwids_get_guid
    - g_autoptr
    - 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:402,1
    - Dst: FU_IS_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:402,1
    - Dst: FU_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:403,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:405,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:406,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_ptr_array_unref
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:409,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 412
    functionName: fu_hwids_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_return_if_fail
    - G_OBJECT_CLASS
    - FU_HWIDS
    - g_hash_table_unref
    - 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:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHwidsClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 419
    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:424,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:425,1
    - 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_ptr_array_new_with_free_func
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:428,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:431,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:435,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:439,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:443,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:447,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:448,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:452,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:453,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:456,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:457,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:460,1
    - Dst: fu_hwids_add_chid
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:461,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:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHwids*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 466
    functionName: fu_hwids_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-hwids.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - g_hash_table_new_full
    - fu_hwids_add_chid
    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:479,1
    - Dst: FU_HWIDS
      Src: /src/fwupd/libfwupdplugin/fu-hwids.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 481
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:44,1
    - Dst: fu_efi_volume_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:44,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:45,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:48,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:49,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:53,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:54,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:59,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:60,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:65,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:68,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:69,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:73,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:73,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:80,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 89
    functionName: fu_ifd_bios_parse
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-bios.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - fu_firmware_add_image
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_firmware_set_offset
    - fu_efi_volume_new
    - fu_firmware_get_size
    - fu_size_checked_inc
    - g_autoptr
    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:94,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:94,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:95,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:95,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:97,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:97,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:98,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:98,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:100,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:100,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:101,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIfdBios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: fu_ifd_bios_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-bios.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_set_alignment
    - fu_firmware_set_size_max
    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:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIfdBiosClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    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:122,1
    - Dst: g_object_new
      Src: /src/fwupd/libfwupdplugin/fu-ifd-bios.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: fu_ifd_bios_new
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-ifd-bios.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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:28,1
    - 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
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 1
    argNames:
    - guid
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 67
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:94,1
    - Dst: fu_efi_section_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:95,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:99,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:101,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:104,1
    - Dst: g_prefix_error
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:109,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:116,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:117,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:124,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:125,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:129,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:131,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:131,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 5
    argNames:
    - firmware
    - stream
    - offset
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 82
    functionDepth: 4
    functionLinenumber: 82
    functionLinenumberEnd: 138
    functionName: fu_efi_parse_sections
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-common.c
    functionUses: 3
    functionsReached:
    - fu_firmware_add_image
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - g_set_error_literal
    - fu_efi_section_new
    - g_prefix_error_literal
    - g_prefix_error
    - fu_firmware_set_offset
    - fu_firmware_get_size
    - fu_common_align_up
    - fu_size_checked_inc
    - g_autoptr
    - fu_partial_input_stream_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: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_efi_time_get_year
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:152,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:153,1
    - Dst: fu_struct_efi_time_get_year
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:153,1
    - Dst: fu_struct_efi_time_get_month
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:154,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:155,1
    - Dst: fu_struct_efi_time_get_month
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:155,1
    - Dst: fu_struct_efi_time_get_day
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:156,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:157,1
    - Dst: fu_struct_efi_time_get_day
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:157,1
    - Dst: fu_struct_efi_time_get_hour
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:158,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:159,1
    - Dst: fu_struct_efi_time_get_hour
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:159,1
    - Dst: fu_struct_efi_time_get_minute
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:160,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:161,1
    - Dst: fu_struct_efi_time_get_minute
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:161,1
    - Dst: fu_struct_efi_time_get_second
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:162,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:163,1
    - Dst: fu_struct_efi_time_get_second
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:163,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - st
    - bn
    argTypes:
    - FuStructEfiTime*
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 164
    functionName: fu_efi_timestamp_export
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-common.c
    functionUses: 1
    functionsReached:
    - fu_struct_efi_time_get_hour
    - fu_struct_efi_time_get_month
    - fu_xmlb_builder_insert_kx
    - fu_struct_efi_time_get_second
    - fu_struct_efi_time_get_day
    - fu_struct_efi_time_get_minute
    - fu_struct_efi_time_get_year
    linkageType: ''
    returnType: void
    signature: void fu_efi_timestamp_export(FuStructEfiTime *st, XbBuilderNode *bn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:180,1
    - Dst: fu_struct_efi_time_set_year
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:182,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:183,1
    - Dst: fu_struct_efi_time_set_month
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:185,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:186,1
    - Dst: fu_struct_efi_time_set_day
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:188,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:189,1
    - Dst: fu_struct_efi_time_set_hour
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:191,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:192,1
    - Dst: fu_struct_efi_time_set_minute
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:194,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:195,1
    - Dst: fu_struct_efi_time_set_second
      Src: /src/fwupd/libfwupdplugin/fu-efi-common.c:197,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - st
    - n
    argTypes:
    - FuStructEfiTime*
    - XbNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 198
    functionName: fu_efi_timestamp_build
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-efi-common.c
    functionUses: 1
    functionsReached:
    - fu_struct_efi_time_set_day
    - fu_struct_efi_time_set_month
    - xb_node_query_text_as_uint
    - fu_struct_efi_time_set_minute
    - fu_struct_efi_time_set_second
    - fu_struct_efi_time_set_hour
    - fu_struct_efi_time_set_year
    linkageType: ''
    returnType: void
    signature: void fu_efi_timestamp_build(FuStructEfiTime *st, XbNode *n)
  - 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-mei-device.c
    functionUses: 1361
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:46,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:47,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:48,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:49,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: fu_mei_device_to_string
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append
    - FU_MEI_DEVICE
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    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:56,1
    - Dst: g_strcmp0
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:57,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:59,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - uuid
    argTypes:
    - FuMeiDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: fu_mei_device_set_uuid
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mei_device_set_uuid(FuMeiDevice *self, const gchar *uuid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:67,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:70,1
    - Dst: fu_mei_device_disconnect
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: fu_mei_device_close
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - fu_mei_device_disconnect
    - FU_MEI_DEVICE
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mei_device_close(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:81,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:83,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:83,1
    - Dst: fu_device_probe
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:86,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:88,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMeiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 78
    functionDepth: 9
    functionLinenumber: 78
    functionLinenumberEnd: 97
    functionName: fu_mei_device_pci_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - fu_device_get_backend_parent_with_subsystem
    - fu_device_incorporate
    - FU_DEVICE
    - g_autoptr
    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:104,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:105,1
    - Dst: fu_device_get_backend_parent
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:108,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:111,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:112,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:118,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:118,1
    - Dst: strlen
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:119,1
    - Dst: fu_udev_device_list_sysfs
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:122,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:122,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:126,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:127,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:128,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMeiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 99
    functionDepth: 6
    functionLinenumber: 99
    functionLinenumberEnd: 136
    functionName: fu_mei_device_interfaces_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_id
    - fu_device_add_instance_id_full
    - g_path_get_basename
    - g_set_error_literal
    - FU_DEVICE
    - fu_udev_device_list_sysfs
    - fu_device_get_backend_parent
    - strlen
    - FU_UDEV_DEVICE
    - g_str_has_prefix
    - g_autoptr
    - g_ptr_array_index
    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:141,1
    - Dst: fu_mei_device_pci_probe
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:144,1
    - Dst: fu_mei_device_interfaces_probe
      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:152,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:158,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 138
    functionDepth: 10
    functionLinenumber: 138
    functionLinenumberEnd: 174
    functionName: fu_mei_device_probe
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - fu_mei_device_pci_probe
    - fu_mei_device_interfaces_probe
    - fu_device_build_instance_id_full
    - FU_MEI_DEVICE
    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:179,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:180,1
    - Dst: fu_udev_device_read_sysfs_bytes
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:183,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:183,1
    - Dst: fu_strsplit_bytes
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:186,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:187,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:188,1
    - Dst: g_strv_length
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:193,1
    - Dst: g_strdup
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - self
    - attr
    - idx
    - error
    argTypes:
    - FuMeiDevice*
    - gchar*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 199
    functionName: fu_mei_device_get_multiline_attr
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_set_error
    - fu_udev_device_read_sysfs_bytes
    - fu_strsplit_bytes
    - g_strv_length
    - g_auto
    - g_autoptr
    - FU_UDEV_DEVICE
    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:216,1
    - Dst: FU_IS_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:216,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:217,1
    - Dst: fu_mei_device_get_multiline_attr
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuMeiDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 213
    functionDepth: 5
    functionLinenumber: 213
    functionLinenumberEnd: 219
    functionName: fu_mei_device_get_fw_ver
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_mei_device_get_multiline_attr
    - FU_IS_MEI_DEVICE
    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:236,1
    - Dst: FU_IS_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:236,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:237,1
    - Dst: fu_mei_device_get_multiline_attr
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuMeiDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 239
    functionName: fu_mei_device_get_fw_status
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_mei_device_get_multiline_attr
    - FU_IS_MEI_DEVICE
    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:254,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:255,1
    - Dst: FU_IS_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMeiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 257
    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: gsize
    signature: gsize fu_mei_device_get_max_msg_length(FuMeiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:272,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:273,1
    - Dst: FU_IS_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMeiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 275
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:297,1
    - Dst: g_autoptr
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:301,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:301,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:301,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:303,1
    - Dst: FU_IS_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:303,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:304,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:305,1
    - Dst: fu_mei_device_set_uuid
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:308,1
    - Dst: fu_udev_device_reopen
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:312,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:312,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:315,1
    - Dst: memcpy
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:317,1
    - Dst: g_debug
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:318,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:319,1
    - Dst: g_set_error
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:331,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:344,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - self
    - uuid
    - req_protocol_version
    - error
    argTypes:
    - FuMeiDevice*
    - gchar*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 290
    functionDepth: 4
    functionLinenumber: 290
    functionLinenumberEnd: 350
    functionName: fu_mei_device_connect
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_ioctl_execute
    - g_debug
    - g_set_error
    - fwupd_guid_from_string
    - g_set_error_literal
    - fu_udev_device_ioctl_new
    - fu_udev_device_reopen
    - memcpy
    - FU_UDEV_DEVICE
    - g_autoptr
    - FU_IS_MEI_DEVICE
    - fu_mei_device_set_uuid
    - GET_PRIVATE
    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_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:363,1
    - Dst: FU_IS_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:363,1
    - Dst: fu_mei_device_set_uuid
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMeiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 365
    functionName: fu_mei_device_disconnect
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 1
    functionsReached:
    - g_return_if_fail
    - FU_IS_MEI_DEVICE
    - fu_mei_device_set_uuid
    linkageType: ''
    returnType: void
    signature: void fu_mei_device_disconnect(FuMeiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:390,1
    - Dst: FU_IS_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:390,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:391,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:392,1
    - Dst: fu_udev_device_read
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:393,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:393,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: 400
      start: 382
    functionDepth: 5
    functionLinenumber: 382
    functionLinenumberEnd: 400
    functionName: fu_mei_device_read
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - fu_udev_device_read
    - FU_UDEV_DEVICE
    - FU_IS_MEI_DEVICE
    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:423,1
    - Dst: FU_IS_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:423,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:424,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:425,1
    - Dst: fu_udev_device_write
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:426,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:426,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: 432
      start: 416
    functionDepth: 5
    functionLinenumber: 416
    functionLinenumberEnd: 432
    functionName: fu_mei_device_write
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_UDEV_DEVICE
    - fu_udev_device_write
    - FU_IS_MEI_DEVICE
    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:437,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:438,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:439,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:439,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:441,1
    - Dst: FU_IS_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:441,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:442,1
    - Dst: FU_IS_MEI_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 447
    functionName: fu_mei_device_incorporate
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - FU_MEI_DEVICE
    - FU_IS_MEI_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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:452,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:452,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:453,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:453,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:454,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMeiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 449
    functionDepth: 6
    functionLinenumber: 449
    functionLinenumberEnd: 455
    functionName: fu_mei_device_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_UDEV_DEVICE
    - fu_udev_device_add_open_flag
    - FU_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:460,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:461,1
    - Dst: g_free
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:462,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 464
    functionName: fu_mei_device_finalize
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - FU_MEI_DEVICE
    - g_free
    - G_OBJECT_CLASS
    - GET_PRIVATE
    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:469,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/libfwupdplugin/fu-mei-device.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMeiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 476
    functionName: fu_mei_device_class_init
    functionSourceFile: /src/fwupd/libfwupdplugin/fu-mei-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_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:
    - fu_device_add_flag
    - FU_RP_PICO_DEVICE
    - g_debug
    - g_steal_pointer
    - g_propagate_prefixed_error
    - g_error_matches
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_device_control_transfer
    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: 9
    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_RP_PICO_DEVICE
    - fu_usb_device_get_interface
    - fu_usb_device_add_interface
    - FU_USB_DEVICE
    - g_autoptr
    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:
    - device
    - 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_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_rp_pico_device_set_progress(FuDevice *device, 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_add_flag
    - fu_device_retry_set_delay
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_add_protocol
    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_udev_subsystem
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-plugin.c:29,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/rp-pico/fu-rp-pico-plugin.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: fu_rp_pico_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/rp-pico/fu-rp-pico-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRpPicoPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    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:
    - fwupd_codec_string_append_hex
    - FU_TELINK_DFU_HID_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_telink_dfu_hid_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:46,1
    - Dst: fu_struct_telink_dfu_hid_pkt_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:47,1
    - Dst: fu_struct_telink_dfu_hid_pkt_payload_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:48,1
    - Dst: fu_struct_telink_dfu_hid_pkt_payload_set_ota_cmd
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:66,1
    - Dst: fu_struct_telink_dfu_hid_pkt_payload_set_ota_data
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:68,1
    - Dst: fu_crc16_safe
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:77,1
    - Dst: fu_struct_telink_dfu_hid_pkt_payload_set_crc
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:85,1
    - Dst: fu_struct_telink_dfu_hid_pkt_set_ota_data_len
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:86,1
    - Dst: fu_struct_telink_dfu_hid_pkt_set_payload
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:87,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:90,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - cmd
    - buf
    - bufsz
    - error
    argTypes:
    - FuTelinkDfuCmd
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 91
    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_set_ota_data_len
    - g_steal_pointer
    - fu_struct_telink_dfu_hid_pkt_payload_set_ota_cmd
    - fu_struct_telink_dfu_hid_pkt_payload_new
    - fu_struct_telink_dfu_hid_pkt_payload_set_ota_data
    - fu_struct_telink_dfu_hid_pkt_new
    - fu_struct_telink_dfu_hid_pkt_payload_set_crc
    - fu_crc16_safe
    - g_autoptr
    - fu_struct_telink_dfu_hid_pkt_set_payload
    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:99,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:102,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:111,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuTelinkDfuHidDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 93
    functionDepth: 6
    functionLinenumber: 93
    functionLinenumberEnd: 118
    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
    - fu_hid_device_set_report
    - FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
    - fu_memcpy_safe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_telink_dfu_hid_device_write(FuTelinkDfuHidDevice *self,
      GByteArray *buf, GError **error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:127,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:128,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:131,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:132,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:132,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:133,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:134,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:135,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:138,1
    - Dst: fu_telink_dfu_hid_device_create_packet
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:141,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:142,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:143,1
    - Dst: FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:148,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:149,1
    - Dst: fu_struct_telink_dfu_hid_pkt_get_payload
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:150,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:153,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:157,1
    - Dst: fu_struct_telink_dfu_hid_pkt_payload_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:158,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_set_payload_1
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:159,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_set_payload_2
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:164,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_set_payload_3
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:169,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_set_payload_2
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:175,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_set_payload_3
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:180,1
    - Dst: fu_telink_dfu_hid_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:184,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:188,1
    - Dst: fu_telink_dfu_hid_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:195,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:197,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:197,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:201,1
    - Dst: FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:204,1
    - Dst: fu_telink_dfu_hid_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:206,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuTelinkDfuHidDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 120
    functionDepth: 7
    functionLinenumber: 120
    functionLinenumberEnd: 212
    functionName: fu_telink_dfu_hid_device_write_blocks
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_telink_dfu_hid_long_pkt_set_payload_1
    - fu_chunk_get_data_sz
    - fu_struct_telink_dfu_hid_long_pkt_set_ota_data_len
    - fu_struct_telink_dfu_hid_pkt_payload_new
    - g_set_error_literal
    - fu_progress_set_steps
    - FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
    - fu_struct_telink_dfu_hid_long_pkt_set_payload_3
    - fu_telink_dfu_hid_device_create_packet
    - fu_struct_telink_dfu_hid_pkt_get_payload
    - fu_device_sleep
    - fu_progress_step_done
    - FU_DEVICE
    - fu_chunk_get_data
    - fu_chunk_array_length
    - fu_telink_dfu_hid_device_write
    - fu_progress_set_id
    - fu_chunk_array_index
    - fu_struct_telink_dfu_hid_long_pkt_new
    - fu_struct_telink_dfu_hid_long_pkt_set_payload_2
    - g_autoptr
    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:217,1
    - Dst: fu_telink_dfu_hid_device_create_packet
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:220,1
    - Dst: FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:224,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:225,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:226,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:227,1
    - Dst: fu_struct_telink_dfu_hid_pkt_get_payload
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:228,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:229,1
    - Dst: fu_struct_telink_dfu_hid_pkt_get_ota_data_len
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:231,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_set_payload_1
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:232,1
    - Dst: fu_telink_dfu_hid_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:236,1
    - Dst: fu_telink_dfu_hid_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:239,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:244,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTelinkDfuHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 214
    functionDepth: 7
    functionLinenumber: 214
    functionLinenumberEnd: 246
    functionName: fu_telink_dfu_hid_device_ota_start
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_telink_dfu_hid_long_pkt_set_payload_1
    - fu_telink_dfu_hid_device_create_packet
    - fu_struct_telink_dfu_hid_pkt_get_payload
    - fu_device_sleep
    - fu_struct_telink_dfu_hid_pkt_get_ota_data_len
    - fu_struct_telink_dfu_hid_long_pkt_set_ota_data_len
    - FU_DEVICE
    - FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
    - fu_struct_telink_dfu_hid_long_pkt_new
    - g_autoptr
    - fu_telink_dfu_hid_device_write
    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:252,1
    - Dst: fu_struct_telink_dfu_end_check_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:252,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:253,1
    - Dst: fu_struct_telink_dfu_end_check_set_pkt_index
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:256,1
    - Dst: FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:257,1
    - Dst: fu_struct_telink_dfu_end_check_set_inverted_pkt_index
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:258,1
    - Dst: fu_struct_telink_dfu_end_check_set_inverted_pkt_index
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:260,1
    - Dst: fu_telink_dfu_hid_device_create_packet
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:261,1
    - Dst: FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:267,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:268,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:269,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:270,1
    - Dst: fu_struct_telink_dfu_hid_pkt_get_payload
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:271,1
    - Dst: fu_struct_telink_dfu_hid_pkt_payload_set_crc
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:272,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:273,1
    - Dst: fu_struct_telink_dfu_hid_long_pkt_set_payload_1
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:274,1
    - Dst: fu_telink_dfu_hid_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:278,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: 248
    functionDepth: 7
    functionLinenumber: 248
    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_struct_telink_dfu_hid_long_pkt_set_payload_1
    - fu_telink_dfu_hid_device_create_packet
    - fu_struct_telink_dfu_hid_pkt_get_payload
    - fu_device_sleep
    - fu_struct_telink_dfu_hid_long_pkt_set_ota_data_len
    - fu_struct_telink_dfu_end_check_set_pkt_index
    - FU_DEVICE
    - fu_struct_telink_dfu_hid_pkt_payload_set_crc
    - FU_TELINK_DEVICE_WINDOWS_TOOL_VERSION
    - fu_struct_telink_dfu_end_check_set_inverted_pkt_index
    - fu_struct_telink_dfu_hid_long_pkt_new
    - g_autoptr
    - fu_struct_telink_dfu_end_check_new
    - fu_telink_dfu_hid_device_write
    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: 8
    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_device_add_flag
    - fu_telink_dfu_hid_device_write_blocks
    - fu_progress_add_step
    - fu_chunk_array_new_from_bytes
    - fu_progress_step_done
    - fu_telink_dfu_hid_device_ota_stop
    - FU_DEVICE
    - g_autoptr
    - fu_chunk_array_length
    - fu_telink_dfu_hid_device_ota_start
    - fu_progress_get_child
    - fu_progress_set_id
    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: 2
    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: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:342,1
    - Dst: fu_telink_dfu_hid_device_write_blob
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:345,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: 346
      start: 331
    functionDepth: 9
    functionLinenumber: 331
    functionLinenumberEnd: 346
    functionName: fu_telink_dfu_hid_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_image_by_id_bytes
    - g_autoptr
    - FU_TELINK_DFU_HID_DEVICE
    - fu_telink_dfu_hid_device_write_blob
    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:351,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:352,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:353,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:354,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:355,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 348
    functionDepth: 3
    functionLinenumber: 348
    functionLinenumberEnd: 357
    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 *device, FuProgress
      *progress)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_TELINK_DFU_HID_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:365,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:366,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:371,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:372,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:373,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-hid-device.c:374,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:391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 396
    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_strcmp0
    - g_set_error
    - fu_strtoull
    - g_set_error_literal
    - g_strsplit
    - g_strv_length
    - g_auto
    - FU_TELINK_DFU_HID_DEVICE
    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_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: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTelinkDfuHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 398
    functionDepth: 6
    functionLinenumber: 398
    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_add_flag
    - fu_device_set_remove_delay
    - FU_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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: 9
    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_usb_device_get_interfaces
    - FU_DEVICE_CLASS
    - fu_hid_device_set_interface
    - FU_DEVICE
    - FU_HID_DEVICE
    - fu_hid_device_set_ep_addr_out
    - FU_USB_DEVICE
    - g_autoptr
    - FU_TELINK_DFU_HID_DEVICE
    - fu_hid_device_set_ep_addr_in
    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:
    - g_warning
    - sscanf
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_telink_dfu_parse_image_version(const gchar *version, FwupdVersionFormat
      ver_format)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:43,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:43,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:44,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:47,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:50,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:54,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:59,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:65,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:72,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:79,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:80,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:82,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:84,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:85,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:86,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:93,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:94,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:94,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:97,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:100,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:101,1
    - Dst: fu_telink_dfu_parse_image_version
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:102,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:103,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:103,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 6
    argNames:
    - self
    - archive
    - json_obj
    - i
    - flags
    - error
    argTypes:
    - FuTelinkDfuArchive*
    - FuFirmware*
    - FwupdJsonObject*
    - guint
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 107
    functionName: fu_telink_dfu_archive_load_file
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_addr
    - fu_firmware_set_version_raw
    - g_strcmp0
    - fu_firmware_set_id
    - g_debug
    - fu_firmware_add_image
    - fu_firmware_set_version
    - fu_firmware_get_image_by_id_bytes
    - g_set_error_literal
    - FU_FIRMWARE
    - fu_firmware_set_idx
    - fu_firmware_new
    - g_strdup_printf
    - fu_firmware_parse_bytes
    - fwupd_json_object_get_string
    - fu_telink_dfu_parse_image_version
    - g_autoptr
    - fwupd_json_object_get_integer_with_default
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_telink_dfu_archive_load_file(FuTelinkDfuArchive *self,\n\t\t\t\tFuFirmware
      *archive,\n\t\t\t\tFwupdJsonObject *json_obj,\n\t\t\t\tguint i,\n\t\t\t\tFuFirmwareParseFlags
      flags,\n\t\t\t\tGError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_TELINK_DFU_ARCHIVE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:115,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:117,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:121,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:121,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:124,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:125,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:126,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:129,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:134,1
    - Dst: fwupd_json_parser_load_from_bytes
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:137,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:142,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:145,1
    - Dst: fwupd_json_object_has_node
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:148,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:149,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:157,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:164,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:170,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:173,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:176,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:177,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:183,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:184,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:185,1
    - Dst: fu_telink_dfu_archive_load_file
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:188,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 109
    functionDepth: 8
    functionLinenumber: 109
    functionLinenumberEnd: 199
    functionName: fu_telink_dfu_archive_parse
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - fwupd_json_parser_load_from_bytes
    - fwupd_json_parser_set_max_quoted
    - g_autoptr
    - fwupd_json_array_get_object
    - fwupd_json_parser_set_max_items
    - g_debug
    - fwupd_json_array_get_size
    - fu_firmware_get_image_by_id_bytes
    - g_set_error_literal
    - g_prefix_error_literal
    - fwupd_json_object_get_array
    - fu_telink_dfu_archive_load_file
    - fwupd_json_parser_new
    - fwupd_json_node_get_object
    - FU_TELINK_DFU_ARCHIVE
    - FU_FIRMWARE_CLASS
    - fwupd_json_object_has_node
    - fwupd_json_object_get_integer_with_default
    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:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:204,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTelinkDfuArchive*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: fu_telink_dfu_archive_init
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-archive.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    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:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTelinkDfuArchiveClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 212
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:31,1
    - Dst: fu_struct_telink_dfu_ble_pkt_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:31,1
    - Dst: fu_struct_telink_dfu_ble_pkt_set_preamble
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:32,1
    - Dst: fu_struct_telink_dfu_ble_pkt_set_payload
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:34,1
    - Dst: fu_crc16_safe
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:37,1
    - Dst: fu_struct_telink_dfu_ble_pkt_set_crc
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:45,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - preamble
    - buf
    - bufsz
    - error
    argTypes:
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 24
    functionDepth: 5
    functionLinenumber: 24
    functionLinenumberEnd: 47
    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
    - fu_struct_telink_dfu_ble_pkt_new
    - g_steal_pointer
    - fu_struct_telink_dfu_ble_pkt_set_payload
    - fu_crc16_safe
    - fu_struct_telink_dfu_ble_pkt_set_preamble
    - g_autoptr
    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:56,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:57,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:57,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:59,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:60,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:63,1
    - Dst: fu_telink_dfu_ble_device_create_packet
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:66,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:67,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:68,1
    - Dst: fu_bluez_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:72,1
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:72,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
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:80,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:84,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuTelinkDfuBleDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 49
    functionDepth: 6
    functionLinenumber: 49
    functionLinenumberEnd: 86
    functionName: fu_telink_dfu_ble_device_write_blocks
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_bluez_device_write
    - fu_device_sleep
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - fu_telink_dfu_ble_device_create_packet
    - FU_BLUEZ_DEVICE
    - fu_progress_step_done
    - FU_DEVICE
    - fu_chunk_get_data
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:91,1
    - Dst: fu_telink_dfu_ble_device_create_packet
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:94,1
    - Dst: fu_bluez_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:97,1
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:97,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:104,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTelinkDfuBleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 6
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: fu_telink_dfu_ble_device_ota_start
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_bluez_device_write
    - fu_device_sleep
    - FU_BLUEZ_DEVICE
    - fu_telink_dfu_ble_device_create_packet
    - FU_DEVICE
    - g_autoptr
    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:111,1
    - Dst: fu_struct_telink_dfu_end_check_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:112,1
    - Dst: fu_struct_telink_dfu_end_check_set_pkt_index
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:116,1
    - Dst: fu_struct_telink_dfu_end_check_set_inverted_pkt_index
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:117,1
    - Dst: fu_telink_dfu_ble_device_create_packet
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:118,1
    - Dst: fu_bluez_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:124,1
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:124,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:131,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - number_chunks
    - error
    argTypes:
    - FuTelinkDfuBleDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 108
    functionDepth: 6
    functionLinenumber: 108
    functionLinenumberEnd: 133
    functionName: fu_telink_dfu_ble_device_ota_stop
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_bluez_device_write
    - fu_device_sleep
    - FU_BLUEZ_DEVICE
    - fu_telink_dfu_ble_device_create_packet
    - fu_struct_telink_dfu_end_check_set_pkt_index
    - FU_DEVICE
    - fu_struct_telink_dfu_end_check_set_inverted_pkt_index
    - g_autoptr
    - fu_struct_telink_dfu_end_check_new
    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:141,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:142,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:145,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:146,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:147,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:148,1
    - Dst: fu_telink_dfu_ble_device_create_packet
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:151,1
    - Dst: fu_bluez_device_write
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:157,1
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:157,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:162,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:162,1
    - Dst: fu_telink_dfu_ble_device_ota_start
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:165,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:167,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:170,1
    - Dst: fu_telink_dfu_ble_device_write_blocks
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:174,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:176,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:179,1
    - Dst: fu_telink_dfu_ble_device_ota_stop
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:182,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:182,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:184,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:187,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:187,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - self
    - blob
    - progress
    - error
    argTypes:
    - FuTelinkDfuBleDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 135
    functionDepth: 7
    functionLinenumber: 135
    functionLinenumberEnd: 189
    functionName: fu_telink_dfu_ble_device_write_blob
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_bluez_device_write
    - fu_device_add_flag
    - fu_progress_add_step
    - fu_device_sleep
    - fu_chunk_array_new_from_bytes
    - fu_progress_get_child
    - FU_BLUEZ_DEVICE
    - fu_telink_dfu_ble_device_create_packet
    - fu_progress_step_done
    - FU_DEVICE
    - fu_telink_dfu_ble_device_ota_stop
    - fu_telink_dfu_ble_device_write_blocks
    - fu_chunk_array_length
    - g_autoptr
    - fu_telink_dfu_ble_device_ota_start
    - fu_progress_set_id
    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:198,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:199,1
    - Dst: fu_zip_firmware_new
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:199,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:200,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:201,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:204,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:207,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:213,1
    - Dst: fu_telink_dfu_ble_device_write_blob
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:216,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: 217
      start: 191
    functionDepth: 8
    functionLinenumber: 191
    functionLinenumberEnd: 217
    functionName: fu_telink_dfu_ble_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_telink_dfu_ble_device_write_blob
    - fu_firmware_get_stream
    - fu_firmware_parse_stream
    - fu_firmware_get_image_by_id_bytes
    - fu_zip_firmware_new
    - FU_TELINK_DFU_BLE_DEVICE
    - g_autoptr
    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:222,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:223,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:224,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:225,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:226,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 228
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:233,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:233,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:234,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:234,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:235,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:235,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:236,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:236,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:237,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:237,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:238,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:238,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:239,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:239,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:240,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTelinkDfuBleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 230
    functionDepth: 6
    functionLinenumber: 230
    functionLinenumberEnd: 241
    functionName: fu_telink_dfu_ble_device_init
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - FU_DEVICE
    - fu_device_set_vendor
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTelinkDfuBleDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 249
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-plugin.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 39
    functionName: fu_telink_dfu_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/telink-dfu/fu-telink-dfu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_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:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTelinkDfuPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    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:16,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:18,1
    - Dst: fu_firmware_roundtrip_from_filename
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:19,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:23,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 11
    functionDepth: 7
    functionLinenumber: 11
    functionLinenumberEnd: 25
    functionName: fu_bnr_dp_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - fu_firmware_roundtrip_from_filename
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    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:30,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:31,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:32,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:33,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/bnr-dp/fu-self-test.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: main
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-self-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_type_ensure
    - 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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 35
    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
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_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:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBnrDpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:46,1
    - Dst: fu_struct_bnr_dp_aux_request_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:47,1
    - Dst: fu_struct_bnr_dp_aux_command_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:47,1
    - Dst: fu_struct_bnr_dp_aux_command_set_module_number
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:49,1
    - Dst: fu_struct_bnr_dp_aux_command_set_opcode
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:50,1
    - Dst: fu_struct_bnr_dp_aux_request_set_command
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:52,1
    - Dst: fu_struct_bnr_dp_aux_request_set_data_len
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:54,1
    - Dst: fu_struct_bnr_dp_aux_request_set_offset
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:55,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:57,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: 58
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 58
    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_command_new
    - fu_struct_bnr_dp_aux_command_set_opcode
    - 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
    - fu_struct_bnr_dp_aux_request_set_command
    - fu_struct_bnr_dp_aux_command_set_module_number
    - g_autoptr
    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:64,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:68,1
    - Dst: fu_bnr_dp_aux_error_to_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - st_status
    - error
    argTypes:
    - FuStructBnrDpAuxStatus*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 77
    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_bnr_dp_aux_error_to_string
    - fu_struct_bnr_dp_aux_status_get_error
    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:82,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - st_status
    - error
    argTypes:
    - FuStructBnrDpAuxStatus*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 90
    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:101,1
    - Dst: fu_struct_bnr_dp_aux_tx_header_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:101,1
    - Dst: fu_struct_bnr_dp_aux_tx_header_set_request
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:103,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:104,1
    - Dst: fu_xor8
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:107,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:111,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:111,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:117,1
    - Dst: fu_xor8
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:121,1
    - Dst: fu_struct_bnr_dp_aux_tx_header_set_checksum
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:123,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:126,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:126,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: 132
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 132
    functionName: fu_bnr_dp_device_write_request
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_bnr_dp_aux_tx_header_new
    - fu_dpaux_device_write
    - fu_xor8
    - g_prefix_error_literal
    - FU_DPAUX_DEVICE
    - fu_struct_bnr_dp_aux_tx_header_set_request
    - fu_struct_bnr_dp_aux_tx_header_set_checksum
    - 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: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:143,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:146,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:146,1
    - Dst: fu_struct_bnr_dp_aux_rx_header_parse
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:154,1
    - Dst: fu_struct_bnr_dp_aux_rx_header_get_response
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:158,1
    - Dst: fu_xor8
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:162,1
    - Dst: fu_struct_bnr_dp_aux_response_get_data_len
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:165,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:167,1
    - Dst: fu_struct_bnr_dp_aux_response_get_data_len
      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:174,1
    - Dst: fu_struct_bnr_dp_aux_response_get_data_len
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:174,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:176,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:176,1
    - Dst: fu_xor8
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:184,1
    - Dst: fu_struct_bnr_dp_aux_rx_header_get_checksum
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:187,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:188,1
    - Dst: fu_struct_bnr_dp_aux_rx_header_get_checksum
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:193,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - self
    - data
    - error
    argTypes:
    - FuBnrDpDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 199
    functionName: fu_bnr_dp_device_read_response
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_bnr_dp_aux_rx_header_get_response
    - fu_struct_bnr_dp_aux_rx_header_parse
    - fu_xor8
    - g_set_error
    - fu_dpaux_device_read
    - g_byte_array_set_size
    - FU_DPAUX_DEVICE
    - g_autoptr
    - fu_struct_bnr_dp_aux_rx_header_get_checksum
    - fu_struct_bnr_dp_aux_response_get_data_len
    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:206,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:209,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:209,1
    - Dst: fu_struct_bnr_dp_aux_status_parse
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:217,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBnrDpDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 222
    functionName: fu_bnr_dp_device_read_status
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_dpaux_device_read
    - fu_struct_bnr_dp_aux_status_parse
    - 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:227,1
    - Dst: fu_bnr_dp_device_read_status
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:229,1
    - Dst: FU_BNR_DP_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:229,1
    - Dst: fu_bnr_dp_device_eval_result
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:233,1
    - Dst: fu_bnr_dp_device_is_done
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 237
    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_is_done
    - fu_bnr_dp_device_eval_result
    - fu_bnr_dp_device_read_status
    - g_autoptr
    - FU_BNR_DP_DEVICE
    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:242,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:242,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:249,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBnrDpDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 256
    functionName: fu_bnr_dp_device_poll_status
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_retry_full
    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:265,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:266,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:266,1
    - Dst: fu_bnr_dp_device_build_request
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:268,1
    - Dst: fu_bnr_dp_device_write_request
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:271,1
    - Dst: fu_bnr_dp_device_poll_status
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:274,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:275,1
    - Dst: fu_bnr_dp_opcodes_to_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:277,1
    - Dst: fu_bnr_dp_module_number_to_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:278,1
    - Dst: fu_bnr_dp_device_read_response
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:282,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:286,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: 287
      start: 258
    functionDepth: 4
    functionLinenumber: 258
    functionLinenumberEnd: 287
    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_poll_status
    - fu_bnr_dp_opcodes_to_string
    - fu_bnr_dp_device_write_request
    - fu_bnr_dp_device_build_request
    - g_steal_pointer
    - g_prefix_error
    - g_byte_array_new
    - fu_bnr_dp_device_read_response
    - fu_bnr_dp_module_number_to_string
    - g_autoptr
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:301,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:301,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:306,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:316,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:321,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:330,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:331,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:334,1
    - Dst: fu_bnr_dp_device_exec_cmd
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:336,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:339,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:341,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:344,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 7
    argNames:
    - self
    - opcode
    - module_number
    - offset
    - size
    - progress
    - error
    argTypes:
    - FuBnrDpDevice*
    - FuBnrDpOpcodes
    - FuBnrDpModuleNumber
    - gsize
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 289
    functionDepth: 5
    functionLinenumber: 289
    functionLinenumberEnd: 345
    functionName: fu_bnr_dp_device_read_data
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - g_byte_array_sized_new
    - g_set_error
    - g_steal_pointer
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_bnr_dp_device_exec_cmd
    - g_byte_array_append
    - fu_size_checked_inc
    - g_autoptr
    - fu_progress_set_id
    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:353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - buf
    - bufsz
    - cur_offset
    argTypes:
    - guint8*
    - gsize
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 367
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:382,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:387,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:397,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:402,1
    - Dst: fu_bnr_dp_device_build_request
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:411,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:417,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:421,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:422,1
    - Dst: fu_bnr_dp_device_can_skip_chunk
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:427,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:428,1
    - Dst: fu_struct_bnr_dp_aux_request_set_offset
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:432,1
    - Dst: fu_bnr_dp_device_write_request
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:433,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:438,1
    - Dst: fu_bnr_dp_device_poll_status
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:442,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:443,1
    - Dst: fu_bnr_dp_opcodes_to_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:445,1
    - Dst: fu_bnr_dp_module_number_to_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:446,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:451,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    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: 455
      start: 369
    functionDepth: 4
    functionLinenumber: 369
    functionLinenumberEnd: 455
    functionName: fu_bnr_dp_device_write_data
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_bnr_dp_device_poll_status
    - fu_bnr_dp_device_can_skip_chunk
    - fu_bnr_dp_opcodes_to_string
    - fu_bnr_dp_device_write_request
    - fu_bnr_dp_device_build_request
    - g_set_error
    - fu_progress_set_steps
    - g_prefix_error_literal
    - fu_progress_step_done
    - fu_struct_bnr_dp_aux_request_set_offset
    - g_prefix_error
    - fu_bnr_dp_module_number_to_string
    - fu_size_checked_inc
    - g_autoptr
    - fu_progress_set_id
    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:462,1
    - Dst: fu_bnr_dp_device_exec_cmd
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:464,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:470,1
    - Dst: fu_struct_bnr_dp_factory_data_parse
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - module_number
    - error
    argTypes:
    - FuBnrDpDevice*
    - FuBnrDpModuleNumber
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 457
    functionDepth: 5
    functionLinenumber: 457
    functionLinenumberEnd: 475
    functionName: fu_bnr_dp_device_factory_data
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_bnr_dp_device_exec_cmd
    - g_autoptr
    - fu_struct_bnr_dp_factory_data_parse
    - g_prefix_error_literal
    linkageType: ''
    returnType: FuStructBnrDpFactoryData
    signature: "FuStructBnrDpFactoryData *\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:481,1
    - Dst: fu_bnr_dp_device_exec_cmd
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:483,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:489,1
    - Dst: fu_struct_bnr_dp_payload_header_parse
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - module_number
    - error
    argTypes:
    - FuBnrDpDevice*
    - FuBnrDpModuleNumber
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 478
    functionDepth: 5
    functionLinenumber: 478
    functionLinenumberEnd: 494
    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
    - fu_bnr_dp_device_exec_cmd
    - g_autoptr
    - g_prefix_error_literal
    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:500,1
    - Dst: fu_bnr_dp_device_exec_cmd
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:502,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:508,1
    - Dst: fu_struct_bnr_dp_info_flags_parse
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - module_number
    - error
    argTypes:
    - FuBnrDpDevice*
    - FuBnrDpModuleNumber
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 497
    functionDepth: 5
    functionLinenumber: 497
    functionLinenumberEnd: 513
    functionName: fu_bnr_dp_device_info_flags
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_bnr_dp_device_exec_cmd
    - fu_struct_bnr_dp_info_flags_parse
    - g_autoptr
    - g_prefix_error_literal
    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:518,1
    - Dst: fu_bnr_dp_device_build_request
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:520,1
    - Dst: fu_bnr_dp_device_write_request
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - module_number
    - error
    argTypes:
    - FuBnrDpDevice*
    - FuBnrDpModuleNumber
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 515
    functionDepth: 3
    functionLinenumber: 515
    functionLinenumberEnd: 529
    functionName: fu_bnr_dp_device_reset
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_bnr_dp_device_write_request
    - fu_bnr_dp_device_build_request
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bnr_dp_device_reset(FuBnrDpDevice *self, FuBnrDpModuleNumber
      module_number, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_BNR_DP_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:534,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:541,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:542,1
    - Dst: fu_dpaux_device_set_dpcd_offset
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:545,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:545,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:549,1
    - Dst: fu_dpaux_device_get_dpcd_ieee_oui
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:553,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:553,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:554,1
    - Dst: fu_dpaux_device_get_dpcd_dev_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:554,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:554,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:556,1
    - Dst: fu_bnr_dp_device_fw_header
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:563,1
    - Dst: fu_bnr_dp_device_factory_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:567,1
    - Dst: fu_bnr_dp_version_from_header
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:572,1
    - Dst: fu_bnr_dp_version_to_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:574,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:575,1
    - Dst: fu_struct_bnr_dp_factory_data_get_identification
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:577,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:580,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:580,1
    - Dst: fu_struct_bnr_dp_factory_data_get_serial
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:582,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:585,1
    - Dst: fu_device_add_instance_u32
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:587,1
    - Dst: fu_bnr_dp_effective_product_num
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:587,1
    - Dst: fu_device_add_instance_u32
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:588,1
    - Dst: fu_bnr_dp_effective_compat_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:590,1
    - Dst: fu_struct_bnr_dp_factory_data_get_hw_rev
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:592,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:595,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:597,1
    - Dst: fu_dpaux_device_get_dpcd_ieee_oui
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:597,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:597,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:598,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:598,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:600,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:602,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:604,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 531
    functionDepth: 7
    functionLinenumber: 531
    functionLinenumberEnd: 612
    functionName: fu_bnr_dp_device_setup
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_strdup_printf
    - fu_struct_bnr_dp_factory_data_get_hw_rev
    - fu_bnr_dp_effective_compat_id
    - fu_bnr_dp_device_factory_data
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - g_set_error_literal
    - fu_struct_bnr_dp_factory_data_get_serial
    - FU_DPAUX_DEVICE
    - fu_dpaux_device_get_dpcd_ieee_oui
    - FU_BNR_DP_DEVICE
    - fu_dpaux_device_set_dpcd_offset
    - fu_bnr_dp_version_to_string
    - fu_device_add_instance_u32
    - fu_device_set_serial
    - fu_device_set_name
    - FU_DEVICE
    - fu_bnr_dp_device_fw_header
    - FU_DEVICE_CLASS
    - fu_bnr_dp_version_from_header
    - g_strcmp0
    - fu_dpaux_device_get_dpcd_dev_id
    - fu_bnr_dp_effective_product_num
    - fu_struct_bnr_dp_factory_data_get_identification
    - g_autoptr
    - fu_device_build_vendor_id
    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:617,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:621,1
    - Dst: fu_bnr_dp_firmware_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:621,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:622,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:623,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:624,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:625,1
    - Dst: fu_bnr_dp_device_factory_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:628,1
    - Dst: fu_bnr_dp_device_fw_header
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:631,1
    - Dst: fu_struct_bnr_dp_payload_header_get_flags
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:635,1
    - Dst: fu_bnr_dp_device_read_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:642,1
    - Dst: fu_crc16
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:652,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:654,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:662,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:665,1
    - Dst: fu_bnr_dp_firmware_parse_from_device
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:668,1
    - Dst: FU_BNR_DP_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:668,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:675,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 614
    functionDepth: 6
    functionLinenumber: 614
    functionLinenumberEnd: 676
    functionName: fu_bnr_dp_device_read_firmware
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_bnr_dp_device_factory_data
    - fu_bnr_dp_device_read_data
    - g_bytes_new
    - g_set_error
    - fu_crc16
    - g_steal_pointer
    - fu_firmware_set_bytes
    - fu_bnr_dp_firmware_parse_from_device
    - FU_BNR_DP_FIRMWARE
    - fu_bnr_dp_device_fw_header
    - fu_bnr_dp_firmware_new
    - g_autoptr
    - fu_struct_bnr_dp_payload_header_get_flags
    - FU_BNR_DP_DEVICE
    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:681,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:682,1
    - Dst: fu_bnr_dp_device_read_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:684,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 678
    functionDepth: 6
    functionLinenumber: 678
    functionLinenumberEnd: 694
    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_read_data
    - g_autoptr
    - g_bytes_new
    - FU_BNR_DP_DEVICE
    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:703,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:704,1
    - Dst: fu_bnr_dp_firmware_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:704,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:705,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:706,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:707,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:708,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:709,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:712,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:716,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:719,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:721,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:723,1
    - Dst: fu_bnr_dp_device_fw_header
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:729,1
    - Dst: fu_bnr_dp_firmware_patch_boot_counter
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:732,1
    - Dst: FU_BNR_DP_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:733,1
    - Dst: fu_struct_bnr_dp_payload_header_get_counter
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:734,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:736,1
    - Dst: fu_bnr_dp_device_factory_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:742,1
    - Dst: fu_struct_bnr_dp_payload_header_parse
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:745,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:745,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:746,1
    - Dst: fu_bnr_dp_firmware_check
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:751,1
    - Dst: FU_BNR_DP_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:751,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:759,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: 760
      start: 696
    functionDepth: 6
    functionLinenumber: 696
    functionLinenumberEnd: 760
    functionName: fu_bnr_dp_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_bnr_dp_payload_header_parse
    - fu_bnr_dp_device_factory_data
    - fu_firmware_get_bytes
    - fu_firmware_parse_stream
    - g_bytes_get_data
    - fu_bnr_dp_firmware_check
    - fu_device_locker_new
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_firmware_set_bytes
    - fu_bnr_dp_firmware_patch_boot_counter
    - FU_BNR_DP_FIRMWARE
    - fu_bnr_dp_firmware_new
    - fu_bnr_dp_device_fw_header
    - fu_struct_bnr_dp_payload_header_get_counter
    - g_bytes_get_size
    - g_autoptr
    - FU_BNR_DP_DEVICE
    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:769,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:772,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:773,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:774,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:775,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:778,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:779,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:780,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:781,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:784,1
    - Dst: fu_bnr_dp_device_info_flags
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:789,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:791,1
    - Dst: fu_bnr_dp_device_write_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:798,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:802,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:803,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:804,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:806,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:809,1
    - Dst: fu_bnr_dp_device_read_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:812,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:817,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:820,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:823,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:823,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:824,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:831,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:834,1
    - Dst: fu_bnr_dp_device_reset
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:837,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:838,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:843,1
    - Dst: fu_bnr_dp_device_info_flags
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:846,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:848,1
    - Dst: fu_struct_bnr_dp_info_flags_get_inner
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:853,1
    - Dst: fu_struct_bnr_dp_info_flags_get_inner
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:855,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:858,1
    - Dst: fu_bnr_dp_boot_area_to_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:863,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:867,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: 869
      start: 762
    functionDepth: 6
    functionLinenumber: 762
    functionLinenumberEnd: 869
    functionName: fu_bnr_dp_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_bnr_dp_device_read_data
    - fu_bnr_dp_device_info_flags
    - g_prefix_error_literal
    - fu_struct_bnr_dp_info_flags_get_inner
    - fu_bnr_dp_device_reset
    - fu_bnr_dp_boot_area_to_string
    - FU_BNR_DP_DEVICE
    - fu_progress_add_step
    - fu_device_sleep
    - g_bytes_get_data
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_firmware_get_bytes_with_patches
    - fu_bnr_dp_device_write_data
    - g_set_error
    - g_bytes_get_size
    - g_autoptr
    - fu_memcmp_safe
    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:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 871
    functionDepth: 1
    functionLinenumber: 871
    functionLinenumberEnd: 875
    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 *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:880,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:881,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:882,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:883,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:884,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 877
    functionDepth: 3
    functionLinenumber: 877
    functionLinenumberEnd: 886
    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 *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:891,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:891,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:892,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:892,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:893,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:893,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:894,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:894,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:895,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:895,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:896,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:896,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:897,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:897,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:898,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:898,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:899,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:899,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:900,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:900,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:901,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c:901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBnrDpDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 888
    functionDepth: 6
    functionLinenumber: 888
    functionLinenumberEnd: 902
    functionName: fu_bnr_dp_device_init
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_firmware_size_max
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_set_vendor
    - fu_device_retry_add_recovery
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBnrDpDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 916
    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_strtoull
    - fu_struct_bnr_dp_payload_header_get_version
    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_parent_product_num
    - fu_struct_bnr_dp_factory_data_get_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_xmlb_builder_insert_kx
    - FU_BNR_DP_FIRMWARE
    - 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:
    - firmware
    - 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 *firmware, 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:
    - xb_node_get_attr_as_uint
    - g_set_error
    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_strdup
    - g_set_error
    - 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:
    - fu_firmware_set_version_raw
    - g_strcmp0
    - fu_bnr_dp_firmware_attribute_parse_string
    - g_set_error
    - fu_strtoull
    - g_set_error_literal
    - FU_FIRMWARE
    - xb_node_get_element
    - strlen
    - fu_bnr_dp_firmware_attribute_parse_u64
    - g_autoptr
    - xb_silo_get_root
    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_input_stream_compute_sum16
    - fu_bnr_dp_firmware_checksum_finish
    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:236,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:239,1
    - Dst: fu_input_stream_compute_crc16
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:250,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:253,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:262,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:262,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: 267
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 267
    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_input_stream_size
    - fu_input_stream_compute_crc16
    - FU_FIRMWARE
    - fu_bnr_dp_firmware_stream_checksum
    - fu_firmware_set_stream
    - g_autoptr
    - 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:275,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:279,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:280,1
    - Dst: xb_builder_source_new
      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_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: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:284,1
    - Dst: fu_input_stream_find
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:288,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: 269
    functionDepth: 4
    functionLinenumber: 269
    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_u8
    - xb_builder_compile
    - fu_input_stream_read_bytes
    - xb_builder_source_new
    - xb_builder_source_load_bytes
    - fu_bnr_dp_firmware_payload_parse
    - fu_input_stream_find
    - xb_builder_import_source
    - fwupd_error_convert
    - FU_BNR_DP_FIRMWARE
    - fu_bnr_dp_firmware_header_parse
    - g_autoptr
    - xb_builder_new
    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_strdup
    - fu_bnr_dp_effective_compat_id
    - fu_bnr_dp_version_from_header
    - fu_firmware_set_version_raw
    - fu_firmware_get_bytes_with_patches
    - fu_bnr_dp_firmware_buf_checksum
    - g_bytes_get_data
    - FU_FIRMWARE
    - fu_bnr_dp_effective_product_num
    - g_date_time_new_now_local
    - g_date_time_format
    - g_bytes_get_size
    - fu_struct_bnr_dp_factory_data_get_identification
    - g_autoptr
    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:
    - fu_firmware_get_version_raw
    - fu_byte_array_append_bytes
    - fu_firmware_get_bytes_with_patches
    - g_set_error_literal
    - g_steal_pointer
    - g_strdup_printf
    - g_byte_array_new
    - strlen
    - FU_BNR_DP_FIRMWARE
    - xb_builder_node_insert
    - g_byte_array_append
    - g_autoptr
    - xb_builder_node_export
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_bnr_dp_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 6
    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_safe
      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:458,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:459,1
    - Dst: fu_struct_bnr_dp_payload_header_get_crc
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:464,1
    - Dst: g_info
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:470,1
    - Dst: fu_struct_bnr_dp_payload_header_set_counter
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:471,1
    - Dst: fu_struct_bnr_dp_payload_header_set_flags
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:474,1
    - Dst: fu_struct_bnr_dp_payload_header_get_flags
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:476,1
    - Dst: fu_crc16_safe
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:480,1
    - Dst: fu_struct_bnr_dp_payload_header_set_crc
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:488,1
    - Dst: fu_struct_bnr_dp_payload_header_to_bytes
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:490,1
    - Dst: fu_firmware_add_patch
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:491,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:491,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - self
    - active_boot_counter
    - error
    argTypes:
    - FuBnrDpFirmware*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 421
    functionDepth: 5
    functionLinenumber: 421
    functionLinenumberEnd: 494
    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_parse
    - fu_firmware_add_patch
    - fu_struct_bnr_dp_payload_header_to_bytes
    - fu_struct_bnr_dp_payload_header_get_crc
    - g_info
    - fu_firmware_get_bytes
    - g_set_error
    - g_bytes_get_data
    - FU_FIRMWARE
    - g_set_error_literal
    - fu_struct_bnr_dp_payload_header_set_counter
    - g_bytes_get_size
    - fu_crc16_safe
    - g_autoptr
    - fu_struct_bnr_dp_payload_header_set_flags
    - fu_struct_bnr_dp_payload_header_set_crc
    - fu_struct_bnr_dp_payload_header_get_flags
    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:512,1
    - Dst: fu_bnr_dp_version_from_header
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:514,1
    - Dst: fu_bnr_dp_version_to_string
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:516,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:517,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:517,1
    - Dst: g_set_error
      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:524,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:524,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:528,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:530,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:530,1
    - Dst: fu_bnr_dp_effective_product_num
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:538,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:540,1
    - Dst: fu_bnr_dp_effective_compat_id
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:551,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:553,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: 564
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 564
    functionName: fu_bnr_dp_firmware_check
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 1
    functionsReached:
    - fu_bnr_dp_effective_compat_id
    - fu_bnr_dp_version_from_header
    - fu_firmware_get_version_raw
    - g_set_error
    - fu_bnr_dp_version_to_string
    - FU_FIRMWARE
    - fu_bnr_dp_effective_product_num
    - g_warning
    - fu_firmware_get_version
    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:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:569,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBnrDpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 570
    functionName: fu_bnr_dp_firmware_init
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:575,1
    - Dst: g_free
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:577,1
    - Dst: g_free
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:578,1
    - Dst: g_free
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:579,1
    - Dst: g_free
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:580,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 583
    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:588,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBnrDpFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 597
    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:602,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 603
    functionName: fu_bnr_dp_firmware_new
    functionSourceFile: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-firmware.c
    functionUses: 2
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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: fu_struct_h_link_header_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:
    - fu_struct_h_link_header_unref
    - 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:
    - g_return_val_if_fail
    - g_strdup
    - g_new0
    - g_steal_pointer
    - fu_struct_h_link_header_set_msg_name_size
    - strlen
    - g_byte_array_ref
    - fu_struct_h_link_header_set_payload_size
    - g_autoptr
    - fu_struct_h_link_header_new
    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:
    - g_return_val_if_fail
    - fu_huddly_usb_hlink_msg_new
    - g_byte_array_new
    - strlen
    - g_byte_array_append
    - g_autoptr
    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: fu_byte_array_append_array
      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: 1
    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:
    - g_return_val_if_fail
    - fu_byte_array_append_array
    - g_steal_pointer
    - g_byte_array_new
    - strlen
    - g_byte_array_append
    - g_autoptr
    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: 3
    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:
    - g_return_val_if_fail
    - g_new0
    - g_byte_array_sized_new
    - fu_struct_h_link_header_get_payload_size
    - g_set_error_literal
    - g_steal_pointer
    - fu_struct_h_link_header_get_msg_name_size
    - fu_struct_h_link_header_parse
    - fu_memcpy_safe
    - g_autoptr
    - 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_udev_subsystem
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-plugin.c:28,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-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: 2
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: fu_huddly_usb_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHuddlyUsbPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    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_strdup
    - g_free
    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_literal
      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_literal
      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: 9
    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:
    - fu_usb_interface_get_endpoints
    - fu_usb_device_get_interfaces
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_usb_interface_get_class
    - fu_usb_endpoint_get_address
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_endpoint_get_direction
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_huddly_usb_device_find_interface(FuHuddlyUsbDevice *self,
      GError **error)
  - BBCount: 5
    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_size_checked_inc
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:101,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - self
    - src
    - progress
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - GByteArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 107
    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_size_checked_inc
    - FU_USB_DEVICE
    - fu_progress_set_id
    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:115,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:115,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: 123
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 123
    functionName: fu_huddly_usb_device_bulk_read
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - fu_usb_device_bulk_transfer
    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:128,1
    - Dst: fu_huddly_usb_hlink_msg_write
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:129,1
    - Dst: fu_huddly_usb_device_bulk_write
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - msg
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - FuHuddlyUsbHLinkMsg*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 5
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: fu_huddly_usb_device_hlink_send
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_huddly_usb_hlink_msg_write
    - fu_huddly_usb_device_bulk_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:139,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:139,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:140,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:142,1
    - Dst: fu_huddly_usb_device_bulk_read
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:143,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:144,1
    - Dst: fu_huddly_usb_hlink_msg_parse
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:147,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:149,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 153
    functionName: fu_huddly_usb_device_hlink_receive
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_huddly_usb_hlink_msg_parse
    - g_byte_array_new
    - fu_huddly_usb_device_bulk_read
    - g_autoptr
    - fu_byte_array_set_size
    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:160,1
    - Dst: fu_huddly_usb_hlink_msg_new_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:161,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:162,1
    - Dst: fu_huddly_usb_device_hlink_send
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - subscription
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 6
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: fu_huddly_usb_device_hlink_subscribe
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_huddly_usb_hlink_msg_new_string
    - g_debug
    - fu_huddly_usb_device_hlink_send
    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:171,1
    - Dst: fu_huddly_usb_hlink_msg_new_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:172,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:173,1
    - Dst: fu_huddly_usb_device_hlink_send
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - subscription
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 166
    functionDepth: 6
    functionLinenumber: 166
    functionLinenumberEnd: 175
    functionName: fu_huddly_usb_device_hlink_unsubscribe
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_huddly_usb_hlink_msg_new_string
    - g_debug
    - fu_huddly_usb_device_hlink_send
    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:181,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:181,1
    - Dst: fu_huddly_usb_device_bulk_write
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:182,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 178
    functionDepth: 5
    functionLinenumber: 178
    functionLinenumberEnd: 187
    functionName: fu_huddly_usb_device_send_reset
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - g_byte_array_new
    - g_autoptr
    - fu_huddly_usb_device_bulk_write
    - g_prefix_error_literal
    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:194,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:194,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:195,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:195,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:198,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:199,1
    - Dst: fu_huddly_usb_device_bulk_write
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:201,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:202,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:206,1
    - Dst: fu_huddly_usb_device_bulk_read
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:207,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:208,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:211,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 190
    functionDepth: 5
    functionLinenumber: 190
    functionLinenumberEnd: 214
    functionName: fu_huddly_usb_device_salute
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_set_size
    - fu_strsafe
    - g_debug
    - g_prefix_error_literal
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - fu_huddly_usb_device_bulk_read
    - g_autoptr
    - fu_huddly_usb_device_bulk_write
    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: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: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:224,1
    - Dst: fu_huddly_usb_device_hlink_subscribe
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:226,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:227,1
    - Dst: fu_huddly_usb_hlink_msg_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:230,1
    - Dst: fu_huddly_usb_device_hlink_send
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:231,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:232,1
    - Dst: fu_huddly_usb_device_hlink_receive
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:235,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:237,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:240,1
    - Dst: fu_msgpack_parse
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:241,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:246,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:248,1
    - Dst: g_regex_split_simple
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:251,1
    - Dst: fu_msgpack_item_get_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:252,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:255,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:255,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:258,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:260,1
    - Dst: fu_huddly_usb_device_set_state
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:263,1
    - Dst: fu_msgpack_item_get_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:263,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 216
    functionDepth: 7
    functionLinenumber: 216
    functionLinenumberEnd: 265
    functionName: fu_huddly_usb_device_ensure_product_info
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_huddly_usb_device_hlink_subscribe
    - fu_device_set_version
    - g_debug
    - fu_huddly_usb_device_hlink_send
    - fu_msgpack_parse
    - fu_msgpack_item_get_string
    - fu_huddly_usb_hlink_msg_new
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_msgpack_map_lookup
    - fu_huddly_usb_device_set_state
    - g_auto
    - g_regex_split_simple
    - 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:270,1
    - Dst: fu_huddly_usb_hlink_msg_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:270,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:271,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:274,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:274,1
    - Dst: fu_huddly_usb_device_hlink_send
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:277,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:279,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:280,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:285,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 267
    functionDepth: 6
    functionLinenumber: 267
    functionLinenumberEnd: 290
    functionName: fu_huddly_usb_device_reboot
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - g_steal_pointer
    - fu_huddly_usb_hlink_msg_new
    - FU_DEVICE
    - g_error_matches
    - g_autoptr
    - g_propagate_error
    - fu_huddly_usb_device_hlink_send
    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:299,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:300,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:301,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:302,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:303,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:304,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:305,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:306,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:309,1
    - Dst: fu_msgpack_item_new_map
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:309,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:310,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:310,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:311,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:311,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:312,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:312,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:313,1
    - Dst: fu_msgpack_item_new_binary_stream
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:313,1
    - Dst: fu_msgpack_write
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:314,1
    - Dst: fu_huddly_usb_hlink_msg_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:315,1
    - Dst: fu_huddly_usb_hlink_msg_write
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:316,1
    - Dst: fu_huddly_usb_device_hlink_subscribe
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:320,1
    - Dst: fu_huddly_usb_device_bulk_write
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:322,1
    - Dst: fu_huddly_usb_device_hlink_receive
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:326,1
    - Dst: fu_msgpack_parse
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:330,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:333,1
    - Dst: fu_msgpack_item_get_integer
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:336,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:338,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:339,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:341,1
    - Dst: fu_msgpack_item_get_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:345,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:349,1
    - Dst: fu_huddly_usb_device_hlink_unsubscribe
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:357,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 5
    argNames:
    - self
    - filename
    - stream
    - progress
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - gchar*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 292
    functionDepth: 7
    functionLinenumber: 292
    functionLinenumberEnd: 358
    functionName: fu_huddly_usb_device_hcp_write_file
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_msgpack_write
    - fu_huddly_usb_device_hlink_subscribe
    - g_set_error
    - fu_msgpack_parse
    - fu_msgpack_item_get_string
    - g_ptr_array_add
    - fu_huddly_usb_hlink_msg_new
    - fu_huddly_usb_device_hlink_unsubscribe
    - fu_huddly_usb_device_hlink_receive
    - fu_msgpack_item_new_string
    - fu_msgpack_item_new_map
    - fu_msgpack_map_lookup
    - fu_huddly_usb_hlink_msg_write
    - g_autoptr
    - fu_msgpack_item_get_integer
    - fu_msgpack_item_new_binary_stream
    - g_ptr_array_new_with_free_func
    - fu_huddly_usb_device_bulk_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: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_HUDDLY_USB_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:363,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:366,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:367,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:368,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:369,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:370,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:371,1
    - Dst: fu_huddly_usb_device_hlink_receive
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:372,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:375,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:375,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:376,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:377,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:384,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:384,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:387,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:387,1
    - Dst: fu_msgpack_parse
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:390,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:393,1
    - Dst: fu_msgpack_item_get_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:396,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:397,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:400,1
    - Dst: fu_msgpack_item_get_integer
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:403,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:405,1
    - Dst: fu_msgpack_map_lookup
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:409,1
    - Dst: fu_msgpack_item_get_boolean
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:412,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:415,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:416,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 360
    functionDepth: 6
    functionLinenumber: 360
    functionLinenumberEnd: 426
    functionName: fu_huddly_usb_device_hpk_done_cb
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_strcmp0
    - g_debug
    - g_set_error
    - fu_msgpack_parse
    - g_steal_pointer
    - fu_msgpack_item_get_string
    - g_prefix_error
    - FU_DEVICE
    - fu_msgpack_map_lookup
    - fu_device_has_flag
    - FU_HUDDLY_USB_DEVICE
    - g_error_matches
    - fu_msgpack_item_get_boolean
    - fu_msgpack_item_get_integer
    - g_propagate_error
    - g_autoptr
    - 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: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:431,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:432,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:432,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:433,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:435,1
    - Dst: fu_msgpack_item_new_map
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:435,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:436,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:436,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:437,1
    - Dst: fu_msgpack_item_new_string
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:437,1
    - Dst: fu_huddly_usb_device_hlink_subscribe
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:439,1
    - Dst: fu_msgpack_write
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:441,1
    - Dst: fu_huddly_usb_hlink_msg_new
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:444,1
    - Dst: fu_huddly_usb_device_hlink_send
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:447,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:450,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:450,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:459,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:459,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:460,1
    - Dst: fu_huddly_usb_device_hlink_unsubscribe
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:464,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - self
    - filename
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 428
    functionDepth: 7
    functionLinenumber: 428
    functionLinenumberEnd: 465
    functionName: fu_huddly_usb_device_hpk_run
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_msgpack_write
    - fu_huddly_usb_device_hlink_subscribe
    - g_debug
    - fu_huddly_usb_device_hlink_send
    - g_ptr_array_add
    - fu_huddly_usb_hlink_msg_new
    - fu_huddly_usb_device_hlink_unsubscribe
    - fu_device_retry_full
    - FU_DEVICE
    - fu_msgpack_item_new_string
    - fu_msgpack_item_new_map
    - fu_device_has_flag
    - g_autoptr
    - g_ptr_array_new_with_free_func
    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:470,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:471,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:472,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 467
    functionDepth: 3
    functionLinenumber: 467
    functionLinenumberEnd: 474
    functionName: fu_huddly_usb_device_to_string
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_bool
    - FU_HUDDLY_USB_DEVICE
    - 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:479,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:480,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:481,1
    - Dst: fu_huddly_usb_device_hcp_write_file
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:484,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:487,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:491,1
    - Dst: fu_huddly_usb_device_hpk_run
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:495,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuHuddlyUsbDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 476
    functionDepth: 8
    functionLinenumber: 476
    functionLinenumberEnd: 501
    functionName: fu_huddly_usb_device_verify
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_huddly_usb_device_hcp_write_file
    - fu_progress_add_step
    - fu_progress_step_done
    - fu_huddly_usb_device_hpk_run
    - fu_progress_get_child
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_huddly_usb_device_verify(FuHuddlyUsbDevice *self, FuProgress
      *progress, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_HUDDLY_USB_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:506,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:509,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:510,1
    - Dst: fu_huddly_usb_device_verify
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:513,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:514,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:519,1
    - Dst: fu_huddly_usb_device_reboot
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:520,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:521,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:526,1
    - Dst: fu_huddly_usb_device_ensure_product_info
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:531,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:532,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:537,1
    - Dst: fu_huddly_usb_device_verify
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:538,1
    - Dst: fu_huddly_usb_device_ensure_product_info
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:541,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:543,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:544,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 503
    functionDepth: 9
    functionLinenumber: 503
    functionLinenumberEnd: 555
    functionName: fu_huddly_usb_device_attach
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_huddly_usb_device_verify
    - g_strcmp0
    - g_debug
    - g_set_error
    - g_prefix_error_literal
    - fu_device_has_flag
    - FU_HUDDLY_USB_DEVICE
    - fu_huddly_usb_device_ensure_product_info
    - fu_huddly_usb_device_reboot
    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:560,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:563,1
    - Dst: fu_huddly_usb_device_find_interface
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 557
    functionDepth: 10
    functionLinenumber: 557
    functionLinenumberEnd: 567
    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:572,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:575,1
    - Dst: fu_huddly_usb_device_send_reset
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:579,1
    - Dst: fu_huddly_usb_device_send_reset
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:581,1
    - Dst: fu_huddly_usb_device_salute
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:583,1
    - Dst: fu_huddly_usb_device_ensure_product_info
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:585,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 569
    functionDepth: 8
    functionLinenumber: 569
    functionLinenumberEnd: 590
    functionName: fu_huddly_usb_device_setup
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_huddly_usb_device_send_reset
    - FU_HUDDLY_USB_DEVICE
    - fu_huddly_usb_device_salute
    - fu_huddly_usb_device_ensure_product_info
    - FU_DEVICE_CLASS
    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:598,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 604
    functionName: fu_huddly_usb_device_cleanup
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - g_clear_object
    - FU_HUDDLY_USB_DEVICE
    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:613,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:616,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:617,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:618,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:619,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:622,1
    - Dst: fu_huddly_usb_device_hcp_write_file
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:627,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:630,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:634,1
    - Dst: fu_huddly_usb_device_hpk_run
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:637,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:639,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:645,1
    - Dst: fu_huddly_usb_device_reboot
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:650,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:652,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: 658
      start: 606
    functionDepth: 8
    functionLinenumber: 606
    functionLinenumberEnd: 658
    functionName: fu_huddly_usb_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_huddly_usb_device_hcp_write_file
    - fu_progress_add_step
    - fu_firmware_get_stream
    - fu_progress_step_done
    - FU_HUDDLY_USB_DEVICE
    - g_warning
    - fu_huddly_usb_device_hpk_run
    - fu_huddly_usb_device_reboot
    - fu_progress_get_child
    - fu_progress_set_id
    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:663,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:664,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:665,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:666,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:667,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 660
    functionDepth: 3
    functionLinenumber: 660
    functionLinenumberEnd: 669
    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:674,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:674,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:675,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:675,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:676,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:676,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:677,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:677,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:678,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:678,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:679,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:679,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:680,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:680,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:681,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHuddlyUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 671
    functionDepth: 6
    functionLinenumber: 671
    functionLinenumberEnd: 682
    functionName: fu_huddly_usb_device_init
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:687,1
    - Dst: FU_HUDDLY_USB_DEVICE
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:688,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 690
    functionName: fu_huddly_usb_device_replace
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_HUDDLY_USB_DEVICE
    - g_set_object
    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:695,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:697,1
    - Dst: g_free
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:698,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 700
    functionName: fu_huddly_usb_device_finalize
    functionSourceFile: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - FU_HUDDLY_USB_DEVICE
    - g_free
    - 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:705,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/huddly-usb/fu-huddly-usb-device.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHuddlyUsbDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 716
    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:
    - fwupd_codec_string_append_int
    - FU_FRESCO_PD_DEVICE
    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: fwupd_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: 4
    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_return_val_if_fail
    - g_set_error
    - g_prefix_error
    - fwupd_error_convert
    - FU_USB_DEVICE
    - fu_dump_raw
    - fu_usb_device_control_transfer
    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: 4
    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_return_val_if_fail
    - g_set_error
    - g_prefix_error
    - FU_USB_DEVICE
    - fu_dump_raw
    - fu_usb_device_control_transfer
    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: 5
    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: 5
    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: 6
    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: 6
    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: 6
    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: 7
    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_version_from_buf
    - FU_FRESCO_PD_DEVICE
    - fu_device_set_version
    - fu_device_add_instance_u8
    - fu_device_build_instance_id
    - g_prefix_error
    - FU_DEVICE
    - fu_fresco_pd_device_transfer_read
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fresco_pd_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FRESCO_PD_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:195,1
    - Dst: fu_fresco_pd_firmware_get_customer_id
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:199,1
    - Dst: FU_FRESCO_PD_FIRMWARE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:199,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 211
    functionName: fu_fresco_pd_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_fresco_pd_firmware_get_customer_id
    - FU_FRESCO_PD_FIRMWARE
    - FU_FRESCO_PD_DEVICE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fresco_pd_device_check_firmware(FuDevice *device,\n\t\t\t\t
      \  FuFirmware *firmware,\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:216,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:218,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:219,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:219,1
    - Dst: fu_fresco_pd_device_or_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:222,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:223,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:224,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:227,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFrescoPdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 213
    functionDepth: 7
    functionLinenumber: 213
    functionLinenumberEnd: 233
    functionName: fu_fresco_pd_device_panther_reset_device
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_fresco_pd_device_or_byte
    - g_debug
    - g_steal_pointer
    - FU_DEVICE
    - g_error_matches
    - g_autoptr
    - g_propagate_prefixed_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fresco_pd_device_panther_reset_device(FuFrescoPdDevice
      *self, GError **error)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: FU_FRESCO_PD_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:242,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:248,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:251,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:252,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:253,1
    - Dst: fu_progress_add_step
      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_firmware_get_bytes
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:260,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:263,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:267,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:276,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:289,1
    - Dst: fu_fresco_pd_device_and_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:290,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:291,1
    - Dst: fu_fresco_pd_device_and_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:294,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:295,1
    - Dst: fu_fresco_pd_device_write_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:298,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:299,1
    - Dst: fu_fresco_pd_device_read_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:306,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:310,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:321,1
    - Dst: fu_fresco_pd_device_read_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:324,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:325,1
    - Dst: fu_fresco_pd_device_write_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:330,1
    - Dst: fu_fresco_pd_device_write_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:333,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:338,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:341,1
    - Dst: fu_fresco_pd_device_set_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:343,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:348,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:348,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:352,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:358,1
    - Dst: fu_fresco_pd_device_set_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:360,1
    - Dst: fu_fresco_pd_device_set_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:365,1
    - Dst: fu_fresco_pd_device_set_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:370,1
    - Dst: fu_fresco_pd_device_set_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:376,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:378,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:383,1
    - Dst: fu_fresco_pd_device_set_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:385,1
    - Dst: fu_fresco_pd_device_set_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:390,1
    - Dst: fu_fresco_pd_device_set_byte
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:395,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:401,1
    - Dst: fu_fresco_pd_device_panther_reset_device
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:404,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:406,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 99
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 235
    functionDepth: 8
    functionLinenumber: 235
    functionLinenumberEnd: 410
    functionName: fu_fresco_pd_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_fresco_pd_device_panther_reset_device
    - fu_progress_add_flag
    - FU_FRESCO_PD_DEVICE
    - g_debug
    - fu_firmware_get_bytes
    - g_prefix_error_literal
    - fu_fresco_pd_device_set_byte
    - fu_progress_set_percentage_full
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_fresco_pd_device_and_byte
    - fu_progress_set_id
    - g_set_error
    - g_prefix_error
    - fu_fresco_pd_device_read_byte
    - fu_memcpy_safe
    - g_autoptr
    - 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:415,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:416,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:417,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:418,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:419,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:420,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 422
    functionName: fu_fresco_pd_device_set_progress
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_fresco_pd_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:427,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:427,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:428,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:428,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:429,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:429,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:430,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:430,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:431,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:431,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:432,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:432,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:433,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:433,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:434,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:434,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:435,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFrescoPdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 424
    functionDepth: 6
    functionLinenumber: 424
    functionLinenumberEnd: 436
    functionName: fu_fresco_pd_device_init
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_set_firmware_size
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFrescoPdDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 447
    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_udev_subsystem
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-plugin.c:29,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-plugin.c:30,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    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_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFrescoPdPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    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: 3
    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_input_stream_read_safe
    - FU_FRESCO_PD_FIRMWARE
    - fu_fresco_pd_version_from_buf
    - fu_firmware_set_version
    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
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c:66,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFrescoPdFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: fu_fresco_pd_firmware_init
    functionSourceFile: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFrescoPdFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    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: 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_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/corsair/fu-corsair-plugin.c:31,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/corsair/fu-corsair-plugin.c:32,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/corsair/fu-corsair-plugin.c:33,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/corsair/fu-corsair-plugin.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 37
    functionName: fu_corsair_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_gtype
    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:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCorsairPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:34,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:35,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:36,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:37,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:38,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: fu_corsair_device_to_string
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - FU_CORSAIR_DEVICE
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_corsair_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_corsair_version_from_uint32
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: fu_corsair_device_convert_version
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_corsair_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_corsair_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:52,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:52,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:56,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:60,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:61,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:62,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:63,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:63,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:71,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - self
    - buf
    - timeout
    - error
    argTypes:
    - FuCorsairDevice*
    - GByteArray*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 85
    functionName: fu_corsair_device_send
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_dump_raw
    - fu_usb_device_interrupt_transfer
    - g_byte_array_new
    - g_byte_array_append
    - FU_USB_DEVICE
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_send(FuCorsairDevice *self, GByteArray *buf,
      guint timeout, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:91,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:91,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:95,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:99,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:100,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:100,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:108,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:112,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:119,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - self
    - timeout
    - error
    argTypes:
    - FuCorsairDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 123
    functionName: fu_corsair_device_recv
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_dump_raw
    - fu_usb_device_interrupt_transfer
    - g_byte_array_new
    - FU_USB_DEVICE
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_corsair_device_recv(FuCorsairDevice *self, guint timeout, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:128,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:129,1
    - Dst: fu_corsair_device_send
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:131,1
    - Dst: fu_corsair_device_recv
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:133,1
    - Dst: fu_struct_corsair_generic_res_parse
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - self
    - buf
    - timeout
    - error
    argTypes:
    - FuCorsairDevice*
    - GByteArray*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 5
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: fu_corsair_device_cmd_generic
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_corsair_generic_res_parse
    - g_autoptr
    - fu_corsair_device_send
    - fu_corsair_device_recv
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_cmd_generic(FuCorsairDevice *self, GByteArray
      *buf, guint timeout, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:148,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:151,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:152,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:152,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCorsairDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 144
    functionDepth: 4
    functionLinenumber: 144
    functionLinenumberEnd: 162
    functionName: fu_corsair_device_flush_input_reports
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_malloc0
    - fu_usb_device_interrupt_transfer
    - FU_USB_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_corsair_device_flush_input_reports(FuCorsairDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:169,1
    - Dst: fu_struct_corsair_init_req_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:169,1
    - Dst: fu_struct_corsair_init_req_set_destination
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:171,1
    - Dst: fu_corsair_device_cmd_generic
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:172,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - destination
    - error
    argTypes:
    - FuCorsairDevice*
    - FuCorsairDestination
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 164
    functionDepth: 6
    functionLinenumber: 164
    functionLinenumberEnd: 179
    functionName: fu_corsair_device_write_init
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_corsair_init_req_set_destination
    - g_prefix_error_literal
    - fu_corsair_device_cmd_generic
    - fu_struct_corsair_init_req_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_corsair_device_write_init(FuCorsairDevice *self,\n\t\t\t
      \    FuCorsairDestination destination,\n\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:188,1
    - Dst: fu_struct_corsair_write_first_req_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:188,1
    - Dst: fu_struct_corsair_write_first_req_set_destination
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:190,1
    - Dst: fu_struct_corsair_write_first_req_set_size
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:191,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:192,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:192,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:192,1
    - Dst: fu_corsair_device_cmd_generic
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:193,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - self
    - destination
    - chunk
    - firmware_size
    - error
    argTypes:
    - FuCorsairDevice*
    - FuCorsairDestination
    - FuChunk*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 181
    functionDepth: 6
    functionLinenumber: 181
    functionLinenumberEnd: 200
    functionName: fu_corsair_device_write_chk0
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_corsair_write_first_req_set_destination
    - fu_chunk_get_data_sz
    - fu_struct_corsair_write_first_req_set_size
    - g_prefix_error_literal
    - fu_struct_corsair_write_first_req_new
    - fu_chunk_get_data
    - fu_corsair_device_cmd_generic
    - g_byte_array_append
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_corsair_device_write_chk0(FuCorsairDevice *self,\n\t\t\t
      \    FuCorsairDestination destination,\n\t\t\t     FuChunk *chunk,\n\t\t\t     guint32
      firmware_size,\n\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:208,1
    - Dst: fu_struct_corsair_write_next_req_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:208,1
    - Dst: fu_struct_corsair_write_next_req_set_destination
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:210,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:211,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:211,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:211,1
    - Dst: fu_corsair_device_cmd_generic
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:212,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - destination
    - chunk
    - error
    argTypes:
    - FuCorsairDevice*
    - FuCorsairDestination
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 202
    functionDepth: 6
    functionLinenumber: 202
    functionLinenumberEnd: 219
    functionName: fu_corsair_device_write_chunk
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_prefix_error_literal
    - fu_chunk_get_data
    - fu_struct_corsair_write_next_req_new
    - fu_corsair_device_cmd_generic
    - g_byte_array_append
    - g_autoptr
    - fu_struct_corsair_write_next_req_set_destination
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_corsair_device_write_chunk(FuCorsairDevice *self,\n\t\t\t
      \     FuCorsairDestination destination,\n\t\t\t      FuChunk *chunk,\n\t\t\t
      \     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:228,1
    - Dst: fu_struct_corsair_get_property_req_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:228,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:229,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:230,1
    - Dst: fu_struct_corsair_get_property_req_set_destination
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:232,1
    - Dst: fu_struct_corsair_get_property_req_set_property
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:233,1
    - Dst: fu_corsair_device_send
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:234,1
    - Dst: fu_corsair_device_recv
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:236,1
    - Dst: fu_struct_corsair_get_property_res_parse
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:239,1
    - Dst: fu_struct_corsair_get_property_res_get_value
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - self
    - destination
    - property
    - value
    - error
    argTypes:
    - FuCorsairDevice*
    - FuCorsairDestination
    - FuCorsairDeviceProperty
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 246
    functionName: fu_corsair_device_get_property
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_corsair_device_recv
    - fu_struct_corsair_get_property_res_parse
    - fu_struct_corsair_get_property_res_get_value
    - fu_struct_corsair_get_property_req_set_destination
    - fu_corsair_device_send
    - fu_struct_corsair_get_property_req_set_property
    - g_autoptr
    - fu_struct_corsair_get_property_req_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_corsair_device_get_property(FuCorsairDevice *self,\n\t\t\t
      \      FuCorsairDestination destination,\n\t\t\t       FuCorsairDeviceProperty
      property,\n\t\t\t       guint32 *value,\n\t\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:254,1
    - Dst: fu_struct_corsair_set_mode_req_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:254,1
    - Dst: fu_struct_corsair_set_mode_req_set_destination
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:256,1
    - Dst: fu_struct_corsair_set_mode_req_set_mode
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:257,1
    - Dst: fu_corsair_device_cmd_generic
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:258,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - destination
    - mode
    - error
    argTypes:
    - FuCorsairDevice*
    - FuCorsairDestination
    - FuCorsairDeviceMode
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 248
    functionDepth: 6
    functionLinenumber: 248
    functionLinenumberEnd: 265
    functionName: fu_corsair_device_set_mode
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_corsair_set_mode_req_new
    - fu_struct_corsair_set_mode_req_set_destination
    - g_prefix_error_literal
    - fu_struct_corsair_set_mode_req_set_mode
    - fu_corsair_device_cmd_generic
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_corsair_device_set_mode(FuCorsairDevice *self,\n\t\t\t
      \  FuCorsairDestination destination,\n\t\t\t   FuCorsairDeviceMode mode,\n\t\t\t
      \  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:277,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:278,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:278,1
    - Dst: fu_corsair_device_write_chk0
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:281,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:282,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:285,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:288,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:289,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:292,1
    - Dst: fu_corsair_device_write_chunk
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:295,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:296,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:299,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 7
    argNames:
    - self
    - destination
    - chk0
    - chunks
    - progress
    - firmware_size
    - error
    argTypes:
    - FuCorsairDevice*
    - FuCorsairDestination
    - FuChunk*
    - FuChunkArray*
    - FuProgress*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 267
    functionDepth: 7
    functionLinenumber: 267
    functionLinenumberEnd: 304
    functionName: fu_corsair_device_write_firmware_chunks
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_progress_set_steps
    - g_prefix_error_literal
    - fu_progress_step_done
    - fu_corsair_device_write_chk0
    - fu_corsair_device_write_chunk
    - g_prefix_error
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_corsair_device_write_firmware_chunks(FuCorsairDevice *self,\n\t\t\t\t\tFuCorsairDestination
      destination,\n\t\t\t\t\tFuChunk *chk0,\n\t\t\t\t\tFuChunkArray *chunks,\n\t\t\t\t\tFuProgress
      *progress,\n\t\t\t\t\tguint32 firmware_size,\n\t\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:311,1
    - Dst: fu_struct_corsair_commit_req_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:311,1
    - Dst: fu_struct_corsair_commit_req_set_destination
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:313,1
    - Dst: fu_corsair_device_cmd_generic
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:314,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - destination
    - error
    argTypes:
    - FuCorsairDevice*
    - FuCorsairDestination
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 306
    functionDepth: 6
    functionLinenumber: 306
    functionLinenumberEnd: 321
    functionName: fu_corsair_device_commit_firmware
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_corsair_commit_req_new
    - g_prefix_error_literal
    - fu_struct_corsair_commit_req_set_destination
    - fu_corsair_device_cmd_generic
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_corsair_device_commit_firmware(FuCorsairDevice *self,\n\t\t\t\t
      \ FuCorsairDestination destination,\n\t\t\t\t  GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:329,1
    - Dst: fu_struct_corsair_activate_req_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:329,1
    - Dst: fu_struct_corsair_activate_req_set_destination
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:330,1
    - Dst: fu_struct_corsair_activate_req_set_crc
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:331,1
    - Dst: fu_crc32_bytes
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:331,1
    - Dst: fu_corsair_device_cmd_generic
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - self
    - destination
    - blob
    - error
    argTypes:
    - FuCorsairDevice*
    - FuCorsairDestination
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 323
    functionDepth: 6
    functionLinenumber: 323
    functionLinenumberEnd: 333
    functionName: fu_corsair_device_activate_firmware
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_corsair_activate_req_set_crc
    - fu_struct_corsair_activate_req_new
    - fu_corsair_device_cmd_generic
    - fu_crc32_bytes
    - fu_struct_corsair_activate_req_set_destination
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_corsair_device_activate_firmware(FuCorsairDevice *self,\n\t\t\t\t
      \   FuCorsairDestination destination,\n\t\t\t\t    GBytes *blob,\n\t\t\t\t    GError
      **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:342,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:343,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:344,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:345,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:349,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:359,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:360,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:361,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:363,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:365,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:370,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:371,1
    - Dst: fu_chunk_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:378,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:378,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:379,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:379,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:381,1
    - Dst: fu_corsair_device_write_init
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:384,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:385,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:388,1
    - Dst: fu_corsair_device_write_firmware_chunks
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:393,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:397,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:398,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:401,1
    - Dst: fu_corsair_device_commit_firmware
      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_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:406,1
    - Dst: fu_corsair_device_activate_firmware
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:407,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:410,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 5
    argNames:
    - self
    - destination
    - firmware
    - progress
    - error
    argTypes:
    - FuCorsairDevice*
    - FuCorsairDestination
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 335
    functionDepth: 8
    functionLinenumber: 335
    functionLinenumberEnd: 414
    functionName: fu_corsair_device_write_firmware_full
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_firmware_get_bytes
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_corsair_device_write_firmware_chunks
    - fu_corsair_device_write_init
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_progress_step_done
    - FU_DEVICE
    - fu_bytes_new_offset
    - fu_corsair_device_commit_firmware
    - fu_progress_get_child
    - fu_progress_set_id
    - g_set_error
    - fu_corsair_device_activate_firmware
    - fu_chunk_new
    - fu_device_has_private_flag
    - g_bytes_get_size
    - fu_chunk_array_new_from_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_corsair_device_write_firmware_full(FuCorsairDevice *self,\n\t\t\t\t
      \     FuCorsairDestination destination,\n\t\t\t\t      FuFirmware *firmware,\n\t\t\t\t
      \     FuProgress *progress,\n\t\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:423,1
    - Dst: fu_corsair_device_write_firmware_full
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:424,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: 429
      start: 416
    functionDepth: 9
    functionLinenumber: 416
    functionLinenumberEnd: 429
    functionName: fu_corsair_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_corsair_device_write_firmware_full
    - FU_CORSAIR_DEVICE
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:436,1
    - Dst: fu_struct_corsair_attach_req_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:436,1
    - Dst: fu_struct_corsair_attach_req_set_destination
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:437,1
    - Dst: fu_corsair_device_send
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - destination
    - error
    argTypes:
    - FuCorsairDevice*
    - FuCorsairDestination
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 431
    functionDepth: 5
    functionLinenumber: 431
    functionLinenumberEnd: 439
    functionName: fu_corsair_device_legacy_attach
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_corsair_attach_req_new
    - g_autoptr
    - fu_corsair_device_send
    - fu_struct_corsair_attach_req_set_destination
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_corsair_device_legacy_attach(FuCorsairDevice *self,\n\t\t\t\tFuCorsairDestination
      destination,\n\t\t\t\tGError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:444,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:446,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:448,1
    - Dst: fu_corsair_device_legacy_attach
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:449,1
    - Dst: fu_corsair_device_set_mode
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:452,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:460,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 441
    functionDepth: 7
    functionLinenumber: 441
    functionLinenumberEnd: 462
    functionName: fu_corsair_device_attach
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_CORSAIR_DEVICE
    - fu_device_has_private_flag
    - fu_device_has_flag
    - fu_corsair_device_legacy_attach
    - fu_corsair_device_set_mode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:467,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:468,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:470,1
    - Dst: fu_corsair_device_set_mode
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:474,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:478,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:479,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:481,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:481,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:487,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 464
    functionDepth: 7
    functionLinenumber: 464
    functionLinenumberEnd: 490
    functionName: fu_corsair_device_detach
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_CORSAIR_DEVICE
    - g_debug
    - fu_device_sleep
    - g_steal_pointer
    - fu_device_has_flag
    - g_error_matches
    - fu_corsair_device_set_mode
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:495,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:499,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:500,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:502,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:505,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:505,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:507,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:515,1
    - Dst: fu_usb_interface_get_endpoints
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:516,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:518,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:525,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:526,1
    - Dst: fu_usb_endpoint_get_direction
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:527,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:528,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:529,1
    - Dst: fu_usb_endpoint_get_maximum_packet_size
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:530,1
    - Dst: fu_usb_endpoint_get_maximum_packet_size
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:531,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:533,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:534,1
    - Dst: fu_usb_endpoint_get_maximum_packet_size
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:535,1
    - Dst: fu_usb_endpoint_get_maximum_packet_size
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:536,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:538,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:538,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:543,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 492
    functionDepth: 9
    functionLinenumber: 492
    functionLinenumberEnd: 552
    functionName: fu_corsair_device_probe
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_endpoints
    - FU_CORSAIR_DEVICE
    - fu_usb_endpoint_get_direction
    - fu_usb_endpoint_get_maximum_packet_size
    - fu_usb_device_get_interfaces
    - g_set_error_literal
    - fu_usb_device_add_interface
    - fu_usb_endpoint_get_address
    - FU_USB_DEVICE
    - g_autoptr
    - FU_DEVICE_CLASS
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:558,1
    - Dst: fu_corsair_device_get_property
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:560,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:565,1
    - Dst: fu_corsair_subdevice_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:572,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:572,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:573,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:573,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:575,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:575,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:575,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - self
    - subdevice_added
    - error
    argTypes:
    - FuCorsairDevice*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 554
    functionDepth: 6
    functionLinenumber: 554
    functionLinenumberEnd: 580
    functionName: fu_corsair_device_poll_subdevice
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_corsair_subdevice_new
    - g_prefix_error_literal
    - fu_device_setup
    - FU_DEVICE
    - fu_corsair_device_get_property
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_poll_subdevice(FuCorsairDevice *self, gboolean
      *subdevice_added, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_corsair_device_get_property
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:586,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:593,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCorsairDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 582
    functionDepth: 6
    functionLinenumber: 582
    functionLinenumberEnd: 595
    functionName: fu_corsair_device_ensure_mode
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_corsair_device_get_property
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_ensure_mode(FuCorsairDevice *self, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_corsair_device_get_property
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:602,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:607,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:611,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:611,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:622,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:622,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCorsairDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 597
    functionDepth: 6
    functionLinenumber: 597
    functionLinenumberEnd: 624
    functionName: fu_corsair_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_raw
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_device_has_flag
    - fu_corsair_device_get_property
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_ensure_version(FuCorsairDevice *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_corsair_device_get_property
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:630,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:635,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:639,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:646,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCorsairDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 626
    functionDepth: 7
    functionLinenumber: 626
    functionLinenumberEnd: 648
    functionName: fu_corsair_device_ensure_battery_level
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error_literal
    - fu_device_set_battery_level
    - FU_DEVICE
    - fu_corsair_device_get_property
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_ensure_battery_level(FuCorsairDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_corsair_device_get_property
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:656,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:661,1
    - Dst: fu_corsair_device_convert_version
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:665,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:665,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:666,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCorsairDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 650
    functionDepth: 6
    functionLinenumber: 650
    functionLinenumberEnd: 668
    functionName: fu_corsair_device_ensure_bootloader_version
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_corsair_device_convert_version
    - fu_device_set_version_bootloader
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_corsair_device_get_property
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_ensure_bootloader_version(FuCorsairDevice
      *self, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:673,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:675,1
    - Dst: fu_corsair_device_flush_input_reports
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:679,1
    - Dst: fu_corsair_device_ensure_mode
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:680,1
    - Dst: fu_corsair_device_ensure_version
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:682,1
    - Dst: fu_corsair_device_ensure_bootloader_version
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:684,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:688,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:689,1
    - Dst: fu_corsair_device_ensure_battery_level
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:690,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:695,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:696,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:698,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:701,1
    - Dst: fu_corsair_device_poll_subdevice
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:702,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:703,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:707,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:712,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:713,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:713,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:715,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:715,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 670
    functionDepth: 8
    functionLinenumber: 670
    functionLinenumberEnd: 719
    functionName: fu_corsair_device_setup
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - FU_CORSAIR_DEVICE
    - fu_corsair_device_ensure_battery_level
    - fu_corsair_device_poll_subdevice
    - fu_corsair_device_ensure_mode
    - fu_corsair_device_ensure_version
    - fu_device_sleep
    - fu_device_add_icon
    - fu_corsair_device_flush_input_reports
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_device_has_flag
    - g_warning
    - g_autoptr
    - fu_corsair_device_ensure_bootloader_version
    - fu_device_set_poll_interval
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:725,1
    - Dst: fu_corsair_device_get_property
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:727,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:732,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 721
    functionDepth: 6
    functionLinenumber: 721
    functionLinenumberEnd: 745
    functionName: fu_corsair_device_is_subdevice_connected_cb
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_corsair_device_get_property
    - FU_CORSAIR_DEVICE
    - g_set_error_literal
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_is_subdevice_connected_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:750,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:750,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCorsairDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 747
    functionDepth: 3
    functionLinenumber: 747
    functionLinenumberEnd: 762
    functionName: fu_corsair_device_reconnect_subdevice
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_prefix_error_literal
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_reconnect_subdevice(FuCorsairDevice *self,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:767,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:768,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:769,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:770,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:771,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 764
    functionDepth: 3
    functionLinenumber: 764
    functionLinenumberEnd: 773
    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 *device, FuProgress *progress)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:781,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:784,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:785,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:791,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:798,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 803
    functionName: fu_corsair_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - FU_CORSAIR_DEVICE
    - g_strcmp0
    - fu_strtoull
    - g_set_error_literal
    - g_prefix_error_literal
    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: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:808,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:810,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:812,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:814,1
    - Dst: fu_corsair_device_poll_subdevice
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:817,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:822,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 805
    functionDepth: 7
    functionLinenumber: 805
    functionLinenumberEnd: 831
    functionName: fu_corsair_device_poll
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - FU_CORSAIR_DEVICE
    - g_set_error_literal
    - fu_device_locker_new
    - g_prefix_error_literal
    - fu_corsair_device_poll_subdevice
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_device_poll(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:839,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:839,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:840,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:840,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:841,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:841,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:842,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:842,1
    - Dst: fu_device_set_battery_threshold
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:843,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:843,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:844,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:844,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:845,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:845,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:846,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:846,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:847,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:847,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:848,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCorsairDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 833
    functionDepth: 7
    functionLinenumber: 833
    functionLinenumberEnd: 849
    functionName: fu_corsair_device_init
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_set_battery_threshold
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_corsair_device_init(FuCorsairDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/corsair/fu-corsair-device.c:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCorsairDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 865
    functionName: fu_corsair_device_class_init
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_corsair_device_class_init(FuCorsairDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_corsair_version_from_uint32
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: fu_corsair_subdevice_convert_version
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c
    functionUses: 0
    functionsReached:
    - fu_corsair_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_corsair_subdevice_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:35,1
    - Dst: fu_corsair_device_reconnect_subdevice
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:38,1
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:38,1
    - Dst: fu_corsair_device_write_firmware_full
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:40,1
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 26
    functionDepth: 9
    functionLinenumber: 26
    functionLinenumberEnd: 45
    functionName: fu_corsair_subdevice_write_firmware
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c
    functionUses: 0
    functionsReached:
    - fu_corsair_device_write_firmware_full
    - FU_CORSAIR_DEVICE
    - fu_corsair_device_reconnect_subdevice
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_corsair_subdevice_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_device_has_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:52,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:54,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:57,1
    - Dst: fu_corsair_device_legacy_attach
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:58,1
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:58,1
    - Dst: fu_corsair_device_set_mode
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:63,1
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:63,1
    - Dst: fu_corsair_device_reconnect_subdevice
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:69,1
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 47
    functionDepth: 7
    functionLinenumber: 47
    functionLinenumberEnd: 70
    functionName: fu_corsair_subdevice_attach
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c
    functionUses: 0
    functionsReached:
    - FU_CORSAIR_DEVICE
    - fu_device_has_private_flag
    - fu_corsair_device_reconnect_subdevice
    - fu_device_has_flag
    - fu_corsair_device_legacy_attach
    - fu_corsair_device_set_mode
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_subdevice_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:76,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:78,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:80,1
    - Dst: fu_corsair_device_set_mode
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:83,1
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:83,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:87,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:88,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:90,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:90,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 72
    functionDepth: 7
    functionLinenumber: 72
    functionLinenumberEnd: 98
    functionName: fu_corsair_subdevice_detach
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c
    functionUses: 0
    functionsReached:
    - FU_CORSAIR_DEVICE
    - g_debug
    - fu_device_sleep
    - g_steal_pointer
    - fu_device_has_flag
    - g_error_matches
    - fu_corsair_device_set_mode
    - fu_device_get_proxy
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_subdevice_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:106,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:106,1
    - Dst: fu_corsair_device_get_property
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:109,1
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:109,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:116,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCorsairSubdevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 100
    functionDepth: 6
    functionLinenumber: 100
    functionLinenumberEnd: 118
    functionName: fu_corsair_subdevice_ensure_mode
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_CORSAIR_DEVICE
    - FU_DEVICE
    - fu_device_get_proxy
    - fu_corsair_device_get_property
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_subdevice_ensure_mode(FuCorsairSubdevice *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:126,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:126,1
    - Dst: fu_corsair_device_get_property
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:129,1
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:129,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:134,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:137,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:137,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:143,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCorsairSubdevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 120
    functionDepth: 6
    functionLinenumber: 120
    functionLinenumberEnd: 145
    functionName: fu_corsair_subdevice_ensure_version
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c
    functionUses: 0
    functionsReached:
    - FU_CORSAIR_DEVICE
    - fu_device_set_version_raw
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_device_has_flag
    - fu_device_get_proxy
    - fu_corsair_device_get_property
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_subdevice_ensure_version(FuCorsairSubdevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:153,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:153,1
    - Dst: fu_corsair_device_get_property
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:156,1
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:156,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:161,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:164,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCorsairSubdevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 147
    functionDepth: 7
    functionLinenumber: 147
    functionLinenumberEnd: 166
    functionName: fu_corsair_subdevice_ensure_battery_level
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c
    functionUses: 0
    functionsReached:
    - FU_CORSAIR_DEVICE
    - g_prefix_error_literal
    - fu_device_set_battery_level
    - FU_DEVICE
    - fu_device_get_proxy
    - fu_corsair_device_get_property
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_subdevice_ensure_battery_level(FuCorsairSubdevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:175,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:175,1
    - Dst: fu_corsair_device_get_property
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:178,1
    - Dst: FU_CORSAIR_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:178,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:183,1
    - Dst: fu_corsair_subdevice_convert_version
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:187,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:187,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:188,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCorsairSubdevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 168
    functionDepth: 6
    functionLinenumber: 168
    functionLinenumberEnd: 190
    functionName: fu_corsair_subdevice_ensure_bootloader_version
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c
    functionUses: 0
    functionsReached:
    - FU_CORSAIR_DEVICE
    - fu_device_set_version_bootloader
    - fu_corsair_subdevice_convert_version
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_device_get_proxy
    - fu_corsair_device_get_property
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_subdevice_ensure_bootloader_version(FuCorsairSubdevice
      *self, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_CORSAIR_SUBDEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:195,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:197,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:200,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:200,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:203,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:203,1
    - Dst: g_string_replace
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:204,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:205,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:208,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:209,1
    - Dst: fu_corsair_subdevice_ensure_mode
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:213,1
    - Dst: fu_corsair_subdevice_ensure_version
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:215,1
    - Dst: fu_corsair_subdevice_ensure_bootloader_version
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:217,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:219,1
    - Dst: fu_corsair_subdevice_ensure_battery_level
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:220,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 192
    functionDepth: 8
    functionLinenumber: 192
    functionLinenumberEnd: 226
    functionName: fu_corsair_subdevice_setup
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c
    functionUses: 0
    functionsReached:
    - fu_corsair_subdevice_ensure_battery_level
    - g_string_replace
    - fu_corsair_subdevice_ensure_mode
    - fu_device_build_instance_id
    - fu_device_get_name
    - fu_device_add_instance_str
    - fu_corsair_subdevice_ensure_bootloader_version
    - fu_corsair_subdevice_ensure_version
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_has_flag
    - g_string_new
    - FU_CORSAIR_SUBDEVICE
    - fu_device_get_proxy
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_corsair_subdevice_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:231,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:232,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:233,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:234,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:235,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:236,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 238
    functionName: fu_corsair_subdevice_set_progress
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_corsair_subdevice_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:243,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:243,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:244,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:244,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:245,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:245,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:246,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:246,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:247,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:247,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:248,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:248,1
    - Dst: fu_device_set_battery_threshold
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:249,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:249,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:250,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:250,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:251,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:251,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:252,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:252,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:253,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCorsairSubdevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 240
    functionDepth: 7
    functionLinenumber: 240
    functionLinenumberEnd: 254
    functionName: fu_corsair_subdevice_init
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_set_battery_threshold
    - fu_device_add_icon
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_corsair_subdevice_init(FuCorsairSubdevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCorsairSubdeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 266
    functionName: fu_corsair_subdevice_class_init
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_corsair_subdevice_class_init(FuCorsairSubdeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: fu_corsair_subdevice_new
    functionSourceFile: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuCorsairSubdevice
    signature: 'FuCorsairSubdevice *

      fu_corsair_subdevice_new(FuDevice *proxy)'
  - 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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-plugin.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 38
    functionName: fu_intel_cvs_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelCvsPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    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_xmlb_builder_insert_kx
    - FU_INTEL_CVS_FIRMWARE
    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:
    - FU_INTEL_CVS_FIRMWARE
    - fu_firmware_set_version
    - g_set_error
    - fu_struct_intel_cvs_firmware_hdr_get_fw_version
    - fu_struct_intel_cvs_fw_get_major
    - fu_struct_intel_cvs_fw_get_build
    - fu_struct_intel_cvs_id_get_vid
    - fu_struct_intel_cvs_firmware_hdr_parse_stream
    - fu_sum32w
    - g_strdup_printf
    - fu_struct_intel_cvs_fw_get_hotfix
    - fu_struct_intel_cvs_id_get_pid
    - fu_struct_intel_cvs_fw_get_minor
    - g_autoptr
    - fu_struct_intel_cvs_firmware_hdr_get_vid_pid
    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:
    - g_return_val_if_fail
    - FU_IS_INTEL_CVS_FIRMWARE
    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:
    - g_return_val_if_fail
    - FU_IS_INTEL_CVS_FIRMWARE
    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
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:104,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-firmware.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelCvsFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 105
    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
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelCvsFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 114
    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_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: 7
    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_device_add_flag
    - fu_struct_intel_cvs_probe_parse_bytes
    - fu_device_set_version
    - g_strdup_printf
    - fu_struct_intel_cvs_probe_get_dev_capabilities
    - fu_struct_intel_cvs_probe_get_opid
    - fu_device_build_instance_id
    - fu_struct_intel_cvs_probe_get_minor
    - fu_struct_intel_cvs_probe_get_hotfix
    - fu_struct_intel_cvs_probe_get_vid
    - fu_device_set_vid
    - fu_udev_device_read_sysfs_bytes
    - fu_device_add_instance_u32
    - fu_struct_intel_cvs_probe_get_build
    - fu_struct_intel_cvs_probe_get_pid
    - FU_UDEV_DEVICE
    - fu_struct_intel_cvs_probe_get_major
    - FU_INTEL_CVS_DEVICE
    - fu_device_set_pid
    - g_autoptr
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_CVS_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:105,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:108,1
    - Dst: fu_intel_cvs_firmware_get_vid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:109,1
    - Dst: FU_INTEL_CVS_FIRMWARE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:109,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:110,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:110,1
    - Dst: fu_intel_cvs_firmware_get_pid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:111,1
    - Dst: FU_INTEL_CVS_FIRMWARE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:111,1
    - Dst: g_set_error
      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:116,1
    - Dst: FU_INTEL_CVS_FIRMWARE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:116,1
    - Dst: fu_intel_cvs_firmware_get_pid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:117,1
    - Dst: FU_INTEL_CVS_FIRMWARE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:117,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:118,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:118,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:119,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 125
    functionName: fu_intel_cvs_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
    functionUses: 0
    functionsReached:
    - fu_intel_cvs_firmware_get_vid
    - fu_intel_cvs_firmware_get_pid
    - fu_device_get_pid
    - FU_INTEL_CVS_FIRMWARE
    - g_set_error
    - fu_device_get_vid
    - FU_DEVICE
    - FU_INTEL_CVS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_cvs_device_check_firmware(FuDevice *device,\n\t\t\t\t
      \  FuFirmware *firmware,\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:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:132,1
    - Dst: fu_udev_device_read_sysfs_bytes
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:135,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:135,1
    - Dst: fu_struct_intel_cvs_status_parse_bytes
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:142,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:145,1
    - Dst: fu_struct_intel_cvs_status_get_num_packets_sent
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:146,1
    - Dst: fu_struct_intel_cvs_status_get_total_packets
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:147,1
    - Dst: fu_struct_intel_cvs_status_get_fw_dl_finished
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:148,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:149,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 161
    functionName: fu_intel_cvs_device_check_status_cb
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
    functionUses: 0
    functionsReached:
    - FU_PROGRESS
    - fu_struct_intel_cvs_status_get_num_packets_sent
    - fu_udev_device_read_sysfs_bytes
    - fu_struct_intel_cvs_status_get_fw_dl_finished
    - g_set_error_literal
    - fu_struct_intel_cvs_status_parse_bytes
    - fu_progress_set_status
    - fu_struct_intel_cvs_status_get_total_packets
    - FU_UDEV_DEVICE
    - fu_progress_set_percentage_full
    - 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:170,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:171,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:172,1
    - Dst: fu_struct_intel_cvs_write_new
      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_firmware_get_stream
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:177,1
    - Dst: fu_io_channel_virtual_new
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:182,1
    - Dst: fu_io_channel_write_stream
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:185,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:190,1
    - Dst: fu_io_channel_seek
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:193,1
    - Dst: fu_struct_intel_cvs_write_set_max_download_time
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:197,1
    - Dst: fu_struct_intel_cvs_write_set_max_flash_time
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:198,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:198,1
    - Dst: fu_struct_intel_cvs_write_set_max_fwupd_retry_count
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:199,1
    - Dst: fu_struct_intel_cvs_write_set_fw_bin_fd
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:200,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:200,1
    - Dst: fu_udev_device_write_sysfs_byte_array
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:201,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:201,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:209,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:215,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:216,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:218,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:218,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: 225
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 225
    functionName: fu_intel_cvs_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_intel_cvs_write_set_max_fwupd_retry_count
    - fu_io_channel_virtual_new
    - g_debug
    - g_prefix_error_literal
    - fu_struct_intel_cvs_write_set_max_download_time
    - g_propagate_error
    - fu_struct_intel_cvs_write_set_fw_bin_fd
    - fu_device_get_remove_delay
    - FU_UDEV_DEVICE
    - fu_struct_intel_cvs_write_new
    - fu_io_channel_write_stream
    - fu_firmware_get_stream
    - fu_struct_intel_cvs_write_set_max_flash_time
    - g_steal_pointer
    - fu_device_retry_full
    - fu_io_channel_unix_get_fd
    - fu_udev_device_write_sysfs_byte_array
    - g_error_matches
    - FU_INTEL_CVS_DEVICE
    - g_autoptr
    - fu_io_channel_seek
    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:233,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:236,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:238,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:243,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:245,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:252,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 257
    functionName: fu_intel_cvs_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_strcmp0
    - g_set_error_literal
    - 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:262,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:263,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:264,1
    - Dst: fu_progress_add_step
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 269
    functionName: fu_intel_cvs_device_set_progress
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_intel_cvs_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:276,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:276,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:277,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:277,1
    - 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_firmware_gtype
      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_add_protocol
      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_flag
      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_icon
      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_set_name
      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_summary
      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_retry_add_recovery
      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: g_signal_connect
      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_CALLBACK
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:294,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:296,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:296,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelCvsDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 271
    functionDepth: 6
    functionLinenumber: 271
    functionLinenumberEnd: 300
    functionName: fu_intel_cvs_device_init
    functionSourceFile: /src/fwupd/plugins/intel-cvs/fu-intel-cvs-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - g_signal_connect
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_summary
    - G_CALLBACK
    - fu_device_retry_add_recovery
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelCvsDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 312
    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_literal
      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
    - g_dbus_proxy_get_name
    - g_prefix_error_literal
    - g_dbus_proxy_new_for_bus_sync
    - FU_LOGIND_PLUGIN
    - g_dbus_proxy_get_name_owner
    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_dbus_proxy_call_with_unix_fd_list_sync
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:79,1
    - Dst: g_variant_new
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:82,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:90,1
    - Dst: g_unix_fd_list_get_length
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:95,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:96,1
    - Dst: g_unix_fd_list_get
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:99,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 102
    functionName: fu_logind_plugin_composite_prepare
    functionSourceFile: /src/fwupd/plugins/logind/fu-logind-plugin.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_unix_fd_list_get
    - g_dbus_proxy_call_with_unix_fd_list_sync
    - g_unix_fd_list_get_length
    - g_warning
    - g_variant_new
    - FU_LOGIND_PLUGIN
    - g_autoptr
    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:107,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:110,1
    - Dst: g_close
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 115
    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: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    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:126,1
    - Dst: g_close
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:128,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:130,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 132
    functionName: fu_logind_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/logind/fu-logind-plugin.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_close
    - 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:137,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logind/fu-logind-plugin.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogindPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 145
    functionName: fu_logind_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/logind/fu-logind-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    - G_OBJECT_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: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:54,1
    - Dst: FU_LINUX_TAINTED_PLUGIN
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:55,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:58,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:67,1
    - Dst: g_file_monitor
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:68,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:71,1
    - Dst: G_FILE_MONITOR
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:71,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 76
    functionName: fu_linux_tainted_plugin_startup
    functionSourceFile: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
    functionUses: 0
    functionsReached:
    - g_signal_connect
    - fu_context_build_filename
    - fu_plugin_get_context
    - G_CALLBACK
    - g_file_monitor
    - g_file_new_for_path
    - G_FILE_MONITOR
    - FU_LINUX_TAINTED_PLUGIN
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_tainted_plugin_startup(FuPlugin *plugin, FuProgress
      *progress, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_LINUX_TAINTED_PLUGIN
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:87,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:90,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:91,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:92,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:93,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:96,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:97,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:103,1
    - Dst: g_file_load_contents
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:106,1
    - Dst: g_file_get_path
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:107,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:108,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:109,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:114,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:115,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:116,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:117,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:130,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:131,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:136,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 137
    functionName: fu_linux_tainted_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_plugin_has_flag
    - fu_plugin_security_attr_new
    - fu_strtoull
    - g_file_load_contents
    - g_file_get_path
    - g_warning
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    - FU_LINUX_TAINTED_PLUGIN
    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: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    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:147,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:149,1
    - Dst: g_file_monitor_cancel
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:151,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:152,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 155
    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:160,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLinuxTaintedPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: fu_linux_tainted_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/linux-tainted/fu-linux-tainted-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_linux_tainted_plugin_class_init(FuLinuxTaintedPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHimaxTpPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_himax_tp_plugin_init
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_himax_tp_plugin_init(FuHimaxTpPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-plugin.c:27,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-plugin.c:29,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-plugin.c:30,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: fu_himax_tp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_himax_tp_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-plugin.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHimaxTpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: fu_himax_tp_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_himax_tp_plugin_class_init(FuHimaxTpPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIMAX_TP_HID_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:36,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:37,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:39,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:41,1
    - Dst: fu_himax_tp_report_id_to_string
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:42,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: fu_himax_tp_hid_device_to_string
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - FU_HIMAX_TP_HID_DEVICE
    - fu_himax_tp_report_id_to_string
    - fwupd_codec_string_append_hex
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_himax_tp_hid_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:54,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:57,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - self
    - report_id
    - value
    - error
    argTypes:
    - FuHimaxTpHidDevice*
    - FuHimaxTpReportId
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 75
    functionName: fu_himax_tp_hid_device_size_lookup
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_size_lookup(FuHimaxTpHidDevice *self,\n\t\t\t\t
      \  FuHimaxTpReportId report_id,\n\t\t\t\t   gsize *value,\n\t\t\t\t   GError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:86,1
    - Dst: fu_himax_tp_hid_device_size_lookup
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:89,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:91,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:97,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:98,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:103,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:103,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:105,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:106,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:106,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:106,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:107,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:110,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:110,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:116,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:116,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 6
    argNames:
    - self
    - report_id
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuHimaxTpHidDevice*
    - FuHimaxTpReportId
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 77
    functionDepth: 5
    functionLinenumber: 77
    functionLinenumberEnd: 123
    functionName: fu_himax_tp_hid_device_set_feature
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_chunk_array_new
    - fu_device_sleep
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_himax_tp_hid_device_size_lookup
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - g_byte_array_new
    - fu_chunk_get_data
    - g_byte_array_append
    - g_autoptr
    - fu_byte_array_set_size
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_set_feature(FuHimaxTpHidDevice *self,\n\t\t\t\t
      \  FuHimaxTpReportId report_id,\n\t\t\t\t   const guint8 *buf,\n\t\t\t\t   gsize
      bufsz,\n\t\t\t\t   FuProgress *progress, /* nullable */\n\t\t\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:132,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:132,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:135,1
    - Dst: fu_memwrite_uint8_safe
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:136,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:140,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:140,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:145,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:150,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - self
    - report_id
    - buf
    - bufsz
    - error
    argTypes:
    - FuHimaxTpHidDevice*
    - FuHimaxTpReportId
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 125
    functionDepth: 5
    functionLinenumber: 125
    functionLinenumberEnd: 164
    functionName: fu_himax_tp_hid_device_get_feature
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint8_safe
    - fu_hidraw_device_get_feature
    - g_prefix_error
    - FU_HIDRAW_DEVICE
    - g_byte_array_new
    - fu_memcpy_safe
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_get_feature(FuHimaxTpHidDevice *self,\n\t\t\t\t
      \  FuHimaxTpReportId report_id,\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/himax-tp/fu-himax-tp-hid-device.c:172,1
    - Dst: fu_struct_himax_tp_reg_rw_new
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:172,1
    - Dst: fu_struct_himax_tp_reg_rw_set_rw_flag
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:174,1
    - Dst: fu_struct_himax_tp_reg_rw_set_reg_addr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:175,1
    - Dst: fu_struct_himax_tp_reg_rw_set_reg_value
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:176,1
    - Dst: fu_himax_tp_hid_device_set_feature
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:177,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - reg_addr
    - reg_value
    - error
    argTypes:
    - FuHimaxTpHidDevice*
    - guint32
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 166
    functionDepth: 6
    functionLinenumber: 166
    functionLinenumberEnd: 189
    functionName: fu_himax_tp_hid_device_register_write
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_himax_tp_reg_rw_set_reg_value
    - fu_himax_tp_hid_device_set_feature
    - fu_struct_himax_tp_reg_rw_new
    - g_prefix_error
    - fu_struct_himax_tp_reg_rw_set_reg_addr
    - fu_struct_himax_tp_reg_rw_set_rw_flag
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_register_write(FuHimaxTpHidDevice
      *self,\n\t\t\t\t      guint32 reg_addr,\n\t\t\t\t      guint32 reg_value,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:197,1
    - Dst: fu_struct_himax_tp_reg_rw_new
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:197,1
    - Dst: fu_struct_himax_tp_reg_rw_set_reg_addr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:199,1
    - Dst: fu_himax_tp_hid_device_set_feature
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:200,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:206,1
    - Dst: fu_himax_tp_hid_device_get_feature
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:209,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:214,1
    - Dst: fu_struct_himax_tp_reg_rw_get_reg_value
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - self
    - reg_addr
    - reg_value
    - error
    argTypes:
    - FuHimaxTpHidDevice*
    - guint32
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 191
    functionDepth: 6
    functionLinenumber: 191
    functionLinenumberEnd: 221
    functionName: fu_himax_tp_hid_device_register_read
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_himax_tp_hid_device_set_feature
    - fu_struct_himax_tp_reg_rw_new
    - g_prefix_error
    - fu_struct_himax_tp_reg_rw_set_reg_addr
    - fu_himax_tp_hid_device_get_feature
    - g_autoptr
    - fu_struct_himax_tp_reg_rw_get_reg_value
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_register_read(FuHimaxTpHidDevice *self,\n\t\t\t\t
      \    guint32 reg_addr,\n\t\t\t\t     guint32 *reg_value,\n\t\t\t\t     GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:231,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:232,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:234,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:234,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:237,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:237,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:241,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:241,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:243,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:250,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:250,1
    - Dst: fu_size_checked_inc_product
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - report
    - report_id
    - size
    - error
    argTypes:
    - FuHidReport*
    - guint8
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 256
    functionName: fu_himax_tp_hid_device_get_size_by_id
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_FIRMWARE
    - fu_firmware_get_image_by_id
    - fu_hid_report_item_get_value
    - g_autoptr
    - FU_HID_REPORT_ITEM
    - fu_size_checked_inc_product
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_get_size_by_id(FuHidReport *report,\n\t\t\t\t
      \     guint8 report_id,\n\t\t\t\t      gsize *size,\n\t\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_himax_tp_hid_device_register_write
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:270,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:274,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:282,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - sequence
    - seq_count
    - error
    argTypes:
    - FuHimaxTpHidDevice*
    - FuHimaxTpHidDeviceRegisterWriteItem*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 263
    functionDepth: 7
    functionLinenumber: 263
    functionLinenumberEnd: 287
    functionName: fu_himax_tp_hid_device_register_write_items
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_himax_tp_hid_device_register_write
    - g_prefix_error
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_register_write_items(FuHimaxTpHidDevice
      *self,\n\t\t\t\t\t    FuHimaxTpHidDeviceRegisterWriteItem *sequence,\n\t\t\t\t\t
      \   gsize seq_count,\n\t\t\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_himax_tp_hid_device_register_write_items
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:299,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:301,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:303,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:307,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:307,1
    - Dst: fu_himax_tp_hid_device_register_read
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:309,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:313,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHimaxTpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 289
    functionDepth: 8
    functionLinenumber: 289
    functionLinenumberEnd: 328
    functionName: fu_himax_tp_hid_device_ensure_flash_id
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_himax_tp_hid_device_register_read
    - fu_device_sleep
    - g_set_error_literal
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_himax_tp_hid_device_register_write_items
    - G_N_ELEMENTS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_himax_tp_hid_device_ensure_flash_id(FuHimaxTpHidDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHimaxTpHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 336
    functionName: fu_himax_tp_hid_device_get_block_protect_mask
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_himax_tp_hid_device_get_block_protect_mask(FuHimaxTpHidDevice
      *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHimaxTpHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: fu_himax_tp_hid_device_get_write_delay
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint
    signature: guint fu_himax_tp_hid_device_get_write_delay(FuHimaxTpHidDevice *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_himax_tp_hid_device_get_block_protect_mask
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:351,1
    - Dst: fu_himax_tp_hid_device_register_write_items
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:359,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:361,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:363,1
    - Dst: fu_himax_tp_hid_device_register_read
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:367,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - flash_status
    - error
    argTypes:
    - FuHimaxTpHidDevice*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 346
    functionDepth: 8
    functionLinenumber: 346
    functionLinenumberEnd: 377
    functionName: fu_himax_tp_hid_device_get_flash_status
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_himax_tp_hid_device_register_read
    - fu_himax_tp_hid_device_get_block_protect_mask
    - g_prefix_error_literal
    - fu_himax_tp_hid_device_register_write_items
    - G_N_ELEMENTS
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_get_flash_status(FuHimaxTpHidDevice
      *self,\n\t\t\t\t\tgboolean *flash_status,\n\t\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_himax_tp_hid_device_register_read
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:386,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:390,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:394,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:396,1
    - Dst: fu_himax_tp_hid_device_register_write
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:397,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - enable
    - error
    argTypes:
    - FuHimaxTpHidDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 379
    functionDepth: 7
    functionLinenumber: 379
    functionLinenumberEnd: 407
    functionName: fu_himax_tp_hid_device_switch_write_protect
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_himax_tp_hid_device_register_read
    - FU_BIT_SET
    - g_prefix_error_literal
    - FU_BIT_CLEAR
    - fu_himax_tp_hid_device_register_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_switch_write_protect(FuHimaxTpHidDevice
      *self,\n\t\t\t\t\t    gboolean enable,\n\t\t\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIMAX_TP_HID_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:414,1
    - Dst: fu_himax_tp_hid_device_register_write
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:417,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:421,1
    - Dst: fu_himax_tp_hid_device_register_read
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:424,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:428,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 409
    functionDepth: 7
    functionLinenumber: 409
    functionLinenumberEnd: 441
    functionName: fu_himax_tp_hid_device_switch_block_protect_retry_cb
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_himax_tp_hid_device_register_read
    - g_set_error_literal
    - g_prefix_error_literal
    - FU_HIMAX_TP_HID_DEVICE
    - fu_himax_tp_hid_device_register_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_switch_block_protect_retry_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_himax_tp_hid_device_get_block_protect_mask
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:459,1
    - Dst: fu_himax_tp_hid_device_register_write_items
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:460,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:462,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:464,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:467,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:467,1
    - Dst: fu_himax_tp_hid_device_get_write_delay
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:467,1
    - Dst: fu_himax_tp_hid_device_register_write
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:470,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:474,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:477,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:477,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:478,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:478,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:483,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - self
    - enable
    - error
    argTypes:
    - FuHimaxTpHidDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 443
    functionDepth: 8
    functionLinenumber: 443
    functionLinenumberEnd: 489
    functionName: fu_himax_tp_hid_device_switch_block_protect
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_set_delay
    - fu_himax_tp_hid_device_get_block_protect_mask
    - fu_device_sleep
    - fu_himax_tp_hid_device_get_write_delay
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_himax_tp_hid_device_register_write_items
    - G_N_ELEMENTS
    - fu_device_retry
    - fu_himax_tp_hid_device_register_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_switch_block_protect(FuHimaxTpHidDevice
      *self,\n\t\t\t\t\t    gboolean enable,\n\t\t\t\t\t    GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_himax_tp_hid_device_get_flash_status
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:497,1
    - Dst: fu_himax_tp_hid_device_switch_write_protect
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:503,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:504,1
    - Dst: fu_himax_tp_hid_device_switch_block_protect
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:507,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:508,1
    - Dst: fu_himax_tp_hid_device_get_flash_status
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:513,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:516,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHimaxTpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 491
    functionDepth: 9
    functionLinenumber: 491
    functionLinenumberEnd: 525
    functionName: fu_himax_tp_hid_device_unlock_flash
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_himax_tp_hid_device_switch_write_protect
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_himax_tp_hid_device_get_flash_status
    - fu_himax_tp_hid_device_switch_block_protect
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_himax_tp_hid_device_unlock_flash(FuHimaxTpHidDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIMAX_TP_HID_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:532,1
    - Dst: fu_himax_tp_hid_device_get_feature
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:536,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:543,1
    - Dst: fu_himax_tp_fw_status_to_string
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:547,1
    - Dst: fu_himax_tp_fw_status_to_string
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 527
    functionDepth: 6
    functionLinenumber: 527
    functionLinenumberEnd: 556
    functionName: fu_himax_tp_hid_device_wait_fw_update_handshaking_cb
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_himax_tp_fw_status_to_string
    - fu_himax_tp_hid_device_get_feature
    - FU_HIMAX_TP_HID_DEVICE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_wait_fw_update_handshaking_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/himax-tp/fu-himax-tp-hid-device.c:564,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:564,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:570,1
    - Dst: fu_himax_tp_fw_status_to_string
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - status
    - timeout_ms
    - error
    argTypes:
    - FuHimaxTpHidDevice*
    - FuHimaxTpFwStatus
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 558
    functionDepth: 3
    functionLinenumber: 558
    functionLinenumberEnd: 579
    functionName: fu_himax_tp_hid_device_wait_fw_update_handshaking
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_himax_tp_fw_status_to_string
    - g_prefix_error
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_wait_fw_update_handshaking(FuHimaxTpHidDevice
      *self,\n\t\t\t\t\t\t  FuHimaxTpFwStatus status,\n\t\t\t\t\t\t  guint timeout_ms,\n\t\t\t\t\t\t
      \ GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:590,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:590,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:593,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:594,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:595,1
    - Dst: fu_himax_tp_hid_device_wait_fw_update_handshaking
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:598,1
    - Dst: fu_struct_himax_tp_hid_fw_unit_get_cmd
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:600,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:604,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:607,1
    - Dst: fu_byte_array_append_safe
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:608,1
    - Dst: fu_struct_himax_tp_hid_fw_unit_get_bin_start_offset
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:612,1
    - Dst: fu_struct_himax_tp_hid_fw_unit_get_bin_size
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:613,1
    - Dst: fu_himax_tp_hid_device_set_feature
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:616,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:620,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:622,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - self
    - st_unit
    - fw
    - progress
    - error
    argTypes:
    - FuHimaxTpHidDevice*
    - FuStructHimaxTpHidFwUnit*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 581
    functionDepth: 6
    functionLinenumber: 581
    functionLinenumberEnd: 629
    functionName: fu_himax_tp_hid_device_write_unit
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_himax_tp_hid_fw_unit_get_bin_size
    - fu_himax_tp_hid_device_set_feature
    - fu_struct_himax_tp_hid_fw_unit_get_cmd
    - fu_progress_add_step
    - fu_struct_himax_tp_hid_fw_unit_get_bin_start_offset
    - g_bytes_get_data
    - fu_himax_tp_hid_device_wait_fw_update_handshaking
    - fu_progress_step_done
    - fu_byte_array_append_safe
    - g_prefix_error_literal
    - g_byte_array_new
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_write_unit(FuHimaxTpHidDevice *self,\n\t\t\t\t
      \ FuStructHimaxTpHidFwUnit *st_unit,\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: fu_progress_set_id
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:639,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:640,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:643,1
    - Dst: fu_himax_tp_hid_device_write_unit
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:644,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:647,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:650,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - self
    - st_units
    - fw
    - progress
    - error
    argTypes:
    - FuHimaxTpHidDevice*
    - GPtrArray*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 631
    functionDepth: 7
    functionLinenumber: 631
    functionLinenumberEnd: 655
    functionName: fu_himax_tp_hid_device_write_units
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_steps
    - fu_himax_tp_hid_device_write_unit
    - fu_progress_step_done
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_write_units(FuHimaxTpHidDevice *self,\n\t\t\t\t
      \  GPtrArray *st_units,\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: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:666,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:669,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:670,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:671,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:672,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:673,1
    - Dst: fu_himax_tp_hid_device_get_feature
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:676,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:681,1
    - Dst: fu_himax_tp_hid_device_ensure_flash_id
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:684,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:685,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:686,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:687,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:691,1
    - Dst: fu_himax_tp_hid_device_unlock_flash
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:693,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:696,1
    - Dst: fu_himax_tp_hid_device_set_feature
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:699,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:703,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:705,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:708,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:708,1
    - Dst: fu_himax_tp_hid_device_unlock_flash
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:710,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:713,1
    - Dst: fu_himax_tp_hid_device_write_units
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:716,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:719,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:722,1
    - Dst: fu_himax_tp_hid_device_wait_fw_update_handshaking
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:725,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:730,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:730,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:731,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 6
    argNames:
    - self
    - st_units
    - start_cmd
    - fw
    - progress
    - error
    argTypes:
    - FuHimaxTpHidDevice*
    - GPtrArray*
    - guint8
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 657
    functionDepth: 10
    functionLinenumber: 657
    functionLinenumberEnd: 735
    functionName: fu_himax_tp_hid_device_write_process
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_himax_tp_hid_device_write_units
    - fu_himax_tp_hid_device_set_feature
    - g_debug
    - fu_progress_add_step
    - fu_device_sleep
    - fu_himax_tp_hid_device_unlock_flash
    - g_steal_pointer
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_himax_tp_hid_device_wait_fw_update_handshaking
    - FU_DEVICE
    - g_propagate_prefixed_error
    - g_error_matches
    - fu_himax_tp_hid_device_get_feature
    - g_autoptr
    - fu_progress_get_child
    - fu_himax_tp_hid_device_ensure_flash_id
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_write_process(FuHimaxTpHidDevice *self,\n\t\t\t\t
      \    GPtrArray *st_units,\n\t\t\t\t     guint8 start_cmd,\n\t\t\t\t     GBytes
      *fw,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:743,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:744,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:746,1
    - Dst: fu_struct_himax_tp_hid_info_get_bl_mapping
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:746,1
    - Dst: fu_himax_tp_hid_device_write_process
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuHimaxTpHidDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 737
    functionDepth: 11
    functionLinenumber: 737
    functionLinenumberEnd: 753
    functionName: fu_himax_tp_hid_device_bootloader_update
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_add
    - fu_himax_tp_hid_device_write_process
    - fu_struct_himax_tp_hid_info_get_bl_mapping
    - g_autoptr
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_bootloader_update(FuHimaxTpHidDevice
      *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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:761,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:762,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:766,1
    - Dst: fu_struct_himax_tp_hid_info_get_main_mapping
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:767,1
    - Dst: fu_struct_himax_tp_hid_fw_unit_get_bin_size
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:768,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:770,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:770,1
    - Dst: fu_himax_tp_hid_device_write_process
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:772,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuHimaxTpHidDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 755
    functionDepth: 11
    functionLinenumber: 755
    functionLinenumberEnd: 778
    functionName: fu_himax_tp_hid_device_main_update
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_himax_tp_hid_fw_unit_get_bin_size
    - g_steal_pointer
    - g_ptr_array_add
    - fu_himax_tp_hid_device_write_process
    - fu_struct_himax_tp_hid_info_get_main_mapping
    - g_autoptr
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_main_update(FuHimaxTpHidDevice *self,\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_strcmp0
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:784,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:784,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:784,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:785,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:789,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 795
    functionName: fu_himax_tp_hid_device_probe
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_DEVICE
    - g_strcmp0
    - fu_udev_device_get_subsystem
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_himax_tp_hid_device_probe(FuDevice *device, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIMAX_TP_HID_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:800,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:803,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:804,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:804,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:805,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:808,1
    - Dst: fu_hidraw_device_parse_descriptor
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:810,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:810,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:813,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:813,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:815,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:816,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:819,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:819,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:822,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:823,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:823,1
    - Dst: fu_himax_tp_hid_device_get_size_by_id
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:830,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:835,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:835,1
    - Dst: fu_himax_tp_hid_device_size_lookup
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:838,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:840,1
    - Dst: fu_himax_tp_hid_device_get_feature
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:841,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:846,1
    - Dst: fu_struct_himax_tp_hid_info_unref
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:850,1
    - Dst: fu_struct_himax_tp_hid_info_parse
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:851,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:856,1
    - Dst: fu_struct_himax_tp_hid_info_get_cid
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:858,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:860,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:865,1
    - Dst: fu_struct_himax_tp_hid_info_get_cid
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:866,1
    - Dst: fu_struct_himax_tp_hid_info_get_tp_cfg_ver
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:867,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:868,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 797
    functionDepth: 7
    functionLinenumber: 797
    functionLinenumberEnd: 872
    functionName: fu_himax_tp_hid_device_setup
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_himax_tp_hid_info_parse
    - fu_device_set_version
    - g_ptr_array_set_size
    - fu_firmware_get_image_by_id
    - g_strdup_printf
    - fu_hid_report_item_get_value
    - fu_himax_tp_hid_device_get_feature
    - FU_HID_REPORT_ITEM
    - g_ptr_array_index
    - g_new0
    - fu_device_build_instance_id
    - g_prefix_error_literal
    - fu_firmware_get_images
    - g_byte_array_new
    - fu_struct_himax_tp_hid_info_get_tp_cfg_ver
    - fu_himax_tp_hid_device_get_size_by_id
    - fu_hidraw_device_parse_descriptor
    - FU_FIRMWARE
    - FU_HIDRAW_DEVICE
    - fu_struct_himax_tp_hid_info_unref
    - fu_device_add_instance_u8
    - g_steal_pointer
    - g_ptr_array_add
    - fu_himax_tp_hid_device_size_lookup
    - FU_HIMAX_TP_HID_DEVICE
    - g_autoptr
    - fu_byte_array_set_size
    - fu_struct_himax_tp_hid_info_get_cid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_himax_tp_hid_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIMAX_TP_HID_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:877,1
    - Dst: fu_himax_tp_hid_device_size_lookup
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:881,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:885,1
    - Dst: fu_himax_tp_hid_device_set_feature
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:890,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:896,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 874
    functionDepth: 6
    functionLinenumber: 874
    functionLinenumberEnd: 903
    functionName: fu_himax_tp_hid_device_attach
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_himax_tp_hid_device_set_feature
    - fu_device_sleep
    - g_prefix_error_literal
    - fu_himax_tp_hid_device_size_lookup
    - FU_HIMAX_TP_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_himax_tp_hid_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:912,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:913,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:914,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:915,1
    - Dst: fu_himax_tp_hid_device_bootloader_update
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:918,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:920,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:922,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:925,1
    - Dst: fu_himax_tp_hid_device_main_update
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:928,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:928,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:929,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:932,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuHimaxTpHidDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 905
    functionDepth: 12
    functionLinenumber: 905
    functionLinenumberEnd: 936
    functionName: fu_himax_tp_hid_device_write_recovery
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_add_flag
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_himax_tp_hid_device_bootloader_update
    - fu_himax_tp_hid_device_main_update
    - fu_progress_get_child
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_write_recovery(FuHimaxTpHidDevice
      *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: FU_HIMAX_TP_HID_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:945,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:946,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:947,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:950,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:951,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:952,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:955,1
    - Dst: fu_himax_tp_hid_device_main_update
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:958,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:960,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:962,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:963,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:964,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:968,1
    - Dst: fu_himax_tp_hid_device_write_recovery
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:969,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:971,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:974,1
    - Dst: fu_himax_tp_hid_device_bootloader_update
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:975,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:977,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:979,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:982,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 938
    functionDepth: 13
    functionLinenumber: 938
    functionLinenumberEnd: 986
    functionName: fu_himax_tp_hid_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_himax_tp_hid_device_write_recovery
    - fu_firmware_get_bytes
    - fu_progress_add_step
    - fu_progress_reset
    - fu_device_sleep
    - g_steal_pointer
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_himax_tp_hid_device_bootloader_update
    - FU_HIMAX_TP_HID_DEVICE
    - g_error_matches
    - g_propagate_prefixed_error
    - fu_himax_tp_hid_device_main_update
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_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/himax-tp/fu-himax-tp-hid-device.c:991,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:992,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:993,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:994,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:995,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 988
    functionDepth: 3
    functionLinenumber: 988
    functionLinenumberEnd: 997
    functionName: fu_himax_tp_hid_device_set_progress
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_himax_tp_hid_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIMAX_TP_HID_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1005,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1012,1
    - Dst: fu_himax_tp_firmware_get_vid
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1013,1
    - Dst: FU_HIMAX_TP_FIRMWARE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1013,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1014,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1023,1
    - Dst: fu_himax_tp_firmware_get_pid
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1024,1
    - Dst: FU_HIMAX_TP_FIRMWARE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1024,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1025,1
    - Dst: fu_struct_himax_tp_hid_info_get_cid
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1033,1
    - Dst: fu_himax_tp_firmware_get_cid
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1034,1
    - Dst: FU_HIMAX_TP_FIRMWARE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1034,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1035,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 999
    functionDepth: 1
    functionLinenumber: 999
    functionLinenumberEnd: 1045
    functionName: fu_himax_tp_hid_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - FU_HIMAX_TP_FIRMWARE
    - fu_himax_tp_firmware_get_pid
    - g_set_error_literal
    - fu_himax_tp_firmware_get_vid
    - fu_device_get_vid
    - FU_HIMAX_TP_HID_DEVICE
    - fu_himax_tp_firmware_get_cid
    - fu_struct_himax_tp_hid_info_get_cid
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_hid_device_check_firmware(FuDevice *device,\n\t\t\t\t
      \     FuFirmware *firmware,\n\t\t\t\t      FuFirmwareParseFlags flags,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIMAX_TP_HID_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1050,1
    - Dst: fu_struct_himax_tp_hid_info_unref
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1052,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1053,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1055
    functionName: fu_himax_tp_hid_device_finalize
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_himax_tp_hid_info_unref
    - FU_HIMAX_TP_HID_DEVICE
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    linkageType: ''
    returnType: void
    signature: void fu_himax_tp_hid_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1060,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1060,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1061,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1061,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1062,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1062,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1063,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1063,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1064,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1064,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1065,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1065,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1066,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1066,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1067,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1067,1
    - Dst: fu_device_set_firmware_size_min
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1068,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1068,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1069,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1069,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1070,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1070,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1071,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1071,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1072,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1072,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1073,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1073,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHimaxTpHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1057
    functionDepth: 6
    functionLinenumber: 1057
    functionLinenumberEnd: 1075
    functionName: fu_himax_tp_hid_device_init
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_firmware_size_min
    - fu_device_add_icon
    - fu_device_set_name
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - g_ptr_array_new_with_free_func
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    linkageType: ''
    returnType: void
    signature: void fu_himax_tp_hid_device_init(FuHimaxTpHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1080,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c:1081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHimaxTpHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1077
    functionDepth: 0
    functionLinenumber: 1077
    functionLinenumberEnd: 1091
    functionName: fu_himax_tp_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_himax_tp_hid_device_class_init(FuHimaxTpHidDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:34,1
    - Dst: FU_IS_HIMAX_TP_FIRMWARE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHimaxTpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_himax_tp_firmware_get_cid
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_HIMAX_TP_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_himax_tp_firmware_get_cid(FuHimaxTpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:41,1
    - Dst: FU_IS_HIMAX_TP_FIRMWARE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHimaxTpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: fu_himax_tp_firmware_get_vid
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_HIMAX_TP_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_himax_tp_firmware_get_vid(FuHimaxTpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:48,1
    - Dst: FU_IS_HIMAX_TP_FIRMWARE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHimaxTpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: fu_himax_tp_firmware_get_pid
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_HIMAX_TP_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_himax_tp_firmware_get_pid(FuHimaxTpFirmware *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - crc
    - buf
    - bufsz
    argTypes:
    - guint32
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 88
    functionName: fu_himax_tp_firmware_calculate_crc32c
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_himax_tp_firmware_calculate_crc32c(guint32 crc, const guint8
      *buf, gsize bufsz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:97,1
    - Dst: fu_himax_tp_firmware_calculate_crc32c
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:104,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: 106
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 106
    functionName: fu_himax_tp_firmware_checksum_cb
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_himax_tp_firmware_calculate_crc32c
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_himax_tp_firmware_checksum_cb(const guint8 *buf, gsize
      bufsz, gpointer user_data, GError **error)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:117,1
    - Dst: fu_struct_himax_tp_map_code_parse_stream
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:120,1
    - Dst: fu_struct_himax_tp_map_code_get_cs
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:125,1
    - Dst: fu_struct_himax_tp_map_code_get_cs
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:131,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:134,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:137,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:138,1
    - Dst: fu_struct_himax_tp_map_code_get_flash_addr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:145,1
    - Dst: fu_struct_himax_tp_map_code_get_mcode
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:146,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:147,1
    - Dst: fu_struct_himax_tp_map_code_get_mcode
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:153,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:155,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:157,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:157,1
    - Dst: fu_struct_himax_tp_map_code_get_mcode
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:160,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:161,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:163,1
    - Dst: fu_struct_himax_tp_map_code_get_mcode
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:167,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:168,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:171,1
    - Dst: fu_struct_himax_tp_ic_id_parse_stream
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:177,1
    - Dst: fu_struct_himax_tp_ic_id_get_desc
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:180,1
    - Dst: fu_struct_himax_tp_ic_id_get_vid
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:181,1
    - Dst: fu_struct_himax_tp_ic_id_get_pid
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:182,1
    - Dst: fu_struct_himax_tp_map_code_get_mcode
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:185,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:186,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:189,1
    - Dst: fu_struct_himax_tp_ic_id_mod_parse_stream
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:195,1
    - Dst: fu_struct_himax_tp_ic_id_mod_get_desc
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:198,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 5
    argNames:
    - self
    - stream
    - offset
    - done
    - error
    argTypes:
    - FuHimaxTpFirmware*
    - GInputStream*
    - gsize
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 204
    functionName: fu_himax_tp_firmware_parse_map_code
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_himax_tp_map_code_get_flash_addr
    - fu_firmware_set_version_raw
    - fu_input_stream_read_u8
    - fu_input_stream_read_u16
    - fu_struct_himax_tp_ic_id_parse_stream
    - fu_struct_himax_tp_ic_id_get_desc
    - fu_struct_himax_tp_ic_id_get_vid
    - g_set_error_literal
    - FU_FIRMWARE
    - fu_sum8
    - fu_struct_himax_tp_ic_id_mod_parse_stream
    - fu_struct_himax_tp_map_code_parse_stream
    - fu_struct_himax_tp_ic_id_get_pid
    - fu_struct_himax_tp_ic_id_mod_get_desc
    - g_autoptr
    - fu_struct_himax_tp_map_code_get_cs
    - fu_struct_himax_tp_map_code_get_mcode
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_firmware_parse_map_code(FuHimaxTpFirmware *self,\n\t\t\t\t
      \   GInputStream *stream,\n\t\t\t\t    gsize offset,\n\t\t\t\t    gboolean *done,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIMAX_TP_FIRMWARE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:212,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:216,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:219,1
    - Dst: fu_himax_tp_firmware_parse_map_code
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:230,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 206
    functionDepth: 5
    functionLinenumber: 206
    functionLinenumberEnd: 238
    functionName: fu_himax_tp_firmware_parse
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_chunkify
    - fu_himax_tp_firmware_parse_map_code
    - g_set_error_literal
    - FU_HIMAX_TP_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_himax_tp_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_HIMAX_TP_FIRMWARE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:243,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:245,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:246,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:247,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 249
    functionName: fu_himax_tp_firmware_export
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    - FU_HIMAX_TP_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_himax_tp_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIMAX_TP_FIRMWARE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:254,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:258,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:261,1
    - Dst: g_free
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:263,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:264,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:266,1
    - Dst: g_free
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:268,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:269,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:271,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:274,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 280
    functionName: fu_himax_tp_firmware_build
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - xb_node_query_text
    - FU_HIMAX_TP_FIRMWARE
    - xb_node_query_text_as_uint
    - g_free
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_himax_tp_firmware_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIMAX_TP_FIRMWARE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:285,1
    - Dst: g_free
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:287,1
    - Dst: g_free
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:288,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 291
    functionName: fu_himax_tp_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_HIMAX_TP_FIRMWARE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_himax_tp_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:296,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:296,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:297,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHimaxTpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 298
    functionName: fu_himax_tp_firmware_init
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_himax_tp_firmware_init(FuHimaxTpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:303,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHimaxTpFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 309
    functionName: fu_himax_tp_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_himax_tp_firmware_class_init(FuHimaxTpFirmwareClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:75,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:75,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:78,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:78,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:91,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:95,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 68
    functionDepth: 4
    functionLinenumber: 68
    functionLinenumberEnd: 99
    functionName: fu_genesys_scaler_device_enter_serial_debug_mode
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_enter_serial_debug_mode(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:107,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:107,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:110,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:110,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 101
    functionDepth: 4
    functionLinenumber: 101
    functionLinenumberEnd: 129
    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_literal
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_exit_serial_debug_mode(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:138,1
    - Dst: FU_DEVICE
      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:141,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:141,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:154,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:158,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:158,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 131
    functionDepth: 4
    functionLinenumber: 131
    functionLinenumberEnd: 177
    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_literal
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_enter_single_step_mode(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:185,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:185,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:188,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:188,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 179
    functionDepth: 4
    functionLinenumber: 179
    functionLinenumberEnd: 207
    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_literal
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_exit_single_step_mode(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:215,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:215,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:218,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:218,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 209
    functionDepth: 4
    functionLinenumber: 209
    functionLinenumberEnd: 237
    functionName: fu_genesys_scaler_device_enter_debug_mode
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_enter_debug_mode(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:245,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:245,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:249,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:249,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 239
    functionDepth: 4
    functionLinenumber: 239
    functionLinenumberEnd: 269
    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_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_mst_i2c_bus_ctrl(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      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: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 302
    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_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_mst_i2c_bus_switch_to_ch0(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:311,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:311,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:315,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:315,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 335
    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_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_mst_i2c_bus_switch_to_ch4(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:356,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:356,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:359,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:359,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:372,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: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:400,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:415,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:415,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:428,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:442,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:442,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:455,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:462,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:462,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:475,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:483,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:495,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:495,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:508,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - self
    - disable
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 337
    functionDepth: 4
    functionLinenumber: 337
    functionLinenumberEnd: 518
    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_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_disable_wp(FuGenesysScalerDevice
      *self, gboolean disable, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:532,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:532,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:535,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:535,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:548,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:558,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:558,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:571,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:582,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:595,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:595,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:608,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:618,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:618,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 520
    functionDepth: 4
    functionLinenumber: 520
    functionLinenumberEnd: 622
    functionName: fu_genesys_scaler_device_pause_r2_cpu
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_sleep
    - g_prefix_error
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_pause_r2_cpu(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:627,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:631,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:631,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:634,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:634,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:649,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 624
    functionDepth: 4
    functionLinenumber: 624
    functionLinenumberEnd: 653
    functionName: fu_genesys_scaler_device_set_isp_mode_cb
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - FU_GENESYS_SCALER_DEVICE
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_set_isp_mode_cb(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:665,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:665,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:671,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 677
    functionName: fu_genesys_scaler_device_enter_isp_mode
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_prefix_error_literal
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_enter_isp_mode(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:685,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:685,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:688,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:688,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:701,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 679
    functionDepth: 4
    functionLinenumber: 679
    functionLinenumberEnd: 707
    functionName: fu_genesys_scaler_device_exit_isp_mode
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    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:712,1
    - Dst: fu_genesys_scaler_device_enter_serial_debug_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:719,1
    - Dst: fu_genesys_scaler_device_enter_single_step_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:722,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:725,1
    - Dst: fu_genesys_scaler_device_mst_i2c_bus_switch_to_ch0
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:726,1
    - Dst: fu_genesys_scaler_device_enter_debug_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:729,1
    - Dst: fu_genesys_scaler_device_mst_i2c_bus_ctrl
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:732,1
    - Dst: fu_genesys_scaler_device_disable_wp
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:735,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:738,1
    - Dst: fu_genesys_scaler_device_mst_i2c_bus_switch_to_ch4
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:739,1
    - Dst: fu_genesys_scaler_device_mst_i2c_bus_ctrl
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:742,1
    - Dst: fu_genesys_scaler_device_pause_r2_cpu
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:745,1
    - Dst: fu_genesys_scaler_device_enter_isp_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:749,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 709
    functionDepth: 5
    functionLinenumber: 709
    functionLinenumberEnd: 754
    functionName: fu_genesys_scaler_device_detach
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_scaler_device_enter_isp_mode
    - fu_genesys_scaler_device_enter_debug_mode
    - fu_genesys_scaler_device_enter_serial_debug_mode
    - fu_device_has_private_flag
    - FU_GENESYS_SCALER_DEVICE
    - fu_genesys_scaler_device_disable_wp
    - fu_genesys_scaler_device_mst_i2c_bus_switch_to_ch4
    - fu_genesys_scaler_device_mst_i2c_bus_switch_to_ch0
    - fu_genesys_scaler_device_enter_single_step_mode
    - fu_genesys_scaler_device_mst_i2c_bus_ctrl
    - fu_genesys_scaler_device_pause_r2_cpu
    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:759,1
    - Dst: fu_genesys_scaler_device_exit_single_step_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:761,1
    - Dst: fu_genesys_scaler_device_exit_serial_debug_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:764,1
    - Dst: fu_genesys_scaler_device_exit_isp_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:767,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 756
    functionDepth: 5
    functionLinenumber: 756
    functionLinenumberEnd: 772
    functionName: fu_genesys_scaler_device_attach
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_scaler_device_exit_serial_debug_mode
    - fu_genesys_scaler_device_exit_isp_mode
    - fu_genesys_scaler_device_exit_single_step_mode
    - FU_GENESYS_SCALER_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:779,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:779,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:782,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:782,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:795,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:798,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:798,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - level
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 774
    functionDepth: 4
    functionLinenumber: 774
    functionLinenumberEnd: 802
    functionName: fu_genesys_scaler_device_get_level
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_get_level(FuGenesysScalerDevice *self,
      guint8 *level, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:812,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:812,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:815,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:815,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:828,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:832,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:832,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 804
    functionDepth: 4
    functionLinenumber: 804
    functionLinenumberEnd: 836
    functionName: fu_genesys_scaler_device_get_version
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:846,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:848,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:848,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:851,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:855,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:857,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:857,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:863,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:864,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:865,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:870,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:874,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:874,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 838
    functionDepth: 4
    functionLinenumber: 838
    functionLinenumberEnd: 879
    functionName: fu_genesys_scaler_device_get_public_key
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_chunk_array_mutable_new
    - fu_chunk_get_address
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - g_autoptr
    - g_ptr_array_index
    - fu_usb_device_control_transfer
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:903,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:905,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:908,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:908,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:911,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:911,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:924,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:928,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:928,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:941,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:945,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:948,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:949,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:951,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:953,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:953,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:960,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:961,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:966,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:968,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:971,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:974,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:974,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:987,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 6
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint
    - guint8*
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 881
    functionDepth: 4
    functionLinenumber: 881
    functionLinenumberEnd: 993
    functionName: fu_genesys_scaler_device_read_flash
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_id
    - fu_chunk_get_data_sz
    - fu_cfi_device_get_cmd
    - fu_progress_set_steps
    - g_prefix_error
    - fu_chunk_get_data_out
    - fu_progress_step_done
    - FU_DEVICE
    - fu_chunk_array_mutable_new
    - fu_chunk_get_address
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - g_autoptr
    - g_ptr_array_index
    - fu_usb_device_control_transfer
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1000,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1005,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1005,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1008,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1008,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1021,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1026,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - dev
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 995
    functionDepth: 4
    functionLinenumber: 995
    functionLinenumberEnd: 1035
    functionName: fu_genesys_scaler_device_wait_flash_control_register_cb
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_prefix_error_literal
    - FU_GENESYS_SCALER_DEVICE
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1049,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1052,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1052,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1055,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1055,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1068,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1072,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1072,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1085,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1037
    functionDepth: 4
    functionLinenumber: 1037
    functionLinenumberEnd: 1091
    functionName: fu_genesys_scaler_device_flash_control_write_enable
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_cfi_device_get_cmd
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_scaler_device_flash_control_write_enable(FuGenesysScalerDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1108,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1114,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1114,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1117,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1117,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1130,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1134,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1134,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1093
    functionDepth: 4
    functionLinenumber: 1093
    functionLinenumberEnd: 1153
    functionName: fu_genesys_scaler_device_flash_control_write_status
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_cfi_device_get_cmd
    - g_prefix_error
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1176,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1182,1
    - Dst: fu_genesys_scaler_device_flash_control_write_enable
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1188,1
    - Dst: fu_genesys_scaler_device_flash_control_write_status
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1191,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1195,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1195,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1201,1
    - Dst: fu_genesys_scaler_device_flash_control_write_enable
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1206,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1209,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1209,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1212,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1212,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1225,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1231,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1231,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1244,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1251,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1251,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1257,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1155
    functionDepth: 5
    functionLinenumber: 1155
    functionLinenumberEnd: 1264
    functionName: fu_genesys_scaler_device_flash_control_sector_erase
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_scaler_device_flash_control_write_enable
    - fu_genesys_scaler_device_flash_control_write_status
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - fu_usb_device_control_transfer
    - g_prefix_error
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1273,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1275,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1278,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1279,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1281,1
    - Dst: fu_genesys_scaler_device_flash_control_sector_erase
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1283,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1284,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1286,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1288,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - self
    - addr
    - bufsz
    - progress
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1266
    functionDepth: 6
    functionLinenumber: 1266
    functionLinenumberEnd: 1296
    functionName: fu_genesys_scaler_device_erase_flash
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_chunk_get_address
    - fu_genesys_scaler_device_flash_control_sector_erase
    - g_autoptr
    - g_ptr_array_index
    - fu_progress_set_id
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1319,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1322,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1328,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1332,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1333,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1342,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1352,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1352,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1356,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_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1373,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1373,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1380,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1381,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1386,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1389,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1392,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1396,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1396,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1401,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 6
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint
    - guint8*
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1298
    functionDepth: 4
    functionLinenumber: 1298
    functionLinenumberEnd: 1408
    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
    - g_ptr_array_index
    - fu_chunk_get_data_out
    - fu_progress_set_steps
    - g_prefix_error_literal
    - fu_chunk_array_mutable_new
    - fu_device_get_proxy
    - fu_usb_device_control_transfer
    - fu_progress_step_done
    - g_malloc0
    - FU_DEVICE
    - fu_device_retry
    - FU_USB_DEVICE
    - fu_chunk_get_address
    - fu_progress_set_id
    - g_prefix_error
    - fu_memcpy_safe
    - g_autoptr
    - 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1418,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1420,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1423,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1424,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1426,1
    - Dst: fu_genesys_scaler_device_flash_control_page_program
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1428,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1430,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1431,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1432,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1433,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1436,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint
    - guint8*
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1410
    functionDepth: 5
    functionLinenumber: 1410
    functionLinenumberEnd: 1441
    functionName: fu_genesys_scaler_device_write_sector
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - fu_genesys_scaler_device_flash_control_page_program
    - fu_progress_step_done
    - fu_chunk_get_address
    - fu_chunk_get_data
    - g_autoptr
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1451,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1453,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1456,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1457,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1459,1
    - Dst: fu_genesys_scaler_device_write_sector
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1461,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1462,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1463,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1464,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1465,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint
    - guint8*
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1443
    functionDepth: 6
    functionLinenumber: 1443
    functionLinenumberEnd: 1473
    functionName: fu_genesys_scaler_device_write_flash
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_genesys_scaler_device_write_sector
    - fu_chunk_get_address
    - fu_chunk_get_data
    - g_autoptr
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_xor8
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1486,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1488,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1488,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1501,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1505,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1505,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1507,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1507,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1510,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1510,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1523,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1527,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - self
    - cmd
    - buf
    - bufsz
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - guint8
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1475
    functionDepth: 4
    functionLinenumber: 1475
    functionLinenumberEnd: 1531
    functionName: fu_genesys_scaler_device_get_ddcci_data
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_xor8
    - fu_device_sleep
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_genesys_scaler_device_get_ddcci_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1541,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1555,1
    - Dst: fu_xor8_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1565,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1567,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1570,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - self
    - ver
    - error
    argTypes:
    - FuGenesysScalerDevice*
    - FuGenesysScalerFirmwarePacketVersion*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1533
    functionDepth: 5
    functionLinenumber: 1533
    functionLinenumberEnd: 1589
    functionName: fu_genesys_scaler_device_get_firmware_packet_version
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_xor8_safe
    - fu_memread_uint8_safe
    - fu_genesys_scaler_device_get_ddcci_data
    - g_set_error
    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:1594,1
    - Dst: fu_genesys_scaler_device_get_level
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1601,1
    - Dst: fu_genesys_scaler_device_get_public_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1604,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1609,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1610,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1611,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1615,1
    - Dst: fwupd_guid_hash_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1621,1
    - Dst: fu_genesys_scaler_device_get_version
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1625,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1628,1
    - Dst: fu_genesys_scaler_device_get_firmware_packet_version
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1631,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1634,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1635,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1636,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1637,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1640,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1641,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1642,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1643,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1645,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1654,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1591
    functionDepth: 7
    functionLinenumber: 1591
    functionLinenumberEnd: 1665
    functionName: fu_genesys_scaler_device_probe
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_add_flag
    - fu_device_set_version
    - fu_memstrsafe
    - fu_device_add_instance_strup
    - fu_device_add_instance_str
    - fu_genesys_scaler_device_get_level
    - g_set_error_literal
    - fu_device_build_instance_id
    - FU_GENESYS_SCALER_DEVICE
    - g_strdup_printf
    - memcmp
    - fu_genesys_scaler_device_get_version
    - fu_genesys_scaler_device_get_firmware_packet_version
    - fu_device_set_version_format
    - fu_dump_raw
    - fwupd_guid_hash_data
    - fu_genesys_scaler_device_get_public_key
    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:1670,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1671,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1677,1
    - Dst: fu_cfi_device_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1678,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1678,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1679,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1679,1
    - Dst: fu_cfi_device_get_sector_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1682,1
    - Dst: fu_cfi_device_get_page_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1685,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1689,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1692,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1692,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1694,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1667
    functionDepth: 4
    functionLinenumber: 1667
    functionLinenumberEnd: 1705
    functionName: fu_genesys_scaler_device_setup
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_GENESYS_SCALER_DEVICE
    - fu_device_setup
    - FU_DEVICE
    - g_strdup_printf
    - fu_cfi_device_new
    - fu_device_get_firmware_size_max
    - fu_device_has_flag
    - fu_cfi_device_get_page_size
    - 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:1710,1
    - Dst: fu_cfi_device_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1711,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1713,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1716,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1717,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1718,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1721,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1727,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1729,1
    - Dst: fu_genesys_scaler_device_read_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1730,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1734,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1737,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1740,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1740,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1707
    functionDepth: 5
    functionLinenumber: 1707
    functionLinenumberEnd: 1741
    functionName: fu_genesys_scaler_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - g_steal_pointer
    - fu_progress_step_done
    - FU_GENESYS_SCALER_DEVICE
    - g_malloc0
    - g_bytes_new_take
    - fu_cfi_device_get_size
    - fu_genesys_scaler_device_read_flash
    - g_autoptr
    - fu_progress_get_child
    - fu_device_locker_new_full
    - fu_progress_set_id
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_genesys_scaler_device_dump_firmware(FuDevice *device, FuProgress *progress,
      GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1749,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1750,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1751,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1755,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1758,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1760,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1761,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1762,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1762,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1766,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1774,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1777,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1777,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1778,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1782,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1783,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1743
    functionDepth: 5
    functionLinenumber: 1743
    functionLinenumberEnd: 1789
    functionName: fu_genesys_scaler_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_bytes_get_data
    - fu_firmware_get_image_by_id_bytes
    - g_set_error_literal
    - fu_dump_raw
    - FU_GENESYS_SCALER_DEVICE
    - memcmp
    - fu_device_get_firmware_size_max
    - g_bytes_get_size
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_scaler_device_check_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\t\tGError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1798,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1803,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1804,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1806,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1807,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1808,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1809,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1811,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1814,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1817,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1820,1
    - Dst: fu_genesys_scaler_device_erase_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1824,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1827,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1830,1
    - Dst: fu_genesys_scaler_device_write_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1832,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1836,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1839,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1841,1
    - Dst: fu_genesys_scaler_device_read_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1842,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1846,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1849,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1851,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: 1855
      start: 1791
    functionDepth: 7
    functionLinenumber: 1791
    functionLinenumberEnd: 1855
    functionName: fu_genesys_scaler_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_scaler_device_write_flash
    - fu_genesys_scaler_device_erase_flash
    - fu_memcmp_safe
    - fu_progress_add_step
    - fu_firmware_get_bytes
    - g_bytes_get_data
    - fu_progress_step_done
    - FU_GENESYS_SCALER_DEVICE
    - fu_firmware_get_image_by_id
    - g_malloc0
    - fu_device_has_flag
    - fu_genesys_scaler_device_read_flash
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:1860,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1861,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1862,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1863,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1864,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1857
    functionDepth: 3
    functionLinenumber: 1857
    functionLinenumberEnd: 1866
    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 *device, FuProgress
      *progress)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_SCALER_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1871,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1874,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1875,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1877,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1878,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1886,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1888,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1890,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1898,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1900,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1902,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1903,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1904,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1905,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1906,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1907,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1908,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1909,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1910,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1868
    functionDepth: 3
    functionLinenumber: 1868
    functionLinenumberEnd: 1911
    functionName: fu_genesys_scaler_device_to_string
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - FU_GENESYS_SCALER_DEVICE
    - fwupd_codec_string_append
    - fu_memcpy_safe
    - fwupd_codec_string_append_hex
    - g_autoptr
    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:1919,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1922,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1923,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1930,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1931,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1938,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1939,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1946,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1947,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1954,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1955,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1964,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1913
    functionDepth: 1
    functionLinenumber: 1913
    functionLinenumberEnd: 1969
    functionName: fu_genesys_scaler_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_strcmp0
    - g_set_error_literal
    - FU_GENESYS_SCALER_DEVICE
    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:1974,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1974,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1975,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1975,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1976,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1976,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1977,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1977,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1978,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1978,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1979,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1979,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1980,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1980,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1981,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1981,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1982,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1982,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1983,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1983,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1984,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1984,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1985,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1985,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1986,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1986,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1987,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1987,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1992,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:1992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysScalerDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1971
    functionDepth: 6
    functionLinenumber: 1971
    functionLinenumberEnd: 1993
    functionName: fu_genesys_scaler_device_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_retry_set_delay
    - fu_device_register_private_flag
    - fu_device_set_firmware_size
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_vendor
    - fu_device_set_proxy_gtype
    - fu_device_set_install_duration
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:1998,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:2000,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:2001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 1995
    functionDepth: 0
    functionLinenumber: 1995
    functionLinenumberEnd: 2002
    functionName: fu_genesys_scaler_device_finalize
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - FU_GENESYS_SCALER_DEVICE
    - 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:2007,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c:2008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysScalerDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 2004
    functionDepth: 0
    functionLinenumber: 2004
    functionLinenumberEnd: 2020
    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:2026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 2022
    functionDepth: 0
    functionLinenumber: 2022
    functionLinenumberEnd: 2028
    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(FuDevice *proxy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:144,1
    - Dst: FU_IS_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:144,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:145,1
    - Dst: FU_IS_GENESYS_HUBHID_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:145,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:147,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:147,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:148,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:148,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:149,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - proxy
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 153
    functionName: fu_genesys_usbhub_device_set_proxy
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - g_return_if_fail
    - FU_IS_GENESYS_HUBHID_DEVICE
    - FU_DEVICE
    - fu_device_set_proxy
    - FU_IS_GENESYS_USBHUB_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_device_set_proxy(FuGenesysUsbhubDevice *self,
      FuDevice *proxy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:173,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:173,1
    - Dst: fu_genesys_hubhid_device_send_report
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:175,1
    - Dst: FU_GENESYS_HUBHID_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:175,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:188,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:188,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: 201
      start: 155
    functionDepth: 4
    functionLinenumber: 155
    functionLinenumberEnd: 201
    functionName: fu_genesys_usbhub_device_ctrl_transfer
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_GENESYS_HUBHID_DEVICE
    - FU_DEVICE
    - fu_device_get_proxy
    - fu_genesys_hubhid_device_send_report
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    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: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:206,1
    - Dst: fu_genesys_scaler_device_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:207,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:207,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:209,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:209,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 203
    functionDepth: 5
    functionLinenumber: 203
    functionLinenumberEnd: 213
    functionName: fu_genesys_usbhub_device_mstar_scaler_setup
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_autoptr
    - fu_genesys_scaler_device_new
    - fu_device_add_child
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_device_mstar_scaler_setup(FuGenesysUsbhubDevice
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:223,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:225,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:234,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:235,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:238,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:242,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:244,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:251,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:252,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:253,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:254,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:259,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:261,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:265,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 6
    argNames:
    - self
    - start_addr
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint
    - guint8*
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 215
    functionDepth: 5
    functionLinenumber: 215
    functionLinenumberEnd: 270
    functionName: fu_genesys_usbhub_device_read_flash
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - fu_progress_set_steps
    - fu_genesys_usbhub_device_ctrl_transfer
    - fu_chunk_get_page
    - g_prefix_error
    - fu_progress_step_done
    - fu_chunk_array_mutable_new
    - fu_chunk_get_address
    - g_autoptr
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:281,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:282,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:282,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:283,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:283,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:295,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:296,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:298,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:306,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:307,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:309,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:311,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:313,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:318,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:319,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:321,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:326,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:328,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:331,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:337,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:339,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:341,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:344,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 5
    argNames:
    - self
    - start_addr
    - code_size
    - progress
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 272
    functionDepth: 5
    functionLinenumber: 272
    functionLinenumberEnd: 349
    functionName: fu_genesys_usbhub_device_compare_flash_blank
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new
    - fu_memcmp_safe
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - fu_genesys_usbhub_device_ctrl_transfer
    - fu_chunk_get_page
    - g_prefix_error
    - fu_progress_step_done
    - g_byte_array_new
    - fu_chunk_get_address
    - g_autoptr
    - fu_progress_get_child
    - fu_byte_array_set_size
    - g_ptr_array_index
    - fu_progress_set_id
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:359,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:360,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:360,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:362,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:364,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:372,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:373,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:375,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:377,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:379,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:384,1
    - Dst: fu_chunk_get_address
      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:392,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:394,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:397,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:400,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:401,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:403,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:405,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:407,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 6
    argNames:
    - self
    - start_addr
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint
    - guint8*
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 351
    functionDepth: 5
    functionLinenumber: 351
    functionLinenumberEnd: 415
    functionName: fu_genesys_usbhub_device_compare_flash_data
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new
    - fu_memcmp_safe
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - fu_genesys_usbhub_device_ctrl_transfer
    - fu_chunk_get_page
    - g_prefix_error
    - fu_progress_step_done
    - g_byte_array_new
    - fu_chunk_get_address
    - fu_chunk_get_data
    - g_autoptr
    - fu_progress_get_child
    - fu_byte_array_set_size
    - g_ptr_array_index
    - fu_progress_set_id
    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:420,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 417
    functionDepth: 5
    functionLinenumber: 417
    functionLinenumberEnd: 440
    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_literal
    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:453,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:455,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:456,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:459,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:473,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:478,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:480,1
    - Dst: fu_cfi_device_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:483,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:483,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:487,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:487,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:488,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:492,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:492,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:493,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:497,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:498,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:498,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:498,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:500,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:504,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 442
    functionDepth: 5
    functionLinenumber: 442
    functionLinenumberEnd: 506
    functionName: fu_genesys_usbhub_device_cfi_setup
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error_literal
    - g_steal_pointer
    - fu_genesys_usbhub_device_ctrl_transfer
    - g_prefix_error_literal
    - fu_device_setup
    - fu_dump_raw
    - FU_DEVICE
    - g_strdup_printf
    - fu_cfi_device_new
    - G_N_ELEMENTS
    - fu_device_get_name
    - g_autoptr
    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:513,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:517,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:531,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:537,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 508
    functionDepth: 5
    functionLinenumber: 508
    functionLinenumberEnd: 546
    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
    - g_set_error_literal
    - FU_GENESYS_USBHUB_DEVICE
    - 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:553,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:567,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:578,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:578,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - mode
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuGenesysIspMode
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 548
    functionDepth: 5
    functionLinenumber: 548
    functionLinenumberEnd: 590
    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
    - g_prefix_error_literal
    - g_prefix_error
    - FU_DEVICE
    - fu_device_retry
    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:601,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:615,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:621,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:635,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:641,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: 650
      start: 592
    functionDepth: 5
    functionLinenumber: 592
    functionLinenumberEnd: 650
    functionName: fu_genesys_usbhub_device_authentication_request
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_genesys_usbhub_device_ctrl_transfer
    - g_prefix_error
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_get_release
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:655,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:655,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:663,1
    - Dst: g_random_int_range
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:674,1
    - Dst: g_random_int_range
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:676,1
    - Dst: fu_xor8_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:678,1
    - Dst: fu_genesys_usbhub_device_authentication_request
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:685,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:690,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 652
    functionDepth: 6
    functionLinenumber: 652
    functionLinenumberEnd: 696
    functionName: fu_genesys_usbhub_device_authenticate
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_xor8_safe
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_usb_device_get_release
    - g_random_int_range
    - FU_USB_DEVICE
    - fu_genesys_usbhub_device_authentication_request
    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:702,1
    - Dst: fu_genesys_usbhub_device_set_isp_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 698
    functionDepth: 7
    functionLinenumber: 698
    functionLinenumberEnd: 710
    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:719,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:722,1
    - Dst: memset
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:726,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:735,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:736,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: 745
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 745
    functionName: fu_genesys_usbhub_device_get_descriptor_data
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    - g_set_error_literal
    - memcmp
    - memset
    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:756,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:757,1
    - Dst: fu_genesys_usbhub_device_read_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:760,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:767,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:785,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:792,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:793,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: 802
      start: 747
    functionDepth: 6
    functionLinenumber: 747
    functionLinenumberEnd: 802
    functionName: fu_genesys_usbhub_device_check_fw_signature
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - g_prefix_error
    - memcmp
    - fu_genesys_usbhub_device_read_flash
    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:813,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:814,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:818,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:822,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:828,1
    - Dst: fu_genesys_usbhub_device_check_fw_signature
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:836,1
    - Dst: fu_genesys_usbhub_device_read_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:846,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:853,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: 860
      start: 805
    functionDepth: 7
    functionLinenumber: 805
    functionLinenumberEnd: 860
    functionName: fu_genesys_usbhub_device_get_fw_bank_code_size
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    - g_set_error_literal
    - fu_genesys_fw_type_to_string
    - g_prefix_error_literal
    - fu_genesys_usbhub_device_read_flash
    - fu_genesys_usbhub_device_check_fw_signature
    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:871,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:872,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:873,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:876,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:877,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:881,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:885,1
    - Dst: fu_genesys_usbhub_device_get_fw_bank_code_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:890,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:894,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:895,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:904,1
    - Dst: fu_genesys_usbhub_device_read_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:905,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:914,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:914,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:915,1
    - Dst: fu_genesys_usbhub_firmware_verify_checksum
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:916,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:917,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:918,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:926,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:926,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:927,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:932,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:938,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: 942
      start: 863
    functionDepth: 8
    functionLinenumber: 863
    functionLinenumberEnd: 942
    functionName: fu_genesys_usbhub_device_get_fw_bank_version
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_memory_input_stream_new_from_bytes
    - g_debug
    - g_set_error
    - g_bytes_get_data
    - g_steal_pointer
    - fu_genesys_fw_type_to_string
    - fu_genesys_usbhub_device_get_fw_bank_code_size
    - g_malloc0
    - fu_genesys_usbhub_firmware_verify_checksum
    - g_prefix_error_literal
    - g_bytes_new_take
    - fu_genesys_usbhub_device_read_flash
    - g_bytes_get_size
    - g_autoptr
    - fu_memread_uint16_safe
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:954,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:958,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:966,1
    - Dst: fu_genesys_usbhub_device_read_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:967,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:974,1
    - Dst: fu_struct_genesys_fw_ecdsa_public_key_validate
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:981,1
    - Dst: fu_struct_genesys_fw_ecdsa_public_key_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:984,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:987,1
    - Dst: g_byte_array_ref
      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: fu_struct_genesys_fw_rsa_public_key_text_validate
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:997,1
    - Dst: fu_struct_genesys_fw_rsa_public_key_text_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1000,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1003,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1004,1
    - Dst: fu_struct_genesys_fw_codesign_info_ecdsa_validate
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1005,1
    - Dst: fu_struct_genesys_fw_codesign_info_ecdsa_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1012,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1015,1
    - Dst: fu_struct_genesys_fw_codesign_info_ecdsa_get_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1016,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1019,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1020,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1022,1
    - Dst: fwupd_guid_hash_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1031,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1034,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1034,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 3
    argNames:
    - self
    - bank_num
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - int
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 945
    functionDepth: 6
    functionLinenumber: 945
    functionLinenumberEnd: 1038
    functionName: fu_genesys_usbhub_device_ensure_public_key
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_struct_genesys_fw_codesign_info_ecdsa_parse
    - fu_device_add_instance_strup
    - g_set_error_literal
    - g_prefix_error_literal
    - g_malloc0
    - fu_struct_genesys_fw_rsa_public_key_text_parse
    - fu_struct_genesys_fw_ecdsa_public_key_parse
    - FU_DEVICE
    - g_byte_array_ref
    - fu_struct_genesys_fw_rsa_public_key_text_validate
    - g_byte_array_new
    - fu_genesys_usbhub_device_read_flash
    - fu_struct_genesys_fw_ecdsa_public_key_validate
    - fu_struct_genesys_fw_codesign_info_ecdsa_validate
    - g_byte_array_append
    - fu_struct_genesys_fw_codesign_info_ecdsa_get_key
    - fwupd_guid_hash_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_ensure_public_key(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t   int bank_num,\n\t\t\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_ascii_digit_value
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1047,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - gchar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1048
    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:1055,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1056,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1057,1
    - Dst: fu_usb_device_get_string_descriptor_bytes_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1061,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1061,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1067,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1068,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1075,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1075,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1079,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1079,1
    - Dst: fu_utf16_to_utf8_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1082,1
    - Dst: g_strv_contains
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1087,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1091,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1050
    functionDepth: 4
    functionLinenumber: 1050
    functionLinenumberEnd: 1093
    functionName: fu_genesys_usbhub_device_validate_token
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_bytes_new_offset
    - g_set_error
    - fu_utf16_to_utf8_bytes
    - g_steal_pointer
    - g_error_matches
    - g_strv_contains
    - g_bytes_get_size
    - fu_usb_device_get_string_descriptor_bytes_full
    - g_propagate_error
    - FU_USB_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_device_validate_token(FuGenesysUsbhubDevice
      *self, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_genesys_ts_static_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1104,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1106,1
    - Dst: fu_struct_genesys_ts_static_get_mask_project_ic_type
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1110,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1115,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1116,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1122,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1129,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1131,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1134,1
    - Dst: fu_struct_genesys_ts_static_get_tool_string_version
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1144,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1147,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1148,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1148,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1149,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1149,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1157,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1157,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1158,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1158,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1095
    functionDepth: 5
    functionLinenumber: 1095
    functionLinenumberEnd: 1168
    functionName: fu_genesys_usbhub_device_get_info_from_static_ts
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - fu_struct_genesys_ts_static_get_tool_string_version
    - g_set_error
    - fu_device_add_instance_str
    - fu_struct_genesys_ts_static_get_mask_project_ic_type
    - g_prefix_error_literal
    - fu_struct_genesys_ts_static_parse
    - FU_DEVICE
    - memcmp
    - fu_device_build_instance_id_full
    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: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1189,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1201,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3523_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1202,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1204,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3523_get_running_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1208,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3523_get_ss_port_number
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1209,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3523_get_hs_port_number
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1210,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3523_get_bonding
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1211,1
    - Dst: fu_genesys_usbhub_device_tsdigit_value
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1213,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1222,1
    - Dst: fu_struct_genesys_ts_dynamic_gl359030_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1224,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1226,1
    - Dst: fu_struct_genesys_ts_dynamic_gl359030_get_running_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1232,1
    - Dst: fu_struct_genesys_ts_dynamic_gl359030_get_ss_port_number
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1234,1
    - Dst: fu_struct_genesys_ts_dynamic_gl359030_get_hs_port_number
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1236,1
    - Dst: fu_struct_genesys_ts_dynamic_gl359030_get_bonding
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1238,1
    - Dst: fu_struct_genesys_ts_dynamic_gl359030_get_hub_fw_status
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1240,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1243,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3590_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1245,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1247,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3590_get_running_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1252,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3590_get_ss_port_number
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1254,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3590_get_hs_port_number
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1256,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3590_get_bonding
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1257,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1265,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3525_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1266,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1268,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3525_get_running_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1272,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3525_get_ss_port_number
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1273,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3525_get_hs_port_number
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1274,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3525_get_bonding
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1275,1
    - Dst: fu_struct_genesys_ts_dynamic_gl3525_get_hub_fw_status
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1276,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1281,1
    - Dst: fu_genesys_usbhub_device_tsdigit_value
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1290,1
    - Dst: fu_genesys_usbhub_device_tsdigit_value
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1291,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1304,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1304,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1305,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1305,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1306,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1306,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 92
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1170
    functionDepth: 2
    functionLinenumber: 1170
    functionLinenumberEnd: 1310
    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_gl3525_get_hs_port_number
    - fu_struct_genesys_ts_dynamic_gl3523_parse
    - fu_struct_genesys_ts_dynamic_gl359030_parse
    - fu_struct_genesys_ts_dynamic_gl3525_parse
    - fu_struct_genesys_ts_dynamic_gl3525_get_bonding
    - fu_struct_genesys_ts_dynamic_gl3590_get_bonding
    - fu_struct_genesys_ts_dynamic_gl3590_get_ss_port_number
    - fu_struct_genesys_ts_dynamic_gl3525_get_hub_fw_status
    - fu_device_add_instance_str
    - g_prefix_error_literal
    - fu_struct_genesys_ts_dynamic_gl359030_get_hub_fw_status
    - fu_struct_genesys_ts_dynamic_gl3590_get_running_mode
    - fu_struct_genesys_ts_dynamic_gl359030_get_hs_port_number
    - fu_struct_genesys_ts_dynamic_gl3525_get_running_mode
    - fu_struct_genesys_ts_dynamic_gl3590_parse
    - fu_struct_genesys_ts_dynamic_gl3523_get_hs_port_number
    - fu_struct_genesys_ts_dynamic_gl359030_get_ss_port_number
    - fu_struct_genesys_ts_dynamic_gl3525_get_ss_port_number
    - fu_struct_genesys_ts_dynamic_gl3523_get_ss_port_number
    - fu_struct_genesys_ts_dynamic_gl359030_get_running_mode
    - fu_struct_genesys_ts_dynamic_gl359030_get_bonding
    - FU_DEVICE
    - fu_struct_genesys_ts_dynamic_gl3590_get_hs_port_number
    - fu_device_add_instance_u8
    - fu_struct_genesys_ts_dynamic_gl3523_get_bonding
    - g_set_error
    - fu_struct_genesys_ts_dynamic_gl3523_get_running_mode
    - fu_genesys_usbhub_device_tsdigit_value
    - g_autoptr
    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:1318,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1320,1
    - Dst: fu_struct_genesys_ts_vendor_support_get_codesign_check
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1337
    functionName: fu_genesys_usbhub_device_get_info_from_vendor_ts
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_genesys_ts_vendor_support_parse
    - fu_struct_genesys_ts_vendor_support_get_codesign_check
    - g_prefix_error_literal
    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:1347,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1349,1
    - Dst: fwupd_guid_hash_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1354,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1357,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1339
    functionDepth: 2
    functionLinenumber: 1339
    functionLinenumberEnd: 1361
    functionName: fu_genesys_usbhub_device_get_info_from_project_ts
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_strup
    - fu_struct_genesys_ts_brand_project_parse
    - g_prefix_error_literal
    - FU_DEVICE
    - fwupd_guid_hash_data
    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:1366,1
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1363
    functionDepth: 8
    functionLinenumber: 1363
    functionLinenumberEnd: 1367
    functionName: fu_genesys_usbhub_device_detach
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_GENESYS_USBHUB_DEVICE
    - fu_genesys_usbhub_device_enter_isp_mode
    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:1372,1
    - Dst: fu_genesys_usbhub_device_reset
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1375,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1378,1
    - Dst: fu_device_add_flag
      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:1383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1369
    functionDepth: 6
    functionLinenumber: 1369
    functionLinenumberEnd: 1385
    functionName: fu_genesys_usbhub_device_attach
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_device_reset
    - FU_GENESYS_USBHUB_DEVICE
    - fu_device_add_flag
    - fu_device_get_proxy
    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:1390,1
    - Dst: fu_cfi_device_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1391,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1392,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1396,1
    - Dst: fu_progress_add_step
      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_device_locker_new_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1401,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1407,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1409,1
    - Dst: fu_genesys_usbhub_device_read_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1410,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1414,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1417,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1420,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1387
    functionDepth: 6
    functionLinenumber: 1387
    functionLinenumberEnd: 1421
    functionName: fu_genesys_usbhub_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_get_child
    - fu_progress_step_done
    - g_steal_pointer
    - g_malloc0
    - g_bytes_new_take
    - fu_cfi_device_get_size
    - fu_genesys_usbhub_device_read_flash
    - g_autoptr
    - FU_GENESYS_USBHUB_DEVICE
    - fu_device_locker_new_full
    - fu_progress_set_id
    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:1426,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1426,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1427,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1433,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1433,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1434,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1440,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1440,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1423
    functionDepth: 1
    functionLinenumber: 1423
    functionLinenumberEnd: 1449
    functionName: fu_genesys_usbhub_device_probe
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_get_class
    - FU_USB_DEVICE
    - g_set_error_literal
    - fu_usb_device_get_spec
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_device_probe(FuDevice *device, GError **error)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1454,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1460,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1461,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1462,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1466,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1467,1
    - Dst: fu_genesys_usbhub_device_validate_token
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1472,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1480,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1480,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1492,1
    - Dst: fu_usb_device_get_string_descriptor_bytes_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1496,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1496,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1502,1
    - Dst: fu_genesys_usbhub_device_get_descriptor_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1507,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1508,1
    - Dst: fu_genesys_usbhub_device_get_info_from_static_ts
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1511,1
    - Dst: fu_usb_device_get_string_descriptor_bytes_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1516,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1516,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1522,1
    - Dst: fu_genesys_usbhub_device_get_descriptor_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1527,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1528,1
    - Dst: fu_genesys_usbhub_device_get_info_from_dynamic_ts
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1531,1
    - Dst: fu_usb_device_get_string_descriptor_bytes_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1535,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1535,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1541,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_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1545,1
    - Dst: fu_struct_genesys_ts_firmware_info_parse
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1548,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1550,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1556,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1557,1
    - Dst: fu_usb_device_get_string_descriptor_bytes_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1557,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1558,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1564,1
    - Dst: fu_genesys_usbhub_device_get_descriptor_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1569,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1573,1
    - Dst: fu_struct_genesys_ts_vendor_support_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1574,1
    - Dst: fu_genesys_usbhub_device_get_info_from_vendor_ts
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1575,1
    - Dst: fu_struct_genesys_ts_vendor_support_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1581,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1586,1
    - Dst: fu_usb_device_get_string_descriptor_bytes_full
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1586,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1587,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1593,1
    - Dst: fu_genesys_usbhub_device_get_descriptor_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1598,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1599,1
    - Dst: fu_genesys_usbhub_device_get_info_from_project_ts
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1604,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1608,1
    - Dst: fu_genesys_usbhub_device_enter_isp_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1612,1
    - Dst: fu_genesys_usbhub_device_cfi_setup
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1615,1
    - Dst: fu_cfi_device_get_block_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1618,1
    - Dst: fu_cfi_device_get_sector_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1621,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1626,1
    - Dst: MIN
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1628,1
    - Dst: fu_cfi_device_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1628,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1641,1
    - Dst: fu_genesys_usbhub_device_ensure_public_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1649,1
    - Dst: fu_usb_device_get_manufacturer_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1655,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1655,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1661,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1662,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1662,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1666,1
    - Dst: g_strchomp
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1666,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1668,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1672,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1674,1
    - Dst: fwupd_guid_hash_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1677,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1680,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1683,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1685,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1695,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1706,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1707,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1710,1
    - Dst: fu_genesys_usbhub_device_mstar_scaler_setup
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1711,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 141
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1451
    functionDepth: 8
    functionLinenumber: 1451
    functionLinenumberEnd: 1716
    functionName: fu_genesys_usbhub_device_setup
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_genesys_ts_vendor_support_new
    - fu_device_add_instance_strup
    - fu_device_set_firmware_size_max
    - fu_genesys_usbhub_device_cfi_setup
    - fu_genesys_usbhub_device_get_info_from_vendor_ts
    - FU_GENESYS_USBHUB_DEVICE
    - fu_genesys_usbhub_device_get_descriptor_data
    - fu_genesys_usbhub_device_validate_token
    - g_debug
    - fu_cfi_device_get_block_size
    - fu_genesys_usbhub_device_get_info_from_dynamic_ts
    - g_set_error_literal
    - fu_usb_device_get_manufacturer_index
    - fu_device_build_instance_id
    - g_prefix_error_literal
    - fu_genesys_usbhub_device_ensure_public_key
    - fu_genesys_usbhub_device_mstar_scaler_setup
    - fu_cfi_device_get_size
    - MIN
    - fu_device_get_vendor
    - fu_genesys_usbhub_device_get_info_from_project_ts
    - fu_usb_device_get_string_descriptor
    - g_malloc0
    - fu_struct_genesys_ts_firmware_info_parse
    - fu_usb_device_get_spec
    - fu_usb_device_get_string_descriptor_bytes_full
    - FU_USB_DEVICE
    - g_strchomp
    - fwupd_guid_hash_data
    - FU_DEVICE_CLASS
    - g_prefix_error
    - fu_device_has_private_flag
    - fu_genesys_usbhub_device_enter_isp_mode
    - fu_genesys_usbhub_device_get_info_from_static_ts
    - g_autoptr
    - fu_cfi_device_get_sector_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_usbhub_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1721,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1721,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1726,1
    - Dst: fu_genesys_fw_codesign_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1729,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1730,1
    - Dst: fu_genesys_vs_codesign_check_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1733,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1736,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1740,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - idt
    - str
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1718
    functionDepth: 3
    functionLinenumber: 1718
    functionLinenumberEnd: 1742
    functionName: fu_genesys_usbhub_device_codesign_to_string
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_vs_codesign_check_to_string
    - fwupd_codec_string_append
    - FU_DEVICE
    - fu_device_get_firmware_size_max
    - fu_genesys_fw_codesign_to_string
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_device_codesign_to_string(FuGenesysUsbhubDevice
      *self, guint idt, GString *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1747,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1748,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1753,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1756,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1756,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1757,1
    - Dst: fu_cfi_device_get_size
      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: 37
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1744
    functionDepth: 4
    functionLinenumber: 1744
    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_fw_type_to_string
    - fwupd_codec_string_append
    - FU_DEVICE
    - fwupd_codec_string_append_bool
    - fu_cfi_device_get_size
    - fu_device_get_firmware_size_max
    - fu_device_get_name
    - fwupd_codec_string_append_int
    - fwupd_codec_string_append_hex
    - fu_genesys_usbhub_device_codesign_to_string
    - FU_GENESYS_USBHUB_DEVICE
    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: 9
    functionLinenumber: 1846
    functionLinenumberEnd: 1941
    functionName: fu_genesys_usbhub_device_prepare
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_array_new
    - fu_progress_add_step
    - fu_progress_get_child
    - fu_progress_step_done
    - g_prefix_error
    - fu_genesys_fw_type_to_string
    - g_array_index
    - fu_device_has_flag
    - fu_device_get_firmware_size_max
    - fu_genesys_usbhub_device_enter_isp_mode
    - fu_genesys_usbhub_device_get_fw_bank_version
    - g_array_append_val
    - g_autoptr
    - FU_GENESYS_USBHUB_DEVICE
    - fu_progress_set_id
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1949,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1951,1
    - Dst: FU_IS_GENESYS_USBHUB_CODESIGN_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1951,1
    - Dst: fu_genesys_usbhub_codesign_firmware_get_codesign
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1954,1
    - Dst: FU_GENESYS_USBHUB_CODESIGN_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1955,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1957,1
    - Dst: fu_genesys_fw_codesign_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1961,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1966,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1968,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1970,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1980,1
    - Dst: fu_struct_genesys_fw_codesign_info_rsa_parse_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1984,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1986,1
    - Dst: fu_genesys_fw_codesign_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1988,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1991,1
    - Dst: fu_struct_genesys_fw_codesign_info_rsa_get_text_n
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1996,1
    - Dst: fu_struct_genesys_fw_rsa_public_key_text_get_text_n
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1997,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:1998,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2006,1
    - Dst: fu_struct_genesys_fw_codesign_info_rsa_get_text_e
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2010,1
    - Dst: fu_struct_genesys_fw_rsa_public_key_text_get_text_e
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2011,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2012,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2020,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2029,1
    - Dst: fu_struct_genesys_fw_codesign_info_ecdsa_parse_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2033,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2035,1
    - Dst: fu_genesys_fw_codesign_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2037,1
    - Dst: fu_struct_genesys_fw_codesign_info_ecdsa_get_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2041,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2043,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2049,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2057,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2058,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2065,1
    - Dst: fu_genesys_fw_codesign_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2069,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 59
    argCount: 3
    argNames:
    - self
    - firmware
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 1943
    functionDepth: 3
    functionLinenumber: 1943
    functionLinenumberEnd: 2071
    functionName: fu_genesys_usbhub_device_compare_fw_public_key
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_GENESYS_USBHUB_CODESIGN_FIRMWARE
    - FU_GENESYS_USBHUB_CODESIGN_FIRMWARE
    - fu_struct_genesys_fw_codesign_info_rsa_get_text_n
    - fu_struct_genesys_fw_codesign_info_rsa_get_text_e
    - fu_struct_genesys_fw_codesign_info_rsa_parse_stream
    - fu_genesys_fw_type_to_string
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_struct_genesys_fw_rsa_public_key_text_get_text_e
    - fu_genesys_usbhub_codesign_firmware_get_codesign
    - fu_dump_raw
    - fu_struct_genesys_fw_codesign_info_ecdsa_get_key
    - g_return_val_if_fail
    - g_set_error
    - fu_firmware_get_stream
    - g_prefix_error
    - fu_struct_genesys_fw_codesign_info_ecdsa_parse_stream
    - fu_genesys_fw_codesign_to_string
    - fu_struct_genesys_fw_rsa_public_key_text_get_text_n
    - g_autoptr
    - fu_memcmp_safe
    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:2078,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2082,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2086,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2090,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2097,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2101,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2104,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2106,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2110,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2119,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2126,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2129,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2131,1
    - Dst: fu_genesys_usbhub_device_adjust_fw_addr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - self
    - firmware
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2138
      start: 2073
    functionDepth: 1
    functionLinenumber: 2073
    functionLinenumberEnd: 2138
    functionName: fu_genesys_usbhub_device_adjust_fw_addr
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 1
    functionsReached:
    - fu_firmware_get_id
    - fu_firmware_set_addr
    - fu_genesys_usbhub_device_adjust_fw_addr
    - g_set_error
    - fu_firmware_get_images
    - fu_firmware_get_size
    - g_autoptr
    - fu_firmware_get_idx
    - g_ptr_array_index
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2146,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2150,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2153,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2160,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2162,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2164,1
    - Dst: fu_genesys_usbhub_device_compare_fw_public_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2168,1
    - Dst: fu_genesys_usbhub_device_adjust_fw_addr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2173,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2178
      start: 2140
    functionDepth: 4
    functionLinenumber: 2140
    functionLinenumberEnd: 2178
    functionName: fu_genesys_usbhub_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_image_by_idx
    - fu_genesys_usbhub_device_adjust_fw_addr
    - g_set_error_literal
    - fu_genesys_fw_type_to_string
    - g_prefix_error
    - fu_genesys_usbhub_device_compare_fw_public_key
    - g_autoptr
    - FU_GENESYS_USBHUB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_check_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\t\tGError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2188,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2192,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2199,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2207,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2208,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2210,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2211,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2212,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2215,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2229,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2237,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2237,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2242,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2245,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - self
    - start_addr
    - len
    - progress
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2250
      start: 2180
    functionDepth: 5
    functionLinenumber: 2180
    functionLinenumberEnd: 2250
    functionName: fu_genesys_usbhub_device_erase_flash
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new
    - g_set_error_literal
    - fu_progress_set_steps
    - fu_genesys_usbhub_device_ctrl_transfer
    - fu_chunk_get_page
    - g_prefix_error
    - FU_DEVICE
    - g_prefix_error_literal
    - fu_chunk_get_address
    - fu_progress_step_done
    - fu_device_retry
    - g_autoptr
    - g_ptr_array_index
    - fu_progress_set_id
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2261,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2263,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2271,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2272,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2274,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2275,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2275,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2277,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2277,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2277,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2279,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2281,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2286,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2287,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2294,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2296,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2297,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2302,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2302,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2307,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 6
    argNames:
    - self
    - start_addr
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint
    - guint8*
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2315
      start: 2252
    functionDepth: 5
    functionLinenumber: 2252
    functionLinenumberEnd: 2315
    functionName: fu_genesys_usbhub_device_write_flash
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - fu_genesys_usbhub_device_ctrl_transfer
    - fu_chunk_get_page
    - g_prefix_error
    - FU_DEVICE
    - g_prefix_error_literal
    - g_byte_array_new
    - fu_chunk_get_data
    - fu_chunk_get_address
    - fu_progress_step_done
    - g_byte_array_append
    - fu_device_retry
    - g_autoptr
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    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:2338,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2348,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2353,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2362,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2364,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2374,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2384,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2385,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2385,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2391,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2392,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2393,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2394,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2395,1
    - Dst: fu_genesys_usbhub_device_erase_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2398,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2401,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2404,1
    - Dst: fu_genesys_usbhub_device_compare_flash_blank
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2407,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2410,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2413,1
    - Dst: fu_genesys_usbhub_device_write_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2416,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2420,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2423,1
    - Dst: fu_genesys_usbhub_device_compare_flash_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2426,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2430,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2433,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2327
    functionDepth: 6
    functionLinenumber: 2327
    functionLinenumberEnd: 2437
    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_add_step
    - g_bytes_get_data
    - g_set_error_literal
    - fu_genesys_usbhub_device_compare_flash_blank
    - fu_genesys_usbhub_device_erase_flash
    - fu_progress_step_done
    - g_malloc0
    - fu_genesys_usbhub_device_compare_flash_data
    - g_bytes_get_size
    - fu_memcpy_safe
    - fu_memdup_safe
    - fu_progress_get_child
    - fu_genesys_usbhub_device_write_flash
    - fu_progress_set_id
    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:2448,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2449,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2452,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2455,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2457,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2465,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2480,1
    - Dst: fu_firmware_get_id
      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_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2487,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2488,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2489,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2490,1
    - Dst: fu_genesys_usbhub_device_erase_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2494,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2497,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2500,1
    - Dst: fu_genesys_usbhub_device_compare_flash_blank
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2503,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2506,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2509,1
    - Dst: fu_genesys_usbhub_device_write_flash
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2512,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2516,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2519,1
    - Dst: fu_genesys_usbhub_device_compare_flash_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2523,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2527,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2531,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2535
      start: 2439
    functionDepth: 6
    functionLinenumber: 2439
    functionLinenumberEnd: 2535
    functionName: fu_genesys_usbhub_device_update_firmware
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_firmware_get_bytes
    - g_set_error
    - g_bytes_get_data
    - fu_progress_add_step
    - fu_progress_get_child
    - fu_genesys_usbhub_device_erase_flash
    - fu_progress_step_done
    - fu_genesys_usbhub_device_compare_flash_blank
    - fu_firmware_get_addr
    - fu_genesys_usbhub_device_compare_flash_data
    - g_autoptr
    - fu_firmware_get_idx
    - fu_genesys_usbhub_device_write_flash
    - fu_progress_set_id
    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:2540,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2560
      start: 2537
    functionDepth: 5
    functionLinenumber: 2537
    functionLinenumberEnd: 2560
    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_literal
    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:2569,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - size_to_hash
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2589
      start: 2562
    functionDepth: 5
    functionLinenumber: 2562
    functionLinenumberEnd: 2589
    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:2600,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2602,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2609,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2611,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2615,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2629,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - st_codesign
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuStructGenesysFwCodesignInfoEcdsa*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2635
      start: 2591
    functionDepth: 5
    functionLinenumber: 2591
    functionLinenumberEnd: 2635
    functionName: fu_genesys_usbhub_device_send_hash_digest
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_genesys_usbhub_device_ctrl_transfer
    - g_prefix_error_literal
    - fu_struct_genesys_fw_codesign_info_ecdsa_get_hash
    - fu_memdup_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_send_hash_digest(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\t  FuStructGenesysFwCodesignInfoEcdsa *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:2642,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2656,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2661,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2671
      start: 2637
    functionDepth: 5
    functionLinenumber: 2637
    functionLinenumberEnd: 2671
    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_prefix_error_literal
    - g_set_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:2678,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - key_addr
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2698
      start: 2673
    functionDepth: 5
    functionLinenumber: 2673
    functionLinenumberEnd: 2698
    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:2709,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2711,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2718,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2720,1
    - Dst: fu_genesys_usbhub_device_ctrl_transfer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2724,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2738,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - st_codesign
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuStructGenesysFwCodesignInfoEcdsa*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2744
      start: 2700
    functionDepth: 5
    functionLinenumber: 2700
    functionLinenumberEnd: 2744
    functionName: fu_genesys_usbhub_device_send_signature
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_genesys_fw_codesign_info_ecdsa_get_signature
    - g_set_error_literal
    - fu_genesys_usbhub_device_ctrl_transfer
    - g_prefix_error_literal
    - fu_memdup_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_usbhub_device_send_signature(FuGenesysUsbhubDevice
      *self,\n\t\t\t\t\tFuStructGenesysFwCodesignInfoEcdsa *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:2751,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2765,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2746
    functionDepth: 5
    functionLinenumber: 2746
    functionLinenumberEnd: 2780
    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_prefix_error_literal
    - g_set_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:2790,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2791,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2794,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2797,1
    - Dst: fu_genesys_usbhub_device_compare_flash_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2809
      start: 2782
    functionDepth: 6
    functionLinenumber: 2782
    functionLinenumberEnd: 2809
    functionName: fu_genesys_usbhub_device_compare_firmware_flash_data
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_bytes
    - g_bytes_get_data
    - fu_genesys_usbhub_device_compare_flash_data
    - fu_firmware_get_addr
    - g_autoptr
    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:2821,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2822,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2823,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2824,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2824,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2827,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2830,1
    - Dst: fu_struct_genesys_fw_codesign_info_ecdsa_parse_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2833,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2838,1
    - Dst: fu_progress_add_step
      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:2840,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2843,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2845,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2846,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2847,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2850,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2852,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2853,1
    - Dst: fu_genesys_usbhub_device_setup_hw_module
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2856,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2858,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:2863,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2866,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2867,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2870,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2871,1
    - Dst: fu_genesys_usbhub_device_compare_firmware_flash_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2872,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2875,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2878,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2879,1
    - Dst: fu_genesys_usbhub_device_send_hash_data_length
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2884,1
    - Dst: fu_genesys_usbhub_device_send_hash_digest
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2886,1
    - Dst: fu_genesys_usbhub_device_check_hash_digest_verification
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2888,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2890,1
    - Dst: fu_genesys_usbhub_device_toggle_hw_read_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2893,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2894,1
    - Dst: fu_genesys_usbhub_device_send_signature
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2899,1
    - Dst: fu_genesys_usbhub_device_check_signature_verification
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2901,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2903,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuGenesysUsbhubDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2907
      start: 2814
    functionDepth: 7
    functionLinenumber: 2814
    functionLinenumberEnd: 2907
    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_image_by_idx
    - fu_firmware_get_size
    - fu_genesys_usbhub_device_send_hash_digest
    - g_ptr_array_index
    - fu_firmware_get_id
    - fu_genesys_usbhub_device_send_signature
    - fu_genesys_usbhub_device_check_signature_verification
    - fu_firmware_get_images
    - fu_firmware_get_idx
    - fu_progress_add_step
    - fu_genesys_usbhub_device_setup_hw_module
    - fu_progress_step_done
    - fu_genesys_usbhub_device_send_hash_data_length
    - fu_progress_get_child
    - fu_genesys_usbhub_device_toggle_hw_read_key
    - fu_progress_set_id
    - fu_firmware_get_stream
    - fu_genesys_usbhub_device_compare_firmware_flash_data
    - fu_struct_genesys_fw_codesign_info_ecdsa_parse_stream
    - fu_firmware_get_addr
    - fu_genesys_usbhub_device_check_hash_digest_verification
    - g_autoptr
    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:2916,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2917,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2917,1
    - Dst: fu_genesys_usbhub_device_enter_isp_mode
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2920,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2924,1
    - Dst: fu_progress_add_step
      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:2932,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2935,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2937,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2938,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2941,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2944,1
    - Dst: fu_genesys_usbhub_device_backup_hub_fw_bank1_to_bank2
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2952,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2954,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2957,1
    - Dst: fu_genesys_usbhub_device_update_firmware
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2961,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2963,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2966,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2970,1
    - Dst: fu_genesys_usbhub_device_update_firmware
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2971,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2973,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2976,1
    - Dst: fu_genesys_usbhub_device_examine_fw_codesign_hw
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2981,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2984,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2986,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:2989,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: 2994
      start: 2909
    functionDepth: 8
    functionLinenumber: 2909
    functionLinenumberEnd: 2994
    functionName: fu_genesys_usbhub_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_progress_add_step
    - fu_genesys_usbhub_device_backup_hub_fw_bank1_to_bank2
    - fu_progress_get_child
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_firmware_get_images
    - fu_genesys_usbhub_device_update_firmware
    - fu_genesys_usbhub_device_enter_isp_mode
    - g_autoptr
    - FU_GENESYS_USBHUB_DEVICE
    - fu_genesys_usbhub_device_examine_fw_codesign_hw
    - g_ptr_array_index
    - fu_progress_set_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: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      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
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3003,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3005
      start: 2996
    functionDepth: 3
    functionLinenumber: 2996
    functionLinenumberEnd: 3005
    functionName: fu_genesys_usbhub_device_set_progress
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3013,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3016,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3017,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3024,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3025,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3032,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3033,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3040,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3041,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3049,1
    - Dst: fu_strtobool
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3050,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3056,1
    - Dst: fu_strtobool
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3057,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3063,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3064,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3071,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3072,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3079,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3080,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3087,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3088,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3095,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3096,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3103,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3104,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3111,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3112,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3119,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3120,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3127,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3128,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3135,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3136,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3143,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3144,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3151,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3152,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3159,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3160,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3169,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 115
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3174
      start: 3007
    functionDepth: 1
    functionLinenumber: 3007
    functionLinenumberEnd: 3174
    functionName: fu_genesys_usbhub_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_strtoull
    - g_set_error_literal
    - fu_strtobool
    - FU_GENESYS_USBHUB_DEVICE
    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:3179,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3179,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3180,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3180,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3181,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3181,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3182,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3182,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3183,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3183,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3184,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3184,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3185,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3185,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3186,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3186,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3187,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3187,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3188,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3188,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3189,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3189,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3190,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysUsbhubDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3205
      start: 3176
    functionDepth: 6
    functionLinenumber: 3176
    functionLinenumberEnd: 3205
    functionName: fu_genesys_usbhub_device_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_retry_set_delay
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_set_install_duration
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_genesys_usbhub_device_init(FuGenesysUsbhubDevice *self)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3210,1
    - Dst: fu_struct_genesys_ts_static_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3212,1
    - Dst: fu_struct_genesys_ts_firmware_info_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3214,1
    - Dst: fu_struct_genesys_ts_vendor_support_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3216,1
    - Dst: fu_struct_genesys_ts_brand_project_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3218,1
    - Dst: fu_struct_genesys_fw_rsa_public_key_text_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3220,1
    - Dst: fu_struct_genesys_fw_ecdsa_public_key_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3222,1
    - Dst: fu_struct_genesys_fw_codesign_info_ecdsa_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3224,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3226,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3228,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3230,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3232,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3233,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3234
      start: 3207
    functionDepth: 0
    functionLinenumber: 3207
    functionLinenumberEnd: 3234
    functionName: fu_genesys_usbhub_device_finalize
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_genesys_fw_ecdsa_public_key_unref
    - fu_struct_genesys_ts_static_unref
    - fu_struct_genesys_fw_rsa_public_key_text_unref
    - fu_struct_genesys_fw_codesign_info_ecdsa_unref
    - g_byte_array_unref
    - g_object_unref
    - G_OBJECT_CLASS
    - fu_struct_genesys_ts_firmware_info_unref
    - fu_struct_genesys_ts_brand_project_unref
    - fu_struct_genesys_ts_vendor_support_unref
    - g_bytes_unref
    - FU_GENESYS_USBHUB_DEVICE
    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:3239,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c:3240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysUsbhubDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3253
      start: 3236
    functionDepth: 0
    functionLinenumber: 3236
    functionLinenumberEnd: 3253
    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: 12
    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: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:111,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:122,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:128,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuGenesysUsbhubFirmware*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 130
    functionName: fu_genesys_usbhub_firmware_get_chip
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_safe
    - g_set_error_literal
    - memcmp
    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:138,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:141,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:144,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:150,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:155,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:160,1
    - Dst: fu_input_stream_compute_sum16
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:163,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - stream
    - error
    argTypes:
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 176
    functionName: fu_genesys_usbhub_firmware_verify_checksum
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 1
    functionsReached:
    - fu_input_stream_read_u16
    - g_set_error
    - fu_input_stream_size
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_input_stream_compute_sum16
    - g_autoptr
    - 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:182,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:183,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - stream
    - size
    - error
    argTypes:
    - GInputStream*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 178
    functionDepth: 4
    functionLinenumber: 178
    functionLinenumberEnd: 196
    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_set_error_literal
    - g_prefix_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:203,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:205,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:208,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:208,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:209,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:214,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 221
    functionName: fu_genesys_usbhub_firmware_ensure_version
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_raw
    - fu_firmware_get_bytes
    - g_bytes_get_data
    - g_prefix_error_literal
    - g_bytes_get_size
    - g_autoptr
    - fu_memread_uint16_safe
    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:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 230
    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: 30
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_USBHUB_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:238,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:243,1
    - Dst: fu_genesys_usbhub_firmware_get_chip
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:246,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:247,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:250,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:250,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:251,1
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:252,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:270,1
    - Dst: fu_struct_genesys_ts_static_parse_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:286,1
    - Dst: fu_genesys_usbhub_firmware_calculate_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:297,1
    - Dst: fu_genesys_usbhub_firmware_calculate_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:307,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:316,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:319,1
    - Dst: fu_genesys_usbhub_firmware_verify_checksum
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:324,1
    - Dst: fu_genesys_usbhub_firmware_ensure_version
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:329,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:333,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:335,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:338,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:339,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:348,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:351,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:352,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:354,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:354,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 90
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 232
    functionDepth: 5
    functionLinenumber: 232
    functionLinenumberEnd: 360
    functionName: fu_genesys_usbhub_firmware_parse
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_genesys_usbhub_firmware_get_chip
    - fu_genesys_fw_type_to_string
    - fu_firmware_set_offset
    - fu_firmware_get_size
    - fu_genesys_usbhub_firmware_calculate_size
    - fu_firmware_set_stream
    - fu_genesys_usbhub_firmware_ensure_version
    - fu_firmware_new_from_gtypes
    - fu_firmware_add_image
    - g_prefix_error_literal
    - fu_genesys_usbhub_firmware_verify_checksum
    - fu_struct_genesys_ts_static_parse_stream
    - fu_firmware_set_idx
    - FU_GENESYS_USBHUB_FIRMWARE
    - fu_partial_input_stream_new
    - fu_input_stream_read_u8
    - fu_firmware_set_id
    - fu_input_stream_size
    - fu_firmware_set_alignment
    - fu_size_checked_inc
    - g_autoptr
    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:365,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:366,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:366,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:371,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:374,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:386,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:398,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:407,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:408,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:417,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 362
    functionDepth: 4
    functionLinenumber: 362
    functionLinenumberEnd: 418
    functionName: fu_genesys_usbhub_firmware_write
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_sum16
    - fu_memwrite_uint16_safe
    - g_steal_pointer
    - g_byte_array_new
    - fu_memcpy_safe
    - g_autoptr
    - FU_GENESYS_USBHUB_FIRMWARE
    - 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:425,1
    - Dst: fu_struct_genesys_ts_static_get_tool_string_version
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:428,1
    - Dst: fu_struct_genesys_ts_static_get_mask_project_code
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:430,1
    - Dst: fu_struct_genesys_ts_static_get_mask_project_hardware
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:432,1
    - Dst: fu_struct_genesys_ts_static_get_mask_project_firmware
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:434,1
    - Dst: fu_struct_genesys_ts_static_get_mask_project_ic_type
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:436,1
    - Dst: fu_struct_genesys_ts_static_get_mask_project_code
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:438,1
    - Dst: fu_struct_genesys_ts_static_get_running_project_hardware
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:440,1
    - Dst: fu_struct_genesys_ts_static_get_running_project_firmware
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:442,1
    - Dst: fu_struct_genesys_ts_static_get_running_project_ic_type
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:444,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:446,1
    - Dst: fu_genesys_ts_version_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:448,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:449,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:452,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:453,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:454,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:455,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:458,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:459,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 462
    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_mask_project_code
    - fu_struct_genesys_ts_static_get_mask_project_hardware
    - fu_struct_genesys_ts_static_get_tool_string_version
    - fu_genesys_ts_version_to_string
    - fu_struct_genesys_ts_static_get_mask_project_ic_type
    - fu_struct_genesys_ts_static_get_mask_project_firmware
    - fu_struct_genesys_ts_static_get_running_project_hardware
    - fu_struct_genesys_ts_static_get_running_project_ic_type
    - fu_xmlb_builder_insert_kv
    - FU_GENESYS_USBHUB_FIRMWARE
    - fu_struct_genesys_ts_static_get_running_project_firmware
    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:467,1
    - Dst: fu_struct_genesys_ts_static_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:471,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:473,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:475,1
    - Dst: fu_struct_genesys_ts_static_set_tool_string_version
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:481,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:485,1
    - Dst: strlen
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:487,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:489,1
    - Dst: fu_struct_genesys_ts_static_set_mask_project_code
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:497,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:504,1
    - Dst: strlen
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:506,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:508,1
    - Dst: fu_struct_genesys_ts_static_set_mask_project_ic_type
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:516,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 524
    functionName: fu_genesys_usbhub_firmware_build
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_genesys_ts_static_set_mask_project_code
    - xb_node_query_text
    - g_set_error
    - g_set_error_literal
    - strlen
    - fu_struct_genesys_ts_static_set_mask_project_ic_type
    - FU_GENESYS_USBHUB_FIRMWARE
    - fu_struct_genesys_ts_static_new
    - 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:529,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 530
    functionName: fu_genesys_usbhub_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16_hex
    - fu_firmware_get_version_format
    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:535,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:535,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:536,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:536,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:537,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:537,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:538,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:538,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:539,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysUsbhubFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 540
    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
    - fu_firmware_add_image_gtype
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:545,1
    - Dst: fu_struct_genesys_ts_static_unref
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:547,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 549
    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
    - FU_GENESYS_USBHUB_FIRMWARE
    - G_OBJECT_CLASS
    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:554,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysUsbhubFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 563
    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_plugin_add_flag
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:28,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    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:34,1
    - Dst: fu_plugin_get_context
      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_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:39,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:40,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:41,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:42,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:43,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:44,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:45,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:46,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:47,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:48,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:49,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:50,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:51,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:52,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:53,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:54,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:55,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:56,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:57,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:58,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:59,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:60,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:61,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:62,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:63,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:64,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:65,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:66,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 70
    functionName: fu_genesys_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_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:75,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:77,1
    - Dst: FU_IS_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:78,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:80,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - self
    - physical_id
    argTypes:
    - FuPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 84
    functionName: fu_genesys_plugin_get_device_by_physical_id
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_plugin_get_devices
    - fu_device_get_physical_id
    - FU_IS_GENESYS_USBHUB_DEVICE
    - g_ptr_array_index
    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:90,1
    - Dst: FU_IS_GENESYS_HUBHID_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:93,1
    - Dst: fu_device_get_backend_parent
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:96,1
    - Dst: fu_genesys_plugin_get_device_by_physical_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:99,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:100,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:102,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:103,1
    - Dst: fu_plugin_remove_device
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:104,1
    - Dst: fu_genesys_usbhub_device_set_proxy
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:106,1
    - Dst: FU_GENESYS_USBHUB_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:106,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/genesys/fu-genesys-plugin.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 86
    functionDepth: 6
    functionLinenumber: 86
    functionLinenumberEnd: 109
    functionName: fu_genesys_plugin_device_added
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_plugin_remove_device
    - fu_device_get_physical_id
    - FU_IS_GENESYS_HUBHID_DEVICE
    - fu_device_get_backend_parent
    - g_warning
    - fu_genesys_usbhub_device_set_proxy
    - fu_genesys_plugin_get_device_by_physical_id
    - g_autoptr
    - FU_GENESYS_USBHUB_DEVICE
    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:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 117
    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_literal
      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_literal
      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_literal
      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: 5
    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
    - fu_genesys_usbhub_firmware_ensure_version
    - fu_genesys_usbhub_firmware_verify_checksum
    - fu_genesys_fw_type_to_string
    - g_prefix_error_literal
    - fu_firmware_set_idx
    - fu_firmware_set_alignment
    - fu_genesys_usbhub_firmware_calculate_size
    - fu_firmware_set_stream
    - g_autoptr
    - fu_partial_input_stream_new
    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
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c:75,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysUsbhubPdFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: fu_genesys_usbhub_pd_firmware_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-pd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysUsbhubPdFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    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_literal
      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_literal
      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_literal
      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: 5
    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
    - fu_genesys_usbhub_firmware_ensure_version
    - fu_genesys_usbhub_firmware_verify_checksum
    - fu_genesys_fw_type_to_string
    - g_prefix_error_literal
    - fu_firmware_set_idx
    - fu_firmware_set_alignment
    - fu_genesys_usbhub_firmware_calculate_size
    - fu_firmware_set_stream
    - g_autoptr
    - fu_partial_input_stream_new
    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
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c:75,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysUsbhubDevFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: fu_genesys_usbhub_dev_firmware_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-dev-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysUsbhubDevFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    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: 9
    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:71,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:72,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:73,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:74,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 79
    functionName: fu_genesys_scaler_firmware_parse
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_safe
    - fu_firmware_set_id
    - g_bytes_new
    - fu_firmware_add_image
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - g_set_error_literal
    - fu_dump_raw
    - fu_firmware_new
    - memcmp
    - g_autoptr
    - fu_firmware_new_from_bytes
    - fu_partial_input_stream_new
    - FU_GENESYS_SCALER_FIRMWARE
    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:86,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:90,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:91,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:93,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 95
    functionName: fu_genesys_scaler_firmware_export
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kv
    - memcpy
    - FU_GENESYS_SCALER_FIRMWARE
    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:100,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:104,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:106,1
    - Dst: strlen
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:110,1
    - Dst: strlen
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:112,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:117,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:119,1
    - Dst: strlen
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:123,1
    - Dst: strlen
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 132
    functionName: fu_genesys_scaler_firmware_build
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - strlen
    - fu_memcpy_safe
    - FU_GENESYS_SCALER_FIRMWARE
    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:137,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:138,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:138,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:139,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:142,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:145,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:148,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 152
    functionName: fu_genesys_scaler_firmware_write
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - fu_firmware_get_bytes
    - g_steal_pointer
    - g_byte_array_new
    - g_byte_array_append
    - g_autoptr
    - FU_GENESYS_SCALER_FIRMWARE
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_genesys_scaler_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:157,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:157,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:158,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysScalerFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: fu_genesys_scaler_firmware_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_size_max
    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:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysScalerFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 169
    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: 9
    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:94,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:95,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:98,1
    - Dst: memset
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:100,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:101,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:109,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:111,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:114,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:114,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:115,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:120,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:122,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:124,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:128,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 6
    argNames:
    - self
    - setup
    - data
    - datasz
    - progress
    - error
    argTypes:
    - FuGenesysHubhidDevice*
    - FuGenesysUsbSetup*
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 47
    functionDepth: 6
    functionLinenumber: 47
    functionLinenumberEnd: 133
    functionName: fu_genesys_hubhid_device_command_read
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_ptr_array_index
    - fu_hid_device_get_report
    - fu_chunk_get_data_out
    - fu_progress_set_steps
    - g_byte_array_new
    - fu_chunk_array_mutable_new
    - fu_progress_step_done
    - g_warning
    - memset
    - fu_chunk_get_address
    - g_return_val_if_fail
    - fu_progress_set_id
    - fu_hid_device_set_report
    - g_prefix_error
    - FU_HID_DEVICE
    - fu_memcpy_safe
    - g_autoptr
    - 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: 145
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 145
    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: 13
    BranchProfiles: []
    Callsites:
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:155,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:157,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:157,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:159,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:161,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:164,1
    - Dst: fu_genesys_hubhid_device_can_pack_report
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:175,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:177,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:185,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:191,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:206,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:208,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:212,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:213,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:216,1
    - Dst: memset
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:218,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:219,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:222,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:223,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:225,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:227,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:229,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:232,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:240,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:242,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:246,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:251,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:258,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 6
    argNames:
    - self
    - setup
    - data
    - datasz
    - progress
    - error
    argTypes:
    - FuGenesysHubhidDevice*
    - FuGenesysUsbSetup*
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 147
    functionDepth: 6
    functionLinenumber: 147
    functionLinenumberEnd: 264
    functionName: fu_genesys_hubhid_device_command_write
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_genesys_hubhid_device_can_pack_report
    - g_ptr_array_index
    - fu_hid_device_get_report
    - fu_progress_set_steps
    - g_prefix_error_literal
    - g_byte_array_new
    - fu_chunk_array_new
    - fu_progress_step_done
    - fu_chunk_get_data
    - memset
    - fu_chunk_get_address
    - g_return_val_if_fail
    - fu_progress_set_id
    - fu_hid_device_set_report
    - g_prefix_error
    - FU_HID_DEVICE
    - fu_memcpy_safe
    - g_autoptr
    - 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:279,1
    - Dst: fu_genesys_hubhid_device_command_read
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:292,1
    - Dst: fu_genesys_hubhid_device_command_write
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    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: 266
    functionDepth: 7
    functionLinenumber: 266
    functionLinenumberEnd: 301
    functionName: fu_genesys_hubhid_device_send_report
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
    functionUses: 1
    functionsReached:
    - fu_genesys_hubhid_device_command_write
    - fu_genesys_hubhid_device_command_read
    - g_new0
    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_literal
      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: 7
    functionLinenumber: 303
    functionLinenumberEnd: 347
    functionName: fu_genesys_hubhid_device_validate_token
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_prefix_error_literal
    - g_byte_array_new
    - fu_utf8_to_utf16_byte_array
    - fu_genesys_hubhid_device_command_read
    - g_autoptr
    - fu_byte_array_set_size
    - fu_memcmp_safe
    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:
    - fu_usb_device_get_class
    - FU_USB_DEVICE
    - g_set_error_literal
    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: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:371,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:376,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 364
    functionDepth: 8
    functionLinenumber: 364
    functionLinenumberEnd: 383
    functionName: fu_genesys_hubhid_device_setup
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-hubhid-device.c
    functionUses: 0
    functionsReached:
    - FU_GENESYS_HUBHID_DEVICE
    - fu_genesys_hubhid_device_validate_token
    - FU_DEVICE_CLASS
    - g_prefix_error_literal
    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: 391
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 391
    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:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysHubhidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 399
    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: 4
    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:39,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 55
    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:63,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:67,1
    - Dst: fu_struct_genesys_fw_codesign_info_rsa_validate_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:71,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:72,1
    - Dst: fu_struct_genesys_fw_codesign_info_ecdsa_validate_stream
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:77,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:78,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:83,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:91,1
    - Dst: fu_genesys_fw_type_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:91,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:92,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 96
    functionName: fu_genesys_usbhub_codesign_firmware_parse
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c
    functionUses: 0
    functionsReached:
    - FU_GENESYS_USBHUB_CODESIGN_FIRMWARE
    - fu_struct_genesys_fw_codesign_info_rsa_validate_stream
    - fu_firmware_set_id
    - g_set_error
    - fu_input_stream_size
    - fu_genesys_fw_type_to_string
    - g_prefix_error_literal
    - fu_firmware_set_idx
    - fu_struct_genesys_fw_codesign_info_ecdsa_validate_stream
    - fu_firmware_set_size
    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:103,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:104,1
    - Dst: fu_genesys_fw_codesign_to_string
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 105
    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_xmlb_builder_insert_kv
    - fu_genesys_fw_codesign_to_string
    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:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:110,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysUsbhubCodesignFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: fu_genesys_usbhub_codesign_firmware_init
    functionSourceFile: /src/fwupd/plugins/genesys/fu-genesys-usbhub-codesign-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysUsbhubCodesignFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 120
    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_udev_subsystem
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-plugin.c:31,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-plugin.c:32,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-plugin.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 36
    functionName: fu_parade_usbhub_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuParadeUsbhubPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    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:51,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:52,1
    - Dst: fu_parade_usbhub_chip_to_string
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:52,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 54
    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
    - fu_parade_usbhub_chip_to_string
    - fwupd_codec_string_append_hex
    - 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:62,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - address
    - data
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint16
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 75
    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
    - fu_usb_device_control_transfer
    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:85,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: 89
      start: 77
    functionDepth: 5
    functionLinenumber: 77
    functionLinenumberEnd: 89
    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:98,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:98,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: 111
      start: 91
    functionDepth: 4
    functionLinenumber: 91
    functionLinenumberEnd: 111
    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
    - fu_usb_device_control_transfer
    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:121,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: 129
      start: 113
    functionDepth: 5
    functionLinenumber: 113
    functionLinenumberEnd: 129
    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:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - address
    - data
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint16
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 6
    functionLinenumber: 131
    functionLinenumberEnd: 138
    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:147,1
    - Dst: fu_parade_usbhub_device_mmio_write
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - address
    - data
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 140
    functionDepth: 6
    functionLinenumber: 140
    functionLinenumberEnd: 149
    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:158,1
    - Dst: fu_parade_usbhub_device_mmio_write
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - address
    - data
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint16
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 6
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: fu_parade_usbhub_device_mmio_write_u24
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_mmio_write
    - fu_memwrite_uint24
    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:169,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:171,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:172,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: 173
      start: 162
    functionDepth: 7
    functionLinenumber: 162
    functionLinenumberEnd: 173
    functionName: fu_parade_usbhub_device_mmio_set_bit
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_BIT_SET
    - fu_parade_usbhub_device_mmio_write_u8
    - 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:182,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:184,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:185,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: 186
      start: 175
    functionDepth: 7
    functionLinenumber: 175
    functionLinenumberEnd: 186
    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_parade_usbhub_device_mmio_read_u8
    - FU_BIT_CLEAR
    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:191,1
    - Dst: fu_parade_usbhub_device_mmio_read_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:193,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 188
    functionDepth: 5
    functionLinenumber: 188
    functionLinenumberEnd: 203
    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:208,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 214
    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
    - fu_device_retry_full
    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:225,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:230,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:240,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:244,1
    - Dst: fu_parade_usbhub_device_mmio_write
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:245,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:254,1
    - Dst: fu_parade_usbhub_device_spi_rom_wait_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:261,1
    - Dst: fu_parade_usbhub_device_mmio_read
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:265,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: 270
      start: 216
    functionDepth: 7
    functionLinenumber: 216
    functionLinenumberEnd: 270
    functionName: fu_parade_usbhub_device_spi_read_dma_dbi
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_parade_usbhub_device_spi_rom_wait_done
    - fu_parade_usbhub_device_mmio_write
    - fu_parade_usbhub_device_mmio_read
    - fu_parade_usbhub_device_mmio_write_u8
    - fu_memwrite_uint24
    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:284,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:286,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:291,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:299,1
    - Dst: fu_parade_usbhub_device_mmio_write
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:300,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:308,1
    - Dst: fu_parade_usbhub_device_spi_rom_wait_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:315,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:320,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:325,1
    - Dst: fu_parade_usbhub_device_mmio_write
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:332,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:338,1
    - Dst: fu_parade_usbhub_device_spi_rom_wait_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:345,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: 351
      start: 272
    functionDepth: 7
    functionLinenumber: 272
    functionLinenumberEnd: 351
    functionName: fu_parade_usbhub_device_spi_write_dma_dbi
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_parade_usbhub_device_spi_rom_wait_done
    - fu_parade_usbhub_device_mmio_write
    - fu_parade_usbhub_device_mmio_write_u8
    - fu_memwrite_uint24
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:362,1
    - Dst: fu_parade_usbhub_device_spi_read_dma_dbi
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:366,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:376,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:385,1
    - Dst: fu_parade_usbhub_device_spi_read_dma_dbi
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:386,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:388,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:390,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    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: 398
      start: 353
    functionDepth: 8
    functionLinenumber: 353
    functionLinenumberEnd: 398
    functionName: fu_parade_usbhub_device_spi_data_read
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_spi_read_dma_dbi
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - fu_chunk_array_mutable_new
    - g_autoptr
    - g_ptr_array_index
    - 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:409,1
    - Dst: fu_parade_usbhub_device_spi_write_dma_dbi
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:413,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:423,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:432,1
    - Dst: fu_parade_usbhub_device_spi_write_dma_dbi
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:433,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:435,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:437,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:438,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    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: 445
      start: 400
    functionDepth: 8
    functionLinenumber: 400
    functionLinenumberEnd: 445
    functionName: fu_parade_usbhub_device_spi_data_write
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_spi_write_dma_dbi
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - fu_chunk_array_mutable_new
    - g_autoptr
    - g_ptr_array_index
    - 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:453,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:458,1
    - Dst: fu_parade_usbhub_device_mmio_write
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:465,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:471,1
    - Dst: fu_parade_usbhub_device_spi_rom_wait_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 447
    functionDepth: 7
    functionLinenumber: 447
    functionLinenumberEnd: 478
    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
    - fu_parade_usbhub_device_mmio_write_u8
    - fu_parade_usbhub_device_spi_rom_wait_done
    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:487,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: 494
      start: 480
    functionDepth: 9
    functionLinenumber: 480
    functionLinenumberEnd: 494
    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:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 496
    functionDepth: 8
    functionLinenumber: 496
    functionLinenumberEnd: 503
    functionName: fu_parade_usbhub_device_enable_spi
    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(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:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 505
    functionDepth: 8
    functionLinenumber: 505
    functionLinenumberEnd: 512
    functionName: fu_parade_usbhub_device_disable_spi
    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(FuParadeUsbhubDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_USBHUB_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:517,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:521,1
    - Dst: fu_parade_usbhub_device_spi_data_read
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:526,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:535,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 514
    functionDepth: 9
    functionLinenumber: 514
    functionLinenumberEnd: 541
    functionName: fu_parade_usbhub_device_spi_wait_status_cb
    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_device_spi_data_read
    - 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:546,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 543
    functionDepth: 3
    functionLinenumber: 543
    functionLinenumberEnd: 552
    functionName: fu_parade_usbhub_device_spi_wait_status
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_retry_full
    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:558,1
    - Dst: fu_parade_usbhub_device_mmio_set_bit
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 554
    functionDepth: 8
    functionLinenumber: 554
    functionLinenumberEnd: 568
    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:581,1
    - Dst: fu_parade_usbhub_device_spi_data_read
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:586,1
    - Dst: FU_BIT_IS_CLEAR
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:595,1
    - Dst: FU_BIT_IS_CLEAR
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:595,1
    - Dst: FU_BIT_IS_CLEAR
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:595,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:598,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:599,1
    - Dst: FU_BIT_CLEAR
      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:603,1
    - Dst: fu_parade_usbhub_device_spi_write_command
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:608,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:612,1
    - Dst: fu_parade_usbhub_device_spi_data_write_ex
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:619,1
    - Dst: fu_parade_usbhub_device_spi_wait_status
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:621,1
    - Dst: fu_parade_usbhub_device_spi_data_read
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:625,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:634,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 570
    functionDepth: 10
    functionLinenumber: 570
    functionLinenumberEnd: 645
    functionName: fu_parade_usbhub_device_spi_rom_chip_unprotect
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_parade_usbhub_device_spi_data_read
    - fu_parade_usbhub_device_spi_data_write_ex
    - fu_parade_usbhub_device_spi_write_command
    - fu_parade_usbhub_device_spi_wait_status
    - FU_BIT_CLEAR
    - FU_BIT_IS_CLEAR
    - 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:657,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:667,1
    - Dst: fu_parade_usbhub_device_spi_write_command
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:672,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:676,1
    - Dst: fu_parade_usbhub_device_spi_write_command
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:681,1
    - Dst: fu_parade_usbhub_device_spi_wait_status
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:689,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - self
    - spi_address
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 647
    functionDepth: 10
    functionLinenumber: 647
    functionLinenumberEnd: 690
    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_wait_status
    - fu_parade_usbhub_device_spi_write_command
    - fu_cfi_device_get_cmd
    - g_set_error
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:698,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:700,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:708,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:709,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:711,1
    - Dst: fu_parade_usbhub_device_spi_rom_erase_sector
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:712,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:713,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:716,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - bufsz
    - progress
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 692
    functionDepth: 11
    functionLinenumber: 692
    functionLinenumberEnd: 721
    functionName: fu_parade_usbhub_device_spi_rom_erase
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_parade_usbhub_device_spi_rom_erase_sector
    - fu_chunk_get_address
    - g_autoptr
    - g_ptr_array_index
    - fu_progress_set_id
    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:729,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:736,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: 740
      start: 723
    functionDepth: 7
    functionLinenumber: 723
    functionLinenumberEnd: 740
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:750,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:752,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:761,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:764,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:765,1
    - Dst: fu_parade_usbhub_device_sram_set_page
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:766,1
    - Dst: fu_parade_usbhub_device_mmio_write_raw
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:771,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:772,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:773,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:774,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - self
    - sram_address
    - buf
    - bufsz
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 742
    functionDepth: 8
    functionLinenumber: 742
    functionLinenumberEnd: 781
    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_get_page
    - fu_chunk_array_mutable_new
    - fu_chunk_get_address
    - g_autoptr
    - g_ptr_array_index
    - 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:790,1
    - Dst: fu_parade_usbhub_device_mmio_write_u16
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:795,1
    - Dst: fu_parade_usbhub_device_mmio_write_u16
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:800,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:805,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: 811
      start: 783
    functionDepth: 7
    functionLinenumber: 783
    functionLinenumberEnd: 811
    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_u16
    - fu_parade_usbhub_device_mmio_write_u24
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:819,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:822,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:829,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:837,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:838,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:840,1
    - Dst: fu_parade_usbhub_device_sram_page_write
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:841,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:843,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:844,1
    - Dst: fu_parade_usbhub_device_spi_rom_write_trigger
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:847,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:850,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:851,1
    - Dst: fu_parade_usbhub_device_spi_rom_wait_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:854,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:856,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:860,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - self
    - blob
    - progress
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GByteArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 813
    functionDepth: 9
    functionLinenumber: 813
    functionLinenumberEnd: 864
    functionName: fu_parade_usbhub_device_spi_rom_write
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_spi_rom_wait_done
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - fu_progress_set_steps
    - fu_parade_usbhub_device_spi_rom_write_trigger
    - fu_progress_step_done
    - fu_parade_usbhub_device_sram_page_write
    - fu_chunk_array_mutable_new
    - fu_chunk_get_address
    - g_autoptr
    - fu_parade_usbhub_device_mmio_write_u8
    - g_ptr_array_index
    - fu_progress_set_id
    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:877,1
    - Dst: fu_parade_usbhub_device_spi_data_read
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:882,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:890,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:890,1
    - Dst: FU_BIT_IS_CLEAR
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:890,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:893,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:894,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:895,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:898,1
    - Dst: fu_parade_usbhub_device_spi_write_command
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:903,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:907,1
    - Dst: fu_parade_usbhub_device_spi_data_write_ex
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:914,1
    - Dst: fu_parade_usbhub_device_spi_wait_status
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:918,1
    - Dst: fu_parade_usbhub_device_spi_data_read
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:920,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:929,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 866
    functionDepth: 10
    functionLinenumber: 866
    functionLinenumberEnd: 940
    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_SET
    - g_set_error
    - FU_BIT_SET
    - fu_parade_usbhub_device_spi_data_read
    - fu_parade_usbhub_device_spi_data_write_ex
    - fu_parade_usbhub_device_spi_write_command
    - fu_parade_usbhub_device_spi_wait_status
    - FU_BIT_CLEAR
    - FU_BIT_IS_CLEAR
    - 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:948,1
    - Dst: fu_parade_usbhub_device_mmio_write_u16
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:953,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:958,1
    - Dst: fu_parade_usbhub_device_spi_rom_wait_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:965,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: 966
      start: 942
    functionDepth: 7
    functionLinenumber: 942
    functionLinenumberEnd: 966
    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_u16
    - fu_parade_usbhub_device_mmio_write_u24
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:975,1
    - Dst: fu_parade_usbhub_device_acquire_spi_master
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:978,1
    - Dst: fu_parade_usbhub_device_enable_spi
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:980,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:984,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:993,1
    - Dst: fu_parade_usbhub_device_calculate_checksum
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:994,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:995,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:996,1
    - Dst: fu_parade_usbhub_device_mmio_read
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1002,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1008,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - self
    - size
    - checksum
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - gsize
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 968
    functionDepth: 9
    functionLinenumber: 968
    functionLinenumberEnd: 1012
    functionName: fu_parade_usbhub_device_spi_rom_checksum
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new
    - fu_parade_usbhub_device_acquire_spi_master
    - fu_chunk_get_data_sz
    - fu_memread_uint32
    - fu_parade_usbhub_device_enable_spi
    - fu_parade_usbhub_device_mmio_read
    - fu_parade_usbhub_device_calculate_checksum
    - g_autoptr
    - g_ptr_array_index
    - 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:1018,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1014
    functionDepth: 7
    functionLinenumber: 1014
    functionLinenumberEnd: 1029
    functionName: fu_parade_usbhub_device_assert_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_assert_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:1036,1
    - Dst: fu_parade_usbhub_device_mmio_read_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1041,1
    - Dst: fu_parade_usbhub_device_mmio_read_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1046,1
    - Dst: fu_parade_usbhub_device_mmio_read_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1051,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1056,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1056,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1056,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1031
    functionDepth: 5
    functionLinenumber: 1031
    functionLinenumberEnd: 1060
    functionName: fu_parade_usbhub_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_memread_uint32
    - fu_parade_usbhub_device_mmio_read_u8
    - 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:1065,1
    - Dst: fu_parade_usbhub_device_acquire_spi_master
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1067,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1068,1
    - Dst: fu_parade_usbhub_device_enable_spi
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1071,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1072,1
    - Dst: fu_parade_usbhub_device_spi_rom_chip_unprotect
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1075,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1076,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1062
    functionDepth: 11
    functionLinenumber: 1062
    functionLinenumberEnd: 1082
    functionName: fu_parade_usbhub_device_detach
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_acquire_spi_master
    - FU_PARADE_USBHUB_DEVICE
    - g_prefix_error_literal
    - fu_parade_usbhub_device_enable_spi
    - fu_parade_usbhub_device_spi_rom_chip_unprotect
    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:1087,1
    - Dst: fu_parade_usbhub_device_spi_rom_chip_protect
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1089,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1090,1
    - Dst: fu_parade_usbhub_device_disable_spi
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1093,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1094,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1084
    functionDepth: 11
    functionLinenumber: 1084
    functionLinenumberEnd: 1100
    functionName: fu_parade_usbhub_device_attach
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_device_spi_rom_chip_protect
    - FU_PARADE_USBHUB_DEVICE
    - fu_parade_usbhub_device_disable_spi
    - g_prefix_error_literal
    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:1105,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1108,1
    - Dst: fu_parade_usbhub_device_ensure_version
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1112,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1102
    functionDepth: 6
    functionLinenumber: 1102
    functionLinenumberEnd: 1119
    functionName: fu_parade_usbhub_device_setup
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_PARADE_USBHUB_DEVICE
    - FU_DEVICE_CLASS
    - fu_parade_usbhub_device_ensure_version
    - g_prefix_error_literal
    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:1127,1
    - Dst: fu_parade_usbhub_device_assert_ufp_disconnect_flag
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1131,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1121
    functionDepth: 8
    functionLinenumber: 1121
    functionLinenumberEnd: 1138
    functionName: fu_parade_usbhub_device_prepare
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_PARADE_USBHUB_DEVICE
    - fu_parade_usbhub_device_assert_ufp_disconnect_flag
    - g_prefix_error_literal
    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:1146,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1146,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1148,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1149,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1150,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1151,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1140
    functionDepth: 6
    functionLinenumber: 1140
    functionLinenumberEnd: 1155
    functionName: fu_parade_usbhub_device_cleanup
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fwupd_request_new
    - fwupd_request_add_flag
    - fwupd_request_set_kind
    - fwupd_request_set_id
    - fu_device_emit_request
    - g_autoptr
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_USBHUB_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1164,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1165,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1166,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1171,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1172,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1173,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1174,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1177,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1182,1
    - Dst: fu_parade_usbhub_device_spi_rom_erase
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1191,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1193,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1196,1
    - Dst: fu_parade_usbhub_device_spi_rom_write
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1197,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1199,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1202,1
    - Dst: fu_parade_usbhub_device_spi_rom_checksum
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1205,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1206,1
    - Dst: fu_crc32
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1209,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1211,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1219,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1219,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1221,1
    - Dst: fu_parade_usbhub_device_mmio_write_u8
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1227,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1234,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1157
    functionDepth: 12
    functionLinenumber: 1157
    functionLinenumberEnd: 1238
    functionName: fu_parade_usbhub_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_crc32
    - fu_parade_usbhub_device_spi_rom_write
    - fu_progress_add_step
    - fu_firmware_get_stream
    - g_set_error
    - FU_PARADE_USBHUB_DEVICE
    - fu_parade_usbhub_device_mmio_write_u8
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_parade_usbhub_device_spi_rom_erase
    - fu_device_has_private_flag
    - fu_input_stream_read_byte_array
    - FU_DEVICE
    - g_autoptr
    - fu_progress_get_child
    - fu_parade_usbhub_device_spi_rom_checksum
    - fu_progress_set_id
    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:1243,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1244,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1245,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1246,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1247,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1240
    functionDepth: 3
    functionLinenumber: 1240
    functionLinenumberEnd: 1249
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1254,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1255
    functionName: fu_parade_usbhub_device_convert_version
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    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:1263,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1265,1
    - Dst: fu_parade_usbhub_chip_from_string
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1266,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1269,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1277
    functionName: fu_parade_usbhub_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_usbhub_chip_from_string
    - FU_PARADE_USBHUB_DEVICE
    - g_set_error_literal
    - 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:1283,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1283,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1284,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1284,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1285,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1285,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1286,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1286,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1287,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1287,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1288,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1288,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1289,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1289,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1290,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1290,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1291,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1291,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1292,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1292,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1293,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1293,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1295,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuParadeUsbhubDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1279
    functionDepth: 6
    functionLinenumber: 1279
    functionLinenumberEnd: 1296
    functionName: fu_parade_usbhub_device_init
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_set_firmware_size
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_add_request_flag
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:1301,1
    - Dst: fu_cfi_device_new
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1303,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1303,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1298
    functionDepth: 1
    functionLinenumber: 1298
    functionLinenumberEnd: 1307
    functionName: fu_parade_usbhub_device_constructed
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - FU_PARADE_USBHUB_DEVICE
    - fu_cfi_device_new
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_parade_usbhub_device_constructed(GObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PARADE_USBHUB_DEVICE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1312,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1315,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1309
    functionDepth: 0
    functionLinenumber: 1309
    functionLinenumberEnd: 1318
    functionName: fu_parade_usbhub_device_finalize
    functionSourceFile: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - FU_PARADE_USBHUB_DEVICE
    - 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:1323,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c:1324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuParadeUsbhubDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1320
    functionDepth: 0
    functionLinenumber: 1320
    functionLinenumberEnd: 1337
    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: 4
    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: 1
    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
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c:68,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-firmware.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuParadeUsbhubFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 69
    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
    - fu_firmware_set_size_max
    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:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuParadeUsbhubFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    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_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: 8
    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_size_from_uint64
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:73,1
    - Dst: fu_size_checked_inc_product
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:75,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:79,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:79,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 34
    functionDepth: 4
    functionLinenumber: 34
    functionLinenumberEnd: 85
    functionName: fu_android_boot_device_probe
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - FU_ANDROID_BOOT_DEVICE
    - fu_device_set_firmware_size_max
    - fu_strtoull
    - g_hash_table_lookup
    - g_set_error_literal
    - fu_size_from_uint64
    - fu_kernel_get_cmdline
    - fu_device_set_serial
    - fu_udev_device_set_physical_id
    - fu_udev_device_read_sysfs
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_size_checked_inc_product
    - FU_DEVICE_CLASS
    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:90,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:94,1
    - Dst: fu_block_partition_get_fs_label
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:98,1
    - Dst: FU_BLOCK_PARTITION
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:98,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:100,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:103,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:104,1
    - Dst: fu_block_partition_get_fs_uuid
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:117,1
    - Dst: FU_BLOCK_PARTITION
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:117,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:118,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:124,1
    - Dst: fu_block_partition_get_fs_uuid
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:126,1
    - Dst: FU_BLOCK_PARTITION
      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_add_instance_strsafe
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:128,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:131,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:133,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:134,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:137,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:138,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 87
    functionDepth: 7
    functionLinenumber: 87
    functionLinenumberEnd: 147
    functionName: fu_android_boot_device_setup
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - FU_ANDROID_BOOT_DEVICE
    - fu_block_partition_get_fs_label
    - fu_device_build_instance_id
    - fu_block_partition_get_fs_uuid
    - g_set_error_literal
    - g_str_has_suffix
    - fu_device_add_instance_strsafe
    - fu_device_set_name
    - FU_BLOCK_PARTITION
    - fu_device_has_flag
    - FU_DEVICE_CLASS
    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:152,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:155,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:156,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:157,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:163,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 168
    functionName: fu_android_boot_device_open
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_steal_pointer
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    - FU_DEVICE_CLASS
    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:176,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:177,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:177,1
    - Dst: fu_udev_device_seek
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:180,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:180,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:181,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:186,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:187,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:190,1
    - Dst: fu_udev_device_pwrite
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:193,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:193,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:194,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:195,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:196,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:198,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:200,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:203,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuAndroidBootDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 207
    functionName: fu_android_boot_device_write
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_seek
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error_literal
    - g_prefix_error
    - fu_progress_step_done
    - fu_udev_device_pwrite
    - fu_chunk_get_address
    - fu_chunk_get_data
    - FU_UDEV_DEVICE
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:212,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:213,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:213,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:214,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:215,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:215,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:215,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:217,1
    - Dst: fu_android_boot_device_write
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuAndroidBootDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 209
    functionDepth: 5
    functionLinenumber: 209
    functionLinenumberEnd: 222
    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
    - fu_android_boot_device_write
    - g_steal_pointer
    - g_malloc0
    - FU_DEVICE
    - g_bytes_new_take
    - fu_device_get_firmware_size_max
    - g_autoptr
    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:230,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:231,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:231,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:234,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: g_autoptr
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:238,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:241,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:245,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:245,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:246,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:246,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:247,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:249,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:251,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:253,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:256,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:257,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:257,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:258,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:259,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:261,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuAndroidBootDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 268
    functionName: fu_android_boot_device_verify
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error
    - g_malloc0
    - fu_udev_device_pread
    - fu_progress_step_done
    - fu_chunk_get_address
    - fu_bytes_compare
    - fu_chunk_get_bytes
    - FU_UDEV_DEVICE
    - fu_chunk_array_length
    - g_autoptr
    - g_bytes_new_static
    - fu_progress_set_id
    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:277,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:278,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:279,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:282,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:285,1
    - Dst: fu_progress_set_id
      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_progress_add_step
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:296,1
    - Dst: fu_android_boot_device_erase
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:299,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:299,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:301,1
    - Dst: fu_android_boot_device_write
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:303,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:303,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:305,1
    - Dst: fu_android_boot_device_verify
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:307,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:307,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:309,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: 312
      start: 270
    functionDepth: 6
    functionLinenumber: 270
    functionLinenumberEnd: 312
    functionName: fu_android_boot_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - FU_ANDROID_BOOT_DEVICE
    - fu_firmware_get_stream
    - fu_progress_add_step
    - fu_android_boot_device_write
    - fu_android_boot_device_erase
    - fu_progress_step_done
    - fu_chunk_array_new_from_stream
    - fu_android_boot_device_verify
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:320,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:323,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:324,1
    - Dst: fu_kernel_get_cmdline
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:327,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:331,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:333,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:337,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:340,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:347,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 352
    functionName: fu_android_boot_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - FU_ANDROID_BOOT_DEVICE
    - g_strcmp0
    - fu_device_set_version
    - fu_strtoull
    - g_hash_table_lookup
    - g_set_error_literal
    - fu_kernel_get_cmdline
    - g_autoptr
    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:357,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:358,1
    - Dst: g_free
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 360
    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:365,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:365,1
    - Dst: fu_device_add_protocol
      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_set_version_format
      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_device_add_flag
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:371,1
    - Dst: FU_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_udev_device_add_open_flag
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:374,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:374,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:375,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:375,1
    - Dst: fu_device_set_version
      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
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:383,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAndroidBootDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 362
    functionDepth: 6
    functionLinenumber: 362
    functionLinenumberEnd: 384
    functionName: fu_android_boot_device_init
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_summary
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    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:389,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-device.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAndroidBootDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 399
    functionName: fu_android_boot_device_class_init
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/android-boot/fu-android-boot-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_android_boot_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/android-boot/fu-android-boot-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - fu_plugin_add_device_udev_subsystem
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAndroidBootPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    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: 9
    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_get_interface
    - fu_usb_device_add_interface
    - FU_USB_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fastboot_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:57,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:58,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:61,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:61,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:71,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:71,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:74,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - self
    - buf
    - buflen
    - error
    argTypes:
    - FuFastbootDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 86
    functionName: fu_fastboot_device_write
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_sleep
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_usb_device_bulk_transfer
    - fu_memdup_safe
    - FU_USB_DEVICE
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fastboot_device_write(FuFastbootDevice *self, const guint8
      *buf, gsize buflen, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:91,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:93,1
    - Dst: fu_fastboot_device_write
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - str
    - error
    argTypes:
    - FuFastbootDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 88
    functionDepth: 5
    functionLinenumber: 88
    functionLinenumberEnd: 101
    functionName: fu_fastboot_device_writestr
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - strlen
    - fu_fastboot_device_write
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fastboot_device_writestr(FuFastbootDevice *self, const
      gchar *str, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:126,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:128,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:128,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:137,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:137,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:140,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:141,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:144,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:145,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:149,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:151,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:160,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:161,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:162,1
    - Dst: fu_progress_set_status
      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_debug
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:167,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:172,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:172,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:174,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:179,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:180,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:189,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:197,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 5
    argNames:
    - self
    - str
    - progress
    - flags
    - error
    argTypes:
    - FuFastbootDevice*
    - gchar**
    - FuProgress*
    - FuFastbootDeviceReadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 199
    functionName: fu_fastboot_device_read
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_debug
    - g_set_error
    - fu_device_sleep
    - fu_memstrsafe
    - g_set_error_literal
    - g_steal_pointer
    - fu_dump_raw
    - FU_DEVICE
    - fu_usb_device_bulk_transfer
    - g_error_matches
    - memcmp
    - fu_progress_set_status
    - FU_USB_DEVICE
    - g_autoptr
    - g_propagate_prefixed_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fastboot_device_read(FuFastbootDevice *self,\n\t\t\tgchar
      **str,\n\t\t\tFuProgress *progress,\n\t\t\tFuFastbootDeviceReadFlags flags,\n\t\t\tGError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:204,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:205,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:205,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:206,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_error_matches
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:215,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:216,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:218,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - self
    - key
    - str
    - error
    argTypes:
    - FuFastbootDevice*
    - gchar*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 201
    functionDepth: 6
    functionLinenumber: 201
    functionLinenumberEnd: 226
    functionName: fu_fastboot_device_getvar
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - fu_fastboot_device_read
    - g_debug
    - g_steal_pointer
    - g_strdup_printf
    - fu_progress_new
    - fu_fastboot_device_writestr
    - g_error_matches
    - g_autoptr
    - g_propagate_prefixed_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fastboot_device_getvar(FuFastbootDevice *self, 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:235,1
    - Dst: fu_fastboot_device_read
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - self
    - cmd
    - progress
    - flags
    - error
    argTypes:
    - FuFastbootDevice*
    - gchar*
    - FuProgress*
    - FuFastbootDeviceReadFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 228
    functionDepth: 6
    functionLinenumber: 228
    functionLinenumberEnd: 240
    functionName: fu_fastboot_device_cmd
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - fu_fastboot_device_read
    - fu_fastboot_device_writestr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fastboot_device_cmd(FuFastbootDevice *self,\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:248,1
    - Dst: fu_fastboot_device_cmd
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - partition
    - progress
    - error
    argTypes:
    - FuFastbootDevice*
    - gchar*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 242
    functionDepth: 7
    functionLinenumber: 242
    functionLinenumberEnd: 254
    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(FuFastbootDevice *self,\n\t\t\t
      const gchar *partition,\n\t\t\t FuProgress *progress,\n\t\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:262,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:263,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:264,1
    - Dst: fu_fastboot_device_cmd
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:267,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:275,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:276,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:280,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:281,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:281,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:282,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:283,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:286,1
    - Dst: fu_fastboot_device_write
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:289,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:290,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:291,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:294,1
    - Dst: fu_fastboot_device_read
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuFastbootDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 256
    functionDepth: 7
    functionLinenumber: 256
    functionLinenumberEnd: 303
    functionName: fu_fastboot_device_download
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - fu_fastboot_device_read
    - fu_chunk_array_new_from_bytes
    - fu_fastboot_device_write
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - fu_progress_step_done
    - g_strdup_printf
    - fu_fastboot_device_cmd
    - fu_chunk_get_data
    - g_bytes_get_size
    - fu_chunk_array_length
    - fu_progress_set_status
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fastboot_device_download(FuFastbootDevice *self,\n\t\t\t
      \   GBytes *fw,\n\t\t\t    FuProgress *progress,\n\t\t\t    GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FU_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:308,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:316,1
    - Dst: fu_fastboot_device_getvar
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:320,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:323,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:324,1
    - Dst: fu_fastboot_device_getvar
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:328,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:331,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:333,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:334,1
    - Dst: fu_fastboot_device_getvar
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:338,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:341,1
    - Dst: fu_fastboot_device_getvar
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:344,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:347,1
    - Dst: fu_fastboot_device_getvar
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:350,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:353,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:353,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:355,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:355,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 305
    functionDepth: 7
    functionLinenumber: 305
    functionLinenumberEnd: 360
    functionName: fu_fastboot_device_setup
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - FU_FASTBOOT_DEVICE
    - fu_device_add_flag
    - fu_device_set_version
    - fu_device_set_version_bootloader
    - fu_device_set_serial
    - fu_device_set_name
    - g_strdup_printf
    - FU_DEVICE
    - fu_fastboot_device_getvar
    - fu_version_guess_format
    - fu_device_set_version_format
    - FU_DEVICE_CLASS
    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:374,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:379,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:384,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:387,1
    - Dst: fu_fastboot_device_download
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:391,1
    - Dst: fu_fastboot_device_flash
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - self
    - firmware
    - part
    - progress
    - error
    argTypes:
    - FuFastbootDevice*
    - FuFirmware*
    - XbNode*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 362
    functionDepth: 8
    functionLinenumber: 362
    functionLinenumberEnd: 394
    functionName: fu_fastboot_device_write_qfil_part
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - fu_fastboot_device_download
    - fu_firmware_get_image_by_id_bytes
    - fu_fastboot_device_flash
    - g_str_has_prefix
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fastboot_device_write_qfil_part(FuFastbootDevice *self,\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:403,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:406,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:407,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:415,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:416,1
    - Dst: xb_node_export
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:421,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:422,1
    - Dst: fu_fastboot_device_getvar
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:431,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:434,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:445,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:446,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:447,1
    - Dst: xb_node_export
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:452,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:453,1
    - Dst: fu_fastboot_device_cmd
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:462,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:470,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:472,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:473,1
    - Dst: xb_node_export
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:485,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:486,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:495,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:505,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:510,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:511,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:512,1
    - Dst: fu_fastboot_device_download
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:524,1
    - Dst: fu_fastboot_device_flash
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:526,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:530,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:530,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:531,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:531,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:532,1
    - Dst: fu_fastboot_device_cmd
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:533,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:541,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 5
    argNames:
    - self
    - firmware
    - part
    - progress
    - error
    argTypes:
    - FuFastbootDevice*
    - FuFirmware*
    - XbNode*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 396
    functionDepth: 8
    functionLinenumber: 396
    functionLinenumberEnd: 543
    functionName: fu_fastboot_device_write_motorola_part
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_fastboot_device_download
    - g_set_error
    - g_set_error_literal
    - fu_firmware_get_image_by_id_bytes
    - g_strdup_printf
    - fu_fastboot_device_cmd
    - fu_fastboot_device_getvar
    - xb_node_export
    - xb_node_get_attr
    - fu_fastboot_device_flash
    - g_compute_checksum_for_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fastboot_device_write_motorola_part(FuFastbootDevice *self,\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:552,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:553,1
    - Dst: xb_builder_new
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:553,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:554,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:554,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:555,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:558,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:561,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:562,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:565,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:566,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:568,1
    - Dst: xb_silo_query
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:573,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:575,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:578,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:579,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:581,1
    - Dst: fu_fastboot_device_write_motorola_part
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:582,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:585,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:588,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuFastbootDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 545
    functionDepth: 9
    functionLinenumber: 545
    functionLinenumberEnd: 593
    functionName: fu_fastboot_device_write_motorola
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - xb_builder_compile
    - xb_builder_source_load_bytes
    - xb_builder_source_new
    - fu_firmware_get_image_by_id_bytes
    - xb_builder_import_source
    - xb_silo_query
    - fwupd_error_convert
    - fu_progress_set_steps
    - fu_fastboot_device_write_motorola_part
    - fu_progress_step_done
    - fu_progress_set_id
    - g_autoptr
    - fu_progress_get_child
    - g_ptr_array_index
    - xb_builder_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fastboot_device_write_motorola(FuFastbootDevice *self,\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:602,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:603,1
    - Dst: xb_builder_new
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:603,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:604,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:604,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:605,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:608,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:611,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:612,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:615,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:616,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:618,1
    - Dst: xb_silo_query
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:623,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:625,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:628,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:629,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:631,1
    - Dst: fu_fastboot_device_write_qfil_part
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:632,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:635,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:638,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuFastbootDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 595
    functionDepth: 9
    functionLinenumber: 595
    functionLinenumberEnd: 643
    functionName: fu_fastboot_device_write_qfil
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - xb_builder_compile
    - xb_builder_source_load_bytes
    - xb_builder_source_new
    - fu_firmware_get_image_by_id_bytes
    - xb_builder_import_source
    - xb_silo_query
    - fwupd_error_convert
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_fastboot_device_write_qfil_part
    - fu_progress_set_id
    - g_autoptr
    - fu_progress_get_child
    - g_ptr_array_index
    - xb_builder_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_fastboot_device_write_qfil(FuFastbootDevice *self,\n\t\t\t
      \     FuFirmware *firmware,\n\t\t\t      FuProgress *progress,\n\t\t\t      GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:652,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:653,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:656,1
    - Dst: fu_fastboot_device_write_qfil
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:658,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:659,1
    - Dst: fu_fastboot_device_write_motorola
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:661,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:664,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: 669
      start: 645
    functionDepth: 10
    functionLinenumber: 645
    functionLinenumberEnd: 669
    functionName: fu_fastboot_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - FU_FASTBOOT_DEVICE
    - g_set_error_literal
    - fu_fastboot_device_write_qfil
    - fu_firmware_get_image_by_id
    - fu_fastboot_device_write_motorola
    - g_autoptr
    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:677,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:681,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:682,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:687,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:688,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:695,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 700
    functionName: fu_fastboot_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - FU_FASTBOOT_DEVICE
    - fu_strtoull
    - g_strcmp0
    - g_set_error_literal
    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
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:705,1
    - Dst: fu_fastboot_device_cmd
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:706,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 702
    functionDepth: 7
    functionLinenumber: 702
    functionLinenumberEnd: 714
    functionName: fu_fastboot_device_attach
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - FU_FASTBOOT_DEVICE
    - fu_fastboot_device_cmd
    - fu_device_add_flag
    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:719,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:720,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:721,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:722,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:723,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 716
    functionDepth: 3
    functionLinenumber: 716
    functionLinenumberEnd: 725
    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 *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:734,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:734,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:735,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:735,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:736,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:736,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:737,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:737,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:738,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:738,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:739,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:739,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:740,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:740,1
    - Dst: fu_usb_device_set_claim_retry_count
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:741,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-device.c:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFastbootDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 727
    functionDepth: 6
    functionLinenumber: 727
    functionLinenumberEnd: 742
    functionName: fu_fastboot_device_init
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_usb_device_set_claim_retry_count
    - FU_USB_DEVICE
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFastbootDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 755
    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_udev_subsystem
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-plugin.c:31,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/fastboot/fu-fastboot-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: fu_fastboot_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/fastboot/fu-fastboot-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_gtype
    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:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFastbootPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    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_literal
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:63,1
    - Dst: g_set_error_literal
      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*
    - FuAnalogixBbRqt
    - guint16
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 76
    functionName: fu_analogix_device_send
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_memdup_safe
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_analogix_device_send(FuAnalogixDevice *self,\n\t\t\tFuAnalogixBbRqt
      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_literal
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:106,1
    - Dst: g_set_error_literal
      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*
    - FuAnalogixBbRqt
    - guint16
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 78
    functionDepth: 4
    functionLinenumber: 78
    functionLinenumberEnd: 119
    functionName: fu_analogix_device_receive
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - g_prefix_error_literal
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_analogix_device_receive(FuAnalogixDevice *self,\n\t\t\t
      \  FuAnalogixBbRqt 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: 5
    functionLinenumber: 121
    functionLinenumberEnd: 152
    functionName: fu_analogix_device_get_update_status
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - fu_analogix_device_receive
    - g_debug
    - fu_device_sleep
    - g_set_error_literal
    - fu_analogix_update_status_to_string
    - FU_DEVICE
    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:175,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:183,1
    - Dst: fu_analogix_device_receive
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:186,1
    - Dst: fu_analogix_device_receive
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:194,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:202,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:205,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:206,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 154
    functionDepth: 5
    functionLinenumber: 154
    functionLinenumberEnd: 208
    functionName: fu_analogix_device_setup
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - fu_analogix_device_receive
    - fu_device_set_version
    - FU_DEVICE
    - g_strdup_printf
    - FU_ANALOGIX_DEVICE
    - fu_memread_uint16
    - FU_DEVICE_CLASS
    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:213,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:214,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:216,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:216,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:220,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:221,1
    - Dst: fu_usb_interface_get_subclass
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:222,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:223,1
    - Dst: fu_usb_device_add_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: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:225,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:229,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 210
    functionDepth: 9
    functionLinenumber: 210
    functionLinenumberEnd: 231
    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_device_get_interfaces
    - g_set_error_literal
    - fu_usb_interface_get_protocol
    - fu_usb_device_add_interface
    - fu_usb_interface_get_class
    - FU_ANALOGIX_DEVICE
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_interface_get_subclass
    - g_ptr_array_index
    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:236,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:236,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 233
    functionDepth: 10
    functionLinenumber: 233
    functionLinenumberEnd: 243
    functionName: fu_analogix_device_probe
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_prefix_error_literal
    - 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:253,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:254,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:254,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:255,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:257,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:260,1
    - Dst: fu_analogix_device_send
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:263,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:267,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:268,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:270,1
    - Dst: fu_analogix_device_get_update_status
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:273,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:274,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:277,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: 282
      start: 245
    functionDepth: 6
    functionLinenumber: 245
    functionLinenumberEnd: 282
    functionName: fu_analogix_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_analogix_device_send
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_analogix_device_get_update_status
    - fu_chunk_get_data
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:294,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:295,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:298,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:299,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:300,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:303,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:308,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:310,1
    - Dst: fu_analogix_device_send
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:311,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:318,1
    - Dst: fu_analogix_device_get_update_status
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:321,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:323,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:326,1
    - Dst: fu_analogix_device_write_chunks
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:333,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:336,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:339,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: 343
      start: 284
    functionDepth: 7
    functionLinenumber: 284
    functionLinenumberEnd: 343
    functionName: fu_analogix_device_write_image
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint32
    - fu_analogix_device_write_chunks
    - fu_progress_add_step
    - fu_input_stream_size
    - fu_firmware_get_stream
    - fu_analogix_device_send
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_analogix_device_get_update_status
    - fu_chunk_array_new_from_stream
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:352,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:354,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:355,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:356,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:357,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:360,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:361,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:362,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:363,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:366,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:368,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:370,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:372,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:374,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:376,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_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:395,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:397,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:401,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:403,1
    - Dst: fu_analogix_device_write_image
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:409,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:412,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:414,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:417,1
    - Dst: fu_analogix_device_write_image
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:422,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:425,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:427,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:430,1
    - Dst: fu_analogix_device_write_image
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:435,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:438,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:440,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:443,1
    - Dst: fu_analogix_device_write_image
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:448,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:451,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:453,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:456,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: 461
      start: 345
    functionDepth: 8
    functionLinenumber: 345
    functionLinenumberEnd: 461
    functionName: fu_analogix_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - fu_analogix_device_write_image
    - fu_progress_add_step
    - g_set_error_literal
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_firmware_get_image_by_id
    - fu_firmware_get_size
    - FU_ANALOGIX_DEVICE
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:466,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:466,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:469,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:470,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:471,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:472,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 463
    functionDepth: 6
    functionLinenumber: 463
    functionLinenumberEnd: 478
    functionName: fu_analogix_device_attach
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fwupd_request_new
    - fwupd_request_add_flag
    - fwupd_request_set_kind
    - fwupd_request_set_id
    - fu_device_emit_request
    - g_autoptr
    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:483,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:484,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:485,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:486,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:487,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 489
    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 *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:494,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:494,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:495,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:495,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:496,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:496,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:497,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:497,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:498,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:498,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:499,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:499,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:500,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:500,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:501,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/analogix/fu-analogix-device.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAnalogixDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 491
    functionDepth: 6
    functionLinenumber: 491
    functionLinenumberEnd: 502
    functionName: fu_analogix_device_init
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - FU_DEVICE
    - fu_device_add_request_flag
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAnalogixDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 514
    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: 16
    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:63,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:64,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:70,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:77,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:82,1
    - Dst: fu_bytes_is_empty
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:84,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:84,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:85,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:86,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:87,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:93,1
    - Dst: fu_bytes_is_empty
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:95,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:95,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:96,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:97,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:98,1
    - Dst: fu_bytes_is_empty
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:102,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:102,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:103,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:104,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:105,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 63
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 111
    functionName: fu_analogix_firmware_parse
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_addr
    - fu_firmware_set_version_raw
    - g_bytes_ref
    - fu_firmware_set_id
    - fu_firmware_get_bytes_with_patches
    - fu_firmware_add_image
    - g_bytes_get_data
    - FU_FIRMWARE_CLASS
    - fu_bytes_is_empty
    - fu_memread_uint8_safe
    - FuFirmwareClass*::parse
    - g_bytes_get_size
    - fu_bytes_new_offset
    - g_autoptr
    - fu_firmware_new_from_bytes
    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:116,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: fu_analogix_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-firmware.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16_hex
    - fu_firmware_get_version_format
    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:122,1
    - Dst: FU_IHEX_FIRMWARE
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:122,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:123,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:123,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:124,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:124,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:125,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/analogix/fu-analogix-firmware.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAnalogixFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 126
    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_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_ihex_firmware_set_padding_value
    - fu_firmware_set_size_max
    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:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAnalogixFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    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_udev_subsystem
      Src: /src/fwupd/plugins/analogix/fu-analogix-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/analogix/fu-analogix-plugin.c:29,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/analogix/fu-analogix-plugin.c:30,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/analogix/fu-analogix-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: fu_analogix_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/analogix/fu-analogix-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAnalogixPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:51,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:52,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:53,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:54,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:56,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:62,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:62,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:70,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:74,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:82,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:84,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:84,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:92,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:95,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:105,1
    - Dst: fu_struct_synaptics_prometheus_reply_generic_parse
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:106,1
    - Dst: fu_synaptics_prometheus_error_from_status
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:112,1
    - Dst: fu_struct_synaptics_prometheus_reply_generic_get_status
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 6
    argNames:
    - self
    - request
    - reply
    - progress
    - timeout_ms
    - error
    argTypes:
    - FuSynapticsPrometheusDevice*
    - GByteArray*
    - GByteArray*
    - FuProgress*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 119
    functionName: fu_synaptics_prometheus_device_cmd_send
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_prometheus_error_from_status
    - fu_struct_synaptics_prometheus_reply_generic_get_status
    - fu_progress_add_step
    - g_set_error
    - fu_progress_add_flag
    - fu_struct_synaptics_prometheus_reply_generic_parse
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_usb_device_bulk_transfer
    - fu_dump_full
    - FU_USB_DEVICE
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_prometheus_device_cmd_send(FuSynapticsPrometheusDevice
      *self,\n\t\t\t\t\tGByteArray *request,\n\t\t\t\t\tGByteArray *reply,\n\t\t\t\t\tFuProgress
      *progress,\n\t\t\t\t\tguint timeout_ms,\n\t\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsPrometheusDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: fu_synaptics_prometheus_device_get_product_type
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_synaptics_prometheus_device_get_product_type(FuSynapticsPrometheusDevice
      *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:139,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:144,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:145,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - vmajor
    - vminor
    - buildnum
    argTypes:
    - FuSynapticsPrometheusDevice*
    - guint8
    - guint8
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 150
    functionName: fu_synaptics_prometheus_device_set_version
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_set_version
    - g_debug
    linkageType: ''
    returnType: void
    signature: "void fu_synaptics_prometheus_device_set_version(FuSynapticsPrometheusDevice
      *self,\n\t\t\t\t\t   guint8 vmajor,\n\t\t\t\t\t   guint8 vminor,\n\t\t\t\t\t
      \  guint32 buildnum)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:157,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:158,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - serial_number
    argTypes:
    - FuSynapticsPrometheusDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: fu_synaptics_prometheus_device_set_serial_number
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_set_serial
    linkageType: ''
    returnType: void
    signature: "void fu_synaptics_prometheus_device_set_serial_number(FuSynapticsPrometheusDevice
      *self,\n\t\t\t\t\t\t guint64 serial_number)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_PROMETHEUS_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:167,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:168,1
    - Dst: fu_struct_synaptics_prometheus_request_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:169,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:170,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:171,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:171,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:174,1
    - Dst: fu_struct_synaptics_prometheus_request_set_cmd
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:178,1
    - Dst: fu_synaptics_prometheus_reply_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:180,1
    - Dst: fu_synaptics_prometheus_device_cmd_send
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:182,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:188,1
    - Dst: fu_struct_synaptics_prometheus_reply_get_version_parse
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:191,1
    - Dst: fu_synaptics_prometheus_device_set_version
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:197,1
    - Dst: fu_struct_synaptics_prometheus_reply_get_version_get_vmajor
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:199,1
    - Dst: fu_struct_synaptics_prometheus_reply_get_version_get_vminor
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:200,1
    - Dst: fu_struct_synaptics_prometheus_reply_get_version_get_buildnum
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:201,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:204,1
    - Dst: fu_struct_synaptics_prometheus_reply_get_version_get_serial_number
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:205,1
    - Dst: fu_synaptics_prometheus_device_set_serial_number
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:207,1
    - Dst: fu_struct_synaptics_prometheus_reply_get_version_get_product
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:210,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:213,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:218,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:220,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:236,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:237,1
    - Dst: fu_struct_synaptics_prometheus_reply_get_version_get_security1
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:238,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:240,1
    - Dst: fu_synaptics_prometheus_config_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:241,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:241,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:242,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:242,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:242,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 161
    functionDepth: 6
    functionLinenumber: 161
    functionLinenumberEnd: 247
    functionName: fu_synaptics_prometheus_device_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_child
    - fu_struct_synaptics_prometheus_reply_get_version_get_serial_number
    - fu_device_get_children
    - fu_struct_synaptics_prometheus_request_set_cmd
    - fu_progress_new
    - fu_synaptics_prometheus_device_cmd_send
    - fu_struct_synaptics_prometheus_reply_get_version_get_vmajor
    - fu_synaptics_prometheus_config_new
    - g_prefix_error_literal
    - fu_struct_synaptics_prometheus_request_new
    - fu_device_has_flag
    - fu_synaptics_prometheus_device_set_version
    - fu_struct_synaptics_prometheus_reply_get_version_get_security1
    - fu_synaptics_prometheus_device_set_serial_number
    - fu_struct_synaptics_prometheus_reply_get_version_get_product
    - fu_device_remove_flag
    - FU_DEVICE
    - FU_DEVICE_CLASS
    - fu_synaptics_prometheus_reply_new
    - fu_struct_synaptics_prometheus_reply_get_version_get_buildnum
    - fu_struct_synaptics_prometheus_reply_get_version_get_vminor
    - g_set_error
    - memcpy
    - fu_struct_synaptics_prometheus_reply_get_version_parse
    - g_autoptr
    - FU_SYNAPTICS_PROMETHEUS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_prometheus_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:257,1
    - Dst: fu_synaptics_prometheus_firmware_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:257,1
    - Dst: FU_SYNAPTICS_PROMETHEUS_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:258,1
    - Dst: fu_synaptics_prometheus_firmware_set_signature_size
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:261,1
    - Dst: FU_SYNAPTICS_PROMETHEUS_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:262,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:268,1
    - Dst: fu_synaptics_prometheus_firmware_get_product_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:270,1
    - Dst: FU_SYNAPTICS_PROMETHEUS_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:271,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:275,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:281,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:294,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 295
    functionName: fu_synaptics_prometheus_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_prometheus_firmware_set_signature_size
    - g_set_error
    - fu_firmware_parse_stream
    - g_steal_pointer
    - g_warning
    - FU_SYNAPTICS_PROMETHEUS_FIRMWARE
    - fu_synaptics_prometheus_firmware_new
    - g_autoptr
    - fu_synaptics_prometheus_firmware_get_product_id
    - FU_SYNAPTICS_PROMETHEUS_DEVICE
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_synaptics_prometheus_device_prepare_firmware(FuDevice
      *device,\n\t\t\t\t\t\tGInputStream *stream,\n\t\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\t\tFuFirmwareParseFlags
      flags,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:304,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:305,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:307,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:308,1
    - Dst: fu_struct_synaptics_prometheus_request_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:309,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:310,1
    - Dst: fu_struct_synaptics_prometheus_request_set_cmd
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:313,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:316,1
    - Dst: fu_synaptics_prometheus_reply_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:317,1
    - Dst: fu_synaptics_prometheus_device_cmd_send
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:319,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:322,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuSynapticsPrometheusDevice*
    - GPtrArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 297
    functionDepth: 5
    functionLinenumber: 297
    functionLinenumberEnd: 331
    functionName: fu_synaptics_prometheus_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_synaptics_prometheus_request_set_cmd
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_struct_synaptics_prometheus_request_new
    - fu_synaptics_prometheus_device_cmd_send
    - g_byte_array_append
    - fu_synaptics_prometheus_reply_new
    - g_autoptr
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_prometheus_device_write_chunks(FuSynapticsPrometheusDevice
      *self,\n\t\t\t\t\t    GPtrArray *chunks,\n\t\t\t\t\t    FuProgress *progress,\n\t\t\t\t\t
      \   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:342,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:345,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:346,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:347,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:350,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:351,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:355,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:355,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:358,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:363,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:364,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:376,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:377,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:377,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:379,1
    - Dst: fu_synaptics_prometheus_device_write_chunks
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:382,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:384,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:387,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuSynapticsPrometheusDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 333
    functionDepth: 6
    functionLinenumber: 333
    functionLinenumberEnd: 391
    functionName: fu_synaptics_prometheus_device_write_fw
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_prometheus_device_write_chunks
    - fu_memread_uint32_safe
    - fu_progress_add_step
    - g_bytes_get_data
    - g_steal_pointer
    - g_ptr_array_add
    - fu_progress_step_done
    - g_malloc0
    - fu_memcpy_safe
    - g_byte_array_new
    - g_byte_array_append
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - fu_progress_get_child
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_prometheus_device_write_fw(FuSynapticsPrometheusDevice
      *self,\n\t\t\t\t\tGBytes *fw,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_PROMETHEUS_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:400,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:401,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:404,1
    - Dst: fu_synaptics_prometheus_device_write_fw
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:408,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: 409
      start: 393
    functionDepth: 7
    functionLinenumber: 393
    functionLinenumberEnd: 409
    functionName: fu_synaptics_prometheus_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_prometheus_device_write_fw
    - fu_firmware_get_image_by_id_bytes
    - g_autoptr
    - FU_SYNAPTICS_PROMETHEUS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_prometheus_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: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:420,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:421,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:426,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:426,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:442,1
    - Dst: fu_usb_device_reset
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:450,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:450,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:451,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:454,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 411
    functionDepth: 5
    functionLinenumber: 411
    functionLinenumberEnd: 456
    functionName: fu_synaptics_prometheus_device_attach
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - g_prefix_error_literal
    - fu_device_remove_flag
    - fu_device_has_flag
    - fu_usb_device_reset
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_prometheus_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:466,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:467,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:471,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:471,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:486,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:494,1
    - Dst: fu_usb_device_reset
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:495,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:495,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:496,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:499,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 458
    functionDepth: 6
    functionLinenumber: 458
    functionLinenumberEnd: 501
    functionName: fu_synaptics_prometheus_device_detach
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - g_set_error
    - g_prefix_error_literal
    - fu_device_has_flag
    - fu_progress_set_status
    - fu_usb_device_reset
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_prometheus_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:506,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:507,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:508,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:509,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:510,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 503
    functionDepth: 3
    functionLinenumber: 503
    functionLinenumberEnd: 512
    functionName: fu_synaptics_prometheus_device_set_progress
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_prometheus_device_set_progress(FuDevice *device,
      FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:517,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:517,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:518,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:518,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:519,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:519,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:520,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:520,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:521,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:521,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:522,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:522,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:523,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:523,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:524,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:524,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:525,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:525,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:526,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:526,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:527,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:527,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:528,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsPrometheusDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 514
    functionDepth: 6
    functionLinenumber: 514
    functionLinenumberEnd: 529
    functionName: fu_synaptics_prometheus_device_init
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - fu_device_add_icon
    - fu_usb_device_add_interface
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_summary
    - fu_device_set_vendor
    - fu_device_set_version_format
    - FU_USB_DEVICE
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_prometheus_device_init(FuSynapticsPrometheusDevice
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsPrometheusDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 542
    functionName: fu_synaptics_prometheus_device_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_prometheus_device_class_init(FuSynapticsPrometheusDeviceClass
      *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:548,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:550,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:550,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:551,1
    - Dst: FU_SYNAPTICS_PROMETHEUS_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 544
    functionDepth: 9
    functionLinenumber: 544
    functionLinenumberEnd: 555
    functionName: fu_synaptics_prometheus_device_new
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_object_new
    - FU_SYNAPTICS_PROMETHEUS_DEVICE
    - fu_device_incorporate
    linkageType: ''
    returnType: FuSynapticsPrometheusDevice
    signature: 'FuSynapticsPrometheusDevice *

      fu_synaptics_prometheus_device_new(FuUsbDevice *device)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_PROMETHEUS_CONFIG
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:44,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:45,1
    - Dst: fu_struct_synaptics_prometheus_request_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:47,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:49,1
    - Dst: fu_struct_synaptics_prometheus_cmd_iota_find_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:51,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:51,1
    - Dst: fu_struct_synaptics_prometheus_cmd_iota_find_set_itype
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:54,1
    - Dst: fu_struct_synaptics_prometheus_cmd_iota_find_set_flags
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:57,1
    - Dst: fu_struct_synaptics_prometheus_request_set_cmd
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:60,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:62,1
    - Dst: fu_synaptics_prometheus_reply_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:64,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:67,1
    - Dst: fu_synaptics_prometheus_device_cmd_send
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:70,1
    - Dst: FU_SYNAPTICS_PROMETHEUS_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:70,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:79,1
    - Dst: fu_struct_synaptics_prometheus_reply_iota_find_hdr_parse
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:86,1
    - Dst: fu_struct_synaptics_prometheus_reply_iota_find_hdr_get_itype
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:92,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:94,1
    - Dst: fu_struct_synaptics_prometheus_reply_iota_find_hdr_get_itype
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:98,1
    - Dst: fu_struct_synaptics_prometheus_iota_config_version_parse
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:101,1
    - Dst: fu_struct_synaptics_prometheus_iota_config_version_get_config_id1
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:107,1
    - Dst: fu_struct_synaptics_prometheus_iota_config_version_get_config_id2
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:108,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:111,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:112,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:115,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:116,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:117,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:122,1
    - Dst: fu_struct_synaptics_prometheus_iota_config_version_get_version
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:123,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:124,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:124,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:125,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:125,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 36
    functionDepth: 7
    functionLinenumber: 36
    functionLinenumberEnd: 127
    functionName: fu_synaptics_prometheus_config_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_struct_synaptics_prometheus_iota_config_version_parse
    - fu_struct_synaptics_prometheus_request_set_cmd
    - fu_struct_synaptics_prometheus_reply_iota_find_hdr_get_itype
    - fu_struct_synaptics_prometheus_iota_config_version_get_config_id2
    - fu_progress_new
    - g_strdup_printf
    - fu_synaptics_prometheus_device_cmd_send
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - fu_struct_synaptics_prometheus_reply_iota_find_hdr_parse
    - fu_struct_synaptics_prometheus_request_new
    - fu_device_get_proxy
    - fu_struct_synaptics_prometheus_cmd_iota_find_set_flags
    - fu_struct_synaptics_prometheus_iota_config_version_get_version
    - FU_DEVICE
    - fu_synaptics_prometheus_reply_new
    - fu_struct_synaptics_prometheus_cmd_iota_find_set_itype
    - fu_byte_array_append_array
    - g_set_error
    - fu_struct_synaptics_prometheus_cmd_iota_find_new
    - FU_SYNAPTICS_PROMETHEUS_CONFIG
    - fu_device_set_version_lowest
    - g_autoptr
    - FU_SYNAPTICS_PROMETHEUS_DEVICE
    - fu_struct_synaptics_prometheus_iota_config_version_get_config_id1
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_prometheus_config_setup(FuDevice *device, GError
      **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_PROMETHEUS_CONFIG
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:136,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:138,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:139,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:140,1
    - Dst: fu_synaptics_prometheus_firmware_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:140,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:141,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:144,1
    - Dst: fu_synaptics_prometheus_device_get_product_type
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:148,1
    - Dst: FU_SYNAPTICS_PROMETHEUS_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:148,1
    - Dst: fu_synaptics_prometheus_firmware_set_signature_size
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:150,1
    - Dst: FU_SYNAPTICS_PROMETHEUS_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:151,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:157,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:161,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:164,1
    - Dst: fu_struct_synaptics_prometheus_cfg_hdr_parse_stream
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:167,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:169,1
    - Dst: fu_struct_synaptics_prometheus_cfg_hdr_get_product
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:172,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:175,1
    - Dst: fu_struct_synaptics_prometheus_cfg_hdr_get_product
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:177,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:180,1
    - Dst: fu_struct_synaptics_prometheus_cfg_hdr_get_product
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:185,1
    - Dst: fu_struct_synaptics_prometheus_cfg_hdr_get_id1
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:190,1
    - Dst: fu_struct_synaptics_prometheus_cfg_hdr_get_id2
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:191,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:193,1
    - Dst: fu_struct_synaptics_prometheus_cfg_hdr_get_id1
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:195,1
    - Dst: fu_struct_synaptics_prometheus_cfg_hdr_get_id2
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:196,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:200,1
    - Dst: fu_struct_synaptics_prometheus_cfg_hdr_get_id1
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:205,1
    - Dst: fu_struct_synaptics_prometheus_cfg_hdr_get_id2
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:206,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:214,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 129
    functionDepth: 4
    functionLinenumber: 129
    functionLinenumberEnd: 215
    functionName: fu_synaptics_prometheus_config_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_image_by_id
    - FU_SYNAPTICS_PROMETHEUS_FIRMWARE
    - fu_synaptics_prometheus_firmware_new
    - fu_synaptics_prometheus_firmware_set_signature_size
    - fu_struct_synaptics_prometheus_cfg_hdr_get_id1
    - g_prefix_error_literal
    - fu_device_get_proxy
    - fu_synaptics_prometheus_device_get_product_type
    - g_warning
    - fu_struct_synaptics_prometheus_cfg_hdr_get_id2
    - fu_struct_synaptics_prometheus_cfg_hdr_get_product
    - fu_firmware_get_stream
    - fu_firmware_parse_stream
    - g_set_error
    - g_steal_pointer
    - FU_SYNAPTICS_PROMETHEUS_CONFIG
    - g_autoptr
    - FU_SYNAPTICS_PROMETHEUS_DEVICE
    - fu_struct_synaptics_prometheus_cfg_hdr_parse_stream
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_synaptics_prometheus_config_prepare_firmware(FuDevice
      *device,\n\t\t\t\t\t\tGInputStream *stream,\n\t\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\t\tFuFirmwareParseFlags
      flags,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:225,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:228,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:233,1
    - Dst: fu_synaptics_prometheus_device_write_fw
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:236,1
    - Dst: FU_SYNAPTICS_PROMETHEUS_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:236,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: 240
      start: 217
    functionDepth: 7
    functionLinenumber: 217
    functionLinenumberEnd: 240
    functionName: fu_synaptics_prometheus_config_write_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_prometheus_device_write_fw
    - fu_firmware_get_image_by_id_bytes
    - fu_device_get_proxy
    - g_autoptr
    - FU_SYNAPTICS_PROMETHEUS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_prometheus_config_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_protocol
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:245,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:245,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:246,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:246,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:247,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:247,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:248,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:248,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:249,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:249,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:250,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:250,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:251,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:251,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:252,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:252,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:253,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:253,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:254,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:254,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:255,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:255,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:256,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:256,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:257,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsPrometheusConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 242
    functionDepth: 6
    functionLinenumber: 242
    functionLinenumberEnd: 258
    functionName: fu_synaptics_prometheus_config_init
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_logical_id
    - fu_device_add_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_summary
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_prometheus_config_init(FuSynapticsPrometheusConfig
      *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_PROMETHEUS_CONFIG
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:263,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:264,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:264,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:269,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:270,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:271,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:272,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:272,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 260
    functionDepth: 5
    functionLinenumber: 260
    functionLinenumberEnd: 276
    functionName: fu_synaptics_prometheus_config_constructed
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_device_add_instance_id
    - G_OBJECT_CLASS
    - fu_device_get_vid
    - g_strdup_printf
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_SYNAPTICS_PROMETHEUS_CONFIG
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_prometheus_config_constructed(GObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:281,1
    - Dst: fu_device_attach_full
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 285
    functionName: fu_synaptics_prometheus_config_attach
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c
    functionUses: 0
    functionsReached:
    - fu_device_attach_full
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_prometheus_config_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:290,1
    - Dst: fu_device_detach_full
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 294
    functionName: fu_synaptics_prometheus_config_detach
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c
    functionUses: 0
    functionsReached:
    - fu_device_detach_full
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_prometheus_config_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:299,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsPrometheusConfigClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 308
    functionName: fu_synaptics_prometheus_config_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_prometheus_config_class_init(FuSynapticsPrometheusConfigClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: fu_synaptics_prometheus_config_new
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuSynapticsPrometheusConfig
    signature: 'FuSynapticsPrometheusConfig *

      fu_synaptics_prometheus_config_new(FuDevice *proxy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsPrometheusPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: fu_synaptics_prometheus_plugin_init
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_prometheus_plugin_init(FuSynapticsPrometheusPlugin
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-plugin.c:28,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-plugin.c:29,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-plugin.c:31,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-plugin.c:32,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-plugin.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: fu_synaptics_prometheus_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_prometheus_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-plugin.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsPrometheusPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: fu_synaptics_prometheus_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_prometheus_plugin_class_init(FuSynapticsPrometheusPluginClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-common.c:18,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-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_synaptics_prometheus_reply_new
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-common.c
    functionUses: 3
    functionsReached:
    - g_byte_array_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_synaptics_prometheus_reply_new(gsize cmdlen)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_prometheus_result_to_string
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-common.c:26,1
    - Dst: fu_error_map_entry_to_gerror
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-common.c:39,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-common.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - status
    - error
    argTypes:
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 40
    functionName: fu_synaptics_prometheus_error_from_status
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-common.c
    functionUses: 1
    functionsReached:
    - G_N_ELEMENTS
    - fu_error_map_entry_to_gerror
    - fu_synaptics_prometheus_result_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_prometheus_error_from_status(guint16 status,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:31,1
    - Dst: FU_IS_SYNAPTICS_PROMETHEUS_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsPrometheusFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: fu_synaptics_prometheus_firmware_get_product_id
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_SYNAPTICS_PROMETHEUS_FIRMWARE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_synaptics_prometheus_firmware_get_product_id(FuSynapticsPrometheusFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:39,1
    - Dst: FU_IS_SYNAPTICS_PROMETHEUS_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - signature_size
    argTypes:
    - FuSynapticsPrometheusFirmware*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: fu_synaptics_prometheus_firmware_set_signature_size
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_SYNAPTICS_PROMETHEUS_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_prometheus_firmware_set_signature_size(FuSynapticsPrometheusFirmware
      *self,\n\t\t\t\t\t\t    guint32 signature_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_PROMETHEUS_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:49,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: fu_synaptics_prometheus_firmware_export
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_SYNAPTICS_PROMETHEUS_FIRMWARE
    linkageType: ''
    returnType: void
    signature: "void fu_synaptics_prometheus_firmware_export(FuFirmware *firmware,\n\t\t\t\t\tFuFirmwareExportFlags
      flags,\n\t\t\t\t\tXbBuilderNode *bn)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_PROMETHEUS_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:59,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:63,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:66,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:78,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:78,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:79,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:80,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:81,1
    - Dst: fu_struct_synaptics_prometheus_hdr_parse_stream
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:84,1
    - Dst: fu_struct_synaptics_prometheus_hdr_get_tag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:87,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:89,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:98,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:100,1
    - Dst: fu_struct_synaptics_prometheus_hdr_get_bufsz
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:107,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:109,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:116,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:117,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:120,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:123,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:125,1
    - Dst: fu_synaptics_prometheus_firmware_tag_to_string
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:127,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:129,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:130,1
    - Dst: fu_synaptics_prometheus_firmware_tag_to_string
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:130,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:137,1
    - Dst: fu_struct_synaptics_prometheus_mfw_hdr_parse_stream
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:138,1
    - Dst: fu_struct_synaptics_prometheus_mfw_hdr_get_product
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:144,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:145,1
    - Dst: fu_struct_synaptics_prometheus_mfw_hdr_get_vmajor
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:147,1
    - Dst: fu_struct_synaptics_prometheus_mfw_hdr_get_vminor
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:148,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:149,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:153,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 61
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 157
    functionName: fu_synaptics_prometheus_firmware_parse
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_image_by_idx
    - fu_firmware_set_version
    - g_strdup_printf
    - fu_struct_synaptics_prometheus_mfw_hdr_get_vminor
    - FU_SYNAPTICS_PROMETHEUS_FIRMWARE
    - fu_struct_synaptics_prometheus_hdr_get_bufsz
    - fu_struct_synaptics_prometheus_mfw_hdr_get_product
    - g_debug
    - fu_firmware_add_image
    - fu_struct_synaptics_prometheus_mfw_hdr_get_vmajor
    - g_set_error_literal
    - fu_struct_synaptics_prometheus_hdr_parse_stream
    - fu_firmware_set_idx
    - fu_firmware_new
    - fu_partial_input_stream_new
    - fu_struct_synaptics_prometheus_hdr_get_tag
    - fu_firmware_set_id
    - g_set_error
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - fu_synaptics_prometheus_firmware_tag_to_string
    - g_prefix_error
    - fu_struct_synaptics_prometheus_mfw_hdr_parse_stream
    - fu_size_checked_inc
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_prometheus_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_PROMETHEUS_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:162,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:163,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:163,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:164,1
    - Dst: fu_struct_synaptics_prometheus_hdr_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:165,1
    - Dst: fu_struct_synaptics_prometheus_mfw_hdr_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:166,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:167,1
    - Dst: fu_struct_synaptics_prometheus_hdr_set_tag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:170,1
    - Dst: fu_struct_synaptics_prometheus_hdr_set_bufsz
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:173,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:174,1
    - Dst: fu_struct_synaptics_prometheus_mfw_hdr_set_product
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:175,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:176,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:179,1
    - Dst: fu_struct_synaptics_prometheus_hdr_set_tag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:182,1
    - Dst: fu_struct_synaptics_prometheus_hdr_set_bufsz
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:185,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:185,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:186,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:187,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:191,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 193
    functionName: fu_synaptics_prometheus_firmware_write
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_synaptics_prometheus_hdr_set_bufsz
    - fu_struct_synaptics_prometheus_mfw_hdr_new
    - fu_byte_array_append_array
    - fu_byte_array_append_bytes
    - fu_firmware_get_bytes_with_patches
    - fu_struct_synaptics_prometheus_hdr_new
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - fu_struct_synaptics_prometheus_mfw_hdr_set_product
    - g_byte_array_new
    - FU_SYNAPTICS_PROMETHEUS_FIRMWARE
    - g_bytes_get_size
    - g_byte_array_append
    - fu_struct_synaptics_prometheus_hdr_set_tag
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_synaptics_prometheus_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_PROMETHEUS_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:198,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 208
    functionName: fu_synaptics_prometheus_firmware_build
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text_as_uint
    - FU_SYNAPTICS_PROMETHEUS_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_prometheus_firmware_build(FuFirmware *firmware,
      XbNode *n, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:213,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:213,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:214,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:214,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:215,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:215,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:216,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsPrometheusFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 218
    functionName: fu_synaptics_prometheus_firmware_init
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_prometheus_firmware_init(FuSynapticsPrometheusFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsPrometheusFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: fu_synaptics_prometheus_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_prometheus_firmware_class_init(FuSynapticsPrometheusFirmwareClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:233,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: fu_synaptics_prometheus_firmware_new
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c
    functionUses: 2
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_synaptics_prometheus_firmware_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:20,1
    - Dst: fu_synaptics_prometheus_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_synaptics_prometheus_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:42,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_synaptics_prometheus_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_synaptics_prometheus_device_prepare_firmware
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:73,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:73,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:78,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:79,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:80,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:81,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:82,1
    - Dst: g_bytes_get_data
      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
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 13
    functionDepth: 10
    functionLinenumber: 13
    functionLinenumberEnd: 87
    functionName: fu_test_synaptics_prometheus_firmware_func
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_memory_input_stream_new_from_bytes
    - g_assert_nonnull
    - fu_progress_new
    - fu_synaptics_prometheus_firmware_new
    - fu_synaptics_prometheus_device_new
    - fu_firmware_get_image_by_id_bytes
    - g_assert_cmpint
    - fu_firmware_parse_bytes
    - fu_synaptics_prometheus_device_set_version
    - g_assert_null
    - g_bytes_get_data
    - FU_DEVICE
    - fu_synaptics_prometheus_device_prepare_firmware
    - fu_bytes_get_contents
    - g_assert_no_error
    - g_file_test
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_test_synaptics_prometheus_firmware_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:94,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:97,1
    - Dst: fu_firmware_roundtrip_from_filename
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:98,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:102,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 89
    functionDepth: 7
    functionLinenumber: 89
    functionLinenumberEnd: 104
    functionName: fu_synaptics_prometheus_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - fu_firmware_roundtrip_from_filename
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_prometheus_firmware_xml_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:109,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:110,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:111,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:112,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:114,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: main
    functionSourceFile: /src/fwupd/plugins/synaptics-prometheus/fu-self-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_type_ensure
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:22,1
    - Dst: fu_test_device_new
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:22,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:24,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:26,1
    - Dst: fu_plugin_device_register
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:27,1
    - Dst: fu_device_get_metadata
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:28,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:29,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:36,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:38,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:40,1
    - Dst: fu_device_new
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:42,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:43,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:44,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:45,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:46,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:47,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:48,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:49,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:50,1
    - Dst: fu_device_add_parent_guid
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:51,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:52,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:53,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:54,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:55,1
    - Dst: fu_plugin_add_device
      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_device_add_private_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:71,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 49
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 18
    functionDepth: 6
    functionLinenumber: 18
    functionLinenumberEnd: 76
    functionName: fu_test_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - fu_device_add_private_flag
    - fu_device_set_version_format
    - fu_device_new
    - fu_device_add_instance_id
    - fu_device_set_physical_id
    - g_set_error_literal
    - fu_plugin_get_context
    - fu_device_setup
    - fu_plugin_device_register
    - fu_device_get_metadata
    - fu_device_add_protocol
    - fu_device_set_logical_id
    - fu_test_device_new
    - fu_device_build_vendor_id_u16
    - fu_device_set_name
    - fu_plugin_add_device
    - fu_plugin_get_config_value_boolean
    - g_autoptr
    - fu_device_add_parent_guid
    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:93,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:94,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - plugin
    - key
    - value
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 102
    functionName: fu_test_plugin_modify_config
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - g_strv_contains
    - fu_plugin_set_config_value
    - g_set_error
    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:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    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:117,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:117,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:118,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:119,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:124,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:124,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:125,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:126,1
    - 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_set_error
      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:142,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: 144
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 144
    functionName: fu_test_plugin_verify
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version
    - g_strcmp0
    - fu_device_add_checksum
    - g_set_error
    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_autoptr
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:150,1
    - Dst: fu_strsafe_bytes
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:151,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:155,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:156,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - blob_fw
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 162
    functionName: fu_test_plugin_get_version
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_strsafe_bytes
    - fu_strtoull
    - fu_version_from_uint32
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_test_plugin_get_version(GBytes *blob_fw)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:180,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:181,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:188,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:189,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:191,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:197,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:202,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:203,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:207,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:209,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:209,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:211,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:212,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:213,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:214,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:217,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:219,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:221,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:227,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:231,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:234,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_literal
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:243,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:248,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:249,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:251,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:252,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:254,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:260,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:265,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:266,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:270,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:271,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:272,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:272,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:273,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:276,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:276,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:277,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:283,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:284,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:285,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:286,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:289,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:290,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:293,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:294,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:296,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:299,1
    - Dst: fu_test_plugin_get_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:302,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:303,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:305,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:308,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:310,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:316,1
    - Dst: fu_device_get_metadata_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:317,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:318,1
    - Dst: fu_device_set_metadata_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:319,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:323,1
    - Dst: fu_device_get_metadata_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:324,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:325,1
    - Dst: fu_device_set_metadata_boolean
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:326,1
    - Dst: fu_device_set_metadata_integer
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:330,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:332,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 109
    argCount: 6
    argNames:
    - plugin
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 164
    functionDepth: 6
    functionLinenumber: 164
    functionLinenumberEnd: 335
    functionName: fu_test_plugin_write_firmware
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_get_logical_id
    - fu_device_set_version
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fu_device_add_private_flag
    - fu_device_set_version_format
    - fu_device_get_metadata_boolean
    - fwupd_request_set_message
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_progress_set_percentage_full
    - fu_progress_set_status
    - fwupd_request_new
    - fu_test_plugin_get_version
    - fu_device_get_metadata_integer
    - fu_device_sleep
    - fu_strtoull
    - fwupd_request_set_id
    - fu_device_remove_flag
    - fu_device_emit_request
    - fu_plugin_get_config_value
    - g_strcmp0
    - fu_input_stream_read_bytes
    - fu_firmware_get_stream
    - fu_plugin_get_config_value_boolean
    - fu_device_set_metadata_integer
    - fu_device_set_metadata_boolean
    - g_autoptr
    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:340,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - plugin
    - device
    - process
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 343
    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:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 345
    functionDepth: 6
    functionLinenumber: 345
    functionLinenumberEnd: 350
    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:355,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:357,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 362
    functionName: fu_test_plugin_composite_prepare
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_set_metadata
    - fu_plugin_get_config_value_boolean
    - g_ptr_array_index
    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:367,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:369,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 374
    functionName: fu_test_plugin_composite_cleanup
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_set_metadata
    - fu_plugin_get_config_value_boolean
    - g_ptr_array_index
    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:379,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 383
    functionName: fu_test_plugin_attach
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_set_metadata_integer
    - fu_device_get_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:388,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTestPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 389
    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:394,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:395,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:396,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:397,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:398,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:399,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:400,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:401,1
    - Dst: fu_plugin_set_config_default
      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: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 410
    functionName: fu_test_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - G_OBJECT_CLASS
    - 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:415,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 417
    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:422,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/test/fu-test-plugin.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTestPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 437
    functionName: fu_test_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/test/fu-test-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    - G_OBJECT_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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/test/fu-test-ble-plugin.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: fu_test_ble_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/test/fu-test-ble-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTestBlePluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    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
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - fu_device_add_flag
    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:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/test/fu-test-device.c:20,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/test/fu-test-device.c:21,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/test/fu-test-device.c:22,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/test/fu-test-device.c:23,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/test/fu-test-device.c:24,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/test/fu-test-device.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: fu_test_device_set_progress
    functionSourceFile: /src/fwupd/plugins/test/fu-test-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_test_device_set_progress(FuDevice *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/test/fu-test-device.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: fu_test_device_probe
    functionSourceFile: /src/fwupd/plugins/test/fu-test-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_id
      Src: /src/fwupd/plugins/test/fu-test-device.c:38,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-device.c:38,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/test/fu-test-device.c:39,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-device.c:39,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/test/fu-test-device.c:40,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-device.c:40,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-device.c:41,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-device.c:41,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-device.c:42,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-device.c:42,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-device.c:43,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-device.c:43,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/test/fu-test-device.c:44,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-device.c:44,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/test/fu-test-device.c:45,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-device.c:45,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/test/fu-test-device.c:46,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-device.c:46,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/test/fu-test-device.c:47,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-device.c:47,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/test/fu-test-device.c:48,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-device.c:48,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/test/fu-test-device.c:49,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-device.c:49,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/test/fu-test-device.c:50,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-device.c:50,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/test/fu-test-device.c:51,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-device.c:51,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/test/fu-test-device.c:52,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-device.c:52,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/test/fu-test-device.c:53,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-device.c:53,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/plugins/test/fu-test-device.c:54,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/test/fu-test-device.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTestDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: fu_test_device_init
    functionSourceFile: /src/fwupd/plugins/test/fu-test-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - fu_device_set_version_bootloader
    - fu_device_build_vendor_id_u16
    - fu_device_add_icon
    - fu_device_add_private_flag
    - fu_device_set_id
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_add_request_flag
    - fu_device_set_summary
    - fu_device_set_vendor
    - fu_device_set_version_format
    - fu_device_set_version_lowest
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_test_device_init(FuTestDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/test/fu-test-device.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTestDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: fu_test_device_class_init
    functionSourceFile: /src/fwupd/plugins/test/fu-test-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_test_device_class_init(FuTestDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/test/fu-test-device.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: fu_test_device_new
    functionSourceFile: /src/fwupd/plugins/test/fu-test-device.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_test_device_new(FuContext *ctx)'
  - 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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/scsi/fu-scsi-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 35
    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
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_context_add_quirk_key
    - fu_plugin_add_device_gtype
    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:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuScsiPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    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: 17
    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_literal
      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
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 50
    functionDepth: 6
    functionLinenumber: 50
    functionLinenumberEnd: 169
    functionName: fu_scsi_device_probe
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_private_flag
    - fu_udev_device_get_devpath
    - g_strdup_printf
    - fu_device_get_name
    - fu_device_set_physical_id
    - g_prefix_error_literal
    - fu_device_set_summary
    - fu_device_set_vendor
    - fu_device_get_vendor
    - fu_device_add_protocol
    - FU_SCSI_DEVICE
    - fu_udev_device_get_sysfs_path
    - g_info
    - fu_strtoull
    - FU_DEVICE
    - fu_device_set_name
    - fu_udev_device_read_sysfs
    - FU_UDEV_DEVICE
    - fu_device_get_backend_parent_with_subsystem
    - g_autoptr
    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:178,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:178,1
    - Dst: fu_firmware_set_alignment
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:179,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:180,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:182,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: 183
      start: 171
    functionDepth: 4
    functionLinenumber: 171
    functionLinenumberEnd: 183
    functionName: fu_scsi_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_parse_stream
    - g_steal_pointer
    - fu_firmware_new
    - fu_firmware_set_alignment
    - g_autoptr
    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: 192
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 192
    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: 201
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 201
    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: 210
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 210
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:227,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:227,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:227,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:229,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:232,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:233,1
    - Dst: fu_ioctl_add_const_buffer
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:235,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:237,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: 3
    EdgeCount: 3
    ICount: 19
    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: 212
    functionDepth: 4
    functionLinenumber: 212
    functionLinenumberEnd: 273
    functionName: fu_scsi_device_send_scsi_cmd_v3
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-device.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_execute
    - g_debug
    - fu_ioctl_add_const_buffer
    - g_set_error
    - fu_ioctl_add_mutable_buffer
    - fu_udev_device_ioctl_new
    - fu_ioctl_add_key_as_u8
    - fu_scsi_sense_key_to_string
    - FU_UDEV_DEVICE
    - fu_ioctl_add_key_as_u16
    - g_autoptr
    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_literal
      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_strsafe
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:320,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/scsi/fu-scsi-device.c:321,1
    - Dst: fu_device_add_instance_strsafe
      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: 7
    functionLinenumber: 275
    functionLinenumberEnd: 347
    functionName: fu_scsi_device_setup
    functionSourceFile: /src/fwupd/plugins/scsi/fu-scsi-device.c
    functionUses: 0
    functionsReached:
    - FU_SCSI_DEVICE
    - g_strcmp0
    - fu_scsi_device_send_scsi_cmd_v3
    - fu_struct_scsi_inquiry_parse
    - fu_device_set_version
    - fu_device_build_instance_id
    - fu_device_get_vendor
    - fu_device_add_instance_strsafe
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_device_set_name
    - fu_device_set_vendor
    - fu_device_build_instance_id_full
    - fu_struct_scsi_inquiry_get_product_id
    - fu_struct_scsi_inquiry_get_product_rev
    - fu_struct_scsi_inquiry_get_vendor_id
    - g_autoptr
    - fu_device_build_vendor_id
    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_SCSI_DEVICE
    - fu_chunk_get_idx
    - fu_device_add_flag
    - fu_scsi_device_send_scsi_cmd_v3
    - fu_firmware_get_stream
    - fu_device_add_problem
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data
    - fu_chunk_array_length
    - fu_progress_set_status
    - g_autoptr
    - fu_memwrite_uint24
    - fu_progress_set_id
    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
    - fu_strtoull
    - g_strcmp0
    - g_set_error_literal
    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:
    - device
    - 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 *device, 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_add_icon
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_summary
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_udev_device_add_open_flag
    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:
    - FU_JABRA_FILE_DEVICE
    - fwupd_codec_string_append_hex
    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: 9
    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_endpoints
    - fu_usb_device_get_interfaces
    - g_set_error_literal
    - fu_usb_interface_get_class
    - fu_usb_endpoint_get_address
    - FU_JABRA_FILE_DEVICE
    - FU_USB_DEVICE
    - g_autoptr
    - g_ptr_array_index
    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_literal
      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: 4
    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_USB_DEVICE
    - FU_JABRA_FILE_DEVICE
    - g_prefix_error_literal
    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: 3
    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
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_file_device_tx(FuJabraFileDevice *self, FuJabraFilePacket
      *cmd_req, GError **error)
  - BBCount: 6
    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:119,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:119,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:127,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:130,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:132,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:139,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:139,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:147,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 111
    functionDepth: 4
    functionLinenumber: 111
    functionLinenumberEnd: 152
    functionName: fu_jabra_file_device_rx_cb
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - fu_usb_device_interrupt_transfer
    - fu_memread_uint8_safe
    - FU_JABRA_FILE_DEVICE
    - FU_USB_DEVICE
    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:157,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:157,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:158,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:158,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraFileDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 166
    functionName: fu_jabra_file_device_rx
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_device_retry_full
    - FU_DEVICE
    - fu_jabra_file_packet_new
    - 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:171,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:173,1
    - Dst: fu_jabra_file_device_rx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:175,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:179,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 168
    functionDepth: 4
    functionLinenumber: 168
    functionLinenumberEnd: 192
    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
    - fu_jabra_file_device_rx
    - FU_JABRA_FILE_DEVICE
    - g_autoptr
    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:197,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:198,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:198,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraFileDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 206
    functionName: fu_jabra_file_device_rx_with_sequence
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_steal_pointer
    - g_autoptr
    - fu_device_retry_full
    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:212,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:212,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:213,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:215,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:216,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:217,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:218,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:219,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:220,1
    - Dst: fu_jabra_file_device_rx_with_sequence
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:222,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:225,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:232,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraFileDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 208
    functionDepth: 4
    functionLinenumber: 208
    functionLinenumberEnd: 234
    functionName: fu_jabra_file_device_ensure_name
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_jabra_file_packet_set_cmd
    - fu_jabra_file_device_tx
    - fu_memstrsafe
    - fu_jabra_file_packet_set_sequence_number
    - fu_jabra_file_packet_set_cmd_length
    - fu_jabra_file_packet_set_src
    - fu_device_set_name
    - fu_jabra_file_device_rx_with_sequence
    - FU_DEVICE
    - fu_jabra_file_packet_new
    - g_autoptr
    - fu_jabra_file_packet_set_dst
    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:239,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:239,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:240,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:242,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:243,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:244,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:245,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:246,1
    - Dst: fu_jabra_file_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:247,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:248,1
    - Dst: fu_jabra_file_device_rx_with_sequence
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:250,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraFileDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 236
    functionDepth: 4
    functionLinenumber: 236
    functionLinenumberEnd: 256
    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_packet_set_cmd
    - fu_jabra_file_device_tx
    - fu_jabra_file_packet_set_sequence_number
    - fu_jabra_file_packet_set_cmd_length
    - fu_jabra_file_packet_set_src
    - fu_jabra_file_device_rx_with_sequence
    - fu_jabra_file_packet_new
    - fu_memread_uint16
    - fu_jabra_file_packet_set_sub_cmd
    - g_autoptr
    - fu_jabra_file_packet_set_dst
    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:262,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:262,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:263,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:265,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:266,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:267,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:268,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:269,1
    - Dst: fu_jabra_file_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:270,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:271,1
    - Dst: fu_jabra_file_device_rx_with_sequence
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:273,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:276,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:283,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraFileDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 258
    functionDepth: 4
    functionLinenumber: 258
    functionLinenumberEnd: 285
    functionName: fu_jabra_file_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_jabra_file_packet_set_cmd
    - fu_jabra_file_device_tx
    - fu_device_set_version
    - fu_memstrsafe
    - fu_jabra_file_packet_set_sequence_number
    - fu_jabra_file_packet_set_cmd_length
    - fu_jabra_file_packet_set_src
    - FU_DEVICE
    - fu_jabra_file_device_rx_with_sequence
    - fu_jabra_file_packet_new
    - fu_jabra_file_packet_set_sub_cmd
    - g_autoptr
    - 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:295,1
    - Dst: fu_jabra_file_packet_new
      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: fu_jabra_file_packet_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_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:298,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:299,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:299,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:300,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:300,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:302,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:303,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:304,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:305,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:306,1
    - Dst: fu_jabra_file_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:307,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:308,1
    - Dst: fu_jabra_file_device_rx_with_sequence
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:310,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:314,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:315,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:316,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:317,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:318,1
    - Dst: fu_jabra_file_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:319,1
    - Dst: fu_jabra_file_packet_set_payload
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:320,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:322,1
    - Dst: fu_jabra_file_device_rx_with_sequence
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:324,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:331,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:341,1
    - Dst: g_string_equal
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:342,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: 344
      start: 287
    functionDepth: 4
    functionLinenumber: 287
    functionLinenumberEnd: 344
    functionName: fu_jabra_file_device_file_checksum
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_jabra_file_packet_set_cmd
    - fu_jabra_file_device_tx
    - g_string_equal
    - fu_jabra_file_packet_set_sequence_number
    - fu_jabra_file_packet_set_cmd_length
    - fu_jabra_file_packet_set_src
    - fu_jabra_file_device_rx_with_sequence
    - fu_jabra_file_packet_new
    - g_string_new
    - g_string_append_printf
    - fu_memcpy_safe
    - fu_jabra_file_packet_set_sub_cmd
    - g_autoptr
    - fu_jabra_file_packet_set_dst
    - fu_jabra_file_packet_set_payload
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:365,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:365,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:366,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:368,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:369,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:370,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:371,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:372,1
    - Dst: fu_jabra_file_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:373,1
    - Dst: fu_jabra_file_packet_set_payload
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:374,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:376,1
    - Dst: fu_jabra_file_device_rx_with_sequence
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:378,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:382,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:384,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:392,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraFileDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 346
    functionDepth: 4
    functionLinenumber: 346
    functionLinenumberEnd: 399
    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_packet_set_cmd
    - fu_jabra_file_device_tx
    - g_set_error
    - fu_jabra_file_packet_set_sequence_number
    - fu_jabra_file_packet_set_cmd_length
    - fu_jabra_file_packet_set_src
    - fu_jabra_file_device_rx_with_sequence
    - fu_memread_uint8_safe
    - fu_jabra_file_packet_new
    - fu_jabra_file_packet_set_sub_cmd
    - g_autoptr
    - fu_jabra_file_packet_set_dst
    - fu_jabra_file_packet_set_payload
    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:408,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:408,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:409,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:411,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:412,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:413,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:414,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:415,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:417,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:417,1
    - Dst: fu_jabra_file_packet_set_payload
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:418,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:420,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:429,1
    - Dst: fu_jabra_file_device_rx_with_sequence
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:431,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:435,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - self
    - firmware
    - error
    argTypes:
    - FuJabraFileDevice*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 401
    functionDepth: 4
    functionLinenumber: 401
    functionLinenumberEnd: 444
    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_packet_set_cmd
    - fu_jabra_file_device_tx
    - g_set_error
    - fu_jabra_file_packet_set_sequence_number
    - fu_jabra_file_packet_set_cmd_length
    - fu_jabra_file_packet_set_src
    - fu_jabra_file_device_rx_with_sequence
    - fu_firmware_get_size
    - fu_jabra_file_packet_new
    - fu_memcpy_safe
    - g_autoptr
    - fu_jabra_file_packet_set_payload
    - fu_jabra_file_packet_set_dst
    - fu_memwrite_uint32
    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:454,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:454,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:456,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:457,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:458,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:459,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:462,1
    - Dst: fu_jabra_file_packet_set_payload
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:463,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:465,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:474,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:477,1
    - Dst: fu_jabra_file_device_rx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:478,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:482,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: 494
      start: 446
    functionDepth: 4
    functionLinenumber: 446
    functionLinenumberEnd: 494
    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_packet_set_cmd
    - fu_jabra_file_device_tx
    - g_set_error
    - fu_jabra_file_packet_set_sequence_number
    - fu_jabra_file_packet_set_cmd_length
    - fu_jabra_file_packet_set_src
    - fu_jabra_file_device_rx
    - fu_jabra_file_packet_new
    - fu_memcpy_safe
    - g_autoptr
    - fu_jabra_file_packet_set_dst
    - fu_jabra_file_packet_set_payload
    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:503,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:504,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:504,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:505,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:506,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:509,1
    - Dst: fu_jabra_file_device_write_next_block
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:512,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:514,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:515,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuJabraFileDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 496
    functionDepth: 5
    functionLinenumber: 496
    functionLinenumberEnd: 522
    functionName: fu_jabra_file_device_write_blocks
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_chunk_get_data
    - fu_chunk_array_length
    - g_autoptr
    - fu_jabra_file_device_write_next_block
    - fu_progress_set_id
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:528,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:528,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:529,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:531,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:532,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:533,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:534,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:535,1
    - Dst: fu_jabra_file_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:536,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:537,1
    - Dst: fu_jabra_file_device_rx_with_sequence
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:539,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:542,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:545,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraFileDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 524
    functionDepth: 4
    functionLinenumber: 524
    functionLinenumberEnd: 551
    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_packet_set_cmd
    - fu_jabra_file_device_tx
    - fu_jabra_file_packet_set_sequence_number
    - g_set_error_literal
    - fu_jabra_file_packet_set_cmd_length
    - fu_jabra_file_packet_set_src
    - fu_jabra_file_device_rx_with_sequence
    - fu_memread_uint8_safe
    - fu_jabra_file_packet_new
    - fu_jabra_file_packet_set_sub_cmd
    - 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:557,1
    - Dst: fu_jabra_file_packet_new
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:557,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:558,1
    - Dst: fu_jabra_file_packet_set_dst
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:560,1
    - Dst: fu_jabra_file_packet_set_src
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:561,1
    - Dst: fu_jabra_file_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:562,1
    - Dst: fu_jabra_file_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:563,1
    - Dst: fu_jabra_file_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:564,1
    - Dst: fu_jabra_file_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:565,1
    - Dst: fu_jabra_file_packet_set_payload
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:566,1
    - Dst: fu_jabra_file_device_tx
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:568,1
    - Dst: fu_jabra_file_device_rx_with_sequence
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:570,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:574,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraFileDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 553
    functionDepth: 4
    functionLinenumber: 553
    functionLinenumberEnd: 583
    functionName: fu_jabra_file_device_start_update
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_jabra_file_packet_set_cmd
    - fu_jabra_file_device_tx
    - g_set_error
    - fu_jabra_file_packet_set_sequence_number
    - fu_jabra_file_packet_set_cmd_length
    - fu_jabra_file_packet_set_src
    - fu_jabra_file_device_rx_with_sequence
    - fu_jabra_file_packet_new
    - fu_jabra_file_packet_set_sub_cmd
    - g_autoptr
    - fu_jabra_file_packet_set_dst
    - fu_jabra_file_packet_set_payload
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_file_device_start_update(FuJabraFileDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_FILE_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:591,1
    - Dst: fu_jabra_file_firmware_get_dfu_pid
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:593,1
    - Dst: FU_JABRA_FILE_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:593,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:594,1
    - Dst: fu_jabra_file_firmware_get_dfu_pid
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:598,1
    - Dst: FU_JABRA_FILE_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 605
    functionName: fu_jabra_file_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - FU_JABRA_FILE_DEVICE
    - g_set_error
    - fu_jabra_file_firmware_get_dfu_pid
    - FU_JABRA_FILE_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_file_device_check_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\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:610,1
    - Dst: fu_jabra_file_device_ensure_name
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:611,1
    - Dst: fu_jabra_file_device_ensure_version
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:613,1
    - Dst: fu_jabra_file_device_ensure_dfu_pid
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:615,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 607
    functionDepth: 5
    functionLinenumber: 607
    functionLinenumberEnd: 618
    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_version
    - FU_JABRA_FILE_DEVICE
    - fu_jabra_file_device_ensure_dfu_pid
    - fu_jabra_file_device_ensure_name
    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:627,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:631,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:632,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:635,1
    - Dst: fu_jabra_file_device_file_checksum
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:636,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:640,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:641,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:642,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:643,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:646,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:649,1
    - Dst: fu_jabra_file_device_write_delete_file
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:657,1
    - Dst: fu_jabra_file_device_write_first_block
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:659,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:661,1
    - Dst: fu_jabra_file_device_write_blocks
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:662,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:664,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:667,1
    - Dst: fu_jabra_file_device_file_checksum
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:668,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:671,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:680,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:681,1
    - Dst: fu_jabra_file_device_check_device_busy
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:684,1
    - Dst: fu_jabra_file_device_start_update
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:686,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:688,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: 692
      start: 620
    functionDepth: 6
    functionLinenumber: 620
    functionLinenumberEnd: 692
    functionName: fu_jabra_file_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_jabra_file_device_write_blocks
    - fu_progress_add_step
    - fu_firmware_get_stream
    - g_set_error_literal
    - fu_jabra_file_device_write_first_block
    - fu_progress_step_done
    - fu_jabra_file_device_file_checksum
    - fu_jabra_file_device_check_device_busy
    - fu_chunk_array_new_from_stream
    - fu_firmware_get_checksum
    - fu_jabra_file_device_write_delete_file
    - FU_JABRA_FILE_DEVICE
    - g_autoptr
    - fu_progress_get_child
    - fu_jabra_file_device_start_update
    - fu_progress_set_id
    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:697,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:698,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:698,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:699,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:699,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:700,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 694
    functionDepth: 6
    functionLinenumber: 694
    functionLinenumberEnd: 702
    functionName: fu_jabra_file_device_attach
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_sleep_full
    - FU_DEVICE
    - 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:707,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:708,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:709,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:710,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:711,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 704
    functionDepth: 3
    functionLinenumber: 704
    functionLinenumberEnd: 713
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:719,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:719,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:720,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:720,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:721,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:721,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:722,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:722,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:723,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:723,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:724,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:724,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:725,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:725,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:726,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:726,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:727,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraFileDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 715
    functionDepth: 6
    functionLinenumber: 715
    functionLinenumberEnd: 728
    functionName: fu_jabra_file_device_init
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJabraFileDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 741
    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_udev_subsystem
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-plugin.c:29,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-plugin.c:30,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-plugin.c:31,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 35
    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_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_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:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJabraFilePluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    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_xmlb_builder_insert_kx
    - FU_JABRA_FILE_FIRMWARE
    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_node_query_text
    - fu_firmware_set_version
    - fu_strtoull
    - g_set_error_literal
    - FU_FIRMWARE
    - fwupd_error_convert
    - g_prefix_error
    - xb_node_get_attr
    - xb_silo_query_first
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_file_firmware_parse_info(FuJabraFileFirmware *self,
      XbSilo *silo, GError **error)
  - BBCount: 9
    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_zip_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_firmware_parse_stream
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:88,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:91,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:94,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:97,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:98,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:101,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:102,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:104,1
    - Dst: fu_jabra_file_firmware_parse_info
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:107,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:110,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:113,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:117,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:117,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 120
    functionName: fu_jabra_file_firmware_parse
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c
    functionUses: 0
    functionsReached:
    - xb_builder_compile
    - xb_builder_source_new
    - xb_builder_source_load_bytes
    - fu_firmware_get_bytes
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - xb_builder_import_source
    - fwupd_error_convert
    - fu_firmware_get_image_by_id
    - fu_firmware_set_bytes
    - fu_zip_firmware_new
    - fu_jabra_file_firmware_parse_info
    - FU_JABRA_FILE_FIRMWARE
    - g_autoptr
    - xb_builder_new
    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:125,1
    - Dst: FU_IS_JABRA_FILE_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraFileFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 127
    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:132,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:132,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:133,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:133,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:134,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraFileFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: fu_jabra_file_firmware_init
    functionSourceFile: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJabraFileFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    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_plugin_add_flag
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-plugin.c:22,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-plugin.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLenovoDockPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: fu_lenovo_dock_plugin_init
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_dock_plugin_init(FuLenovoDockPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-plugin.c:29,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-plugin.c:30,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-plugin.c:31,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: fu_lenovo_dock_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_dock_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-plugin.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLenovoDockPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: fu_lenovo_dock_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_dock_plugin_class_init(FuLenovoDockPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LENOVO_DOCK_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:38,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:40,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:41,1
    - Dst: fu_lenovo_dock_provision_status_to_string
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-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: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: fu_lenovo_dock_device_to_string
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - fu_lenovo_dock_provision_status_to_string
    - FU_LENOVO_DOCK_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_dock_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_LENOVO_DOCK_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:54,1
    - Dst: fu_hid_device_set_interface
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:56,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:56,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:57,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:57,1
    - Dst: fu_struct_lenovo_dock_generic_res_parse
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:65,1
    - Dst: fu_struct_lenovo_dock_generic_res_get_status
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:68,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:70,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:74,1
    - Dst: fu_lenovo_dock_status_to_string
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 84
    functionName: fu_lenovo_dock_device_get_report1_cb
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - FU_LENOVO_DOCK_DEVICE
    - g_set_error
    - fu_hid_device_get_report
    - g_set_error_literal
    - fu_hid_device_set_interface
    - FU_HID_DEVICE
    - fu_struct_lenovo_dock_generic_res_parse
    - fu_struct_lenovo_dock_generic_res_get_status
    - g_autoptr
    - fu_lenovo_dock_status_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_dock_device_get_report1_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:89,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:89,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:91,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:92,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:93,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:93,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - retry_delay
    - error
    argTypes:
    - FuLenovoDockDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: fu_lenovo_dock_device_get_report1
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - fu_device_retry_full
    - FU_DEVICE
    - g_byte_array_new
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_lenovo_dock_device_get_report1(FuLenovoDockDevice *self, guint retry_delay,
      GError **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_LENOVO_DOCK_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:111,1
    - Dst: fu_hid_device_set_interface
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:113,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:113,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:114,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:114,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:123,1
    - Dst: fu_struct_lenovo_dock_notification_res_parse
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:124,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:127,1
    - Dst: fu_lenovo_dock_notification_event_to_string
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:131,1
    - Dst: fu_struct_lenovo_dock_notification_res_get_event
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:132,1
    - Dst: fu_struct_lenovo_dock_generic_res_parse
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:135,1
    - Dst: fu_struct_lenovo_dock_generic_res_get_status
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:138,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:140,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:144,1
    - Dst: fu_lenovo_dock_status_to_string
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 105
    functionDepth: 6
    functionLinenumber: 105
    functionLinenumberEnd: 154
    functionName: fu_lenovo_dock_device_get_report2_cb
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_lenovo_dock_notification_event_to_string
    - fu_struct_lenovo_dock_notification_res_get_event
    - FU_LENOVO_DOCK_DEVICE
    - fu_struct_lenovo_dock_notification_res_parse
    - g_set_error
    - fu_hid_device_get_report
    - g_set_error_literal
    - fu_hid_device_set_interface
    - FU_HID_DEVICE
    - fu_struct_lenovo_dock_generic_res_parse
    - fu_struct_lenovo_dock_generic_res_get_status
    - g_autoptr
    - fu_lenovo_dock_status_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_dock_device_get_report2_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:159,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:159,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:161,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:162,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:163,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:163,1
    - Dst: g_byte_array_remove_index
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:172,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - retry_delay
    - error
    argTypes:
    - FuLenovoDockDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 174
    functionName: fu_lenovo_dock_device_get_report2
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - fu_device_retry_full
    - FU_DEVICE
    - g_byte_array_remove_index
    - g_byte_array_new
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_lenovo_dock_device_get_report2(FuLenovoDockDevice *self, guint retry_delay,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:179,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:179,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:180,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:181,1
    - Dst: fu_hid_device_set_interface
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:182,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:182,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:183,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuLenovoDockDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 176
    functionDepth: 6
    functionLinenumber: 176
    functionLinenumberEnd: 190
    functionName: fu_lenovo_dock_device_set_report1
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - fu_hid_device_set_interface
    - FU_HID_DEVICE
    - g_byte_array_new
    - g_byte_array_append
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_dock_device_set_report1(FuLenovoDockDevice *self,
      GByteArray *buf, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:195,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:195,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:196,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:197,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:198,1
    - Dst: fu_hid_device_set_interface
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:199,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:199,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:200,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuLenovoDockDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 192
    functionDepth: 6
    functionLinenumber: 192
    functionLinenumberEnd: 207
    functionName: fu_lenovo_dock_device_set_report2
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_hid_device_set_report
    - fu_byte_array_append_uint8
    - fu_hid_device_set_interface
    - FU_HID_DEVICE
    - g_byte_array_new
    - g_byte_array_append
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_dock_device_set_report2(FuLenovoDockDevice *self,
      GByteArray *buf, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:214,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:215,1
    - Dst: fu_struct_lenovo_dock_flash_set_access_req_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:216,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:217,1
    - Dst: fu_struct_lenovo_dock_flash_set_access_req_set_ctrl
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:219,1
    - Dst: fu_lenovo_dock_device_set_report2
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:220,1
    - Dst: fu_lenovo_dock_device_get_report2
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:222,1
    - Dst: fu_struct_lenovo_dock_flash_set_access_res_parse
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - ctrl
    - error
    argTypes:
    - FuLenovoDockDevice*
    - FuLenovoDockFlashMemoryAccessCtrl
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 209
    functionDepth: 7
    functionLinenumber: 209
    functionLinenumberEnd: 231
    functionName: fu_lenovo_dock_device_set_flash_memory_access
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_lenovo_dock_device_get_report2
    - fu_struct_lenovo_dock_flash_set_access_res_parse
    - fu_struct_lenovo_dock_flash_set_access_req_set_ctrl
    - fu_lenovo_dock_device_set_report2
    - g_autoptr
    - fu_struct_lenovo_dock_flash_set_access_req_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_dock_device_set_flash_memory_access(FuLenovoDockDevice
      *self,\n\t\t\t\t\t      FuLenovoDockFlashMemoryAccessCtrl ctrl,\n\t\t\t\t\t
      \     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:239,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:240,1
    - Dst: fu_struct_lenovo_dock_dfu_control_req_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:241,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:242,1
    - Dst: fu_struct_lenovo_dock_dfu_control_req_set_upgrade_status
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:244,1
    - Dst: fu_struct_lenovo_dock_dfu_control_req_set_ctrl
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:245,1
    - Dst: fu_lenovo_dock_device_set_report1
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:247,1
    - Dst: fu_lenovo_dock_device_get_report1
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:249,1
    - Dst: fu_struct_lenovo_dock_dfu_control_res_parse
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - self
    - upgrade_status
    - ctrl
    - error
    argTypes:
    - FuLenovoDockDevice*
    - FuLenovoDockFwCtrlUpgradeStatus
    - FuLenovoDockFwCtrlUpgradePhaseCtrl
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 233
    functionDepth: 7
    functionLinenumber: 233
    functionLinenumberEnd: 258
    functionName: fu_lenovo_dock_device_dfu_control
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_lenovo_dock_device_set_report1
    - fu_struct_lenovo_dock_dfu_control_req_new
    - fu_struct_lenovo_dock_dfu_control_req_set_ctrl
    - fu_lenovo_dock_device_get_report1
    - g_autoptr
    - fu_struct_lenovo_dock_dfu_control_req_set_upgrade_status
    - fu_struct_lenovo_dock_dfu_control_res_parse
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_dock_device_dfu_control(FuLenovoDockDevice *self,\n\t\t\t\t
      \ FuLenovoDockFwCtrlUpgradeStatus upgrade_status,\n\t\t\t\t  FuLenovoDockFwCtrlUpgradePhaseCtrl
      ctrl,\n\t\t\t\t  GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:266,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:267,1
    - Dst: fu_struct_lenovo_dock_get_dfu_control_req_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:268,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:269,1
    - Dst: fu_lenovo_dock_device_set_report1
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:271,1
    - Dst: fu_lenovo_dock_device_get_report1
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:273,1
    - Dst: fu_struct_lenovo_dock_get_dfu_control_res_parse
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:276,1
    - Dst: fu_struct_lenovo_dock_get_dfu_control_res_get_upgrade_status
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:281,1
    - Dst: fu_struct_lenovo_dock_get_dfu_control_res_get_ctrl
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - self
    - upgrade_status
    - ctrl
    - error
    argTypes:
    - FuLenovoDockDevice*
    - FuLenovoDockFwCtrlUpgradeStatus*
    - FuLenovoDockFwCtrlUpgradePhaseCtrl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 260
    functionDepth: 7
    functionLinenumber: 260
    functionLinenumberEnd: 287
    functionName: fu_lenovo_dock_device_get_dfu_control_state
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_lenovo_dock_get_dfu_control_req_new
    - fu_struct_lenovo_dock_get_dfu_control_res_parse
    - fu_lenovo_dock_device_set_report1
    - fu_struct_lenovo_dock_get_dfu_control_res_get_ctrl
    - fu_struct_lenovo_dock_get_dfu_control_res_get_upgrade_status
    - fu_lenovo_dock_device_get_report1
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_dock_device_get_dfu_control_state(FuLenovoDockDevice
      *self,\n\t\t\t\t\t    FuLenovoDockFwCtrlUpgradeStatus *upgrade_status,\n\t\t\t\t\t
      \   FuLenovoDockFwCtrlUpgradePhaseCtrl *ctrl,\n\t\t\t\t\t    GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:293,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:294,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:295,1
    - Dst: fu_struct_lenovo_dock_get_version_req_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:296,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:297,1
    - Dst: fu_lenovo_dock_device_get_dfu_control_state
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:303,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:309,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:311,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:311,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:314,1
    - Dst: fu_lenovo_dock_device_set_report1
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:317,1
    - Dst: fu_lenovo_dock_device_get_report1
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:319,1
    - Dst: fu_struct_lenovo_dock_get_version_res_parse
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:322,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:325,1
    - Dst: fu_struct_lenovo_dock_get_version_res_get_version_major
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:326,1
    - Dst: fu_struct_lenovo_dock_get_version_res_get_version_minor
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:327,1
    - Dst: fu_struct_lenovo_dock_get_version_res_get_version_micro
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:328,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:329,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:329,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLenovoDockDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 289
    functionDepth: 8
    functionLinenumber: 289
    functionLinenumberEnd: 333
    functionName: fu_lenovo_dock_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_lenovo_dock_get_version_req_new
    - fu_lenovo_dock_device_set_report1
    - g_debug
    - fu_struct_lenovo_dock_get_version_res_get_version_micro
    - fu_device_sleep
    - fu_device_set_version
    - fu_lenovo_dock_device_get_dfu_control_state
    - FU_DEVICE
    - fu_struct_lenovo_dock_get_version_res_parse
    - g_strdup_printf
    - fu_struct_lenovo_dock_get_version_res_get_version_major
    - fu_lenovo_dock_device_get_report1
    - g_autoptr
    - fu_struct_lenovo_dock_get_version_res_get_version_minor
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_dock_device_ensure_version(FuLenovoDockDevice *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:338,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:339,1
    - Dst: fu_struct_lenovo_dock_get_edition_req_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:340,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:341,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:343,1
    - Dst: fu_struct_lenovo_dock_get_edition_req_to_string
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:344,1
    - Dst: g_log
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:345,1
    - Dst: fu_lenovo_dock_device_set_report1
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:347,1
    - Dst: fu_lenovo_dock_device_get_report1
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:349,1
    - Dst: fu_struct_lenovo_dock_get_edition_res_parse
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:352,1
    - Dst: fu_struct_lenovo_dock_get_edition_res_get_provision_status
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLenovoDockDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 335
    functionDepth: 7
    functionLinenumber: 335
    functionLinenumberEnd: 359
    functionName: fu_lenovo_dock_device_ensure_edition_state
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_lenovo_dock_get_edition_res_parse
    - fu_lenovo_dock_device_set_report1
    - fu_struct_lenovo_dock_get_edition_req_new
    - g_log_get_debug_enabled
    - fu_struct_lenovo_dock_get_edition_res_get_provision_status
    - g_log
    - fu_lenovo_dock_device_get_report1
    - g_autoptr
    - fu_struct_lenovo_dock_get_edition_req_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_dock_device_ensure_edition_state(FuLenovoDockDevice
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:366,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:367,1
    - Dst: fu_struct_lenovo_dock_get_component_id_list_req_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:368,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:369,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:371,1
    - Dst: fu_struct_lenovo_dock_get_component_id_list_req_to_string
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:373,1
    - Dst: g_log
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:374,1
    - Dst: fu_lenovo_dock_device_set_report1
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:376,1
    - Dst: fu_lenovo_dock_device_get_report1
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:378,1
    - Dst: fu_struct_lenovo_dock_get_component_id_list_res_parse
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:382,1
    - Dst: fu_struct_lenovo_dock_get_component_id_list_res_get_total
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:387,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - self
    - component_id_total
    - error
    argTypes:
    - FuLenovoDockDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 361
    functionDepth: 7
    functionLinenumber: 361
    functionLinenumberEnd: 391
    functionName: fu_lenovo_dock_device_get_component_attrs_list
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_lenovo_dock_get_component_id_list_req_to_string
    - fu_lenovo_dock_device_set_report1
    - g_log_get_debug_enabled
    - fu_struct_lenovo_dock_get_component_id_list_res_get_total
    - g_log
    - fu_lenovo_dock_device_get_report1
    - fu_struct_lenovo_dock_get_component_id_list_req_new
    - g_autoptr
    - fu_struct_lenovo_dock_get_component_id_list_res_parse
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_dock_device_get_component_attrs_list(FuLenovoDockDevice
      *self,\n\t\t\t\t\t       guint8 *component_id_total,\n\t\t\t\t\t       GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:399,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:400,1
    - Dst: fu_struct_lenovo_dock_flash_erase_req_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:401,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:402,1
    - Dst: fu_struct_lenovo_dock_flash_erase_req_set_component_id
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:404,1
    - Dst: fu_struct_lenovo_dock_flash_erase_req_set_size
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:405,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:405,1
    - Dst: fu_struct_lenovo_dock_flash_erase_req_set_addr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:406,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:406,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:407,1
    - Dst: fu_struct_lenovo_dock_flash_erase_req_to_string
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:408,1
    - Dst: g_log
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:409,1
    - Dst: fu_lenovo_dock_device_set_report2
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:411,1
    - Dst: fu_lenovo_dock_device_get_report2
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:413,1
    - Dst: fu_struct_lenovo_dock_flash_erase_res_parse
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:416,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - self
    - component_id
    - chk
    - error
    argTypes:
    - FuLenovoDockDevice*
    - FuLenovoDockComponentId
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 393
    functionDepth: 7
    functionLinenumber: 393
    functionLinenumberEnd: 422
    functionName: fu_lenovo_dock_device_flash_erase_chunk
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_lenovo_dock_flash_erase_res_parse
    - fu_struct_lenovo_dock_flash_erase_req_set_size
    - fu_struct_lenovo_dock_flash_erase_req_set_addr
    - fu_chunk_get_data_sz
    - fu_lenovo_dock_device_get_report2
    - fu_struct_lenovo_dock_flash_erase_req_set_component_id
    - g_log_get_debug_enabled
    - fu_lenovo_dock_device_set_report2
    - fu_struct_lenovo_dock_flash_erase_req_new
    - g_log
    - g_autoptr
    - fu_struct_lenovo_dock_flash_erase_req_to_string
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_dock_device_flash_erase_chunk(FuLenovoDockDevice
      *self,\n\t\t\t\t\tFuLenovoDockComponentId component_id,\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/lenovo-dock/fu-lenovo-dock-device.c:433,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:435,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:438,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:439,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:441,1
    - Dst: fu_lenovo_dock_device_flash_erase_chunk
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:442,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 7
    argNames:
    - self
    - component_id
    - addr
    - datasz
    - chunksz
    - progress
    - error
    argTypes:
    - FuLenovoDockDevice*
    - FuLenovoDockComponentId
    - guint32
    - gsize
    - guint16
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 424
    functionDepth: 8
    functionLinenumber: 424
    functionLinenumberEnd: 449
    functionName: fu_lenovo_dock_device_flash_erase_memory
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_lenovo_dock_device_flash_erase_chunk
    - g_autoptr
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_dock_device_flash_erase_memory(FuLenovoDockDevice
      *self,\n\t\t\t\t\t FuLenovoDockComponentId component_id,\n\t\t\t\t\t guint32
      addr,\n\t\t\t\t\t gsize datasz,\n\t\t\t\t\t guint16 chunksz,\n\t\t\t\t\t FuProgress
      *progress,\n\t\t\t\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:457,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:458,1
    - Dst: fu_struct_lenovo_dock_flash_program_req_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:459,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:460,1
    - Dst: fu_struct_lenovo_dock_flash_program_req_set_component_id
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:462,1
    - Dst: fu_struct_lenovo_dock_flash_program_req_set_datasz
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:463,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:463,1
    - Dst: fu_struct_lenovo_dock_flash_program_req_set_size
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:464,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:464,1
    - Dst: fu_struct_lenovo_dock_flash_program_req_set_addr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:465,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:465,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:466,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:466,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:466,1
    - Dst: g_log_get_debug_enabled
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:467,1
    - Dst: fu_struct_lenovo_dock_flash_program_req_to_string
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:468,1
    - Dst: g_log
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:469,1
    - Dst: fu_lenovo_dock_device_set_report2
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:471,1
    - Dst: fu_lenovo_dock_device_get_report2
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:473,1
    - Dst: fu_struct_lenovo_dock_flash_program_res_parse
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:476,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - self
    - component_id
    - chk
    - error
    argTypes:
    - FuLenovoDockDevice*
    - FuLenovoDockComponentId
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 451
    functionDepth: 7
    functionLinenumber: 451
    functionLinenumberEnd: 482
    functionName: fu_lenovo_dock_device_flash_write_chunk
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_lenovo_dock_flash_program_req_set_addr
    - fu_chunk_get_data_sz
    - fu_struct_lenovo_dock_flash_program_req_new
    - fu_lenovo_dock_device_get_report2
    - fu_struct_lenovo_dock_flash_program_req_set_size
    - fu_struct_lenovo_dock_flash_program_req_set_component_id
    - g_log_get_debug_enabled
    - fu_struct_lenovo_dock_flash_program_req_to_string
    - fu_struct_lenovo_dock_flash_program_res_parse
    - fu_struct_lenovo_dock_flash_program_req_set_datasz
    - fu_chunk_get_data
    - fu_lenovo_dock_device_set_report2
    - g_byte_array_append
    - g_log
    - g_autoptr
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_dock_device_flash_write_chunk(FuLenovoDockDevice
      *self,\n\t\t\t\t\tFuLenovoDockComponentId component_id,\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/lenovo-dock/fu-lenovo-dock-device.c:494,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:496,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:499,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:500,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:502,1
    - Dst: fu_lenovo_dock_device_flash_write_chunk
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:503,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 8
    argNames:
    - self
    - component_id
    - addr
    - data
    - datasz
    - chunksz
    - progress
    - error
    argTypes:
    - FuLenovoDockDevice*
    - FuLenovoDockComponentId
    - guint32
    - guint8*
    - gsize
    - guint16
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 484
    functionDepth: 8
    functionLinenumber: 484
    functionLinenumberEnd: 510
    functionName: fu_lenovo_dock_device_flash_write_memory
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new
    - fu_progress_set_steps
    - fu_lenovo_dock_device_flash_write_chunk
    - fu_progress_step_done
    - g_autoptr
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_dock_device_flash_write_memory(FuLenovoDockDevice
      *self,\n\t\t\t\t\t FuLenovoDockComponentId component_id,\n\t\t\t\t\t guint32
      addr,\n\t\t\t\t\t const guint8 *data,\n\t\t\t\t\t gsize datasz,\n\t\t\t\t\t
      guint16 chunksz,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:517,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:518,1
    - Dst: fu_struct_lenovo_dock_flash_verify_signature_req_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:519,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:520,1
    - Dst: fu_struct_lenovo_dock_flash_verify_signature_req_set_component_id
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:522,1
    - Dst: fu_lenovo_dock_device_set_report1
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:523,1
    - Dst: fu_lenovo_dock_device_get_report1
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:525,1
    - Dst: fu_struct_lenovo_dock_flash_verify_signature_res_parse
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:529,1
    - Dst: fu_struct_lenovo_dock_flash_verify_signature_res_get_result
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:532,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:534,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - self
    - component_id
    - error
    argTypes:
    - FuLenovoDockDevice*
    - FuLenovoDockComponentId
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 512
    functionDepth: 7
    functionLinenumber: 512
    functionLinenumberEnd: 543
    functionName: fu_lenovo_dock_device_flash_verify_signature
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_lenovo_dock_flash_verify_signature_req_new
    - fu_lenovo_dock_device_set_report1
    - fu_struct_lenovo_dock_flash_verify_signature_res_get_result
    - fu_struct_lenovo_dock_flash_verify_signature_res_parse
    - g_set_error_literal
    - fu_struct_lenovo_dock_flash_verify_signature_req_set_component_id
    - fu_lenovo_dock_device_get_report1
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_dock_device_flash_verify_signature(FuLenovoDockDevice
      *self,\n\t\t\t\t\t     FuLenovoDockComponentId component_id,\n\t\t\t\t\t     GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:551,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:552,1
    - Dst: fu_struct_lenovo_dock_flash_verify_crc_req_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:553,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:554,1
    - Dst: fu_struct_lenovo_dock_flash_verify_crc_req_set_component_id
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:556,1
    - Dst: fu_lenovo_dock_device_set_report1
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:557,1
    - Dst: fu_lenovo_dock_device_get_report1
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:559,1
    - Dst: fu_struct_lenovo_dock_flash_verify_crc_res_parse
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:562,1
    - Dst: fu_struct_lenovo_dock_flash_verify_crc_res_get_crc
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - self
    - component_id
    - crc
    - error
    argTypes:
    - FuLenovoDockDevice*
    - FuLenovoDockComponentId
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 545
    functionDepth: 7
    functionLinenumber: 545
    functionLinenumberEnd: 570
    functionName: fu_lenovo_dock_device_get_component_crc
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_lenovo_dock_device_set_report1
    - fu_struct_lenovo_dock_flash_verify_crc_req_set_component_id
    - fu_struct_lenovo_dock_flash_verify_crc_req_new
    - fu_struct_lenovo_dock_flash_verify_crc_res_get_crc
    - fu_struct_lenovo_dock_flash_verify_crc_res_parse
    - fu_lenovo_dock_device_get_report1
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_dock_device_get_component_crc(FuLenovoDockDevice
      *self,\n\t\t\t\t\tFuLenovoDockComponentId component_id,\n\t\t\t\t\tguint32 *crc,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_LENOVO_DOCK_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:575,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:578,1
    - Dst: fu_lenovo_dock_device_ensure_version
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:582,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:583,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:586,1
    - Dst: fu_lenovo_dock_device_ensure_edition_state
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:587,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:588,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:595,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 572
    functionDepth: 9
    functionLinenumber: 572
    functionLinenumberEnd: 599
    functionName: fu_lenovo_dock_device_setup
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_lenovo_dock_device_ensure_edition_state
    - fu_device_get_pid
    - FU_LENOVO_DOCK_DEVICE
    - fu_lenovo_dock_device_ensure_version
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_dock_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_LENOVO_DOCK_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:607,1
    - Dst: fu_lenovo_dock_firmware_get_pid
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:611,1
    - Dst: FU_LENOVO_DOCK_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:611,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:612,1
    - Dst: fu_lenovo_dock_firmware_get_pid
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:616,1
    - Dst: FU_LENOVO_DOCK_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 623
    functionName: fu_lenovo_dock_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_lenovo_dock_firmware_get_pid
    - FU_LENOVO_DOCK_FIRMWARE
    - FU_LENOVO_DOCK_DEVICE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_dock_device_check_firmware(FuDevice *device,\n\t\t\t\t
      \    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/lenovo-dock/fu-lenovo-dock-device.c:634,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:635,1
    - Dst: fu_struct_lenovo_dock_flash_get_attrs_req_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:636,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:637,1
    - Dst: fu_struct_lenovo_dock_flash_get_attrs_req_set_component_id
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:639,1
    - Dst: fu_lenovo_dock_device_set_report1
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:640,1
    - Dst: fu_lenovo_dock_device_get_report1
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:642,1
    - Dst: fu_struct_lenovo_dock_flash_get_attrs_res_parse
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:645,1
    - Dst: fu_struct_lenovo_dock_flash_get_attrs_res_get_storage_size
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:649,1
    - Dst: fu_struct_lenovo_dock_flash_get_attrs_res_get_erase_size
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:651,1
    - Dst: fu_struct_lenovo_dock_flash_get_attrs_res_get_program_size
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:653,1
    - Dst: fu_struct_lenovo_dock_flash_get_attrs_res_get_purpose
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:655,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 7
    argNames:
    - self
    - component_id
    - purpose
    - storage_size
    - erase_size
    - program_size
    - error
    argTypes:
    - FuLenovoDockDevice*
    - FuLenovoDockComponentId
    - FuLenovoDockComponentPurpose*
    - guint32*
    - guint16*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 625
    functionDepth: 7
    functionLinenumber: 625
    functionLinenumberEnd: 659
    functionName: fu_lenovo_dock_device_get_component_attrs
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_lenovo_dock_flash_get_attrs_res_get_erase_size
    - fu_lenovo_dock_device_set_report1
    - fu_struct_lenovo_dock_flash_get_attrs_res_get_storage_size
    - fu_struct_lenovo_dock_flash_get_attrs_res_get_program_size
    - fu_struct_lenovo_dock_flash_get_attrs_res_get_purpose
    - fu_struct_lenovo_dock_flash_get_attrs_res_parse
    - fu_struct_lenovo_dock_flash_get_attrs_req_new
    - fu_struct_lenovo_dock_flash_get_attrs_req_set_component_id
    - fu_lenovo_dock_device_get_report1
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_dock_device_get_component_attrs(FuLenovoDockDevice
      *self,\n\t\t\t\t\t  FuLenovoDockComponentId component_id,\n\t\t\t\t\t  FuLenovoDockComponentPurpose
      *purpose,\n\t\t\t\t\t  guint32 *storage_size,\n\t\t\t\t\t  guint16 *erase_size,\n\t\t\t\t\t
      \ guint16 *program_size,\n\t\t\t\t\t  GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_lenovo_dock_firmware_get_usage
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:667,1
    - Dst: fu_lenovo_dock_firmware_get_usage_items
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:668,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:674,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:674,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:677,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:678,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:679,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:680,1
    - Dst: fu_lenovo_dock_device_get_component_attrs
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:683,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:690,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:694,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:704,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:706,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:707,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:710,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:718,1
    - Dst: fu_lenovo_dock_device_flash_erase_memory
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:721,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:726,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:729,1
    - Dst: fu_crc32
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:732,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:733,1
    - Dst: fu_lenovo_dock_device_flash_write_memory
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:740,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:746,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:749,1
    - Dst: fu_lenovo_dock_device_get_component_crc
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:752,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:756,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:760,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:768,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuLenovoDockDevice*
    - FuLenovoDockFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 661
    functionDepth: 9
    functionLinenumber: 661
    functionLinenumberEnd: 772
    functionName: fu_lenovo_dock_device_write_usage
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_crc32
    - fu_lenovo_dock_device_get_component_crc
    - fu_lenovo_dock_device_flash_erase_memory
    - g_ptr_array_index
    - g_prefix_error_literal
    - g_byte_array_new
    - fu_memwrite_uint32_safe
    - fu_lenovo_dock_device_flash_write_memory
    - fu_lenovo_dock_firmware_get_usage
    - fu_progress_add_step
    - fu_lenovo_dock_device_get_component_attrs
    - fu_progress_step_done
    - g_byte_array_append
    - fu_progress_get_child
    - fu_progress_set_id
    - g_set_error
    - fu_lenovo_dock_firmware_get_usage_items
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_dock_device_write_usage(FuLenovoDockDevice *self,\n\t\t\t\t
      \ FuLenovoDockFirmware *firmware,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t
      \ GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:790,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:793,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:794,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:802,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:803,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:804,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:805,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:806,1
    - Dst: fu_lenovo_dock_firmware_get_usage_item
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:809,1
    - Dst: fu_lenovo_dock_device_get_component_attrs
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:814,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:821,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:825,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:828,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:829,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:833,1
    - Dst: fu_lenovo_dock_device_flash_erase_memory
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:840,1
    - Dst: fu_struct_lenovo_dock_usage_item_get_address
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:843,1
    - Dst: fu_struct_lenovo_dock_usage_item_get_max_size
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:844,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:846,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:849,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:852,1
    - Dst: fu_lenovo_dock_device_flash_write_memory
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:855,1
    - Dst: fu_struct_lenovo_dock_usage_item_get_address
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:858,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:859,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:860,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:862,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:864,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:867,1
    - Dst: fu_lenovo_dock_device_flash_verify_signature
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:870,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:871,1
    - Dst: fu_lenovo_dock_device_get_component_crc
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:874,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:875,1
    - Dst: fu_lenovo_dock_image_get_crc
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:878,1
    - Dst: FU_LENOVO_DOCK_IMAGE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:878,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:880,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:884,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:889,1
    - Dst: fu_struct_lenovo_dock_usage_item_set_target_version
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:892,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:893,1
    - Dst: fu_lenovo_dock_device_write_usage
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:894,1
    - Dst: FU_LENOVO_DOCK_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:895,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:896,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:899,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 7
    argNames:
    - self
    - firmware
    - component_id
    - img
    - progress
    - flags
    - error
    argTypes:
    - FuLenovoDockDevice*
    - FuLenovoDockFirmware*
    - FuLenovoDockComponentId
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 774
    functionDepth: 10
    functionLinenumber: 774
    functionLinenumberEnd: 903
    functionName: fu_lenovo_dock_device_write_image
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_lenovo_dock_firmware_get_usage_item
    - FU_LENOVO_DOCK_FIRMWARE
    - fu_struct_lenovo_dock_usage_item_set_target_version
    - fu_lenovo_dock_device_get_component_crc
    - fu_struct_lenovo_dock_usage_item_get_address
    - fu_firmware_get_size
    - fu_lenovo_dock_device_flash_erase_memory
    - fu_progress_finished
    - fu_firmware_get_id
    - fu_firmware_get_bytes
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_lenovo_dock_device_flash_write_memory
    - fu_lenovo_dock_device_flash_verify_signature
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_lenovo_dock_device_write_usage
    - fu_lenovo_dock_device_get_component_attrs
    - fu_progress_step_done
    - FU_LENOVO_DOCK_IMAGE
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_lenovo_dock_image_get_crc
    - fu_firmware_get_version_raw
    - g_set_error
    - fu_struct_lenovo_dock_usage_item_get_max_size
    - g_bytes_get_size
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_dock_device_write_image(FuLenovoDockDevice *self,\n\t\t\t\t
      \ FuLenovoDockFirmware *firmware,\n\t\t\t\t  FuLenovoDockComponentId component_id,\n\t\t\t\t
      \ FuFirmware *img,\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_lenovo_dock_firmware_get_usage
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:912,1
    - Dst: fu_struct_lenovo_dock_usage_get_total_number
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:913,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:917,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:924,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:925,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:927,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:928,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:931,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:931,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:933,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:934,1
    - Dst: fu_lenovo_dock_device_write_image
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:937,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:941,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:944,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:947,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - self
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuLenovoDockDevice*
    - FuLenovoDockFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 905
    functionDepth: 11
    functionLinenumber: 905
    functionLinenumberEnd: 952
    functionName: fu_lenovo_dock_device_write_images
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_lenovo_dock_device_write_image
    - fu_firmware_get_image_by_idx
    - g_debug
    - g_set_error_literal
    - FU_FIRMWARE
    - fu_progress_set_steps
    - fu_progress_step_done
    - g_prefix_error
    - fu_lenovo_dock_firmware_get_usage
    - g_autoptr
    - fu_progress_get_child
    - fu_struct_lenovo_dock_usage_get_total_number
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_dock_device_write_images(FuLenovoDockDevice *self,\n\t\t\t\t
      \  FuLenovoDockFirmware *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_LENOVO_DOCK_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:957,1
    - Dst: fu_lenovo_dock_device_set_flash_memory_access
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:959,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:963,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 954
    functionDepth: 8
    functionLinenumber: 954
    functionLinenumberEnd: 969
    functionName: fu_lenovo_dock_device_flash_memory_access_request_cb
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_lenovo_dock_device_set_flash_memory_access
    - g_prefix_error_literal
    - FU_LENOVO_DOCK_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_dock_device_flash_memory_access_request_cb(FuDevice
      *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_LENOVO_DOCK_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:974,1
    - Dst: fu_lenovo_dock_device_set_flash_memory_access
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:976,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 971
    functionDepth: 8
    functionLinenumber: 971
    functionLinenumberEnd: 986
    functionName: fu_lenovo_dock_device_flash_memory_access_release_cb
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_lenovo_dock_device_set_flash_memory_access
    - g_prefix_error_literal
    - FU_LENOVO_DOCK_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_dock_device_flash_memory_access_release_cb(FuDevice
      *device, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_LENOVO_DOCK_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:995,1
    - Dst: fu_lenovo_dock_firmware_get_usage
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:997,1
    - Dst: FU_LENOVO_DOCK_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:997,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1000,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1003,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1004,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1005,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1006,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1007,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1008,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1012,1
    - Dst: fu_lenovo_dock_device_get_component_attrs_list
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1018,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1019,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1022,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1023,1
    - Dst: fu_lenovo_dock_device_dfu_control
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1026,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1030,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1033,1
    - Dst: fu_struct_lenovo_dock_usage_get_total_number
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1036,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1039,1
    - Dst: fu_lenovo_dock_firmware_get_usage_item
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1042,1
    - Dst: FU_LENOVO_DOCK_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1042,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1047,1
    - Dst: fu_struct_lenovo_dock_usage_item_set_target_version
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1050,1
    - Dst: fu_lenovo_dock_device_write_usage
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1052,1
    - Dst: FU_LENOVO_DOCK_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1053,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1054,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1056,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1059,1
    - Dst: fu_lenovo_dock_device_write_images
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1062,1
    - Dst: FU_LENOVO_DOCK_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1063,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1064,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1068,1
    - Dst: fu_device_locker_close
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1071,1
    - Dst: fu_lenovo_dock_device_dfu_control
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1073,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1077,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1080,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1080,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1081,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: 1085
      start: 988
    functionDepth: 12
    functionLinenumber: 988
    functionLinenumberEnd: 1085
    functionName: fu_lenovo_dock_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_lenovo_dock_firmware_get_usage_item
    - FU_LENOVO_DOCK_FIRMWARE
    - fu_firmware_get_image_by_idx
    - fu_device_locker_close
    - fu_struct_lenovo_dock_usage_item_set_target_version
    - g_debug
    - g_prefix_error_literal
    - fu_lenovo_dock_firmware_get_usage
    - FU_LENOVO_DOCK_DEVICE
    - fu_progress_add_step
    - fu_lenovo_dock_device_write_usage
    - fu_progress_step_done
    - fu_lenovo_dock_device_get_component_attrs_list
    - fu_lenovo_dock_device_dfu_control
    - FU_DEVICE
    - fu_progress_get_child
    - fu_device_locker_new_full
    - fu_progress_set_id
    - fu_lenovo_dock_device_write_images
    - g_autoptr
    - fu_struct_lenovo_dock_usage_get_total_number
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_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_LENOVO_DOCK_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1093,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1095,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1097,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1087
    functionDepth: 1
    functionLinenumber: 1087
    functionLinenumberEnd: 1107
    functionName: fu_lenovo_dock_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_strcmp0
    - g_set_error_literal
    - FU_LENOVO_DOCK_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_dock_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/lenovo-dock/fu-lenovo-dock-device.c:1112,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1113,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1114,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1115,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1116,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1109
    functionDepth: 3
    functionLinenumber: 1109
    functionLinenumberEnd: 1118
    functionName: fu_lenovo_dock_device_set_progress
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_dock_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1123,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1123,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1124,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1124,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1125,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1125,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1126,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1126,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1127,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1127,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1128,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1128,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1129,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1129,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1130,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1130,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1131,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1131,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1132,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1132,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1133,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1133,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1134,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1134,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1135,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1135,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1136,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1136,1
    - Dst: fu_usb_device_set_claim_retry_count
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1137,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLenovoDockDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1120
    functionDepth: 6
    functionLinenumber: 1120
    functionLinenumberEnd: 1138
    functionName: fu_lenovo_dock_device_init
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - fu_usb_device_add_interface
    - FU_DEVICE
    - fu_usb_device_set_claim_retry_count
    - fu_device_set_install_duration
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - FU_USB_DEVICE
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_dock_device_init(FuLenovoDockDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c:1143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLenovoDockDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1150
    functionName: fu_lenovo_dock_device_class_init
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_dock_device_class_init(FuLenovoDockDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LENOVO_DOCK_IMAGE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:24,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-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_lenovo_dock_image_export
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c
    functionUses: 0
    functionsReached:
    - FU_LENOVO_DOCK_IMAGE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_dock_image_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:31,1
    - Dst: FU_IS_LENOVO_DOCK_IMAGE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLenovoDockImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: fu_lenovo_dock_image_get_crc
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_LENOVO_DOCK_IMAGE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_lenovo_dock_image_get_crc(FuLenovoDockImage *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:38,1
    - Dst: FU_IS_LENOVO_DOCK_IMAGE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - crc
    argTypes:
    - FuLenovoDockImage*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: fu_lenovo_dock_image_set_crc
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c
    functionUses: 0
    functionsReached:
    - FU_IS_LENOVO_DOCK_IMAGE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_dock_image_set_crc(FuLenovoDockImage *self, guint32
      crc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:45,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: fu_lenovo_dock_image_convert_version
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_lenovo_dock_image_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:52,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:52,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:53,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:53,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:54,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:54,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:55,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:55,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:56,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLenovoDockImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: fu_lenovo_dock_image_init
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - FU_FIRMWARE
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_dock_image_init(FuLenovoDockImage *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLenovoDockImageClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: fu_lenovo_dock_image_class_init
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_dock_image_class_init(FuLenovoDockImageClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:70,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: fu_lenovo_dock_image_new
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_lenovo_dock_image_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:27,1
    - Dst: fu_struct_lenovo_dock_usage_get_total_number
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:29,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:30,1
    - Dst: fu_struct_lenovo_dock_usage_get_composite_version
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:32,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:33,1
    - Dst: fu_struct_lenovo_dock_usage_get_pid
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - st
    - bn
    argTypes:
    - FuStructLenovoDockUsage*
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: fu_lenovo_dock_firmware_export_usage
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - fu_struct_lenovo_dock_usage_get_pid
    - fu_struct_lenovo_dock_usage_get_total_number
    - fu_struct_lenovo_dock_usage_get_composite_version
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_dock_firmware_export_usage(FuStructLenovoDockUsage *st,
      XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:39,1
    - Dst: fu_struct_lenovo_dock_usage_item_get_address
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:39,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:40,1
    - Dst: fu_struct_lenovo_dock_usage_item_get_max_size
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:42,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:43,1
    - Dst: fu_struct_lenovo_dock_usage_item_get_target_version
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:45,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:46,1
    - Dst: fu_struct_lenovo_dock_usage_item_get_target_size
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:48,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:49,1
    - Dst: fu_struct_lenovo_dock_usage_item_get_target_crc32
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - st
    - bn
    argTypes:
    - FuStructLenovoDockUsageItem*
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: fu_lenovo_dock_firmware_export_usage_item
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_lenovo_dock_usage_item_get_target_version
    - fu_xmlb_builder_insert_kx
    - fu_struct_lenovo_dock_usage_item_get_target_crc32
    - fu_struct_lenovo_dock_usage_item_get_address
    - fu_struct_lenovo_dock_usage_item_get_max_size
    - fu_struct_lenovo_dock_usage_item_get_target_size
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_dock_firmware_export_usage_item(FuStructLenovoDockUsageItem
      *st, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:59,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:59,1
    - Dst: fu_lenovo_dock_firmware_export_usage_item
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - st_usage_items
    - bn
    argTypes:
    - GPtrArray*
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: fu_lenovo_dock_firmware_export_usage_items
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c
    functionUses: 0
    functionsReached:
    - fu_lenovo_dock_firmware_export_usage_item
    - g_autoptr
    - xb_builder_node_insert
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_dock_firmware_export_usage_items(GPtrArray *st_usage_items,
      XbBuilderNode *bn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LENOVO_DOCK_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:67,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:71,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:71,1
    - Dst: fu_lenovo_dock_firmware_export_usage
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:72,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:75,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:75,1
    - Dst: fu_lenovo_dock_firmware_export_usage_items
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 78
    functionName: fu_lenovo_dock_firmware_export
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c
    functionUses: 0
    functionsReached:
    - FU_LENOVO_DOCK_FIRMWARE
    - fu_xmlb_builder_insert_kx
    - fu_lenovo_dock_firmware_export_usage
    - xb_builder_node_insert
    - g_autoptr
    - fu_lenovo_dock_firmware_export_usage_items
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_dock_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:95,1
    - Dst: fu_lenovo_dock_image_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:95,1
    - Dst: fu_struct_lenovo_dock_usage_item_parse_stream
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:97,1
    - Dst: fu_struct_lenovo_dock_usage_item_get_component_id
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:102,1
    - Dst: fu_struct_lenovo_dock_usage_item_get_address
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:103,1
    - Dst: fu_struct_lenovo_dock_usage_item_get_max_size
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:104,1
    - Dst: fu_firmware_get_size_max
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:105,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:106,1
    - Dst: fu_firmware_get_size_max
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:111,1
    - Dst: fu_struct_lenovo_dock_usage_item_get_target_size
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:114,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:116,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:127,1
    - Dst: fu_struct_lenovo_dock_usage_item_ref
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:128,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:132,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:134,1
    - Dst: fu_lenovo_dock_component_id_to_string
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:134,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:135,1
    - Dst: fu_struct_lenovo_dock_usage_item_get_target_version
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:136,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:137,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:138,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:138,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:143,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:149,1
    - Dst: fu_struct_lenovo_dock_usage_item_get_target_crc32
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:153,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:156,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:158,1
    - Dst: fu_input_stream_compute_crc32
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:165,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:171,1
    - Dst: fu_lenovo_dock_image_set_crc
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:180,1
    - Dst: FU_LENOVO_DOCK_IMAGE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:180,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:181,1
    - Dst: fu_struct_lenovo_dock_usage_item_ref
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:181,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 6
    argNames:
    - self
    - stream_usage
    - stream_composite
    - offset
    - flags
    - error
    argTypes:
    - FuLenovoDockFirmware*
    - GInputStream*
    - GInputStream*
    - gsize
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 185
    functionName: fu_lenovo_dock_firmware_parse_image
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_lenovo_dock_usage_item_get_address
    - g_autoptr
    - fu_firmware_set_stream
    - fu_lenovo_dock_component_id_to_string
    - fu_input_stream_compute_crc32
    - fu_firmware_set_addr
    - fu_struct_lenovo_dock_usage_item_get_target_version
    - fu_firmware_add_image
    - fu_struct_lenovo_dock_usage_item_get_target_crc32
    - fu_firmware_get_size_max
    - fu_firmware_set_version_raw
    - FU_FIRMWARE
    - fu_firmware_set_idx
    - fu_struct_lenovo_dock_usage_item_parse_stream
    - fu_lenovo_dock_image_set_crc
    - FU_LENOVO_DOCK_IMAGE
    - fu_partial_input_stream_new
    - fu_lenovo_dock_image_new
    - fu_firmware_set_id
    - g_set_error
    - g_ptr_array_add
    - fu_struct_lenovo_dock_usage_item_get_max_size
    - fu_struct_lenovo_dock_usage_item_get_component_id
    - fu_struct_lenovo_dock_usage_item_get_target_size
    - fu_struct_lenovo_dock_usage_item_ref
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_dock_firmware_parse_image(FuLenovoDockFirmware
      *self,\n\t\t\t\t    GInputStream *stream_usage,\n\t\t\t\t    GInputStream *stream_composite,\n\t\t\t\t
      \   gsize offset,\n\t\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t\t    GError
      **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_LENOVO_DOCK_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:193,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:196,1
    - Dst: fu_zip_firmware_new
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:197,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:198,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:199,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:201,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:204,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:208,1
    - Dst: fu_struct_lenovo_dock_usage_parse_stream
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:213,1
    - Dst: fu_struct_lenovo_dock_usage_get_pid
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:216,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:217,1
    - Dst: fu_struct_lenovo_dock_usage_get_composite_version
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:218,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:219,1
    - Dst: fu_struct_lenovo_dock_usage_get_total_number
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:221,1
    - Dst: fu_lenovo_dock_firmware_parse_image
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:223,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:232,1
    - Dst: fu_struct_lenovo_dock_usage_ref
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:235,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 187
    functionDepth: 4
    functionLinenumber: 187
    functionLinenumberEnd: 239
    functionName: fu_lenovo_dock_firmware_parse
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_lenovo_dock_usage_get_pid
    - fu_firmware_set_version_raw
    - FU_LENOVO_DOCK_FIRMWARE
    - fu_firmware_parse_stream
    - fu_lenovo_dock_firmware_parse_image
    - fu_struct_lenovo_dock_usage_get_total_number
    - fu_struct_lenovo_dock_usage_get_composite_version
    - fu_zip_firmware_new
    - fu_size_checked_inc
    - fu_struct_lenovo_dock_usage_parse_stream
    - g_autoptr
    - fu_struct_lenovo_dock_usage_ref
    - fu_firmware_get_image_by_id_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_dock_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/lenovo-dock/fu-lenovo-dock-firmware.c:244,1
    - Dst: FU_IS_LENOVO_DOCK_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLenovoDockFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 246
    functionName: fu_lenovo_dock_firmware_get_pid
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_LENOVO_DOCK_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_lenovo_dock_firmware_get_pid(FuLenovoDockFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:251,1
    - Dst: FU_IS_LENOVO_DOCK_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLenovoDockFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 253
    functionName: fu_lenovo_dock_firmware_get_usage
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_LENOVO_DOCK_FIRMWARE
    linkageType: ''
    returnType: FuStructLenovoDockUsage
    signature: 'FuStructLenovoDockUsage *

      fu_lenovo_dock_firmware_get_usage(FuLenovoDockFirmware *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:258,1
    - Dst: FU_IS_LENOVO_DOCK_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLenovoDockFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 260
    functionName: fu_lenovo_dock_firmware_get_usage_items
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_LENOVO_DOCK_FIRMWARE
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_lenovo_dock_firmware_get_usage_items(FuLenovoDockFirmware *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:267,1
    - Dst: FU_IS_LENOVO_DOCK_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:267,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:268,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:272,1
    - Dst: fu_struct_lenovo_dock_usage_item_get_component_id
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:273,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - component_id
    - error
    argTypes:
    - FuLenovoDockFirmware*
    - FuLenovoDockComponentId
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 283
    functionName: fu_lenovo_dock_firmware_get_usage_item
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_LENOVO_DOCK_FIRMWARE
    - g_set_error
    - fu_struct_lenovo_dock_usage_item_get_component_id
    - g_ptr_array_index
    linkageType: ''
    returnType: FuStructLenovoDockUsageItem
    signature: "FuStructLenovoDockUsageItem *\nfu_lenovo_dock_firmware_get_usage_item(FuLenovoDockFirmware
      *self,\n\t\t\t\t       FuLenovoDockComponentId component_id,\n\t\t\t\t       GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 292
    functionName: fu_lenovo_dock_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_lenovo_dock_firmware_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:298,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:299,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:299,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:300,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:300,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:301,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:301,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:302,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:302,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:303,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:303,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:304,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLenovoDockFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 305
    functionName: fu_lenovo_dock_firmware_init
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_dock_firmware_init(FuLenovoDockFirmware *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LENOVO_DOCK_FIRMWARE
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:310,1
    - Dst: fu_struct_lenovo_dock_usage_unref
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:312,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:314,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 316
    functionName: fu_lenovo_dock_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_lenovo_dock_usage_unref
    - FU_LENOVO_DOCK_FIRMWARE
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_dock_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:321,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLenovoDockFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 327
    functionName: fu_lenovo_dock_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_dock_firmware_class_init(FuLenovoDockFirmwareClass *klass)
  - 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:
    - g_return_val_if_fail
    - FU_IS_SYNAPTICS_CXAUDIO_FIRMWARE
    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:
    - g_return_val_if_fail
    - FU_IS_SYNAPTICS_CXAUDIO_FIRMWARE
    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:
    - g_return_val_if_fail
    - FU_IS_SYNAPTICS_CXAUDIO_FIRMWARE
    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_xmlb_builder_insert_kx
    - fu_synaptics_cxaudio_device_kind_to_string
    - fu_xmlb_builder_insert_kv
    - fu_synaptics_cxaudio_file_kind_to_string
    - FU_SYNAPTICS_CXAUDIO_FIRMWARE
    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_add_badblock
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_add
    - g_new0
    - g_debug
    linkageType: ''
    returnType: void
    signature: "void fu_synaptics_cxaudio_firmware_add_badblock(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_debug
    - g_ptr_array_index
    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:
    - fu_srec_firmware_record_new
    - g_debug
    - fu_synaptics_cxaudio_firmware_is_record_valid
    - g_ptr_array_new
    - g_ptr_array_add
    - g_ptr_array_set_size
    - g_byte_array_append
    - g_autoptr
    - fu_synaptics_cxaudio_firmware_is_addr_valid
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_cxaudio_firmware_avoid_badblocks(GPtrArray *badblocks,
      GPtrArray *records)
  - BBCount: 28
    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_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:242,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:249,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:254,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:256,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:268,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:273,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:278,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:283,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:288,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:293,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:298,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:302,1
    - Dst: fu_struct_synaptics_cxaudio_custom_info_get_serial_number_string_address
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:313,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:314,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:314,1
    - Dst: fu_synaptics_cxaudio_firmware_add_badblock
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:317,1
    - Dst: fu_synaptics_cxaudio_firmware_add_badblock
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:318,1
    - Dst: fu_synaptics_cxaudio_firmware_add_badblock
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:324,1
    - Dst: fu_synaptics_cxaudio_firmware_add_badblock
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:338,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:342,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:350,1
    - Dst: fu_synaptics_cxaudio_firmware_add_badblock
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:357,1
    - Dst: fu_synaptics_cxaudio_firmware_avoid_badblocks
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c:362,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 119
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 154
    functionDepth: 4
    functionLinenumber: 154
    functionLinenumberEnd: 367
    functionName: fu_synaptics_cxaudio_firmware_parse
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c
    functionUses: 0
    functionsReached:
    - fu_srec_firmware_get_records
    - fu_struct_synaptics_cxaudio_custom_info_get_revision_id
    - fu_struct_synaptics_cxaudio_validity_signature_parse
    - fu_struct_synaptics_cxaudio_custom_info_get_layout_version
    - g_ptr_array_index
    - g_debug
    - fu_struct_synaptics_cxaudio_custom_info_get_serial_number_string_address
    - g_set_error_literal
    - FU_SREC_FIRMWARE
    - fu_struct_synaptics_cxaudio_custom_info_get_product_id
    - memcmp
    - g_ptr_array_new_with_free_func
    - fu_synaptics_cxaudio_firmware_add_badblock
    - fu_struct_synaptics_cxaudio_custom_info_parse
    - fu_struct_synaptics_cxaudio_patch_info_get_patch_signature
    - fu_memread_uint16_safe
    - fu_struct_synaptics_cxaudio_custom_info_get_layout_signature
    - g_set_error
    - fu_synaptics_cxaudio_firmware_avoid_badblocks
    - fu_struct_synaptics_cxaudio_validity_signature_get_magic_byte
    - fu_memcpy_safe
    - FU_SYNAPTICS_CXAUDIO_FIRMWARE
    - g_autoptr
    - fu_struct_synaptics_cxaudio_custom_info_get_vendor_id
    - fu_struct_synaptics_cxaudio_patch_info_parse
    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: 372
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 372
    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:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsCxaudioFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 380
    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_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:
    - fwupd_codec_string_append_int
    - fwupd_codec_string_append_hex
    - FU_SYNAPTICS_CXAUDIO_DEVICE
    - 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: 6
    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:
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    - g_set_error_literal
    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: 6
    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: 18
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:106,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:108,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:109,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:114,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:126,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:136,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:140,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:148,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:149,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:150,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:151,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:151,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:155,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:159,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:160,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:163,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:164,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:166,1
    - Dst: fu_synaptics_cxaudio_device_output_report
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:170,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:176,1
    - Dst: fu_synaptics_cxaudio_device_output_report
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:177,1
    - Dst: fu_synaptics_cxaudio_device_input_report
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:185,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:195,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:203,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:205,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:206,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:211,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:211,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:212,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:217,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 53
    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: 225
      start: 92
    functionDepth: 7
    functionLinenumber: 92
    functionLinenumberEnd: 225
    functionName: fu_synaptics_cxaudio_device_operation
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_chunk_get_idx
    - fu_synaptics_cxaudio_device_output_report
    - fu_memcmp_safe
    - g_set_error
    - fu_memwrite_uint16
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - FU_BIT_SET
    - g_prefix_error
    - fu_chunk_array_mutable_new
    - fu_chunk_get_data
    - FU_BIT_CLEAR
    - fu_memcpy_safe
    - fu_synaptics_cxaudio_device_input_report
    - g_autoptr
    - g_ptr_array_index
    - fu_chunk_get_address
    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:234,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:243,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:244,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: 252
      start: 227
    functionDepth: 8
    functionLinenumber: 227
    functionLinenumberEnd: 252
    functionName: fu_synaptics_cxaudio_device_register_clear_bit
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_cxaudio_device_operation
    - FU_BIT_CLEAR
    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:261,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:270,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:271,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: 279
      start: 254
    functionDepth: 8
    functionLinenumber: 254
    functionLinenumberEnd: 279
    functionName: fu_synaptics_cxaudio_device_register_set_bit
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_cxaudio_device_operation
    - FU_BIT_SET
    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:289,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:292,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:300,1
    - Dst: fu_struct_synaptics_cxaudio_string_header_parse
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:305,1
    - Dst: fu_struct_synaptics_cxaudio_string_header_get_length
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:308,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:310,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:318,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:319,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:327,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - self
    - address
    - error
    argTypes:
    - FuSynapticsCxaudioDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 281
    functionDepth: 8
    functionLinenumber: 281
    functionLinenumberEnd: 331
    functionName: fu_synaptics_cxaudio_device_eeprom_read_string
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_steal_pointer
    - g_prefix_error
    - g_malloc0
    - fu_struct_synaptics_cxaudio_string_header_parse
    - g_autoptr
    - fu_struct_synaptics_cxaudio_string_header_get_length
    - fu_synaptics_cxaudio_device_operation
    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:337,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:345,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:352,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:360,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:369,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsCxaudioDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 333
    functionDepth: 8
    functionLinenumber: 333
    functionLinenumberEnd: 374
    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
    - fu_synaptics_cxaudio_device_operation
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_cxaudio_device_ensure_patch_level(FuSynapticsCxaudioDevice
      *self, GError **error)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CXAUDIO_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:379,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:390,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:391,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:396,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:400,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:408,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:414,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:415,1
    - Dst: fu_device_build_instance_id_full
      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:425,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:426,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:429,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:438,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:444,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:453,1
    - Dst: fu_struct_synaptics_cxaudio_validity_signature_parse
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:461,1
    - Dst: fu_struct_synaptics_cxaudio_validity_signature_get_magic_byte
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:467,1
    - Dst: g_set_error
      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:474,1
    - Dst: fu_struct_synaptics_cxaudio_validity_signature_get_eeprom_size_code
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:481,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:483,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:492,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:500,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:503,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:511,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:519,1
    - Dst: fu_struct_synaptics_cxaudio_custom_info_parse
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:524,1
    - Dst: fu_struct_synaptics_cxaudio_custom_info_get_layout_signature
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:527,1
    - Dst: fu_struct_synaptics_cxaudio_custom_info_get_layout_version
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:530,1
    - Dst: fu_struct_synaptics_cxaudio_custom_info_get_serial_number_string_address
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:535,1
    - Dst: fu_synaptics_cxaudio_device_eeprom_read_string
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:540,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:546,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:551,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:559,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:562,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:567,1
    - Dst: fu_synaptics_cxaudio_device_ensure_patch_level
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:571,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:576,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:584,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:588,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:589,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:593,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:593,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:597,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:597,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:599,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:600,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 95
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 376
    functionDepth: 9
    functionLinenumber: 376
    functionLinenumberEnd: 607
    functionName: fu_synaptics_cxaudio_device_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_struct_synaptics_cxaudio_validity_signature_parse
    - g_strdup_printf
    - fu_synaptics_cxaudio_device_ensure_patch_level
    - g_auto
    - fu_struct_synaptics_cxaudio_custom_info_get_layout_version
    - fu_synaptics_cxaudio_device_operation
    - g_debug
    - fu_struct_synaptics_cxaudio_custom_info_get_serial_number_string_address
    - fu_device_add_instance_str
    - g_set_error_literal
    - g_prefix_error_literal
    - g_strsplit
    - fu_device_set_summary
    - fu_device_build_instance_id_full
    - fu_usb_device_get_string_descriptor
    - fu_device_set_version_bootloader
    - FU_SYNAPTICS_CXAUDIO_DEVICE
    - fu_device_set_serial
    - fu_struct_synaptics_cxaudio_custom_info_parse
    - fu_struct_synaptics_cxaudio_validity_signature_get_eeprom_size_code
    - FU_USB_DEVICE
    - fu_synaptics_cxaudio_device_eeprom_read_string
    - FU_DEVICE_CLASS
    - fu_struct_synaptics_cxaudio_custom_info_get_layout_signature
    - g_strcmp0
    - g_set_error
    - fu_struct_synaptics_cxaudio_validity_signature_get_magic_byte
    - fu_memread_uint16
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_cxaudio_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_CXAUDIO_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:615,1
    - Dst: fu_synaptics_cxaudio_firmware_get_devtype
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:619,1
    - Dst: FU_SYNAPTICS_CXAUDIO_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:619,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 632
    functionName: fu_synaptics_cxaudio_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_CXAUDIO_FIRMWARE
    - FU_SYNAPTICS_CXAUDIO_DEVICE
    - fu_synaptics_cxaudio_firmware_get_devtype
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_cxaudio_device_check_firmware(FuDevice *device,\n\t\t\t\t\t
      \  FuFirmware *firmware,\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_literal
      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_literal
      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_literal
      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_literal
      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:784,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:787,1
    - Dst: fu_synaptics_cxaudio_device_register_clear_bit
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:790,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:796,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: 800
      start: 634
    functionDepth: 9
    functionLinenumber: 634
    functionLinenumberEnd: 800
    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_address
    - fu_struct_synaptics_cxaudio_patch_info_set_patch_signature
    - fu_synaptics_cxaudio_firmware_get_layout_version
    - g_autoptr
    - fu_synaptics_cxaudio_device_operation
    - fu_synaptics_cxaudio_device_register_clear_bit
    - g_ptr_array_index
    - fu_synaptics_cxaudio_device_register_set_bit
    - g_debug
    - FU_SREC_FIRMWARE
    - g_prefix_error_literal
    - fu_progress_set_percentage_full
    - fu_progress_add_step
    - fu_device_sleep
    - fu_progress_step_done
    - FU_SYNAPTICS_CXAUDIO_DEVICE
    - fu_struct_synaptics_cxaudio_patch_info_get_patch_signature
    - fu_progress_get_child
    - fu_progress_set_id
    - g_set_error
    - fu_synaptics_cxaudio_firmware_get_file_type
    - g_prefix_error
    - FU_SYNAPTICS_CXAUDIO_FIRMWARE
    - fu_srec_firmware_get_records
    - fu_struct_synaptics_cxaudio_patch_info_parse
    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:805,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:807,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:814,1
    - Dst: fu_synaptics_cxaudio_device_operation
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:817,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:825,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:827,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:827,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 802
    functionDepth: 8
    functionLinenumber: 802
    functionLinenumberEnd: 831
    functionName: fu_synaptics_cxaudio_device_attach
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_steal_pointer
    - FU_SYNAPTICS_CXAUDIO_DEVICE
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    - fu_synaptics_cxaudio_device_operation
    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:839,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:842,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:843,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:848,1
    - Dst: fu_strtobool
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:849,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:850,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:851,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:856,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:857,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:862,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 867
    functionName: fu_synaptics_cxaudio_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_strtoull
    - g_set_error_literal
    - FU_SYNAPTICS_CXAUDIO_DEVICE
    - fu_strtobool
    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: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
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 869
    functionDepth: 3
    functionLinenumber: 869
    functionLinenumberEnd: 878
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_icon
      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_add_flag
      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_version_format
      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_set_install_duration
      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_set_firmware_gtype
      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_add_protocol
      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
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:891,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:891,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:892,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsCxaudioDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 880
    functionDepth: 6
    functionLinenumber: 880
    functionLinenumberEnd: 893
    functionName: fu_synaptics_cxaudio_device_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_retry_set_delay
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsCxaudioDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 906
    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_udev_subsystem
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c:34,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c:35,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c:36,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 40
    functionName: fu_synaptics_cxaudio_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_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:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsCxaudioPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    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:
    - FU_GPIO_DEVICE
    - fwupd_codec_string_append_int
    - fwupd_codec_string_append_bool
    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:
    - fu_udev_device_get_device_file
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - fu_udev_device_set_physical_id
    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_literal
      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: 7
    functionLinenumber: 48
    functionLinenumberEnd: 91
    functionName: fu_gpio_device_setup
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_strsafe
    - fu_ioctl_execute
    - fu_device_build_instance_id
    - FU_GPIO_DEVICE
    - g_set_error_literal
    - fu_device_add_instance_strsafe
    - g_prefix_error_literal
    - fu_udev_device_ioctl_new
    - FU_UDEV_DEVICE
    - g_autoptr
    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:
    - FU_DEVICE
    - fu_device_get_logical_id
    - g_close
    - g_info
    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_literal
      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: 4
    functionLinenumber: 105
    functionLinenumberEnd: 150
    functionName: fu_gpio_device_assign_full
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_logical_id
    - fu_ioctl_execute
    - g_info
    - g_prefix_error_literal
    - fu_udev_device_ioctl_new
    - FU_DEVICE
    - fu_memcpy_safe
    - FU_UDEV_DEVICE
    - g_autoptr
    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_literal
      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_literal
      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: 5
    functionLinenumber: 152
    functionLinenumberEnd: 211
    functionName: fu_gpio_device_assign
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_strsafe
    - fu_ioctl_execute
    - g_set_error
    - fu_strtoull
    - g_prefix_error_literal
    - fu_udev_device_ioctl_new
    - fu_gpio_device_assign_full
    - FU_UDEV_DEVICE
    - g_autoptr
    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
    - fu_udev_device_add_open_flag
    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:
    - FU_GPIO_DEVICE
    - g_close
    - 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_strdup_printf
    - fwupd_codec_string_append
    - g_ptr_array_index
    - FU_GPIO_PLUGIN
    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: 6
    functionLinenumber: 49
    functionLinenumberEnd: 89
    functionName: fu_gpio_plugin_process_quirk
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-plugin.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_gpio_plugin_parse_level
    - fu_device_get_logical_id
    - g_set_error
    - FU_GPIO_DEVICE
    - fu_device_locker_new
    - g_ptr_array_add
    - g_prefix_error
    - g_strsplit
    - g_strv_length
    - fu_plugin_cache_lookup
    - fu_gpio_device_assign
    - g_auto
    - g_autoptr
    - FU_GPIO_PLUGIN
    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: 7
    functionLinenumber: 91
    functionLinenumberEnd: 111
    functionName: fu_gpio_plugin_prepare
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-plugin.c
    functionUses: 0
    functionsReached:
    - fu_context_lookup_quirk_by_id
    - fu_plugin_get_context
    - fu_gpio_plugin_process_quirk
    - fu_device_get_guids
    - 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:
    - g_set_error
    - FU_GPIO_DEVICE
    - fu_gpio_device_unassign
    - g_ptr_array_set_size
    - g_prefix_error
    - g_ptr_array_copy
    - fu_plugin_cache_lookup
    - g_autoptr
    - g_ptr_array_index
    - FU_GPIO_PLUGIN
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 164
    functionDepth: 4
    functionLinenumber: 164
    functionLinenumberEnd: 175
    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
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_context_add_quirk_key
    - fu_plugin_add_device_gtype
    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:180,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:181,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: fu_gpio_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-plugin.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - FU_GPIO_PLUGIN
    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:188,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/gpio/fu-gpio-plugin.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGpioPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 197
    functionName: fu_gpio_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/gpio/fu-gpio-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_gpio_plugin_class_init(FuGpioPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_egis_moc_checksum_build
      Src: /src/fwupd/plugins/egis-moc/fu-self-test.c:18,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/egis-moc/fu-self-test.c:19,1
    - Dst: fu_egis_moc_checksum_finish
      Src: /src/fwupd/plugins/egis-moc/fu-self-test.c:20,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/egis-moc/fu-self-test.c:21,1
    - Dst: fu_egis_moc_checksum_build
      Src: /src/fwupd/plugins/egis-moc/fu-self-test.c:24,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/egis-moc/fu-self-test.c:25,1
    - Dst: fu_egis_moc_checksum_finish
      Src: /src/fwupd/plugins/egis-moc/fu-self-test.c:26,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/egis-moc/fu-self-test.c:27,1
    - Dst: fu_egis_moc_checksum_build
      Src: /src/fwupd/plugins/egis-moc/fu-self-test.c:30,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/egis-moc/fu-self-test.c:31,1
    - Dst: fu_egis_moc_checksum_build
      Src: /src/fwupd/plugins/egis-moc/fu-self-test.c:32,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/egis-moc/fu-self-test.c:33,1
    - Dst: fu_egis_moc_checksum_finish
      Src: /src/fwupd/plugins/egis-moc/fu-self-test.c:34,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/egis-moc/fu-self-test.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 36
    functionName: fu_egis_moc_checksum_func
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_egis_moc_checksum_build
    - fu_egis_moc_checksum_finish
    - g_assert_cmpint
    linkageType: ''
    returnType: void
    signature: void fu_egis_moc_checksum_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/plugins/egis-moc/fu-self-test.c:41,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/egis-moc/fu-self-test.c:42,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/egis-moc/fu-self-test.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: main
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-self-test.c
    functionUses: 3
    functionsReached:
    - g_test_add_func
    - g_test_run
    - g_test_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-common.c:17,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - csum
    - buf
    - bufsz
    argTypes:
    - guint32
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 22
    functionName: fu_egis_moc_checksum_build
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-common.c
    functionUses: 1
    functionsReached:
    - fu_memread_uint16
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_egis_moc_checksum_build(guint32 csum, const guint8 *buf,
      gsize bufsz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - csum
    argTypes:
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: fu_egis_moc_checksum_fold
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_egis_moc_checksum_fold(guint32 csum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_egis_moc_checksum_fold
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-common.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - csum
    argTypes:
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: fu_egis_moc_checksum_finish
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-common.c
    functionUses: 1
    functionsReached:
    - fu_egis_moc_checksum_fold
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_egis_moc_checksum_finish(guint32 csum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEgisMocPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_egis_moc_plugin_init
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_egis_moc_plugin_init(FuEgisMocPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-plugin.c:26,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-plugin.c:28,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-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: 2
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: fu_egis_moc_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_egis_moc_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-plugin.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEgisMocPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: fu_egis_moc_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_egis_moc_plugin_class_init(FuEgisMocPluginClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_egis_moc_checksum_build
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:37,1
    - Dst: fu_egis_moc_checksum_build
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:39,1
    - Dst: fu_egis_moc_checksum_finish
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - buf
    argTypes:
    - GByteArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: fu_egis_moc_device_pkg_header_checksum
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_egis_moc_checksum_build
    - fu_egis_moc_checksum_finish
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_egis_moc_device_pkg_header_checksum(GByteArray *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:57,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:57,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:71,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - self
    - cmd
    - value
    - index
    - data
    - length
    - device2host
    - error
    argTypes:
    - FuEgisMocDevice*
    - FuEgisMocCmd
    - guint16
    - guint16
    - guint8*
    - gsize
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 86
    functionName: fu_egis_moc_device_ctrl_cmd
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_set_error
    - fwupd_error_convert
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_egis_moc_device_ctrl_cmd(FuEgisMocDevice *self,\n\t\t\t
      \   FuEgisMocCmd cmd,\n\t\t\t    guint16 value,\n\t\t\t    guint16 index,\n\t\t\t
      \   guint8 *data,\n\t\t\t    gsize length,\n\t\t\t    gboolean device2host,\n\t\t\t
      \   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:92,1
    - Dst: fu_struct_egis_moc_pkg_header_new
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:92,1
    - Dst: fu_struct_egis_moc_pkg_header_set_sync
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:95,1
    - Dst: fu_struct_egis_moc_pkg_header_set_id
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:96,1
    - Dst: fu_struct_egis_moc_pkg_header_set_len
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:97,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:98,1
    - Dst: fu_struct_egis_moc_pkg_header_set_chksum
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:99,1
    - Dst: fu_egis_moc_device_pkg_header_checksum
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:101,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:104,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:104,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:112,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - self
    - req
    - error
    argTypes:
    - FuEgisMocDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 122
    functionName: fu_egis_moc_device_cmd_send
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_egis_moc_pkg_header_set_chksum
    - fu_struct_egis_moc_pkg_header_set_id
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_struct_egis_moc_pkg_header_set_len
    - fu_struct_egis_moc_pkg_header_new
    - fu_usb_device_bulk_transfer
    - fu_egis_moc_device_pkg_header_checksum
    - g_byte_array_append
    - FU_USB_DEVICE
    - g_autoptr
    - fu_struct_egis_moc_pkg_header_set_sync
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_egis_moc_device_cmd_send(FuEgisMocDevice *self, GByteArray
      *req, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:131,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:132,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:135,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:136,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:136,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:144,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:147,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:149,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:152,1
    - Dst: fu_struct_egis_moc_pkg_header_parse
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:155,1
    - Dst: fu_egis_moc_device_pkg_header_checksum
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:158,1
    - Dst: fu_struct_egis_moc_pkg_header_get_chksum
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:159,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:160,1
    - Dst: fu_struct_egis_moc_pkg_header_get_chksum
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:165,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:168,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:176,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:185,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 124
    functionDepth: 4
    functionLinenumber: 124
    functionLinenumberEnd: 197
    functionName: fu_egis_moc_device_cmd_recv_cb
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - g_prefix_error_literal
    - g_byte_array_set_size
    - g_byte_array_new
    - fu_usb_device_bulk_transfer
    - fu_egis_moc_device_pkg_header_checksum
    - fu_memcpy_safe
    - fu_struct_egis_moc_pkg_header_get_chksum
    - fu_dump_full
    - FU_USB_DEVICE
    - g_autoptr
    - fu_memread_uint16_safe
    - fu_byte_array_set_size
    - fu_struct_egis_moc_pkg_header_parse
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_egis_moc_device_cmd_recv_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:205,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:205,1
    - Dst: fu_egis_moc_device_cmd_send
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:207,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:209,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:210,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:210,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - self
    - st_req
    - bufsz
    - error
    argTypes:
    - FuEgisMocDevice*
    - FuStructEgisMocCmdReq*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 215
    functionName: fu_egis_moc_device_fw_cmd
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_egis_moc_device_cmd_send
    - FU_DEVICE
    - g_byte_array_new
    - fu_device_retry
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_egis_moc_device_fw_cmd(FuEgisMocDevice *self,\n\t\t\t
      \ FuStructEgisMocCmdReq *st_req,\n\t\t\t  gsize bufsz,\n\t\t\t  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:221,1
    - Dst: fu_struct_egis_moc_cmd_req_new
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:222,1
    - Dst: fu_struct_egis_moc_cmd_req_set_ins
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:224,1
    - Dst: fu_struct_egis_moc_cmd_req_set_lc3
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:225,1
    - Dst: fu_egis_moc_device_fw_cmd
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:227,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:231,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:237,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:240,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEgisMocDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 217
    functionDepth: 6
    functionLinenumber: 217
    functionLinenumberEnd: 244
    functionName: fu_egis_moc_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_memstrsafe
    - fu_struct_egis_moc_cmd_req_new
    - g_set_error_literal
    - FU_DEVICE
    - fu_egis_moc_device_fw_cmd
    - g_autoptr
    - fu_struct_egis_moc_cmd_req_set_ins
    - fu_struct_egis_moc_cmd_req_set_lc3
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_egis_moc_device_ensure_version(FuEgisMocDevice *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:253,1
    - Dst: g_hmac_new
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:253,1
    - Dst: fu_egis_moc_device_ctrl_cmd
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:256,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:264,1
    - Dst: g_hmac_update
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:267,1
    - Dst: g_hmac_get_digest
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:268,1
    - Dst: fu_egis_moc_device_ctrl_cmd
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:271,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEgisMocDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 246
    functionDepth: 5
    functionLinenumber: 246
    functionLinenumberEnd: 285
    functionName: fu_egis_moc_device_update_init
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
    functionUses: 0
    functionsReached:
    - g_hmac_new
    - g_hmac_get_digest
    - g_prefix_error_literal
    - g_hmac_update
    - fu_egis_moc_device_ctrl_cmd
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_egis_moc_device_update_init(FuEgisMocDevice *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_egis_moc_device_ctrl_cmd
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:292,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:300,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:304,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:304,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:306,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEgisMocDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 287
    functionDepth: 6
    functionLinenumber: 287
    functionLinenumberEnd: 311
    functionName: fu_egis_moc_device_ensure_op_mode
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_prefix_error_literal
    - fu_device_remove_flag
    - FU_DEVICE
    - fu_egis_moc_device_ctrl_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_egis_moc_device_ensure_op_mode(FuEgisMocDevice *self, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_EGIS_MOC_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:316,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:319,1
    - Dst: fu_egis_moc_device_ensure_op_mode
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:322,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:323,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:326,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:326,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:327,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:327,1
    - Dst: fu_egis_moc_device_ensure_version
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:329,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 313
    functionDepth: 7
    functionLinenumber: 313
    functionLinenumberEnd: 337
    functionName: fu_egis_moc_device_setup
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_egis_moc_device_ensure_version
    - fu_device_set_version
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_device_has_flag
    - fu_egis_moc_device_ensure_op_mode
    - FU_EGIS_MOC_DEVICE
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_egis_moc_device_setup(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:345,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:346,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:346,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:347,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:348,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:349,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:349,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:353,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:356,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:357,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:358,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:359,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:362,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:362,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:362,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:364,1
    - Dst: fu_egis_moc_device_ctrl_cmd
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:365,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:373,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuEgisMocDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 339
    functionDepth: 5
    functionLinenumber: 339
    functionLinenumberEnd: 383
    functionName: fu_egis_moc_device_write_packets
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error_literal
    - fu_progress_step_done
    - g_byte_array_new
    - fu_chunk_get_data
    - fu_chunk_get_address
    - g_byte_array_append
    - fu_chunk_array_length
    - g_autoptr
    - fu_egis_moc_device_ctrl_cmd
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_egis_moc_device_write_packets(FuEgisMocDevice *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/egis-moc/fu-egis-moc-device.c:389,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:391,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:391,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:394,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:397,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:398,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:399,1
    - Dst: fu_egis_moc_device_ctrl_cmd
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:403,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - chunks
    - error
    argTypes:
    - FuEgisMocDevice*
    - FuChunkArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 385
    functionDepth: 5
    functionLinenumber: 385
    functionLinenumberEnd: 417
    functionName: fu_egis_moc_device_write_checksum
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - g_prefix_error_literal
    - fu_chunk_get_data
    - fu_memcpy_safe
    - fu_chunk_array_length
    - g_autoptr
    - fu_egis_moc_device_ctrl_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_egis_moc_device_write_checksum(FuEgisMocDevice *self, FuChunkArray
      *chunks, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_EGIS_MOC_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:426,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:427,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:428,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:431,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:432,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:433,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:436,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:441,1
    - Dst: fu_egis_moc_device_write_packets
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:445,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:445,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:447,1
    - Dst: fu_egis_moc_device_write_checksum
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:450,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:452,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: 456
      start: 419
    functionDepth: 6
    functionLinenumber: 419
    functionLinenumberEnd: 456
    functionName: fu_egis_moc_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_bytes
    - fu_progress_add_step
    - fu_chunk_array_new_from_bytes
    - fu_progress_step_done
    - fu_egis_moc_device_write_packets
    - FU_EGIS_MOC_DEVICE
    - g_autoptr
    - fu_progress_get_child
    - fu_egis_moc_device_write_checksum
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_egis_moc_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_EGIS_MOC_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:461,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:463,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:464,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:469,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 458
    functionDepth: 6
    functionLinenumber: 458
    functionLinenumberEnd: 471
    functionName: fu_egis_moc_device_attach
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - FU_DEVICE
    - fu_device_has_flag
    - FU_EGIS_MOC_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_egis_moc_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_EGIS_MOC_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:476,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:478,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:479,1
    - Dst: fu_egis_moc_device_update_init
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:482,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:483,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 473
    functionDepth: 6
    functionLinenumber: 473
    functionLinenumberEnd: 490
    functionName: fu_egis_moc_device_detach
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - g_prefix_error_literal
    - fu_egis_moc_device_update_init
    - fu_device_has_flag
    - FU_EGIS_MOC_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_egis_moc_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:495,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:496,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:497,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:498,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:499,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 492
    functionDepth: 3
    functionLinenumber: 492
    functionLinenumberEnd: 501
    functionName: fu_egis_moc_device_set_progress
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_egis_moc_device_set_progress(FuDevice *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:506,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 507
    functionName: fu_egis_moc_device_convert_version
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_egis_moc_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:512,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:512,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:513,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:513,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:514,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:514,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:515,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:515,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:516,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:516,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:517,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:517,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:518,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:518,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:519,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:519,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:520,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:520,1
    - Dst: fu_device_set_firmware_size_min
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:521,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:521,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:522,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:522,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:523,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEgisMocDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 509
    functionDepth: 6
    functionLinenumber: 509
    functionLinenumberEnd: 524
    functionName: fu_egis_moc_device_init
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_set_firmware_size_min
    - fu_device_set_firmware_size_max
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - FU_USB_DEVICE
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_egis_moc_device_init(FuEgisMocDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEgisMocDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 538
    functionName: fu_egis_moc_device_class_init
    functionSourceFile: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_egis_moc_device_class_init(FuEgisMocDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ioctl
    - ptr
    - buf
    - bufsz
    - error
    argTypes:
    - FuIoctl*
    - gpointer
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: fu_sunplus_camera_device_ioctl_buffer_cb
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunplus_camera_device_ioctl_buffer_cb(FuIoctl *ioctl,\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/sunplus-camera/fu-sunplus-camera-device.c:51,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:51,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:51,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:53,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:54,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:55,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:56,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:57,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:62,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - self
    - selector
    - query_code
    - buf
    - bufsz
    - error
    argTypes:
    - FuSunplusCameraDevice*
    - guint8
    - guint8
    - guint8*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 80
    functionName: fu_sunplus_camera_device_xu_query
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_execute
    - fu_ioctl_add_mutable_buffer
    - g_prefix_error
    - fu_ioctl_add_key_as_u8
    - fu_udev_device_ioctl_new
    - FU_UDEV_DEVICE
    - fu_ioctl_add_key_as_u16
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunplus_camera_device_xu_query(FuSunplusCameraDevice *self,\n\t\t\t\t
      \ guint8 selector,\n\t\t\t\t  guint8 query_code,\n\t\t\t\t  guint8 *buf,\n\t\t\t\t
      \ guint16 bufsz,\n\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_sunplus_camera_device_xu_query
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:89,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - selector
    - len
    - error
    argTypes:
    - FuSunplusCameraDevice*
    - guint8
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 82
    functionDepth: 5
    functionLinenumber: 82
    functionLinenumberEnd: 100
    functionName: fu_sunplus_camera_device_xu_get_len
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - fu_sunplus_camera_device_xu_query
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunplus_camera_device_xu_get_len(FuSunplusCameraDevice
      *self,\n\t\t\t\t    guint8 selector,\n\t\t\t\t    guint16 *len,\n\t\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_sunplus_camera_device_xu_query
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - selector
    - buf
    - bufsz
    - error
    argTypes:
    - FuSunplusCameraDevice*
    - guint8
    - guint8*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 5
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: fu_sunplus_camera_device_xu_get_cur
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - fu_sunplus_camera_device_xu_query
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunplus_camera_device_xu_get_cur(FuSunplusCameraDevice
      *self,\n\t\t\t\t    guint8 selector,\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_sunplus_camera_device_xu_query
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - selector
    - buf
    - bufsz
    - error
    argTypes:
    - FuSunplusCameraDevice*
    - guint8
    - guint8*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 5
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: fu_sunplus_camera_device_xu_set_cur
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - fu_sunplus_camera_device_xu_query
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunplus_camera_device_xu_set_cur(FuSunplusCameraDevice
      *self,\n\t\t\t\t    guint8 selector,\n\t\t\t\t    guint8 *buf,\n\t\t\t\t    guint16
      bufsz,\n\t\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_sunplus_camera_device_xu_set_cur
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:127,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:135,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuSunplusCameraDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 122
    functionDepth: 6
    functionLinenumber: 122
    functionLinenumberEnd: 137
    functionName: fu_sunplus_camera_device_set_enabled
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_sunplus_camera_device_xu_set_cur
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_sunplus_camera_device_set_enabled(FuSunplusCameraDevice
      *self, guint8 value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:144,1
    - Dst: fu_sunplus_camera_device_xu_set_cur
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuSunplusCameraDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 139
    functionDepth: 6
    functionLinenumber: 139
    functionLinenumberEnd: 150
    functionName: fu_sunplus_camera_device_set_read_addr
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - fu_sunplus_camera_device_xu_set_cur
    - fu_memwrite_uint32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_sunplus_camera_device_set_read_addr(FuSunplusCameraDevice
      *self, guint32 addr, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:160,1
    - Dst: fu_sunplus_camera_device_xu_set_cur
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:161,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:166,1
    - Dst: fu_sunplus_camera_asic_register_to_string
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:168,1
    - Dst: fu_sunplus_camera_device_xu_set_cur
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:171,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:176,1
    - Dst: fu_sunplus_camera_asic_register_to_string
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - reg
    - value
    - error
    argTypes:
    - FuSunplusCameraDevice*
    - FuSunplusCameraAsicRegister
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 152
    functionDepth: 6
    functionLinenumber: 152
    functionLinenumberEnd: 184
    functionName: fu_sunplus_camera_device_set_asic_register
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - fu_sunplus_camera_asic_register_to_string
    - g_prefix_error
    - fu_sunplus_camera_device_xu_set_cur
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunplus_camera_device_set_asic_register(FuSunplusCameraDevice
      *self,\n\t\t\t\t\t   FuSunplusCameraAsicRegister reg,\n\t\t\t\t\t   guint8 value,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:194,1
    - Dst: fu_sunplus_camera_device_xu_set_cur
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:196,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:201,1
    - Dst: fu_sunplus_camera_asic_register_to_string
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:203,1
    - Dst: fu_sunplus_camera_device_xu_get_cur
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:206,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:211,1
    - Dst: fu_sunplus_camera_asic_register_to_string
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - reg
    - value
    - error
    argTypes:
    - FuSunplusCameraDevice*
    - FuSunplusCameraAsicRegister
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 186
    functionDepth: 6
    functionLinenumber: 186
    functionLinenumberEnd: 219
    functionName: fu_sunplus_camera_device_get_asic_register
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - fu_sunplus_camera_device_xu_get_cur
    - g_prefix_error
    - fu_sunplus_camera_asic_register_to_string
    - fu_sunplus_camera_device_xu_set_cur
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunplus_camera_device_get_asic_register(FuSunplusCameraDevice
      *self,\n\t\t\t\t\t   FuSunplusCameraAsicRegister reg,\n\t\t\t\t\t   guint8 *value,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_sunplus_camera_device_get_asic_register
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:226,1
    - Dst: fu_sunplus_camera_device_set_asic_register
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:234,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:242,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSunplusCameraDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 221
    functionDepth: 7
    functionLinenumber: 221
    functionLinenumberEnd: 244
    functionName: fu_sunplus_camera_device_clear_download_state
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_sunplus_camera_device_get_asic_register
    - FU_DEVICE
    - fu_sunplus_camera_device_set_asic_register
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_sunplus_camera_device_clear_download_state(FuSunplusCameraDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:261,1
    - Dst: fu_sunplus_camera_device_set_asic_register
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:262,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSunplusCameraDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 246
    functionDepth: 7
    functionLinenumber: 246
    functionLinenumberEnd: 276
    functionName: fu_sunplus_camera_device_soft_reset
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - G_N_ELEMENTS
    - fu_sunplus_camera_device_set_asic_register
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_sunplus_camera_device_soft_reset(FuSunplusCameraDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:286,1
    - Dst: fu_sunplus_camera_device_set_read_addr
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:293,1
    - Dst: fu_sunplus_camera_device_xu_get_cur
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuSunplusCameraDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 278
    functionDepth: 7
    functionLinenumber: 278
    functionLinenumberEnd: 304
    functionName: fu_sunplus_camera_device_read_chunk
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - fu_sunplus_camera_device_xu_get_cur
    - fu_sunplus_camera_device_set_read_addr
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunplus_camera_device_read_chunk(FuSunplusCameraDevice
      *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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:310,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:311,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:311,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:315,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:316,1
    - Dst: fu_usb_device_get_release
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:319,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:319,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:321,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:321,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:326,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:326,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:329,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:335,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:338,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:338,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:342,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSunplusCameraDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 306
    functionDepth: 5
    functionLinenumber: 306
    functionLinenumberEnd: 347
    functionName: fu_sunplus_camera_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - fu_device_set_version_raw
    - fu_device_get_backend_parent_with_subsystem
    - fu_strtoull
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_usb_device_get_release
    - FU_DEVICE
    - fu_udev_device_read_property
    - FU_UDEV_DEVICE
    - FU_USB_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_sunplus_camera_device_ensure_version(FuSunplusCameraDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:352,1
    - Dst: fu_v4l_device_get_index
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:355,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:355,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 365
    functionName: fu_sunplus_camera_device_probe
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - FU_DEVICE_CLASS
    - FU_V4L_DEVICE
    - fu_v4l_device_get_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_sunplus_camera_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SUNPLUS_CAMERA_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:370,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:372,1
    - Dst: fu_v4l_device_get_caps
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:374,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:374,1
    - Dst: fu_v4l_cap_to_string
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:376,1
    - Dst: fu_v4l_device_get_caps
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:376,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:376,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:377,1
    - Dst: fu_sunplus_camera_device_ensure_version
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 367
    functionDepth: 6
    functionLinenumber: 367
    functionLinenumberEnd: 385
    functionName: fu_sunplus_camera_device_setup
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - FU_SUNPLUS_CAMERA_DEVICE
    - fu_v4l_cap_to_string
    - fu_sunplus_camera_device_ensure_version
    - fu_v4l_device_get_caps
    - g_set_error
    - FU_V4L_DEVICE
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_sunplus_camera_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_sunplus_camera_device_read_chunk
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:394,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:395,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:400,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:403,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:404,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:406,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:408,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - self
    - chk
    - buf
    - error
    argTypes:
    - FuSunplusCameraDevice*
    - FuChunk*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 387
    functionDepth: 8
    functionLinenumber: 387
    functionLinenumberEnd: 416
    functionName: fu_sunplus_camera_device_verify_block
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - fu_sunplus_camera_device_read_chunk
    - fu_chunk_get_data_sz
    - g_prefix_error
    - fu_chunk_get_address
    - fu_chunk_get_data
    - fu_memcmp_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunplus_camera_device_verify_block(FuSunplusCameraDevice
      *self,\n\t\t\t\t      FuChunk *chk,\n\t\t\t\t      GByteArray *buf,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:425,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:428,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:428,1
    - Dst: fu_device_check_fwupd_version
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:429,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:429,1
    - Dst: memset
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:430,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:433,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:433,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:434,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:435,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:441,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:442,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:444,1
    - Dst: fu_sunplus_camera_device_verify_block
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:445,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:447,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - self
    - chk_parent
    - buf
    - progress
    - error
    argTypes:
    - FuSunplusCameraDevice*
    - FuChunk*
    - GByteArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 418
    functionDepth: 9
    functionLinenumber: 418
    functionLinenumberEnd: 452
    functionName: fu_sunplus_camera_device_verify_chunk
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new
    - fu_device_check_fwupd_version
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - fu_progress_step_done
    - FU_DEVICE
    - fu_device_has_flag
    - fu_chunk_get_data
    - memset
    - fu_sunplus_camera_device_verify_block
    - fu_progress_set_id
    - g_autoptr
    - g_ptr_array_index
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunplus_camera_device_verify_chunk(FuSunplusCameraDevice
      *self,\n\t\t\t\t      FuChunk *chk_parent,\n\t\t\t\t      GByteArray *buf,\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/sunplus-camera/fu-sunplus-camera-device.c:460,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:460,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:464,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:467,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:468,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:468,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:469,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:470,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:472,1
    - Dst: fu_sunplus_camera_device_verify_chunk
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:475,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:478,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuSunplusCameraDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 454
    functionDepth: 10
    functionLinenumber: 454
    functionLinenumberEnd: 486
    functionName: fu_sunplus_camera_device_verify
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_sunplus_camera_device_verify_chunk
    - g_byte_array_new
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_get_child
    - fu_byte_array_set_size
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunplus_camera_device_verify(FuSunplusCameraDevice *self,\n\t\t\t\tFuChunkArray
      *chunks,\n\t\t\t\tFuProgress *progress,\n\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SUNPLUS_CAMERA_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:494,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:497,1
    - Dst: fu_sunplus_camera_device_set_enabled
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 488
    functionDepth: 7
    functionLinenumber: 488
    functionLinenumberEnd: 504
    functionName: fu_sunplus_camera_device_cleanup
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - FU_SUNPLUS_CAMERA_DEVICE
    - fu_device_get_update_state
    - fu_sunplus_camera_device_set_enabled
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunplus_camera_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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:513,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:513,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:515,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:515,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:515,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:516,1
    - Dst: fu_sunplus_camera_device_xu_set_cur
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:517,1
    - Dst: fu_xor8
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - self
    - chk
    - checksum
    - chunk_len
    - error
    argTypes:
    - FuSunplusCameraDevice*
    - FuChunk*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 506
    functionDepth: 6
    functionLinenumber: 506
    functionLinenumberEnd: 527
    functionName: fu_sunplus_camera_device_write_chunk
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - fu_xor8
    - fu_chunk_get_data_sz
    - g_byte_array_new
    - fu_chunk_get_data
    - g_byte_array_append
    - g_autoptr
    - fu_byte_array_set_size
    - fu_sunplus_camera_device_xu_set_cur
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunplus_camera_device_write_chunk(FuSunplusCameraDevice
      *self,\n\t\t\t\t     FuChunk *chk,\n\t\t\t\t     guint8 *checksum,\n\t\t\t\t
      \    gsize chunk_len,\n\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:537,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:538,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:538,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:539,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:540,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:542,1
    - Dst: fu_sunplus_camera_device_write_chunk
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:545,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:547,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:547,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:548,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - self
    - chunks
    - checksum
    - chunk_len
    - progress
    - error
    argTypes:
    - FuSunplusCameraDevice*
    - FuChunkArray*
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 529
    functionDepth: 7
    functionLinenumber: 529
    functionLinenumberEnd: 553
    functionName: fu_sunplus_camera_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_chunk_array_index
    - fu_progress_set_steps
    - fu_sunplus_camera_device_write_chunk
    - fu_progress_step_done
    - FU_DEVICE
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunplus_camera_device_write_chunks(FuSunplusCameraDevice
      *self,\n\t\t\t\t      FuChunkArray *chunks,\n\t\t\t\t      guint8 *checksum,\n\t\t\t\t
      \     gsize chunk_len,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      GError
      **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_SUNPLUS_CAMERA_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:562,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:567,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:568,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:570,1
    - Dst: fu_sunplus_camera_device_xu_get_len
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:574,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:580,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:587,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:588,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:589,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:590,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:591,1
    - Dst: fu_sunplus_camera_device_set_enabled
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:593,1
    - Dst: fu_sunplus_camera_device_clear_download_state
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:595,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:597,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:599,1
    - Dst: fu_sunplus_camera_device_write_chunks
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:606,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:610,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:613,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:616,1
    - Dst: fu_sunplus_camera_device_xu_get_cur
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:617,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:624,1
    - Dst: fu_sunplus_camera_device_xu_set_cur
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:632,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:638,1
    - Dst: fu_sunplus_camera_device_verify
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:640,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:640,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:642,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: 646
      start: 555
    functionDepth: 11
    functionLinenumber: 555
    functionLinenumberEnd: 646
    functionName: fu_sunplus_camera_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - FU_SUNPLUS_CAMERA_DEVICE
    - fu_sunplus_camera_device_xu_get_len
    - fu_sunplus_camera_device_verify
    - fu_sunplus_camera_device_clear_download_state
    - fu_firmware_get_stream
    - fu_progress_add_step
    - fu_sunplus_camera_device_write_chunks
    - g_set_error_literal
    - fu_device_sleep
    - fu_progress_step_done
    - fu_sunplus_camera_device_xu_get_cur
    - g_set_error
    - fu_chunk_array_new_from_stream
    - fu_sunplus_camera_device_set_enabled
    - g_autoptr
    - fu_progress_get_child
    - fu_sunplus_camera_device_xu_set_cur
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunplus_camera_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/sunplus-camera/fu-sunplus-camera-device.c:651,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:652,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:653,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:654,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:655,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 648
    functionDepth: 3
    functionLinenumber: 648
    functionLinenumberEnd: 657
    functionName: fu_sunplus_camera_device_set_progress
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_sunplus_camera_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SUNPLUS_CAMERA_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:662,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:664,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:665,1
    - Dst: fu_sunplus_camera_device_soft_reset
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:666,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 659
    functionDepth: 8
    functionLinenumber: 659
    functionLinenumberEnd: 670
    functionName: fu_sunplus_camera_device_attach
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - FU_SUNPLUS_CAMERA_DEVICE
    - fu_device_add_flag
    - fu_sunplus_camera_device_soft_reset
    - fu_progress_set_status
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_sunplus_camera_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:675,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 676
    functionName: fu_sunplus_camera_device_convert_version
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_sunplus_camera_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:681,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:681,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:682,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:682,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:683,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:683,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:684,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:684,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:685,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:685,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:686,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:686,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:687,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSunplusCameraDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 678
    functionDepth: 6
    functionLinenumber: 678
    functionLinenumberEnd: 688
    functionName: fu_sunplus_camera_device_init
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - FU_DEVICE
    - fu_device_set_install_duration
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    linkageType: ''
    returnType: void
    signature: void fu_sunplus_camera_device_init(FuSunplusCameraDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSunplusCameraDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 701
    functionName: fu_sunplus_camera_device_class_init
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_sunplus_camera_device_class_init(FuSunplusCameraDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSunplusCameraPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_sunplus_camera_plugin_init
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_sunplus_camera_plugin_init(FuSunplusCameraPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-plugin.c:26,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-plugin.c:28,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-plugin.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: fu_sunplus_camera_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_sunplus_camera_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-plugin.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSunplusCameraPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: fu_sunplus_camera_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_sunplus_camera_plugin_class_init(FuSunplusCameraPluginClass
      *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: 4
    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_assert_true
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - g_assert_nonnull
    - g_assert_no_error
    - g_file_test
    - fu_acpi_dmar_new
    - fu_acpi_dmar_get_opt_in
    - g_test_skip
    - fu_input_stream_from_path
    - g_test_build_filename
    - g_autoptr
    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: 4
    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_assert_true
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - g_assert_nonnull
    - g_assert_no_error
    - g_file_test
    - g_assert_false
    - fu_acpi_dmar_new
    - fu_acpi_dmar_get_opt_in
    - g_test_skip
    - fu_input_stream_from_path
    - g_test_build_filename
    - g_autoptr
    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_test_add_func
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:70,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:71,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/acpi-dmar/fu-self-test.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: main
    functionSourceFile: /src/fwupd/plugins/acpi-dmar/fu-self-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_DMAR
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:28,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:31,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:32,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:39,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:39,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:39,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:40,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:44,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:44,1
    - Dst: fu_acpi_table_get_payload
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:48,1
    - Dst: FU_ACPI_TABLE
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:48,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:51,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 56
    functionName: fu_acpi_dmar_parse
    functionSourceFile: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_input_stream_read_u8
    - g_strcmp0
    - fu_acpi_table_get_payload
    - g_debug
    - g_set_error
    - FU_FIRMWARE
    - FU_FIRMWARE_CLASS
    - FU_ACPI_TABLE
    - FU_ACPI_DMAR
    - g_autoptr
    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:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    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:67,1
    - Dst: FU_IS_ACPI_DMAR
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiDmar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    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:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiDmarClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    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: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:21,1
    - 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_context_build_filename
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:38,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:40,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:41,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:44,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:46,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:47,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:50,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:50,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:55,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:56,1
    - Dst: fu_acpi_dmar_get_opt_in
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:59,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:60,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:61,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:62,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 68
    functionName: fu_acpi_dmar_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/acpi-dmar/fu-acpi-dmar-plugin.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_from_path
    - fu_context_build_filename
    - g_debug
    - fwupd_security_attr_set_result
    - fu_firmware_parse_stream
    - fu_plugin_security_attr_new
    - FU_FIRMWARE
    - fwupd_security_attr_add_flag
    - fu_plugin_get_context
    - g_warning
    - fu_acpi_dmar_new
    - fu_cpu_get_vendor
    - fwupd_security_attr_set_result_success
    - fu_acpi_dmar_get_opt_in
    - fu_security_attrs_append
    - g_autoptr
    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: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    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:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiDmarPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    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: 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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-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: 2
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: fu_intel_amt_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/intel-amt/fu-intel-amt-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelAmtPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    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_literal
      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:55,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - status
    - error
    argTypes:
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 57
    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_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:63,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:63,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:65,1
    - Dst: fu_mei_device_get_max_msg_length
      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: fu_mei_device_write
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:66,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:66,1
    - Dst: fu_mei_device_read
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:68,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:68,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:76,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:79,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - inbuf
    - error
    argTypes:
    - FuIntelAmtDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 59
    functionDepth: 6
    functionLinenumber: 59
    functionLinenumberEnd: 81
    functionName: fu_intel_amt_device_host_if_call
    functionSourceFile: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_steal_pointer
    - fu_mei_device_get_max_msg_length
    - FU_MEI_DEVICE
    - g_byte_array_set_size
    - g_byte_array_new
    - fu_mei_device_read
    - g_autoptr
    - fu_mei_device_write
    - 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:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:89,1
    - Dst: fu_amt_host_if_msg_provisioning_state_request_new
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:91,1
    - Dst: fu_intel_amt_device_host_if_call
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:93,1
    - Dst: fu_amt_host_if_msg_provisioning_state_response_parse
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:99,1
    - Dst: fu_intel_amt_device_status_set_error
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:102,1
    - Dst: fu_amt_host_if_msg_provisioning_state_response_get_status
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:103,1
    - Dst: fu_amt_host_if_msg_provisioning_state_response_get_provisioning_state
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - provisioning_state
    - error
    argTypes:
    - FuIntelAmtDevice*
    - FuAmtProvisioningState*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 83
    functionDepth: 7
    functionLinenumber: 83
    functionLinenumberEnd: 111
    functionName: fu_intel_amt_device_get_provisioning_state
    functionSourceFile: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c
    functionUses: 0
    functionsReached:
    - fu_intel_amt_device_host_if_call
    - fu_amt_host_if_msg_provisioning_state_request_new
    - fu_amt_host_if_msg_provisioning_state_response_get_status
    - fu_amt_host_if_msg_provisioning_state_response_get_provisioning_state
    - fu_intel_amt_device_status_set_error
    - g_autoptr
    - fu_amt_host_if_msg_provisioning_state_response_parse
    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:117,1
    - Dst: fu_amt_host_if_msg_code_version_request_new
      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_autoptr
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:121,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:122,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:122,1
    - Dst: fu_intel_amt_device_host_if_call
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:124,1
    - Dst: fu_amt_host_if_msg_code_version_response_parse
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:129,1
    - Dst: fu_intel_amt_device_status_set_error
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:132,1
    - Dst: fu_amt_host_if_msg_code_version_response_get_status
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:133,1
    - Dst: fu_amt_host_if_msg_code_version_response_get_version_count
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:138,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:142,1
    - Dst: fu_amt_unicode_string_parse
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:145,1
    - Dst: fu_amt_unicode_string_get_description_length
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:153,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:155,1
    - Dst: fu_amt_unicode_string_get_description_string
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:161,1
    - Dst: fu_amt_unicode_string_get_version_length
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:164,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:166,1
    - Dst: fu_amt_unicode_string_get_version_string
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:172,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:175,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:176,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:179,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:180,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:183,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:184,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:187,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:188,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:195,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:195,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:197,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:197,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIntelAmtDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 113
    functionDepth: 7
    functionLinenumber: 113
    functionLinenumberEnd: 199
    functionName: fu_intel_amt_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c
    functionUses: 0
    functionsReached:
    - fu_amt_host_if_msg_code_version_response_get_status
    - fu_amt_host_if_msg_code_version_request_new
    - fu_device_set_version
    - fu_amt_host_if_msg_code_version_response_get_version_count
    - fu_amt_unicode_string_get_description_length
    - fu_amt_unicode_string_get_version_string
    - g_set_error_literal
    - fu_amt_unicode_string_parse
    - fu_amt_unicode_string_get_version_length
    - fu_amt_host_if_msg_code_version_response_parse
    - g_string_new
    - fu_intel_amt_device_status_set_error
    - fu_intel_amt_device_host_if_call
    - g_string_append
    - fu_device_set_version_bootloader
    - FU_DEVICE
    - fu_amt_unicode_string_get_description_string
    - g_strcmp0
    - g_string_append_printf
    - g_autoptr
    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:204,1
    - Dst: fu_mei_device_connect
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:208,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:208,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:209,1
    - Dst: fu_intel_amt_device_ensure_version
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:212,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:213,1
    - Dst: fu_intel_amt_device_get_provisioning_state
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:218,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:219,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:224,1
    - Dst: fu_amt_provisioning_state_to_string
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:225,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 201
    functionDepth: 8
    functionLinenumber: 201
    functionLinenumberEnd: 231
    functionName: fu_intel_amt_device_setup
    functionSourceFile: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c
    functionUses: 0
    functionsReached:
    - fu_mei_device_connect
    - FU_MEI_DEVICE
    - g_prefix_error_literal
    - fu_intel_amt_device_ensure_version
    - fu_device_set_name
    - g_strdup_printf
    - fu_intel_amt_device_get_provisioning_state
    - fu_amt_provisioning_state_to_string
    - FU_INTEL_AMT_DEVICE
    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:236,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:236,1
    - Dst: fu_device_set_version_format
      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_add_flag
      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_add_private_flag
      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
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:240,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:240,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:241,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:241,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:242,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelAmtDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 233
    functionDepth: 6
    functionLinenumber: 233
    functionLinenumberEnd: 245
    functionName: fu_intel_amt_device_init
    functionSourceFile: /src/fwupd/plugins/intel-amt/fu-intel-amt-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_add_flag
    - fu_device_add_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_summary
    - fu_device_set_version_format
    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:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelAmtDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 252
    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:28,1
    - Dst: g_ascii_isspace
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:29,1
    - Dst: g_string_append_c
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:30,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - line
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: fu_linux_swap_strip_spaces
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap.c
    functionUses: 0
    functionsReached:
    - g_string_append_c
    - g_ascii_isspace
    - g_string_new
    - g_string_free
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_linux_swap_strip_spaces(const gchar *line)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:49,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:51,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:52,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:53,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:56,1
    - Dst: fu_path_store_build_filename
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:60,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:71,1
    - Dst: g_strstrip
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:72,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:73,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:77,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:78,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:79,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:81,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:81,1
    - Dst: fu_path_store_build_filename
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:85,1
    - Dst: g_dir_open
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:95,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:97,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:98,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:101,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:101,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:104,1
    - Dst: fu_linux_swap_block_has_crypt_below
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:105,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 5
    argNames:
    - pstore
    - name
    - depth
    - encrypted
    - error
    argTypes:
    - FuPathStore*
    - gchar*
    - guint
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 115
    functionName: fu_linux_swap_block_has_crypt_below
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_debug
    - g_file_get_contents
    - g_strstrip
    - g_steal_pointer
    - g_clear_error
    - fu_linux_swap_block_has_crypt_below
    - g_error_matches
    - g_dir_read_name
    - g_dir_open
    - g_propagate_error
    - fu_path_store_build_filename
    - g_str_has_prefix
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_linux_swap_block_has_crypt_below(FuPathStore *pstore,\n\t\t\t\t
      \   const gchar *name,\n\t\t\t\t    guint depth,\n\t\t\t\t    gboolean *encrypted,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:125,1
    - Dst: major
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:125,1
    - Dst: minor
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:125,1
    - Dst: fu_path_store_build_filename
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:126,1
    - Dst: g_file_read_link
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:135,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pstore
    - devnum
    - error
    argTypes:
    - FuPathStore*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 139
    functionName: fu_linux_swap_block_name_for_devnum
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap.c
    functionUses: 0
    functionsReached:
    - g_path_get_basename
    - major
    - g_file_read_link
    - g_strdup_printf
    - fu_path_store_build_filename
    - minor
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_linux_swap_block_name_for_devnum(FuPathStore *pstore, guint32 devnum, GError
      **error)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:150,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:151,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:152,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:155,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:156,1
    - Dst: fu_volume_new_by_device
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:162,1
    - Dst: fu_volume_is_encrypted
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:167,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:168,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:175,1
    - Dst: g_file_query_info
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:176,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:182,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:183,1
    - Dst: g_file_info_get_attribute_uint32
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:185,1
    - Dst: fu_linux_swap_block_name_for_devnum
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:187,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:189,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:192,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:198,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:199,1
    - Dst: fu_linux_swap_block_has_crypt_below
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:201,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:202,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:203,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:205,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:210,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 4
    argNames:
    - self
    - pstore
    - fn
    - error
    argTypes:
    - FuLinuxSwap*
    - FuPathStore*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 212
    functionName: fu_linux_swap_verify_partition
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap.c
    functionUses: 0
    functionsReached:
    - fu_linux_swap_block_name_for_devnum
    - fu_volume_new_by_device
    - g_path_get_basename
    - g_debug
    - g_file_query_info
    - g_clear_error
    - g_file_info_get_attribute_uint32
    - g_file_new_for_path
    - fu_linux_swap_block_has_crypt_below
    - fu_volume_is_encrypted
    - g_str_has_prefix
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_linux_swap_verify_partition(FuLinuxSwap *self,\n\t\t\t
      \      FuPathStore *pstore,\n\t\t\t       const gchar *fn,\n\t\t\t       GError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:220,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:222,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:223,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:226,1
    - Dst: g_file_query_info
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:227,1
    - Dst: g_file_info_get_attribute_uint32
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:234,1
    - Dst: fu_volume_new_by_devnum
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:237,1
    - Dst: fu_volume_is_encrypted
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:242,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:243,1
    - Dst: fu_linux_swap_block_name_for_devnum
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:249,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:251,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:254,1
    - Dst: fu_linux_swap_block_has_crypt_below
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:255,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:260,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:261,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:263,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:268,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 4
    argNames:
    - self
    - pstore
    - fn
    - error
    argTypes:
    - FuLinuxSwap*
    - FuPathStore*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 270
    functionName: fu_linux_swap_verify_file
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap.c
    functionUses: 0
    functionsReached:
    - fu_linux_swap_block_name_for_devnum
    - g_debug
    - fu_volume_is_encrypted
    - g_file_info_get_attribute_uint32
    - g_file_query_info
    - g_clear_error
    - fu_linux_swap_block_has_crypt_below
    - g_file_new_for_path
    - g_autoptr
    - fu_volume_new_by_devnum
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_swap_verify_file(FuLinuxSwap *self, FuPathStore *pstore,
      const gchar *fn, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:275,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:275,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:276,1
    - Dst: strlen
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:280,1
    - Dst: fu_strsplit
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:281,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:282,1
    - Dst: g_utf8_strlen
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:288,1
    - Dst: fu_linux_swap_strip_spaces
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:290,1
    - Dst: fu_linux_swap_strip_spaces
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:291,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:294,1
    - Dst: fu_linux_swap_verify_partition
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:296,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:298,1
    - Dst: fu_path_store_build_filename
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:302,1
    - Dst: fu_linux_swap_verify_file
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:309,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:312,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:316,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - pstore
    - buf
    - bufsz
    - error
    argTypes:
    - FuPathStore*
    - gchar*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 317
    functionName: fu_linux_swap_new
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap.c
    functionUses: 0
    functionsReached:
    - fu_strsplit
    - g_strcmp0
    - g_utf8_strlen
    - g_steal_pointer
    - fu_linux_swap_verify_partition
    - g_object_new
    - strlen
    - g_strv_length
    - fu_linux_swap_strip_spaces
    - fu_linux_swap_verify_file
    - g_warning
    - g_auto
    - fu_path_store_build_filename
    - g_autoptr
    linkageType: ''
    returnType: FuLinuxSwap
    signature: 'FuLinuxSwap *

      fu_linux_swap_new(FuPathStore *pstore, 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:323,1
    - Dst: FU_IS_LINUX_SWAP
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLinuxSwap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: fu_linux_swap_get_encrypted
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_LINUX_SWAP
    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:330,1
    - Dst: FU_IS_LINUX_SWAP
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLinuxSwap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: fu_linux_swap_get_enabled
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_LINUX_SWAP
    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: 337
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 337
    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: 342
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 342
    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_path_store_new
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:18,1
    - Dst: fu_linux_swap_new
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:21,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:22,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:23,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:24,1
    - Dst: fu_linux_swap_get_enabled
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:24,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:25,1
    - Dst: fu_linux_swap_get_encrypted
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 13
    functionDepth: 5
    functionLinenumber: 13
    functionLinenumberEnd: 26
    functionName: fu_linux_swap_none_func
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_linux_swap_get_encrypted
    - fu_linux_swap_new
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_false
    - fu_linux_swap_get_enabled
    - g_autoptr
    - fu_path_store_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:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:32,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:33,1
    - Dst: fu_linux_swap_new
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:36,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_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:45,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:46,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:47,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:48,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:49,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:52,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:53,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 54
    functionName: fu_linux_swap_plain_func
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_linux_swap_new
    - g_assert_nonnull
    - g_assert_no_error
    - g_error_matches
    - g_test_skip
    - g_autoptr
    - fu_path_store_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:59,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:60,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:61,1
    - Dst: fu_linux_swap_new
      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:69,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:70,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:71,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:72,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:73,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:74,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:77,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 56
    functionDepth: 5
    functionLinenumber: 56
    functionLinenumberEnd: 79
    functionName: fu_linux_swap_encrypted_func
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_linux_swap_new
    - g_assert_nonnull
    - g_assert_no_error
    - g_error_matches
    - g_test_skip
    - g_autoptr
    - fu_path_store_new
    linkageType: ''
    returnType: void
    signature: void fu_linux_swap_encrypted_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:87,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:88,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:90,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:91,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:92,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:95,1
    - Dst: fu_linux_swap_block_has_crypt_below
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:97,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:98,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:99,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 101
    functionName: fu_linux_swap_dm_walker_lvm_on_luks_func
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_path_store_set_path
    - g_assert_no_error
    - g_file_test
    - fu_linux_swap_block_has_crypt_below
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - fu_path_store_new
    linkageType: ''
    returnType: void
    signature: void fu_linux_swap_dm_walker_lvm_on_luks_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:109,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:109,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:110,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:112,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:113,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:114,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:117,1
    - Dst: fu_linux_swap_block_has_crypt_below
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:119,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:120,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:121,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 123
    functionName: fu_linux_swap_dm_walker_direct_func
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_path_store_set_path
    - g_assert_no_error
    - g_file_test
    - fu_linux_swap_block_has_crypt_below
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - fu_path_store_new
    linkageType: ''
    returnType: void
    signature: void fu_linux_swap_dm_walker_direct_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:131,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:132,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:134,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:135,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:136,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:139,1
    - Dst: fu_linux_swap_block_has_crypt_below
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:141,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:142,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:143,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 145
    functionName: fu_linux_swap_dm_walker_plain_func
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_path_store_set_path
    - g_assert_no_error
    - g_file_test
    - g_assert_false
    - fu_linux_swap_block_has_crypt_below
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - fu_path_store_new
    linkageType: ''
    returnType: void
    signature: void fu_linux_swap_dm_walker_plain_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:150,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:151,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:152,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:153,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:154,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:155,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:157,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:158,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/linux-swap/fu-self-test.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 160
    functionName: main
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-self-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:35,1
    - Dst: FU_LINUX_SWAP_PLUGIN
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:36,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:39,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:42,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:43,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:49,1
    - Dst: g_file_monitor
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:50,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:53,1
    - Dst: G_FILE_MONITOR
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:53,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 58
    functionName: fu_linux_swap_plugin_startup
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c
    functionUses: 0
    functionsReached:
    - FU_LINUX_SWAP_PLUGIN
    - g_signal_connect
    - fu_context_build_filename
    - g_set_error_literal
    - fu_plugin_get_context
    - g_file_test
    - G_CALLBACK
    - g_file_monitor
    - g_file_new_for_path
    - G_FILE_MONITOR
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_linux_swap_plugin_startup(FuPlugin *plugin, FuProgress
      *progress, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:63,1
    - Dst: fu_context_get_path_store
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:64,1
    - Dst: FU_LINUX_SWAP_PLUGIN
      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:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:70,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:76,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:77,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:78,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:79,1
    - Dst: g_file_load_contents
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:82,1
    - Dst: g_file_get_path
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:83,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:84,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:85,1
    - Dst: fu_linux_swap_new
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:88,1
    - Dst: g_file_get_path
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:90,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:91,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:92,1
    - Dst: fu_linux_swap_get_enabled
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:97,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:98,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:99,1
    - Dst: fu_linux_swap_get_encrypted
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:104,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:105,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:106,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 60
    functionDepth: 5
    functionLinenumber: 60
    functionLinenumberEnd: 112
    functionName: fu_linux_swap_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c
    functionUses: 0
    functionsReached:
    - FU_LINUX_SWAP_PLUGIN
    - fu_linux_swap_get_encrypted
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_linux_swap_new
    - fu_plugin_security_attr_new
    - fu_plugin_get_context
    - g_file_load_contents
    - fu_context_get_path_store
    - g_file_get_path
    - g_warning
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - fu_linux_swap_get_enabled
    - g_autoptr
    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: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    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:122,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:124,1
    - Dst: g_file_monitor_cancel
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:126,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:127,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 130
    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_OBJECT_CLASS
    - g_file_monitor_cancel
    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:135,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLinuxSwapPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: fu_linux_swap_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/linux-swap/fu-linux-swap-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_linux_swap_plugin_class_init(FuLinuxSwapPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:24,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:25,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:27,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:29,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:31,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:32,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:33,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:35,1
    - Dst: FU_SMBIOS
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:36,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:36,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:37,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:38,1
    - Dst: fu_context_set_smbios
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:39,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:41,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:42,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:43,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:45,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:46,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:47,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:48,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:48,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:49,1
    - Dst: FU_IS_INTEL_ME_DEVICE
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:49,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:50,1
    - Dst: fu_intel_me_device_get_family
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:50,1
    - Dst: FU_INTEL_ME_DEVICE
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:50,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:54,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 16
    functionDepth: 6
    functionLinenumber: 16
    functionLinenumberEnd: 56
    functionName: fu_intel_me_smbios_subtype18_func
    functionSourceFile: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_nonnull
    - FU_SMBIOS
    - g_object_new
    - fu_progress_new
    - fu_context_set_smbios
    - fu_context_new_full
    - fu_context_load_quirks
    - g_ptr_array_index
    - fu_device_to_string
    - g_debug
    - fu_plugin_get_devices
    - g_assert_cmpint
    - fu_plugin_runner_coldplug
    - FU_IS_INTEL_ME_DEVICE
    - FU_INTEL_ME_DEVICE
    - fu_intel_me_device_get_family
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - fu_device_get_version
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_smbios_subtype18_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:66,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:66,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:67,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:69,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:70,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:71,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:73,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:74,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:75,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:77,1
    - Dst: FU_SMBIOS
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:78,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:78,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:79,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:80,1
    - Dst: fu_context_set_smbios
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:81,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:83,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:84,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:85,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:87,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:88,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:89,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:90,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:90,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:91,1
    - Dst: FU_IS_INTEL_ME_DEVICE
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:91,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:93,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 58
    functionDepth: 6
    functionLinenumber: 58
    functionLinenumberEnd: 95
    functionName: fu_intel_me_smbios_subtype30_func
    functionSourceFile: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_nonnull
    - FU_SMBIOS
    - g_object_new
    - fu_progress_new
    - fu_context_set_smbios
    - fu_context_new_full
    - fu_context_load_quirks
    - g_ptr_array_index
    - fu_device_to_string
    - g_debug
    - fu_plugin_get_devices
    - g_assert_cmpint
    - fu_plugin_runner_coldplug
    - FU_IS_INTEL_ME_DEVICE
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - fu_device_get_version
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_smbios_subtype30_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:100,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:101,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:102,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:103,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: main
    functionSourceFile: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - 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/intel-me-smbios/fu-intel-me-smbios-plugin.c:26,1
    - Dst: fu_struct_me_fvi_data_get_version
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:26,1
    - Dst: fu_struct_me_fvi_data_get_component_name
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:28,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:30,1
    - Dst: fu_struct_me_version_get_major
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:31,1
    - Dst: fu_struct_me_version_get_minor
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:32,1
    - Dst: fu_struct_me_version_get_patch
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:33,1
    - Dst: fu_struct_me_version_get_build
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:34,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:35,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - plugin
    - device
    - st_fvi
    - found
    - error
    argTypes:
    - FuPlugin*
    - FuIntelMeDevice*
    - FuStructMeFviData*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 40
    functionName: fu_intel_me_smbios_plugin_parse_fvi
    functionSourceFile: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c
    functionUses: 0
    functionsReached:
    - fu_struct_me_fvi_data_get_component_name
    - fu_device_set_version
    - fu_struct_me_version_get_patch
    - fu_struct_me_version_get_build
    - FU_DEVICE
    - g_strdup_printf
    - fu_struct_me_fvi_data_get_version
    - g_autoptr
    - fu_struct_me_version_get_minor
    - fu_struct_me_version_get_major
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_me_smbios_plugin_parse_fvi(FuPlugin *plugin,\n\t\t\t\t
      \   FuIntelMeDevice *device,\n\t\t\t\t    FuStructMeFviData *st_fvi,\n\t\t\t\t
      \   gboolean *found,\n\t\t\t\t    GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:51,1
    - Dst: fu_struct_smbios_structure_parse_bytes
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:53,1
    - Dst: fu_struct_smbios_structure_get_handle
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:61,1
    - Dst: fu_struct_smbios_structure_get_handle
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:62,1
    - Dst: fu_struct_me_fvi_header_parse_bytes
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:67,1
    - Dst: fu_struct_me_fvi_header_get_count
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:72,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:73,1
    - Dst: fu_struct_me_fvi_data_parse_bytes
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:74,1
    - Dst: fu_intel_me_smbios_plugin_parse_fvi
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:77,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - plugin
    - device
    - blob
    - found
    - error
    argTypes:
    - FuPlugin*
    - FuIntelMeDevice*
    - GBytes*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 84
    functionName: fu_intel_me_smbios_plugin_parse_dd_table
    functionSourceFile: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c
    functionUses: 0
    functionsReached:
    - fu_intel_me_smbios_plugin_parse_fvi
    - fu_struct_smbios_structure_get_handle
    - fu_struct_smbios_structure_parse_bytes
    - fu_struct_me_fvi_header_parse_bytes
    - fu_struct_me_fvi_data_parse_bytes
    - g_autoptr
    - fu_struct_me_fvi_header_get_count
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_me_smbios_plugin_parse_dd_table(FuPlugin *plugin,\n\t\t\t\t\t
      FuIntelMeDevice *device,\n\t\t\t\t\t GBytes *blob,\n\t\t\t\t\t gboolean *found,\n\t\t\t\t\t
      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:90,1
    - Dst: fu_context_get_smbios_data
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:92,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:96,1
    - Dst: fu_intel_me_smbios_plugin_parse_dd_table
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:98,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuIntelMeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 110
    functionName: fu_intel_me_smbios_plugin_parse_dd_tables
    functionSourceFile: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c
    functionUses: 0
    functionsReached:
    - fu_intel_me_smbios_plugin_parse_dd_table
    - g_set_error_literal
    - fu_plugin_get_context
    - fu_context_get_smbios_data
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_me_smbios_plugin_parse_dd_tables(FuPlugin *plugin,
      FuIntelMeDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:120,1
    - Dst: fu_struct_smbios_fwsts_record_parse_bytes
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:122,1
    - Dst: fu_struct_smbios_fwsts_record_get_component_name
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:129,1
    - Dst: fu_struct_smbios_fwsts_record_get_fwsts
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:130,1
    - Dst: fu_intel_me_device_set_hfsts
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - plugin
    - device
    - blob
    - offset
    - found
    - error
    argTypes:
    - FuPlugin*
    - FuIntelMeDevice*
    - GBytes*
    - gsize
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 135
    functionName: fu_intel_me_smbios_plugin_parse_fwsts_record
    functionSourceFile: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c
    functionUses: 0
    functionsReached:
    - fu_intel_me_device_set_hfsts
    - fu_struct_smbios_fwsts_record_get_component_name
    - fu_struct_smbios_fwsts_record_get_fwsts
    - g_autoptr
    - fu_struct_smbios_fwsts_record_parse_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_me_smbios_plugin_parse_fwsts_record(FuPlugin *plugin,\n\t\t\t\t\t
      \    FuIntelMeDevice *device,\n\t\t\t\t\t     GBytes *blob,\n\t\t\t\t\t     gsize
      offset,\n\t\t\t\t\t     gboolean *found,\n\t\t\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:145,1
    - Dst: fu_struct_smbios_fwsts_parse_bytes
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:147,1
    - Dst: fu_struct_smbios_fwsts_get_count
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:151,1
    - Dst: fu_intel_me_smbios_plugin_parse_fwsts_record
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - plugin
    - device
    - blob
    - found
    - error
    argTypes:
    - FuPlugin*
    - FuIntelMeDevice*
    - GBytes*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 166
    functionName: fu_intel_me_smbios_plugin_parse_db_table
    functionSourceFile: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c
    functionUses: 0
    functionsReached:
    - fu_struct_smbios_fwsts_parse_bytes
    - fu_struct_smbios_fwsts_get_count
    - g_autoptr
    - fu_intel_me_smbios_plugin_parse_fwsts_record
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_me_smbios_plugin_parse_db_table(FuPlugin *plugin,\n\t\t\t\t\t
      FuIntelMeDevice *device,\n\t\t\t\t\t GBytes *blob,\n\t\t\t\t\t gboolean *found,\n\t\t\t\t\t
      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:171,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:172,1
    - Dst: fu_context_get_smbios_data
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:175,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:179,1
    - Dst: fu_intel_me_smbios_plugin_parse_db_table
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:181,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuIntelMeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 193
    functionName: fu_intel_me_smbios_plugin_parse_db_tables
    functionSourceFile: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_plugin_get_context
    - fu_context_get_smbios_data
    - fu_intel_me_smbios_plugin_parse_db_table
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_me_smbios_plugin_parse_db_tables(FuPlugin *plugin,
      FuIntelMeDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:198,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:199,1
    - Dst: fu_intel_me_device_new
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:199,1
    - Dst: fu_intel_me_smbios_plugin_parse_dd_tables
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:202,1
    - Dst: fu_intel_me_smbios_plugin_parse_db_tables
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:206,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:210,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 212
    functionName: fu_intel_me_smbios_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c
    functionUses: 0
    functionsReached:
    - fu_intel_me_smbios_plugin_parse_db_tables
    - fu_plugin_get_context
    - FU_DEVICE
    - fu_intel_me_smbios_plugin_parse_dd_tables
    - fu_intel_me_device_new
    - g_autoptr
    - fu_plugin_add_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_me_smbios_plugin_coldplug(FuPlugin *plugin, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelMeSmbiosPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: fu_intel_me_smbios_plugin_init
    functionSourceFile: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_smbios_plugin_init(FuIntelMeSmbiosPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:222,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:223,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 227
    functionName: fu_intel_me_smbios_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_smbios_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelMeSmbiosPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: fu_intel_me_smbios_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_smbios_plugin_class_init(FuIntelMeSmbiosPluginClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:20,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:22,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:23,1
    - Dst: fu_efi_signature_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:24,1
    - Dst: fu_efi_signature_list_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:27,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:30,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:31,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:32,1
    - Dst: fu_bytes_from_string
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:36,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:38,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:39,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:40,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:40,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:41,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:41,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:42,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:43,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:44,1
    - Dst: fu_uefi_device_set_guid
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:47,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:47,1
    - Dst: fu_uefi_device_set_name
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:48,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:48,1
    - Dst: fu_uefi_device_set_efivar_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:49,1
    - Dst: FU_UEFI_DEVICE
      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:55,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:56,1
    - Dst: fu_uefi_device_set_efivar_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:59,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:59,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:65,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:66,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:69,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:70,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:71,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:72,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:72,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:73,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 16
    functionDepth: 6
    functionLinenumber: 16
    functionLinenumberEnd: 74
    functionName: fu_uefi_dbx_zero_func
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_bytes_from_string
    - g_assert_nonnull
    - fu_firmware_set_bytes
    - g_object_new
    - fu_context_new_full
    - fu_context_load_quirks
    - fu_device_probe
    - fu_device_get_version_raw
    - fu_firmware_add_image
    - g_assert_cmpint
    - FU_FIRMWARE
    - g_assert_cmpstr
    - fu_efi_signature_list_new
    - fu_uefi_device_set_guid
    - fu_uefi_device_set_efivar_bytes
    - g_assert_no_error
    - fu_device_get_version
    - fu_efi_signature_new
    - fu_uefi_device_set_name
    - g_assert_true
    - FU_UEFI_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_zero_func(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:90,1
    - Dst: fu_pefile_firmware_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:92,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:94,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:95,1
    - Dst: g_file_query_exists
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:96,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:98,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:99,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:102,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:104,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:105,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:106,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:108,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:109,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:110,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 76
    functionDepth: 5
    functionLinenumber: 76
    functionLinenumberEnd: 113
    functionName: fu_efi_image_func
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_pefile_firmware_new
    - fu_firmware_parse_file
    - g_assert_nonnull
    - g_prefix_error
    - g_assert_no_error
    - g_file_query_exists
    - g_strdup_printf
    - G_N_ELEMENTS
    - fu_firmware_get_checksum
    - g_test_skip
    - g_file_new_for_path
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_efi_image_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:119,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:121,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:122,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:123,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:124,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:129,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:130,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:131,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:135,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:136,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:138,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:139,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:140,1
    - Dst: fu_firmware_new_from_xml
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:142,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:143,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:144,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:146,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:147,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:148,1
    - Dst: fu_uefi_device_set_guid
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:150,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:150,1
    - Dst: fu_uefi_device_set_name
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:151,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:151,1
    - Dst: fu_uefi_device_set_efivar_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:152,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:152,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:158,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:159,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:161,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:162,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 115
    functionDepth: 6
    functionLinenumber: 115
    functionLinenumberEnd: 164
    functionName: fu_uefi_dbx_not_present_func
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_new_from_xml
    - fu_firmware_write
    - fu_device_probe
    - FU_UEFI_DEVICE
    - fu_uefi_device_set_efivar_bytes
    - g_file_get_contents
    - g_assert_nonnull
    - g_assert_no_error
    - g_object_new
    - fu_context_new_full
    - fu_context_load_quirks
    - g_assert_true
    - g_test_build_filename
    - fu_uefi_device_set_guid
    - g_autoptr
    - fu_uefi_device_set_name
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_not_present_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:169,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:170,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:171,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:172,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:173,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/uefi-dbx/fu-self-test.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 175
    functionName: main
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-self-test.c
    functionUses: 3
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uname
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:32,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:34,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 40
    functionName: fu_uefi_dbx_get_efi_arch
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c
    functionUses: 0
    functionsReached:
    - uname
    - G_N_ELEMENTS
    - g_strcmp0
    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:45,1
    - Dst: fu_pefile_firmware_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:45,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:46,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:46,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:47,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fn
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: fu_uefi_dbx_get_authenticode_hash
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c
    functionUses: 0
    functionsReached:
    - fu_pefile_firmware_new
    - fu_firmware_parse_file
    - fu_firmware_get_checksum
    - g_file_new_for_path
    - g_autoptr
    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:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:61,1
    - Dst: fu_uefi_dbx_get_authenticode_hash
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:64,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:66,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:71,1
    - Dst: fu_firmware_get_image_by_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:72,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:72,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:74,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: 85
      start: 52
    functionDepth: 6
    functionLinenumber: 52
    functionLinenumberEnd: 85
    functionName: fu_uefi_dbx_signature_list_validate_filename
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - FU_FIRMWARE
    - fu_firmware_get_image_by_checksum
    - g_autoptr
    - fu_uefi_dbx_get_authenticode_hash
    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:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:94,1
    - Dst: fu_context_get_esp_files
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:96,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:102,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:104,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:104,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:108,1
    - Dst: fu_uefi_dbx_signature_list_validate_filename
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:109,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - siglist
    - flags
    - error
    argTypes:
    - FuContext*
    - FuEfiSignatureList*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 87
    functionDepth: 8
    functionLinenumber: 87
    functionLinenumberEnd: 118
    functionName: fu_uefi_dbx_signature_list_validate
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-common.c
    functionUses: 0
    functionsReached:
    - fu_context_get_esp_files
    - fu_firmware_get_filename
    - g_steal_pointer
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    - g_ptr_array_index
    - fu_uefi_dbx_signature_list_validate_filename
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:27,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:30,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:35,1
    - Dst: fu_uefi_device_set_efivar_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:36,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - install_flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 51
    functionName: fu_uefi_dbx_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_DEVICE
    - fu_uefi_device_set_efivar_bytes
    - fu_firmware_get_bytes
    - fu_progress_set_status
    - g_autoptr
    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:57,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:57,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:60,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:60,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:61,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:61,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:70,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:70,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:71,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:73,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:74,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - csum
    - error
    argTypes:
    - FuUefiDbxDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 79
    functionName: fu_uefi_dbx_device_set_checksum
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - fu_device_add_instance_strup
    - FU_DEVICE
    - fu_device_get_version
    - g_strdup_printf
    - fu_device_build_instance_id_full
    - fu_device_add_checksum
    - fu_device_set_summary
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_dbx_device_set_checksum(FuUefiDbxDevice *self, const
      gchar *csum, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:84,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:85,1
    - Dst: fu_efi_signature_list_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:87,1
    - Dst: fu_uefi_device_get_efivar_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:91,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:91,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:98,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:99,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:99,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:102,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:103,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:105,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:111,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:116,1
    - Dst: fu_efi_signature_get_owner
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:117,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:119,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:119,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:121,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:122,1
    - Dst: fu_uefi_dbx_device_set_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:127,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:135,1
    - Dst: fu_efi_signature_get_owner
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:136,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:137,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:138,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:138,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiDbxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 81
    functionDepth: 6
    functionLinenumber: 81
    functionLinenumberEnd: 143
    functionName: fu_uefi_dbx_device_ensure_checksum
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_debug
    - fu_firmware_get_images
    - fu_firmware_parse_bytes
    - g_propagate_error
    - fu_uefi_device_get_efivar_bytes
    - fu_device_set_version_raw
    - fu_efi_signature_get_owner
    - g_ptr_array_new
    - FU_FIRMWARE
    - fu_uefi_dbx_device_set_checksum
    - FU_DEVICE
    - fu_efi_signature_list_new
    - g_strcmp0
    - g_steal_pointer
    - g_error_matches
    - fu_firmware_get_checksum
    - FU_UEFI_DEVICE
    - g_autoptr
    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_UEFI_DBX_DEVICE
    - fu_device_add_private_flag
    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: 1
    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_get_version
    - fu_device_set_version_lowest
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_device_version_notify_cb(FuDevice *device, GParamSpec
      *pspec, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:162,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: fu_uefi_dbx_device_vendor_notify_cb
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_vendor
    - fu_device_build_vendor_id
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_device_vendor_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:174,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:175,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:175,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:176,1
    - Dst: fu_efi_signature_list_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:176,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:179,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:180,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:186,1
    - Dst: fu_uefi_dbx_signature_list_validate
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:187,1
    - Dst: FU_EFI_SIGNATURE_LIST
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:188,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:191,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:199,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:201,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: 202
      start: 167
    functionDepth: 9
    functionLinenumber: 167
    functionLinenumberEnd: 202
    functionName: fu_uefi_dbx_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_parse_stream
    - g_steal_pointer
    - fu_device_get_context
    - g_prefix_error_literal
    - fu_firmware_new
    - FU_EFI_SIGNATURE_LIST
    - fu_efi_signature_list_new
    - fu_progress_set_status
    - g_autoptr
    - 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:207,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:208,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:209,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:209,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:210,1
    - Dst: fu_device_read_firmware
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:213,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:218,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:221,1
    - Dst: fu_uefi_dbx_get_efi_arch
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:221,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:223,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:225,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:228,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:228,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:231,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:232,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:238,1
    - Dst: fu_uefi_dbx_device_ensure_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 204
    functionDepth: 7
    functionLinenumber: 204
    functionLinenumberEnd: 241
    functionName: fu_uefi_dbx_device_probe
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - fu_uefi_dbx_device_ensure_checksum
    - fu_device_add_instance_strup
    - fu_device_build_instance_id
    - FU_FIRMWARE
    - g_prefix_error_literal
    - fu_firmware_get_images
    - fu_progress_new
    - fu_device_build_instance_id_full
    - fu_uefi_dbx_get_efi_arch
    - fu_device_read_firmware
    - fu_firmware_get_checksum
    - g_autoptr
    - FU_UEFI_DBX_DEVICE
    - g_ptr_array_index
    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:246,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:247,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:248,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:249,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:250,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 252
    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 *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint64
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:257,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: fu_uefi_dbx_device_convert_version
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint64
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_dbx_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_physical_id
      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_set_name
      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_summary
      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_add_protocol
      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_version_format
      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_set_install_duration
      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_firmware_gtype
      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_icon
      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_set_required_free
      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_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_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: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:281,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:281,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:282,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:282,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:283,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:283,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:285,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:287,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:287,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiDbxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 260
    functionDepth: 6
    functionLinenumber: 260
    functionLinenumberEnd: 291
    functionName: fu_uefi_dbx_device_init
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_physical_id
    - g_signal_connect
    - fu_device_add_icon
    - fu_device_add_private_flag
    - fu_device_set_required_free
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_summary
    - FWUPD_DEVICE
    - G_CALLBACK
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_device_init(FuUefiDbxDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiDbxDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 303
    functionName: fu_uefi_dbx_device_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_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: 5
    functionLinenumber: 29
    functionLinenumberEnd: 45
    functionName: fu_dbxtool_get_siglist_system
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c
    functionUses: 0
    functionsReached:
    - fu_efivars_get_data_bytes
    - g_steal_pointer
    - fu_context_get_efivars
    - fu_firmware_parse_bytes
    - fu_efi_signature_list_new
    - g_autoptr
    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: 5
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: fu_dbxtool_get_siglist_local
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c
    functionUses: 0
    functionsReached:
    - fu_firmware_parse_file
    - g_steal_pointer
    - fu_efi_signature_list_new
    - g_file_new_for_path
    - g_autoptr
    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
    - fu_firmware_get_image_by_checksum
    - fu_firmware_get_images
    - fu_firmware_get_checksum
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dbxtool_siglist_inclusive(FuFirmware *outer, FuFirmware
      *inner)
  - BBCount: 5
    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:85,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - guid
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 89
    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:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:101,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:102,1
    - Dst: N_
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:112,1
    - Dst: N_
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:120,1
    - Dst: N_
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:128,1
    - Dst: N_
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:136,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:146,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:155,1
    - Dst: N_
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:162,1
    - Dst: setlocale
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:166,1
    - Dst: bindtextdomain
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:168,1
    - Dst: bind_textdomain_codeset
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:169,1
    - Dst: textdomain
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:170,1
    - Dst: g_option_context_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:173,1
    - Dst: g_option_context_set_description
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:174,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:177,1
    - Dst: g_set_application_name
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:180,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:180,1
    - Dst: g_option_context_add_main_entries
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:181,1
    - Dst: g_option_context_parse
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:182,1
    - Dst: g_print
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:184,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:184,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:190,1
    - Dst: g_log_set_handler
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:192,1
    - Dst: fu_context_load_path_store
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:196,1
    - Dst: fu_context_set_esp_location
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:200,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:205,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:206,1
    - Dst: fu_dbxtool_get_siglist_local
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:208,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:210,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:212,1
    - Dst: fu_dbxtool_get_siglist_system
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:217,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:219,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:221,1
    - Dst: g_print
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:228,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:228,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:228,1
    - Dst: fu_firmware_get_images
      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_ptr_array_index
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:233,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:236,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:236,1
    - Dst: g_print
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:237,1
    - Dst: fu_dbxtool_guid_to_string
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:239,1
    - Dst: fu_efi_signature_get_owner
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:239,1
    - Dst: fu_efi_signature_kind_to_string
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:240,1
    - Dst: fu_efi_signature_get_kind
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:240,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:243,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:243,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:243,1
    - Dst: getuid
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:249,1
    - Dst: geteuid
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:249,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:251,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:251,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:257,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:258,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:259,1
    - Dst: fu_efi_signature_list_new
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:259,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:260,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:264,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:264,1
    - Dst: g_print
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:269,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:269,1
    - Dst: fu_dbxtool_get_siglist_system
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:270,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:273,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:273,1
    - Dst: g_print
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:278,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:278,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:279,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:282,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:282,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:285,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:291,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:291,1
    - Dst: fu_dbxtool_siglist_inclusive
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:296,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:297,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:299,1
    - Dst: g_print
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:306,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:306,1
    - Dst: fu_uefi_dbx_signature_list_validate
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:307,1
    - Dst: FU_EFI_SIGNATURE_LIST
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:308,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:311,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:314,1
    - Dst: g_print
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:321,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:321,1
    - Dst: fu_efivars_set_data_bytes
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:322,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:334,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:334,1
    - Dst: g_print
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:339,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:339,1
    - Dst: g_option_context_get_help
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:344,1
    - Dst: g_printerr
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:346,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c:346,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 103
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 91
    functionDepth: 9
    functionLinenumber: 91
    functionLinenumberEnd: 348
    functionName: main
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-dbxtool.c
    functionUses: 4
    functionsReached:
    - fu_context_new
    - fu_dbxtool_guid_to_string
    - g_setenv
    - textdomain
    - g_print
    - g_option_context_add_main_entries
    - _
    - geteuid
    - g_set_application_name
    - g_option_context_new
    - g_ptr_array_index
    - fu_dbxtool_get_siglist_local
    - N_
    - fu_context_load_path_store
    - fu_context_set_esp_location
    - bindtextdomain
    - fu_firmware_get_images
    - FU_EFI_SIGNATURE_LIST
    - fu_context_get_efivars
    - fu_firmware_parse_bytes
    - fu_efi_signature_kind_to_string
    - fu_efivars_set_data_bytes
    - fu_dbxtool_siglist_inclusive
    - fu_dbxtool_get_siglist_system
    - g_option_context_parse
    - fu_efi_signature_get_kind
    - g_info
    - fu_efi_signature_get_owner
    - FU_FIRMWARE
    - g_log_set_handler
    - fu_efi_signature_list_new
    - bind_textdomain_codeset
    - fu_uefi_dbx_signature_list_validate
    - g_option_context_get_help
    - fu_bytes_get_contents
    - getuid
    - g_option_context_set_description
    - g_printerr
    - fu_firmware_get_checksum
    - fu_firmware_get_version
    - g_autoptr
    - setlocale
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:21,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:23,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:24,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 18
    functionDepth: 5
    functionLinenumber: 18
    functionLinenumberEnd: 31
    functionName: fu_uefi_dbx_plugin_device_created
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_inhibit
    - fu_plugin_get_context
    - 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: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    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_PLUGIN
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:41,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:43,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:44,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:46,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:47,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:48,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:49,1
    - Dst: fu_context_get_default_esp
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:52,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:54,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:55,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:56,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:57,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 62
    functionName: fu_uefi_dbx_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_add_rule
    - g_info
    - fu_context_get_default_esp
    - fu_plugin_add_flag
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_device_gtype
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiDbxPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: fu_uefi_dbx_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-plugin.c
    functionUses: 0
    functionsReached:
    - 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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-plugin.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: fu_amd_pmc_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/amd-pmc/fu-amd-pmc-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdPmcPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    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_get_backend_id
    - fu_device_add_instance_id
    - fu_device_set_version
    - fu_strtoull
    - g_set_error_literal
    - g_steal_pointer
    - g_strdup_printf
    - fu_device_set_summary
    - fu_udev_device_read_sysfs
    - g_error_matches
    - FU_UDEV_DEVICE
    - g_propagate_error
    - g_autoptr
    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_add_flag
    - fu_device_set_physical_id
    - fu_device_add_icon
    - fu_device_add_private_flag
    - fu_device_set_name
    - FU_DEVICE
    - fu_device_set_vendor
    - fu_device_set_version_format
    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: 3
    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:
    - fu_heci_device_read_file_ex
    - g_set_error
    - FU_HECI_DEVICE
    - FU_DEVICE
    - fu_byte_array_to_string
    - fu_device_add_checksum
    - g_str_has_prefix
    - g_autoptr
    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_literal
      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: 5
    functionLinenumber: 56
    functionLinenumberEnd: 101
    functionName: fu_intel_mchi_device_setup
    functionSourceFile: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-device.c
    functionUses: 0
    functionsReached:
    - fu_mei_device_connect
    - fu_intel_mchi_device_add_checksum_for_id
    - g_debug
    - g_set_error_literal
    - FU_MEI_DEVICE
    - g_prefix_error_literal
    - FU_INTEL_MCHI_DEVICE
    - g_error_matches
    - G_N_ELEMENTS
    - g_warning
    - g_autoptr
    - fu_device_get_checksums
    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
    - fwupd_security_attr_set_result
    - fu_device_has_private_flag
    - FU_DEVICE
    - FU_INTEL_MCHI_DEVICE
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    - 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_set_logical_id
    - fu_device_add_flag
    - fu_device_register_private_flag
    - g_signal_connect
    - fu_device_add_private_flag
    - fu_device_add_icon
    - fu_device_set_name
    - FU_DEVICE
    - FWUPD_DEVICE
    - G_CALLBACK
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-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: 2
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: fu_intel_mchi_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/intel-mchi/fu-intel-mchi-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelMchiPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    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:
    - g_return_val_if_fail
    - FU_IS_ELANTP_HAPTIC_FIRMWARE
    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_xmlb_builder_insert_kx
    - FU_ELANTP_HAPTIC_FIRMWARE
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HAPTIC_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:53,1
    - Dst: fu_struct_elantp_haptic_firmware_hdr_parse_stream
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:55,1
    - Dst: fu_struct_elantp_haptic_firmware_hdr_get_ver_y
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:58,1
    - Dst: fu_struct_elantp_haptic_firmware_hdr_get_ver_d
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:59,1
    - Dst: fu_struct_elantp_haptic_firmware_hdr_get_ver_sm
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:60,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:61,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:67,1
    - Dst: fu_struct_elantp_haptic_firmware_hdr_get_ver_y
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:68,1
    - Dst: fu_struct_elantp_haptic_firmware_hdr_get_ver_sm
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:69,1
    - Dst: fu_struct_elantp_haptic_firmware_hdr_get_ver_d
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:70,1
    - Dst: fu_struct_elantp_haptic_firmware_hdr_get_ver_sm
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:71,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:72,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 77
    functionName: fu_elantp_haptic_firmware_parse
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_elantp_haptic_firmware_hdr_parse_stream
    - fu_struct_elantp_haptic_firmware_hdr_get_ver_sm
    - fu_struct_elantp_haptic_firmware_hdr_get_ver_y
    - fu_firmware_set_version
    - g_set_error_literal
    - FU_FIRMWARE
    - g_strdup_printf
    - fu_struct_elantp_haptic_firmware_hdr_get_ver_d
    - g_autoptr
    - 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: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    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:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElantpHapticFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 91
    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_ELANTP_I2C_DEVICE
      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_hex
      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
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: fu_elantp_i2c_device_to_string
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - FU_ELANTP_I2C_DEVICE
    - fwupd_codec_string_append_hex
    - 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:59,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:61,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:61,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:64,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:67,1
    - Dst: fu_io_channel_write_raw
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:70,1
    - Dst: strlen
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - self
    - fn
    - buf
    - error
    argTypes:
    - FuElantpI2cDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 76
    functionName: fu_elantp_i2c_device_writeln
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_io_channel_new_file
    - g_set_error
    - fu_io_channel_write_raw
    - FU_DEVICE
    - strlen
    - fu_device_query_file_exists
    - g_autoptr
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:81,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:82,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:85,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:93,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:93,1
    - Dst: fu_elantp_i2c_device_writeln
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:96,1
    - Dst: fu_elantp_i2c_device_writeln
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:98,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpI2cDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 78
    functionDepth: 5
    functionLinenumber: 78
    functionLinenumberEnd: 103
    functionName: fu_elantp_i2c_device_rebind_driver
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_elantp_i2c_device_writeln
    - g_debug
    - g_set_error_literal
    - FU_DEVICE
    - fu_device_has_flag
    - g_build_filename
    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:108,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:111,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: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:112,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:112,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:112,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:113,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:117,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:117,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:120,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:120,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:121,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:127,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:128,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:128,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:130,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:130,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:130,1
    - Dst: fu_udev_device_set_physical_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:133,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 134
    functionName: fu_elantp_i2c_device_probe
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_device_file
    - g_strcmp0
    - g_path_get_basename
    - fu_udev_device_get_sysfs_path
    - g_set_error
    - FU_ELANTP_I2C_DEVICE
    - g_set_error_literal
    - fu_udev_device_get_driver
    - fu_udev_device_set_physical_id
    - FU_UDEV_DEVICE
    - fu_udev_device_get_subsystem
    - g_build_filename
    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:144,1
    - Dst: fu_udev_device_pwrite
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:145,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:145,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:149,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:149,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:151,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: 153
      start: 136
    functionDepth: 4
    functionLinenumber: 136
    functionLinenumberEnd: 153
    functionName: fu_elantp_i2c_device_send_cmd
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_pwrite
    - fu_dump_raw
    - FU_UDEV_DEVICE
    - fu_udev_device_pread
    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:159,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:160,1
    - Dst: fu_elantp_i2c_device_send_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - self
    - reg
    - cmd
    - error
    argTypes:
    - FuElantpI2cDevice*
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 5
    functionLinenumber: 155
    functionLinenumberEnd: 162
    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:172,1
    - Dst: fu_elantp_i2c_device_send_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:173,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: 174
      start: 164
    functionDepth: 5
    functionLinenumber: 164
    functionLinenumberEnd: 174
    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:180,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:185,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:188,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:193,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:193,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:195,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpI2cDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 176
    functionDepth: 6
    functionLinenumber: 176
    functionLinenumberEnd: 198
    functionName: fu_elantp_i2c_device_ensure_iap_ctrl
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_elantp_i2c_device_read_cmd
    - g_prefix_error_literal
    - fu_device_remove_flag
    - FU_DEVICE
    - fu_memread_uint16_safe
    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:203,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:214,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:219,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:222,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:224,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:226,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:229,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:230,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:231,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:235,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:240,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:243,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:248,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:253,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:256,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:260,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:263,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:269,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:275,1
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:283,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:284,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:287,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:292,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:295,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:304,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:305,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:306,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:307,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:311,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:316,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:319,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:322,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:327,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:330,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:338,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:339,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:345,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:352,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:353,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:354,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:356,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:357,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:359,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:367,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:371,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:378,1
    - Dst: fu_elantp_i2c_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:381,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 90
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 200
    functionDepth: 7
    functionLinenumber: 200
    functionLinenumberEnd: 386
    functionName: fu_elantp_i2c_device_setup
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_version_from_uint16
    - fu_device_set_version_raw
    - fu_device_build_instance_id
    - fu_elantp_i2c_device_read_cmd
    - FU_ELANTP_I2C_DEVICE
    - fu_device_build_vendor_id_u16
    - fu_device_set_version_bootloader
    - fu_device_add_instance_u8
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - fu_device_add_instance_str
    - g_set_error
    - fu_device_build_instance_id_full
    - fu_memread_uint16_safe
    - fu_elantp_i2c_device_ensure_iap_ctrl
    - fu_device_set_firmware_size
    - 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:391,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:395,1
    - Dst: fu_i2c_device_set_address
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:399,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:399,1
    - Dst: fu_udev_device_pwrite
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:403,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 388
    functionDepth: 5
    functionLinenumber: 388
    functionLinenumberEnd: 404
    functionName: fu_elantp_i2c_device_open
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - FU_ELANTP_I2C_DEVICE
    - fu_udev_device_pwrite
    - FU_I2C_DEVICE
    - FU_UDEV_DEVICE
    - FU_DEVICE_CLASS
    - fu_i2c_device_set_address
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_i2c_device_open(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_I2C_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:412,1
    - Dst: fu_elantp_firmware_get_module_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:416,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:416,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 429
    functionName: fu_elantp_i2c_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - FU_ELANTP_I2C_DEVICE
    - fu_elantp_firmware_get_module_id
    - FU_ELANTP_FIRMWARE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_i2c_device_check_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_I2C_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:438,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:439,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:444,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:445,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:446,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:449,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:450,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:451,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:452,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:453,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:454,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:457,1
    - Dst: fu_elantp_i2c_device_detach
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:462,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:462,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:464,1
    - Dst: fu_elantp_firmware_get_iap_addr
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:467,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:469,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:469,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:472,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:476,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:479,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:480,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:483,1
    - Dst: fu_sum16w
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:487,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:487,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:487,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:492,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:495,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:496,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:498,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:502,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:502,1
    - Dst: fu_elantp_i2c_device_send_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:504,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:506,1
    - Dst: fu_elantp_i2c_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:510,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:513,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:521,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:525,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:525,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:527,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:529,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:532,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:538,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:546,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:554,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:557,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:559,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:560,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 60
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 431
    functionDepth: 7
    functionLinenumber: 431
    functionLinenumberEnd: 562
    functionName: fu_elantp_i2c_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - FU_ELANTP_I2C_DEVICE
    - fu_progress_add_flag
    - fu_chunk_get_data_sz
    - fu_device_sleep_full
    - g_autoptr
    - fu_elantp_i2c_device_detach
    - fu_firmware_get_bytes
    - fu_elantp_i2c_device_read_cmd
    - fu_elantp_i2c_device_send_cmd
    - FU_ELANTP_FIRMWARE
    - fu_progress_set_percentage_full
    - fu_elantp_i2c_device_ensure_iap_ctrl
    - fu_progress_add_step
    - fu_device_sleep
    - fu_progress_step_done
    - g_malloc0
    - fu_chunk_get_data
    - fu_bytes_new_offset
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_memread_uint16_safe
    - fu_progress_set_id
    - g_set_error
    - fu_chunk_array_index
    - fu_elantp_firmware_get_iap_addr
    - g_bytes_get_size
    - fu_memcpy_safe
    - fu_sum16w
    - fu_chunk_array_new_from_bytes
    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_device_has_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:573,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:573,1
    - Dst: g_info
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:574,1
    - Dst: fu_elantp_i2c_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:575,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:580,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:580,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:583,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:588,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:591,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:594,1
    - Dst: g_prefix_error_literal
      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:602,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:614,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:620,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:626,1
    - Dst: fu_elantp_i2c_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:645,1
    - Dst: fu_elantp_i2c_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:650,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:655,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:658,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:666,1
    - Dst: fu_elantp_i2c_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:674,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:676,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:676,1
    - Dst: fu_elantp_i2c_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:677,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:680,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 65
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuElantpI2cDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 564
    functionDepth: 7
    functionLinenumber: 564
    functionLinenumberEnd: 689
    functionName: fu_elantp_i2c_device_detach
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 1
    functionsReached:
    - g_info
    - fu_elantp_i2c_device_write_cmd
    - fu_device_sleep
    - fu_elantp_i2c_device_read_cmd
    - g_set_error_literal
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_device_has_flag
    - fu_memread_uint16_safe
    - fu_elantp_i2c_device_ensure_iap_ctrl
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_i2c_device_detach(FuElantpI2cDevice *self, FuProgress
      *progress, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_I2C_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:694,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:697,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:698,1
    - Dst: fu_elantp_i2c_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:703,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:708,1
    - Dst: fu_elantp_i2c_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:709,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:713,1
    - Dst: fu_elantp_i2c_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:717,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:720,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:721,1
    - Dst: fu_elantp_i2c_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:723,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:724,1
    - Dst: fu_elantp_i2c_device_rebind_driver
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:728,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:729,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:732,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:734,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:734,1
    - Dst: fu_elantp_i2c_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:739,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:740,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 691
    functionDepth: 7
    functionLinenumber: 691
    functionLinenumberEnd: 747
    functionName: fu_elantp_i2c_device_attach
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_elantp_i2c_device_write_cmd
    - fu_device_sleep
    - FU_ELANTP_I2C_DEVICE
    - g_steal_pointer
    - fu_elantp_i2c_device_rebind_driver
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - fu_device_has_flag
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    - fu_elantp_i2c_device_ensure_iap_ctrl
    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:755,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:758,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:759,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:764,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:765,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:770,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:771,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:776,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 781
    functionName: fu_elantp_i2c_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - FU_ELANTP_I2C_DEVICE
    - g_strcmp0
    - fu_strtoull
    - g_set_error_literal
    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:786,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:787,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:788,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:789,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:790,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:791,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 783
    functionDepth: 3
    functionLinenumber: 783
    functionLinenumberEnd: 793
    functionName: fu_elantp_i2c_device_set_progress
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_elantp_i2c_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:798,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 799
    functionName: fu_elantp_i2c_device_convert_version
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16
    - fu_device_get_version_format
    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:804,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:804,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:805,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:805,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:806,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:806,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:807,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:807,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:808,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:808,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:809,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:809,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:810,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:810,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:811,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:811,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:812,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:812,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:813,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:813,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:814,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:814,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:815,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpI2cDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 801
    functionDepth: 6
    functionLinenumber: 801
    functionLinenumberEnd: 816
    functionName: fu_elantp_i2c_device_init
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_add_icon
    - fu_device_add_private_flag
    - fu_device_set_name
    - FU_DEVICE
    - fu_device_set_vendor
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    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:821,1
    - Dst: g_free
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:822,1
    - Dst: g_free
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:823,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 825
    functionName: fu_elantp_i2c_device_finalize
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    functionUses: 0
    functionsReached:
    - FU_ELANTP_I2C_DEVICE
    - g_free
    - G_OBJECT_CLASS
    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:830,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElantpI2cDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 844
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:40,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:41,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:42,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:43,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:44,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:45,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:46,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:47,1
    - Dst: fwupd_codec_string_append_hex
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: fu_elantp_hid_haptic_device_to_string
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_ELANTP_HID_HAPTIC_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_elantp_hid_haptic_device_to_string(FuDevice *device, guint
      idt, GString *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:57,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:57,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:60,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:60,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:65,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:72,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:74,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:79,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpHidHapticDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 52
    functionDepth: 6
    functionLinenumber: 52
    functionLinenumberEnd: 84
    functionName: fu_elantp_hid_haptic_device_ensure_iap_ctrl
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_prefix_error_literal
    - FU_ELANTP_HID_DEVICE
    - FU_DEVICE
    - fu_device_remove_flag
    - fu_device_get_proxy
    - fu_elantp_hid_device_read_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_haptic_device_ensure_iap_ctrl(FuElantpHidHapticDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:91,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:91,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:94,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:94,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:99,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:103,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpHidHapticDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 112
    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_literal
    - g_prefix_error_literal
    - FU_ELANTP_HID_DEVICE
    - FU_DEVICE
    - fu_device_get_proxy
    - fu_elantp_hid_device_read_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_haptic_device_ensure_eeprom_iap_ctrl(FuElantpHidHapticDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:120,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:120,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:123,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:123,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:128,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:132,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpHidHapticDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 151
    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_literal
    - FU_ELANTP_HID_DEVICE
    - FU_DEVICE
    - fu_device_get_proxy
    - fu_elantp_hid_device_read_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_haptic_device_get_haptic_driver_ic(FuElantpHidHapticDevice
      *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:163,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:163,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:166,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:166,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:171,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:174,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:174,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:176,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:176,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:181,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:188,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:188,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:193,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:196,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:196,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:198,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:198,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:203,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:210,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:210,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:212,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:213,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:213,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpHidHapticDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 217
    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_device_sleep
    - g_prefix_error_literal
    - FU_ELANTP_HID_DEVICE
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_get_proxy
    - fu_elantp_hid_device_read_cmd
    - fu_elantp_hid_device_write_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_haptic_device_get_version(FuElantpHidHapticDevice
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:232,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:232,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:235,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:235,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:240,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:243,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:243,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:248,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:252,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - self
    - tp_ic_type
    - tp_iap_ver
    - error
    argTypes:
    - FuElantpHidHapticDevice*
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 262
    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
    - g_prefix_error_literal
    - FU_ELANTP_HID_DEVICE
    - FU_DEVICE
    - fu_device_get_proxy
    - fu_elantp_hid_device_read_cmd
    - fu_elantp_hid_device_write_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_haptic_device_write_fw_password(FuElantpHidHapticDevice
      *self,\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: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:274,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:279,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:279,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:282,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:282,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:287,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:290,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:290,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:295,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:299,1
    - Dst: fu_elantp_hid_haptic_device_write_fw_password
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:306,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:311,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:311,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:316,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:319,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:319,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:324,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:327,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:327,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:332,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:335,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:335,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:340,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:344,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 355
    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_write_fw_password
    - g_prefix_error_literal
    - FU_ELANTP_HID_DEVICE
    - FU_DEVICE
    - fu_device_get_proxy
    - fu_elantp_hid_device_read_cmd
    - fu_elantp_hid_device_write_cmd
    - FU_ELANTP_HID_HAPTIC_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_haptic_device_write_checksum_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:362,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:366,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:366,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:370,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:370,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:375,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:378,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:378,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:383,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:387,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 396
    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
    - g_prefix_error_literal
    - FU_ELANTP_HID_DEVICE
    - FU_DEVICE
    - fu_device_get_proxy
    - fu_elantp_hid_device_read_cmd
    - fu_elantp_hid_device_write_cmd
    - FU_ELANTP_HID_HAPTIC_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_haptic_device_wait_calc_checksum_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: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:404,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:406,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:406,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:409,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:409,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:415,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:415,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:421,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:428,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:428,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:434,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:434,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:439,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - self
    - checksum
    - error
    argTypes:
    - FuElantpHidHapticDevice*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 444
    functionName: fu_elantp_hid_haptic_device_get_checksum
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_get_proxy
    - g_prefix_error_literal
    - FU_ELANTP_HID_DEVICE
    - FU_DEVICE
    - fu_device_retry_full
    - g_autoptr
    - fu_elantp_hid_device_read_cmd
    - fu_elantp_hid_device_write_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_haptic_device_get_checksum(FuElantpHidHapticDevice
      *self,\n\t\t\t\t\t guint16 *checksum,\n\t\t\t\t\t GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:449,1
    - Dst: fu_elantp_hid_haptic_device_get_haptic_driver_ic
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:455,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:456,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:461,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:461,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:464,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:464,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:469,1
    - Dst: fu_elantp_hid_haptic_device_get_version
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:474,1
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:477,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:478,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:481,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:481,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:486,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:491,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:492,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:493,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:504,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:504,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:509,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:513,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:513,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:518,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:527,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:528,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:534,1
    - Dst: fu_device_add_instance_str
      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: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:547,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:555,1
    - Dst: fu_elantp_hid_haptic_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:558,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 446
    functionDepth: 7
    functionLinenumber: 446
    functionLinenumberEnd: 563
    functionName: fu_elantp_hid_haptic_device_setup
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_elantp_hid_haptic_device_get_haptic_driver_ic
    - fu_version_from_uint16
    - fu_device_add_instance_u8
    - fu_device_build_instance_id
    - fu_device_set_version_bootloader
    - fu_elantp_hid_haptic_device_get_version
    - fu_device_add_instance_str
    - g_set_error
    - fu_device_set_firmware_size
    - g_prefix_error_literal
    - FU_ELANTP_HID_DEVICE
    - FU_DEVICE
    - fu_device_build_instance_id_full
    - fu_device_get_proxy
    - fu_elantp_hid_device_read_cmd
    - FU_ELANTP_HID_HAPTIC_DEVICE
    - fu_elantp_hid_haptic_device_ensure_iap_ctrl
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_haptic_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:571,1
    - Dst: fu_elantp_haptic_firmware_get_driver_ic
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:575,1
    - Dst: FU_ELANTP_HAPTIC_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:575,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 588
    functionName: fu_elantp_hid_haptic_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - FU_ELANTP_HAPTIC_FIRMWARE
    - FU_ELANTP_HID_HAPTIC_DEVICE
    - fu_elantp_haptic_firmware_get_driver_ic
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_haptic_device_check_firmware(FuDevice *device,\n\t\t\t\t\t
      \  FuFirmware *firmware,\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:601,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:603,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:606,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:606,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:611,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:615,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:616,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:617,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:618,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:621,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:622,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:623,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:625,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:626,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:628,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:636,1
    - Dst: memset
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:640,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:641,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:642,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:652,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:655,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:655,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:655,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:656,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:659,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:660,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:662,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:666,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:666,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:670,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:670,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:677,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:681,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:681,1
    - Dst: fu_elantp_hid_haptic_device_ensure_eeprom_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:688,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:689,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:701,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 597
    functionDepth: 5
    functionLinenumber: 597
    functionLinenumberEnd: 706
    functionName: fu_elantp_hid_haptic_device_write_chunks_cb
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_memwrite_uint16
    - fu_chunk_get_data_sz
    - fu_sum16
    - fu_chunk_array_new_from_bytes
    - fu_progress_set_steps
    - fu_device_get_proxy
    - FU_ELANTP_HID_HAPTIC_DEVICE
    - fu_elantp_hid_device_write_cmd
    - fu_device_sleep
    - fu_progress_step_done
    - g_malloc0
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_chunk_get_data
    - fu_elantp_hid_haptic_device_ensure_eeprom_iap_ctrl
    - memset
    - fu_chunk_array_length
    - fu_progress_set_id
    - g_set_error
    - fu_chunk_array_index
    - FU_ELANTP_HID_DEVICE
    - fu_memcpy_safe
    - g_autoptr
    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:715,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:722,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:725,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:726,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:727,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:728,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:729,1
    - Dst: fu_elantp_hid_haptic_device_detach
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:732,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:732,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:734,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:737,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:741,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:742,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:749,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:751,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:751,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:754,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:754,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:759,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:762,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:762,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:767,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:770,1
    - Dst: fu_elantp_hid_haptic_device_get_checksum
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:771,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:772,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:776,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:789,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:789,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:795,1
    - Dst: fu_elantp_hid_haptic_device_get_version
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:799,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:801,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:802,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:804,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:805,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:813,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:815,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:815,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:820,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:823,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 61
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 708
    functionDepth: 4
    functionLinenumber: 708
    functionLinenumberEnd: 826
    functionName: fu_elantp_hid_haptic_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_elantp_hid_haptic_device_detach
    - g_autoptr
    - fu_firmware_get_bytes
    - fu_elantp_hid_haptic_device_get_version
    - g_prefix_error_literal
    - fu_device_get_proxy
    - FU_ELANTP_HID_HAPTIC_DEVICE
    - fu_progress_add_step
    - fu_device_sleep
    - fu_progress_step_done
    - FU_DEVICE
    - fu_progress_get_child
    - fu_elantp_hid_haptic_device_get_checksum
    - fu_progress_set_id
    - g_strcmp0
    - g_set_error
    - fu_device_retry_full
    - FU_ELANTP_HID_DEVICE
    - fu_device_get_version
    - fu_firmware_get_version
    - fu_elantp_hid_device_write_cmd
    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_device_has_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:838,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:838,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:839,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:847,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:857,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:857,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:860,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:860,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:865,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:869,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:869,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:874,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:883,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:883,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:889,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:907,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:907,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:913,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:913,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:918,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:922,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:931,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:931,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:936,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:940,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:940,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:945,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:949,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:949,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:956,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 66
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuElantpHidHapticDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 966
    functionName: fu_elantp_hid_haptic_device_detach
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - g_prefix_error_literal
    - FU_ELANTP_HID_DEVICE
    - FU_DEVICE
    - fu_device_has_flag
    - fu_device_get_proxy
    - fu_elantp_hid_device_read_cmd
    - fu_elantp_hid_device_write_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_haptic_device_detach(FuElantpHidHapticDevice
      *self,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:971,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:975,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:975,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:978,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:978,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:983,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:986,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:987,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:987,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:992,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:995,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:995,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1000,1
    - Dst: fu_elantp_hid_haptic_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1003,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1007,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1008,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 968
    functionDepth: 7
    functionLinenumber: 968
    functionLinenumberEnd: 1014
    functionName: fu_elantp_hid_haptic_device_attach
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - g_set_error_literal
    - g_prefix_error_literal
    - FU_ELANTP_HID_DEVICE
    - FU_DEVICE
    - fu_device_has_flag
    - fu_device_get_proxy
    - fu_elantp_hid_device_write_cmd
    - FU_ELANTP_HID_HAPTIC_DEVICE
    - fu_elantp_hid_haptic_device_ensure_iap_ctrl
    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:1022,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1025,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1026,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1031,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1032,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1037,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1042
    functionName: fu_elantp_hid_haptic_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_strcmp0
    - g_set_error_literal
    - FU_ELANTP_HID_HAPTIC_DEVICE
    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:1047,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1048,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1049,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1050,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1051,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1044
    functionDepth: 3
    functionLinenumber: 1044
    functionLinenumberEnd: 1053
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1058,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1058,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1059,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1059,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1060,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1060,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1061,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1061,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1062,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1062,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1063,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1063,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1064,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1064,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1065,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1065,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1066,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1066,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1067,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1067,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1068,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1068,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1069,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpHidHapticDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1055
    functionDepth: 6
    functionLinenumber: 1055
    functionLinenumberEnd: 1070
    functionName: fu_elantp_hid_haptic_device_init
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_logical_id
    - fu_device_add_icon
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_priority
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:1075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElantpHidHapticDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1084
    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:1089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1090
    functionName: fu_elantp_hid_haptic_device_new
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-haptic-device.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuElantpHidHapticDevice
    signature: 'FuElantpHidHapticDevice *

      fu_elantp_hid_haptic_device_new(FuDevice *proxy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:30,1
    - Dst: FU_IS_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    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:37,1
    - Dst: FU_IS_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    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:44,1
    - Dst: FU_IS_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    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:51,1
    - Dst: FU_IS_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    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:58,1
    - Dst: FU_IS_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    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:65,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:66,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:67,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: fu_elantp_firmware_export
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_ELANTP_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_elantp_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:79,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:82,1
    - Dst: fu_struct_elantp_firmware_ftr_validate_stream
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 96
    functionName: fu_elantp_firmware_validate
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_size
    - g_set_error_literal
    - fu_struct_elantp_firmware_ftr_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: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:104,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:108,1
    - Dst: fu_struct_elantp_firmware_hdr_parse_stream
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:110,1
    - Dst: fu_struct_elantp_firmware_hdr_get_iap_start
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:117,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:120,1
    - Dst: fu_struct_elantp_firmware_hdr_get_ic_type
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:128,1
    - Dst: fu_struct_elantp_firmware_hdr_get_iap_ver
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:129,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:132,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:139,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:146,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:157,1
    - Dst: fu_struct_elantp_firmware_hdr_get_iap_forcetable
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:165,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 178
    functionName: fu_elantp_firmware_parse
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u16
    - g_set_error
    - fu_struct_elantp_firmware_hdr_get_iap_ver
    - FU_ELANTP_FIRMWARE
    - fu_struct_elantp_firmware_hdr_get_ic_type
    - fu_struct_elantp_firmware_hdr_get_iap_forcetable
    - fu_struct_elantp_firmware_hdr_parse_stream
    - fu_struct_elantp_firmware_hdr_get_iap_start
    - g_autoptr
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:183,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:187,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:190,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 199
    functionName: fu_elantp_firmware_build
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text_as_uint
    - FU_ELANTP_FIRMWARE
    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:204,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:205,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:205,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:206,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:207,1
    - Dst: fu_struct_elantp_firmware_hdr_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:207,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:208,1
    - Dst: fu_struct_elantp_firmware_ftr_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:208,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:212,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:221,1
    - Dst: fu_struct_elantp_firmware_hdr_set_ic_type
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:222,1
    - Dst: fu_struct_elantp_firmware_hdr_set_iap_ver
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:223,1
    - Dst: fu_struct_elantp_firmware_hdr_set_iap_start
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:224,1
    - Dst: fu_struct_elantp_firmware_hdr_set_iap_forcetable
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:225,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:228,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:231,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:232,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:239,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:248,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:251,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:254,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 256
    functionName: fu_elantp_firmware_write
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - fu_struct_elantp_firmware_hdr_set_iap_start
    - fu_firmware_get_bytes_with_patches
    - g_set_error
    - fu_memwrite_uint16_safe
    - fu_struct_elantp_firmware_hdr_new
    - g_steal_pointer
    - fu_struct_elantp_firmware_hdr_set_ic_type
    - FU_ELANTP_FIRMWARE
    - fu_struct_elantp_firmware_hdr_set_iap_forcetable
    - g_byte_array_new
    - fu_struct_elantp_firmware_hdr_set_iap_ver
    - g_byte_array_append
    - g_autoptr
    - fu_struct_elantp_firmware_ftr_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_elantp_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:261,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-firmware.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: fu_elantp_firmware_init
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElantpFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 273
    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: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:16,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:18,1
    - Dst: fu_firmware_roundtrip_from_filename
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:19,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:23,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 11
    functionDepth: 7
    functionLinenumber: 11
    functionLinenumberEnd: 25
    functionName: fu_elantp_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/elantp/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - fu_firmware_roundtrip_from_filename
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    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:30,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:31,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:32,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:33,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/elantp/fu-self-test.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: main
    functionSourceFile: /src/fwupd/plugins/elantp/fu-self-test.c
    functionUses: 4
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_type_ensure
    - 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: 2
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: fu_elantp_plugin_device_created
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-plugin.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_plugin_get_context
    - fu_device_has_private_flag
    - fu_context_has_hwid_flag
    - fu_device_get_specialized_gtype
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/elantp/fu-elantp-plugin.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: fu_elantp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_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:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElantpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    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: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
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:44,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 46
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:55,1
    - Dst: fu_struct_elantp_read_cmd_req_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:55,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:56,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:57,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:57,1
    - Dst: fu_struct_elantp_read_cmd_req_set_report_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:60,1
    - Dst: fu_struct_elantp_read_cmd_req_set_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:61,1
    - Dst: fu_struct_elantp_read_cmd_req_set_reg
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:62,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:63,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:63,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:71,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:72,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:73,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:73,1
    - Dst: fu_struct_elantp_read_cmd_res_parse
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:79,1
    - Dst: fu_struct_elantp_read_cmd_res_get_value
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - self
    - report_id
    - reg
    - value
    - error
    argTypes:
    - FuElantpHidDevice*
    - FuEtpRptid
    - guint16
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 84
    functionName: fu_elantp_hid_device_read_cmd
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 10
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_struct_elantp_read_cmd_res_parse
    - fu_hidraw_device_get_feature
    - fu_struct_elantp_read_cmd_req_new
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - g_byte_array_new
    - fu_struct_elantp_read_cmd_res_get_value
    - fu_struct_elantp_read_cmd_req_set_cmd
    - fu_struct_elantp_read_cmd_req_set_report_id
    - g_autoptr
    - fu_struct_elantp_read_cmd_req_set_reg
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_device_read_cmd(FuElantpHidDevice *self,\n\t\t\t
      \     FuEtpRptid report_id,\n\t\t\t      guint16 reg,\n\t\t\t      guint16 *value,\n\t\t\t
      \     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:93,1
    - Dst: fu_struct_elantp_write_cmd_req_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:93,1
    - Dst: fu_struct_elantp_write_cmd_req_set_report_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:94,1
    - Dst: fu_struct_elantp_write_cmd_req_set_reg
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:95,1
    - Dst: fu_struct_elantp_write_cmd_req_set_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:96,1
    - Dst: fu_hidraw_device_set_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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - self
    - report_id
    - reg
    - cmd
    - error
    argTypes:
    - FuElantpHidDevice*
    - FuEtpRptid
    - guint16
    - FuEtpCmd
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 86
    functionDepth: 5
    functionLinenumber: 86
    functionLinenumberEnd: 102
    functionName: fu_elantp_hid_device_write_cmd
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 9
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_struct_elantp_write_cmd_req_set_cmd
    - fu_struct_elantp_write_cmd_req_set_reg
    - FU_HIDRAW_DEVICE
    - fu_struct_elantp_write_cmd_req_new
    - g_autoptr
    - fu_struct_elantp_write_cmd_req_set_report_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_device_write_cmd(FuElantpHidDevice *self,\n\t\t\t
      \      FuEtpRptid report_id,\n\t\t\t       guint16 reg,\n\t\t\t       FuEtpCmd
      cmd,\n\t\t\t       GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:107,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:112,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:119,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:119,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:121,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:121,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:126,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:126,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:128,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 104
    functionDepth: 6
    functionLinenumber: 104
    functionLinenumberEnd: 131
    functionName: fu_elantp_hid_device_ensure_iap_ctrl
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_prefix_error_literal
    - fu_device_remove_flag
    - FU_DEVICE
    - fu_elantp_hid_device_read_cmd
    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:138,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:143,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:147,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 133
    functionDepth: 6
    functionLinenumber: 133
    functionLinenumberEnd: 163
    functionName: fu_elantp_hid_device_read_force_table_enable
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_elantp_hid_device_read_cmd
    - g_set_error_literal
    - g_prefix_error_literal
    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:169,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:174,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:178,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 165
    functionDepth: 6
    functionLinenumber: 165
    functionLinenumberEnd: 193
    functionName: fu_elantp_hid_device_read_haptic_enable
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_elantp_hid_device_read_cmd
    - g_set_error_literal
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_device_read_haptic_enable(FuElantpHidDevice
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:209,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:214,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:218,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 195
    functionDepth: 6
    functionLinenumber: 195
    functionLinenumberEnd: 230
    functionName: fu_elantp_hid_device_ensure_forcetable_address
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_elantp_hid_device_read_cmd
    - g_prefix_error_literal
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_device_ensure_forcetable_address(FuElantpHidDevice
      *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:250,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:255,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:258,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:263,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:267,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 4
    argNames:
    - self
    - ic_type
    - iap_ver
    - error
    argTypes:
    - FuElantpHidDevice*
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 232
    functionDepth: 6
    functionLinenumber: 232
    functionLinenumberEnd: 277
    functionName: fu_elantp_hid_device_write_fw_password
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_elantp_hid_device_read_cmd
    - fu_elantp_hid_device_write_cmd
    - g_prefix_error_literal
    - g_set_error
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:286,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:291,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:295,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:300,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:308,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 279
    functionDepth: 6
    functionLinenumber: 279
    functionLinenumberEnd: 315
    functionName: fu_elantp_hid_device_read_mcu_ic_type
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_elantp_hid_device_read_cmd
    - g_set_error_literal
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_device_read_mcu_ic_type(FuElantpHidDevice *self,
      GError **error)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:320,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:324,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:328,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:333,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:339,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:344,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:349,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:352,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:358,1
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:363,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:364,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:367,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:372,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:377,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:377,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:378,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:378,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:379,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:380,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:384,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:389,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:393,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:398,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:407,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:408,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:414,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:415,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:416,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:420,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:429,1
    - Dst: fu_elantp_hid_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:432,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:436,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:438,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:439,1
    - Dst: fu_elantp_hid_device_read_force_table_enable
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:441,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:442,1
    - Dst: fu_elantp_hid_device_ensure_forcetable_address
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:444,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:445,1
    - Dst: fu_elantp_hid_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:451,1
    - Dst: fu_elantp_hid_device_read_haptic_enable
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:454,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:455,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:457,1
    - Dst: fu_elantp_hid_haptic_device_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:458,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:459,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:459,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:459,1
    - Dst: fu_elantp_hid_device_read_mcu_ic_type
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:462,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:463,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:465,1
    - Dst: fu_elantp_hid_mcu_device_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:466,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:466,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:467,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:467,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:467,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:472,1
    - Dst: g_strstr_len
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:473,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:474,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 91
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 317
    functionDepth: 7
    functionLinenumber: 317
    functionLinenumberEnd: 478
    functionName: fu_elantp_hid_device_setup
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_get_pid
    - fu_version_from_uint16
    - fu_elantp_hid_mcu_device_new
    - fu_elantp_hid_haptic_device_new
    - fu_elantp_hid_device_ensure_forcetable_address
    - fu_device_get_name
    - g_debug
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - g_prefix_error_literal
    - fu_elantp_hid_device_read_force_table_enable
    - fu_device_build_instance_id_full
    - fu_elantp_hid_device_read_haptic_enable
    - fu_elantp_hid_device_read_mcu_ic_type
    - fu_device_set_version_raw
    - fu_device_set_version_bootloader
    - fu_device_get_vid
    - FU_DEVICE
    - g_strstr_len
    - fu_device_set_name
    - fu_device_add_instance_u8
    - fu_device_set_firmware_size
    - g_set_error
    - fu_device_has_private_flag
    - FU_ELANTP_HID_DEVICE
    - fu_elantp_hid_device_ensure_iap_ctrl
    - fu_elantp_hid_device_read_cmd
    - g_autoptr
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_device_setup(FuDevice *device, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:486,1
    - Dst: fu_elantp_firmware_get_module_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:492,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:492,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:494,1
    - Dst: fu_elantp_firmware_get_ic_type
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:502,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:502,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:504,1
    - Dst: fu_elantp_firmware_get_forcetable_support
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:513,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:513,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:516,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:522,1
    - Dst: fu_elantp_firmware_get_forcetable_addr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:532,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:532,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:536,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:547,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 560
    functionName: fu_elantp_hid_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_elantp_firmware_get_ic_type
    - fu_elantp_firmware_get_forcetable_addr
    - g_debug
    - g_set_error
    - fu_elantp_firmware_get_forcetable_support
    - g_set_error_literal
    - FU_ELANTP_FIRMWARE
    - FU_ELANTP_HID_DEVICE
    - fu_elantp_firmware_get_module_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_device_check_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:579,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:588,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:598,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:599,1
    - Dst: fu_sum16w
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:609,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:611,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:614,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - self
    - fw_data
    - fw_size
    - force_table_addr
    - error
    argTypes:
    - FuElantpHidDevice*
    - guint8*
    - gsize
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 562
    functionDepth: 3
    functionLinenumber: 562
    functionLinenumberEnd: 625
    functionName: fu_elantp_hid_device_filling_forcetable_firmware
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - fu_memcpy_safe
    - fu_sum16w
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_device_filling_forcetable_firmware(FuElantpHidDevice
      *self,\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: 18
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:634,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:635,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:642,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:643,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:647,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:648,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:649,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:650,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:651,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:652,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:655,1
    - Dst: fu_elantp_hid_device_detach
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:660,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:660,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:662,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:665,1
    - Dst: fu_elantp_firmware_get_iap_addr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:666,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:670,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:679,1
    - Dst: fu_elantp_firmware_get_forcetable_addr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:688,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:688,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:689,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:690,1
    - Dst: fu_elantp_hid_device_filling_forcetable_firmware
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:700,1
    - Dst: fu_elantp_firmware_get_forcetable_addr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:704,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:704,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:706,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:712,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:722,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:730,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:741,1
    - Dst: fu_sum16w
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:743,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:743,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:743,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:745,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:749,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:752,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:753,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:755,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:758,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:758,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:759,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:759,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:765,1
    - Dst: fu_elantp_hid_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:769,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:772,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:783,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:783,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:787,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:790,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:797,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:805,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:808,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:810,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:811,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 77
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 627
    functionDepth: 7
    functionLinenumber: 627
    functionLinenumberEnd: 813
    functionName: fu_elantp_hid_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_memwrite_uint16
    - fu_chunk_get_data_sz
    - fu_progress_add_flag
    - fu_device_sleep_full
    - g_ptr_array_index
    - fu_elantp_firmware_get_forcetable_addr
    - fu_firmware_get_bytes
    - fu_elantp_hid_device_filling_forcetable_firmware
    - g_set_error_literal
    - FU_ELANTP_FIRMWARE
    - fu_progress_set_percentage_full
    - fu_chunk_array_new
    - fu_progress_add_step
    - fu_device_sleep
    - g_bytes_get_data
    - fu_progress_step_done
    - fu_elantp_hid_device_read_cmd
    - g_malloc0
    - FU_HIDRAW_DEVICE
    - fu_chunk_get_data
    - fu_progress_get_child
    - fu_progress_set_id
    - g_set_error
    - fu_elantp_hid_device_detach
    - fu_elantp_firmware_get_iap_addr
    - FU_ELANTP_HID_DEVICE
    - fu_elantp_hid_device_ensure_iap_ctrl
    - fu_memcpy_safe
    - fu_sum16w
    - g_autoptr
    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: 20
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:823,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:823,1
    - Dst: g_info
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:824,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:825,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:831,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:831,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:835,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:840,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:844,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:849,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:858,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:864,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:882,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:888,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:893,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:897,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:906,1
    - Dst: fu_elantp_hid_device_write_fw_password
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:913,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:915,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:921,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:921,1
    - Dst: fu_elantp_hid_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:922,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:925,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuElantpHidDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 815
    functionDepth: 7
    functionLinenumber: 815
    functionLinenumberEnd: 934
    functionName: fu_elantp_hid_device_detach
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 1
    functionsReached:
    - g_info
    - fu_device_sleep
    - g_set_error_literal
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_elantp_hid_device_ensure_iap_ctrl
    - fu_device_has_flag
    - fu_elantp_hid_device_read_cmd
    - fu_elantp_hid_device_write_cmd
    - fu_elantp_hid_device_write_fw_password
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_device_detach(FuElantpHidDevice *self, FuProgress
      *progress, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:939,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:942,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:943,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:948,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:954,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:954,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:955,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:960,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:963,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:964,1
    - Dst: fu_elantp_hid_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:967,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 936
    functionDepth: 7
    functionLinenumber: 936
    functionLinenumberEnd: 972
    functionName: fu_elantp_hid_device_attach
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_device_sleep
    - g_prefix_error_literal
    - FU_ELANTP_HID_DEVICE
    - FU_DEVICE
    - fu_elantp_hid_device_ensure_iap_ctrl
    - fu_device_has_flag
    - fu_elantp_hid_device_write_cmd
    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:980,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:983,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:984,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:989,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:990,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:995,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 1000
    functionName: fu_elantp_hid_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_strcmp0
    - g_set_error_literal
    - FU_ELANTP_HID_DEVICE
    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:1005,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1006,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1007,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1008,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1009,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1010,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1002
    functionDepth: 3
    functionLinenumber: 1002
    functionLinenumberEnd: 1012
    functionName: fu_elantp_hid_device_set_progress
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_elantp_hid_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1017,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1018
    functionName: fu_elantp_hid_device_convert_version
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16
    - fu_device_get_version_format
    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:1023,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1023,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1024,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1024,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1025,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1025,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1026,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1026,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1027,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1027,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1028,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1028,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1029,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1029,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1030,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1030,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1031,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1031,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1032,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1032,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1033,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1033,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1034,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1020
    functionDepth: 6
    functionLinenumber: 1020
    functionLinenumberEnd: 1036
    functionName: fu_elantp_hid_device_init
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_priority
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    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:1041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElantpHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1051
    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:
    - Dst: FU_ELANTP_HID_MCU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:40,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:41,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:42,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:43,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:44,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:45,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:46,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:47,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:48,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:49,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:50,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:51,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: fu_elantp_hid_mcu_device_to_string
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_ELANTP_HID_MCU_DEVICE
    - fwupd_codec_string_append_bool
    linkageType: ''
    returnType: void
    signature: void fu_elantp_hid_mcu_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:60,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:60,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:63,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:63,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:68,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:75,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:75,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:77,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:77,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:82,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:82,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:84,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:84,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpHidMcuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 55
    functionDepth: 6
    functionLinenumber: 55
    functionLinenumberEnd: 87
    functionName: fu_elantp_hid_mcu_device_ensure_iap_ctrl
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_prefix_error_literal
    - FU_ELANTP_HID_DEVICE
    - FU_DEVICE
    - fu_device_remove_flag
    - fu_device_get_proxy
    - fu_elantp_hid_device_read_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_mcu_device_ensure_iap_ctrl(FuElantpHidMcuDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:95,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:95,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:98,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:98,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:103,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:107,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpHidMcuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 89
    functionDepth: 6
    functionLinenumber: 89
    functionLinenumberEnd: 123
    functionName: fu_elantp_hid_mcu_device_read_force_table_enable
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_prefix_error_literal
    - FU_ELANTP_HID_DEVICE
    - FU_DEVICE
    - fu_device_get_proxy
    - fu_elantp_hid_device_read_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_mcu_device_read_force_table_enable(FuElantpHidMcuDevice
      *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:145,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:145,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:148,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:148,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:153,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:157,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElantpHidMcuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 125
    functionDepth: 6
    functionLinenumber: 125
    functionLinenumberEnd: 168
    functionName: fu_elantp_hid_mcu_device_ensure_force_table_addr
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error_literal
    - FU_ELANTP_HID_DEVICE
    - FU_DEVICE
    - fu_device_get_proxy
    - fu_elantp_hid_device_read_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_mcu_device_ensure_force_table_addr(FuElantpHidMcuDevice
      *self, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:189,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:189,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:192,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:192,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:197,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:200,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:200,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:205,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:209,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 4
    argNames:
    - self
    - ic_type
    - iap_ver
    - error
    argTypes:
    - FuElantpHidMcuDevice*
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 170
    functionDepth: 6
    functionLinenumber: 170
    functionLinenumberEnd: 219
    functionName: fu_elantp_hid_mcu_device_write_fw_password
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error_literal
    - FU_ELANTP_HID_DEVICE
    - FU_DEVICE
    - fu_device_get_proxy
    - fu_elantp_hid_device_read_cmd
    - fu_elantp_hid_device_write_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_mcu_device_write_fw_password(FuElantpHidMcuDevice
      *self,\n\t\t\t\t\t   guint16 ic_type,\n\t\t\t\t\t   guint16 iap_ver,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_MCU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:224,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:230,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:233,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:233,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:236,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:236,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:241,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:247,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:247,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:252,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:257,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:260,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:260,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:266,1
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:271,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:272,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:275,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:275,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:280,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:285,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:285,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:290,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:294,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:294,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:299,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:308,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:309,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:310,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:311,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:318,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:323,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:332,1
    - Dst: fu_elantp_hid_mcu_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:335,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:338,1
    - Dst: fu_elantp_hid_mcu_device_read_force_table_enable
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:340,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:341,1
    - Dst: fu_elantp_hid_mcu_device_ensure_force_table_addr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:343,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:344,1
    - Dst: fu_elantp_hid_mcu_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:349,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:355,1
    - Dst: g_strstr_len
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:356,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:357,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 221
    functionDepth: 7
    functionLinenumber: 221
    functionLinenumberEnd: 361
    functionName: fu_elantp_hid_mcu_device_setup
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_elantp_hid_mcu_device_ensure_force_table_addr
    - fu_version_from_uint16
    - fu_elantp_hid_mcu_device_ensure_iap_ctrl
    - fu_device_get_name
    - FU_ELANTP_HID_MCU_DEVICE
    - g_debug
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - g_prefix_error_literal
    - fu_device_build_instance_id_full
    - fu_device_get_proxy
    - fu_device_set_version_raw
    - fu_device_set_version_bootloader
    - FU_DEVICE
    - fu_device_set_name
    - g_strstr_len
    - fu_device_add_instance_u8
    - fu_device_set_firmware_size
    - g_set_error
    - fu_device_has_private_flag
    - FU_ELANTP_HID_DEVICE
    - fu_elantp_hid_device_read_cmd
    - fu_elantp_hid_mcu_device_read_force_table_enable
    - g_autoptr
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_mcu_device_setup(FuDevice *device, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_MCU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:369,1
    - Dst: fu_elantp_firmware_get_module_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:375,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:375,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:377,1
    - Dst: fu_elantp_firmware_get_ic_type
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:385,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:385,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:387,1
    - Dst: fu_elantp_firmware_get_forcetable_support
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:396,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:396,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:399,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:405,1
    - Dst: fu_elantp_firmware_get_forcetable_addr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:415,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:415,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:419,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:430,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 443
    functionName: fu_elantp_hid_mcu_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_elantp_firmware_get_ic_type
    - FU_ELANTP_HID_MCU_DEVICE
    - fu_elantp_firmware_get_forcetable_addr
    - g_debug
    - g_set_error
    - fu_elantp_firmware_get_forcetable_support
    - g_set_error_literal
    - FU_ELANTP_FIRMWARE
    - fu_elantp_firmware_get_module_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_mcu_device_check_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\t\tGError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_sum16w
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:455,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:455,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:455,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:456,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:456,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:459,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:460,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:460,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:460,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:461,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:462,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:464,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:464,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:467,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:467,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:476,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:476,1
    - Dst: fu_elantp_hid_mcu_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:480,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:484,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 6
    argNames:
    - self
    - chk
    - checksum
    - fw_section_cnt
    - done
    - error
    argTypes:
    - FuElantpHidMcuDevice*
    - FuChunk*
    - guint16*
    - guint16*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 445
    functionDepth: 7
    functionLinenumber: 445
    functionLinenumberEnd: 498
    functionName: fu_elantp_hid_mcu_device_write_chunk
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint16
    - g_set_error
    - fu_device_sleep
    - fu_chunk_get_data_sz
    - fu_device_get_proxy
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_elantp_hid_mcu_device_ensure_iap_ctrl
    - g_byte_array_new
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_sum16w
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_mcu_device_write_chunk(FuElantpHidMcuDevice
      *self,\n\t\t\t\t     FuChunk *chk,\n\t\t\t\t     guint16 *checksum,\n\t\t\t\t
      \    guint16 *fw_section_cnt,\n\t\t\t\t     gboolean *done,\n\t\t\t\t     GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:509,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:510,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:510,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:511,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:512,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:515,1
    - Dst: fu_elantp_hid_mcu_device_write_chunk
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:518,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:526,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:529,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - self
    - chunks
    - checksum
    - progress
    - error
    argTypes:
    - FuElantpHidMcuDevice*
    - FuChunkArray*
    - guint16*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 500
    functionDepth: 8
    functionLinenumber: 500
    functionLinenumberEnd: 534
    functionName: fu_elantp_hid_mcu_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_finished
    - fu_elantp_hid_mcu_device_write_chunk
    - fu_chunk_array_index
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_mcu_device_write_chunks(FuElantpHidMcuDevice
      *self,\n\t\t\t\t      FuChunkArray *chunks,\n\t\t\t\t      guint16 *checksum,\n\t\t\t\t
      \     FuProgress *progress,\n\t\t\t\t      GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_MCU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:542,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:547,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:548,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:549,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:552,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:553,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:554,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:555,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:556,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:557,1
    - Dst: fu_elantp_hid_mcu_device_detach
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:560,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:560,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:562,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:565,1
    - Dst: fu_elantp_firmware_get_iap_addr
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:568,1
    - Dst: FU_ELANTP_FIRMWARE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:568,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:569,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:570,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:575,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:578,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:580,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:585,1
    - Dst: fu_elantp_hid_mcu_device_write_chunks
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:588,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:591,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:594,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:597,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:597,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:600,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:600,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:607,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:615,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:618,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:620,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:621,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 535
    functionDepth: 9
    functionLinenumber: 535
    functionLinenumberEnd: 623
    functionName: fu_elantp_hid_mcu_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_device_sleep_full
    - fu_firmware_get_size
    - fu_elantp_hid_mcu_device_detach
    - FU_ELANTP_HID_MCU_DEVICE
    - FU_ELANTP_FIRMWARE
    - fu_chunk_array_new_from_stream
    - fu_elantp_hid_mcu_device_write_chunks
    - fu_device_get_proxy
    - fu_progress_add_step
    - fu_progress_step_done
    - FU_DEVICE
    - fu_progress_get_child
    - fu_partial_input_stream_new
    - fu_progress_set_id
    - fu_firmware_get_stream
    - g_set_error
    - fu_elantp_firmware_get_iap_addr
    - FU_ELANTP_HID_DEVICE
    - fu_elantp_hid_device_read_cmd
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_mcu_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: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:632,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:632,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:635,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:635,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - iap_type
    - error
    argTypes:
    - FuElantpHidMcuDevice*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 625
    functionDepth: 6
    functionLinenumber: 625
    functionLinenumberEnd: 644
    functionName: fu_elantp_hid_mcu_device_read_iap_type
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - FU_ELANTP_HID_DEVICE
    - FU_DEVICE
    - fu_device_get_proxy
    - fu_elantp_hid_device_read_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_mcu_device_read_iap_type(FuElantpHidMcuDevice
      *self,\n\t\t\t\t       guint16 *iap_type,\n\t\t\t\t       GError **error)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:654,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:654,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:658,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:658,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:663,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:667,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:667,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:672,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:676,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:676,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:681,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:686,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:686,1
    - Dst: g_info
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:687,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:688,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:688,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:694,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:694,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:698,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:698,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:703,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:707,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:707,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:712,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:721,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:721,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:727,1
    - Dst: fu_elantp_hid_mcu_device_read_iap_type
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:738,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:744,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:760,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:760,1
    - Dst: fu_elantp_hid_device_read_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:766,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:766,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:771,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:775,1
    - Dst: fu_elantp_hid_mcu_device_write_fw_password
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:783,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:785,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:785,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:791,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:791,1
    - Dst: fu_elantp_hid_mcu_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:792,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:795,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 85
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuElantpHidMcuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 646
    functionDepth: 7
    functionLinenumber: 646
    functionLinenumberEnd: 804
    functionName: fu_elantp_hid_mcu_device_detach
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    functionUses: 1
    functionsReached:
    - fu_elantp_hid_mcu_device_read_iap_type
    - g_info
    - fu_device_sleep
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_elantp_hid_mcu_device_write_fw_password
    - FU_ELANTP_HID_DEVICE
    - FU_DEVICE
    - fu_elantp_hid_mcu_device_ensure_iap_ctrl
    - fu_device_has_flag
    - fu_device_get_proxy
    - fu_elantp_hid_device_read_cmd
    - fu_elantp_hid_device_write_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_mcu_device_detach(FuElantpHidMcuDevice *self,
      FuProgress *progress, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_MCU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:809,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:812,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:812,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:817,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:818,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:823,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:823,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:828,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:831,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:831,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:832,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:832,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:837,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:840,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:840,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:845,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:848,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:848,1
    - Dst: fu_device_check_fwupd_version
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:849,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:849,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:850,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:850,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:855,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:859,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:859,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:860,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:860,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:865,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:868,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:868,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:873,1
    - Dst: fu_elantp_hid_device_write_cmd
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:876,1
    - Dst: FU_ELANTP_HID_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:876,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:881,1
    - Dst: fu_elantp_hid_mcu_device_ensure_iap_ctrl
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:884,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:885,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 806
    functionDepth: 7
    functionLinenumber: 806
    functionLinenumberEnd: 891
    functionName: fu_elantp_hid_mcu_device_attach
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    functionUses: 0
    functionsReached:
    - FU_ELANTP_HID_MCU_DEVICE
    - g_debug
    - fu_device_sleep
    - fu_device_check_fwupd_version
    - g_prefix_error_literal
    - FU_ELANTP_HID_DEVICE
    - FU_DEVICE
    - fu_elantp_hid_mcu_device_ensure_iap_ctrl
    - fu_device_has_flag
    - fu_device_get_proxy
    - fu_elantp_hid_device_write_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_elantp_hid_mcu_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANTP_HID_MCU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:899,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:902,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:903,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:908,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:909,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:914,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 919
    functionName: fu_elantp_hid_mcu_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_strcmp0
    - FU_ELANTP_HID_MCU_DEVICE
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_elantp_hid_mcu_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-mcu-device.c:924,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:925,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:926,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:927,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:928,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:929,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 921
    functionDepth: 3
    functionLinenumber: 921
    functionLinenumberEnd: 931
    functionName: fu_elantp_hid_mcu_device_set_progress
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_elantp_hid_mcu_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:936,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 937
    functionName: fu_elantp_hid_mcu_device_convert_version
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_elantp_hid_mcu_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-mcu-device.c:945,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:945,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:946,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:946,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:947,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:947,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:948,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:948,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:949,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:949,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:950,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:950,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:951,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:951,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:952,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:952,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:953,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:953,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:954,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:954,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:955,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:955,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:956,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:956,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:957,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:957,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:958,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:958,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:959,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElantpHidMcuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 939
    functionDepth: 6
    functionLinenumber: 939
    functionLinenumberEnd: 961
    functionName: fu_elantp_hid_mcu_device_init
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_logical_id
    - fu_device_register_private_flag
    - fu_device_add_icon
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_priority
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_elantp_hid_mcu_device_init(FuElantpHidMcuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElantpHidMcuDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 976
    functionName: fu_elantp_hid_mcu_device_class_init
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_elantp_hid_mcu_device_class_init(FuElantpHidMcuDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 982
    functionName: fu_elantp_hid_mcu_device_new
    functionSourceFile: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuElantpHidMcuDevice
    signature: 'FuElantpHidMcuDevice *

      fu_elantp_hid_mcu_device_new(FuDevice *proxy)'
  - 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: 1368
    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: 4
    functionLinenumber: 40
    functionLinenumberEnd: 57
    functionName: fu_thunderbolt_device_find_nvmem
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_sysfs_path
    - g_set_error
    - fu_udev_device_list_sysfs
    - FU_UDEV_DEVICE
    - g_str_has_prefix
    - g_autoptr
    - g_build_filename
    - g_ptr_array_index
    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_literal
      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_uninhibit
    - fu_udev_device_get_sysfs_path
    - fu_strtoull
    - g_set_error_literal
    - fu_device_get_contents
    - g_prefix_error
    - g_prefix_error_literal
    - FU_DEVICE
    - g_build_path
    - fu_device_inhibit
    - FU_UDEV_DEVICE
    - 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:152,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:153,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:153,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuThunderboltDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 155
    functionName: fu_thunderbolt_device_get_version
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_device_get_contents
    - g_strdup_printf
    - g_strv_length
    - g_auto
    - fu_device_query_file_exists
    - g_debug
    - g_set_error_literal
    - g_strsplit
    - GET_PRIVATE
    - fu_udev_device_get_sysfs_path
    - fu_device_sleep
    - fu_strtoull
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - g_set_error
    - g_build_path
    - g_error_matches
    - g_autoptr
    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:160,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:161,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: fu_thunderbolt_device_to_string
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - FU_THUNDERBOLT_DEVICE
    - fwupd_codec_string_append
    - GET_PRIVATE
    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:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - auth_method
    argTypes:
    - FuThunderboltDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 170
    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:175,1
    - Dst: fu_udev_device_write_sysfs
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: fu_thunderbolt_device_activate
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_DEVICE
    - fu_udev_device_write_sysfs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_device_activate(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:187,1
    - Dst: fu_udev_device_write_sysfs
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:188,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuThunderboltDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 193
    functionName: fu_thunderbolt_device_authenticate
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_write_sysfs
    - FU_UDEV_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_device_authenticate(FuThunderboltDevice *self,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:198,1
    - Dst: fu_udev_device_write_sysfs
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:199,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuThunderboltDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 204
    functionName: fu_thunderbolt_device_flush_update
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_write_sysfs
    - FU_UDEV_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_device_flush_update(FuThunderboltDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:213,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:213,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:219,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:225,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 206
    functionDepth: 4
    functionLinenumber: 206
    functionLinenumberEnd: 240
    functionName: fu_thunderbolt_device_attach
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_strtoull
    - g_prefix_error_literal
    - fu_udev_device_read_sysfs
    - FU_UDEV_DEVICE
    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:245,1
    - Dst: fu_thunderbolt_device_check_authorized
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:248,1
    - Dst: fu_thunderbolt_device_get_version
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 242
    functionDepth: 6
    functionLinenumber: 242
    functionLinenumberEnd: 253
    functionName: fu_thunderbolt_device_rescan
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - FU_THUNDERBOLT_DEVICE
    - fu_thunderbolt_device_get_version
    - fu_thunderbolt_device_check_authorized
    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:263,1
    - Dst: fu_device_set_contents_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:266,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:266,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: 267
      start: 255
    functionDepth: 7
    functionLinenumber: 255
    functionLinenumberEnd: 267
    functionName: fu_thunderbolt_device_write_data
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_contents_bytes
    - fu_thunderbolt_device_find_nvmem
    - FU_DEVICE
    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:276,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:277,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:280,1
    - Dst: fu_firmware_has_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:291,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:293,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:294,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:295,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:297,1
    - Dst: fu_thunderbolt_device_find_nvmem
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:298,1
    - Dst: fu_device_get_contents_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:302,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:305,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:306,1
    - Dst: fu_firmware_check_compatible
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:315,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:320,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: 321
      start: 269
    functionDepth: 5
    functionLinenumber: 269
    functionLinenumberEnd: 321
    functionName: fu_thunderbolt_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - FU_THUNDERBOLT_DEVICE
    - g_memory_input_stream_new_from_bytes
    - fu_firmware_check_compatible
    - fu_firmware_new_from_gtypes
    - fu_device_get_contents_bytes
    - g_steal_pointer
    - fu_firmware_has_flag
    - fu_progress_set_status
    - g_autoptr
    - 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:330,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:331,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:334,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:338,1
    - Dst: fu_thunderbolt_device_write_data
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:339,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:340,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:342,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:342,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:347,1
    - Dst: fu_thunderbolt_device_flush_update
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:348,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:350,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:354,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:355,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:356,1
    - Dst: fu_thunderbolt_device_authenticate
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:361,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:362,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:367,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:368,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:369,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: 373
      start: 323
    functionDepth: 8
    functionLinenumber: 323
    functionLinenumberEnd: 373
    functionName: fu_thunderbolt_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_THUNDERBOLT_DEVICE
    - fu_device_set_remove_delay
    - fu_udev_device_get_sysfs_path
    - g_debug
    - fu_firmware_get_bytes
    - fu_thunderbolt_device_write_data
    - g_prefix_error
    - fu_device_has_private_flag
    - g_prefix_error_literal
    - fu_device_has_flag
    - fu_thunderbolt_device_flush_update
    - FU_UDEV_DEVICE
    - fu_progress_set_status
    - g_autoptr
    - fu_thunderbolt_device_authenticate
    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:378,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:381,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:383,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:385,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:386,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 375
    functionDepth: 6
    functionLinenumber: 375
    functionLinenumberEnd: 391
    functionName: fu_thunderbolt_device_probe
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - fu_device_add_flag
    - fu_device_get_backend_parent_with_subsystem
    - fu_device_get_vid
    - g_autoptr
    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:396,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:397,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:398,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:399,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:400,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 402
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:407,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:410,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:410,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:411,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:411,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:412,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuThunderboltDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 413
    functionName: fu_thunderbolt_device_init
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - GET_PRIVATE
    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:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuThunderboltDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 427
    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_DEVICE
      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:
    - self
    - error
    argTypes:
    - FuThunderboltRetimer*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 32
    functionName: fu_thunderbolt_retimer_offline_parent_port
    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_DEVICE
    - FU_UDEV_DEVICE
    - fu_thunderbolt_udev_set_port_offline
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_retimer_offline_parent_port(FuThunderboltRetimer
      *self, 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_DEVICE
      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:
    - self
    - error
    argTypes:
    - FuThunderboltRetimer*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: fu_thunderbolt_retimer_online_parent_port
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_parent_with_subsystem
    - fu_thunderbolt_udev_set_port_online
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_retimer_online_parent_port(FuThunderboltRetimer
      *self, 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:
    - FU_UDEV_DEVICE
    - fu_device_set_physical_id
    - fu_udev_device_get_sysfs_path
    - g_path_get_basename
    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_UDEV_DEVICE
    - FU_THUNDERBOLT_DEVICE
    - fu_thunderbolt_device_get_version
    - fu_thunderbolt_udev_rescan_port
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_retimer_reload(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_THUNDERBOLT_RETIMER
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:75,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:78,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:82,1
    - Dst: fu_thunderbolt_retimer_online_parent_port
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:83,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:87,1
    - Dst: fu_thunderbolt_retimer_offline_parent_port
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:90,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 72
    functionDepth: 6
    functionLinenumber: 72
    functionLinenumberEnd: 96
    functionName: fu_thunderbolt_retimer_attach
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_sleep
    - fu_thunderbolt_retimer_online_parent_port
    - fu_thunderbolt_retimer_offline_parent_port
    - FU_THUNDERBOLT_RETIMER
    - FU_DEVICE_CLASS
    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:101,1
    - Dst: fu_thunderbolt_device_get_version
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:107,1
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:107,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:111,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:111,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:113,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:119,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:121,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:128,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:131,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 98
    functionDepth: 5
    functionLinenumber: 98
    functionLinenumberEnd: 136
    functionName: fu_thunderbolt_retimer_setup
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c
    functionUses: 0
    functionsReached:
    - FU_THUNDERBOLT_DEVICE
    - fu_device_get_pid
    - fu_device_add_instance_id
    - g_set_error_literal
    - fu_device_get_physical_id
    - FU_DEVICE
    - fu_device_get_vid
    - g_strdup_printf
    - fu_thunderbolt_device_get_version
    - FU_THUNDERBOLT_RETIMER
    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:141,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:141,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:142,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:143,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_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_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:149,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:149,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:150,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:150,1
    - Dst: fu_thunderbolt_device_set_retries
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:151,1
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuThunderboltRetimer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 6
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: fu_thunderbolt_retimer_init
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-retimer.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_THUNDERBOLT_DEVICE
    - fu_device_add_private_flag
    - fu_thunderbolt_device_set_retries
    - fu_device_set_name
    - FU_DEVICE
    - fu_device_set_summary
    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:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuThunderboltRetimerClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 162
    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: 4
    functionLinenumber: 12
    functionLinenumberEnd: 33
    functionName: fu_thunderbolt_device_find_usb4_port_path
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_sysfs_path
    - g_set_error
    - g_steal_pointer
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_query_file_exists
    - g_build_filename
    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_literal
      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: 5
    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
    - g_prefix_error_literal
    - fu_udev_device_write_sysfs
    - 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_literal
      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: 5
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: fu_thunderbolt_udev_rescan_port
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-common.c
    functionUses: 2
    functionsReached:
    - g_debug
    - g_prefix_error_literal
    - fu_udev_device_write_sysfs
    - 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_literal
      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: 5
    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
    - g_prefix_error_literal
    - fu_udev_device_write_sysfs
    - 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: 4
    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:
    - fu_device_add_instance_id
    - fu_device_set_version
    - fu_udev_device_get_sysfs_path
    - FU_DEVICE
    - g_warning
    - fu_device_set_metadata_boolean
    - FU_UDEV_DEVICE
    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: 0
    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_set_name
    - FU_DEVICE
    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_kind_to_string
    - fwupd_codec_string_append
    - fwupd_codec_string_append_bool
    - fwupd_codec_string_append_int
    - FU_THUNDERBOLT_CONTROLLER
    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:
    - g_path_get_basename
    - fu_udev_device_get_sysfs_path
    - fu_device_set_physical_id
    - fu_device_get_backend_parent_with_subsystem
    - fu_thunderbolt_controller_kind_from_string
    - FU_DEVICE
    - fu_udev_device_read_sysfs
    - fu_udev_device_read_property
    - FU_UDEV_DEVICE
    - FU_THUNDERBOLT_CONTROLLER
    - g_str_has_prefix
    - g_autoptr
    - FU_DEVICE_CLASS
    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: 5
    functionLinenumber: 119
    functionLinenumberEnd: 156
    functionName: fu_thunderbolt_controller_read_status_block
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - FU_THUNDERBOLT_DEVICE
    - g_memory_input_stream_new_from_bytes
    - fu_firmware_new_from_gtypes
    - fu_device_get_contents_bytes
    - FU_DEVICE
    - fu_intel_thunderbolt_nvm_is_native
    - FU_INTEL_THUNDERBOLT_NVM
    - FU_IS_INTEL_THUNDERBOLT_NVM
    - g_autoptr
    - fu_thunderbolt_device_find_nvmem
    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: 5
    functionLinenumber: 158
    functionLinenumberEnd: 172
    functionName: fu_thunderbolt_controller_can_update
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - FU_THUNDERBOLT_DEVICE
    - g_autoptr
    - fu_thunderbolt_device_find_nvmem
    - g_debug
    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: 6
    functionLinenumber: 174
    functionLinenumberEnd: 186
    functionName: fu_thunderbolt_controller_set_port_online_cb
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - fu_thunderbolt_udev_set_port_online
    - g_warning
    - FU_UDEV_DEVICE
    - FU_THUNDERBOLT_CONTROLLER
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_controller_set_port_online_cb(gpointer user_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:191,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:191,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:194,1
    - Dst: g_message
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:195,1
    - Dst: fu_thunderbolt_udev_set_port_offline
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:199,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:199,1
    - Dst: fu_thunderbolt_udev_rescan_port
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:201,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:201,1
    - Dst: g_source_remove
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:204,1
    - Dst: g_timeout_add_seconds_full
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:206,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuThunderboltController*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 188
    functionDepth: 6
    functionLinenumber: 188
    functionLinenumberEnd: 212
    functionName: fu_thunderbolt_controller_setup_usb4
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - g_message
    - fu_context_has_flag
    - g_source_remove
    - g_timeout_add_seconds_full
    - fu_device_get_context
    - fu_thunderbolt_udev_rescan_port
    - FU_DEVICE
    - g_object_ref
    - FU_UDEV_DEVICE
    - fu_thunderbolt_udev_set_port_offline
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thunderbolt_controller_setup_usb4(FuThunderboltController
      *self, GError **error)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: FU_THUNDERBOLT_CONTROLLER
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:217,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:222,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:223,1
    - Dst: fu_thunderbolt_udev_get_attr_uint16
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:227,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:227,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:229,1
    - Dst: fu_thunderbolt_device_set_retries
      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: fu_device_has_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:235,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:235,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:237,1
    - Dst: fu_thunderbolt_controller_setup_usb4
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:238,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:239,1
    - Dst: fu_thunderbolt_device_get_version
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:243,1
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:243,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:245,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:246,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:246,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:249,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:253,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:255,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:257,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:259,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:262,1
    - Dst: fu_device_set_summary
      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_name
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:271,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:275,1
    - Dst: fu_thunderbolt_controller_ensure_fallback_name
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:276,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:279,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:279,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:284,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:286,1
    - Dst: fu_thunderbolt_controller_check_safe_mode
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:287,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:290,1
    - Dst: fu_thunderbolt_controller_can_update
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:294,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:295,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:295,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:296,1
    - Dst: fu_thunderbolt_controller_read_status_block
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:302,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:307,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:312,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:313,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:317,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:318,1
    - Dst: fu_thunderbolt_device_check_authorized
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:321,1
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:321,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:326,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:332,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:334,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:339,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:339,1
    - Dst: fu_thunderbolt_device_set_auth_method
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:344,1
    - Dst: FU_THUNDERBOLT_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:344,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:347,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:349,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:351,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:353,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:358,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:360,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 81
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 214
    functionDepth: 7
    functionLinenumber: 214
    functionLinenumberEnd: 364
    functionName: fu_thunderbolt_controller_setup
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_THUNDERBOLT_DEVICE
    - fu_device_get_pid
    - fu_device_add_private_flag
    - g_strdup_printf
    - fu_thunderbolt_device_check_authorized
    - fu_device_get_name
    - fu_device_add_instance_id
    - g_debug
    - g_set_error_literal
    - fu_thunderbolt_controller_check_safe_mode
    - fu_device_set_summary
    - fu_device_set_vendor
    - fu_thunderbolt_udev_get_attr_uint16
    - FU_THUNDERBOLT_CONTROLLER
    - g_propagate_error
    - fu_thunderbolt_device_set_auth_method
    - fu_thunderbolt_controller_setup_usb4
    - fu_udev_device_get_sysfs_path
    - g_path_get_basename
    - fu_device_build_vendor_id_u16
    - fu_thunderbolt_device_set_retries
    - fu_thunderbolt_controller_ensure_fallback_name
    - FU_DEVICE
    - fu_device_get_vid
    - fu_device_set_name
    - g_warning
    - fu_udev_device_read_sysfs
    - fu_device_set_update_error
    - FU_UDEV_DEVICE
    - fu_device_remove_private_flag
    - fu_thunderbolt_controller_read_status_block
    - fu_thunderbolt_controller_can_update
    - g_steal_pointer
    - fu_device_has_private_flag
    - fu_device_get_version
    - fu_thunderbolt_device_get_version
    - g_error_matches
    - g_autoptr
    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:374,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:377,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:378,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: 380
      start: 366
    functionDepth: 6
    functionLinenumber: 366
    functionLinenumberEnd: 380
    functionName: fu_thunderbolt_controller_write_firmware
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_has_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:385,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:385,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:386,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuThunderboltController*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 382
    functionDepth: 6
    functionLinenumber: 382
    functionLinenumberEnd: 388
    functionName: fu_thunderbolt_controller_init
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - FU_DEVICE
    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:393,1
    - Dst: g_source_remove
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:396,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 399
    functionName: fu_thunderbolt_controller_finalize
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c
    functionUses: 0
    functionsReached:
    - FU_THUNDERBOLT_CONTROLLER
    - g_source_remove
    - 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:404,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-controller.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuThunderboltControllerClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 411
    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:
    - g_strdup_printf
    - umockdev_testbed_add_device
    - g_assert_nonnull
    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:
    - g_strdup_printf
    - umockdev_testbed_add_device
    - g_assert_nonnull
    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:
    - FuThunderboltMockTree*
    - FuThunderboltMockDevice*
    - 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_strdup
    - g_uuid_string_random
    linkageType: ''
    returnType: FuThunderboltMockTree
    signature: 'FuThunderboltMockTree *

      mock_tree_new(FuThunderboltMockTree *parent, FuThunderboltMockDevice *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:
    - FuThunderboltMockTree*
    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:
    - mock_tree_free
    - g_slice_free
    - g_object_unref
    - umockdev_testbed_uevent
    - g_ptr_array_free
    - g_free
    - umockdev_testbed_remove_device
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void mock_tree_free(FuThunderboltMockTree *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:
    - FuThunderboltMockTree*
    - 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_init_children
    - g_ptr_array_new
    - g_ptr_array_add
    - mock_tree_new
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      mock_tree_init_children(FuThunderboltMockTree *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:
    - FuThunderboltMockDevice*
    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_init_children
    - mock_tree_new
    linkageType: ''
    returnType: FuThunderboltMockTree
    signature: 'FuThunderboltMockTree *

      mock_tree_init(FuThunderboltMockDevice *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:
    - FuThunderboltMockTree*
    - 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_debug
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void mock_tree_dump(const FuThunderboltMockTree *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:
    - FuThunderboltMockTree*
    - 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_bytes_get_data
    - g_file_read
    - g_input_stream_read_bytes
    - g_assert_nonnull
    - g_checksum_new
    - g_assert_no_error
    - g_checksum_update
    - g_checksum_get_string
    - g_file_new_for_path
    - g_assert_cmpstr
    - g_autoptr
    - g_compute_checksum_for_bytes
    - g_file_get_child
    linkageType: ''
    returnType: void
    signature: void mock_tree_firmware_verify(const FuThunderboltMockTree *node, GBytes
      *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: predicate
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:272,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:279,1
    - Dst: mock_tree_contains
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - node
    - predicate
    - data
    argTypes:
    - FuThunderboltMockTree*
    - FuThunderboltMockTreePredicate
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 286
    functionName: mock_tree_contains
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 1
    functionsReached:
    - mock_tree_contains
    - predicate
    - g_ptr_array_index
    linkageType: ''
    returnType: FuThunderboltMockTree
    signature: "FuThunderboltMockTree *\nmock_tree_contains(const FuThunderboltMockTree
      *node,\n\t\t   FuThunderboltMockTreePredicate predicate,\n\t\t   gpointer data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: predicate
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:293,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:299,1
    - Dst: mock_tree_all
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - node
    - predicate
    - data
    argTypes:
    - FuThunderboltMockTree*
    - FuThunderboltMockTreePredicate
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 305
    functionName: mock_tree_all
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 1
    functionsReached:
    - predicate
    - mock_tree_all
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: "gboolean mock_tree_all(const FuThunderboltMockTree *node,\n\t      FuThunderboltMockTreePredicate
      predicate,\n\t      gpointer data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_str_equal
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - data
    argTypes:
    - FuThunderboltMockTree*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 312
    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 FuThunderboltMockTree *node,
      gpointer data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mock_tree_contains
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - uuid
    argTypes:
    - FuThunderboltMockTree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 318
    functionName: mock_tree_find_uuid
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - mock_tree_contains
    linkageType: ''
    returnType: FuThunderboltMockTree
    signature: 'FuThunderboltMockTree *

      mock_tree_find_uuid(const FuThunderboltMockTree *root, const char *uuid)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - data
    argTypes:
    - FuThunderboltMockTree*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 324
    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 FuThunderboltMockTree
      *node, gpointer data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - 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:333,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:334,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:335,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:336,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:337,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:341,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:342,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:343,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:344,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:345,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:346,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:347,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:349,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:350,1
    - Dst: g_file_get_child
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:352,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:353,1
    - Dst: g_file_append_to
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:355,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:356,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:357,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:359,1
    - Dst: g_output_stream_splice
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:361,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:362,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - nvm
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 326
    functionDepth: 5
    functionLinenumber: 326
    functionLinenumberEnd: 364
    functionName: write_controller_fw
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_output_stream_splice
    - g_memory_input_stream_new_from_bytes
    - g_assert_cmpuint
    - g_assert_nonnull
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - g_file_append_to
    - g_file_new_for_path
    - g_test_build_filename
    - g_autoptr
    - 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:374,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:375,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:376,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:378,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:379,1
    - Dst: umockdev_testbed_add_device
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:381,1
    - Dst: udev_mock_add_nvmem
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:406,1
    - Dst: udev_mock_add_nvmem
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:408,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:410,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:411,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:412,1
    - Dst: write_controller_fw
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:414,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:419,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:421,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:422,1
    - Dst: g_timeout_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 366
    functionDepth: 6
    functionLinenumber: 366
    functionLinenumberEnd: 428
    functionName: mock_tree_attach_device
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - umockdev_testbed_add_device
    - udev_mock_add_nvmem
    - write_controller_fw
    - g_assert_nonnull
    - g_strdup_printf
    - g_object_ref
    - g_timeout_add
    - g_ptr_array_index
    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:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 441
    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:448,1
    - Dst: mock_tree_find_uuid
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:451,1
    - Dst: g_critical
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:454,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:459,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 443
    functionDepth: 3
    functionLinenumber: 443
    functionLinenumberEnd: 462
    functionName: sync_device_added
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_critical
    - g_object_unref
    - mock_tree_find_uuid
    - fu_device_get_physical_id
    - g_object_ref
    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:469,1
    - Dst: mock_tree_find_uuid
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:472,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:475,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:479,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 484
    functionName: sync_device_removed
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_clear_object
    - mock_tree_find_uuid
    - fu_device_get_physical_id
    - g_warning
    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:489,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:489,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:497,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:497,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:499,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:502,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:502,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:504,1
    - Dst: g_timeout_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:508,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:510,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:512,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - root
    - plugin
    - timeout_ms
    argTypes:
    - FuThunderboltMockTree*
    - FuPlugin*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 514
    functionName: mock_tree_sync
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - g_main_loop_new
    - g_signal_connect
    - g_main_loop_run
    - G_CALLBACK
    - g_timeout_add
    - g_autoptr
    - g_signal_handler_disconnect
    linkageType: ''
    returnType: void
    signature: void mock_tree_sync(FuThunderboltMockTree *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:529,1
    - Dst: mock_tree_find_uuid
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:532,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:535,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:539,1
    - Dst: mock_tree_all
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:541,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 524
    functionDepth: 3
    functionLinenumber: 524
    functionLinenumberEnd: 545
    functionName: mock_tree_plugin_device_added
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - mock_tree_find_uuid
    - g_set_object
    - fu_device_get_physical_id
    - g_warning
    - 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:550,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:550,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:557,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:557,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:559,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:562,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - root
    - plugin
    argTypes:
    - FuThunderboltMockTree*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 566
    functionName: mock_tree_settle
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - g_main_loop_new
    - g_signal_connect
    - g_main_loop_run
    - G_CALLBACK
    - g_autoptr
    - g_signal_handler_disconnect
    linkageType: ''
    returnType: gboolean
    signature: gboolean mock_tree_settle(FuThunderboltMockTree *root, FuPlugin *plugin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:571,1
    - Dst: udev_mock_add_usb4_port
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:572,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:573,1
    - Dst: g_timeout_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:575,1
    - Dst: mock_tree_settle
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - root
    - bed
    - plugin
    argTypes:
    - FuThunderboltMockTree*
    - UMockdevTestbed*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 578
    functionName: mock_tree_attach
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_nonnull
    - g_object_ref
    - mock_tree_settle
    - g_timeout_add
    - udev_mock_add_usb4_port
    linkageType: ''
    returnType: gboolean
    signature: gboolean mock_tree_attach(FuThunderboltMockTree *root, UMockdevTestbed
      *bed, FuPlugin *plugin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_null
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:590,1
    - Dst: g_assert_null
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:591,1
    - Dst: g_assert_null
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:592,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:594,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:595,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - node
    - unused
    argTypes:
    - FuThunderboltMockTree*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 600
    functionName: mock_tree_node_is_detached
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_null
    - g_assert_nonnull
    linkageType: ''
    returnType: gboolean
    signature: gboolean mock_tree_node_is_detached(const FuThunderboltMockTree *node,
      gpointer unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mock_tree_node_is_detached
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:607,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:611,1
    - Dst: mock_tree_detach
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:612,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:613,1
    - Dst: umockdev_testbed_uevent
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:617,1
    - Dst: umockdev_testbed_remove_device
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:618,1
    - Dst: umockdev_testbed_uevent
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:620,1
    - Dst: umockdev_testbed_remove_device
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:621,1
    - Dst: umockdev_testbed_uevent
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:623,1
    - Dst: umockdev_testbed_remove_device
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:624,1
    - Dst: g_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:626,1
    - Dst: g_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:627,1
    - Dst: g_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:628,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - node
    argTypes:
    - FuThunderboltMockTree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 636
    functionName: mock_tree_detach
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 1
    functionsReached:
    - g_object_unref
    - umockdev_testbed_uevent
    - g_free
    - mock_tree_detach
    - umockdev_testbed_remove_device
    - g_clear_pointer
    - g_ptr_array_index
    - mock_tree_node_is_detached
    linkageType: ''
    returnType: void
    signature: void mock_tree_detach(FuThunderboltMockTree *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_file_monitor_cancel
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:665,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:667,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:668,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:669,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:670,1
    - Dst: g_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:671,1
    - Dst: g_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuThunderboltUpdateContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 673
    functionName: update_context_free
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_bytes_unref
    - g_free
    - g_file_monitor_cancel
    linkageType: ''
    returnType: void
    signature: void update_context_free(FuThunderboltUpdateContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:686,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:688,1
    - Dst: g_timeout_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 692
    functionName: reattach_tree
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_timeout_add
    - g_object_ref
    - g_debug
    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:705,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:707,1
    - Dst: g_file_monitor_cancel
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:708,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:709,1
    - Dst: g_file_load_contents
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:711,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:712,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:713,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:715,1
    - Dst: mock_tree_firmware_verify
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:719,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:721,1
    - Dst: mock_tree_detach
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:722,1
    - Dst: g_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:728,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:729,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:732,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:737,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:742,1
    - Dst: g_timeout_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:743,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: 744
      start: 694
    functionDepth: 2
    functionLinenumber: 694
    functionLinenumberEnd: 744
    functionName: udev_file_changed_cb
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - mock_tree_detach
    - g_debug
    - g_timeout_add
    - g_assert_no_error
    - g_file_load_contents
    - g_free
    - g_file_monitor_cancel
    - g_assert_true
    - g_str_has_prefix
    - g_autoptr
    - mock_tree_firmware_verify
    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:754,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:755,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:756,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:759,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:760,1
    - Dst: g_file_get_child
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:761,1
    - Dst: g_file_monitor_file
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:763,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:764,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:765,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:768,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:769,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:772,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:773,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:775,1
    - Dst: G_FILE_MONITOR
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:775,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 5
    argNames:
    - node
    - plugin
    - version
    - fw_data
    - timeout_ms
    argTypes:
    - FuThunderboltMockTree*
    - FuPlugin*
    - char*
    - GBytes*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 778
    functionName: mock_tree_prepare_for_update
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_bytes_ref
    - g_new0
    - g_signal_connect
    - g_file_monitor_file
    - g_assert_nonnull
    - g_assert_no_error
    - g_object_ref
    - G_CALLBACK
    - g_file_new_for_path
    - g_autoptr
    - G_FILE_MONITOR
    - g_file_get_child
    linkageType: ''
    returnType: FuThunderboltUpdateContext
    signature: "FuThunderboltUpdateContext *\nmock_tree_prepare_for_update(FuThunderboltMockTree
      *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:870,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:871,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:872,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:873,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:873,1
    - Dst: fu_udev_device_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:875,1
    - Dst: g_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:875,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:876,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:876,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:877,1
    - Dst: fu_plugin_runner_backend_device_added
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:880,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:881,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:884,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:887,1
    - Dst: fu_plugin_remove_device
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:889,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:892,1
    - Dst: g_udev_device_get_sysfs_attr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:894,1
    - Dst: mock_tree_find_uuid
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:896,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:897,1
    - Dst: fu_udev_device_emit_changed
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:898,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:898,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - gudev_client
    - action
    - udev_device
    - tt
    argTypes:
    - GUdevClient*
    - gchar*
    - GUdevDevice*
    - FuThunderboltTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 864
    functionDepth: 6
    functionLinenumber: 864
    functionLinenumberEnd: 901
    functionName: fu_thunderbolt_gudev_uevent_cb
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - fu_plugin_runner_backend_device_added
    - g_strcmp0
    - g_udev_device_get_sysfs_attr
    - fu_plugin_remove_device
    - fu_udev_device_new
    - g_debug
    - mock_tree_find_uuid
    - g_assert_nonnull
    - FU_DEVICE
    - fu_progress_new
    - g_warning
    - g_udev_device_get_sysfs_path
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_udev_device_emit_changed
    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
      \      FuThunderboltTest *tt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GPOINTER_TO_UINT
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:905,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:908,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:909,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:909,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:912,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:913,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:916,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:917,1
    - Dst: umockdev_testbed_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:919,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:920,1
    - Dst: umockdev_testbed_get_sys_dir
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:922,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:923,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:925,1
    - Dst: fu_thunderbolt_plugin_get_type
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:925,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:927,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:929,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:930,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:931,1
    - Dst: mock_tree_init
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:934,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:935,1
    - Dst: umockdev_in_mock_environment
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:938,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:939,1
    - Dst: g_udev_client_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:943,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:944,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:945,1
    - Dst: G_UDEV_CLIENT
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:945,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:947,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:951,1
    - Dst: mock_tree_attach
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:953,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:954,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:959,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:960,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:963,1
    - Dst: fu_firmware_new_from_filename
      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: fu_firmware_write
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:967,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:968,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:969,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:970,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:971,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 2
    argNames:
    - tt
    - params
    argTypes:
    - FuThunderboltTest*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 902
    functionDepth: 6
    functionLinenumber: 902
    functionLinenumberEnd: 973
    functionName: test_set_up
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_context_new
    - g_memory_input_stream_new_from_bytes
    - g_assert_nonnull
    - GPOINTER_TO_UINT
    - fu_progress_new
    - fu_context_load_quirks
    - fu_thunderbolt_plugin_get_type
    - g_debug
    - fu_plugin_new_from_gtype
    - g_signal_connect
    - fu_plugin_runner_startup
    - g_udev_client_new
    - mock_tree_attach
    - g_warning
    - mock_tree_init
    - umockdev_testbed_new
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - umockdev_testbed_get_sys_dir
    - G_CALLBACK
    - g_assert_true
    - g_test_build_filename
    - umockdev_in_mock_environment
    - g_autoptr
    - G_UDEV_CLIENT
    linkageType: ''
    returnType: void
    signature: void test_set_up(FuThunderboltTest *tt, gconstpointer params)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:978,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:979,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:980,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:981,1
    - Dst: mock_tree_free
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:984,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:987,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:989,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - tt
    - user_data
    argTypes:
    - FuThunderboltTest*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 975
    functionDepth: 2
    functionLinenumber: 975
    functionLinenumberEnd: 990
    functionName: test_tear_down
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_bytes_unref
    - mock_tree_free
    linkageType: ''
    returnType: void
    signature: void test_tear_down(FuThunderboltTest *tt, gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:999,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1001,1
    - Dst: mock_tree_find_uuid
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1003,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1004,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1005,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - node
    - data
    argTypes:
    - FuThunderboltMockTree*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 992
    functionDepth: 3
    functionLinenumber: 992
    functionLinenumberEnd: 1010
    functionName: test_tree_uuids
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - mock_tree_find_uuid
    - g_assert_nonnull
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: gboolean test_tree_uuids(const FuThunderboltMockTree *node, gpointer
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1017,1
    - Dst: mock_tree_init
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1019,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1020,1
    - Dst: mock_tree_dump
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1022,1
    - Dst: mock_tree_contains
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1024,1
    - Dst: mock_tree_find_uuid
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1026,1
    - Dst: g_assert_null
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1027,1
    - Dst: mock_tree_attach
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1029,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1030,1
    - Dst: mock_tree_detach
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1032,1
    - Dst: mock_tree_all
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1033,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - tt
    - user_data
    argTypes:
    - FuThunderboltTest*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1012
    functionDepth: 3
    functionLinenumber: 1012
    functionLinenumberEnd: 1035
    functionName: test_tree
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - mock_tree_dump
    - mock_tree_contains
    - mock_tree_find_uuid
    - g_assert_nonnull
    - g_assert_null
    - mock_tree_attach
    - mock_tree_all
    - mock_tree_detach
    - g_assert_true
    - g_autoptr
    - mock_tree_init
    linkageType: ''
    returnType: void
    signature: void test_tree(FuThunderboltTest *tt, gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      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: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1046,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1047,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1048,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1049,1
    - Dst: fu_intel_thunderbolt_nvm_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1049,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1053,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1054,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1055,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1056,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1059,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1060,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1061,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1062,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1065,1
    - Dst: g_mapped_file_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1066,1
    - Dst: g_assert_no_error
      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: g_mapped_file_get_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1070,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1071,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1074,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1079,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1080,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1081,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1082,1
    - Dst: fu_firmware_check_compatible
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1085,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1089,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 2
    argNames:
    - tt
    - user_data
    argTypes:
    - FuThunderboltTest*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1037
    functionDepth: 5
    functionLinenumber: 1037
    functionLinenumberEnd: 1091
    functionName: test_image_validation
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_mapped_file_new
    - g_assert_true
    - g_debug
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - g_clear_error
    - fu_firmware_parse_bytes
    - g_assert_false
    - g_mapped_file_get_bytes
    - fu_intel_thunderbolt_nvm_new
    - g_test_build_filename
    - fu_firmware_check_compatible
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void test_image_validation(FuThunderboltTest *tt, gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1102,1
    - Dst: umockdev_testbed_set_attribute
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1106,1
    - Dst: umockdev_testbed_uevent
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1107,1
    - Dst: mock_tree_sync
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1110,1
    - Dst: mock_tree_all
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1113,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1114,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1117,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - tt
    - user_data
    argTypes:
    - FuThunderboltTest*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1093
    functionDepth: 2
    functionLinenumber: 1093
    functionLinenumberEnd: 1119
    functionName: test_change_uevent
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - g_assert_nonnull
    - umockdev_testbed_uevent
    - fu_device_get_version
    - mock_tree_all
    - g_assert_true
    - umockdev_testbed_set_attribute
    - mock_tree_sync
    linkageType: ''
    returnType: void
    signature: void test_change_uevent(FuThunderboltTest *tt, gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1129,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1130,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1131,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1131,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1134,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1135,1
    - Dst: mock_tree_prepare_for_update
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1139,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1140,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1141,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1147,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1148,1
    - Dst: mock_tree_settle
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1152,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1153,1
    - Dst: fu_plugin_runner_attach
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1155,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1156,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1157,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1159,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1160,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1161,1
    - Dst: mock_tree_settle
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1164,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1165,1
    - Dst: mock_tree_all
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1170,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - tt
    - user_data
    argTypes:
    - FuThunderboltTest*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1121
    functionDepth: 4
    functionLinenumber: 1121
    functionLinenumberEnd: 1172
    functionName: test_update_working
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_assert_nonnull
    - g_assert_no_error
    - mock_tree_prepare_for_update
    - fu_plugin_runner_attach
    - fu_progress_new
    - fu_plugin_runner_write_firmware
    - fu_device_get_version
    - mock_tree_all
    - mock_tree_settle
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void test_update_working(FuThunderboltTest *tt, gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1183,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1184,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1184,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1187,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1188,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1191,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1192,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1193,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1195,1
    - Dst: g_assert_no_error
      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_has_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1204,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1205,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1207,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - tt
    - user_data
    argTypes:
    - FuThunderboltTest*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1174
    functionDepth: 6
    functionLinenumber: 1174
    functionLinenumberEnd: 1209
    functionName: test_update_wd19
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_private_flag
    - g_assert_nonnull
    - g_assert_no_error
    - fu_device_get_version
    - fu_progress_new
    - fu_plugin_runner_write_firmware
    - fu_device_has_flag
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void test_update_wd19(FuThunderboltTest *tt, gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1219,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1220,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1221,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1221,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1224,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1225,1
    - Dst: mock_tree_prepare_for_update
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1230,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1233,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1239,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1240,1
    - Dst: mock_tree_settle
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1245,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1246,1
    - Dst: fu_plugin_runner_attach
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1248,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1249,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1250,1
    - Dst: mock_tree_settle
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1253,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1254,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1257,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1258,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1259,1
    - Dst: mock_tree_all
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1261,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - tt
    - user_data
    argTypes:
    - FuThunderboltTest*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1211
    functionDepth: 4
    functionLinenumber: 1211
    functionLinenumberEnd: 1263
    functionName: test_update_fail
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - mock_tree_prepare_for_update
    - fu_plugin_runner_attach
    - fu_progress_new
    - fu_plugin_runner_write_firmware
    - g_assert_false
    - fu_device_get_version
    - mock_tree_all
    - mock_tree_settle
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void test_update_fail(FuThunderboltTest *tt, gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1272,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1273,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1274,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1274,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1277,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1278,1
    - Dst: mock_tree_prepare_for_update
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1283,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1286,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1292,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1293,1
    - Dst: mock_tree_sync
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1295,1
    - Dst: mock_tree_all
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1297,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - tt
    - user_data
    argTypes:
    - FuThunderboltTest*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1265
    functionDepth: 3
    functionLinenumber: 1265
    functionLinenumberEnd: 1299
    functionName: test_update_fail_nowshow
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_nonnull
    - g_assert_no_error
    - mock_tree_prepare_for_update
    - fu_progress_new
    - fu_plugin_runner_write_firmware
    - g_assert_false
    - mock_tree_all
    - g_assert_true
    - g_autoptr
    - mock_tree_sync
    linkageType: ''
    returnType: void
    signature: void test_update_fail_nowshow(FuThunderboltTest *tt, gconstpointer
      user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1304,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1305,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1307,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1314,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1321,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1323,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1328,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1335,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1342,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1348,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/thunderbolt/fu-self-test.c:1355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1301
    functionDepth: 0
    functionLinenumber: 1301
    functionLinenumberEnd: 1356
    functionName: main
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    functionUses: 4
    functionsReached:
    - g_setenv
    - g_test_init
    - GUINT_TO_POINTER
    - g_test_run
    - g_test_add
    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_plugin_get_config_value
    - fu_kernel_check_version
    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_device_add_private_flag
    - fu_plugin_get_context
    - fu_context_has_hwid_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_flag
    - g_strcmp0
    - g_info
    - fu_plugin_get_config_value_boolean
    - fu_device_add_private_flag
    - fu_device_get_plugin
    - fu_device_has_flag
    - fu_device_get_name
    - fu_device_remove_private_flag
    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_offline_parent_port
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:69,1
    - Dst: FU_THUNDERBOLT_RETIMER
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 61
    functionDepth: 6
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: fu_thunderbolt_plugin_composite_prepare
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_device_has_private_flag
    - fu_device_get_plugin
    - fu_thunderbolt_retimer_offline_parent_port
    - FU_THUNDERBOLT_RETIMER
    - g_ptr_array_index
    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:81,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:82,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:82,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:83,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:84,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:85,1
    - Dst: fu_thunderbolt_retimer_online_parent_port
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:86,1
    - Dst: FU_THUNDERBOLT_RETIMER
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 77
    functionDepth: 6
    functionLinenumber: 77
    functionLinenumberEnd: 92
    functionName: fu_thunderbolt_plugin_composite_cleanup
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_device_sleep
    - fu_thunderbolt_retimer_online_parent_port
    - fu_device_has_private_flag
    - fu_device_get_plugin
    - FU_THUNDERBOLT_RETIMER
    - g_ptr_array_index
    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:101,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:102,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - plugin
    - key
    - value
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 110
    functionName: fu_thunderbolt_plugin_modify_config
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c
    functionUses: 0
    functionsReached:
    - g_strv_contains
    - fu_plugin_set_config_value
    - g_set_error
    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: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    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:120,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:121,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:122,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:123,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:126,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:127,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 131
    functionName: fu_thunderbolt_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/thunderbolt/fu-thunderbolt-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - fu_plugin_set_config_default
    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:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuThunderboltPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 144
    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:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-firmware.c:58,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-firmware.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEp963xFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: fu_ep963x_firmware_init
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEp963xFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    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: 6
    functionLinenumber: 22
    functionLinenumberEnd: 58
    functionName: fu_ep963x_device_write
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_hid_device_set_report
    - FU_DEVICE
    - FU_HID_DEVICE
    - fu_memcpy_safe
    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: 7
    functionLinenumber: 60
    functionLinenumberEnd: 108
    functionName: fu_ep963x_device_write_icp
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-device.c
    functionUses: 0
    functionsReached:
    - fu_ep963x_smbus_error_to_string
    - g_debug
    - fu_ep963x_device_write
    - fu_hid_device_get_report
    - fu_device_sleep
    - g_set_error_literal
    - FU_DEVICE
    - FU_HID_DEVICE
    - fu_memcpy_safe
    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: 8
    functionLinenumber: 110
    functionLinenumberEnd: 140
    functionName: fu_ep963x_device_detach
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_ep963x_device_write_icp
    - g_debug
    - g_set_error
    - FU_EP963X_DEVICE
    - fu_device_has_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: 7
    functionLinenumber: 142
    functionLinenumberEnd: 168
    functionName: fu_ep963x_device_attach
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - g_set_error
    - fu_ep963x_device_write
    - FU_EP963X_DEVICE
    - fu_device_has_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: 8
    functionLinenumber: 170
    functionLinenumberEnd: 203
    functionName: fu_ep963x_device_setup
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_ep963x_device_write_icp
    - fu_device_set_version
    - FU_EP963X_DEVICE
    - fu_device_remove_flag
    - g_strdup_printf
    - FU_DEVICE_CLASS
    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: 6
    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: 7
    functionLinenumber: 229
    functionLinenumberEnd: 361
    functionName: fu_ep963x_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-device.c
    functionUses: 0
    functionsReached:
    - fu_ep963x_device_write
    - fu_chunk_get_data_sz
    - fu_progress_add_flag
    - g_autoptr
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_bytes
    - fu_progress_set_percentage_full
    - fu_progress_add_step
    - fu_progress_step_done
    - fu_chunk_get_data
    - fu_device_retry
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_chunk_get_address
    - fu_progress_set_id
    - fu_firmware_get_stream
    - g_set_error
    - fu_chunk_array_index
    - FU_EP963X_DEVICE
    - fu_chunk_array_new_from_bytes
    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:
    - device
    - 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_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_ep963x_device_set_progress(FuDevice *device, 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_add_flag
    - fu_device_retry_set_delay
    - fu_device_set_remove_delay
    - fu_device_set_firmware_size
    - FU_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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_add_udev_subsystem
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c:29,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c:30,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c:31,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: fu_ep963x_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_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:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEp963xPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: fu_ep963x_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/ep963x/fu-ep963x-plugin.c
    functionUses: 0
    functionsReached:
    - 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_to_string
    - g_file_load_contents
    - g_strstr_len
    - fu_plugin_add_report_metadata
    - FU_LINUX_LOCKDOWN_PLUGIN
    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_PLUGIN
    - fu_plugin_get_context
    - fu_context_security_changed
    - fu_linux_lockdown_plugin_rescan
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:63,1
    - Dst: FU_LINUX_LOCKDOWN_PLUGIN
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:64,1
    - Dst: fu_context_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:71,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:72,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:78,1
    - Dst: g_file_monitor
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:79,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:82,1
    - Dst: G_FILE_MONITOR
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:82,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:84,1
    - Dst: fu_linux_lockdown_plugin_rescan
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 88
    functionName: fu_linux_lockdown_plugin_startup
    functionSourceFile: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c
    functionUses: 0
    functionsReached:
    - g_signal_connect
    - fu_context_build_filename
    - g_set_error_literal
    - fu_plugin_get_context
    - g_file_test
    - fu_linux_lockdown_plugin_rescan
    - G_CALLBACK
    - g_file_monitor
    - g_file_new_for_path
    - G_FILE_MONITOR
    - FU_LINUX_LOCKDOWN_PLUGIN
    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:95,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:95,1
    - Dst: fu_context_get_path_store
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:96,1
    - Dst: fu_context_get_efivars
      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:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:101,1
    - Dst: fu_kernel_get_cmdline
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:104,1
    - Dst: fu_kernel_check_cmdline_mutable
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:109,1
    - Dst: fu_kernel_get_config
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:113,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:116,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:117,1
    - Dst: fu_efivars_get_secure_boot
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:125,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:127,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:129,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:138,1
    - Dst: fwupd_security_attr_set_kernel_current_value
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:139,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:140,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
    - Dst: fwupd_security_attr_set_kernel_target_value
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:144,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:145,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuLinuxLockdownPlugin*
    - FwupdSecurityAttr*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 148
    functionName: fu_linux_lockdown_plugin_ensure_security_attr_flags
    functionSourceFile: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - FU_PLUGIN
    - g_hash_table_contains
    - fwupd_security_attr_add_flag
    - fu_efivars_get_secure_boot
    - g_set_error_literal
    - g_hash_table_lookup
    - fu_plugin_get_context
    - fu_kernel_get_cmdline
    - fu_context_get_path_store
    - fu_context_get_efivars
    - fwupd_security_attr_set_kernel_target_value
    - fwupd_security_attr_set_kernel_current_value
    - fu_kernel_get_config
    - fu_kernel_check_cmdline_mutable
    - g_autoptr
    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:153,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:154,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:155,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:158,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:159,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:160,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:161,1
    - Dst: fu_linux_lockdown_plugin_ensure_security_attr_flags
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:164,1
    - Dst: g_info
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:165,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:168,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:174,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:178,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:179,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 185
    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
    - g_info
    - fwupd_security_attr_set_result
    - fu_plugin_security_attr_new
    - fu_linux_lockdown_plugin_ensure_security_attr_flags
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    - FU_LINUX_LOCKDOWN_PLUGIN
    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:190,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:191,1
    - Dst: fu_linux_lockdown_to_string
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 195
    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
    - fwupd_codec_string_append
    - FU_LINUX_LOCKDOWN_PLUGIN
    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: 200
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 200
    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:205,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:207,1
    - Dst: g_file_monitor_cancel
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:209,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:210,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 213
    functionName: fu_linux_lockdown_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_file_monitor_cancel
    - G_OBJECT_CLASS
    - 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:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - attr
    - error
    argTypes:
    - FuPlugin*
    - FwupdSecurityAttr*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 221
    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:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - attr
    - error
    argTypes:
    - FuPlugin*
    - FwupdSecurityAttr*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 229
    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:234,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLinuxLockdownPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 243
    functionName: fu_linux_lockdown_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/linux-lockdown/fu-linux-lockdown-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    - G_OBJECT_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_udev_subsystem
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-plugin.c:29,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-plugin.c:30,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: fu_elanfp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElanfpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    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_literal
      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_literal
      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: 4
    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_literal
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_usb_device_bulk_transfer
    - fu_memcpy_safe
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    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:130,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:130,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:138,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuElanfpDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 153
    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_literal
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_usb_device_bulk_transfer
    - 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:169,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:169,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:180,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:193,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:193,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:204,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: 218
      start: 155
    functionDepth: 4
    functionLinenumber: 155
    functionLinenumberEnd: 218
    functionName: fu_elanfp_device_do_xfer
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - fu_usb_device_bulk_transfer
    - 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:223,1
    - Dst: fu_elanfp_device_do_xfer
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:229,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:237,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:240,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:241,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 220
    functionDepth: 5
    functionLinenumber: 220
    functionLinenumberEnd: 246
    functionName: fu_elanfp_device_setup
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_prefix_error_literal
    - g_strdup_printf
    - fu_memread_uint16
    - FU_ELANFP_DEVICE
    - fu_elanfp_device_do_xfer
    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:254,1
    - Dst: fu_firmware_get_chunks
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:257,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:260,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:261,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:263,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:274,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:277,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:286,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:289,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:295,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:298,1
    - Dst: fu_chunk_get_data_sz
      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:301,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:303,1
    - Dst: fu_elanfp_device_iap_send_command
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:306,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:313,1
    - Dst: fu_elanfp_device_iap_recv_status
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:316,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:317,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:321,1
    - Dst: fu_cfu_content_status_to_string
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:326,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:329,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 4
    argNames:
    - self
    - payload
    - progress
    - error
    argTypes:
    - FuElanfpDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 248
    functionDepth: 5
    functionLinenumber: 248
    functionLinenumberEnd: 334
    functionName: fu_elanfp_device_write_payload
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
    functionUses: 0
    functionsReached:
    - fu_elanfp_device_iap_send_command
    - fu_elanfp_device_iap_recv_status
    - g_set_error
    - fu_memwrite_uint16_safe
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error_literal
    - fu_progress_step_done
    - fu_chunk_get_address
    - fu_chunk_get_data
    - fu_cfu_content_status_to_string
    - fu_memwrite_uint32_safe
    - fu_memcpy_safe
    - fu_firmware_get_chunks
    - g_autoptr
    - g_ptr_array_index
    - fu_progress_set_id
    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:343,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:364,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:367,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:368,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:369,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:373,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:376,1
    - Dst: fu_elanfp_device_iap_send_command
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:379,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:382,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:383,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:384,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:386,1
    - Dst: fu_elanfp_device_iap_recv_status
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:389,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:390,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:393,1
    - Dst: fu_cfu_offer_status_to_string
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:395,1
    - Dst: fu_cfu_rr_code_to_string
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:396,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:401,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:407,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:410,1
    - Dst: fu_elanfp_device_write_payload
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:413,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:413,1
    - Dst: fu_elanfp_device_do_xfer
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:417,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:425,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:428,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:429,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: 433
      start: 336
    functionDepth: 6
    functionLinenumber: 336
    functionLinenumberEnd: 433
    functionName: fu_elanfp_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_firmware_get_image_by_idx
    - fu_elanfp_device_iap_recv_status
    - g_debug
    - g_set_error_literal
    - g_prefix_error_literal
    - FU_ELANFP_DEVICE
    - fu_elanfp_device_iap_send_command
    - fu_elanfp_device_write_payload
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_cfu_offer_status_to_string
    - fu_cfu_rr_code_to_string
    - g_bytes_get_size
    - g_autoptr
    - fu_firmware_get_image_by_idx_bytes
    - fu_elanfp_device_do_xfer
    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:438,1
    - Dst: fu_device_add_flag
      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_add_flag
      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_add_private_flag
      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_add_flag
      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_version_format
      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_device_set_remove_delay
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:445,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:445,1
    - Dst: fu_device_add_protocol
      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
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:447,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:447,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:448,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:448,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:449,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:449,1
    - Dst: fu_device_set_firmware_size_min
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:450,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:450,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:451,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:451,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:452,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:452,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:453,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:453,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:454,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuElanfpDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 435
    functionDepth: 6
    functionLinenumber: 435
    functionLinenumberEnd: 455
    functionName: fu_elanfp_device_init
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_set_firmware_size_min
    - fu_device_set_firmware_size_max
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_summary
    - FU_ELANFP_DEVICE
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - FU_USB_DEVICE
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:460,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:461,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:462,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:463,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:464,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 457
    functionDepth: 3
    functionLinenumber: 457
    functionLinenumberEnd: 466
    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 *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-device.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElanfpDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 475
    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_xmlb_builder_insert_kx
    - FU_ELANFP_FIRMWARE
    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:
    - FU_ELANFP_FIRMWARE
    - xb_node_query_text_as_uint
    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: 18
    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: fu_size_checked_inc
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:75,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:78,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:86,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:88,1
    - Dst: fu_cfu_offer_new
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:102,1
    - Dst: fu_cfu_payload_new
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:106,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:109,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:112,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:113,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:119,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:120,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:127,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:135,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:138,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:144,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:147,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:148,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 50
    functionDepth: 4
    functionLinenumber: 50
    functionLinenumberEnd: 155
    functionName: fu_elanfp_firmware_parse
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_addr
    - FU_ELANFP_FIRMWARE
    - fu_firmware_get_image_by_idx
    - g_set_error
    - fu_cfu_offer_new
    - fu_firmware_parse_stream
    - fu_cfu_payload_new
    - fu_firmware_add_image
    - g_prefix_error_literal
    - fu_firmware_set_idx
    - fu_firmware_new
    - g_autoptr
    - fu_size_checked_inc
    - fu_input_stream_read_u32
    - 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: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_ELANFP_FIRMWARE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:160,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:162,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:162,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:163,1
    - Dst: fu_firmware_get_images
      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:166,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:167,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:168,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:169,1
    - Dst: fu_size_checked_inc_product
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:172,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:173,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:176,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:177,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:182,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:183,1
    - Dst: fu_firmware_write
      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:186,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:186,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:187,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:188,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:189,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:189,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:190,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:190,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:191,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:197,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:198,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:199,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:200,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:204,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:205,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:205,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:208,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:212,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 213
    functionName: fu_elanfp_firmware_write
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - FU_ELANFP_FIRMWARE
    - fu_byte_array_append_bytes
    - fu_firmware_get_idx
    - g_steal_pointer
    - g_prefix_error_literal
    - g_prefix_error
    - fu_firmware_get_images
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - g_bytes_get_size
    - fu_size_checked_inc
    - g_autoptr
    - fu_size_checked_inc_product
    - g_ptr_array_index
    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:218,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:218,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:219,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:219,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:220,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:220,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:221,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElanfpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 222
    functionName: fu_elanfp_firmware_init
    functionSourceFile: /src/fwupd/plugins/elanfp/fu-elanfp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_set_size_max
    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:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElanfpFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 233
    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: 3
    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_literal
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:25,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:33,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 43
    functionName: fu_bios_plugin_startup
    functionSourceFile: /src/fwupd/plugins/bios/fu-bios-plugin.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - g_strcmp0
    - g_set_error_literal
    - fu_plugin_get_context
    - fu_context_get_hwid_value
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bios_plugin_startup(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:48,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:51,1
    - Dst: fu_efivars_supported
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:54,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:55,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:56,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:62,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:65,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:67,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:68,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:69,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 77
    functionName: fu_bios_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/bios/fu-bios-plugin.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_context_build_filename
    - fu_plugin_add_flag
    - fu_plugin_get_context
    - g_file_test
    - fu_context_get_efivars
    - g_autoptr
    - fu_efivars_supported
    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:82,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:84,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:88,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:89,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:90,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:92,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:93,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/bios/fu-bios-plugin.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 95
    functionName: fu_bios_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/bios/fu-bios-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_plugin_has_flag
    - fu_plugin_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - 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: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    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:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBiosPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    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: 2
    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:
    - g_strcmp0
    - fu_device_set_version
    - g_debug
    - fu_plugin_get_devices
    - FU_IS_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
    - fu_device_get_plugin
    - fu_device_get_version
    - FU_IS_LOGITECH_RALLYSYSTEM_AUDIO_DEVICE
    - g_ptr_array_index
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: fu_logitech_rallysystem_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechRallysystemPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    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_ensure_version
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_raw
    - fu_hidraw_device_get_feature
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_memread_uint24_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_rallysystem_audio_device_ensure_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:61,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:62,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:62,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:65,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:65,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:73,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:73,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:76,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:76,1
    - Dst: fu_struct_audio_serial_number_parse
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:85,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:88,1
    - Dst: fu_struct_audio_serial_number_get_pid
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:90,1
    - Dst: fu_struct_audio_serial_number_get_year
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:91,1
    - Dst: fu_struct_audio_serial_number_get_month
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:92,1
    - Dst: fu_struct_audio_serial_number_get_day
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:93,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:95,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:96,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechRallysystemAudioDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 100
    functionName: fu_logitech_rallysystem_audio_device_ensure_serial
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_struct_audio_serial_number_get_year
    - fu_device_sleep
    - fu_hidraw_device_get_feature
    - fu_struct_audio_serial_number_parse
    - fu_device_set_serial
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_struct_audio_serial_number_get_pid
    - g_string_new
    - g_string_append_printf
    - g_autoptr
    - fu_struct_audio_serial_number_get_day
    - fu_struct_audio_serial_number_get_month
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_rallysystem_audio_device_ensure_serial(FuLogitechRallysystemAudioDevice
      *self,\n\t\t\t\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_RALLYSYSTEM_AUDIO_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:105,1
    - Dst: fu_logitech_rallysystem_audio_device_ensure_version
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:106,1
    - Dst: fu_logitech_rallysystem_audio_device_ensure_serial
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 6
    functionLinenumber: 102
    functionLinenumberEnd: 111
    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
    - fu_logitech_rallysystem_audio_device_ensure_version
    - fu_logitech_rallysystem_audio_device_ensure_serial
    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: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
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 122
    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 *device,
      FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:138,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 139
    functionName: fu_logitech_rallysystem_audio_device_convert_version
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    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:144,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:144,1
    - Dst: fu_device_set_version_format
      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_device_retry_set_delay
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:146,1
    - Dst: FU_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
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:149,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechRallysystemAudioDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 150
    functionName: fu_logitech_rallysystem_audio_device_init
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-audio-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_set_delay
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    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:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechRallysystemAudioDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 159
    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: 9
    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_endpoints
    - fu_usb_interface_get_number
    - fu_usb_device_get_interfaces
    - g_set_error_literal
    - FU_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
    - fu_usb_device_add_interface
    - fu_usb_interface_get_class
    - fu_usb_endpoint_get_address
    - FU_USB_DEVICE
    - g_autoptr
    - g_ptr_array_index
    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_literal
      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: 4
    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_set_error_literal
    - g_prefix_error_literal
    - fu_usb_device_bulk_transfer
    - 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_literal
      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: 4
    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_set_error_literal
    - g_prefix_error_literal
    - fu_usb_device_bulk_transfer
    - 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: 5
    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_memdup_safe
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data
    - fu_chunk_array_length
    - fu_logitech_rallysystem_tablehub_device_send
    - g_autoptr
    - fu_progress_set_id
    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_literal
      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: 5
    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
    - g_prefix_error_literal
    - FU_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
    - fu_logitech_rallysystem_tablehub_device_recv
    - fu_struct_usb_progress_response_get_completed
    - fu_struct_usb_progress_response_parse
    - 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:217,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:218,1
    - Dst: fu_progress_set_id
      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_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:225,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:228,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:231,1
    - Dst: fu_struct_usb_firmware_download_request_set_len
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:233,1
    - Dst: fu_struct_usb_firmware_download_request_set_fw_version
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:234,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:235,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:237,1
    - Dst: fu_logitech_rallysystem_tablehub_device_send
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:240,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:244,1
    - Dst: fu_logitech_rallysystem_tablehub_device_recv
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:247,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:253,1
    - Dst: fu_struct_usb_firmware_download_response_parse
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:258,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:261,1
    - Dst: fu_logitech_rallysystem_tablehub_device_write_fw
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:264,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:266,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:269,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:273,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:273,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:279,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:282,1
    - Dst: fu_device_sleep_full
      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
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:286,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:287,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:290,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:290,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: 292
      start: 205
    functionDepth: 6
    functionLinenumber: 205
    functionLinenumberEnd: 292
    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_add_flag
    - fu_device_sleep_full
    - fu_struct_usb_firmware_download_request_new
    - g_prefix_error_literal
    - fu_logitech_rallysystem_tablehub_device_recv
    - fu_struct_usb_firmware_download_response_parse
    - fu_struct_usb_firmware_download_request_set_len
    - fu_progress_add_step
    - fu_logitech_rallysystem_tablehub_device_write_fw
    - fu_progress_step_done
    - FU_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
    - FU_DEVICE
    - fu_logitech_rallysystem_tablehub_device_send
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_struct_usb_firmware_download_request_set_fw_version
    - fu_firmware_get_stream
    - fu_input_stream_size
    - fu_device_retry_full
    - fu_device_get_version
    - g_autoptr
    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:299,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:301,1
    - Dst: fu_struct_usb_init_request_new
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:301,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:302,1
    - Dst: fu_logitech_rallysystem_tablehub_device_send
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:304,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:308,1
    - Dst: fu_logitech_rallysystem_tablehub_device_recv
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:311,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:317,1
    - Dst: fu_struct_usb_init_response_parse
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:320,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 294
    functionDepth: 5
    functionLinenumber: 294
    functionLinenumberEnd: 328
    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_struct_usb_init_request_new
    - FU_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
    - g_prefix_error_literal
    - fu_logitech_rallysystem_tablehub_device_recv
    - fu_struct_usb_init_response_parse
    - fu_logitech_rallysystem_tablehub_device_send
    - 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:333,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:336,1
    - Dst: fu_struct_usb_read_version_request_new
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:336,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:337,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:340,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:345,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:350,1
    - Dst: fu_logitech_rallysystem_tablehub_device_send
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:356,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:360,1
    - Dst: fu_logitech_rallysystem_tablehub_device_recv
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:365,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:371,1
    - Dst: fu_struct_usb_read_version_response_parse
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:376,1
    - Dst: fu_struct_usb_read_version_response_get_fw_version
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:379,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:380,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:380,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 330
    functionDepth: 5
    functionLinenumber: 330
    functionLinenumberEnd: 384
    functionName: fu_logitech_rallysystem_tablehub_device_setup
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_struct_usb_read_version_response_get_fw_version
    - fu_struct_usb_read_version_request_new
    - FU_LOGITECH_RALLYSYSTEM_TABLEHUB_DEVICE
    - g_prefix_error_literal
    - fu_logitech_rallysystem_tablehub_device_recv
    - fu_struct_usb_read_version_response_parse
    - FU_DEVICE
    - fu_device_retry
    - fu_logitech_rallysystem_tablehub_device_send
    - g_autoptr
    - FU_DEVICE_CLASS
    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:389,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:390,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:391,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:392,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:393,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 395
    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
      *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:400,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:400,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:401,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:401,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:402,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:402,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:403,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:403,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:404,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:404,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:405,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechRallysystemTablehubDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 397
    functionDepth: 6
    functionLinenumber: 397
    functionLinenumberEnd: 406
    functionName: fu_logitech_rallysystem_tablehub_device_init
    functionSourceFile: /src/fwupd/plugins/logitech-rallysystem/fu-logitech-rallysystem-tablehub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - FU_DEVICE
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechRallysystemTablehubDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 417
    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: 9
    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:77,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:80,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:82,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 84
    functionName: fu_synaptics_cape_hid_firmware_parse
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version
    - fu_struct_synaptics_cape_hid_hdr_get_ver_x
    - fu_struct_synaptics_cape_hid_hdr_parse_stream
    - fu_synaptics_cape_firmware_set_pid
    - g_strdup_printf
    - fu_struct_synaptics_cape_hid_hdr_get_ver_w
    - fu_firmware_set_stream
    - fu_firmware_add_image
    - fu_struct_synaptics_cape_hid_hdr_get_ver_y
    - g_set_error_literal
    - FU_SYNAPTICS_CAPE_HID_FIRMWARE
    - fu_synaptics_cape_firmware_set_vid
    - FU_SYNAPTICS_CAPE_FIRMWARE
    - FU_FIRMWARE
    - fu_struct_synaptics_cape_hid_hdr_get_pid
    - fu_firmware_new
    - fu_struct_synaptics_cape_hid_hdr_get_vid
    - fu_partial_input_stream_new
    - fu_firmware_set_id
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - fu_struct_synaptics_cape_hid_hdr_get_ver_z
    - g_autoptr
    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:89,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:91,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:92,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_set_vid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:95,1
    - Dst: fu_synaptics_cape_firmware_get_vid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:97,1
    - Dst: FU_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:97,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_set_pid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:98,1
    - Dst: fu_synaptics_cape_firmware_get_pid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:100,1
    - Dst: FU_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:100,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_set_crc
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:101,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_set_ver_w
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:102,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_set_ver_x
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:103,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_set_ver_y
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:104,1
    - Dst: fu_struct_synaptics_cape_hid_hdr_set_ver_z
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:105,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:108,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:111,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:112,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 115
    functionName: fu_synaptics_cape_hid_firmware_write
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_raw
    - fu_byte_array_append_bytes
    - fu_byte_array_align_up
    - fu_struct_synaptics_cape_hid_hdr_set_vid
    - fu_firmware_get_bytes_with_patches
    - fu_synaptics_cape_firmware_get_vid
    - fu_struct_synaptics_cape_hid_hdr_set_ver_z
    - fu_struct_synaptics_cape_hid_hdr_set_ver_x
    - fu_struct_synaptics_cape_hid_hdr_new
    - FU_SYNAPTICS_CAPE_HID_FIRMWARE
    - FU_SYNAPTICS_CAPE_FIRMWARE
    - g_steal_pointer
    - fu_struct_synaptics_cape_hid_hdr_set_ver_y
    - fu_struct_synaptics_cape_hid_hdr_set_pid
    - fu_struct_synaptics_cape_hid_hdr_set_ver_w
    - fu_synaptics_cape_firmware_get_pid
    - g_autoptr
    - fu_struct_synaptics_cape_hid_hdr_set_crc
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_synaptics_cape_hid_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:120,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:120,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:121,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsCapeHidFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: fu_synaptics_cape_hid_firmware_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_size_max
    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:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsCapeHidFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 130
    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:135,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: fu_synaptics_cape_hid_firmware_new
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-hid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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_firmware_set_version
    - fu_struct_synaptics_cape_sngl_hdr_get_fw_file_num
    - fu_struct_synaptics_cape_sngl_hdr_get_vid
    - fu_struct_synaptics_cape_sngl_hdr_get_file_crc
    - fu_synaptics_cape_firmware_set_pid
    - fu_input_stream_compute_crc32
    - fu_struct_synaptics_cape_sngl_hdr_parse_stream
    - g_set_error_literal
    - FU_SYNAPTICS_CAPE_FIRMWARE
    - fu_synaptics_cape_firmware_set_vid
    - fu_struct_synaptics_cape_sngl_hdr_get_file_size
    - fu_struct_synaptics_cape_sngl_hdr_get_fw_version
    - fu_struct_synaptics_cape_sngl_hdr_get_pid
    - FU_FIRMWARE
    - fu_version_from_uint32
    - fu_partial_input_stream_new
    - g_set_error
    - fu_input_stream_size
    - FU_SYNAPTICS_CAPE_SNGL_FIRMWARE
    - g_autoptr
    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_struct_synaptics_cape_sngl_hdr_set_pid
    - fu_synaptics_cape_firmware_get_vid
    - g_steal_pointer
    - FU_SYNAPTICS_CAPE_FIRMWARE
    - fu_struct_synaptics_cape_sngl_hdr_set_vid
    - FU_SYNAPTICS_CAPE_SNGL_FIRMWARE
    - fu_synaptics_cape_firmware_get_pid
    - g_autoptr
    - fu_struct_synaptics_cape_sngl_hdr_new
    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
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:132,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsCapeSnglFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: fu_synaptics_cape_sngl_firmware_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-sngl-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsCapeSnglFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 141
    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_udev_subsystem
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-plugin.c:30,1
    - Dst: fu_plugin_add_device_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
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-plugin.c:33,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-plugin.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 37
    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_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_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:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsCapePluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    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: 1375
    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
    - FU_IS_SYNAPTICS_CAPE_FIRMWARE
    - GET_PRIVATE
    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:
    - FU_IS_SYNAPTICS_CAPE_FIRMWARE
    - g_return_if_fail
    - GET_PRIVATE
    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
    - FU_IS_SYNAPTICS_CAPE_FIRMWARE
    - GET_PRIVATE
    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:
    - FU_IS_SYNAPTICS_CAPE_FIRMWARE
    - g_return_if_fail
    - GET_PRIVATE
    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_xmlb_builder_insert_kx
    - FU_SYNAPTICS_CAPE_FIRMWARE
    - GET_PRIVATE
    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:
    - xb_node_query_text_as_uint
    - FU_SYNAPTICS_CAPE_FIRMWARE
    - 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
    - fu_firmware_add_flag
    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: 6
    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:
    - g_return_val_if_fail
    - FU_IS_SYNAPTICS_CAPE_DEVICE
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    - fu_dump_raw
    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: 6
    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_literal
      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: 4
    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:
    - g_return_val_if_fail
    - FU_IS_SYNAPTICS_CAPE_DEVICE
    - g_prefix_error_literal
    - fu_usb_device_interrupt_transfer
    - FU_USB_DEVICE
    - fu_dump_raw
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_cape_error_to_string
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:110,1
    - Dst: fu_error_map_entry_to_gerror
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:136,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - status
    - error
    argTypes:
    - gint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 137
    functionName: fu_synaptics_cape_device_rc_set_error
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - fu_error_map_entry_to_gerror
    - fu_synaptics_cape_error_to_string
    - G_N_ELEMENTS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_cape_device_rc_set_error(gint16 status, GError
      **error)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:149,1
    - Dst: fu_synaptics_cape_cmd_hid_report_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:150,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:151,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:153,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:154,1
    - Dst: fu_synaptics_cape_msg_get_cmd_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:157,1
    - Dst: fu_synaptics_cape_msg_set_data_len
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:158,1
    - Dst: fu_synaptics_cape_cmd_hid_report_set_msg
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:163,1
    - Dst: fu_synaptics_cape_device_set_report
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:166,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:167,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:171,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:171,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:179,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:179,1
    - Dst: fu_synaptics_cape_device_get_report_intr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:181,1
    - Dst: fu_synaptics_cape_msg_get_cmd_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:183,1
    - Dst: fu_synaptics_cape_msg_get_module_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:185,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:187,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:188,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:189,1
    - Dst: fu_synaptics_cape_msg_ref
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:190,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:192,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:193,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:200,1
    - Dst: fu_synaptics_cape_device_get_report
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:201,1
    - Dst: fu_synaptics_cape_msg_get_cmd_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:203,1
    - Dst: fu_synaptics_cape_msg_get_module_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:205,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:207,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:210,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:213,1
    - Dst: fu_synaptics_cape_msg_ref
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:214,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:216,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:217,1
    - Dst: fu_synaptics_cape_cmd_hid_report_get_msg
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:221,1
    - Dst: fu_synaptics_cape_msg_get_cmd_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:222,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:225,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:225,1
    - Dst: fu_synaptics_cape_cmd_hid_report_get_msg
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:230,1
    - Dst: fu_synaptics_cape_msg_get_cmd_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:231,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:232,1
    - Dst: fu_synaptics_cape_msg_get_data_len
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:238,1
    - Dst: fu_synaptics_cape_device_rc_set_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:240,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:245,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 4
    argNames:
    - self
    - st_msg_req
    - delay_ms
    - error
    argTypes:
    - FuSynapticsCapeDevice*
    - FuSynapticsCapeMsg*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 141
    functionDepth: 7
    functionLinenumber: 141
    functionLinenumberEnd: 246
    functionName: fu_synaptics_cape_device_sendcmd_ex
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_cape_msg_ref
    - fu_synaptics_cape_device_set_report
    - fu_synaptics_cape_device_get_report
    - g_debug
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_synaptics_cape_msg_set_data_len
    - fu_synaptics_cape_cmd_hid_report_new
    - fu_synaptics_cape_msg_get_module_id
    - fu_device_sleep
    - FU_DEVICE
    - fu_synaptics_cape_msg_get_cmd_id
    - fu_synaptics_cape_cmd_hid_report_set_msg
    - g_return_val_if_fail
    - fu_synaptics_cape_device_get_report_intr
    - fu_synaptics_cape_cmd_hid_report_get_msg
    - g_steal_pointer
    - fu_device_has_private_flag
    - g_error_matches
    - fu_synaptics_cape_msg_get_data_len
    - fu_synaptics_cape_device_rc_set_error
    - g_autoptr
    - g_propagate_prefixed_error
    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:258,1
    - Dst: fu_synaptics_cape_msg_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:258,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:259,1
    - Dst: fu_synaptics_cape_msg_set_data_len
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:260,1
    - Dst: fu_synaptics_cape_msg_set_cmd_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:261,1
    - Dst: fu_synaptics_cape_msg_set_module_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:262,1
    - Dst: fu_synaptics_cape_msg_set_data
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:264,1
    - Dst: fu_synaptics_cape_device_sendcmd_ex
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:265,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: 267
      start: 249
    functionDepth: 8
    functionLinenumber: 249
    functionLinenumberEnd: 267
    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_module_id
    - fu_synaptics_cape_msg_new
    - fu_synaptics_cape_device_sendcmd_ex
    - fu_synaptics_cape_msg_set_data
    - fu_synaptics_cape_msg_set_data_len
    - fu_synaptics_cape_msg_set_cmd_id
    - g_autoptr
    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:272,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:274,1
    - Dst: FU_IS_SYNAPTICS_CAPE_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:274,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: fu_synaptics_cape_device_to_string
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_int
    - FU_IS_SYNAPTICS_CAPE_DEVICE
    - 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:283,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:283,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:285,1
    - Dst: FU_IS_SYNAPTICS_CAPE_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:285,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:286,1
    - Dst: fu_synaptics_cape_device_sendcmd
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:288,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:295,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:299,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:299,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:301,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsCapeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 280
    functionDepth: 9
    functionLinenumber: 280
    functionLinenumberEnd: 305
    functionName: fu_synaptics_cape_device_reset
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_debug
    - fu_device_sleep
    - FU_IS_SYNAPTICS_CAPE_DEVICE
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_synaptics_cape_device_sendcmd
    - g_timer_elapsed
    - g_timer_new
    - g_autoptr
    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:321,1
    - Dst: fu_synaptics_cape_msg_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:321,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:322,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:324,1
    - Dst: FU_IS_SYNAPTICS_CAPE_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:324,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:325,1
    - Dst: fu_synaptics_cape_msg_set_cmd_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:327,1
    - Dst: fu_synaptics_cape_device_sendcmd_ex
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:328,1
    - Dst: fu_synaptics_cape_msg_get_data
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:332,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsCapeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 318
    functionDepth: 8
    functionLinenumber: 318
    functionLinenumberEnd: 345
    functionName: fu_synaptics_cape_device_setup_active_partition
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_synaptics_cape_msg_new
    - fu_synaptics_cape_msg_get_data
    - g_set_error
    - FU_IS_SYNAPTICS_CAPE_DEVICE
    - fu_synaptics_cape_device_sendcmd_ex
    - fu_synaptics_cape_msg_set_cmd_id
    - g_autoptr
    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:352,1
    - Dst: fu_synaptics_cape_msg_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:352,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:353,1
    - Dst: fu_synaptics_cape_msg_set_cmd_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:356,1
    - Dst: fu_synaptics_cape_msg_set_data_len
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:357,1
    - Dst: fu_synaptics_cape_device_sendcmd_ex
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:358,1
    - Dst: fu_synaptics_cape_msg_get_data
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:363,1
    - Dst: fu_synaptics_cape_msg_get_data
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:364,1
    - Dst: fu_synaptics_cape_msg_get_data
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:365,1
    - Dst: fu_synaptics_cape_msg_get_data
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:366,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:367,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:367,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:368,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsCapeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 348
    functionDepth: 8
    functionLinenumber: 348
    functionLinenumberEnd: 372
    functionName: fu_synaptics_cape_device_setup_version
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_synaptics_cape_msg_new
    - fu_synaptics_cape_msg_get_data
    - fu_device_set_version_raw
    - fu_synaptics_cape_device_sendcmd_ex
    - FU_DEVICE
    - fu_synaptics_cape_msg_set_data_len
    - fu_synaptics_cape_msg_set_cmd_id
    - g_autoptr
    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:377,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:379,1
    - Dst: FU_IS_SYNAPTICS_CAPE_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:379,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:380,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:383,1
    - Dst: fu_synaptics_cape_device_setup_version
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:386,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:387,1
    - Dst: fu_synaptics_cape_device_setup_active_partition
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:391,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 374
    functionDepth: 9
    functionLinenumber: 374
    functionLinenumberEnd: 398
    functionName: fu_synaptics_cape_device_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_synaptics_cape_device_setup_version
    - FU_IS_SYNAPTICS_CAPE_DEVICE
    - g_prefix_error_literal
    - fu_synaptics_cape_device_setup_active_partition
    - FU_SYNAPTICS_CAPE_DEVICE
    - FU_DEVICE_CLASS
    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:407,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:410,1
    - Dst: fu_synaptics_cape_hid_firmware_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:410,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:411,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:415,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:418,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:429,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:432,1
    - Dst: fu_synaptics_cape_firmware_get_vid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:438,1
    - Dst: FU_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:438,1
    - Dst: fu_synaptics_cape_firmware_get_pid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:440,1
    - Dst: FU_SYNAPTICS_CAPE_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:440,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:442,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:442,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:443,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:450,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:451,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:457,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: 458
      start: 400
    functionDepth: 4
    functionLinenumber: 400
    functionLinenumberEnd: 458
    functionName: fu_synaptics_cape_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - g_set_error
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - g_set_error_literal
    - fu_synaptics_cape_firmware_get_vid
    - g_steal_pointer
    - FU_SYNAPTICS_CAPE_FIRMWARE
    - fu_device_get_vid
    - g_autoptr
    - fu_synaptics_cape_firmware_get_pid
    - fu_synaptics_cape_hid_firmware_new
    - FU_SYNAPTICS_CAPE_DEVICE
    - 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:470,1
    - Dst: FU_IS_SYNAPTICS_CAPE_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:470,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:471,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:472,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:474,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:478,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:487,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:494,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:495,1
    - Dst: fu_synaptics_cape_device_sendcmd
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - fw
    - error
    argTypes:
    - FuSynapticsCapeDevice*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 461
    functionDepth: 9
    functionLinenumber: 461
    functionLinenumberEnd: 511
    functionName: fu_synaptics_cape_device_write_firmware_header
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_new0
    - g_set_error
    - g_bytes_get_data
    - FU_IS_SYNAPTICS_CAPE_DEVICE
    - g_set_error_literal
    - fu_synaptics_cape_device_sendcmd
    - fu_memcpy_safe
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:520,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:523,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:531,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:532,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:532,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:533,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:536,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:539,1
    - Dst: fu_chunk_get_data_sz
      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:546,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:553,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:554,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:557,1
    - Dst: fu_synaptics_cape_device_sendcmd
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:564,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:571,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:574,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 4
    argNames:
    - self
    - stream
    - progress
    - error
    argTypes:
    - FuSynapticsCapeDevice*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 514
    functionDepth: 9
    functionLinenumber: 514
    functionLinenumberEnd: 579
    functionName: fu_synaptics_cape_device_write_firmware_image
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_set_error
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data
    - fu_synaptics_cape_device_sendcmd
    - fu_memcpy_safe
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:589,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:590,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:591,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:593,1
    - Dst: FU_IS_SYNAPTICS_CAPE_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:593,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:594,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:595,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:598,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:599,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:600,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:601,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:602,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:604,1
    - Dst: fu_synaptics_cape_device_write_firmware_header
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:607,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:608,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:611,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:614,1
    - Dst: fu_synaptics_cape_device_write_firmware_image
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:617,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:619,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:621,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:624,1
    - Dst: fu_synaptics_cape_device_sendcmd
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:627,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:634,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:637,1
    - Dst: fu_synaptics_cape_device_reset
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:640,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:642,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:645,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: 647
      start: 582
    functionDepth: 10
    functionLinenumber: 582
    functionLinenumberEnd: 647
    functionName: fu_synaptics_cape_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_device_add_flag
    - fu_progress_add_step
    - fu_synaptics_cape_device_write_firmware_header
    - fu_firmware_get_stream
    - FU_IS_SYNAPTICS_CAPE_DEVICE
    - fu_firmware_get_image_by_id_bytes
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_synaptics_cape_device_reset
    - fu_synaptics_cape_device_sendcmd
    - g_autoptr
    - fu_synaptics_cape_device_write_firmware_image
    - FU_SYNAPTICS_CAPE_DEVICE
    - fu_progress_get_child
    - fu_progress_set_id
    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:652,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:653,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:654,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:655,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:656,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 649
    functionDepth: 3
    functionLinenumber: 649
    functionLinenumberEnd: 658
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:663,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 664
    functionName: fu_synaptics_cape_device_convert_version
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    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:669,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:669,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:670,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:670,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:671,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:671,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:672,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:672,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:673,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:673,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:674,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:674,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:675,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:675,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:676,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:676,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:677,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsCapeDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 666
    functionDepth: 6
    functionLinenumber: 666
    functionLinenumberEnd: 679
    functionName: fu_synaptics_cape_device_init
    functionSourceFile: /src/fwupd/plugins/synaptics-cape/fu-synaptics-cape-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_retry_set_delay
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsCapeDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 691
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLegionHidPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: fu_legion_hid_plugin_init
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid_plugin_init(FuLegionHidPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-plugin.c:28,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-plugin.c:29,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-plugin.c:31,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-plugin.c:32,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-plugin.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: fu_legion_hid_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-plugin.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLegionHidPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: fu_legion_hid_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid_plugin_class_init(FuLegionHidPluginClass *klass)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:25,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:26,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:27,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:31,1
    - Dst: fu_struct_legion_hid_bin_header_parse_stream
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:33,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:39,1
    - Dst: fu_struct_legion_hid_bin_header_get_mcu_size
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:41,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:45,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:47,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:48,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:49,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:50,1
    - Dst: fu_struct_legion_hid_bin_header_get_mcu_version
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:51,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:52,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:54,1
    - Dst: fu_struct_legion_hid_bin_header_get_mcu_size
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:55,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:61,1
    - Dst: fu_struct_legion_hid_bin_header_get_left_size
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:63,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:67,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:69,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:70,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:71,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:72,1
    - Dst: fu_struct_legion_hid_bin_header_get_left_version
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:73,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:74,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:76,1
    - Dst: fu_struct_legion_hid_bin_header_get_left_size
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:77,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:83,1
    - Dst: fu_struct_legion_hid_bin_header_get_right_size
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:85,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:89,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:91,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:92,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:93,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:94,1
    - Dst: fu_struct_legion_hid_bin_header_get_right_version
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:95,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:96,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 101
    functionName: fu_legion_hid_firmware_parse
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - fu_firmware_set_version_raw
    - fu_firmware_set_id
    - fu_struct_legion_hid_bin_header_get_right_size
    - fu_firmware_add_image
    - fu_firmware_parse_stream
    - fu_struct_legion_hid_bin_header_get_mcu_version
    - fu_struct_legion_hid_bin_header_get_mcu_size
    - fu_firmware_new
    - fu_struct_legion_hid_bin_header_parse_stream
    - fu_firmware_set_offset
    - fu_struct_legion_hid_bin_header_get_left_version
    - fu_struct_legion_hid_bin_header_get_right_version
    - fu_struct_legion_hid_bin_header_get_left_size
    - fu_size_checked_inc
    - g_autoptr
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_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_image_gtype
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:106,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:106,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:107,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLegionHidFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: fu_legion_hid_firmware_init
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid_firmware_init(FuLegionHidFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLegionHidFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: fu_legion_hid_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid_firmware_class_init(FuLegionHidFirmwareClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:43,1
    - Dst: fu_udev_device_read
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:44,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:44,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:53,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 74
    functionName: fu_legion_hid_device_read_normal_response_retry_cb
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_DEVICE
    - fu_udev_device_read
    - fu_byte_array_set_size
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid_device_read_normal_response_retry_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: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:81,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:81,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:83,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:83,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - helper
    - error
    argTypes:
    - FuLegionHidDevice*
    - FuLegionHidRetryHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 91
    functionName: fu_legion_hid_device_read_response
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - g_byte_array_sized_new
    - g_steal_pointer
    - fu_device_retry_full
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_legion_hid_device_read_response(FuLegionHidDevice
      *self,\n\t\t\t\t   FuLegionHidRetryHelper *helper,\n\t\t\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - rsp_id
    - dev_id
    argTypes:
    - guint8
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: fu_legion_hid_device_check_upgrade_device_id
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid_device_check_upgrade_device_id(guint8 rsp_id,
      guint8 dev_id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:116,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:118,1
    - Dst: fu_udev_device_read
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:119,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:119,1
    - Dst: fu_struct_legion_hid_upgrade_rsp_parse
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:127,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:129,1
    - Dst: fu_struct_legion_hid_upgrade_rsp_get_main_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:132,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:133,1
    - Dst: fu_struct_legion_hid_upgrade_rsp_get_main_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:137,1
    - Dst: fu_struct_legion_hid_upgrade_rsp_get_sub_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:141,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:142,1
    - Dst: fu_struct_legion_hid_upgrade_rsp_get_sub_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:146,1
    - Dst: fu_struct_legion_hid_upgrade_rsp_get_step
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:150,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:151,1
    - Dst: fu_struct_legion_hid_upgrade_rsp_get_step
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:155,1
    - Dst: fu_legion_hid_device_check_upgrade_device_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:159,1
    - Dst: fu_struct_legion_hid_upgrade_rsp_get_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:160,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:162,1
    - Dst: fu_struct_legion_hid_upgrade_rsp_get_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 109
    functionDepth: 5
    functionLinenumber: 109
    functionLinenumberEnd: 173
    functionName: fu_legion_hid_device_read_upgrade_response_retry_cb
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_legion_hid_upgrade_rsp_get_step
    - fu_struct_legion_hid_upgrade_rsp_parse
    - fu_legion_hid_device_check_upgrade_device_id
    - g_set_error
    - fu_struct_legion_hid_upgrade_rsp_get_sub_id
    - g_prefix_error_literal
    - fu_struct_legion_hid_upgrade_rsp_get_main_id
    - fu_struct_legion_hid_upgrade_rsp_get_id
    - FU_UDEV_DEVICE
    - fu_udev_device_read
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid_device_read_upgrade_response_retry_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: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:180,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:180,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:182,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:182,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - helper
    - error
    argTypes:
    - FuLegionHidDevice*
    - FuLegionHidRetryHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 190
    functionName: fu_legion_hid_device_read_upgrade_response
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - g_byte_array_sized_new
    - g_steal_pointer
    - fu_device_retry_full
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_legion_hid_device_read_upgrade_response(FuLegionHidDevice
      *self,\n\t\t\t\t\t   FuLegionHidRetryHelper *helper,\n\t\t\t\t\t   GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:199,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:201,1
    - Dst: fu_udev_device_read
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:202,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:202,1
    - Dst: fu_struct_legion_hid_upgrade_query_size_rsp_parse
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:210,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:212,1
    - Dst: fu_struct_legion_hid_upgrade_query_size_rsp_get_main_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:215,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:216,1
    - Dst: fu_struct_legion_hid_upgrade_query_size_rsp_get_main_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:220,1
    - Dst: fu_struct_legion_hid_upgrade_query_size_rsp_get_sub_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:224,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:225,1
    - Dst: fu_struct_legion_hid_upgrade_query_size_rsp_get_sub_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:229,1
    - Dst: fu_struct_legion_hid_upgrade_query_size_rsp_get_step
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:233,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:234,1
    - Dst: fu_struct_legion_hid_upgrade_query_size_rsp_get_step
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:238,1
    - Dst: fu_legion_hid_device_check_upgrade_device_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:242,1
    - Dst: fu_struct_legion_hid_upgrade_query_size_rsp_get_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:243,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:245,1
    - Dst: fu_struct_legion_hid_upgrade_query_size_rsp_get_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:249,1
    - Dst: fu_struct_legion_hid_upgrade_query_size_rsp_get_response
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:253,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:255,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 192
    functionDepth: 5
    functionLinenumber: 192
    functionLinenumberEnd: 264
    functionName: fu_legion_hid_device_read_upgrade_query_size_response_retry_cb
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_legion_hid_device_check_upgrade_device_id
    - g_set_error
    - fu_struct_legion_hid_upgrade_query_size_rsp_get_step
    - fu_struct_legion_hid_upgrade_query_size_rsp_get_sub_id
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_struct_legion_hid_upgrade_query_size_rsp_get_main_id
    - fu_struct_legion_hid_upgrade_query_size_rsp_get_response
    - fu_struct_legion_hid_upgrade_query_size_rsp_parse
    - FU_UDEV_DEVICE
    - fu_udev_device_read
    - g_autoptr
    - fu_struct_legion_hid_upgrade_query_size_rsp_get_id
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid_device_read_upgrade_query_size_response_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: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:271,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:271,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:273,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:273,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - helper
    - error
    argTypes:
    - FuLegionHidDevice*
    - FuLegionHidRetryHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 281
    functionName: fu_legion_hid_device_read_upgrade_query_size_response
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - g_byte_array_sized_new
    - g_steal_pointer
    - fu_device_retry_full
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_legion_hid_device_read_upgrade_query_size_response(FuLegionHidDevice
      *self,\n\t\t\t\t\t\t      FuLegionHidRetryHelper *helper,\n\t\t\t\t\t\t      GError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:292,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:293,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_new
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:293,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:294,1
    - Dst: fu_struct_legion_hid_upgrade_start_param_new
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:295,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:297,1
    - Dst: fu_input_stream_compute_crc16
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:299,1
    - Dst: fu_struct_legion_hid_upgrade_start_param_set_crc16
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:301,1
    - Dst: fu_struct_legion_hid_upgrade_start_param_set_size
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:302,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_set_length
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:303,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_set_device_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:304,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_set_data
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:305,1
    - Dst: fu_udev_device_write
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:310,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:310,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_get_main_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:318,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_get_sub_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:319,1
    - Dst: fu_legion_hid_device_read_upgrade_response
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:322,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - self
    - id
    - stream
    - error
    argTypes:
    - FuLegionHidDevice*
    - FuLegionHidDeviceId
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 283
    functionDepth: 5
    functionLinenumber: 283
    functionLinenumberEnd: 328
    functionName: fu_legion_hid_device_upgrade_start
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_legion_hid_upgrade_cmd_new
    - fu_struct_legion_hid_upgrade_cmd_get_main_id
    - fu_legion_hid_device_read_upgrade_response
    - fu_udev_device_write
    - fu_struct_legion_hid_upgrade_cmd_get_sub_id
    - fu_input_stream_size
    - fu_struct_legion_hid_upgrade_start_param_set_size
    - fu_struct_legion_hid_upgrade_start_param_new
    - fu_struct_legion_hid_upgrade_start_param_set_crc16
    - fu_struct_legion_hid_upgrade_cmd_set_device_id
    - fu_struct_legion_hid_upgrade_cmd_set_data
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_struct_legion_hid_upgrade_cmd_set_length
    - fu_input_stream_compute_crc16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid_device_upgrade_start(FuLegionHidDevice *self,\n\t\t\t\t
      \  FuLegionHidDeviceId id,\n\t\t\t\t   GInputStream *stream,\n\t\t\t\t   GError
      **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:337,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:338,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:339,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_new
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:339,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_set_length
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:346,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_set_device_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:347,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_set_data
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:348,1
    - Dst: fu_udev_device_write
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:350,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:350,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_get_main_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:358,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_get_sub_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:359,1
    - Dst: fu_legion_hid_device_read_upgrade_query_size_response
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:362,1
    - Dst: fu_struct_legion_hid_upgrade_query_size_rsp_parse
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:365,1
    - Dst: fu_struct_legion_hid_upgrade_query_size_rsp_get_response
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:368,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:370,1
    - Dst: fu_struct_legion_hid_upgrade_query_size_rsp_get_response
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:374,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:378,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - self
    - id
    - max_size
    - error
    argTypes:
    - FuLegionHidDevice*
    - FuLegionHidDeviceId
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 330
    functionDepth: 5
    functionLinenumber: 330
    functionLinenumberEnd: 390
    functionName: fu_legion_hid_device_upgrade_query_size
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_legion_hid_upgrade_cmd_new
    - fu_struct_legion_hid_upgrade_cmd_get_main_id
    - fu_udev_device_write
    - fu_legion_hid_device_read_upgrade_query_size_response
    - fu_struct_legion_hid_upgrade_cmd_get_sub_id
    - g_set_error
    - fu_struct_legion_hid_upgrade_cmd_set_device_id
    - fu_struct_legion_hid_upgrade_cmd_set_data
    - fu_struct_legion_hid_upgrade_query_size_rsp_get_response
    - fu_struct_legion_hid_upgrade_query_size_rsp_parse
    - fu_memread_uint16_safe
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_struct_legion_hid_upgrade_cmd_set_length
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid_device_upgrade_query_size(FuLegionHidDevice
      *self,\n\t\t\t\t\tFuLegionHidDeviceId id,\n\t\t\t\t\tguint16 *max_size,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:401,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_new
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:401,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:402,1
    - Dst: fu_struct_legion_hid_upgrade_packet_new
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:403,1
    - Dst: fu_struct_legion_hid_upgrade_packet_set_data
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:405,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:406,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:407,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_set_length
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:410,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_set_device_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:411,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_set_param
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:412,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_set_data
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:414,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:419,1
    - Dst: fu_udev_device_write
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:420,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:420,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:431,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_get_main_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:433,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_get_sub_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:434,1
    - Dst: fu_legion_hid_device_read_upgrade_response
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:437,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:440,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:448,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 6
    argNames:
    - self
    - id
    - max_size
    - send_size
    - chk
    - error
    argTypes:
    - FuLegionHidDevice*
    - FuLegionHidDeviceId
    - guint16
    - guint*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 392
    functionDepth: 5
    functionLinenumber: 392
    functionLinenumberEnd: 460
    functionName: fu_legion_hid_device_upgrade_write_data_chunk
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_legion_hid_upgrade_cmd_new
    - fu_struct_legion_hid_upgrade_packet_new
    - fu_struct_legion_hid_upgrade_cmd_get_main_id
    - fu_struct_legion_hid_upgrade_cmd_set_param
    - fu_udev_device_write
    - fu_legion_hid_device_read_upgrade_response
    - fu_memread_uint32_safe
    - fu_struct_legion_hid_upgrade_packet_set_data
    - fu_struct_legion_hid_upgrade_cmd_get_sub_id
    - fu_chunk_get_data_sz
    - g_set_error
    - fu_struct_legion_hid_upgrade_cmd_set_device_id
    - fu_chunk_get_data
    - fu_struct_legion_hid_upgrade_cmd_set_data
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_struct_legion_hid_upgrade_cmd_set_length
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid_device_upgrade_write_data_chunk(FuLegionHidDevice
      *self,\n\t\t\t\t\t      FuLegionHidDeviceId id,\n\t\t\t\t\t      guint16 max_size,\n\t\t\t\t\t
      \     guint *send_size,\n\t\t\t\t\t      FuChunk *chk,\n\t\t\t\t\t      GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:471,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:472,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:474,1
    - Dst: fu_legion_hid_device_upgrade_write_data_chunk
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - self
    - id
    - max_size
    - chunks
    - error
    argTypes:
    - FuLegionHidDevice*
    - FuLegionHidDeviceId
    - guint16
    - FuChunkArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 462
    functionDepth: 6
    functionLinenumber: 462
    functionLinenumberEnd: 488
    functionName: fu_legion_hid_device_upgrade_write_data_chunks
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - g_autoptr
    - fu_legion_hid_device_upgrade_write_data_chunk
    - fu_chunk_array_index
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid_device_upgrade_write_data_chunks(FuLegionHidDevice
      *self,\n\t\t\t\t\t       FuLegionHidDeviceId id,\n\t\t\t\t\t       guint16 max_size,\n\t\t\t\t\t
      \      FuChunkArray *chunks,\n\t\t\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:497,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:500,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:508,1
    - Dst: fu_legion_hid_device_upgrade_write_data_chunks
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - id
    - max_size
    - stream
    - error
    argTypes:
    - FuLegionHidDevice*
    - FuLegionHidDeviceId
    - guint16
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 490
    functionDepth: 7
    functionLinenumber: 490
    functionLinenumberEnd: 516
    functionName: fu_legion_hid_device_upgrade_write_data
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_stream
    - fu_legion_hid_device_upgrade_write_data_chunks
    - g_autoptr
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid_device_upgrade_write_data(FuLegionHidDevice
      *self,\n\t\t\t\t\tFuLegionHidDeviceId id,\n\t\t\t\t\tguint16 max_size,\n\t\t\t\t\tGInputStream
      *stream,\n\t\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:522,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:523,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_new
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:523,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_set_length
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:530,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_set_device_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:531,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_set_data
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:532,1
    - Dst: fu_udev_device_write
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:534,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:534,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_get_main_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:542,1
    - Dst: fu_struct_legion_hid_upgrade_cmd_get_sub_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:543,1
    - Dst: fu_legion_hid_device_read_upgrade_response
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:546,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - self
    - id
    - error
    argTypes:
    - FuLegionHidDevice*
    - FuLegionHidDeviceId
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 518
    functionDepth: 5
    functionLinenumber: 518
    functionLinenumberEnd: 552
    functionName: fu_legion_hid_device_upgrade_verify
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_legion_hid_upgrade_cmd_new
    - fu_struct_legion_hid_upgrade_cmd_get_main_id
    - fu_legion_hid_device_read_upgrade_response
    - fu_udev_device_write
    - fu_struct_legion_hid_upgrade_cmd_get_sub_id
    - fu_struct_legion_hid_upgrade_cmd_set_device_id
    - fu_struct_legion_hid_upgrade_cmd_set_data
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_struct_legion_hid_upgrade_cmd_set_length
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid_device_upgrade_verify(FuLegionHidDevice *self,
      FuLegionHidDeviceId id, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:564,1
    - Dst: fu_struct_legion_hid_normal_cmd_new
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:564,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:565,1
    - Dst: fu_struct_legion_hid_normal_cmd_set_length
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:567,1
    - Dst: fu_struct_legion_hid_normal_cmd_set_main_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:568,1
    - Dst: fu_struct_legion_hid_normal_cmd_set_sub_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:569,1
    - Dst: fu_struct_legion_hid_normal_cmd_set_device_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:570,1
    - Dst: fu_struct_legion_hid_normal_cmd_set_data
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:571,1
    - Dst: fu_udev_device_write
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:573,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:573,1
    - Dst: fu_struct_legion_hid_normal_cmd_get_main_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:581,1
    - Dst: fu_struct_legion_hid_normal_cmd_get_sub_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:582,1
    - Dst: fu_legion_hid_device_read_response
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:584,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:587,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:590,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - self
    - id
    - version
    - error
    argTypes:
    - FuLegionHidDevice*
    - FuLegionHidDeviceId
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 554
    functionDepth: 5
    functionLinenumber: 554
    functionLinenumberEnd: 599
    functionName: fu_legion_hid_device_get_version_internal
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_legion_hid_normal_cmd_set_main_id
    - fu_legion_hid_device_read_response
    - fu_memread_uint32_safe
    - fu_udev_device_write
    - fu_struct_legion_hid_normal_cmd_set_sub_id
    - fu_struct_legion_hid_normal_cmd_get_main_id
    - fu_struct_legion_hid_normal_cmd_new
    - fu_struct_legion_hid_normal_cmd_set_data
    - fu_struct_legion_hid_normal_cmd_get_sub_id
    - g_set_error_literal
    - fu_struct_legion_hid_normal_cmd_set_length
    - fu_struct_legion_hid_normal_cmd_set_device_id
    - g_autoptr
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid_device_get_version_internal(FuLegionHidDevice
      *self,\n\t\t\t\t\t  FuLegionHidDeviceId id,\n\t\t\t\t\t  guint32 *version,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LEGION_HID_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:609,1
    - Dst: fu_legion_hid_device_get_version_internal
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 606
    functionDepth: 6
    functionLinenumber: 606
    functionLinenumberEnd: 612
    functionName: fu_legion_hid_device_get_version_cb
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_legion_hid_device_get_version_internal
    - FU_LEGION_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid_device_get_version_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:624,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - id
    - version
    - error
    argTypes:
    - FuLegionHidDevice*
    - FuLegionHidDeviceId
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 614
    functionDepth: 3
    functionLinenumber: 614
    functionLinenumberEnd: 630
    functionName: fu_legion_hid_device_get_version
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid_device_get_version(FuLegionHidDevice *self,\n\t\t\t\t
      FuLegionHidDeviceId id,\n\t\t\t\t guint32 *version,\n\t\t\t\t GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:638,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:641,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:652,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:662,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - stream
    - id
    - error
    argTypes:
    - GInputStream*
    - FuLegionHidDeviceId*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 632
    functionDepth: 4
    functionLinenumber: 632
    functionLinenumberEnd: 667
    functionName: fu_legion_hid_device_get_id
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_size
    - fu_input_stream_read_u8
    - g_set_error_literal
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid_device_get_id(GInputStream *stream, FuLegionHidDeviceId
      *id, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:674,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:676,1
    - Dst: fu_legion_hid_device_get_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:679,1
    - Dst: fu_legion_hid_device_upgrade_start
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:681,1
    - Dst: fu_legion_hid_device_upgrade_query_size
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:683,1
    - Dst: fu_legion_hid_device_upgrade_write_data
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:685,1
    - Dst: fu_legion_hid_device_upgrade_verify
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:687,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - self
    - firmware
    - error
    argTypes:
    - FuLegionHidDevice*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 669
    functionDepth: 8
    functionLinenumber: 669
    functionLinenumberEnd: 692
    functionName: fu_legion_hid_device_execute_upgrade
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_legion_hid_device_upgrade_verify
    - fu_legion_hid_device_upgrade_query_size
    - fu_firmware_get_stream
    - fu_legion_hid_device_get_id
    - fu_legion_hid_device_upgrade_write_data
    - fu_legion_hid_device_upgrade_start
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid_device_execute_upgrade(FuLegionHidDevice *self,
      FuFirmware *firmware, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LEGION_HID_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:701,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:702,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:704,1
    - Dst: fu_legion_hid_device_execute_upgrade
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:707,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:708,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: 714
      start: 694
    functionDepth: 9
    functionLinenumber: 694
    functionLinenumberEnd: 714
    functionName: fu_legion_hid_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - fu_firmware_get_image_by_id
    - fu_legion_hid_device_execute_upgrade
    - g_autoptr
    - FU_LEGION_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_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: g_strdup_printf
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 720
    functionName: fu_legion_hid_device_convert_version
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_legion_hid_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:725,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:726,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:727,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:728,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:729,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 722
    functionDepth: 3
    functionLinenumber: 722
    functionLinenumberEnd: 731
    functionName: fu_legion_hid_device_set_progress
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LEGION_HID_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:736,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:738,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:739,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:740,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:741,1
    - Dst: fu_hidraw_device_parse_descriptor
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:744,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:744,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:747,1
    - Dst: fu_legion_hid_device_get_version
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:760,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:762,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:762,1
    - Dst: fu_legion_hid_child_new
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:765,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:766,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:766,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:767,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:767,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:768,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:768,1
    - Dst: fu_legion_hid_child_new
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:771,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:772,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:772,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:773,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:773,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:774,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:774,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 733
    functionDepth: 6
    functionLinenumber: 733
    functionLinenumberEnd: 778
    functionName: fu_legion_hid_device_setup
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_add_child
    - fu_device_set_version_raw
    - fu_legion_hid_device_get_version
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_device_set_name
    - g_autoptr
    - fu_hidraw_device_parse_descriptor
    - FU_LEGION_HID_DEVICE
    - fu_legion_hid_child_new
    - fu_hid_descriptor_find_report
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLegionHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 788
    functionName: fu_legion_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid_device_class_init(FuLegionHidDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:793,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:793,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:794,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:794,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:795,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:795,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:796,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:796,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:797,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:797,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:798,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:798,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:799,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:799,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:800,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:800,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:801,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLegionHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 790
    functionDepth: 6
    functionLinenumber: 790
    functionLinenumberEnd: 802
    functionName: fu_legion_hid_device_init
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid_device_init(FuLegionHidDevice *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_LEGION_HID_CHILD
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:30,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:32,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:32,1
    - Dst: FU_LEGION_HID_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:35,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:35,1
    - Dst: fu_legion_hid_device_execute_upgrade
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:38,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:39,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:39,1
    - Dst: fu_legion_hid_device_get_version
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:47,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:49,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: 53
      start: 20
    functionDepth: 9
    functionLinenumber: 20
    functionLinenumberEnd: 53
    functionName: fu_legion_hid_child_write_firmware
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c
    functionUses: 0
    functionsReached:
    - fu_device_get_logical_id
    - fu_device_set_version_raw
    - fu_legion_hid_device_get_version
    - g_prefix_error
    - fu_firmware_get_image_by_id
    - FU_LEGION_HID_CHILD
    - fu_legion_hid_device_execute_upgrade
    - fu_device_get_proxy
    - FU_LEGION_HID_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_legion_hid_child_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/legion-hid/fu-legion-hid-child.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: fu_legion_hid_child_convert_version
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_legion_hid_child_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:64,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:65,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:66,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:67,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:68,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: fu_legion_hid_child_set_progress
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid_child_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LEGION_HID_CHILD
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:75,1
    - Dst: FU_LEGION_HID_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:79,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:79,1
    - Dst: fu_legion_hid_device_get_version
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:82,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:84,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:86,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:86,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 72
    functionDepth: 7
    functionLinenumber: 72
    functionLinenumberEnd: 92
    functionName: fu_legion_hid_child_setup
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c
    functionUses: 0
    functionsReached:
    - fu_device_get_logical_id
    - fu_device_set_version_raw
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - fu_legion_hid_device_get_version
    - FU_LEGION_HID_CHILD
    - fu_device_get_proxy
    - FU_LEGION_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid_child_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLegionHidChildClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: fu_legion_hid_child_class_init
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid_child_class_init(FuLegionHidChildClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:107,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:107,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:108,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:109,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:109,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:110,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:110,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:111,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:111,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:112,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:112,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:113,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:113,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:114,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:114,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:115,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:115,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:116,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLegionHidChild*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 104
    functionDepth: 6
    functionLinenumber: 104
    functionLinenumberEnd: 117
    functionName: fu_legion_hid_child_init
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid_child_init(FuLegionHidChild *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - proxy
    - id
    argTypes:
    - FuDevice*
    - FuLegionHidDeviceId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: fu_legion_hid_child_new
    functionSourceFile: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuLegionHidChild
    signature: 'FuLegionHidChild *

      fu_legion_hid_child_new(FuDevice *proxy, FuLegionHidDeviceId id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LXS_TOUCH_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:35,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:36,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:37,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-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_lxs_touch_device_to_string
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_int
    - fwupd_codec_string_append_bool
    - FU_LXS_TOUCH_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_lxs_touch_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:44,1
    - Dst: fu_struct_lxs_touch_packet_new
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:44,1
    - Dst: fu_struct_lxs_touch_packet_set_flag
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:46,1
    - Dst: fu_struct_lxs_touch_packet_set_length
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:47,1
    - Dst: fu_struct_lxs_touch_packet_set_command
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:48,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:49,1
    - Dst: fu_hidraw_device_set_report
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:50,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - self
    - command
    - datasz
    - error
    argTypes:
    - FuLxsTouchDevice*
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 6
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: fu_lxs_touch_device_read
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_report
    - fu_struct_lxs_touch_packet_set_length
    - FU_HIDRAW_DEVICE
    - fu_struct_lxs_touch_packet_set_flag
    - fu_struct_lxs_touch_packet_set_command
    - g_autoptr
    - fu_byte_array_set_size
    - fu_struct_lxs_touch_packet_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lxs_touch_device_read(FuLxsTouchDevice *self, guint16 command,
      guint16 datasz, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:64,1
    - Dst: fu_struct_lxs_touch_packet_new
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:64,1
    - Dst: fu_struct_lxs_touch_packet_set_flag
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:67,1
    - Dst: fu_struct_lxs_touch_packet_set_length
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:68,1
    - Dst: fu_struct_lxs_touch_packet_set_command
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:69,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:71,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:72,1
    - Dst: fu_hidraw_device_set_report
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:73,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - self
    - command
    - data
    - datasz
    - error
    argTypes:
    - FuLxsTouchDevice*
    - guint16
    - guint8*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 57
    functionDepth: 6
    functionLinenumber: 57
    functionLinenumberEnd: 78
    functionName: fu_lxs_touch_device_write
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_report
    - fu_struct_lxs_touch_packet_set_length
    - FU_HIDRAW_DEVICE
    - fu_struct_lxs_touch_packet_set_flag
    - fu_struct_lxs_touch_packet_set_command
    - g_byte_array_append
    - g_autoptr
    - fu_byte_array_set_size
    - fu_struct_lxs_touch_packet_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lxs_touch_device_write(FuLxsTouchDevice *self,\n\t\t\t
      \ guint16 command,\n\t\t\t  const guint8 *data,\n\t\t\t  guint16 datasz,\n\t\t\t
      \ GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_lxs_touch_device_write
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:90,1
    - Dst: fu_lxs_touch_device_read
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:92,1
    - Dst: fu_hidraw_device_get_report
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:94,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:94,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - self
    - command
    - data
    - datasz
    - error
    argTypes:
    - FuLxsTouchDevice*
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 80
    functionDepth: 7
    functionLinenumber: 80
    functionLinenumberEnd: 107
    functionName: fu_lxs_touch_device_read_data
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_lxs_touch_device_write
    - fu_hidraw_device_get_report
    - fu_lxs_touch_device_read
    - FU_HIDRAW_DEVICE
    - fu_memcpy_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lxs_touch_device_read_data(FuLxsTouchDevice *self,\n\t\t\t
      \     guint16 command,\n\t\t\t      guint8 *data,\n\t\t\t      gsize datasz,\n\t\t\t
      \     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LXS_TOUCH_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:112,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:114,1
    - Dst: fu_lxs_touch_device_read_data
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:116,1
    - Dst: fu_struct_lxs_touch_getter_parse
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:122,1
    - Dst: fu_struct_lxs_touch_getter_get_ready_status
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:125,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 109
    functionDepth: 8
    functionLinenumber: 109
    functionLinenumberEnd: 132
    functionName: fu_lxs_touch_device_wait_ready_cb
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_lxs_touch_getter_get_ready_status
    - g_set_error_literal
    - fu_lxs_touch_device_read_data
    - fu_struct_lxs_touch_getter_parse
    - FU_LXS_TOUCH_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lxs_touch_device_wait_ready_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:137,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLxsTouchDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 143
    functionName: fu_lxs_touch_device_wait_ready
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lxs_touch_device_wait_ready(FuLxsTouchDevice *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:150,1
    - Dst: fu_lxs_touch_device_read_data
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:152,1
    - Dst: fu_struct_lxs_touch_version_parse
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:158,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:161,1
    - Dst: fu_struct_lxs_touch_version_get_boot_ver
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:162,1
    - Dst: fu_struct_lxs_touch_version_get_core_ver
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:163,1
    - Dst: fu_struct_lxs_touch_version_get_app_ver
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:164,1
    - Dst: fu_struct_lxs_touch_version_get_param_ver
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:165,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:166,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLxsTouchDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 145
    functionDepth: 8
    functionLinenumber: 145
    functionLinenumberEnd: 170
    functionName: fu_lxs_touch_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_lxs_touch_device_read_data
    - fu_struct_lxs_touch_version_get_param_ver
    - g_strdup_printf
    - fu_struct_lxs_touch_version_get_app_ver
    - FU_DEVICE
    - fu_struct_lxs_touch_version_get_core_ver
    - fu_struct_lxs_touch_version_parse
    - g_autoptr
    - fu_struct_lxs_touch_version_get_boot_ver
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lxs_touch_device_ensure_version(FuLxsTouchDevice *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:175,1
    - Dst: fu_lxs_touch_device_read_data
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:179,1
    - Dst: fu_struct_lxs_touch_interface_parse
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:186,1
    - Dst: fu_struct_lxs_touch_interface_get_protocol_name
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:190,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:191,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:192,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:192,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:193,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:194,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:194,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLxsTouchDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 172
    functionDepth: 8
    functionLinenumber: 172
    functionLinenumberEnd: 205
    functionName: fu_lxs_touch_device_ensure_mode
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_struct_lxs_touch_interface_parse
    - g_set_error_literal
    - fu_lxs_touch_device_read_data
    - fu_device_remove_flag
    - FU_DEVICE
    - g_str_has_prefix
    - g_autoptr
    - fu_struct_lxs_touch_interface_get_protocol_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lxs_touch_device_ensure_mode(FuLxsTouchDevice *self, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:210,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:213,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:213,1
    - Dst: fu_lxs_touch_device_read_data
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:216,1
    - Dst: fu_struct_lxs_touch_panel_parse
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:222,1
    - Dst: fu_struct_lxs_touch_panel_get_x_node
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:225,1
    - Dst: fu_struct_lxs_touch_panel_get_y_node
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLxsTouchDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 207
    functionDepth: 8
    functionLinenumber: 207
    functionLinenumberEnd: 230
    functionName: fu_lxs_touch_device_ensure_panel_info
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_lxs_touch_panel_get_y_node
    - fu_lxs_touch_device_read_data
    - FU_DEVICE
    - fu_device_has_flag
    - fu_struct_lxs_touch_panel_get_x_node
    - g_autoptr
    - fu_struct_lxs_touch_panel_parse
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lxs_touch_device_ensure_panel_info(FuLxsTouchDevice *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:236,1
    - Dst: fu_struct_lxs_touch_flash_iap_cmd_new
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:237,1
    - Dst: fu_struct_lxs_touch_flash_iap_cmd_set_cmd
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:239,1
    - Dst: fu_lxs_touch_device_write
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:240,1
    - Dst: fu_lxs_touch_device_wait_ready
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:246,1
    - Dst: fu_lxs_touch_device_read_data
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:248,1
    - Dst: fu_struct_lxs_touch_flash_iap_cmd_parse
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:254,1
    - Dst: fu_struct_lxs_touch_flash_iap_cmd_get_status
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLxsTouchDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 232
    functionDepth: 8
    functionLinenumber: 232
    functionLinenumberEnd: 261
    functionName: fu_lxs_touch_device_ensure_4k_mode
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_lxs_touch_device_write
    - fu_lxs_touch_device_wait_ready
    - fu_struct_lxs_touch_flash_iap_cmd_set_cmd
    - fu_struct_lxs_touch_flash_iap_cmd_parse
    - fu_lxs_touch_device_read_data
    - fu_struct_lxs_touch_flash_iap_cmd_get_status
    - g_autoptr
    - fu_struct_lxs_touch_flash_iap_cmd_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lxs_touch_device_ensure_4k_mode(FuLxsTouchDevice *self,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:266,1
    - Dst: fu_lxs_touch_device_read_data
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:269,1
    - Dst: fu_struct_lxs_touch_setter_new
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:274,1
    - Dst: fu_struct_lxs_touch_setter_set_mode
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:275,1
    - Dst: fu_struct_lxs_touch_setter_parse
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:277,1
    - Dst: fu_struct_lxs_touch_setter_set_mode
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:280,1
    - Dst: fu_lxs_touch_device_write
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:283,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:291,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:291,1
    - Dst: fu_lxs_touch_device_wait_ready
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:293,1
    - Dst: fu_lxs_touch_device_ensure_4k_mode
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:297,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - self
    - mode
    - error
    argTypes:
    - FuLxsTouchDevice*
    - FuLxsTouchMode
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 263
    functionDepth: 9
    functionLinenumber: 263
    functionLinenumberEnd: 302
    functionName: fu_lxs_touch_device_set_mode
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_lxs_touch_device_write
    - fu_lxs_touch_device_wait_ready
    - fu_struct_lxs_touch_setter_parse
    - fu_device_sleep
    - fu_lxs_touch_device_ensure_4k_mode
    - fu_struct_lxs_touch_setter_set_mode
    - fu_lxs_touch_device_read_data
    - FU_DEVICE
    - fu_struct_lxs_touch_setter_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lxs_touch_device_set_mode(FuLxsTouchDevice *self, FuLxsTouchMode
      mode, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_LXS_TOUCH_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:307,1
    - Dst: fu_lxs_touch_device_ensure_mode
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:309,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:311,1
    - Dst: fu_lxs_touch_device_ensure_version
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:312,1
    - Dst: fu_lxs_touch_device_ensure_panel_info
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-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: 304
    functionDepth: 9
    functionLinenumber: 304
    functionLinenumberEnd: 320
    functionName: fu_lxs_touch_device_setup
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_lxs_touch_device_ensure_panel_info
    - fu_lxs_touch_device_ensure_version
    - fu_device_has_flag
    - FU_LXS_TOUCH_DEVICE
    - fu_lxs_touch_device_ensure_mode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lxs_touch_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LXS_TOUCH_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:325,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:327,1
    - Dst: fu_lxs_touch_device_set_mode
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:329,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 322
    functionDepth: 10
    functionLinenumber: 322
    functionLinenumberEnd: 336
    functionName: fu_lxs_touch_device_detach
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_lxs_touch_device_set_mode
    - fu_device_has_flag
    - g_prefix_error_literal
    - FU_LXS_TOUCH_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lxs_touch_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:341,1
    - Dst: fu_struct_lxs_touch_flash_iap_cmd_new
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:341,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:342,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:344,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:344,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:345,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:353,1
    - Dst: fu_lxs_touch_device_write
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:354,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:355,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:356,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:357,1
    - Dst: fu_struct_lxs_touch_flash_iap_cmd_set_addr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:361,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:361,1
    - Dst: fu_struct_lxs_touch_flash_iap_cmd_set_size
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:362,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:362,1
    - Dst: fu_struct_lxs_touch_flash_iap_cmd_set_status
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:363,1
    - Dst: fu_struct_lxs_touch_flash_iap_cmd_set_cmd
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:364,1
    - Dst: fu_lxs_touch_device_write
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:365,1
    - Dst: fu_lxs_touch_device_wait_ready
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:371,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuLxsTouchDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 338
    functionDepth: 7
    functionLinenumber: 338
    functionLinenumberEnd: 378
    functionName: fu_lxs_touch_device_write_normal_chunk
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_lxs_touch_device_write
    - fu_lxs_touch_device_wait_ready
    - fu_chunk_array_new
    - fu_struct_lxs_touch_flash_iap_cmd_set_cmd
    - fu_chunk_get_data_sz
    - g_prefix_error_literal
    - fu_struct_lxs_touch_flash_iap_cmd_set_status
    - fu_chunk_get_data
    - fu_struct_lxs_touch_flash_iap_cmd_set_addr
    - fu_struct_lxs_touch_flash_iap_cmd_set_size
    - g_autoptr
    - fu_struct_lxs_touch_flash_iap_cmd_new
    - g_ptr_array_index
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lxs_touch_device_write_normal_chunk(FuLxsTouchDevice *self,
      FuChunk *chk, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:386,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:387,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:387,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:389,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:390,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:392,1
    - Dst: fu_lxs_touch_device_write_normal_chunk
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:395,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuLxsTouchDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 380
    functionDepth: 8
    functionLinenumber: 380
    functionLinenumberEnd: 402
    functionName: fu_lxs_touch_device_write_normal_chunks
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_lxs_touch_device_write_normal_chunk
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lxs_touch_device_write_normal_chunks(FuLxsTouchDevice
      *self,\n\t\t\t\t\tFuChunkArray *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/lxs-touch/fu-lxs-touch-device.c:407,1
    - Dst: fu_struct_lxs_touch_flash_iap_cmd_new
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:407,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:408,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:410,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:410,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:411,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:419,1
    - Dst: fu_lxs_touch_device_write
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:420,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:421,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:422,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:423,1
    - Dst: fu_struct_lxs_touch_flash_iap_cmd_set_addr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:427,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:427,1
    - Dst: fu_struct_lxs_touch_flash_iap_cmd_set_size
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:428,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:428,1
    - Dst: fu_struct_lxs_touch_flash_iap_cmd_set_cmd
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:429,1
    - Dst: fu_lxs_touch_device_write
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:430,1
    - Dst: fu_lxs_touch_device_wait_ready
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:436,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:437,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuLxsTouchDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 404
    functionDepth: 7
    functionLinenumber: 404
    functionLinenumberEnd: 443
    functionName: fu_lxs_touch_device_write_4k_chunk
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_lxs_touch_device_write
    - fu_lxs_touch_device_wait_ready
    - fu_chunk_array_new
    - fu_struct_lxs_touch_flash_iap_cmd_set_cmd
    - fu_chunk_get_data_sz
    - g_prefix_error_literal
    - fu_chunk_get_data
    - fu_struct_lxs_touch_flash_iap_cmd_set_addr
    - fu_struct_lxs_touch_flash_iap_cmd_set_size
    - g_autoptr
    - fu_struct_lxs_touch_flash_iap_cmd_new
    - g_ptr_array_index
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lxs_touch_device_write_4k_chunk(FuLxsTouchDevice *self,
      FuChunk *chk, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LXS_TOUCH_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:448,1
    - Dst: fu_lxs_touch_device_write_4k_chunk
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 445
    functionDepth: 8
    functionLinenumber: 445
    functionLinenumberEnd: 451
    functionName: fu_lxs_touch_device_write_4k_chunk_cb
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_lxs_touch_device_write_4k_chunk
    - FU_LXS_TOUCH_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lxs_touch_device_write_4k_chunk_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:459,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:460,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:460,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:462,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:463,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:465,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:468,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:468,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuLxsTouchDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 453
    functionDepth: 4
    functionLinenumber: 453
    functionLinenumberEnd: 479
    functionName: fu_lxs_touch_device_write_4k_chunks
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_progress_set_steps
    - fu_progress_step_done
    - FU_DEVICE
    - fu_device_retry
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lxs_touch_device_write_4k_chunks(FuLxsTouchDevice *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/lxs-touch/fu-lxs-touch-device.c:484,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:485,1
    - Dst: fu_struct_lxs_touch_setter_new
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:485,1
    - Dst: fu_struct_lxs_touch_setter_set_mode
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:487,1
    - Dst: fu_lxs_touch_device_write
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:488,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:493,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:494,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:495,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLxsTouchDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 481
    functionDepth: 7
    functionLinenumber: 481
    functionLinenumberEnd: 504
    functionName: fu_lxs_touch_device_reset_wdt
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_lxs_touch_device_write
    - g_debug
    - fu_struct_lxs_touch_setter_set_mode
    - g_steal_pointer
    - g_error_matches
    - fu_struct_lxs_touch_setter_new
    - g_autoptr
    - g_propagate_prefixed_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lxs_touch_device_reset_wdt(FuLxsTouchDevice *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:510,1
    - Dst: fu_lxs_touch_device_read_data
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:512,1
    - Dst: fu_struct_lxs_touch_interface_parse
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:518,1
    - Dst: fu_struct_lxs_touch_interface_get_protocol_name
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLxsTouchDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 506
    functionDepth: 8
    functionLinenumber: 506
    functionLinenumberEnd: 522
    functionName: fu_lxs_touch_device_get_protocol_name
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_lxs_touch_device_read_data
    - fu_struct_lxs_touch_interface_parse
    - fu_struct_lxs_touch_interface_get_protocol_name
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_lxs_touch_device_get_protocol_name(FuLxsTouchDevice *self, GError **error)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_LXS_TOUCH_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:531,1
    - Dst: fu_lxs_touch_firmware_get_offset
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:532,1
    - Dst: FU_LXS_TOUCH_FIRMWARE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:532,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:533,1
    - Dst: fu_lxs_touch_device_get_protocol_name
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:537,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:540,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:541,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:549,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:553,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:554,1
    - Dst: fu_lxs_touch_device_write_4k_chunks
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:561,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:564,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:565,1
    - Dst: fu_lxs_touch_device_write_normal_chunks
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:572,1
    - Dst: fu_lxs_touch_device_reset_wdt
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:575,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:580,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: 582
      start: 524
    functionDepth: 9
    functionLinenumber: 524
    functionLinenumberEnd: 582
    functionName: fu_lxs_touch_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_device_sleep
    - g_set_error_literal
    - FU_LXS_TOUCH_FIRMWARE
    - fu_chunk_array_new_from_stream
    - fu_lxs_touch_device_reset_wdt
    - fu_lxs_touch_firmware_get_offset
    - fu_lxs_touch_device_write_4k_chunks
    - fu_lxs_touch_device_write_normal_chunks
    - g_str_has_prefix
    - g_autoptr
    - fu_lxs_touch_device_get_protocol_name
    - FU_LXS_TOUCH_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lxs_touch_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/lxs-touch/fu-lxs-touch-device.c:587,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:588,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:589,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:590,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:591,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 584
    functionDepth: 3
    functionLinenumber: 584
    functionLinenumberEnd: 593
    functionName: fu_lxs_touch_device_set_progress
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_lxs_touch_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:598,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:598,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:599,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:599,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:600,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:600,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:601,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:601,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:602,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:602,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:603,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:603,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:604,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:604,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:605,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:605,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:606,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:606,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:607,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:607,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:608,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLxsTouchDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 595
    functionDepth: 6
    functionLinenumber: 595
    functionLinenumberEnd: 609
    functionName: fu_lxs_touch_device_init
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_install_duration
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    linkageType: ''
    returnType: void
    signature: void fu_lxs_touch_device_init(FuLxsTouchDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLxsTouchDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 621
    functionName: fu_lxs_touch_device_class_init
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_lxs_touch_device_class_init(FuLxsTouchDeviceClass *klass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_LXS_TOUCH_FIRMWARE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c:30,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c:34,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c:38,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c:51,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 61
    functionName: fu_lxs_touch_firmware_parse
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_size
    - FU_LXS_TOUCH_FIRMWARE
    - g_debug
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lxs_touch_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/lxs-touch/fu-lxs-touch-firmware.c:66,1
    - Dst: FU_IS_LXS_TOUCH_FIRMWARE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLxsTouchFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: fu_lxs_touch_firmware_get_offset
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_LXS_TOUCH_FIRMWARE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_lxs_touch_firmware_get_offset(FuLxsTouchFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c:73,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c:73,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c:74,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c:74,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c:75,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLxsTouchFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: fu_lxs_touch_firmware_init
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_lxs_touch_firmware_init(FuLxsTouchFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLxsTouchFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: fu_lxs_touch_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_lxs_touch_firmware_class_init(FuLxsTouchFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLxsTouchPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_lxs_touch_plugin_init
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_lxs_touch_plugin_init(FuLxsTouchPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-plugin.c:27,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-plugin.c:28,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-plugin.c:29,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-plugin.c:30,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: fu_lxs_touch_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_lxs_touch_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-plugin.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLxsTouchPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: fu_lxs_touch_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_lxs_touch_plugin_class_init(FuLxsTouchPluginClass *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_literal
      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: 4
    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_return_val_if_fail
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_usb_device_bulk_transfer
    - FU_USB_DEVICE
    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_literal
      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: 4
    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_return_val_if_fail
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_usb_device_bulk_transfer
    - FU_USB_DEVICE
    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: 5
    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:
    - fu_memread_uint32_safe
    - g_set_error
    - fu_logitech_scribe_device_send
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - fu_logitech_scribe_device_recv
    - g_byte_array_append
    - g_autoptr
    - fu_byte_array_set_size
    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_new
    - fu_input_stream_chunkify
    - g_checksum_get_digest
    - 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_ioctl_execute
    - g_debug
    - fu_ioctl_add_mutable_buffer
    - fu_ioctl_add_key_as_u8
    - fu_udev_device_ioctl_new
    - fu_dump_raw
    - FU_UDEV_DEVICE
    - fu_ioctl_add_key_as_u16
    - g_autoptr
    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_ioctl_execute
    - g_debug
    - fu_ioctl_add_mutable_buffer
    - fu_ioctl_add_key_as_u8
    - fu_udev_device_ioctl_new
    - fu_dump_raw
    - FU_UDEV_DEVICE
    - fu_ioctl_add_key_as_u16
    - g_autoptr
    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:
    - fwupd_codec_string_append_hex
    - FU_LOGITECH_SCRIBE_DEVICE
    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
    - fu_v4l_device_get_index
    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: 6
    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_send_upd_cmd
    - FU_LOGITECH_SCRIBE_DEVICE
    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: 6
    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_logitech_scribe_device_send_upd_cmd
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - g_byte_array_new
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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_DEVICE
      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_literal
      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:504,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:507,1
    - Dst: fu_byte_array_append_uint64
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:509,1
    - Dst: fu_logitech_scribe_device_send_upd_cmd
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:510,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:515,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:518,1
    - Dst: fu_logitech_scribe_device_write_fw
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:521,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:524,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:527,1
    - Dst: fu_logitech_scribe_device_compute_hash
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:530,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: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:535,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:538,1
    - Dst: strlen
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:538,1
    - Dst: fu_logitech_scribe_device_send_upd_cmd
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:539,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:544,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:547,1
    - Dst: fu_logitech_scribe_device_send_upd_cmd
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:551,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:556,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:560,1
    - Dst: fu_device_sleep_full
      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_get_child
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:566,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:567,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:567,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:568,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: 572
      start: 417
    functionDepth: 9
    functionLinenumber: 417
    functionLinenumberEnd: 572
    functionName: fu_logitech_scribe_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_logitech_scribe_device_send_upd_cmd
    - fu_usb_device_get_interface
    - fu_device_locker_new
    - fu_device_sleep_full
    - fu_usb_device_add_interface
    - fu_byte_array_append_uint32
    - fu_usb_endpoint_get_address
    - fu_logitech_scribe_device_compute_hash
    - g_ptr_array_index
    - fu_usb_interface_get_number
    - g_debug
    - g_set_error_literal
    - g_prefix_error_literal
    - g_byte_array_new
    - FU_LOGITECH_SCRIBE_DEVICE
    - fu_usb_interface_get_endpoints
    - fu_progress_add_step
    - fu_progress_step_done
    - FU_DEVICE
    - g_byte_array_append
    - fu_device_retry
    - FU_USB_DEVICE
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_logitech_scribe_device_write_fw
    - fu_firmware_get_stream
    - fu_input_stream_size
    - fu_device_get_backend_parent_with_subsystem
    - fu_byte_array_append_uint64
    - strlen
    - g_autoptr
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_logitech_scribe_device_query_data_size
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:582,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:589,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:597,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:604,1
    - Dst: fu_logitech_scribe_device_get_xu_control
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:605,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:616,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:616,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechScribeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 574
    functionDepth: 5
    functionLinenumber: 574
    functionLinenumberEnd: 620
    functionName: fu_logitech_scribe_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_scribe_device_get_xu_control
    - fu_device_set_version_raw
    - g_set_error
    - g_malloc0
    - FU_DEVICE
    - 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:625,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:628,1
    - Dst: fu_v4l_device_get_caps
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:632,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:632,1
    - Dst: fu_v4l_cap_to_string
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:634,1
    - Dst: fu_v4l_device_get_caps
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:634,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:634,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:635,1
    - Dst: fu_logitech_scribe_device_ensure_version
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 622
    functionDepth: 6
    functionLinenumber: 622
    functionLinenumberEnd: 644
    functionName: fu_logitech_scribe_device_setup
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - fu_v4l_cap_to_string
    - fu_v4l_device_get_caps
    - g_set_error
    - fu_logitech_scribe_device_ensure_version
    - FU_V4L_DEVICE
    - FU_LOGITECH_SCRIBE_DEVICE
    - FU_DEVICE_CLASS
    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:649,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:650,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:651,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:652,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:653,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 646
    functionDepth: 3
    functionLinenumber: 646
    functionLinenumberEnd: 655
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:660,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 661
    functionName: fu_logitech_scribe_device_convert_version
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    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:666,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:666,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:667,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:667,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:668,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:668,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:669,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:669,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:670,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:670,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:671,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:671,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:672,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechScribeDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 663
    functionDepth: 6
    functionLinenumber: 663
    functionLinenumberEnd: 673
    functionName: fu_logitech_scribe_device_init
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_retry_set_delay
    - fu_device_set_remove_delay
    - FU_DEVICE
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechScribeDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 685
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-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: 2
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: fu_logitech_scribe_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/logitech-scribe/fu-logitech-scribe-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechScribePluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    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_strdup
    - g_return_if_fail
    - g_free
    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:40,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:40,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:41,1
    - Dst: fu_block_device_sg_io_cmd_read
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:42,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:42,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 50
    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
    - g_byte_array_new
    - fu_block_device_sg_io_cmd_read
    - g_autoptr
    - 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:57,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:57,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 5
    functionLinenumber: 52
    functionLinenumberEnd: 64
    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_literal
    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:71,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:71,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 5
    functionLinenumber: 66
    functionLinenumberEnd: 78
    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_literal
    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:85,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 86
    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:93,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 5
    functionLinenumber: 88
    functionLinenumberEnd: 94
    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:101,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 5
    functionLinenumber: 96
    functionLinenumberEnd: 102
    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:110,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 104
    functionDepth: 5
    functionLinenumber: 104
    functionLinenumberEnd: 116
    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
    - fu_block_device_sg_io_cmd_write
    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:123,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 5
    functionLinenumber: 118
    functionLinenumberEnd: 124
    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:131,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 5
    functionLinenumber: 126
    functionLinenumberEnd: 132
    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:155,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:158,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:162,1
    - Dst: fu_block_device_sg_io_cmd_read
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:165,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:165,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: 171
      start: 134
    functionDepth: 5
    functionLinenumber: 134
    functionLinenumberEnd: 171
    functionName: fu_genesys_gl32xx_device_cmd_read_flash
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_memwrite_uint16_safe
    - FU_BLOCK_DEVICE
    - fu_block_device_sg_io_cmd_read
    - 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:178,1
    - Dst: fu_genesys_gl32xx_device_cmd_get_version
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:180,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:182,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:186,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:193,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:196,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:196,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:199,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:202,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:202,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:203,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:203,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 173
    functionDepth: 6
    functionLinenumber: 173
    functionLinenumberEnd: 211
    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
    - fu_memstrsafe
    - fu_device_add_instance_str
    - g_set_error_literal
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_device_build_instance_id_full
    - fu_genesys_gl32xx_device_cmd_get_version
    - g_autoptr
    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:223,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:223,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:230,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:238,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:238,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:241,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:249,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:249,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - cmd
    - cmdsz
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 213
    functionDepth: 6
    functionLinenumber: 213
    functionLinenumberEnd: 258
    functionName: fu_genesys_gl32xx_device_check_rom_mode
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_set_error_literal
    - fu_device_remove_flag
    - FU_DEVICE
    - FU_BLOCK_DEVICE
    - fu_block_device_sg_io_cmd_read
    - fu_memcmp_safe
    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:268,1
    - Dst: fu_genesys_gl32xx_device_check_rom_mode
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:272,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:276,1
    - Dst: fu_genesys_gl32xx_device_set_chip_name
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:278,1
    - Dst: fu_genesys_gl32xx_device_check_rom_mode
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:283,1
    - Dst: fu_genesys_gl32xx_device_set_chip_name
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 261
    functionDepth: 7
    functionLinenumber: 261
    functionLinenumberEnd: 288
    functionName: fu_genesys_gl32xx_device_ensure_rom_mode
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_genesys_gl32xx_device_check_rom_mode
    - g_debug
    - fu_genesys_gl32xx_device_set_chip_name
    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:300,1
    - Dst: fu_block_device_sg_io_cmd_write
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:302,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:302,1
    - Dst: fu_block_device_sg_io_cmd_read
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:309,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:309,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:316,1
    - Dst: fu_cfi_device_new
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:317,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:317,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:318,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:318,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:320,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:321,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:327,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:327,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 290
    functionDepth: 5
    functionLinenumber: 290
    functionLinenumberEnd: 331
    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_block_device_sg_io_cmd_write
    - g_set_error_literal
    - fu_device_setup
    - FU_DEVICE
    - FU_BLOCK_DEVICE
    - g_strdup_printf
    - fu_cfi_device_new
    - fu_block_device_sg_io_cmd_read
    - fu_device_get_name
    - g_autoptr
    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:336,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:336,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:337,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:337,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:340,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:341,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:341,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:347,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:348,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:348,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysGl32xxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 352
    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_add_private_flag
    - FU_DEVICE
    - fu_device_get_version
    - g_str_has_prefix
    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:362,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:362,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:376,1
    - 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: fu_memread_uint32
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:391,1
    - Dst: fu_device_add_instance_u32
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:392,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:392,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:395,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:395,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 354
    functionDepth: 7
    functionLinenumber: 354
    functionLinenumberEnd: 403
    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_device_build_instance_id
    - fu_memread_uint32
    - fu_device_add_instance_u32
    - FU_DEVICE
    - FU_BLOCK_DEVICE
    - fu_block_device_sg_io_cmd_read
    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:411,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:411,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:417,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:431,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 405
    functionDepth: 5
    functionLinenumber: 405
    functionLinenumberEnd: 441
    functionName: fu_genesys_gl32xx_device_get_usb_mode
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - FU_BLOCK_DEVICE
    - g_set_error
    - fu_block_device_sg_io_cmd_read
    - g_prefix_error_literal
    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:447,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:448,1
    - Dst: fu_genesys_gl32xx_device_cmd_clear_wp
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:453,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:454,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:457,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:457,1
    - Dst: fu_genesys_gl32xx_device_cmd_write_enable
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:460,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:461,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:464,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:464,1
    - Dst: fu_genesys_gl32xx_device_cmd_chip_erase
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:467,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:468,1
    - Dst: fu_genesys_gl32xx_device_cmd_wait_wip
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:473,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:474,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 443
    functionDepth: 6
    functionLinenumber: 443
    functionLinenumberEnd: 480
    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_clear_wp
    - fu_genesys_gl32xx_device_cmd_wait_wip
    - fu_device_sleep
    - fu_genesys_gl32xx_device_cmd_chip_erase
    - g_prefix_error_literal
    - fu_genesys_gl32xx_device_cmd_write_enable
    - FU_DEVICE
    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:485,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:486,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:487,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 489
    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:494,1
    - Dst: fu_genesys_gl32xx_device_cmd_switch_to_rom_mode
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:497,1
    - Dst: fu_genesys_gl32xx_device_get_usb_mode
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:501,1
    - Dst: fu_genesys_gl32xx_device_verify_chip_id
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:503,1
    - Dst: fu_genesys_gl32xx_device_cmd_write_sr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:507,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:508,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 491
    functionDepth: 6
    functionLinenumber: 491
    functionLinenumberEnd: 514
    functionName: fu_genesys_gl32xx_device_detach
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_gl32xx_device_verify_chip_id
    - fu_genesys_gl32xx_device_cmd_switch_to_rom_mode
    - FU_GENESYS_GL32XX_DEVICE
    - g_prefix_error_literal
    - fu_genesys_gl32xx_device_get_usb_mode
    - fu_genesys_gl32xx_device_cmd_write_sr
    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:519,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:520,1
    - Dst: fu_genesys_gl32xx_device_cmd_reset_usb
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 516
    functionDepth: 6
    functionLinenumber: 516
    functionLinenumberEnd: 522
    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_cmd_reset_usb
    - FU_GENESYS_GL32XX_DEVICE
    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:527,1
    - Dst: fu_genesys_gl32xx_device_ensure_version
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:530,1
    - Dst: fu_genesys_gl32xx_device_ensure_rom_mode
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:533,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:534,1
    - Dst: fu_genesys_gl32xx_device_set_chip_name
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:540,1
    - Dst: fu_device_has_vendor_id
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:541,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:542,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:544,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:545,1
    - Dst: fu_genesys_gl32xx_device_ensure_cid
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:548,1
    - Dst: fu_genesys_gl32xx_device_ensure_enforce_requires
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:550,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 524
    functionDepth: 8
    functionLinenumber: 524
    functionLinenumberEnd: 554
    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_rom_mode
    - g_prefix_error_literal
    - FU_GENESYS_GL32XX_DEVICE
    - fu_genesys_gl32xx_device_ensure_version
    - fu_device_set_name
    - g_strdup_printf
    - fu_genesys_gl32xx_device_ensure_cid
    - fu_genesys_gl32xx_device_set_chip_name
    - fu_device_has_vendor_id
    - fu_genesys_gl32xx_device_ensure_enforce_requires
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_genesys_gl32xx_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:561,1
    - Dst: FU_DEVICE
      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:562,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:563,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:565,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:568,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:569,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:571,1
    - Dst: fu_genesys_gl32xx_device_cmd_read_flash
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:572,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:573,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:574,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:575,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:577,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:580,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:583,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 556
    functionDepth: 6
    functionLinenumber: 556
    functionLinenumberEnd: 584
    functionName: fu_genesys_gl32xx_device_dump_bytes
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_gl32xx_device_cmd_read_flash
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - fu_progress_set_steps
    - g_prefix_error
    - g_malloc0
    - fu_progress_step_done
    - FU_DEVICE
    - g_steal_pointer
    - fu_chunk_array_mutable_new
    - fu_chunk_get_address
    - fu_device_get_firmware_size_max
    - g_bytes_new_take
    - g_autoptr
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_genesys_gl32xx_device_dump_bytes(FuGenesysGl32xxDevice
      *self,\n\t\t\t\t    FuProgress *progress,\n\t\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_GL32XX_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:589,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:590,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:592,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:593,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:593,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:600,1
    - Dst: fu_genesys_gl32xx_device_dump_bytes
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:601,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 586
    functionDepth: 7
    functionLinenumber: 586
    functionLinenumberEnd: 607
    functionName: fu_genesys_gl32xx_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_steal_pointer
    - FU_GENESYS_GL32XX_DEVICE
    - FU_DEVICE
    - fu_genesys_gl32xx_device_dump_bytes
    - 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:612,1
    - Dst: fu_genesys_gl32xx_firmware_new
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:612,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:613,1
    - Dst: fu_genesys_gl32xx_device_dump_firmware
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:615,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:618,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:622,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 609
    functionDepth: 8
    functionLinenumber: 609
    functionLinenumberEnd: 623
    functionName: fu_genesys_gl32xx_device_read_firmware
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_gl32xx_firmware_new
    - g_steal_pointer
    - fu_firmware_parse_bytes
    - fu_genesys_gl32xx_device_dump_firmware
    - g_autoptr
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_genesys_gl32xx_device_read_firmware(FuDevice *device, FuProgress *progress,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:632,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:632,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:633,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:637,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 644
    functionName: fu_genesys_gl32xx_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_size
    - fu_device_get_firmware_size_max
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_genesys_gl32xx_device_check_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:649,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:650,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:651,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:667,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:669,1
    - Dst: fu_block_device_sg_io_cmd_write
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:671,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:671,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:677,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - chunk
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 646
    functionDepth: 5
    functionLinenumber: 646
    functionLinenumberEnd: 683
    functionName: fu_genesys_gl32xx_device_write_block
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_block_device_sg_io_cmd_write
    - fu_memwrite_uint16_safe
    - fu_chunk_get_data_sz
    - g_prefix_error_literal
    - FU_BLOCK_DEVICE
    - fu_chunk_get_data
    - fu_memwrite_uint32_safe
    - fu_chunk_get_address
    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:692,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:693,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:693,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:694,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:695,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:698,1
    - Dst: fu_genesys_gl32xx_device_write_block
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:701,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:702,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuGenesysGl32xxDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 685
    functionDepth: 6
    functionLinenumber: 685
    functionLinenumberEnd: 710
    functionName: fu_genesys_gl32xx_device_write_blocks
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_genesys_gl32xx_device_write_block
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:719,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:720,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:721,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:722,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:725,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:726,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:727,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:728,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:729,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:732,1
    - Dst: fu_genesys_gl32xx_device_erase
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:737,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:739,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:742,1
    - Dst: fu_genesys_gl32xx_device_write_blocks
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:746,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:748,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:751,1
    - Dst: fu_genesys_gl32xx_device_dump_bytes
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:754,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:757,1
    - Dst: g_bytes_compare
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:758,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:759,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:765,1
    - Dst: fu_genesys_gl32xx_device_cmd_write_disable
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:768,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:769,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: 775
      start: 712
    functionDepth: 7
    functionLinenumber: 712
    functionLinenumberEnd: 775
    functionName: fu_genesys_gl32xx_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_genesys_gl32xx_device_write_blocks
    - g_bytes_compare
    - fu_firmware_get_bytes
    - fu_progress_add_step
    - fu_chunk_array_new_from_bytes
    - g_set_error_literal
    - fu_genesys_gl32xx_device_erase
    - fu_progress_step_done
    - FU_GENESYS_GL32XX_DEVICE
    - fu_genesys_gl32xx_device_cmd_write_disable
    - g_prefix_error_literal
    - fu_genesys_gl32xx_device_dump_bytes
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:780,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:781,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:782,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:783,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:784,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 777
    functionDepth: 3
    functionLinenumber: 777
    functionLinenumberEnd: 786
    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 *device, FuProgress
      *progress)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GENESYS_GL32XX_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:794,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:798,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:799,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:806,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 811
    functionName: fu_genesys_gl32xx_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_strcmp0
    - g_set_error_literal
    - FU_GENESYS_GL32XX_DEVICE
    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:818,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:818,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:819,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:819,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:820,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:820,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:821,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:821,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:823,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:823,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:824,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:824,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:825,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:825,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:826,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:826,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:827,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:827,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:828,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:828,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:829,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:829,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:830,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:830,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:831,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysGl32xxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 813
    functionDepth: 6
    functionLinenumber: 813
    functionLinenumberEnd: 832
    functionName: fu_genesys_gl32xx_device_init
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_set_firmware_size
    - fu_device_add_private_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    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:837,1
    - Dst: g_free
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:838,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 840
    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:845,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-device.c:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysGl32xxDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 858
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-plugin.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 36
    functionName: fu_genesys_gl32xx_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysGl32xxPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    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: 4
    functionLinenumber: 22
    functionLinenumberEnd: 79
    functionName: fu_genesys_gl32xx_firmware_parse
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u8
    - fu_input_stream_read_safe
    - fu_firmware_set_version
    - fu_input_stream_compute_sum8
    - fu_input_stream_size
    - g_set_error
    - g_set_error_literal
    - g_strdup_printf
    - g_autoptr
    - fu_partial_input_stream_new
    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
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c:85,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGenesysGl32xxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: fu_genesys_gl32xx_firmware_init
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGenesysGl32xxFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 93
    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:98,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: fu_genesys_gl32xx_firmware_new
    functionSourceFile: /src/fwupd/plugins/genesys-gl32xx/fu-genesys-gl32xx-firmware.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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_context_get_efivars
    - fu_plugin_get_context
    - 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_add_flag
    - fu_device_add_instance_id
    - fu_device_set_version
    - fu_device_add_icon
    - fu_plugin_get_context
    - fu_device_set_id
    - fu_device_build_vendor_id
    - fu_device_set_name
    - fu_plugin_device_register
    - fu_context_get_hwid_value
    - fu_context_get_hwid_guids
    - fu_device_set_metadata
    - fu_device_set_version_format
    - g_autoptr
    - g_ptr_array_index
    - fu_device_new
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 67
    functionName: fu_uefi_recovery_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/uefi-recovery/fu-uefi-recovery-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    - fu_plugin_add_rule
    - G_OBJECT_CLASS
    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: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    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:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiRecoveryPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    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:
    - fu_strtoull
    - g_ascii_isdigit
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vbe_simple_device_parse_devnum(const gchar *str, guint
      *value, GError **error)
  - BBCount: 10
    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: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:111,1
    - Dst: fu_fdt_image_get_attr_u32
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:121,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:123,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 134
    functionName: fu_vbe_simple_device_probe
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_strdup
    - FU_IS_VBE_DEVICE
    - fu_fdt_image_get_attr_str
    - g_set_error
    - FU_VBE_SIMPLE_DEVICE
    - g_prefix_error
    - g_strdup_printf
    - fu_vbe_simple_device_parse_devnum
    - FU_VBE_DEVICE
    - g_str_has_prefix
    - fu_vbe_device_get_fdt_node
    - FU_DEVICE_CLASS
    - fu_fdt_image_get_attr_u32
    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:139,1
    - Dst: open
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:142,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:145,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:150,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 163
    functionName: fu_vbe_simple_device_open
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - fwupd_strerror
    - FU_VBE_SIMPLE_DEVICE
    - open
    - g_set_error
    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:168,1
    - Dst: close
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 176
    functionName: fu_vbe_simple_device_close
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - FU_VBE_SIMPLE_DEVICE
    - close
    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:184,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:185,1
    - Dst: fu_fdt_firmware_get_image_by_path
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:190,1
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:190,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:195,1
    - Dst: fu_vbe_device_get_compatible
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:198,1
    - Dst: FU_VBE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:198,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:201,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:202,1
    - Dst: fu_fdt_image_get_attr_strlist
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:203,1
    - Dst: g_strv_contains
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:208,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:210,1
    - Dst: g_strjoinv
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:215,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - self
    - firmware
    - error
    argTypes:
    - FuVbeSimpleDevice*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 222
    functionName: fu_vbe_simple_device_get_cfg_compatible
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - fu_fdt_image_get_attr_strlist
    - g_set_error
    - fu_firmware_get_images
    - fu_vbe_device_get_compatible
    - g_object_ref
    - fu_fdt_firmware_get_image_by_path
    - FU_VBE_DEVICE
    - g_strv_contains
    - g_strjoinv
    - g_autoptr
    - g_auto
    - FU_FDT_FIRMWARE
    - g_ptr_array_index
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_VBE_SIMPLE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:231,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:233,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:234,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:235,1
    - Dst: fu_fit_firmware_new
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:235,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:236,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:236,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:239,1
    - Dst: fu_vbe_simple_device_get_cfg_compatible
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:243,1
    - Dst: fu_fdt_image_get_attr_str
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:246,1
    - Dst: fu_fdt_image_get_attr_strlist
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:250,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:254,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:255,1
    - Dst: fu_fdt_firmware_get_image_by_path
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:257,1
    - Dst: FU_FDT_FIRMWARE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:257,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:260,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:261,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:261,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:266,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 267
    functionName: fu_vbe_simple_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - fu_fdt_image_get_attr_strlist
    - fu_fdt_image_get_attr_str
    - fu_firmware_add_image
    - fu_firmware_parse_stream
    - fu_vbe_simple_device_get_cfg_compatible
    - fu_firmware_add_image_gtype
    - FU_FIRMWARE
    - g_steal_pointer
    - fu_fit_firmware_new
    - fu_firmware_new
    - g_strdup_printf
    - fu_fdt_firmware_get_image_by_path
    - FU_FDT_FIRMWARE
    - g_auto
    - g_autoptr
    - 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:280,1
    - Dst: fu_fdt_image_get_attr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:283,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:286,1
    - Dst: fu_fdt_image_get_attr_u32
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:287,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_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:302,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:306,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:306,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:315,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:316,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:316,1
    - Dst: lseek
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:321,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:324,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:330,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:332,1
    - Dst: write
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:343,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:346,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:351,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:353,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 4
    argNames:
    - self
    - img
    - progress
    - error
    argTypes:
    - FuVbeSimpleDevice*
    - FuFdtImage*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 364
    functionName: fu_vbe_simple_device_write_firmware_img
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - write
    - lseek
    - g_debug
    - g_set_error
    - g_bytes_get_data
    - FU_FIRMWARE
    - fu_fdt_image_get_attr
    - fwupd_strerror
    - g_autoptr
    - fu_fdt_image_get_attr_u32
    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:373,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:374,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:374,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:376,1
    - Dst: FU_IS_VBE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:376,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:379,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:380,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:382,1
    - Dst: fu_vbe_simple_device_write_firmware_img
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:383,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:385,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:388,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: 393
      start: 366
    functionDepth: 4
    functionLinenumber: 366
    functionLinenumberEnd: 393
    functionName: fu_vbe_simple_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_VBE_DEVICE
    - fu_vbe_simple_device_write_firmware_img
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_firmware_get_images
    - g_autoptr
    - fu_progress_get_child
    - FU_VBE_SIMPLE_DEVICE
    - g_ptr_array_index
    - fu_progress_set_id
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_VBE_SIMPLE_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:398,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:400,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:400,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:401,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:405,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:413,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:414,1
    - Dst: lseek
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:417,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:420,1
    - Dst: fwupd_strerror
      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:428,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:439,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:447,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:449,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:450,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:450,1
    - Dst: read
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:452,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:452,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:453,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:454,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:459,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:462,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:462,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:463,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:467,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 395
    functionDepth: 4
    functionLinenumber: 395
    functionLinenumberEnd: 468
    functionName: fu_vbe_simple_device_upload
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - fu_chunk_get_data_sz
    - FU_VBE_SIMPLE_DEVICE
    - g_ptr_array_index
    - g_set_error_literal
    - fu_progress_set_steps
    - g_byte_array_new
    - fu_progress_set_status
    - read
    - fu_chunk_array_new
    - fu_progress_step_done
    - g_malloc0
    - g_byte_array_append
    - lseek
    - fu_chunk_get_address
    - fu_progress_set_id
    - g_set_error
    - fwupd_strerror
    - g_autoptr
    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:473,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:474,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:475,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:476,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:477,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 470
    functionDepth: 3
    functionLinenumber: 470
    functionLinenumberEnd: 479
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:484,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:484,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:485,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:485,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:486,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:486,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:487,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:487,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:488,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVbeSimpleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 481
    functionDepth: 5
    functionLinenumber: 481
    functionLinenumberEnd: 489
    functionName: fu_vbe_simple_device_init
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_name
    - FU_DEVICE
    - fu_device_set_vendor
    - fu_device_set_version_format
    - fu_device_set_version_lowest
    - fu_device_build_vendor_id
    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:494,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:495,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:495,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 491
    functionDepth: 5
    functionLinenumber: 491
    functionLinenumberEnd: 499
    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
    - G_OBJECT_CLASS
    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:504,1
    - Dst: g_free
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:505,1
    - Dst: g_free
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:506,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 508
    functionName: fu_vbe_simple_device_finalize
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_VBE_SIMPLE_DEVICE
    - G_OBJECT_CLASS
    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:513,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/vbe/fu-vbe-simple-device.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVbeSimpleDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 525
    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_literal
      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_add_device
      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_strcmp0
    - fu_fdt_image_get_attr_str
    - g_set_error
    - g_prefix_error_literal
    - fu_plugin_get_context
    - g_strsplit
    - g_strv_length
    - g_object_new
    - g_auto
    - g_str_has_prefix
    - g_autoptr
    - fu_plugin_add_device
    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_literal
      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: 6
    functionLinenumber: 90
    functionLinenumberEnd: 125
    functionName: fu_vbe_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-plugin.c
    functionUses: 0
    functionsReached:
    - fu_context_get_fdt
    - fu_plugin_get_devices
    - FU_FIRMWARE
    - g_set_error_literal
    - fu_plugin_get_context
    - fu_firmware_get_images
    - fu_fdt_firmware_get_image_by_path
    - g_warning
    - g_autoptr
    - FU_FDT_FIRMWARE
    - fu_vbe_plugin_coldplug_img
    - g_ptr_array_index
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/vbe/fu-vbe-plugin.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: fu_vbe_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVbePluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 148
    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: 1381
    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:
    - g_strjoinv
    - fwupd_codec_string_append
    - FU_VBE_DEVICE
    - GET_PRIVATE
    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:
    - g_return_val_if_fail
    - FU_IS_VBE_DEVICE
    - 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:
    - g_return_val_if_fail
    - FU_IS_VBE_DEVICE
    - 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_add_flag
    - fu_device_set_physical_id
    - fu_device_add_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    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: 3
    functionLinenumber: 69
    functionLinenumberEnd: 102
    functionName: fu_vbe_device_probe
    functionSourceFile: /src/fwupd/plugins/vbe/fu-vbe-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_VBE_DEVICE
    - fu_fdt_image_get_attr_strlist
    - fu_device_set_version
    - fu_fdt_image_get_attr_str
    - fu_device_set_version_bootloader
    - g_set_error_literal
    - FU_VBE_DEVICE
    - GET_PRIVATE
    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:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_set_object
    - FU_VBE_DEVICE
    - GET_PRIVATE
    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_set_object
    - FU_VBE_DEVICE
    - g_value_get_object
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    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
    - FU_VBE_DEVICE
    - GET_PRIVATE
    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
    - g_param_spec_object
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_vbe_device_class_init(FuVbeDeviceClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:25,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:25,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:29,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:37,1
    - Dst: getpid
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:37,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:38,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPowerdPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 43
    functionName: fu_powerd_plugin_create_suspend_file
    functionSourceFile: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_context_build_filename
    - fu_plugin_get_context
    - g_prefix_error_literal
    - g_strdup_printf
    - getpid
    - g_file_set_contents
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_powerd_plugin_create_suspend_file(FuPowerdPlugin *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:48,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:51,1
    - Dst: fu_context_get_path
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:53,1
    - Dst: g_file_new_build_filename
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:57,1
    - Dst: g_file_delete
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:58,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:59,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:60,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPowerdPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 66
    functionName: fu_powerd_plugin_delete_suspend_file
    functionSourceFile: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - g_steal_pointer
    - fu_plugin_get_context
    - g_file_delete
    - g_error_matches
    - g_file_new_build_filename
    - fu_context_get_path
    - g_autoptr
    - g_propagate_prefixed_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_powerd_plugin_delete_suspend_file(FuPowerdPlugin *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:71,1
    - Dst: g_variant_get
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:76,1
    - Dst: fu_context_set_battery_level
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:81,1
    - Dst: fu_context_set_power_state
      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:92,1
    - Dst: fu_context_set_power_state
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:94,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - plugin
    - parameters
    argTypes:
    - FuPlugin*
    - GVariant*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 95
    functionName: fu_powerd_plugin_rescan
    functionSourceFile: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    functionUses: 0
    functionsReached:
    - fu_context_set_battery_level
    - fu_context_set_power_state
    - 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:104,1
    - Dst: fu_powerd_plugin_rescan
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:106,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: 107
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 107
    functionName: fu_powerd_plugin_proxy_changed_cb
    functionSourceFile: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    functionUses: 0
    functionsReached:
    - fu_powerd_plugin_rescan
    - g_str_equal
    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:112,1
    - Dst: fu_powerd_plugin_delete_suspend_file
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:115,1
    - Dst: g_dbus_proxy_new_for_bus_sync
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:119,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:129,1
    - Dst: g_dbus_proxy_get_name_owner
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:132,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:134,1
    - Dst: g_dbus_proxy_get_name
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:138,1
    - Dst: fu_powerd_plugin_rescan
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:142,1
    - Dst: g_dbus_proxy_call_sync
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:143,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:151,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:151,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 157
    functionName: fu_powerd_plugin_startup
    functionSourceFile: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    functionUses: 0
    functionsReached:
    - fu_powerd_plugin_rescan
    - g_signal_connect
    - g_set_error
    - g_dbus_proxy_get_name
    - fu_powerd_plugin_delete_suspend_file
    - g_prefix_error_literal
    - g_dbus_proxy_new_for_bus_sync
    - G_CALLBACK
    - G_DBUS_PROXY
    - g_dbus_proxy_call_sync
    - g_dbus_proxy_get_name_owner
    - FU_POWERD_PLUGIN
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_powerd_plugin_startup(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_POWERD_PLUGIN
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:162,1
    - Dst: fu_powerd_plugin_create_suspend_file
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: fu_powerd_plugin_composite_prepare
    functionSourceFile: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    functionUses: 0
    functionsReached:
    - FU_POWERD_PLUGIN
    - fu_powerd_plugin_create_suspend_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_powerd_plugin_composite_prepare(FuPlugin *plugin, GPtrArray
      *devices, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_POWERD_PLUGIN
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:169,1
    - Dst: fu_powerd_plugin_delete_suspend_file
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: fu_powerd_plugin_composite_cleanup
    functionSourceFile: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    functionUses: 0
    functionsReached:
    - fu_powerd_plugin_delete_suspend_file
    - FU_POWERD_PLUGIN
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_powerd_plugin_composite_cleanup(FuPlugin *plugin, GPtrArray
      *devices, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPowerdPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    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:181,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:183,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 185
    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:190,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/powerd/fu-powerd-plugin.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPowerdPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 197
    functionName: fu_powerd_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    - G_OBJECT_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_component_idx_to_string
    - FU_WISTRON_DOCK_DEVICE
    - fwupd_codec_string_append
    - fu_wistron_dock_status_code_to_string
    - fu_wistron_dock_update_phase_to_string
    - fwupd_codec_string_append_hex
    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: 6
    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:
    - FU_HID_DEVICE
    - fu_hid_device_set_report
    - fu_hid_device_get_report
    - g_set_error
    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: 3
    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
    - fu_device_retry_full
    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: 3
    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
    - fu_device_retry_full
    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: 6
    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:
    - FU_HID_DEVICE
    - fu_hid_device_set_report
    - fu_hid_device_get_report
    - g_set_error
    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: 3
    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
    - fu_device_retry_full
    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: 4
    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_wistron_dock_device_data_write
    - fu_memcpy_safe
    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: 4
    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_wistron_dock_device_data_write
    - fu_memcpy_safe
    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: 4
    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_wistron_dock_device_control_write
    - fu_memwrite_uint32
    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: 4
    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_wistron_dock_device_data_write
    - fu_memcpy_safe
    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: 5
    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_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_chunk_get_address
    - fu_chunk_get_data
    - fu_chunk_array_length
    - g_autoptr
    - fu_wistron_dock_device_set_img_address
    - fu_wistron_dock_device_write_img_data
    - fu_progress_set_id
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:339,1
    - Dst: fu_zip_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_firmware_get_image_by_id
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:348,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:351,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:354,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:359,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:360,1
    - Dst: fu_firmware_get_size
      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: g_set_error
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:369,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:373,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:379,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:380,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:381,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:386,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:387,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:389,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 332
    functionDepth: 4
    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:
    - fu_firmware_set_id
    - g_set_error
    - fu_firmware_parse_stream
    - fu_firmware_add_image
    - fu_firmware_add_image_gtype
    - g_steal_pointer
    - fu_firmware_get_image_by_id
    - fu_firmware_new
    - fu_zip_firmware_new
    - fu_firmware_get_size
    - g_autoptr
    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_literal
      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_literal
      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_literal
      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: 6
    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_wistron_dock_device_write_wdfl_sig
    - fu_wistron_dock_device_write_blocks
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_firmware_get_image_by_id_bytes
    - fu_progress_step_done
    - g_prefix_error_literal
    - FU_WISTRON_DOCK_DEVICE
    - fu_chunk_array_new_from_stream
    - fu_wistron_dock_device_write_wdfl_data
    - g_bytes_get_size
    - g_autoptr
    - fu_progress_get_child
    - fu_firmware_get_image_by_id_stream
    - fu_progress_set_id
    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: 7
    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_memstrsafe
    - fu_device_build_instance_id
    - fu_wistron_dock_device_control_read
    - fu_device_add_instance_str
    - FU_DEVICE
    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: 4
    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:
    - fu_wistron_dock_device_control_read
    - g_strdup_printf
    - g_free
    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: 4
    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:
    - fu_wistron_dock_device_control_read
    - g_strdup_printf
    - g_free
    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: 1
    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:
    - fu_struct_wistron_dock_wdit_img_get_name
    - g_debug
    - fu_struct_wistron_dock_wdit_img_get_version1
    - fu_struct_wistron_dock_wdit_img_get_version_build
    - fu_struct_wistron_dock_wdit_img_get_comp_id
    - fu_struct_wistron_dock_wdit_img_get_status
    - fu_struct_wistron_dock_wdit_img_parse
    - fu_struct_wistron_dock_wdit_img_get_version2
    - fu_version_from_uint32
    - g_autoptr
    - fu_struct_wistron_dock_wdit_img_get_mode
    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_literal
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:661,1
    - Dst: g_set_error_literal
      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_device_add_flag
    - fu_device_get_pid
    - fu_struct_wistron_dock_wdit_get_tag_id
    - fu_wistron_dock_component_idx_to_string
    - fu_hid_device_get_report
    - g_set_error_literal
    - fu_struct_wistron_dock_wdit_parse
    - g_prefix_error_literal
    - fu_struct_wistron_dock_wdit_get_vid
    - MIN
    - fu_struct_wistron_dock_wdit_get_update_state
    - fu_device_set_version_raw
    - fu_device_remove_flag
    - fu_device_get_vid
    - FU_DEVICE
    - fu_wistron_dock_status_code_to_string
    - g_warning
    - fu_struct_wistron_dock_wdit_get_imgmode
    - fu_struct_wistron_dock_wdit_get_device_cnt
    - fu_wistron_dock_device_parse_wdit_img
    - g_set_error
    - fu_struct_wistron_dock_wdit_get_composite_version
    - fu_struct_wistron_dock_wdit_get_status_code
    - FU_HID_DEVICE
    - fu_struct_wistron_dock_wdit_get_pid
    - fu_wistron_dock_update_phase_to_string
    - g_autoptr
    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_literal
      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_literal
      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_literal
      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_literal
      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: 8
    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_wistron_dock_device_ensure_bbinfo
    - fu_wistron_dock_device_ensure_mcuid
    - g_prefix_error_literal
    - FU_WISTRON_DOCK_DEVICE
    - fu_wistron_dock_device_ensure_wdit
    - FU_DEVICE_CLASS
    - fu_wistron_dock_device_ensure_userinfo
    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
    - fu_device_has_flag
    - fu_wistron_dock_device_control_write
    - fu_wistron_dock_device_ensure_wdit
    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: 4
    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:
    - fwupd_request_new
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fwupd_request_set_id
    - FU_WISTRON_DOCK_DEVICE
    - FU_DEVICE
    - g_warning
    - fu_device_emit_request
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wistron_dock_device_insert_cb(gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_WISTRON_DOCK_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:750,1
    - Dst: g_clear_handle_id
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 755
    functionName: fu_wistron_dock_device_cleanup
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - g_clear_handle_id
    - 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:760,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:762,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:762,1
    - Dst: fu_wistron_dock_device_ensure_wdit
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:765,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:767,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:768,1
    - Dst: fu_wistron_dock_device_control_write
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:771,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:773,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:776,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:777,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:778,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:779,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:784,1
    - Dst: g_timeout_add_seconds
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:785,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 757
    functionDepth: 7
    functionLinenumber: 757
    functionLinenumberEnd: 789
    functionName: fu_wistron_dock_device_attach
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fwupd_request_new
    - g_timeout_add_seconds
    - g_debug
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fwupd_request_set_id
    - FU_WISTRON_DOCK_DEVICE
    - fu_device_has_flag
    - fu_progress_set_status
    - fu_wistron_dock_device_control_write
    - fu_device_emit_request
    - fu_wistron_dock_device_ensure_wdit
    - g_autoptr
    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:794,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:795,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:796,1
    - Dst: fu_progress_add_step
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 791
    functionDepth: 3
    functionLinenumber: 791
    functionLinenumberEnd: 800
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:805,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 806
    functionName: fu_wistron_dock_device_convert_version
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    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:811,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:811,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:812,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:812,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:813,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:813,1
    - Dst: fu_device_add_flag
      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_add_private_flag
      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_request_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_set_remove_delay
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWistronDockDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 808
    functionDepth: 6
    functionLinenumber: 808
    functionLinenumberEnd: 818
    functionName: fu_wistron_dock_device_init
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_add_request_flag
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:823,1
    - Dst: g_source_remove
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:825,1
    - Dst: g_free
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:826,1
    - Dst: g_free
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:827,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 829
    functionName: fu_wistron_dock_device_finalize
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - g_source_remove
    - g_free
    - FU_WISTRON_DOCK_DEVICE
    - 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:834,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWistronDockDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 846
    functionName: fu_wistron_dock_device_class_init
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_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_udev_subsystem
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-plugin.c:29,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-plugin.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: fu_wistron_dock_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/wistron-dock/fu-wistron-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWistronDockPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    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_literal
      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: 4
    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
    - FU_USB_DEVICE
    - g_prefix_error_literal
    - g_set_error
    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:72,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:72,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:80,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:84,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:91,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - data
    - len
    - error
    argTypes:
    - FuSystem76LaunchDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 96
    functionName: fu_system76_launch_device_command
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error_literal
    - fu_usb_device_interrupt_transfer
    - FU_DEVICE
    - fu_device_retry
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_system76_launch_device_command(FuSystem76LaunchDevice
      *self,\n\t\t\t\t  guint8 *data,\n\t\t\t\t  gsize len,\n\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYSTEM76_LAUNCH_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:101,1
    - Dst: fu_system76_launch_device_command
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:106,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:107,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:111,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 98
    functionDepth: 5
    functionLinenumber: 98
    functionLinenumberEnd: 115
    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_literal
    - FU_SYSTEM76_LAUNCH_DEVICE
    - 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:121,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 131
    functionName: fu_system76_launch_device_setup
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - fu_device_retry_full
    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:139,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - rc
    - error
    argTypes:
    - FuSystem76LaunchDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 133
    functionDepth: 5
    functionLinenumber: 133
    functionLinenumberEnd: 146
    functionName: fu_system76_launch_device_reset
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - fu_system76_launch_device_command
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_system76_launch_device_reset(FuSystem76LaunchDevice *self,
      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:157,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - state
    - rc
    - error
    argTypes:
    - FuSystem76LaunchDevice*
    - FuSystem76LaunchSecurityState
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 148
    functionDepth: 5
    functionLinenumber: 148
    functionLinenumberEnd: 164
    functionName: fu_system76_launch_device_set_security
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - fu_system76_launch_device_command
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_system76_launch_device_set_security(FuSystem76LaunchDevice
      *self,\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: FU_SYSTEM76_LAUNCH_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:169,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:171,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:171,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:172,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:172,1
    - Dst: fu_system76_launch_device_reset
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:175,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:180,1
    - Dst: fu_system76_launch_device_set_security
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:185,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:193,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:196,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:207,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:210,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:212,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:216,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:217,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:218,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:218,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:219,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:224,1
    - Dst: fu_system76_launch_device_reset
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:225,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:228,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:230,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:233,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:238,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 166
    functionDepth: 6
    functionLinenumber: 166
    functionLinenumberEnd: 240
    functionName: fu_system76_launch_device_detach
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_system76_launch_device_reset
    - fu_device_get_pid
    - fwupd_request_set_kind
    - g_strdup_printf
    - g_timer_elapsed
    - fu_device_get_name
    - fwupd_request_set_message
    - g_set_error_literal
    - fu_device_get_update_message
    - fwupd_request_new
    - fu_device_sleep
    - fwupd_request_set_id
    - fu_device_emit_request
    - fu_system76_launch_device_set_security
    - FU_SYSTEM76_LAUNCH_DEVICE
    - fu_device_set_update_message
    - g_timer_new
    - g_autoptr
    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:245,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:246,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:247,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:248,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:249,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 251
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_remove_delay
      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_add_flag
      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_device_add_flag
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:258,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:258,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:259,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:259,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:260,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:260,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:261,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:261,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:262,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:262,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:263,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:263,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:264,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:264,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:265,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:265,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:266,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:266,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:267,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSystem76LaunchDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 253
    functionDepth: 6
    functionLinenumber: 253
    functionLinenumberEnd: 268
    functionName: fu_system76_launch_device_init
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_retry_set_delay
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - FU_DEVICE
    - fu_device_add_request_flag
    - fu_device_set_version_format
    - FU_USB_DEVICE
    - fu_device_add_protocol
    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:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSystem76LaunchDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 277
    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_udev_subsystem
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-plugin.c:29,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/system76-launch/fu-system76-launch-plugin.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: fu_system76_launch_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/system76-launch/fu-system76-launch-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSystem76LaunchPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    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:
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    - fu_parade_lspcon_device_kind_to_string
    - FU_PARADE_LSPCON_DEVICE
    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: 5
    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
    - FU_DEVICE_CLASS
    - fu_i2c_device_set_address
    - FU_PARADE_LSPCON_DEVICE
    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: 5
    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:
    - FU_I2C_DEVICE
    - g_new0
    - fu_i2c_device_set_address
    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: 5
    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:
    - FU_PARADE_LSPCON_DEVICE
    - g_warning
    - g_free
    - FU_I2C_DEVICE
    - g_autoptr
    - fu_i2c_device_set_address
    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: 5
    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_write
    - FU_I2C_DEVICE
    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: 5
    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_write
    - fu_i2c_device_read
    - FU_I2C_DEVICE
    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: 6
    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: 6
    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
    - fu_parade_lspcon_device_read_register
    - g_timer_elapsed
    - g_timer_new
    - g_autoptr
    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: 6
    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_size_checked_inc
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:217,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:220,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 6
    argNames:
    - self
    - base_address
    - data
    - len
    - progress
    - error
    argTypes:
    - FuParadeLspconDevice*
    - guint32
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 176
    functionDepth: 7
    functionLinenumber: 176
    functionLinenumberEnd: 224
    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_memcpy_safe
    - fu_parade_lspcon_device_i2c_address_guard_new
    - fu_i2c_device_read
    - MIN
    - FU_I2C_DEVICE
    - fu_size_checked_inc
    - fu_parade_lspcon_device_map_page
    - 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:233,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:237,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:245,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:252,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: 256
      start: 226
    functionDepth: 6
    functionLinenumber: 226
    functionLinenumberEnd: 256
    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:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeLspconDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 262
    functionDepth: 7
    functionLinenumber: 262
    functionLinenumberEnd: 270
    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:275,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:280,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:285,1
    - Dst: fu_parade_lspcon_device_poll_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:292,1
    - Dst: fu_parade_lspcon_device_read_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuParadeLspconDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 272
    functionDepth: 7
    functionLinenumber: 272
    functionLinenumberEnd: 304
    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:310,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:310,1
    - Dst: fu_parade_lspcon_device_flash_read_status
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:314,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:323,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:323,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:324,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeLspconDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 307
    functionDepth: 8
    functionLinenumber: 307
    functionLinenumberEnd: 331
    functionName: fu_parade_lspcon_device_flash_wait_ready
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - g_set_error_literal
    - fu_parade_lspcon_device_flash_read_status
    - FU_DEVICE
    - g_timer_elapsed
    - g_timer_new
    - g_autoptr
    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:339,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:347,1
    - Dst: fu_parade_lspcon_device_flash_transmit_command
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:354,1
    - Dst: fu_parade_lspcon_device_flash_transmit_command
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:359,1
    - Dst: fu_parade_lspcon_device_flash_wait_ready
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 333
    functionDepth: 9
    functionLinenumber: 333
    functionLinenumberEnd: 367
    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_wait_ready
    - fu_parade_lspcon_device_write_register
    - fu_parade_lspcon_device_flash_transmit_command
    - FU_PARADE_LSPCON_DEVICE
    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:375,1
    - Dst: fu_parade_lspcon_device_flash_transmit_command
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:380,1
    - Dst: fu_parade_lspcon_device_flash_transmit_command
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:385,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:390,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 369
    functionDepth: 7
    functionLinenumber: 369
    functionLinenumberEnd: 397
    functionName: fu_parade_lspcon_device_cleanup
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_lspcon_device_write_register
    - fu_progress_step_done
    - fu_parade_lspcon_device_flash_transmit_command
    - FU_PARADE_LSPCON_DEVICE
    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:406,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:409,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:413,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:422,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:427,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:427,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:428,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:436,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:439,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:440,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:440,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:441,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:442,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:446,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:449,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:454,1
    - Dst: fu_parade_lspcon_device_map_page
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:455,1
    - Dst: fu_parade_lspcon_device_i2c_address_guard_new
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:460,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:468,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:469,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:472,1
    - Dst: fu_i2c_device_write
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:479,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:483,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:487,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: 491
      start: 399
    functionDepth: 7
    functionLinenumber: 399
    functionLinenumberEnd: 491
    functionName: fu_parade_lspcon_device_flash_write
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_i2c_device_write
    - fu_device_sleep
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_parade_lspcon_device_write_register
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_memcpy_safe
    - FU_DEVICE
    - fu_parade_lspcon_device_i2c_address_guard_new
    - fu_chunk_get_address
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data
    - FU_I2C_DEVICE
    - fu_chunk_array_length
    - fu_parade_lspcon_device_map_page
    - g_autoptr
    - fu_progress_set_id
    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:501,1
    - Dst: fu_parade_lspcon_device_flash_enable_write
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:502,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:507,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:512,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:517,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:522,1
    - Dst: fu_parade_lspcon_device_flash_transmit_command
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:528,1
    - Dst: fu_parade_lspcon_device_poll_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:535,1
    - Dst: fu_parade_lspcon_device_flash_wait_ready
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:543,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:548,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:553,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:558,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:563,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: 572
      start: 493
    functionDepth: 9
    functionLinenumber: 493
    functionLinenumberEnd: 572
    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
    - g_debug
    - fu_parade_lspcon_device_flash_wait_ready
    - fu_parade_lspcon_device_flash_transmit_command
    - fu_parade_lspcon_device_poll_register
    - fu_parade_lspcon_device_write_register
    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:581,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:582,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:589,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:590,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:591,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:594,1
    - Dst: fu_progress_add_flag
      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_progress_add_step
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:599,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:600,1
    - Dst: fu_parade_lspcon_device_flash_erase_block
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:603,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:604,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:607,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:610,1
    - Dst: fu_parade_lspcon_device_flash_write
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:613,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:616,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:618,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:623,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:626,1
    - Dst: fu_parade_lspcon_device_flash_read
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:627,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:631,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:634,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:637,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:638,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:641,1
    - Dst: fu_parade_lspcon_device_flash_erase_block
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:644,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:648,1
    - Dst: G_INPUT_STREAM
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:650,1
    - Dst: g_memory_input_stream_new_from_data
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:650,1
    - Dst: fu_parade_lspcon_device_flash_write
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:651,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:654,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:657,1
    - Dst: fu_parade_lspcon_device_flash_read
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:660,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:664,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:667,1
    - Dst: MIN
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:673,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:675,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: 681
      start: 574
    functionDepth: 10
    functionLinenumber: 574
    functionLinenumberEnd: 681
    functionName: fu_parade_lspcon_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_parade_lspcon_device_flash_read
    - fu_parade_lspcon_device_flash_erase_block
    - g_memory_input_stream_new_from_data
    - FU_PARADE_LSPCON_DEVICE
    - fu_parade_lspcon_device_flash_write
    - g_prefix_error_literal
    - fu_input_stream_read_byte_array
    - fu_device_get_firmware_size_max
    - fu_progress_set_status
    - MIN
    - fu_progress_add_step
    - fu_progress_step_done
    - g_malloc0
    - G_INPUT_STREAM
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_firmware_get_stream
    - g_prefix_error
    - g_autoptr
    - fu_memcmp_safe
    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:686,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:687,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:688,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:691,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:691,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:692,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:692,1
    - Dst: fu_parade_lspcon_device_kind_from_string
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:695,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:697,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - dev_id
    - error
    argTypes:
    - FuParadeLspconDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 707
    functionName: fu_parade_lspcon_device_set_dev_id
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - fu_parade_lspcon_device_kind_from_string
    - g_set_error
    - FU_DEVICE
    - fu_device_set_name
    - g_strdup_printf
    - fu_device_get_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:712,1
    - Dst: fu_device_build_vendor_id
      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
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:714,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:714,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:715,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - ieee_oui
    - error
    argTypes:
    - FuParadeLspconDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 709
    functionDepth: 5
    functionLinenumber: 709
    functionLinenumberEnd: 721
    functionName: fu_parade_lspcon_device_set_ieee_oui
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_str
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_build_instance_id_full
    - fu_device_build_vendor_id
    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:728,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:729,1
    - Dst: fu_parade_lspcon_device_i2c_address_guard_new
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:731,1
    - Dst: fu_parade_lspcon_device_read_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:737,1
    - Dst: fu_struct_dpaux_dpcd_parse
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:743,1
    - Dst: fu_struct_dpaux_dpcd_get_dev_id
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:746,1
    - Dst: fu_parade_lspcon_device_set_dev_id
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:748,1
    - Dst: fu_struct_dpaux_dpcd_get_ieee_oui
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:751,1
    - Dst: fu_parade_lspcon_device_set_ieee_oui
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:752,1
    - Dst: fu_struct_dpaux_dpcd_get_ieee_oui
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:753,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:757,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:757,1
    - Dst: fu_struct_dpaux_dpcd_get_fw_ver
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:757,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeLspconDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 723
    functionDepth: 6
    functionLinenumber: 723
    functionLinenumberEnd: 761
    functionName: fu_parade_lspcon_device_ensure_dpcd
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_raw
    - fu_parade_lspcon_device_set_dev_id
    - fu_struct_dpaux_dpcd_get_ieee_oui
    - fu_struct_dpaux_dpcd_parse
    - fu_parade_lspcon_device_read_register
    - FU_DEVICE
    - fu_parade_lspcon_device_i2c_address_guard_new
    - fu_struct_dpaux_dpcd_get_dev_id
    - fu_struct_dpaux_dpcd_get_fw_ver
    - g_autoptr
    - fu_parade_lspcon_device_set_ieee_oui
    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:768,1
    - Dst: fu_parade_lspcon_device_i2c_address_guard_new
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:771,1
    - Dst: fu_parade_lspcon_device_read_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:776,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeLspconDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 763
    functionDepth: 6
    functionLinenumber: 763
    functionLinenumberEnd: 784
    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
    - g_autoptr
    - fu_parade_lspcon_device_read_register
    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:792,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:793,1
    - Dst: fu_parade_lspcon_device_ensure_active_flash_partition_internal
      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_debug
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:799,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:803,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuParadeLspconDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 786
    functionDepth: 7
    functionLinenumber: 786
    functionLinenumberEnd: 808
    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
    - g_set_error_literal
    - fu_parade_lspcon_device_ensure_active_flash_partition_internal
    - G_N_ELEMENTS
    - g_autoptr
    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:813,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:814,1
    - Dst: fu_parade_lspcon_device_ensure_active_flash_partition
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:817,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:822,1
    - Dst: fu_parade_lspcon_device_ensure_dpcd
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:831,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:835,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:837,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:838,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 810
    functionDepth: 8
    functionLinenumber: 810
    functionLinenumberEnd: 839
    functionName: fu_parade_lspcon_device_setup
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_add_instance_str
    - fu_parade_lspcon_device_ensure_dpcd
    - fu_device_build_instance_id
    - fu_device_get_context
    - fu_parade_lspcon_device_ensure_active_flash_partition
    - fu_context_get_hwid_value
    - 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:847,1
    - Dst: fu_parade_lspcon_device_write_register
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - running
    - error
    argTypes:
    - FuParadeLspconDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 841
    functionDepth: 6
    functionLinenumber: 841
    functionLinenumberEnd: 858
    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:863,1
    - Dst: fu_parade_lspcon_device_set_mpu_running
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 860
    functionDepth: 7
    functionLinenumber: 860
    functionLinenumberEnd: 865
    functionName: fu_parade_lspcon_device_detach
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_lspcon_device_set_mpu_running
    - FU_PARADE_LSPCON_DEVICE
    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:870,1
    - Dst: fu_parade_lspcon_device_set_mpu_running
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 867
    functionDepth: 7
    functionLinenumber: 867
    functionLinenumberEnd: 872
    functionName: fu_parade_lspcon_device_attach
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_lspcon_device_set_mpu_running
    - FU_PARADE_LSPCON_DEVICE
    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:877,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:878,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:879,1
    - Dst: fu_parade_lspcon_device_flash_read
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:881,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:888,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 874
    functionDepth: 8
    functionLinenumber: 874
    functionLinenumberEnd: 889
    functionName: fu_parade_lspcon_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_parade_lspcon_device_flash_read
    - g_steal_pointer
    - g_malloc0
    - g_bytes_new_take
    - 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:894,1
    - Dst: fu_progress_add_flag
      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
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:899,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 891
    functionDepth: 3
    functionLinenumber: 891
    functionLinenumberEnd: 901
    functionName: fu_parade_lspcon_device_set_progress
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_parade_lspcon_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 909
    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:914,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:914,1
    - Dst: fu_device_add_icon
      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_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_device_add_flag
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:920,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:920,1
    - Dst: fu_device_add_private_flag
      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_udev_device_add_open_flag
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:922,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:922,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:923,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:923,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:924,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuParadeLspconDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 911
    functionDepth: 6
    functionLinenumber: 911
    functionLinenumberEnd: 925
    functionName: fu_parade_lspcon_device_init
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_firmware_size
    - fu_device_add_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    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:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuParadeLspconDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 943
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-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: 2
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: fu_parade_lspcon_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/parade-lspcon/fu-parade-lspcon-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuParadeLspconPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    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:
    - FU_JABRA_DEVICE
    - fwupd_codec_string_append
    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: 9
    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_device_get_interfaces
    - fu_usb_interface_get_class
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: guint8
    signature: guint8 _fu_usb_device_get_interface_for_class(FuUsbDevice *usb_device,
      guint8 intf_class, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:56,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:60,1
    - Dst: strlen
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:65,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:66,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:68,1
    - Dst: _fu_usb_device_get_interface_for_class
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:78,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:78,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:82,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:89,1
    - Dst: fu_usb_device_claim_interface
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:90,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:90,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:94,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:104,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:104,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:117,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:121,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:122,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 44
    functionDepth: 6
    functionLinenumber: 44
    functionLinenumberEnd: 124
    functionName: fu_jabra_device_prepare
    functionSourceFile: /src/fwupd/plugins/jabra/fu-jabra-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_firmware_strparse_uint8_safe
    - FU_JABRA_DEVICE
    - _fu_usb_device_get_interface_for_class
    - g_set_error
    - g_debug
    - g_set_error_literal
    - fu_usb_device_claim_interface
    - strlen
    - fu_progress_set_status
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_device_control_transfer
    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:129,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:131,1
    - Dst: strlen
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:132,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:133,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:136,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 149
    functionName: fu_jabra_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/jabra/fu-jabra-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FU_JABRA_DEVICE
    - g_set_error_literal
    - strlen
    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:154,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:154,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:155,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:155,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:156,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:156,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:157,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:157,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:158,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 6
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: fu_jabra_device_init
    functionSourceFile: /src/fwupd/plugins/jabra/fu-jabra-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_add_protocol
    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:164,1
    - Dst: g_free
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:165,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: fu_jabra_device_finalize
    functionSourceFile: /src/fwupd/plugins/jabra/fu-jabra-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_JABRA_DEVICE
    - G_OBJECT_CLASS
    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:172,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/jabra/fu-jabra-device.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJabraDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 178
    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_device_add_flag
    - g_set_error
    - fu_device_locker_new
    - fu_device_has_private_flag
    - fu_usb_device_reset
    - FU_USB_DEVICE
    - fu_progress_set_status
    - g_autoptr
    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_udev_subsystem
      Src: /src/fwupd/plugins/jabra/fu-jabra-plugin.c:64,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/jabra/fu-jabra-plugin.c:65,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/jabra/fu-jabra-plugin.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: fu_jabra_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/jabra/fu-jabra-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_gtype
    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:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJabraPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    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: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - speed
    argTypes:
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 51
    functionName: fu_wch_ch341a_device_speed_to_string
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_wch_ch341a_device_speed_to_string(guint8 speed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_WCH_CH341A_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:56,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:57,1
    - Dst: fu_wch_ch341a_device_speed_to_string
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: fu_wch_ch341a_device_to_string
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
    functionUses: 0
    functionsReached:
    - FU_WCH_CH341A_DEVICE
    - fu_wch_ch341a_device_speed_to_string
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_wch_ch341a_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:69,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:70,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:70,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:78,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuWchCh341aDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 93
    functionName: fu_wch_ch341a_device_write
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-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_wch_ch341a_device_write(FuWchCh341aDevice *self, guint8
      *buf, gsize bufsz, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:100,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:100,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:108,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:112,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuWchCh341aDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 126
    functionName: fu_wch_ch341a_device_read
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-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_wch_ch341a_device_read(FuWchCh341aDevice *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: 157
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 157
    functionName: fu_wch_ch341a_device_reverse_uint8
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_wch_ch341a_device_reverse_uint8(guint8 value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:163,1
    - Dst: fu_wch_ch341a_device_reverse_uint8
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:168,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:171,1
    - Dst: fu_wch_ch341a_device_write
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:172,1
    - Dst: fu_wch_ch341a_device_read
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:175,1
    - Dst: fu_wch_ch341a_device_reverse_uint8
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:180,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:183,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuWchCh341aDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 159
    functionDepth: 5
    functionLinenumber: 159
    functionLinenumberEnd: 187
    functionName: fu_wch_ch341a_device_spi_transfer
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
    functionUses: 0
    functionsReached:
    - fu_wch_ch341a_device_read
    - g_malloc0
    - fu_wch_ch341a_device_write
    - fu_wch_ch341a_device_reverse_uint8
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wch_ch341a_device_spi_transfer(FuWchCh341aDevice *self,
      guint8 *buf, gsize bufsz, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_wch_ch341a_device_write
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:195,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWchCh341aDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 189
    functionDepth: 5
    functionLinenumber: 189
    functionLinenumberEnd: 202
    functionName: fu_wch_ch341a_device_configure_stream
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
    functionUses: 0
    functionsReached:
    - fu_wch_ch341a_device_write
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wch_ch341a_device_configure_stream(FuWchCh341aDevice *self,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_wch_ch341a_device_write
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - val
    - error
    argTypes:
    - FuWchCh341aDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 204
    functionDepth: 5
    functionLinenumber: 204
    functionLinenumberEnd: 214
    functionName: fu_wch_ch341a_device_chip_select
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
    functionUses: 0
    functionsReached:
    - fu_wch_ch341a_device_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wch_ch341a_device_chip_select(FuWchCh341aDevice *self,
      gboolean val, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:219,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:220,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:222,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:228,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 5
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: fu_wch_ch341a_device_probe
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_get_context
    - FU_DEVICE
    - g_object_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wch_ch341a_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_WCH_CH341A_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:235,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:238,1
    - Dst: fu_wch_ch341a_device_configure_stream
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 232
    functionDepth: 6
    functionLinenumber: 232
    functionLinenumberEnd: 247
    functionName: fu_wch_ch341a_device_setup
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
    functionUses: 0
    functionsReached:
    - FU_WCH_CH341A_DEVICE
    - FU_DEVICE_CLASS
    - fu_wch_ch341a_device_configure_stream
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wch_ch341a_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:253,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:253,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:254,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWchCh341aDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: fu_wch_ch341a_device_init
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_name
    - FU_USB_DEVICE
    - FU_DEVICE
    - fu_usb_device_add_interface
    linkageType: ''
    returnType: void
    signature: void fu_wch_ch341a_device_init(FuWchCh341aDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWchCh341aDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 264
    functionName: fu_wch_ch341a_device_class_init
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wch_ch341a_device_class_init(FuWchCh341aDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_WCH_CH341A_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:24,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:24,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:24,1
    - Dst: fu_wch_ch341a_device_chip_select
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuCfiDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 6
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: fu_wch_ch341a_cfi_device_chip_select
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - FU_WCH_CH341A_DEVICE
    - fu_wch_ch341a_device_chip_select
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wch_ch341a_cfi_device_chip_select(FuCfiDevice *self, gboolean
      value, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_WCH_CH341A_CFI_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:42,1
    - Dst: FU_WCH_CH341A_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:45,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:45,1
    - Dst: fu_cfi_device_chip_select_locker_new
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:48,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:48,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:51,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:51,1
    - Dst: fu_wch_ch341a_device_spi_transfer
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:56,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:57,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 72
    functionName: fu_wch_ch341a_cfi_device_wait_for_status_cb
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_CFI_DEVICE
    - FU_WCH_CH341A_DEVICE
    - g_prefix_error_literal
    - fu_cfi_device_chip_select_locker_new
    - fu_device_get_proxy
    - fu_wch_ch341a_device_spi_transfer
    - FU_WCH_CH341A_CFI_DEVICE
    - g_autoptr
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wch_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/wch-ch341a/fu-wch-ch341a-cfi-device.c:83,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - self
    - mask
    - value
    - count
    - delay
    - error
    argTypes:
    - FuWchCh341aCfiDevice*
    - guint8
    - guint8
    - guint
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 89
    functionName: fu_wch_ch341a_cfi_device_wait_for_status
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wch_ch341a_cfi_device_wait_for_status(FuWchCh341aCfiDevice
      *self,\n\t\t\t\t\t guint8 mask,\n\t\t\t\t\t guint8 value,\n\t\t\t\t\t guint
      count,\n\t\t\t\t\t guint delay,\n\t\t\t\t\t GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:96,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:97,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:97,1
    - Dst: fu_cfi_device_chip_select_locker_new
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:100,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:100,1
    - Dst: FU_WCH_CH341A_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:105,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:105,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:105,1
    - Dst: fu_wch_ch341a_device_spi_transfer
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:108,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:109,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:113,1
    - Dst: fu_cfi_device_set_flash_id
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:120,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:120,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:123,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:124,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:125,1
    - Dst: fu_cfi_device_set_flash_id
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:126,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:126,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCfiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 91
    functionDepth: 6
    functionLinenumber: 91
    functionLinenumberEnd: 130
    functionName: fu_wch_ch341a_cfi_device_read_jedec
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_cfi_device_set_flash_id
    - FU_CFI_DEVICE
    - FU_WCH_CH341A_DEVICE
    - g_set_error_literal
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_cfi_device_chip_select_locker_new
    - g_string_new
    - g_string_append_printf
    - fu_device_get_proxy
    - fu_wch_ch341a_device_spi_transfer
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wch_ch341a_cfi_device_read_jedec(FuCfiDevice *self, GError
      **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:137,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:140,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:140,1
    - Dst: fu_cfi_device_chip_select_locker_new
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:142,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:142,1
    - Dst: FU_WCH_CH341A_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:145,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:145,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:145,1
    - Dst: fu_wch_ch341a_device_spi_transfer
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:148,1
    - Dst: fu_device_locker_close
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:150,1
    - Dst: fu_wch_ch341a_cfi_device_wait_for_status
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWchCh341aCfiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 132
    functionDepth: 6
    functionLinenumber: 132
    functionLinenumberEnd: 155
    functionName: fu_wch_ch341a_cfi_device_write_enable
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_CFI_DEVICE
    - FU_WCH_CH341A_DEVICE
    - fu_device_locker_close
    - FU_DEVICE
    - fu_cfi_device_chip_select_locker_new
    - fu_device_get_proxy
    - fu_wch_ch341a_device_spi_transfer
    - g_autoptr
    - fu_wch_ch341a_cfi_device_wait_for_status
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wch_ch341a_cfi_device_write_enable(FuWchCh341aCfiDevice
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:162,1
    - Dst: fu_cfi_device_chip_select_locker_new
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:165,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:165,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:170,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:170,1
    - Dst: FU_WCH_CH341A_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:175,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:175,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:175,1
    - Dst: fu_wch_ch341a_device_spi_transfer
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:178,1
    - Dst: fu_device_locker_close
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:180,1
    - Dst: fu_wch_ch341a_cfi_device_wait_for_status
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWchCh341aCfiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 157
    functionDepth: 6
    functionLinenumber: 157
    functionLinenumberEnd: 185
    functionName: fu_wch_ch341a_cfi_device_chip_erase
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_CFI_DEVICE
    - FU_WCH_CH341A_DEVICE
    - fu_device_locker_close
    - FU_DEVICE
    - fu_cfi_device_chip_select_locker_new
    - fu_device_get_proxy
    - fu_wch_ch341a_device_spi_transfer
    - g_autoptr
    - fu_wch_ch341a_cfi_device_wait_for_status
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wch_ch341a_cfi_device_chip_erase(FuWchCh341aCfiDevice *self,
      GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:192,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:193,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:194,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:194,1
    - Dst: fu_wch_ch341a_cfi_device_write_enable
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:196,1
    - Dst: fu_cfi_device_chip_select_locker_new
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:199,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:199,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:204,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:204,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:205,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:205,1
    - Dst: FU_WCH_CH341A_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:210,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:210,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:210,1
    - Dst: fu_wch_ch341a_device_spi_transfer
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:213,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:217,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:222,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:226,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:229,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:232,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:233,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:235,1
    - Dst: fu_wch_ch341a_device_spi_transfer
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:238,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:240,1
    - Dst: fu_device_locker_close
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:244,1
    - Dst: fu_wch_ch341a_cfi_device_wait_for_status
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:248,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - self
    - page
    - error
    argTypes:
    - FuWchCh341aCfiDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 187
    functionDepth: 7
    functionLinenumber: 187
    functionLinenumberEnd: 249
    functionName: fu_wch_ch341a_cfi_device_write_page
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_device_locker_close
    - g_autoptr
    - fu_memwrite_uint32
    - FU_CFI_DEVICE
    - fu_device_get_proxy
    - fu_chunk_get_bytes
    - FU_WCH_CH341A_DEVICE
    - FU_DEVICE
    - fu_chunk_get_data
    - fu_wch_ch341a_device_spi_transfer
    - fu_chunk_array_length
    - fu_chunk_get_address
    - fu_chunk_array_index
    - fu_cfi_device_chip_select_locker_new
    - fu_memcpy_safe
    - fu_chunk_array_new_from_bytes
    - fu_wch_ch341a_cfi_device_write_enable
    - fu_wch_ch341a_cfi_device_wait_for_status
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wch_ch341a_cfi_device_write_page(FuWchCh341aCfiDevice *self,
      FuChunk *page, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:258,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:259,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:259,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:260,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:261,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:261,1
    - Dst: fu_wch_ch341a_cfi_device_write_page
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:264,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - self
    - pages
    - progress
    - error
    argTypes:
    - FuWchCh341aCfiDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 251
    functionDepth: 8
    functionLinenumber: 251
    functionLinenumberEnd: 270
    functionName: fu_wch_ch341a_cfi_device_write_pages
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_wch_ch341a_cfi_device_write_page
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wch_ch341a_cfi_device_write_pages(FuWchCh341aCfiDevice
      *self,\n\t\t\t\t     FuChunkArray *pages,\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/wch-ch341a/fu-wch-ch341a-cfi-device.c:281,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:282,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:282,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:283,1
    - Dst: fu_cfi_device_chip_select_locker_new
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:286,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:286,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:291,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:293,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:296,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:297,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:298,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:301,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:302,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:302,1
    - Dst: FU_WCH_CH341A_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:307,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:307,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:307,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:311,1
    - Dst: fu_wch_ch341a_device_spi_transfer
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:314,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:317,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:317,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:319,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:319,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:323,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:327,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 4
    argNames:
    - self
    - bufsz
    - progress
    - error
    argTypes:
    - FuWchCh341aCfiDevice*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 272
    functionDepth: 6
    functionLinenumber: 272
    functionLinenumberEnd: 328
    functionName: fu_wch_ch341a_cfi_device_read_firmware
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - fu_chunk_get_data_sz
    - g_ptr_array_index
    - fu_memwrite_uint32
    - FU_CFI_DEVICE
    - fu_progress_set_steps
    - g_byte_array_new
    - fu_device_get_proxy
    - fu_progress_set_status
    - fu_chunk_array_new
    - FU_WCH_CH341A_DEVICE
    - fu_progress_step_done
    - FU_DEVICE
    - g_byte_array_append
    - fu_wch_ch341a_device_spi_transfer
    - fu_progress_set_id
    - fu_cfi_device_chip_select_locker_new
    - fu_size_checked_inc
    - g_autoptr
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_wch_ch341a_cfi_device_read_firmware(FuWchCh341aCfiDevice
      *self,\n\t\t\t\t       gsize bufsz,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_WCH_CH341A_CFI_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:337,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:339,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:340,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:341,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:342,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:345,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:345,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:348,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:353,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:354,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:355,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:356,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:357,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:360,1
    - Dst: fu_wch_ch341a_cfi_device_write_enable
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:365,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:366,1
    - Dst: fu_wch_ch341a_cfi_device_chip_erase
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:369,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:370,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:373,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:376,1
    - Dst: fu_cfi_device_get_page_size
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:379,1
    - Dst: FU_CFI_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:379,1
    - Dst: fu_wch_ch341a_cfi_device_write_pages
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:380,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:382,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:384,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:387,1
    - Dst: fu_wch_ch341a_cfi_device_read_firmware
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:390,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:391,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:392,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:395,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:398,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:400,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 330
    functionDepth: 9
    functionLinenumber: 330
    functionLinenumberEnd: 404
    functionName: fu_wch_ch341a_cfi_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_device_locker_new
    - fu_cfi_device_get_page_size
    - g_autoptr
    - fu_wch_ch341a_cfi_device_chip_erase
    - fu_wch_ch341a_cfi_device_write_pages
    - fu_firmware_get_bytes
    - FU_CFI_DEVICE
    - g_prefix_error_literal
    - fu_wch_ch341a_cfi_device_read_firmware
    - fu_device_get_proxy
    - FU_WCH_CH341A_CFI_DEVICE
    - fu_progress_add_step
    - fu_progress_step_done
    - FU_DEVICE
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_bytes_compare
    - g_bytes_get_size
    - fu_chunk_array_new_from_bytes
    - fu_wch_ch341a_cfi_device_write_enable
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wch_ch341a_cfi_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: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_WCH_CH341A_CFI_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:409,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:411,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:412,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:415,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:415,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:418,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:424,1
    - Dst: fu_wch_ch341a_cfi_device_read_firmware
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:430,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 406
    functionDepth: 7
    functionLinenumber: 406
    functionLinenumberEnd: 431
    functionName: fu_wch_ch341a_cfi_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_device_locker_new
    - FU_DEVICE
    - fu_wch_ch341a_cfi_device_read_firmware
    - fu_device_get_firmware_size_max
    - fu_device_get_proxy
    - FU_WCH_CH341A_CFI_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_wch_ch341a_cfi_device_dump_firmware(FuDevice *device, FuProgress *progress,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:436,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:437,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:438,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:439,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:440,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 433
    functionDepth: 3
    functionLinenumber: 433
    functionLinenumberEnd: 442
    functionName: fu_wch_ch341a_cfi_device_set_progress
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_wch_ch341a_cfi_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:447,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:447,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:448,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:448,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:449,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:449,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:450,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:450,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:451,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:451,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:452,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWchCh341aCfiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 444
    functionDepth: 6
    functionLinenumber: 444
    functionLinenumberEnd: 453
    functionName: fu_wch_ch341a_cfi_device_init
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_wch_ch341a_cfi_device_init(FuWchCh341aCfiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:458,1
    - Dst: FU_CFI_DEVICE_CLASS
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWchCh341aCfiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 467
    functionName: fu_wch_ch341a_cfi_device_class_init
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - FU_CFI_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wch_ch341a_cfi_device_class_init(FuWchCh341aCfiDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWchCh341aPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_wch_ch341a_plugin_init
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_wch_ch341a_plugin_init(FuWchCh341aPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-plugin.c:26,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-plugin.c:28,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-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: 2
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: fu_wch_ch341a_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wch_ch341a_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-plugin.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWchCh341aPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: fu_wch_ch341a_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wch_ch341a_plugin_class_init(FuWchCh341aPluginClass *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_free
    - g_ptr_array_unref
    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_free
    - g_ptr_array_unref
    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: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:97,1
    - Dst: g_checksum_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:97,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:104,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:108,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:111,1
    - Dst: fu_struct_ccgx_dmc_fwct_segmentation_info_parse_stream
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:113,1
    - Dst: fu_struct_ccgx_dmc_fwct_segmentation_info_get_start_row
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:117,1
    - Dst: fu_struct_ccgx_dmc_fwct_segmentation_info_get_num_rows
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:118,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:129,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:131,1
    - Dst: g_checksum_update
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:140,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:141,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:142,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:145,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:145,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:152,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:152,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:162,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:163,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 6
    argNames:
    - self
    - stream
    - img_rcd
    - seg_off
    - flags
    - error
    argTypes:
    - FuCcgxDmcFirmware*
    - GInputStream*
    - FuCcgxDmcFirmwareRecord*
    - gsize*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 174
    functionName: fu_ccgx_dmc_firmware_parse_segment
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_bytes
    - fu_struct_ccgx_dmc_fwct_segmentation_info_get_start_row
    - g_new0
    - g_bytes_get_data
    - g_checksum_update
    - g_steal_pointer
    - g_ptr_array_add
    - g_checksum_new
    - g_set_error_literal
    - fu_struct_ccgx_dmc_fwct_segmentation_info_parse_stream
    - fu_struct_ccgx_dmc_fwct_segmentation_info_get_num_rows
    - memcmp
    - g_bytes_get_size
    - g_autoptr
    - g_checksum_get_digest
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_dmc_firmware_parse_segment(FuCcgxDmcFirmware *self,\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: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:189,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:190,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:193,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_parse_stream
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:194,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_get_row_size
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:197,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:199,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_get_img_offset
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:206,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_get_num_img_segments
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:208,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_get_img_digest
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:216,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:218,1
    - Dst: fu_ccgx_dmc_firmware_parse_segment
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:229,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:238,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:238,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - self
    - image_count
    - stream
    - flags
    - error
    argTypes:
    - FuCcgxDmcFirmware*
    - guint8
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 246
    functionName: fu_ccgx_dmc_firmware_parse_image
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_ccgx_dmc_fwct_image_info_get_row_size
    - fu_ccgx_dmc_firmware_parse_segment
    - g_new0
    - g_set_error
    - g_steal_pointer
    - g_ptr_array_add
    - fu_struct_ccgx_dmc_fwct_image_info_get_img_digest
    - fu_struct_ccgx_dmc_fwct_image_info_get_img_offset
    - fu_struct_ccgx_dmc_fwct_image_info_parse_stream
    - fu_memcpy_safe
    - fu_struct_ccgx_dmc_fwct_image_info_get_num_img_segments
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_dmc_firmware_parse_image(FuCcgxDmcFirmware *self,\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:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 255
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:263,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:269,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_parse_stream
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:272,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_get_size
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:277,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:279,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_get_composite_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:289,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:291,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:294,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:299,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:300,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:305,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:312,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:315,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_get_image_count
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:325,1
    - Dst: fu_ccgx_dmc_firmware_parse_image
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:326,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 257
    functionDepth: 5
    functionLinenumber: 257
    functionLinenumberEnd: 331
    functionName: fu_ccgx_dmc_firmware_parse
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_raw
    - fu_input_stream_read_bytes
    - fu_input_stream_read_u16
    - g_set_error
    - fu_input_stream_size
    - fu_struct_ccgx_dmc_fwct_info_get_size
    - fu_struct_ccgx_dmc_fwct_info_get_composite_version
    - FU_CCGX_DMC_FIRMWARE
    - g_prefix_error_literal
    - fu_struct_ccgx_dmc_fwct_info_parse_stream
    - fu_struct_ccgx_dmc_fwct_info_get_image_count
    - fu_ccgx_dmc_firmware_parse_image
    - g_autoptr
    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:336,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:336,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:337,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:337,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:338,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:338,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_set_size
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:341,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_set_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:346,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_set_custom_meta_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:347,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_set_cdtt_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:348,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_set_device_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:349,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_set_composite_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:350,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:351,1
    - Dst: fu_struct_ccgx_dmc_fwct_info_set_image_count
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:352,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:353,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:357,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:358,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_set_device_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:359,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_set_img_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:360,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_set_row_size
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:361,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_set_fw_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:362,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_set_app_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:363,1
    - Dst: fu_struct_ccgx_dmc_fwct_image_info_set_num_img_segments
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:364,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:365,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:370,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:371,1
    - Dst: fu_struct_ccgx_dmc_fwct_segmentation_info_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:372,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:373,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:374,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:374,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:377,1
    - Dst: fu_struct_ccgx_dmc_fwct_segmentation_info_set_num_rows
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:381,1
    - Dst: MAX
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:383,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:383,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:384,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:388,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:389,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:393,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:398,1
    - Dst: g_checksum_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:398,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:399,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:400,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:401,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:403,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:406,1
    - Dst: fu_bytes_pad
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:411,1
    - Dst: MAX
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:411,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:411,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:412,1
    - Dst: g_checksum_update
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:413,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:414,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:415,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:416,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:419,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:431,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 54
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 432
    functionName: fu_ccgx_dmc_firmware_write
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_ccgx_dmc_fwct_info_new
    - fu_byte_array_append_uint16
    - g_checksum_new
    - MAX
    - fu_bytes_pad
    - fu_struct_ccgx_dmc_fwct_image_info_set_device_type
    - g_ptr_array_index
    - fu_struct_ccgx_dmc_fwct_info_set_custom_meta_type
    - fu_byte_array_append_bytes
    - fu_firmware_get_bytes
    - fu_chunk_array_new_from_bytes
    - fu_firmware_get_images
    - fu_struct_ccgx_dmc_fwct_segmentation_info_set_num_rows
    - fu_struct_ccgx_dmc_fwct_info_set_version
    - fu_struct_ccgx_dmc_fwct_info_set_size
    - g_byte_array_new
    - fu_memcpy_safe
    - fu_struct_ccgx_dmc_fwct_info_set_device_id
    - fu_struct_ccgx_dmc_fwct_image_info_set_app_version
    - g_checksum_get_digest
    - fu_struct_ccgx_dmc_fwct_image_info_set_img_type
    - fu_struct_ccgx_dmc_fwct_image_info_new
    - g_bytes_get_data
    - g_checksum_update
    - fu_struct_ccgx_dmc_fwct_info_set_composite_version
    - fu_byte_array_append_uint8
    - g_byte_array_append
    - fu_chunk_array_length
    - fu_firmware_get_version_raw
    - fu_byte_array_append_array
    - fu_struct_ccgx_dmc_fwct_image_info_set_row_size
    - fu_struct_ccgx_dmc_fwct_info_set_image_count
    - fu_struct_ccgx_dmc_fwct_image_info_set_num_img_segments
    - g_steal_pointer
    - fu_struct_ccgx_dmc_fwct_image_info_set_fw_version
    - g_bytes_get_size
    - fu_struct_ccgx_dmc_fwct_info_set_cdtt_version
    - fu_struct_ccgx_dmc_fwct_segmentation_info_new
    - g_autoptr
    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:437,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 438
    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: fu_firmware_add_magic
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:443,1
    - Dst: strlen
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - firmware
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 447
    functionName: fu_ccgx_dmc_firmware_add_magic
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - strlen
    - fu_firmware_add_magic
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_firmware_add_magic(FuFirmware *firmware)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:453,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:454,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:454,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:455,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:455,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:456,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 457
    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
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    - g_ptr_array_new_with_free_func
    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:462,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:465,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:467,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:469,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 472
    functionName: fu_ccgx_dmc_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c
    functionUses: 0
    functionsReached:
    - g_bytes_unref
    - FU_CCGX_DMC_FIRMWARE
    - G_OBJECT_CLASS
    - g_ptr_array_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:477,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-firmware.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCcgxDmcFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 486
    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: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:16,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:18,1
    - Dst: fu_firmware_roundtrip_from_filename
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:19,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:23,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 11
    functionDepth: 7
    functionLinenumber: 11
    functionLinenumberEnd: 25
    functionName: fu_ccgx_dmc_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - fu_firmware_roundtrip_from_filename
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    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:30,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:31,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:32,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:33,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: main
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-self-test.c
    functionUses: 4
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_type_ensure
    - 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_literal
      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: 4
    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:
    - fu_struct_ccgx_dmc_dock_identity_new
    - fu_struct_ccgx_dmc_dock_identity_get_custom_meta_data_flag
    - g_prefix_error_literal
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_device_control_transfer
    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_literal
      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:110,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:110,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:123,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:126,1
    - Dst: fu_struct_ccgx_dmc_dock_status_get_device_count
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:131,1
    - Dst: fu_ccgx_dmc_devx_device_new
      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_locker_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:135,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:135,1
    - Dst: fu_ccgx_dmc_devx_device_get_remove_delay
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:138,1
    - Dst: fu_device_add_child
      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_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:139,1
    - Dst: fu_device_get_remove_delay
      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: g_debug
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:145,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:146,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:146,1
    - Dst: fu_struct_ccgx_dmc_dock_status_get_device_status
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:150,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:151,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:151,1
    - Dst: fu_struct_ccgx_dmc_dock_status_get_composite_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:152,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 66
    functionDepth: 5
    functionLinenumber: 66
    functionLinenumberEnd: 154
    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
    - fu_device_locker_new
    - fu_struct_ccgx_dmc_dock_status_get_composite_version
    - fu_struct_ccgx_dmc_dock_status_get_device_status
    - fu_device_set_remove_delay
    - g_debug
    - g_prefix_error_literal
    - fu_struct_ccgx_dmc_dock_status_get_device_count
    - fu_device_has_flag
    - fu_usb_device_control_transfer
    - fu_device_set_version_raw
    - fu_ccgx_dmc_devx_device_new
    - fu_device_get_remove_delay
    - g_malloc0
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_dump_raw
    - fu_struct_ccgx_dmc_dock_status_new
    - fu_memcpy_safe
    - fu_ccgx_dmc_devx_device_get_remove_delay
    - g_autoptr
    - 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:159,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:159,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 156
    functionDepth: 4
    functionLinenumber: 156
    functionLinenumberEnd: 176
    functionName: fu_ccgx_dmc_device_send_reset_state_machine
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_prefix_error_literal
    - fu_usb_device_control_transfer
    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:181,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:181,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - reset_later
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 178
    functionDepth: 4
    functionLinenumber: 178
    functionLinenumberEnd: 198
    functionName: fu_ccgx_dmc_device_send_soft_reset
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_prefix_error_literal
    - fu_usb_device_control_transfer
    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:208,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:210,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:214,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:214,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - fw
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 231
    functionName: fu_ccgx_dmc_device_send_start_upgrade
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    - g_prefix_error_literal
    - fu_memdup_safe
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    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:236,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:236,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - trigger
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 253
    functionName: fu_ccgx_dmc_device_send_download_trigger
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_prefix_error_literal
    - fu_usb_device_control_transfer
    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:263,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:265,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:268,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:268,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - guint8*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 255
    functionDepth: 4
    functionLinenumber: 255
    functionLinenumberEnd: 285
    functionName: fu_ccgx_dmc_device_send_fwct
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_prefix_error_literal
    - fu_memdup_safe
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    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:295,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:297,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:297,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:305,1
    - Dst: fu_struct_ccgx_dmc_int_rqt_get_opcode
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:310,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:311,1
    - Dst: fu_ccgx_dmc_int_opcode_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:313,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:314,1
    - Dst: fu_struct_ccgx_dmc_int_rqt_get_data
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:316,1
    - Dst: MIN
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:317,1
    - Dst: fu_struct_ccgx_dmc_int_rqt_get_length
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - self
    - intr_rqt
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - FuStructCcgxDmcIntRqt*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 287
    functionDepth: 4
    functionLinenumber: 287
    functionLinenumberEnd: 320
    functionName: fu_ccgx_dmc_device_read_intr_req
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_ccgx_dmc_int_opcode_to_string
    - g_prefix_error_literal
    - fu_usb_device_interrupt_transfer
    - fu_struct_ccgx_dmc_int_rqt_get_opcode
    - g_strdup_printf
    - MIN
    - fu_struct_ccgx_dmc_int_rqt_get_data
    - FU_USB_DEVICE
    - fu_dump_raw
    - fu_struct_ccgx_dmc_int_rqt_get_length
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_dmc_device_read_intr_req(FuCcgxDmcDevice *self,\n\t\t\t\t
      FuStructCcgxDmcIntRqt *intr_rqt,\n\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:328,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:328,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:341,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: 345
      start: 322
    functionDepth: 4
    functionLinenumber: 322
    functionLinenumberEnd: 345
    functionName: fu_ccgx_dmc_device_send_write_command
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_prefix_error_literal
    - fu_usb_device_control_transfer
    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:353,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:355,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:355,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:363,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: 367
      start: 347
    functionDepth: 4
    functionLinenumber: 347
    functionLinenumberEnd: 367
    functionName: fu_ccgx_dmc_device_send_row_data
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_USB_DEVICE
    - fu_usb_device_bulk_transfer
    - g_prefix_error_literal
    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:372,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:373,1
    - Dst: fu_ccgx_dmc_update_model_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:376,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:377,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:378,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:379,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:380,1
    - Dst: fu_ccgx_dmc_device_status_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 369
    functionDepth: 3
    functionLinenumber: 369
    functionLinenumberEnd: 384
    functionName: fu_ccgx_dmc_device_to_string
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_dmc_update_model_to_string
    - fu_ccgx_dmc_device_status_to_string
    - fwupd_codec_string_append
    - FU_CCGX_DMC_DEVICE
    - fwupd_codec_string_append_hex
    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:389,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:392,1
    - Dst: fu_struct_ccgx_dmc_int_rqt_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:392,1
    - Dst: fu_ccgx_dmc_device_read_intr_req
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:395,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:396,1
    - Dst: fu_struct_ccgx_dmc_int_rqt_get_opcode
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:401,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:403,1
    - Dst: fu_ccgx_dmc_int_opcode_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:408,1
    - Dst: fu_struct_ccgx_dmc_int_rqt_get_data
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:413,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:415,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:420,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 386
    functionDepth: 5
    functionLinenumber: 386
    functionLinenumberEnd: 424
    functionName: fu_ccgx_dmc_device_get_image_write_status_cb
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ccgx_dmc_int_rqt_new
    - g_set_error
    - fu_device_sleep
    - fu_ccgx_dmc_int_opcode_to_string
    - g_prefix_error_literal
    - FU_CCGX_DMC_DEVICE
    - fu_struct_ccgx_dmc_int_rqt_get_opcode
    - g_autoptr
    - fu_struct_ccgx_dmc_int_rqt_get_data
    - fu_ccgx_dmc_device_read_intr_req
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_dmc_device_get_image_write_status_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:436,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:437,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:438,1
    - Dst: fu_ccgx_dmc_device_send_write_command
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:441,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:446,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:451,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:456,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:458,1
    - Dst: fu_ccgx_dmc_device_send_row_data
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:465,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:472,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:472,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:480,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:480,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:484,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - self
    - seg_rcd
    - fw_data_written
    - progress
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - FuCcgxDmcFirmwareSegmentRecord*
    - gsize*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 426
    functionDepth: 5
    functionLinenumber: 426
    functionLinenumberEnd: 488
    functionName: fu_ccgx_dmc_device_write_firmware_record
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_dmc_device_send_write_command
    - fu_progress_add_step
    - g_set_error
    - g_bytes_get_data
    - fu_progress_step_done
    - FU_DEVICE
    - fu_ccgx_dmc_device_send_row_data
    - fu_device_retry
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    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: g_return_val_if_fail
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:500,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:501,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:505,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:506,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:508,1
    - Dst: fu_ccgx_dmc_device_write_firmware_record
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:509,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:512,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:515,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - self
    - img_rcd
    - fw_data_written
    - fw_data_size
    - progress
    - error
    argTypes:
    - FuCcgxDmcDevice*
    - FuCcgxDmcFirmwareRecord*
    - gsize*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 490
    functionDepth: 6
    functionLinenumber: 490
    functionLinenumberEnd: 518
    functionName: fu_ccgx_dmc_device_write_firmware_image
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_ccgx_dmc_device_write_firmware_record
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_dmc_device_write_firmware_image(FuCcgxDmcDevice *self,\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: 16
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:527,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:539,1
    - Dst: fu_struct_ccgx_dmc_int_rqt_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:539,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:542,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:543,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:544,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:545,1
    - Dst: fu_ccgx_dmc_firmware_get_fwct_record
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:551,1
    - Dst: FU_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:551,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:553,1
    - Dst: fu_bytes_get_data_safe
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:559,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:561,1
    - Dst: fu_ccgx_dmc_device_send_reset_state_machine
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:566,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:568,1
    - Dst: fu_ccgx_dmc_firmware_get_custom_meta_record
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:572,1
    - Dst: FU_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:572,1
    - Dst: fu_ccgx_dmc_device_send_start_upgrade
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:573,1
    - Dst: fu_ccgx_dmc_device_send_fwct
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:577,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:579,1
    - Dst: fu_ccgx_dmc_firmware_get_image_records
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:582,1
    - Dst: FU_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:582,1
    - Dst: fu_ccgx_dmc_firmware_get_fw_data_size
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:583,1
    - Dst: FU_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:583,1
    - Dst: fu_ccgx_dmc_device_read_intr_req
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:586,1
    - Dst: fu_struct_ccgx_dmc_int_rqt_get_data
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:588,1
    - Dst: fu_struct_ccgx_dmc_int_rqt_get_opcode
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:591,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:596,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:606,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:607,1
    - Dst: fu_ccgx_dmc_device_write_firmware_image
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:608,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:612,1
    - Dst: g_set_error_literal
      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:625,1
    - Dst: fu_ccgx_dmc_fwct_analysis_status_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:630,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:633,1
    - Dst: fu_ccgx_dmc_int_opcode_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:638,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:648,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:655,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 69
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 520
    functionDepth: 7
    functionLinenumber: 520
    functionLinenumberEnd: 659
    functionName: fu_ccgx_dmc_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ccgx_dmc_int_rqt_new
    - fu_ccgx_dmc_device_send_start_upgrade
    - fu_ccgx_dmc_firmware_get_fwct_record
    - fu_bytes_get_data_safe
    - fu_ccgx_dmc_device_read_intr_req
    - g_ptr_array_index
    - fu_ccgx_dmc_device_send_fwct
    - g_debug
    - g_set_error_literal
    - FU_CCGX_DMC_FIRMWARE
    - g_prefix_error_literal
    - FU_CCGX_DMC_DEVICE
    - fu_ccgx_dmc_device_send_reset_state_machine
    - fu_progress_add_step
    - fu_ccgx_dmc_int_opcode_to_string
    - fu_progress_step_done
    - fu_struct_ccgx_dmc_int_rqt_get_opcode
    - fu_ccgx_dmc_firmware_get_image_records
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_ccgx_dmc_firmware_get_custom_meta_record
    - fu_ccgx_dmc_fwct_analysis_status_to_string
    - g_set_error
    - fu_ccgx_dmc_firmware_get_fw_data_size
    - fu_ccgx_dmc_device_write_firmware_image
    - fu_struct_ccgx_dmc_int_rqt_get_data
    - g_autoptr
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:667,1
    - Dst: fu_ccgx_dmc_firmware_get_custom_meta_record
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:673,1
    - Dst: FU_CCGX_DMC_FIRMWARE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:673,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:674,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:679,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 688
    functionName: fu_ccgx_dmc_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_dmc_firmware_get_custom_meta_record
    - g_set_error_literal
    - FU_CCGX_DMC_FIRMWARE
    - FU_CCGX_DMC_DEVICE
    - g_bytes_get_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_dmc_device_check_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\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:693,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:697,1
    - Dst: fu_ccgx_dmc_device_send_download_trigger
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:702,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:705,1
    - Dst: fu_ccgx_dmc_device_send_soft_reset
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:710,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:711,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:718,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:718,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:719,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:720,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:721,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:722,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:727,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 690
    functionDepth: 6
    functionLinenumber: 690
    functionLinenumberEnd: 729
    functionName: fu_ccgx_dmc_device_attach
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fwupd_request_new
    - fu_ccgx_dmc_device_send_download_trigger
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fwupd_request_set_id
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - FU_CCGX_DMC_DEVICE
    - fu_device_emit_request
    - g_autoptr
    - fu_ccgx_dmc_device_send_soft_reset
    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:734,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:734,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:736,1
    - Dst: fu_ccgx_dmc_devx_device_get_fw_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:737,1
    - Dst: fu_ccgx_dmc_devx_device_get_device_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:739,1
    - Dst: fu_memread_uint64
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:740,1
    - Dst: fu_memread_uint64
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:741,1
    - Dst: g_info
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:744,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:745,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:745,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 749
    functionName: fu_ccgx_dmc_device_ensure_factory_version
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - g_info
    - fu_device_set_version_raw
    - fu_device_get_children
    - fu_ccgx_dmc_devx_device_get_device_type
    - FU_DEVICE
    - fu_memread_uint64
    - fu_ccgx_dmc_devx_device_get_fw_version
    - g_ptr_array_index
    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:754,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:755,1
    - Dst: fu_usb_device_get_interface
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:758,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:758,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:761,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:761,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 751
    functionDepth: 9
    functionLinenumber: 751
    functionLinenumberEnd: 763
    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_get_interface
    - fu_usb_device_add_interface
    - FU_CCGX_DMC_DEVICE
    - FU_USB_DEVICE
    - g_autoptr
    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:768,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:771,1
    - Dst: fu_ccgx_dmc_device_ensure_dock_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:775,1
    - Dst: fu_ccgx_dmc_device_ensure_status
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:777,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:782,1
    - Dst: fu_ccgx_dmc_device_ensure_factory_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:783,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:784,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:784,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:787,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:787,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:789,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:789,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:791,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:792,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:792,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 765
    functionDepth: 6
    functionLinenumber: 765
    functionLinenumberEnd: 797
    functionName: fu_ccgx_dmc_device_setup
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_raw
    - fu_device_add_flag
    - fu_ccgx_dmc_device_ensure_status
    - fu_device_has_private_flag
    - FU_DEVICE
    - FU_CCGX_DMC_DEVICE
    - fu_device_add_request_flag
    - fu_ccgx_dmc_device_ensure_dock_id
    - FU_DEVICE_CLASS
    - fu_ccgx_dmc_device_ensure_factory_version
    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:805,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:806,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:808,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:813,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 815
    functionName: fu_ccgx_dmc_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - FU_CCGX_DMC_DEVICE
    - g_strcmp0
    - fu_strtoull
    - g_set_error_literal
    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:820,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:821,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:822,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:823,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:824,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:825,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 817
    functionDepth: 3
    functionLinenumber: 817
    functionLinenumberEnd: 827
    functionName: fu_ccgx_dmc_device_set_progress
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_device_set_progress(FuDevice *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:832,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 833
    functionName: fu_ccgx_dmc_device_convert_version
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    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:841,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:841,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:842,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:842,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:843,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:843,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:844,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:844,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:845,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:845,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:846,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:846,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:847,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:847,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:848,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:848,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:849,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:849,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:850,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c:850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 835
    functionDepth: 6
    functionLinenumber: 835
    functionLinenumberEnd: 851
    functionName: fu_ccgx_dmc_device_init
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCcgxDmcDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 866
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcDevxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    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:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcDevxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    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:38,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:39,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - offset
    argTypes:
    - FuCcgxDmcDevxDevice*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 44
    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_memread_uint16
    - fu_ccgx_dmc_devx_device_get_fw_version
    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:49,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - offset
    argTypes:
    - FuCcgxDmcDevxDevice*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 54
    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:59,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - offset
    argTypes:
    - FuCcgxDmcDevxDevice*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 64
    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:73,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:74,1
    - Dst: fu_version_from_uint64
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:76,1
    - Dst: fu_memread_uint64
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:76,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:78,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: 79
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 79
    functionName: fu_ccgx_dmc_devx_device_hexver_to_string
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append
    - fu_memread_uint64
    - g_strdup_printf
    - fu_version_from_uint64
    - fu_ccgx_dmc_devx_device_get_fw_version
    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:88,1
    - Dst: fu_ccgx_dmc_devx_device_version_hx3
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:89,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:90,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: 91
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: fu_ccgx_dmc_devx_device_hx3ver_to_string
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_ccgx_dmc_devx_device_version_hx3
    - 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:100,1
    - Dst: fu_ccgx_dmc_devx_device_version_dmc_bfw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:101,1
    - Dst: fu_ccgx_dmc_devx_device_version_dmc_app
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:102,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:103,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:104,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: 105
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 105
    functionName: fu_ccgx_dmc_devx_device_dmcver_to_string
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fwupd_codec_string_append
    - 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:113,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcDevxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 127
    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:132,1
    - Dst: fu_ccgx_dmc_devx_device_version_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:133,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_device_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:142,1
    - Dst: fu_ccgx_dmc_devx_device_type_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:143,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:145,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:146,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:148,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_image_mode
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:150,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:152,1
    - Dst: fu_ccgx_dmc_img_mode_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:154,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:155,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:157,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:160,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_current_image
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:164,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_img_status
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:165,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:166,1
    - Dst: fu_ccgx_dmc_img_status_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:169,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:170,1
    - Dst: fu_ccgx_dmc_img_status_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:173,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:178,1
    - Dst: fu_ccgx_dmc_devx_device_dmcver_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:180,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:183,1
    - Dst: fu_ccgx_dmc_devx_device_hx3ver_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:185,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:188,1
    - Dst: fu_ccgx_dmc_devx_device_hexver_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 192
    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
    - fu_struct_ccgx_dmc_devx_status_get_current_image
    - fu_ccgx_dmc_devx_device_hexver_to_string
    - fu_ccgx_dmc_img_status_to_string
    - fu_ccgx_dmc_devx_device_version_type
    - fu_ccgx_dmc_devx_device_type_to_string
    - fu_ccgx_dmc_devx_device_dmcver_to_string
    - fu_struct_ccgx_dmc_devx_status_get_img_status
    - fwupd_codec_string_append
    - g_strdup_printf
    - fu_ccgx_dmc_img_mode_to_string
    - fu_struct_ccgx_dmc_devx_status_get_image_mode
    - fwupd_codec_string_append_hex
    - fu_ccgx_dmc_devx_device_hx3ver_to_string
    - fu_struct_ccgx_dmc_devx_status_get_device_type
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_dmc_devx_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:200,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:203,1
    - Dst: fu_device_get_proxy
      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:208,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:209,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:210,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:212,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:213,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 219
    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_version_raw
    - g_strcmp0
    - g_debug
    - fu_device_set_version_raw
    - fu_strtoull
    - g_set_error_literal
    - fu_device_get_id
    - fu_device_get_proxy
    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: 251
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 251
    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:258,1
    - Dst: FU_IS_CCGX_DMC_DEVX_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:258,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_device_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcDevxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 269
    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_struct_ccgx_dmc_devx_status_get_device_type
    - FU_IS_CCGX_DMC_DEVX_DEVICE
    linkageType: ''
    returnType: guint
    signature: guint fu_ccgx_dmc_devx_device_get_remove_delay(FuCcgxDmcDevxDevice
      *self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_DMC_DEVX_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:274,1
    - Dst: fu_ccgx_dmc_devx_device_version_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:276,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:285,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_device_type
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:289,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:290,1
    - Dst: fu_ccgx_dmc_devx_device_type_to_name
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:290,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:292,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:293,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:294,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_component_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:295,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:296,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_current_image
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:299,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_current_image
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:301,1
    - Dst: fu_ccgx_dmc_devx_device_version_dmc_bfw
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:306,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:307,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:307,1
    - Dst: fu_ccgx_dmc_devx_device_version_hx3
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:309,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:310,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:310,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:313,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:314,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:318,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:321,1
    - Dst: fu_ccgx_dmc_devx_device_type_to_string
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:323,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:324,1
    - Dst: fu_struct_ccgx_dmc_devx_status_get_component_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:326,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:327,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:327,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:328,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:328,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:329,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:330,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:339,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 271
    functionDepth: 7
    functionLinenumber: 271
    functionLinenumberEnd: 351
    functionName: fu_ccgx_dmc_devx_device_probe
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_device_set_version
    - fu_device_add_instance_strup
    - g_strdup_printf
    - fu_device_set_version_format
    - fu_device_build_instance_id
    - g_set_error_literal
    - fu_struct_ccgx_dmc_devx_status_get_component_id
    - fu_device_build_instance_id_full
    - fu_device_get_proxy
    - fu_struct_ccgx_dmc_devx_status_get_device_type
    - fu_ccgx_dmc_devx_device_version_dmc_bfw
    - fu_device_set_logical_id
    - FU_CCGX_DMC_DEVX_DEVICE
    - fu_struct_ccgx_dmc_devx_status_get_current_image
    - fu_ccgx_dmc_devx_device_version_type
    - fu_ccgx_dmc_devx_device_type_to_name
    - fu_device_set_name
    - FU_DEVICE
    - fu_device_get_vid
    - fu_ccgx_dmc_devx_device_version_hx3
    - g_strdup
    - fu_device_add_instance_u8
    - fu_ccgx_dmc_devx_device_type_to_string
    - fu_device_add_instance_strsafe
    - fu_device_add_instance_u16
    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:356,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 357
    functionName: fu_ccgx_dmc_devx_device_convert_version
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ccgx_dmc_devx_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:362,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:362,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:363,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxDmcDevxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 359
    functionDepth: 3
    functionLinenumber: 359
    functionLinenumberEnd: 364
    functionName: fu_ccgx_dmc_devx_device_init
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_add_private_flag
    - fu_device_set_proxy_gtype
    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:369,1
    - Dst: fu_struct_ccgx_dmc_devx_status_unref
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:371,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 373
    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
    - fu_struct_ccgx_dmc_devx_status_unref
    - G_OBJECT_CLASS
    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:378,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCcgxDmcDevxDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 385
    functionName: fu_ccgx_dmc_devx_device_class_init
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_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:394,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:394,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:396,1
    - Dst: fu_struct_ccgx_dmc_devx_status_parse
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:400,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-devx-device.c:403,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: 404
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 404
    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_udev_subsystem
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-plugin.c:32,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-plugin.c:33,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-plugin.c:34,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-plugin.c:35,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-plugin.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 39
    functionName: fu_ccgx_dmc_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/ccgx-dmc/fu-ccgx-dmc-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_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:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCcgxDmcPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:18,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:18,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:19,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:19,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:20,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:22,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:23,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:24,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:26,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:27,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:28,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:33,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:34,1
    - Dst: fu_nvme_device_set_serial
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:36,1
    - Dst: FU_NVME_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:36,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:37,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:38,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:41,1
    - Dst: g_debug
      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: g_assert_true
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:44,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 13
    functionDepth: 8
    functionLinenumber: 13
    functionLinenumberEnd: 47
    functionName: fu_nvme_serial_suffix_func
    functionSourceFile: /src/fwupd/plugins/nvme/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_has_instance_id
    - fu_context_new
    - fu_device_to_string
    - g_debug
    - fu_device_add_instance_str
    - fu_nvme_device_set_serial
    - fu_device_get_serial
    - g_assert_no_error
    - g_object_new
    - fu_context_load_quirks
    - g_assert_true
    - fu_device_set_quirk_kv
    - g_assert_cmpstr
    - g_autoptr
    - FU_NVME_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_nvme_serial_suffix_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:56,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:56,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:58,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:60,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:61,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:62,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:64,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:66,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:67,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:70,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:71,1
    - Dst: g_assert_true
      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:73,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:74,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:75,1
    - Dst: fu_device_convert_instance_ids
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:76,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:76,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:77,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:77,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:77,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:78,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:78,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:78,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:79,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:79,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:79,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:80,1
    - Dst: fu_device_get_guid_default
      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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 49
    functionDepth: 6
    functionLinenumber: 49
    functionLinenumberEnd: 83
    functionName: fu_nvme_cns_func
    functionSourceFile: /src/fwupd/plugins/nvme/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_device_get_name
    - fu_nvme_device_new_from_blob
    - g_file_get_contents
    - g_assert_nonnull
    - g_assert_no_error
    - fu_device_convert_instance_ids
    - g_test_skip
    - g_file_test
    - FU_DEVICE
    - fu_device_get_version
    - fu_device_get_serial
    - fu_device_get_guid_default
    - fu_context_load_quirks
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    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:90,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:91,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:94,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:95,1
    - Dst: g_dir_open
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:97,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:98,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:103,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:105,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:106,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:107,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:108,1
    - Dst: fu_nvme_device_new_from_blob
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:111,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:113,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:116,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:116,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:116,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:117,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:117,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:117,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:118,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:118,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 120
    functionName: fu_nvme_cns_all_func
    functionSourceFile: /src/fwupd/plugins/nvme/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - g_debug
    - fu_device_get_name
    - fu_nvme_device_new_from_blob
    - g_file_get_contents
    - fu_device_get_serial
    - g_file_test
    - FU_DEVICE
    - fu_device_get_version
    - g_dir_read_name
    - g_dir_open
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - g_build_filename
    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:125,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:126,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:127,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:128,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:129,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/nvme/fu-self-test.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 131
    functionName: main
    functionSourceFile: /src/fwupd/plugins/nvme/fu-self-test.c
    functionUses: 4
    functionsReached:
    - g_setenv
    - g_test_add_func
    - 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:41,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:42,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: fu_nvme_device_to_string
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_int
    - FU_NVME_DEVICE
    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:52,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:53,1
    - Dst: g_string_new_len
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:55,1
    - Dst: g_ascii_isspace
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:59,1
    - Dst: g_ascii_isprint
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:61,1
    - Dst: g_string_append_c
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:62,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:67,1
    - Dst: g_strchomp
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:70,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:70,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - buf
    - addr_start
    - addr_end
    argTypes:
    - guint8*
    - guint16
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 71
    functionName: fu_nvme_device_get_string_safe
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_string_new_len
    - g_string_free
    - g_ascii_isspace
    - g_ascii_isprint
    - g_string_append_c
    - g_strchomp
    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:76,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - addr_start
    argTypes:
    - guint8*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 80
    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:90,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: 98
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 98
    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:109,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:109,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:109,1
    - Dst: fu_ioctl_set_name
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:112,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:113,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:114,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:115,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:116,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:117,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:125,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:141,1
    - Dst: fu_nvme_status_to_string
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:145,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: 147
      start: 100
    functionDepth: 4
    functionLinenumber: 100
    functionLinenumberEnd: 147
    functionName: fu_nvme_device_submit_admin_passthru
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_execute
    - g_set_error
    - fu_ioctl_add_mutable_buffer
    - g_prefix_error
    - fu_ioctl_set_name
    - fu_ioctl_add_key_as_u8
    - fu_udev_device_ioctl_new
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_nvme_status_to_string
    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:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuNvmeDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 149
    functionDepth: 5
    functionLinenumber: 149
    functionLinenumberEnd: 161
    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:174,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: 175
      start: 163
    functionDepth: 5
    functionLinenumber: 163
    functionLinenumberEnd: 175
    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:191,1
    - Dst: fu_nvme_device_submit_admin_passthru
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:194,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: 195
      start: 177
    functionDepth: 5
    functionLinenumber: 177
    functionLinenumberEnd: 195
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_nvme_device_submit_admin_passthru
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:210,1
    - Dst: fu_struct_nvme_fw_slot_info_log_parse
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNvmeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 197
    functionDepth: 5
    functionLinenumber: 197
    functionLinenumberEnd: 213
    functionName: fu_nvme_device_get_fw_slot_info
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_nvme_fw_slot_info_log_parse
    - fu_nvme_device_submit_admin_passthru
    linkageType: ''
    returnType: FuStructNvmeFwSlotInfoLog
    signature: 'FuStructNvmeFwSlotInfoLog *

      fu_nvme_device_get_fw_slot_info(FuNvmeDevice *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_NVME_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:218,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:219,1
    - Dst: fu_nvme_device_get_fw_slot_info
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:221,1
    - Dst: fu_struct_nvme_fw_slot_info_log_get_afi
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:224,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 215
    functionDepth: 6
    functionLinenumber: 215
    functionLinenumberEnd: 234
    functionName: fu_nvme_device_wait_for_fw_download_cb
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_struct_nvme_fw_slot_info_log_get_afi
    - fu_nvme_device_get_fw_slot_info
    - g_autoptr
    - FU_NVME_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nvme_device_wait_for_fw_download_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:240,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:240,1
    - Dst: fu_device_check_fwupd_version
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:241,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:241,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:243,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNvmeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 236
    functionDepth: 5
    functionLinenumber: 236
    functionLinenumberEnd: 249
    functionName: fu_nvme_device_wait_for_fw_download
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_has_flag
    - fu_device_check_fwupd_version
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nvme_device_wait_for_fw_download(FuNvmeDevice *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_nvme_device_get_string_safe
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:259,1
    - Dst: g_str_is_ascii
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:260,1
    - Dst: strlen
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:260,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:261,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:267,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:267,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:270,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:271,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:271,1
    - Dst: fu_nvme_device_get_guid_safe
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:274,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:276,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - buf
    argTypes:
    - FuNvmeDevice*
    - guint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 251
    functionDepth: 5
    functionLinenumber: 251
    functionLinenumberEnd: 277
    functionName: fu_nvme_device_parse_cns_maybe_dell
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_id
    - g_debug
    - g_str_is_ascii
    - fu_device_add_private_flag
    - FU_DEVICE
    - g_strdup_printf
    - strlen
    - fu_nvme_device_get_guid_safe
    - fu_nvme_device_get_string_safe
    linkageType: ''
    returnType: void
    signature: void fu_nvme_device_parse_cns_maybe_dell(FuNvmeDevice *self, const
      guint8 *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:284,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:287,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:287,1
    - Dst: strlen
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:291,1
    - Dst: fu_device_add_instance_str
      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_device_build_instance_id
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:297,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:297,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
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - serial
    - error
    argTypes:
    - FuNvmeDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 279
    functionDepth: 7
    functionLinenumber: 279
    functionLinenumberEnd: 318
    functionName: fu_nvme_device_set_serial
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - fu_device_set_serial
    - FU_DEVICE
    - strlen
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nvme_device_set_serial(FuNvmeDevice *self, const gchar
      *serial, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:333,1
    - Dst: fu_struct_nvme_id_ctrl_parse
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:336,1
    - Dst: fu_struct_nvme_id_ctrl_get_mn
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:341,1
    - Dst: fu_strstrip
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:343,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:345,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:345,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:346,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:346,1
    - Dst: fu_struct_nvme_id_ctrl_get_sn
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:349,1
    - Dst: fu_strstrip
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:351,1
    - Dst: fu_nvme_device_set_serial
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:352,1
    - Dst: fu_struct_nvme_id_ctrl_get_fr
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:355,1
    - Dst: fu_strstrip
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:357,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:359,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:359,1
    - Dst: fu_struct_nvme_id_ctrl_get_fwug
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:363,1
    - Dst: fu_struct_nvme_id_ctrl_get_frmw
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:368,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:372,1
    - Dst: fu_struct_nvme_id_ctrl_get_fguid
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:375,1
    - Dst: fu_common_guid_is_plausible
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:376,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:377,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:378,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:378,1
    - Dst: fu_nvme_device_parse_cns_maybe_dell
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:384,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:387,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:387,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:388,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:389,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:389,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuNvmeDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 320
    functionDepth: 8
    functionLinenumber: 320
    functionLinenumberEnd: 392
    functionName: fu_nvme_device_parse_cns
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_nvme_id_ctrl_get_mn
    - fu_device_set_version
    - fu_struct_nvme_id_ctrl_get_fguid
    - fu_nvme_device_parse_cns_maybe_dell
    - fwupd_guid_to_string
    - fu_struct_nvme_id_ctrl_get_fwug
    - fu_device_get_guids
    - fu_struct_nvme_id_ctrl_get_frmw
    - fu_struct_nvme_id_ctrl_get_sn
    - fu_device_add_instance_id
    - g_debug
    - fu_struct_nvme_id_ctrl_parse
    - fu_struct_nvme_id_ctrl_get_fr
    - fu_common_guid_is_plausible
    - fu_nvme_device_set_serial
    - FU_DEVICE
    - fu_device_set_name
    - fu_strstrip
    - fu_device_add_instance_strsafe
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nvme_device_parse_cns(FuNvmeDevice *self, const guint8
      *buf, gsize bufsz, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:397,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:399,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:399,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:402,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:404,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:404,1
    - Dst: fu_pci_device_set_revision
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:410,1
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:410,1
    - Dst: fu_pci_device_get_revision
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:411,1
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:411,1
    - Dst: fu_pci_device_set_subsystem_vid
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:412,1
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:412,1
    - Dst: fu_pci_device_get_subsystem_vid
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:413,1
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:413,1
    - Dst: fu_pci_device_set_subsystem_pid
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:414,1
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:414,1
    - Dst: fu_pci_device_get_subsystem_pid
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:415,1
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:415,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:416,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:416,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:418,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:418,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:425,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:425,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNvmeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 394
    functionDepth: 9
    functionLinenumber: 394
    functionLinenumberEnd: 429
    functionName: fu_nvme_device_pci_probe
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - FU_PCI_DEVICE
    - fu_pci_device_get_subsystem_vid
    - fu_pci_device_get_subsystem_pid
    - fu_device_build_instance_id
    - fu_device_get_backend_parent_with_subsystem
    - fu_pci_device_set_revision
    - fu_device_incorporate
    - FU_DEVICE
    - fu_pci_device_set_subsystem_vid
    - fu_device_build_instance_id_full
    - fu_pci_device_get_revision
    - g_autoptr
    - fu_pci_device_set_subsystem_pid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nvme_device_pci_probe(FuNvmeDevice *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_NVME_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:434,1
    - Dst: fu_nvme_device_pci_probe
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:437,1
    - Dst: fu_udev_device_get_subsystem_depth
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:441,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:441,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:443,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:444,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:449,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:450,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:451,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:452,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 431
    functionDepth: 10
    functionLinenumber: 431
    functionLinenumberEnd: 455
    functionName: fu_nvme_device_probe
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_nvme_device_pci_probe
    - fu_device_has_private_flag
    - fu_device_has_flag
    - fu_udev_device_get_subsystem_depth
    - FU_UDEV_DEVICE
    - FU_NVME_DEVICE
    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:460,1
    - Dst: fu_nvme_device_identify_ctrl
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:464,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:465,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:467,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:467,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:470,1
    - Dst: fu_nvme_device_parse_cns
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:471,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:475,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:475,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:476,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 457
    functionDepth: 9
    functionLinenumber: 457
    functionLinenumberEnd: 487
    functionName: fu_nvme_device_setup
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_nvme_device_parse_cns
    - fu_device_add_instance_strsafe
    - fu_device_get_physical_id
    - g_prefix_error
    - FU_DEVICE
    - fu_device_get_version
    - fu_device_build_instance_id_full
    - fu_nvme_device_identify_ctrl
    - fu_dump_raw
    - FU_NVME_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nvme_device_setup(FuDevice *device, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_NVME_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:496,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:497,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:498,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:499,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:504,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:505,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:506,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:509,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:515,1
    - Dst: fu_bytes_align
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:516,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:518,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:522,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:526,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:527,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:530,1
    - Dst: fu_nvme_device_fw_download
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:533,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:534,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:535,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:536,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:538,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:541,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:541,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:543,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:545,1
    - Dst: fu_nvme_device_wait_for_fw_download
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:548,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:549,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:554,1
    - Dst: fu_nvme_device_fw_commit
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:556,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:561,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:564,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 489
    functionDepth: 6
    functionLinenumber: 489
    functionLinenumberEnd: 568
    functionName: fu_nvme_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_nvme_device_wait_for_fw_download
    - fu_bytes_align
    - fu_nvme_device_fw_download
    - g_autoptr
    - FU_NVME_DEVICE
    - fu_firmware_get_bytes
    - g_prefix_error_literal
    - fu_progress_set_percentage_full
    - g_bytes_ref
    - fu_progress_add_step
    - fu_progress_step_done
    - fu_chunk_get_data
    - fu_nvme_device_fw_commit
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_chunk_get_address
    - fu_progress_set_id
    - fu_chunk_array_index
    - g_prefix_error
    - fu_device_has_private_flag
    - fu_chunk_array_new_from_bytes
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_NVME_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:573,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:574,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:576,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:581,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:583,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:589,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 594
    functionName: fu_nvme_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_strcmp0
    - g_set_error_literal
    - FU_NVME_DEVICE
    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:599,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:600,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:601,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:602,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:603,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 596
    functionDepth: 3
    functionLinenumber: 596
    functionLinenumberEnd: 605
    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 *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:610,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:610,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:611,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:611,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:612,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:612,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:613,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:613,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:614,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:614,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:615,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:615,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:616,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:616,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:617,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:617,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:618,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:618,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:619,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:619,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:620,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:620,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:621,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuNvmeDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 607
    functionDepth: 6
    functionLinenumber: 607
    functionLinenumberEnd: 622
    functionName: fu_nvme_device_init
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_add_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_summary
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    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:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuNvmeDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 634
    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:639,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:640,1
    - Dst: fu_nvme_device_parse_cns
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:641,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/nvme/fu-nvme-device.c:643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - buf
    - sz
    - error
    argTypes:
    - FuContext*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 636
    functionDepth: 9
    functionLinenumber: 636
    functionLinenumberEnd: 644
    functionName: fu_nvme_device_new_from_blob
    functionSourceFile: /src/fwupd/plugins/nvme/fu-nvme-device.c
    functionUses: 2
    functionsReached:
    - g_object_new
    - g_autoptr
    - fu_nvme_device_parse_cns
    - g_steal_pointer
    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_context_add_quirk_key
      Src: /src/fwupd/plugins/nvme/fu-nvme-plugin.c:29,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/nvme/fu-nvme-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/nvme/fu-nvme-plugin.c:31,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/nvme/fu-nvme-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 35
    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
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_context_add_quirk_key
    - fu_plugin_add_device_gtype
    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:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuNvmePluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    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: 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: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 27
    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:35,1
    - Dst: FU_IS_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:38,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:39,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:43,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 50
    functionName: fu_mm_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_device_locker_new
    - FU_IS_MM_DEVICE
    - g_autoptr
    - fu_plugin_add_device
    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:56,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:58,1
    - Dst: fu_mm_backend_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:58,1
    - Dst: fu_context_add_backend
      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
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:68,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:69,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 73
    functionName: fu_mm_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_context_add_backend
    - fu_plugin_get_context
    - fu_mm_backend_new
    - fu_plugin_add_device_gtype
    - g_autoptr
    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: 81
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 81
    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:
    - fwupd_codec_string_append
    - FU_MM_FASTBOOT_DEVICE
    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:
    - FU_IS_MM_FASTBOOT_DEVICE
    - g_return_if_fail
    - g_free
    - g_strdup
    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_literal
      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_device_add_flag
    - FU_MM_FASTBOOT_DEVICE
    - fu_mm_device_at_cmd
    - FU_MM_DEVICE
    - fu_device_has_private_flag
    - g_prefix_error_literal
    - FU_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_device_set_device_file
    - FU_MM_DEVICE
    - FU_MM_FASTBOOT_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: fwupd_json_object_get_string
      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_obj
    - error
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 66
    functionDepth: 2
    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_set_detach_at
    - FU_DEVICE_CLASS
    - fwupd_json_object_get_string
    - FU_MM_FASTBOOT_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_fastboot_device_from_json(FuDevice *device, FwupdJsonObject
      *json_obj, 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_json_object_add_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fastboot-device.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - json_obj
    - flags
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 3
    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:
    - FU_DEVICE_CLASS
    - fwupd_json_object_add_string
    - FU_MM_FASTBOOT_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_mm_fastboot_device_add_json(FuDevice *device, FwupdJsonObject
      *json_obj, 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:
    - device
    - 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_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_mm_fastboot_device_set_progress(FuDevice *device, 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_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_add_instance_id_full
    - fu_device_add_protocol
    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:
    - g_free
    - G_OBJECT_CLASS
    - FU_MM_FASTBOOT_DEVICE
    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:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mm_fastboot_device_class_init(FuMmFastbootDeviceClass *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/modem-manager/fu-mm-mbim-device.c
    functionUses: 1388
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MBIM_CHECK_VERSION
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:92,1
    - Dst: fu_error_convert
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:103,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 104
    functionName: fu_mm_mbim_device_error_convert
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - MBIM_CHECK_VERSION
    - G_N_ELEMENTS
    - fu_error_convert
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_mbim_device_error_convert(GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_cancellable_cancel
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 123
    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:128,1
    - Dst: g_timeout_source_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:129,1
    - Dst: g_cancellable_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:130,1
    - Dst: g_main_context_ref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:131,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:132,1
    - Dst: g_source_set_callback
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:133,1
    - Dst: g_source_attach
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:137,1
    - Dst: g_main_context_push_thread_default
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - main_ctx
    - timeout_ms
    argTypes:
    - GMainContext*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 140
    functionName: fu_mm_mbim_device_helper_helper_new
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - g_main_context_ref
    - g_main_loop_new
    - g_new0
    - g_timeout_source_new
    - g_source_set_callback
    - g_main_context_push_thread_default
    - g_cancellable_new
    - g_source_attach
    linkageType: ''
    returnType: FuMmMbimDeviceHelper
    signature: 'FuMmMbimDeviceHelper *

      fu_mm_mbim_device_helper_helper_new(GMainContext *main_ctx, guint timeout_ms)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_main_context_pop_thread_default
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:145,1
    - Dst: g_source_destroy
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:146,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:148,1
    - Dst: mbim_message_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:150,1
    - Dst: g_source_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:151,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:152,1
    - Dst: g_main_loop_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:153,1
    - Dst: g_main_context_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:154,1
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuMmMbimDeviceHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 156
    functionName: fu_mm_mbim_device_helper_free
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - g_main_context_pop_thread_default
    - g_source_destroy
    - g_object_unref
    - g_main_loop_unref
    - g_source_unref
    - g_main_context_unref
    - g_free
    - 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:164,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 166
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:171,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:172,1
    - Dst: fu_mm_mbim_device_helper_helper_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:173,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:177,1
    - Dst: G_IS_FILE
      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:178,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:181,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:181,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:182,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:182,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:182,1
    - Dst: g_file_get_path
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:184,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:185,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:189,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:189,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:190,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:190,1
    - Dst: fu_device_event_check_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:193,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:195,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:200,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:200,1
    - Dst: mbim_device_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:202,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:203,1
    - Dst: fu_mm_mbim_device_error_convert
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:207,1
    - Dst: fu_device_event_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:209,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:210,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:210,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:215,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - self
    - file
    - timeout_ms
    - error
    argTypes:
    - FuMmMbimDevice*
    - GFile*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 168
    functionDepth: 4
    functionLinenumber: 168
    functionLinenumberEnd: 216
    functionName: fu_mm_mbim_device_new_sync
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - fu_device_get_context
    - g_main_loop_run
    - g_strdup_printf
    - g_object_new
    - G_IS_FILE
    - fu_device_event_set_error
    - fu_mm_mbim_device_helper_helper_new
    - fu_device_save_event
    - fu_device_has_flag
    - g_propagate_error
    - GET_PRIVATE
    - fu_device_event_check_error
    - fu_mm_mbim_device_error_convert
    - FU_DEVICE
    - g_file_get_path
    - g_return_val_if_fail
    - g_steal_pointer
    - mbim_device_new
    - g_autoptr
    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:222,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 224
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:229,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:230,1
    - Dst: fu_mm_mbim_device_helper_helper_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:231,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:235,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:238,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:238,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:239,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:239,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:239,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:241,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:245,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:245,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:246,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:246,1
    - Dst: fu_device_event_check_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:249,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:254,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:254,1
    - Dst: mbim_device_open_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:256,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:262,1
    - Dst: fu_mm_mbim_device_error_convert
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:266,1
    - Dst: fu_device_event_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:268,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:269,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:269,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - self
    - timeout_ms
    - error
    argTypes:
    - FuMmMbimDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 226
    functionDepth: 4
    functionLinenumber: 226
    functionLinenumberEnd: 275
    functionName: fu_mm_mbim_device_open_sync
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_context_has_flag
    - g_strdup
    - fu_mm_mbim_device_helper_helper_new
    - fu_device_load_event
    - fu_device_event_check_error
    - fu_mm_mbim_device_error_convert
    - g_steal_pointer
    - fu_device_get_context
    - g_main_loop_run
    - FU_DEVICE
    - fu_device_save_event
    - fu_device_has_flag
    - mbim_device_open_full
    - fu_device_event_set_error
    - g_propagate_error
    - g_autoptr
    - GET_PRIVATE
    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:281,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 283
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:288,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:289,1
    - Dst: fu_mm_mbim_device_helper_helper_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:290,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:294,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:297,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:297,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:298,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:298,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:298,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:300,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:304,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:304,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:305,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:305,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:308,1
    - Dst: fu_device_event_check_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:309,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:314,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:314,1
    - Dst: mbim_device_close
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:316,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:321,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:322,1
    - Dst: fu_mm_mbim_device_error_convert
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:326,1
    - Dst: fu_device_event_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:328,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:329,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:329,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - self
    - timeout_ms
    - error
    argTypes:
    - FuMmMbimDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 285
    functionDepth: 4
    functionLinenumber: 285
    functionLinenumberEnd: 335
    functionName: fu_mm_mbim_device_close_sync
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - fu_device_get_context
    - g_main_loop_run
    - fu_device_event_set_error
    - g_clear_object
    - fu_mm_mbim_device_helper_helper_new
    - mbim_device_close
    - fu_device_save_event
    - fu_device_has_flag
    - g_propagate_error
    - GET_PRIVATE
    - fu_device_event_check_error
    - fu_mm_mbim_device_error_convert
    - FU_DEVICE
    - g_return_val_if_fail
    - g_strdup
    - g_steal_pointer
    - g_autoptr
    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:341,1
    - Dst: mbim_device_command_finish
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:343,1
    - Dst: mbim_message_response_get_result
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:345,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:348,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - source
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 352
    functionName: fu_mm_mbim_device_command_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - mbim_message_response_get_result
    - g_main_loop_quit
    - g_autoptr
    - mbim_device_command_finish
    linkageType: ''
    returnType: void
    signature: void fu_mm_mbim_device_command_cb(GObject *source, GAsyncResult *res,
      gpointer user_data)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:360,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:361,1
    - Dst: fu_mm_mbim_device_helper_helper_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:362,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:366,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:369,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:369,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:370,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:370,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:370,1
    - Dst: mbim_message_get_raw
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:376,1
    - Dst: fu_mm_mbim_device_error_convert
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:378,1
    - Dst: g_base64_encode
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:381,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:382,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:388,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:388,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:389,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:390,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:390,1
    - Dst: fu_device_event_check_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:393,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:395,1
    - Dst: mbim_message_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:398,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:398,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:398,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:403,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:403,1
    - Dst: mbim_device_command
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:405,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:411,1
    - Dst: fu_mm_mbim_device_error_convert
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:415,1
    - Dst: fu_device_event_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:417,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:418,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:418,1
    - Dst: mbim_message_get_raw
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:427,1
    - Dst: fu_mm_mbim_device_error_convert
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:429,1
    - Dst: fu_device_event_set_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:432,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:436,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 4
    argNames:
    - self
    - mbim_message
    - timeout_ms
    - error
    argTypes:
    - FuMmMbimDevice*
    - MbimMessage*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 354
    functionDepth: 4
    functionLinenumber: 354
    functionLinenumberEnd: 437
    functionName: fu_mm_mbim_device_command_sync
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_device_load_event
    - fu_device_get_context
    - g_main_loop_run
    - g_strdup_printf
    - fu_device_event_set_error
    - mbim_device_command
    - fu_mm_mbim_device_helper_helper_new
    - fu_device_save_event
    - fu_device_has_flag
    - mbim_message_new
    - fu_device_event_set_data
    - g_propagate_error
    - GET_PRIVATE
    - fu_device_event_check_error
    - fu_mm_mbim_device_error_convert
    - g_bytes_get_data
    - fu_device_event_get_bytes
    - FU_DEVICE
    - g_return_val_if_fail
    - g_steal_pointer
    - g_bytes_get_size
    - mbim_message_get_raw
    - g_autoptr
    - g_base64_encode
    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: FU_MM_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:442,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:443,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:444,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:445,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:446,1
    - Dst: mbim_message_qdu_quectel_reboot_set_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:448,1
    - Dst: fu_mm_mbim_device_command_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:449,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:452,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:453,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:454,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:454,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:457,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:458,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 439
    functionDepth: 6
    functionLinenumber: 439
    functionLinenumberEnd: 464
    functionName: fu_mm_mbim_device_detach
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - g_steal_pointer
    - mbim_message_qdu_quectel_reboot_set_new
    - fu_mm_mbim_device_command_sync
    - g_error_matches
    - FU_MM_MBIM_DEVICE
    - g_clear_object
    - g_propagate_error
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_mbim_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:469,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:470,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:471,1
    - Dst: fu_mm_device_set_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:474,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 466
    functionDepth: 4
    functionLinenumber: 466
    functionLinenumberEnd: 475
    functionName: fu_mm_mbim_device_probe
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_set_device_file
    - FU_MM_DEVICE
    - fu_device_add_instance_id_full
    - fu_device_add_protocol
    - FU_MM_MBIM_DEVICE
    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:480,1
    - Dst: fu_mm_mbim_device_open_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 477
    functionDepth: 5
    functionLinenumber: 477
    functionLinenumberEnd: 482
    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_open_sync
    - FU_MM_MBIM_DEVICE
    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:487,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:488,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:489,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:490,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:490,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:490,1
    - Dst: fu_mm_mbim_device_new_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:494,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 484
    functionDepth: 5
    functionLinenumber: 484
    functionLinenumberEnd: 502
    functionName: fu_mm_mbim_device_open
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_device_file
    - fu_mm_mbim_device_new_sync
    - fu_device_retry
    - FU_MM_MBIM_DEVICE
    - g_file_new_for_path
    - g_autoptr
    - FU_UDEV_DEVICE
    - GET_PRIVATE
    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:507,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:508,1
    - Dst: fu_mm_mbim_device_close_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 504
    functionDepth: 5
    functionLinenumber: 504
    functionLinenumberEnd: 514
    functionName: fu_mm_mbim_device_close
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - fu_mm_mbim_device_close_sync
    - FU_MM_MBIM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_mbim_device_close(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:522,1
    - Dst: fu_mm_device_set_autosuspend_delay
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:523,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 524
    functionName: fu_mm_mbim_device_prepare
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_set_autosuspend_delay
    - FU_MM_DEVICE
    - FU_MM_MBIM_DEVICE
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:532,1
    - Dst: fu_mm_device_set_autosuspend_delay
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:533,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 534
    functionName: fu_mm_mbim_device_cleanup
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_set_autosuspend_delay
    - FU_MM_DEVICE
    - FU_MM_MBIM_DEVICE
    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:539,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:540,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:541,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:542,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:543,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 536
    functionDepth: 3
    functionLinenumber: 536
    functionLinenumberEnd: 545
    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
    linkageType: ''
    returnType: void
    signature: void fu_mm_mbim_device_set_progress(FuDevice *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:550,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:551,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:551,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:552,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:552,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:553,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:553,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:554,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:554,1
    - Dst: g_main_context_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmMbimDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 547
    functionDepth: 6
    functionLinenumber: 547
    functionLinenumberEnd: 558
    functionName: fu_mm_mbim_device_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - g_main_context_new
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_udev_device_add_open_flag
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_mm_mbim_device_init(FuMmMbimDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:563,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:564,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:566,1
    - Dst: g_main_context_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:567,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 569
    functionName: fu_mm_mbim_device_finalize
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - G_OBJECT_CLASS
    - g_main_context_unref
    - FU_MM_MBIM_DEVICE
    - GET_PRIVATE
    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:574,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMmMbimDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 584
    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: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 1397
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:58,1
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - port
    argTypes:
    - FuMmDevicePort*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: fu_mm_device_port_free
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_mm_device_port_free(FuMmDevicePort *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:65,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:66,1
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:68,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - branch_at
    argTypes:
    - FuMmDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: fu_mm_device_set_branch_at
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_free
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_mm_device_set_branch_at(FuMmDevice *self, const gchar *branch_at)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:75,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:76,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:77,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:78,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:79,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:81,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:83,1
    - Dst: fu_mm_device_port_type_to_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:83,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 86
    functionName: fu_mm_device_to_string
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_port_type_to_string
    - FU_MM_DEVICE
    - fwupd_codec_string_append
    - g_strdup_printf
    - fwupd_codec_string_append_bool
    - g_ptr_array_index
    - GET_PRIVATE
    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:91,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:92,1
    - Dst: FU_IS_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    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
    - FU_IS_MM_DEVICE
    - GET_PRIVATE
    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:99,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:100,1
    - Dst: FU_IS_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:100,1
    - Dst: g_object_notify
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:104,1
    - Dst: G_OBJECT
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - inhibited
    argTypes:
    - FuMmDevice*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: fu_mm_device_set_inhibited
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_object_notify
    - g_return_if_fail
    - FU_IS_MM_DEVICE
    - G_OBJECT
    - GET_PRIVATE
    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:110,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:111,1
    - Dst: FU_IS_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: fu_mm_device_get_inhibited
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_MM_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_get_inhibited(FuMmDevice *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:118,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:119,1
    - Dst: FU_IS_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:119,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:123,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:126,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:126,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:129,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:129,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:135,1
    - Dst: fu_mm_device_port_type_to_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - port_type
    - error
    argTypes:
    - FuMmDevice*
    - MMModemPortType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 141
    functionName: fu_mm_device_set_device_file
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_mm_device_port_type_to_string
    - g_set_error
    - fu_device_add_private_flag
    - FU_DEVICE
    - FU_IS_MM_DEVICE
    - fu_udev_device_set_device_file
    - FU_UDEV_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_set_device_file(FuMmDevice *self, MMModemPortType
      port_type, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:146,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:147,1
    - Dst: fu_udev_device_write_sysfs
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:149,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:149,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:154,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:155,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:158,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - timeout_ms
    - error
    argTypes:
    - FuMmDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 164
    functionName: fu_mm_device_set_autosuspend_delay
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 2
    functionsReached:
    - g_debug
    - g_steal_pointer
    - fu_udev_device_write_sysfs
    - g_strdup_printf
    - g_error_matches
    - FU_UDEV_DEVICE
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_set_autosuspend_delay(FuMmDevice *self, guint
      timeout_ms, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:169,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:169,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:171,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:173,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:173,1
    - Dst: fu_device_get_instance_str
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:175,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:175,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:176,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuMmDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 178
    functionName: fu_mm_device_add_instance_id_vid
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_vid
    - fu_strtoull
    - fu_device_add_instance_str
    - fu_device_get_vid
    - FU_DEVICE
    - fu_device_get_instance_str
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_add_instance_id_vid(FuMmDevice *self, const gchar
      *value, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_pid
      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_strtoull
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:185,1
    - Dst: fu_device_set_pid
      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_get_instance_str
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:189,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:189,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:190,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuMmDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 192
    functionName: fu_mm_device_add_instance_id_pid
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_device_add_instance_str
    - fu_strtoull
    - FU_DEVICE
    - fu_device_set_pid
    - fu_device_get_instance_str
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_add_instance_id_pid(FuMmDevice *self, const gchar
      *value, GError **error)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:199,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:200,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:203,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:204,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:205,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:206,1
    - Dst: fu_device_add_vendor_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:207,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:207,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:211,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:214,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:216,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:216,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:217,1
    - Dst: fu_mm_device_add_instance_id_vid
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:218,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:220,1
    - Dst: fu_mm_device_add_instance_id_pid
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:221,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:223,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:223,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:224,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:225,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:225,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:226,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:227,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:228,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:229,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:231,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:237,1
    - Dst: fu_device_add_instance_str
      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_build_instance_id_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:242,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:242,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_build_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:254,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:254,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:261,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:261,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:268,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:268,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:276,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:276,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:278,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:278,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:285,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:285,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:293,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:293,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:302,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:302,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:303,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:303,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:310,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:310,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:312,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:312,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:320,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:320,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 3
    argNames:
    - self
    - device_id
    - error
    argTypes:
    - FuMmDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 194
    functionDepth: 7
    functionLinenumber: 194
    functionLinenumberEnd: 332
    functionName: fu_mm_device_add_instance_id
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strndup
    - g_strcmp0
    - fu_mm_device_add_instance_id_vid
    - g_debug
    - fu_device_add_instance_str
    - fu_device_build_instance_id
    - g_pattern_match_simple
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_strdup_printf
    - g_strsplit
    - fu_device_build_instance_id_full
    - fu_mm_device_add_instance_id_pid
    - fu_device_add_vendor_id
    - g_auto
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_add_instance_id(FuMmDevice *self, const gchar
      *device_id, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:340,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:348,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:354,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:357,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:358,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - port_type
    - device_file
    - flags
    argTypes:
    - FuMmDevice*
    - MMModemPortType
    - gchar*
    - FuMmDevicePortFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 359
    functionName: fu_mm_device_add_port
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_new0
    - g_ptr_array_add
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: "void fu_mm_device_add_port(FuMmDevice *self,\n\t\t      MMModemPortType
      port_type,\n\t\t      const gchar *device_file,\n\t\t      FuMmDevicePortFlags
      flags)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:364,1
    - Dst: mm_object_peek_modem_firmware
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:365,1
    - Dst: mm_object_peek_modem
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:366,1
    - Dst: MM_CHECK_VERSION
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:369,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:376,1
    - Dst: mm_modem_dup_device
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:380,1
    - Dst: mm_modem_get_physdev
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:383,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:385,1
    - Dst: fu_device_set_physical_id
      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_firmware_get_update_settings
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:394,1
    - Dst: mm_firmware_update_settings_get_device_ids
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:395,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:397,1
    - Dst: mm_firmware_update_settings_get_version
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:405,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:407,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:414,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:414,1
    - Dst: mm_object_get_path
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:414,1
    - Dst: mm_modem_get_ports
      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:420,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:424,1
    - Dst: fu_mm_device_add_port
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:425,1
    - Dst: fu_mm_device_add_port
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:430,1
    - Dst: mm_modem_port_info_array_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:436,1
    - Dst: MM_CHECK_VERSION
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:439,1
    - Dst: mm_modem_get_ignored_ports
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:440,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:443,1
    - Dst: fu_mm_device_add_port
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:446,1
    - Dst: mm_modem_port_info_array_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:451,1
    - Dst: mm_modem_get_manufacturer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:456,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:457,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:457,1
    - Dst: mm_modem_get_manufacturer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:457,1
    - Dst: mm_modem_get_model
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:458,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:459,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:459,1
    - Dst: mm_modem_get_model
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:459,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:462,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:462,1
    - Dst: fu_device_set_branch
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:463,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:463,1
    - Dst: mm_modem_get_carrier_configuration
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:463,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:465,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:465,1
    - Dst: fu_mm_device_add_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:469,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 3
    argNames:
    - self
    - omodem
    - error
    argTypes:
    - FuMmDevice*
    - MMObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 361
    functionDepth: 8
    functionLinenumber: 361
    functionLinenumberEnd: 475
    functionName: fu_mm_device_probe_from_omodem
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - mm_modem_get_physdev
    - mm_modem_firmware_get_update_settings
    - g_strdup_printf
    - fu_mm_device_add_instance_id
    - mm_modem_get_ignored_ports
    - mm_object_peek_modem
    - mm_modem_port_info_array_free
    - mm_object_peek_modem_firmware
    - fu_device_set_physical_id
    - MM_CHECK_VERSION
    - g_set_error_literal
    - fu_device_set_vendor
    - mm_modem_get_carrier_configuration
    - mm_modem_dup_device
    - mm_firmware_update_settings_get_version
    - GET_PRIVATE
    - mm_modem_get_ports
    - mm_modem_get_model
    - g_pattern_match_simple
    - FU_DEVICE
    - fu_device_set_name
    - mm_modem_get_manufacturer
    - mm_object_get_path
    - fu_device_set_branch
    - fu_mm_device_add_port
    - fu_device_has_private_flag
    - fu_device_set_backend_id
    - mm_firmware_update_settings_get_device_ids
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_probe_from_omodem(FuMmDevice *self, MMObject
      *omodem, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:487,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:493,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:494,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:498,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:503,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:504,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:505,1
    - Dst: strlen
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:505,1
    - Dst: fu_udev_device_write_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:506,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:506,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:511,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:517,1
    - Dst: fu_udev_device_read_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:522,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:522,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:528,1
    - Dst: fu_strsafe_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:531,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:533,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:536,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:542,1
    - Dst: g_strrstr_len
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:543,1
    - Dst: strlen
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:543,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:544,1
    - Dst: fu_udev_device_read_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:545,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:545,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:551,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:554,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:557,1
    - Dst: g_strrstr_len
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:566,1
    - Dst: g_strrstr_len
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:567,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:568,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:569,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:579,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 484
    functionDepth: 6
    functionLinenumber: 484
    functionLinenumberEnd: 581
    functionName: fu_mm_device_at_cmd_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - g_bytes_new
    - g_debug
    - fu_udev_device_read_bytes
    - fu_strsafe_bytes
    - g_bytes_get_data
    - g_set_error_literal
    - g_set_error
    - g_steal_pointer
    - FU_MM_DEVICE
    - fu_udev_device_write_bytes
    - g_prefix_error
    - g_strdup_printf
    - g_bytes_unref
    - strlen
    - FU_UDEV_DEVICE
    - g_strrstr_len
    - g_autoptr
    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:587,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:587,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:597,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: 599
      start: 583
    functionDepth: 3
    functionLinenumber: 583
    functionLinenumberEnd: 599
    functionName: fu_mm_device_at_cmd
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 1
    functionsReached:
    - FU_DEVICE
    - g_bytes_unref
    - fu_device_retry_full
    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:605,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - cmd
    - count
    - error
    argTypes:
    - FuMmDevice*
    - gchar*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 601
    functionDepth: 3
    functionLinenumber: 601
    functionLinenumberEnd: 613
    functionName: fu_mm_device_at_cmd_full
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_retry_full
    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:618,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:619,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:620,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:628,1
    - Dst: fu_mm_device_at_cmd_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:632,1
    - Dst: fu_strsplit_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:635,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:637,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:637,1
    - Dst: g_info
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:638,1
    - Dst: fu_device_set_branch
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:639,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:639,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMmDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 615
    functionDepth: 4
    functionLinenumber: 615
    functionLinenumberEnd: 646
    functionName: fu_mm_device_ensure_branch
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_device_set_branch
    - g_info
    - fu_strsplit_bytes
    - FU_DEVICE
    - fu_device_has_flag
    - fu_mm_device_at_cmd_full
    - g_auto
    - g_autoptr
    - GET_PRIVATE
    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:651,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:651,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:652,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:653,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:654,1
    - Dst: fu_mm_device_at_cmd_full
      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:661,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:664,1
    - Dst: fu_strsplit_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:664,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:666,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:667,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:667,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:671,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:672,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:672,1
    - Dst: fu_mm_device_at_cmd_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:681,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:683,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:685,1
    - Dst: fu_strsplit_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:685,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:687,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:688,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:688,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:692,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:693,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:693,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:704,1
    - Dst: strncmp
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:705,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:706,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:709,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:709,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:712,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:712,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 648
    functionDepth: 6
    functionLinenumber: 648
    functionLinenumberEnd: 718
    functionName: fu_mm_device_ensure_payload_quectel
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_strcmp0
    - strncmp
    - g_debug
    - fu_strsplit_bytes
    - fu_version_compare
    - FU_DEVICE
    - fu_device_get_version
    - fu_mm_device_at_cmd_full
    - G_N_ELEMENTS
    - g_auto
    - g_autoptr
    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:723,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:723,1
    - Dst: fu_device_has_vendor_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:724,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:724,1
    - Dst: fu_mm_device_ensure_payload_quectel
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:725,1
    - Dst: fu_device_has_vendor_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:726,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:726,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:727,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:727,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:729,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 720
    functionDepth: 7
    functionLinenumber: 720
    functionLinenumberEnd: 731
    functionName: fu_mm_device_ensure_payload
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_mm_device_ensure_payload_quectel
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_has_vendor_id
    linkageType: ''
    returnType: void
    signature: void fu_mm_device_ensure_payload(FuMmDevice *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:737,1
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:737,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:737,1
    - Dst: tcgetattr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:740,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:741,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:744,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:749,1
    - Dst: cfmakeraw
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:753,1
    - Dst: tcsetattr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:755,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:756,1
    - Dst: g_io_error_from_errno
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:759,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:764,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMmDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 776
    functionName: fu_mm_device_make_serial_raw
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - tcgetattr
    - g_io_error_from_errno
    - g_set_error
    - g_set_error_literal
    - cfmakeraw
    - fu_io_channel_unix_get_fd
    - fu_udev_device_get_io_channel
    - FU_UDEV_DEVICE
    - fwupd_strerror
    - tcsetattr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_make_serial_raw(FuMmDevice *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:781,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:784,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:788,1
    - Dst: fu_mm_device_make_serial_raw
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:789,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 778
    functionDepth: 2
    functionLinenumber: 778
    functionLinenumberEnd: 795
    functionName: fu_mm_device_open
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_make_serial_raw
    - FU_DEVICE_CLASS
    - FU_MM_DEVICE
    - fu_device_has_private_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_open(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:800,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:801,1
    - Dst: fu_mm_device_ensure_branch
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:803,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:804,1
    - Dst: fu_mm_device_ensure_payload
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 797
    functionDepth: 8
    functionLinenumber: 797
    functionLinenumberEnd: 809
    functionName: fu_mm_device_setup
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_ensure_branch
    - g_debug
    - FU_MM_DEVICE
    - fu_mm_device_ensure_payload
    - g_autoptr
    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:814,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:816,1
    - Dst: fu_mm_device_set_branch_at
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:817,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 827
    functionName: fu_mm_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    - 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: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:832,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:834,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:835,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:838,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:842,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:844,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:845,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:847,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:848,1
    - Dst: fu_mm_device_set_branch_at
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:850,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:853,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:855,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:857,1
    - Dst: fu_mm_device_add_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:860,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:866,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:868,1
    - Dst: fwupd_json_object_get_keys
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:868,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:871,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:874,1
    - Dst: fu_mm_device_add_port
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:877,1
    - Dst: fu_mm_device_port_type_from_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:878,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - device
    - json_obj
    - error
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 829
    functionDepth: 8
    functionLinenumber: 829
    functionLinenumberEnd: 886
    functionName: fu_mm_device_from_json
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_port_type_from_string
    - fu_device_set_version
    - fu_device_set_physical_id
    - fu_mm_device_set_branch_at
    - fwupd_json_array_get_size
    - fwupd_json_array_get_string
    - fu_mm_device_add_port
    - fwupd_json_object_get_object
    - FU_MM_DEVICE
    - fwupd_json_object_get_array
    - fwupd_json_object_get_keys
    - fu_mm_device_add_instance_id
    - fwupd_json_object_get_string
    - g_autoptr
    - FU_DEVICE_CLASS
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_device_from_json(FuDevice *device, FwupdJsonObject *json_obj,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:891,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:892,1
    - Dst: fu_device_get_instance_ids
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:893,1
    - Dst: fu_device_get_vendor_ids
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:894,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:895,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:895,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:896,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:896,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:899,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:902,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:902,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:903,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:904,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:904,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:905,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:906,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:908,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:911,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:915,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:916,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:919,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:920,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:921,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:922,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:924,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:925,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:926,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:929,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:933,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:934,1
    - Dst: fu_mm_device_port_type_to_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:935,1
    - Dst: fwupd_json_object_add_object
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:938,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - device
    - json_obj
    - flags
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 888
    functionDepth: 3
    functionLinenumber: 888
    functionLinenumberEnd: 939
    functionName: fu_mm_device_add_json
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - G_OBJECT_TYPE_NAME
    - fu_device_get_physical_id
    - fwupd_json_array_new
    - g_strdup_printf
    - g_ptr_array_index
    - fwupd_json_object_new
    - fu_device_get_vendor_ids
    - FU_MM_DEVICE
    - fwupd_json_array_add_string
    - fwupd_json_object_add_object
    - g_str_has_prefix
    - GET_PRIVATE
    - FU_DEVICE_CLASS
    - fwupd_json_object_add_string
    - fu_mm_device_port_type_to_string
    - fu_device_get_version
    - g_autoptr
    - fu_device_get_instance_ids
    linkageType: ''
    returnType: void
    signature: void fu_mm_device_add_json(FuDevice *device, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:944,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:945,1
    - Dst: g_value_set_boolean
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:948,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:951,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: 954
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 954
    functionName: fu_mm_device_get_property
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_value_set_boolean
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_MM_DEVICE
    - GET_PRIVATE
    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:959,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:962,1
    - Dst: g_value_get_boolean
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:962,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:965,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: 968
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 968
    functionName: fu_mm_device_set_property
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_value_get_boolean
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_MM_DEVICE
    - fu_mm_device_set_inhibited
    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: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:973,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:974,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:974,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:975,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:975,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:976,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:976,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:977,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:977,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:978,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:978,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:979,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:979,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:980,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:980,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:981,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:981,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:982,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:982,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:983,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:983,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:984,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:984,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:985,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:985,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:986,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:986,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:987,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:987,1
    - Dst: fu_device_add_possible_plugin
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:988,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:988,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:989,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:989,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:990,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:990,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 970
    functionDepth: 6
    functionLinenumber: 970
    functionLinenumberEnd: 992
    functionName: fu_mm_device_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_add_possible_plugin
    - fu_device_add_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_summary
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - g_ptr_array_new_with_free_func
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    - GET_PRIVATE
    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:997,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:998,1
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:1000,1
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:1001,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:1002,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 1005
    functionName: fu_mm_device_finalize
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FU_MM_DEVICE
    - G_OBJECT_CLASS
    - g_free
    - GET_PRIVATE
    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:1010,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:1011,1
    - Dst: g_param_spec_boolean
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:1024,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/modem-manager/fu-mm-device.c:1029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMmDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1030
    functionName: fu_mm_device_class_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_boolean
    - FU_DEVICE_CLASS
    - G_OBJECT_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_full
      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: g_assert_no_error
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:40,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:41,1
    - Dst: fu_mm_device_add_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:42,1
    - Dst: g_assert_no_error
      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:46,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:49,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:49,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:50,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:53,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:53,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:53,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:54,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:54,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:54,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:55,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:55,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:55,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:58,1
    - Dst: fu_device_has_instance_id
      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: 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: fu_device_add_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:68,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:68,1
    - Dst: fu_mm_device_add_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:70,1
    - Dst: fu_mm_device_add_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:73,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:76,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:76,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:76,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:80,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:80,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:80,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:86,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:86,1
    - Dst: fu_mm_device_add_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:87,1
    - Dst: fu_mm_device_add_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:90,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:93,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:93,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:93,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:97,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:97,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 12
    functionDepth: 8
    functionLinenumber: 12
    functionLinenumberEnd: 101
    functionName: fu_mm_device_func
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_has_instance_id
    - fu_device_get_pid
    - fu_device_add_private_flag
    - fu_mm_device_set_inhibited
    - g_object_new
    - fu_mm_device_add_instance_id
    - fu_context_new_full
    - fu_context_load_quirks
    - fu_mm_device_get_inhibited
    - fu_device_set_physical_id
    - fu_device_to_string
    - g_debug
    - g_assert_cmpint
    - fu_mm_device_set_autosuspend_delay
    - FU_DEVICE
    - fu_device_get_vid
    - g_assert_false
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    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:106,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:107,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/modem-manager/fu-self-test.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 109
    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:36,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - backend
    - idt
    - str
    argTypes:
    - FuBackend*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 38
    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:43,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:43,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:44,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:48,1
    - Dst: mm_manager_inhibit_device_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:49,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuMmBackend*
    - FuMmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: fu_mm_backend_device_inhibit
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_get_inhibition_uid
    - g_debug
    - FU_MM_DEVICE
    - mm_manager_inhibit_device_sync
    - g_autoptr
    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:56,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:56,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:57,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:61,1
    - Dst: mm_manager_uninhibit_device_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:62,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuMmBackend*
    - FuMmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: fu_mm_backend_device_uninhibit
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_get_inhibition_uid
    - g_debug
    - FU_MM_DEVICE
    - mm_manager_uninhibit_device_sync
    - g_autoptr
    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:69,1
    - Dst: fu_mm_device_get_inhibited
      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_inhibit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:71,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:71,1
    - Dst: fu_mm_backend_device_uninhibit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:74,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: fu_mm_backend_device_inhibited_notify_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - fu_mm_backend_device_inhibit
    - FU_MM_DEVICE
    - FU_MM_BACKEND
    - fu_mm_backend_device_uninhibit
    - fu_mm_device_get_inhibited
    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:80,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:80,1
    - Dst: mm_object_peek_modem_firmware
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:84,1
    - Dst: mm_modem_firmware_get_update_settings
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:87,1
    - Dst: mm_firmware_update_settings_get_device_ids
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:88,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:90,1
    - Dst: fwupd_guid_hash_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:97,1
    - Dst: fu_context_lookup_quirk_by_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:98,1
    - Dst: g_type_from_name
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:100,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:102,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:109,1
    - Dst: g_strjoinv
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:114,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - self
    - omodem
    - error
    argTypes:
    - FuMmBackend*
    - MMObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 77
    functionDepth: 5
    functionLinenumber: 77
    functionLinenumberEnd: 121
    functionName: fu_mm_backend_probe_gtype
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - mm_object_peek_modem_firmware
    - mm_firmware_update_settings_get_device_ids
    - fwupd_guid_hash_string
    - g_set_error
    - fu_context_lookup_quirk_by_id
    - g_set_error_literal
    - mm_modem_firmware_get_update_settings
    - g_object_new
    - g_strjoinv
    - fu_backend_get_context
    - FU_BACKEND
    - g_autoptr
    - g_type_from_name
    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:126,1
    - Dst: fu_backend_get_context
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:127,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:127,1
    - Dst: MM_CHECK_VERSION
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:132,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:139,1
    - Dst: mm_object_peek_modem_firmware
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:197,1
    - Dst: mm_modem_firmware_get_update_settings
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:198,1
    - Dst: mm_firmware_update_settings_get_method
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:199,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:201,1
    - Dst: mm_modem_get_ports
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:208,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:210,1
    - Dst: fu_mm_device_port_type_to_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:212,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:213,1
    - Dst: mm_modem_port_info_array_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:215,1
    - Dst: MM_CHECK_VERSION
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:218,1
    - Dst: mm_modem_get_ignored_ports
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:219,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:231,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:232,1
    - Dst: mm_modem_firmware_update_method_build_string_from_mask
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:240,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:241,1
    - Dst: mm_firmware_update_settings_get_device_ids
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:250,1
    - Dst: g_strjoinv
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:252,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:254,1
    - Dst: g_type_name
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:256,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:258,1
    - Dst: g_type_name
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:260,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:261,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:267,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - self
    - omodem
    - error
    argTypes:
    - FuMmBackend*
    - MMObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 268
    functionName: fu_mm_backend_probe_gtype_fallback
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - FU_BIT_IS_SET
    - mm_modem_firmware_update_method_build_string_from_mask
    - FU_BIT_SET
    - mm_modem_firmware_get_update_settings
    - g_object_new
    - mm_modem_get_ignored_ports
    - mm_object_peek_modem
    - mm_modem_port_info_array_free
    - mm_object_peek_modem_firmware
    - g_debug
    - MM_CHECK_VERSION
    - g_set_error_literal
    - mm_modem_get_ports
    - mm_firmware_update_settings_get_method
    - g_warning
    - FU_BACKEND
    - fu_mm_device_port_type_to_string
    - g_type_name
    - g_set_error
    - G_N_ELEMENTS
    - g_strjoinv
    - fu_backend_get_context
    - mm_firmware_update_settings_get_device_ids
    - g_autoptr
    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:273,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:274,1
    - Dst: fu_mm_backend_probe_gtype
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:277,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:279,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:280,1
    - Dst: fu_mm_backend_probe_gtype_fallback
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:281,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:285,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:285,1
    - Dst: fu_mm_device_probe_from_omodem
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:289,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:289,1
    - Dst: FU_IS_MM_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:293,1
    - Dst: mm_object_peek_modem_firmware
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:294,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:295,1
    - Dst: mm_modem_firmware_get_update_settings
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:296,1
    - Dst: mm_firmware_update_settings_get_fastboot_at
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:297,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:299,1
    - Dst: fu_mm_fastboot_device_set_detach_at
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:305,1
    - Dst: FU_MM_FASTBOOT_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:305,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:309,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - self
    - omodem
    - error
    argTypes:
    - FuMmBackend*
    - MMObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 270
    functionDepth: 9
    functionLinenumber: 270
    functionLinenumberEnd: 310
    functionName: fu_mm_backend_device_create_from_omodem
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - mm_object_peek_modem_firmware
    - fu_mm_backend_probe_gtype_fallback
    - g_debug
    - fu_mm_device_probe_from_omodem
    - FU_MM_FASTBOOT_DEVICE
    - g_set_error_literal
    - g_steal_pointer
    - FU_MM_DEVICE
    - fu_mm_backend_probe_gtype
    - FU_IS_MM_FASTBOOT_DEVICE
    - mm_modem_firmware_get_update_settings
    - mm_firmware_update_settings_get_fastboot_at
    - fu_mm_fastboot_device_set_detach_at
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    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:315,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:316,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuMmBackend*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 312
    functionDepth: 5
    functionLinenumber: 312
    functionLinenumberEnd: 322
    functionName: fu_mm_backend_ensure_modem_power_inhibit
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - g_file_test
    - fu_device_uninhibit
    - 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:327,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:328,1
    - Dst: fu_mm_backend_device_create_from_omodem
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:330,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:332,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:337,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:339,1
    - Dst: fu_mm_backend_ensure_modem_power_inhibit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:341,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:342,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - self
    - omodem
    argTypes:
    - FuMmBackend*
    - MMObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 324
    functionDepth: 10
    functionLinenumber: 324
    functionLinenumberEnd: 343
    functionName: fu_mm_backend_add_device
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - fu_backend_device_added
    - fu_mm_backend_ensure_modem_power_inhibit
    - g_signal_connect
    - g_debug
    - G_CALLBACK
    - fu_mm_backend_device_create_from_omodem
    - FU_BACKEND
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_mm_backend_add_device(FuMmBackend *self, MMObject *omodem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:348,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:348,1
    - Dst: mm_object_get_path
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:348,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:350,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:351,1
    - Dst: fu_mm_device_probe_from_omodem
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:352,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:352,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:353,1
    - Dst: fu_mm_backend_add_device
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - manager
    - omodem
    - self
    argTypes:
    - MMManager*
    - MMObject*
    - FuMmBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 345
    functionDepth: 11
    functionLinenumber: 345
    functionLinenumberEnd: 357
    functionName: fu_mm_backend_device_added_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - fu_backend_lookup_by_id
    - g_debug
    - fu_mm_device_probe_from_omodem
    - FU_MM_DEVICE
    - fu_mm_backend_add_device
    - mm_object_get_path
    - FU_BACKEND
    - g_autoptr
    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:362,1
    - Dst: mm_object_get_path
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:362,1
    - Dst: fu_mm_device_get_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:365,1
    - Dst: FU_MM_DEVICE
      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:366,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:366,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:369,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:369,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - manager
    - omodem
    - backend
    argTypes:
    - MMManager*
    - MMObject*
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 371
    functionName: fu_mm_backend_device_removed_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_id
    - fu_backend_lookup_by_id
    - g_debug
    - FU_MM_DEVICE
    - fu_backend_device_removed
    - mm_object_get_path
    - 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:380,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:381,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:381,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:383,1
    - Dst: fu_mm_backend_ensure_modem_power_inhibit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:384,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: 386
      start: 373
    functionDepth: 6
    functionLinenumber: 373
    functionLinenumberEnd: 386
    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
    - fu_backend_get_devices
    - FU_BACKEND
    - g_ptr_array_index
    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:394,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:395,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:396,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:396,1
    - Dst: g_bus_get_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:398,1
    - Dst: mm_manager_new_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:401,1
    - Dst: g_file_monitor
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:409,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:412,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:414,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - backend
    - flags
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuBackendSetupFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 419
    functionName: fu_mm_backend_setup
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - g_signal_connect
    - g_bus_get_sync
    - mm_manager_new_sync
    - FU_MM_BACKEND
    - G_CALLBACK
    - g_file_monitor
    - g_file_new_for_path
    - g_autoptr
    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:425,1
    - Dst: g_signal_handlers_disconnect_by_func
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:426,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:427,1
    - Dst: g_signal_handlers_disconnect_by_func
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:429,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 434
    functionName: fu_mm_backend_teardown_manager
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - g_signal_handlers_disconnect_by_func
    - G_CALLBACK
    - g_debug
    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:439,1
    - Dst: g_autolist
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:440,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:442,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:443,1
    - Dst: g_info
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:449,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:450,1
    - Dst: G_DBUS_OBJECT_MANAGER
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:450,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:452,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:454,1
    - Dst: G_DBUS_OBJECT_MANAGER
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:454,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:456,1
    - Dst: g_dbus_object_manager_get_objects
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:459,1
    - Dst: G_DBUS_OBJECT_MANAGER
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:459,1
    - Dst: g_list_next
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:460,1
    - Dst: MM_OBJECT
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:461,1
    - Dst: fu_mm_backend_add_device
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 436
    functionDepth: 11
    functionLinenumber: 436
    functionLinenumberEnd: 466
    functionName: fu_mm_backend_setup_manager
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - g_list_next
    - mm_manager_get_version
    - g_signal_connect
    - g_info
    - g_autolist
    - fu_version_compare
    - MM_OBJECT
    - g_warning
    - G_DBUS_OBJECT_MANAGER
    - G_CALLBACK
    - fu_mm_backend_add_device
    - g_dbus_object_manager_get_objects
    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:471,1
    - Dst: G_DBUS_OBJECT_MANAGER_CLIENT
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:472,1
    - Dst: fu_mm_backend_setup_manager
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:474,1
    - Dst: fu_mm_backend_teardown_manager
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 468
    functionDepth: 12
    functionLinenumber: 468
    functionLinenumberEnd: 477
    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
    - g_dbus_object_manager_client_get_name_owner
    - 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:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - manager
    - pspec
    - self
    argTypes:
    - MMManager*
    - GParamSpec*
    - FuMmBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 479
    functionDepth: 13
    functionLinenumber: 479
    functionLinenumberEnd: 483
    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:488,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:489,1
    - Dst: MM_MANAGER
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:489,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:491,1
    - Dst: fu_mm_backend_name_owner_changed
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - backend
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 485
    functionDepth: 13
    functionLinenumber: 485
    functionLinenumberEnd: 495
    functionName: fu_mm_backend_coldplug
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - fu_mm_backend_name_owner_changed
    - g_signal_connect
    - MM_MANAGER
    - FU_MM_BACKEND
    - G_CALLBACK
    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: 500
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 500
    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:505,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:507,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:509,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:510,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 511
    functionName: fu_mm_backend_finalize
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - FU_MM_BACKEND
    - 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:516,1
    - Dst: FU_BACKEND_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-backend.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMmBackendClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 522
    functionName: fu_mm_backend_class_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-backend.c
    functionUses: 0
    functionsReached:
    - FU_BACKEND_CLASS
    - G_OBJECT_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:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 528
    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_literal
      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_literal
      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_literal
      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: 6
    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_bytes_compare
    - g_bytes_new
    - fu_udev_device_read_bytes
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_udev_device_write_bytes
    - fu_dump_bytes
    - FU_UDEV_DEVICE
    - g_autoptr
    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:66,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:66,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:66,1
    - Dst: fu_mm_qcdm_device_cmd
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - userdata
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 7
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: fu_mm_qcdm_device_switch_to_edl_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_device_file
    - FU_MM_QCDM_DEVICE
    - g_file_test
    - FU_UDEV_DEVICE
    - fu_mm_qcdm_device_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qcdm_device_switch_to_edl_cb(FuDevice *device, gpointer
      userdata, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_QCDM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:74,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:77,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:77,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:78,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:86,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 71
    functionDepth: 6
    functionLinenumber: 71
    functionLinenumberEnd: 95
    functionName: fu_mm_qcdm_device_detach
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_device_file
    - fu_device_add_flag
    - FU_MM_QCDM_DEVICE
    - g_set_error_literal
    - fu_device_retry_full
    - FU_UDEV_DEVICE
    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:100,1
    - Dst: fu_mm_device_set_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:101,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 4
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: fu_mm_qcdm_device_probe
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_QCDM_DEVICE
    - FU_MM_DEVICE
    - fu_mm_device_set_device_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qcdm_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:107,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:108,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:109,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:110,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:111,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:112,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 114
    functionName: fu_mm_qcdm_device_set_progress
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_mm_qcdm_device_set_progress(FuDevice *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:119,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:119,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:120,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:120,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:121,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:121,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:124,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:124,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:125,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmQcdmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 116
    functionDepth: 4
    functionLinenumber: 116
    functionLinenumberEnd: 126
    functionName: fu_mm_qcdm_device_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qcdm-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_id_full
    - fu_device_set_remove_delay
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    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:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMmQcdmDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 135
    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_close_finish
    - QMI_DEVICE
    - g_clear_error
    - fu_mm_qmi_device_qmi_device_open_attempt
    - g_main_loop_quit
    - g_clear_object
    - g_warn_if_fail
    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_CLIENT_PDC
    - QMI_DEVICE
    - fu_mm_qmi_device_open_abort
    - qmi_device_allocate_client_finish
    - g_main_loop_quit
    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_open_finish
    - QMI_DEVICE
    - qmi_device_allocate_client
    - 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:
    - qmi_device_open
    - g_debug
    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
    - fu_mm_qmi_device_qmi_device_open_attempt
    - g_main_loop_quit
    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:
    - fu_udev_device_get_device_file
    - g_main_loop_new
    - g_main_loop_run
    - FU_MM_QMI_DEVICE
    - qmi_device_new
    - g_file_new_for_path
    - g_propagate_error
    - g_autoptr
    - FU_UDEV_DEVICE
    - g_warn_if_fail
    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:
    - g_clear_object
    - QMI_DEVICE
    - qmi_device_close_finish
    - g_main_loop_quit
    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_close_async
    - g_clear_object
    - QMI_DEVICE
    - qmi_device_release_client_finish
    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_main_loop_new
    - g_set_error_literal
    - g_steal_pointer
    - QMI_CLIENT
    - g_main_loop_run
    - FU_MM_QMI_DEVICE
    - qmi_device_release_client
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qmi_device_close(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_clear_signal_handler
      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:266,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 273
    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_clear_signal_handler
    - 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_clear_handle_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:284,1
    - Dst: g_clear_signal_handler
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:285,1
    - Dst: qmi_indication_pdc_load_config_output_get_indication_result
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:287,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:290,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:300,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:301,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:305,1
    - Dst: qmi_protocol_error_get_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:309,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:310,1
    - Dst: qmi_indication_pdc_load_config_output_get_frame_reset
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:314,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:316,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:320,1
    - Dst: qmi_indication_pdc_load_config_output_get_remaining_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:324,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:327,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:329,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:334,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:335,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:339,1
    - Dst: fu_mm_qmi_device_load_config
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:340,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - client
    - output
    - ctx
    argTypes:
    - QmiClientPdc*
    - QmiIndicationPdcLoadConfigOutput*
    - FuMmQmiDeviceWriteContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 341
    functionName: fu_mm_qmi_device_load_config_indication
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_clear_signal_handler
    - g_debug
    - g_set_error
    - g_set_error_literal
    - g_prefix_error_literal
    - qmi_indication_pdc_load_config_output_get_remaining_size
    - qmi_indication_pdc_load_config_output_get_indication_result
    - g_clear_handle_id
    - g_main_loop_quit
    - fu_mm_qmi_device_load_config
    - qmi_protocol_error_get_string
    - qmi_indication_pdc_load_config_output_get_frame_reset
    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:347,1
    - Dst: qmi_client_pdc_load_config_finish
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:349,1
    - Dst: QMI_CLIENT_PDC
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:349,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:351,1
    - Dst: qmi_message_pdc_load_config_output_get_result
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:355,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:356,1
    - Dst: g_warn_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:362,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:363,1
    - Dst: QMI_CLIENT_PDC
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:363,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:365,1
    - Dst: g_warn_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:369,1
    - Dst: g_timeout_add_seconds
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - qmi_client
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 371
    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
    - g_timeout_add_seconds
    - g_signal_connect
    - qmi_client_pdc_load_config_finish
    - G_CALLBACK
    - qmi_message_pdc_load_config_output_get_result
    - g_main_loop_quit
    - g_autoptr
    - g_warn_if_fail
    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:376,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:377,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:380,1
    - Dst: qmi_message_pdc_load_config_input_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:382,1
    - Dst: qmi_message_pdc_load_config_input_set_token
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:383,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:385,1
    - Dst: g_array_sized_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:391,1
    - Dst: g_array_set_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:392,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:393,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:396,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:397,1
    - Dst: g_critical
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:401,1
    - Dst: qmi_message_pdc_load_config_input_set_config_chunk
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:404,1
    - Dst: qmi_client_pdc_load_config
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuMmQmiDeviceWriteContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 373
    functionDepth: 3
    functionLinenumber: 373
    functionLinenumberEnd: 418
    functionName: fu_mm_qmi_device_load_config
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 1
    functionsReached:
    - qmi_client_pdc_load_config
    - g_critical
    - g_bytes_get_data
    - qmi_message_pdc_load_config_input_set_token
    - g_array_sized_new
    - qmi_message_pdc_load_config_input_set_config_chunk
    - g_bytes_get_size
    - fu_memcpy_safe
    - qmi_message_pdc_load_config_input_new
    - g_autoptr
    - g_array_set_size
    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:426,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:429,1
    - Dst: g_checksum_type_get_length
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:430,1
    - Dst: g_checksum_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:431,1
    - Dst: g_checksum_update
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:432,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:432,1
    - Dst: g_array_sized_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:434,1
    - Dst: g_array_set_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:435,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - blob
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 439
    functionName: fu_mm_qmi_device_get_checksum
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    - g_checksum_update
    - g_array_sized_new
    - g_checksum_new
    - g_checksum_type_get_length
    - g_bytes_get_size
    - g_checksum_get_digest
    - g_autoptr
    - g_array_set_size
    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:444,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:444,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:445,1
    - Dst: fu_mm_qmi_device_get_checksum
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:445,1
    - Dst: fu_mm_qmi_device_load_config
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:458,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:459,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:462,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - self
    - filename
    - blob
    - error
    argTypes:
    - FuMmQmiDevice*
    - gchar*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 441
    functionDepth: 4
    functionLinenumber: 441
    functionLinenumberEnd: 467
    functionName: fu_mm_qmi_device_write
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_main_loop_new
    - g_steal_pointer
    - g_main_loop_run
    - fu_mm_qmi_device_load_config
    - g_propagate_error
    - g_autoptr
    - fu_mm_qmi_device_get_checksum
    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_clear_signal_handler
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:485,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 491
    functionName: fu_mm_qmi_device_activate_config_timeout
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_clear_signal_handler
    - 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_clear_handle_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:500,1
    - Dst: g_clear_signal_handler
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:501,1
    - Dst: qmi_indication_pdc_activate_config_output_get_indication_result
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:503,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:506,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:511,1
    - Dst: qmi_protocol_error_get_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:515,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:516,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:521,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - client
    - output
    - ctx
    argTypes:
    - QmiClientPdc*
    - QmiIndicationPdcActivateConfigOutput*
    - FuMmQmiDeviceActivateContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 523
    functionName: fu_mm_qmi_device_activate_config_indication
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_clear_signal_handler
    - g_debug
    - g_set_error
    - qmi_indication_pdc_activate_config_output_get_indication_result
    - g_clear_handle_id
    - g_main_loop_quit
    - qmi_protocol_error_get_string
    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:529,1
    - Dst: qmi_client_pdc_activate_config_finish
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:532,1
    - Dst: QMI_CLIENT_PDC
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:532,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:541,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:543,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:545,1
    - Dst: qmi_message_pdc_activate_config_output_get_result
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:549,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:550,1
    - Dst: g_warn_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:559,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:561,1
    - Dst: QMI_CLIENT_PDC
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:561,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:563,1
    - Dst: g_warn_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:567,1
    - Dst: g_timeout_add_seconds
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:568,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - qmi_client
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 569
    functionName: fu_mm_qmi_device_activate_config_ready
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - QMI_CLIENT_PDC
    - qmi_client_pdc_activate_config_finish
    - g_signal_connect
    - g_debug
    - g_timeout_add_seconds
    - g_clear_error
    - G_CALLBACK
    - qmi_message_pdc_activate_config_output_get_result
    - g_main_loop_quit
    - g_autoptr
    - g_warn_if_fail
    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:574,1
    - Dst: qmi_message_pdc_activate_config_input_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:576,1
    - Dst: qmi_message_pdc_activate_config_input_set_config_type
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:577,1
    - Dst: qmi_message_pdc_activate_config_input_set_token
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:580,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:582,1
    - Dst: qmi_client_pdc_activate_config
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuMmQmiDeviceActivateContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 589
    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_set_config_type
    - qmi_client_pdc_activate_config
    - g_autoptr
    - qmi_message_pdc_activate_config_input_new
    - qmi_message_pdc_activate_config_input_set_token
    linkageType: ''
    returnType: void
    signature: void fu_mm_qmi_device_activate_config(FuMmQmiDeviceActivateContext
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_clear_signal_handler
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:597,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:599,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 606
    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_clear_signal_handler
    - 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_clear_handle_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:615,1
    - Dst: g_clear_signal_handler
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:616,1
    - Dst: qmi_indication_pdc_set_selected_config_output_get_indication_result
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:618,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:621,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:626,1
    - Dst: qmi_protocol_error_get_string
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:630,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:631,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:635,1
    - Dst: fu_mm_qmi_device_activate_config
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:638,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - client
    - output
    - ctx
    argTypes:
    - QmiClientPdc*
    - QmiIndicationPdcSetSelectedConfigOutput*
    - FuMmQmiDeviceActivateContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 639
    functionName: fu_mm_qmi_device_set_selected_config_indication
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - qmi_indication_pdc_set_selected_config_output_get_indication_result
    - fu_mm_qmi_device_activate_config
    - g_clear_signal_handler
    - g_debug
    - g_set_error
    - g_clear_handle_id
    - g_main_loop_quit
    - qmi_protocol_error_get_string
    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:647,1
    - Dst: qmi_client_pdc_set_selected_config_finish
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:650,1
    - Dst: QMI_CLIENT_PDC
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:650,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:652,1
    - Dst: qmi_message_pdc_set_selected_config_output_get_result
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:656,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:657,1
    - Dst: g_warn_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:663,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:665,1
    - Dst: QMI_CLIENT_PDC
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:665,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:667,1
    - Dst: g_warn_if_fail
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:671,1
    - Dst: g_timeout_add_seconds
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - qmi_client
    - res
    - user_data
    argTypes:
    - GObject*
    - GAsyncResult*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 674
    functionName: fu_mm_qmi_device_set_selected_config_ready
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - QMI_CLIENT_PDC
    - qmi_message_pdc_set_selected_config_output_get_result
    - g_signal_connect
    - g_timeout_add_seconds
    - qmi_client_pdc_set_selected_config_finish
    - G_CALLBACK
    - g_main_loop_quit
    - g_autoptr
    - g_warn_if_fail
    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:679,1
    - Dst: qmi_message_pdc_set_selected_config_input_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:681,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:682,1
    - Dst: qmi_message_pdc_set_selected_config_input_set_token
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:687,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:689,1
    - Dst: qmi_client_pdc_set_selected_config
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuMmQmiDeviceActivateContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 696
    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
    - qmi_message_pdc_set_selected_config_input_set_type_with_id_v2
    - qmi_message_pdc_set_selected_config_input_new
    - qmi_client_pdc_set_selected_config
    - g_autoptr
    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:701,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:701,1
    - Dst: fu_mm_qmi_device_set_selected_config
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:712,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:713,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMmQmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 721
    functionName: fu_mm_qmi_device_activate
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_main_loop_new
    - g_main_loop_run
    - fu_mm_qmi_device_set_selected_config
    - g_propagate_error
    - g_autoptr
    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:726,1
    - Dst: fu_mm_qmi_device_activate
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 732
    functionName: fu_mm_qmi_device_attach
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_QMI_DEVICE
    - fu_mm_qmi_device_activate
    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: 739
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 739
    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:744,1
    - Dst: fu_mm_device_set_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:745,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 741
    functionDepth: 4
    functionLinenumber: 741
    functionLinenumberEnd: 746
    functionName: fu_mm_qmi_device_probe
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_QMI_DEVICE
    - FU_MM_DEVICE
    - fu_mm_device_set_device_file
    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:758,1
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:759,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:760,1
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - file_info
    argTypes:
    - FuMmQmiDeviceFileInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 762
    functionName: fu_mm_qmi_device_file_info_free
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_bytes_unref
    - g_free
    - g_clear_pointer
    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:767,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:781,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:782,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:784,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:787,1
    - Dst: g_strstr_len
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - version
    - filename
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 789
    functionName: fu_mm_qmi_device_should_be_active
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_strsplit
    - g_strv_length
    - g_strdup_printf
    - g_strstr_len
    - g_auto
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qmi_device_should_be_active(const gchar *version, const
      gchar *filename)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_QMI_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:798,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:799,1
    - Dst: fu_zip_firmware_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:799,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:800,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:801,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:802,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:803,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:804,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:808,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:811,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:819,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:821,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:822,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:827,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:827,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:830,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:834,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:835,1
    - Dst: fu_mm_qmi_device_should_be_active
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:838,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:838,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:838,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:840,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:844,1
    - Dst: fu_mm_qmi_device_write
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:845,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:850,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:864,1
    - Dst: g_array_ref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:865,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:869,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:869,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 791
    functionDepth: 5
    functionLinenumber: 791
    functionLinenumberEnd: 875
    functionName: fu_mm_qmi_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - g_str_has_suffix
    - fu_zip_firmware_new
    - g_ptr_array_index
    - fu_firmware_get_id
    - fu_mm_qmi_device_write
    - g_new0
    - fu_firmware_get_bytes
    - g_array_ref
    - fu_firmware_get_images
    - g_str_has_prefix
    - g_ptr_array_new_with_free_func
    - g_propagate_error
    - FU_DEVICE
    - fu_mm_qmi_device_should_be_active
    - g_strdup
    - fu_firmware_get_stream
    - fu_firmware_parse_stream
    - g_steal_pointer
    - g_ptr_array_add
    - g_prefix_error
    - fu_device_get_version
    - FU_MM_QMI_DEVICE
    - g_autoptr
    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:883,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:884,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 886
    functionName: fu_mm_qmi_device_prepare
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_QMI_DEVICE
    - FU_MM_DEVICE
    - fu_mm_device_set_inhibited
    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:894,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:895,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 897
    functionName: fu_mm_qmi_device_cleanup
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_QMI_DEVICE
    - FU_MM_DEVICE
    - fu_mm_device_set_inhibited
    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:902,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:903,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:904,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:905,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:906,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:907,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 899
    functionDepth: 3
    functionLinenumber: 899
    functionLinenumberEnd: 909
    functionName: fu_mm_qmi_device_set_progress
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_mm_qmi_device_set_progress(FuDevice *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:914,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmQmiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 915
    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:920,1
    - Dst: g_array_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:923,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:925,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 926
    functionName: fu_mm_qmi_device_finalize
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_QMI_DEVICE
    - g_array_unref
    - 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:931,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qmi-device.c:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMmQmiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 943
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: fu_mm_qdu_mbim_device_detach
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qdu_mbim_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:29,1
    - Dst: mbim_message_qdu_file_write_set_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:31,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:31,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:32,1
    - Dst: fu_mm_mbim_device_command_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:35,1
    - Dst: FU_MM_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:35,1
    - Dst: mbim_message_qdu_file_write_response_parse
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:38,1
    - Dst: fu_mm_mbim_device_error_convert
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:39,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuMmQduMbimDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 25
    functionDepth: 5
    functionLinenumber: 25
    functionLinenumberEnd: 46
    functionName: fu_mm_qdu_mbim_device_write_chunk
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c
    functionUses: 0
    functionsReached:
    - mbim_message_qdu_file_write_set_new
    - fu_chunk_get_data_sz
    - fu_mm_mbim_device_error_convert
    - mbim_message_qdu_file_write_response_parse
    - g_prefix_error_literal
    - fu_mm_mbim_device_command_sync
    - fu_chunk_get_data
    - g_autoptr
    - FU_MM_MBIM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qdu_mbim_device_write_chunk(FuMmQduMbimDevice *self,
      FuChunk *chk, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:54,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:55,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:55,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:56,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:57,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:58,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:60,1
    - Dst: fu_mm_qdu_mbim_device_write_chunk
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:63,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuMmQduMbimDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 70
    functionName: fu_mm_qdu_mbim_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_qdu_mbim_device_write_chunk
    - fu_chunk_array_index
    - fu_progress_set_steps
    - g_prefix_error_literal
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_qdu_mbim_device_write_chunks(FuMmQduMbimDevice *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/modem-manager/fu-mm-qdu-mbim-device.c:80,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:84,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:87,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:88,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:89,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:90,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:91,1
    - Dst: mbim_message_qdu_update_session_set_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:94,1
    - Dst: fu_mm_mbim_device_command_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:97,1
    - Dst: FU_MM_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:97,1
    - Dst: mbim_message_qdu_update_session_response_parse
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:103,1
    - Dst: fu_mm_mbim_device_error_convert
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:111,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:112,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:115,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:116,1
    - Dst: mbim_message_qdu_file_open_set_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:119,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:120,1
    - Dst: fu_mm_mbim_device_command_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:122,1
    - Dst: FU_MM_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:122,1
    - Dst: mbim_message_qdu_file_open_response_parse
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:129,1
    - Dst: fu_mm_mbim_device_error_convert
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:133,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:134,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:137,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:140,1
    - Dst: fu_mm_qdu_mbim_device_write_chunks
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:144,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:146,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 5
    argNames:
    - self
    - filename
    - blob
    - progress
    - error
    argTypes:
    - FuMmQduMbimDevice*
    - gchar*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 72
    functionDepth: 7
    functionLinenumber: 72
    functionLinenumberEnd: 153
    functionName: fu_mm_qdu_mbim_device_write
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c
    functionUses: 0
    functionsReached:
    - mbim_message_qdu_file_open_set_new
    - fu_mm_qdu_mbim_device_write_chunks
    - g_debug
    - fu_progress_add_step
    - fu_chunk_array_new_from_bytes
    - fu_mm_mbim_device_error_convert
    - fu_progress_add_flag
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_mm_mbim_device_command_sync
    - mbim_message_qdu_update_session_response_parse
    - mbim_message_qdu_file_open_response_parse
    - mbim_message_qdu_update_session_set_new
    - FU_MM_MBIM_DEVICE
    - g_bytes_get_size
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_qdu_mbim_device_write(FuMmQduMbimDevice *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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:159,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:160,1
    - Dst: mbim_message_device_caps_query_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:162,1
    - Dst: fu_mm_mbim_device_command_sync
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:164,1
    - Dst: FU_MM_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:164,1
    - Dst: mbim_message_device_caps_response_parse
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:167,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:181,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMmQduMbimDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 155
    functionDepth: 5
    functionLinenumber: 155
    functionLinenumberEnd: 188
    functionName: fu_mm_qdu_mbim_device_ensure_firmware_version
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - mbim_message_device_caps_response_parse
    - mbim_message_device_caps_query_new
    - fu_mm_mbim_device_command_sync
    - g_autoptr
    - FU_MM_MBIM_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qdu_mbim_device_ensure_firmware_version(FuMmQduMbimDevice
      *self, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_QDU_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:197,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:202,1
    - Dst: fu_zip_firmware_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:202,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:203,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:204,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:205,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:206,1
    - Dst: xb_builder_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:206,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:207,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:207,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:208,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:211,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:214,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:222,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:225,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:227,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:228,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:232,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:235,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:236,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:237,1
    - Dst: g_compute_checksum_for_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:240,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:241,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:242,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:249,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:251,1
    - Dst: fu_mm_qdu_mbim_device_write
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:252,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:256,1
    - Dst: fu_mm_qdu_mbim_device_ensure_firmware_version
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:257,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 190
    functionDepth: 8
    functionLinenumber: 190
    functionLinenumberEnd: 262
    functionName: fu_mm_qdu_mbim_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c
    functionUses: 0
    functionsReached:
    - xb_builder_compile
    - xb_builder_source_new
    - xb_builder_source_load_bytes
    - fu_zip_firmware_new
    - xb_node_get_attr
    - FU_MM_QDU_MBIM_DEVICE
    - g_debug
    - fu_firmware_get_image_by_id_bytes
    - xb_builder_import_source
    - fu_mm_qdu_mbim_device_ensure_firmware_version
    - fu_mm_qdu_mbim_device_write
    - xb_silo_query_first
    - fu_progress_set_status
    - g_strcmp0
    - fu_firmware_get_stream
    - fu_firmware_parse_stream
    - g_set_error
    - g_autoptr
    - g_compute_checksum_for_bytes
    - xb_builder_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_qdu_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_QDU_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:267,1
    - Dst: fu_mm_device_set_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:268,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 264
    functionDepth: 4
    functionLinenumber: 264
    functionLinenumberEnd: 269
    functionName: fu_mm_qdu_mbim_device_probe
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_QDU_MBIM_DEVICE
    - FU_MM_DEVICE
    - fu_mm_device_set_device_file
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_qdu_mbim_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_QDU_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:277,1
    - Dst: fu_mm_device_set_autosuspend_delay
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:278,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:278,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:280,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 282
    functionName: fu_mm_qdu_mbim_device_prepare
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_QDU_MBIM_DEVICE
    - fu_mm_device_set_autosuspend_delay
    - FU_MM_DEVICE
    - fu_mm_device_set_inhibited
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_qdu_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_QDU_MBIM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:290,1
    - Dst: fu_mm_device_set_autosuspend_delay
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:291,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:291,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:293,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 284
    functionDepth: 4
    functionLinenumber: 284
    functionLinenumberEnd: 295
    functionName: fu_mm_qdu_mbim_device_cleanup
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_QDU_MBIM_DEVICE
    - fu_mm_device_set_autosuspend_delay
    - FU_MM_DEVICE
    - fu_mm_device_set_inhibited
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mm_qdu_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-qdu-mbim-device.c:300,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:301,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:302,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:303,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:304,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:305,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 307
    functionName: fu_mm_qdu_mbim_device_set_progress
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_mm_qdu_mbim_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:312,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmQduMbimDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: fu_mm_qdu_mbim_device_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_mm_qdu_mbim_device_init(FuMmQduMbimDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMmQduMbimDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 325
    functionName: fu_mm_qdu_mbim_device_class_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mm_qdu_mbim_device_class_init(FuMmQduMbimDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DFOTA_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:26,1
    - Dst: fu_mm_device_set_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:27,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: fu_mm_dfota_device_probe
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - FU_MM_DFOTA_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:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:34,1
    - Dst: fu_mm_device_at_cmd
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:36,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:36,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:37,1
    - Dst: fu_mm_device_at_cmd
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:41,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:41,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:45,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:49,1
    - Dst: fu_mm_device_at_cmd
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:50,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:50,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 60
    functionName: fu_mm_dfota_device_setup
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_mm_device_at_cmd
    - FU_MM_DEVICE
    - g_prefix_error_literal
    - FU_MM_DFOTA_DEVICE
    - g_autoptr
    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: 77
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 77
    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:82,1
    - 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_regex_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:90,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:91,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:91,1
    - Dst: fu_bytes_pad
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:95,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:95,1
    - Dst: fu_udev_device_write_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:97,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:97,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:102,1
    - Dst: fu_udev_device_read_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:108,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:108,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:114,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:118,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:120,1
    - Dst: g_regex_match_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:128,1
    - Dst: g_strndup
      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: 79
    functionDepth: 6
    functionLinenumber: 79
    functionLinenumberEnd: 139
    functionName: fu_mm_dfota_device_upload_chunk
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - fu_udev_device_read_bytes
    - g_set_error
    - g_bytes_get_data
    - g_regex_new
    - g_regex_match_full
    - g_prefix_error_literal
    - fu_udev_device_write_bytes
    - g_bytes_get_size
    - fu_chunk_get_bytes
    - g_autoptr
    - fu_bytes_pad
    - FU_UDEV_DEVICE
    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:152,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:153,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:154,1
    - Dst: g_regex_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:157,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:159,1
    - Dst: fu_udev_device_read_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:163,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:163,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:169,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:172,1
    - Dst: g_strstr_len
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:174,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:175,1
    - Dst: g_regex_match_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:181,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:182,1
    - Dst: g_match_info_matches
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:188,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:189,1
    - Dst: g_match_info_fetch
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:197,1
    - Dst: g_match_info_fetch
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:198,1
    - Dst: g_debug
      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:200,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:204,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 4
    argNames:
    - self
    - checksum
    - size
    - error
    argTypes:
    - FuMmDfotaDevice*
    - guint16*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 141
    functionDepth: 6
    functionLinenumber: 141
    functionLinenumberEnd: 211
    functionName: fu_mm_dfota_device_parse_upload_result
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_read_bytes
    - g_debug
    - g_bytes_get_data
    - g_regex_new
    - g_set_error_literal
    - g_regex_match_full
    - g_prefix_error_literal
    - fu_strtoull
    - g_strstr_len
    - g_match_info_fetch
    - g_match_info_matches
    - FU_UDEV_DEVICE
    - g_autoptr
    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:220,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:222,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:225,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:226,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:226,1
    - Dst: fu_mm_dfota_device_upload_chunk
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:229,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:230,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:234,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:234,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:238,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:240,1
    - Dst: fu_mm_dfota_device_parse_upload_result
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:245,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:248,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:257,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuMmDfotaDevice*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 213
    functionDepth: 7
    functionLinenumber: 213
    functionLinenumberEnd: 268
    functionName: fu_mm_dfota_device_upload_stream
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - fu_input_stream_size
    - fu_chunk_array_index
    - g_prefix_error
    - fu_mm_dfota_device_upload_chunk
    - fu_input_stream_chunkify
    - fu_chunk_array_new_from_stream
    - fu_mm_dfota_device_parse_upload_result
    - fu_chunk_array_length
    - g_autoptr
    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:277,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:278,1
    - Dst: g_regex_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:284,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:286,1
    - Dst: g_regex_match
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:290,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:296,1
    - Dst: g_match_info_matches
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:299,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:300,1
    - Dst: g_match_info_fetch
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:307,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:309,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:310,1
    - Dst: g_match_info_get_match_count
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:315,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:316,1
    - Dst: g_match_info_fetch
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:324,1
    - Dst: g_ascii_string_to_unsigned
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:325,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:333,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:334,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:337,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:339,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:347,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:352,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: 358
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 358
    functionName: fu_mm_dfota_device_parse_fota_response
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_ascii_string_to_unsigned
    - fu_progress_set_percentage
    - g_debug
    - g_set_error
    - g_regex_match
    - g_regex_new
    - g_set_error_literal
    - g_prefix_error_literal
    - g_match_info_fetch
    - g_match_info_matches
    - g_autoptr
    - g_match_info_get_match_count
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_DFOTA_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:363,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:364,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:367,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:378,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:380,1
    - Dst: g_strstrip
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:383,1
    - Dst: strlen
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:384,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:385,1
    - Dst: fu_mm_dfota_device_parse_fota_response
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:390,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 360
    functionDepth: 6
    functionLinenumber: 360
    functionLinenumberEnd: 399
    functionName: fu_mm_dfota_device_attach_cb
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_dfota_device_parse_fota_response
    - FU_PROGRESS
    - fu_udev_device_read_bytes
    - fu_strsafe_bytes
    - g_set_error_literal
    - g_strstrip
    - strlen
    - FU_MM_DFOTA_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_dfota_device_attach_cb(FuDevice *device, gpointer user_data,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:404,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 401
    functionDepth: 6
    functionLinenumber: 401
    functionLinenumberEnd: 415
    functionName: fu_mm_dfota_device_attach
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_retry_full
    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:424,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:426,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:429,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:434,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:436,1
    - Dst: fu_mm_device_at_cmd
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:437,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:437,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:438,1
    - Dst: fu_mm_dfota_device_upload_stream
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:441,1
    - Dst: fu_mm_device_at_cmd
      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
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:447,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:450,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: 454
      start: 417
    functionDepth: 8
    functionLinenumber: 417
    functionLinenumberEnd: 454
    functionName: fu_mm_dfota_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_firmware_get_stream
    - fu_mm_device_at_cmd
    - fu_mm_dfota_device_upload_stream
    - FU_MM_DEVICE
    - g_prefix_error_literal
    - g_strdup_printf
    - fu_firmware_get_size
    - FU_MM_DFOTA_DEVICE
    - g_autoptr
    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:462,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:463,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 465
    functionName: fu_mm_dfota_device_prepare
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - fu_mm_device_set_inhibited
    - FU_MM_DFOTA_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:473,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:474,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 476
    functionName: fu_mm_dfota_device_cleanup
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - fu_mm_device_set_inhibited
    - FU_MM_DFOTA_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:481,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:482,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:483,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:484,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:485,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:486,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 488
    functionName: fu_mm_dfota_device_set_progress
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_mm_dfota_device_set_progress(FuDevice *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:493,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:493,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:494,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-dfota-device.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmDfotaDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 495
    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
    - fu_device_set_remove_delay
    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:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMmDfotaDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 508
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MHI_QCDM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:25,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:31,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:38,1
    - Dst: fu_kernel_search_path_locker_get_path
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:46,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:47,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:48,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:50,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 55
    functionName: fu_mm_mhi_qcdm_device_detach
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c
    functionUses: 0
    functionsReached:
    - fu_kernel_search_path_locker_get_path
    - g_set_error_literal
    - fu_bytes_set_contents
    - FU_MM_MHI_QCDM_DEVICE
    - g_build_filename
    - FU_DEVICE_CLASS
    - fu_path_mkdir_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_mhi_qcdm_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:60,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:60,1
    - Dst: fu_context_get_path_store
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:61,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:63,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:66,1
    - Dst: g_mkdir_with_parents
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:74,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:75,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:80,1
    - Dst: fu_kernel_search_path_locker_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:83,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMmMhiQcdmDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 87
    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:
    - fu_context_build_filename
    - g_set_error
    - fu_kernel_search_path_locker_new
    - g_steal_pointer
    - fu_device_get_context
    - fu_context_get_path_store
    - FU_DEVICE
    - g_mkdir_with_parents
    - fwupd_strerror
    - g_autoptr
    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:95,1
    - Dst: fu_mm_mhi_qcdm_device_search_path_locker_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 105
    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
    - fu_mm_mhi_qcdm_device_search_path_locker_new
    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:113,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:116,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 123
    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
    - g_clear_pointer
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MHI_QCDM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:132,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:133,1
    - Dst: fu_zip_firmware_new
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:133,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:136,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:142,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 125
    functionDepth: 5
    functionLinenumber: 125
    functionLinenumberEnd: 150
    functionName: fu_mm_mhi_qcdm_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_parse_stream
    - fu_firmware_get_image_by_id_bytes
    - g_steal_pointer
    - fu_zip_firmware_new
    - FU_MM_MHI_QCDM_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_mm_mhi_qcdm_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_MM_MHI_QCDM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:158,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:160,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:161,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 171
    functionName: fu_mm_mhi_qcdm_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_MHI_QCDM_DEVICE
    - g_set_error_literal
    - g_strcmp0
    - 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:176,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:177,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:178,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:179,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:180,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:181,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 183
    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_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_mm_mhi_qcdm_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:188,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:188,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:189,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:189,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:190,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmMhiQcdmDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 191
    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
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    linkageType: ''
    returnType: void
    signature: void fu_mm_mhi_qcdm_device_init(FuMmMhiQcdmDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MM_MHI_QCDM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:196,1
    - Dst: g_free
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:197,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:199,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 201
    functionName: fu_mm_mhi_qcdm_device_finalize
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_MHI_QCDM_DEVICE
    - g_bytes_unref
    - g_free
    - 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:206,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-mhi-qcdm-device.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMmMhiQcdmDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 215
    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_literal
      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_device_add_flag
    - fu_mm_device_at_cmd
    - FU_MM_DEVICE
    - g_prefix_error_literal
    - FU_MM_FIREHOSE_DEVICE
    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: 4
    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
    - fu_mm_device_set_device_file
    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_FIREHOSE_DEVICE
    - FU_MM_DEVICE
    - fu_mm_device_set_inhibited
    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_FIREHOSE_DEVICE
    - FU_MM_DEVICE
    - fu_mm_device_set_inhibited
    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:
    - device
    - 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_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_mm_firehose_device_set_progress(FuDevice *device, 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_UDEV_DEVICE
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    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_literal
      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: 4
    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_FDL_DEVICE
    - fu_mm_device_at_cmd
    - fu_device_sleep
    - g_prefix_error_literal
    - FU_MM_DEVICE
    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: 5
    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_MM_FDL_DEVICE
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - fu_udev_device_read
    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: 6
    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
    - fu_udev_device_write_bytes
    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: 5
    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:
    - FU_UDEV_DEVICE
    - fu_udev_device_read
    - g_set_error_literal
    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_object_unref
    - g_free
    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: 6
    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: 7
    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_MM_FDL_DEVICE
    - g_set_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - fu_mm_fdl_device_write_chunk
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_fdl_device_write_chunk_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 11
    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: fu_bytes_new_offset
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:231,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: fu_size_checked_inc
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:242,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:245,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:248,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:251,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:251,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:257,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:261,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:263,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:267,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: 278
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 278
    functionName: fu_mm_fdl_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_debug
    - fu_firmware_get_bytes
    - FU_MM_FDL_DEVICE
    - g_bytes_get_data
    - g_set_error
    - g_prefix_error
    - fu_device_retry_full
    - FU_DEVICE
    - fu_firmware_get_size
    - g_bytes_get_size
    - fu_bytes_new_offset
    - fu_size_checked_inc
    - fu_progress_set_percentage_full
    - g_autoptr
    - fu_memread_uint16_safe
    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:283,1
    - Dst: fu_mm_device_set_device_file
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:284,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 280
    functionDepth: 4
    functionLinenumber: 280
    functionLinenumberEnd: 285
    functionName: fu_mm_fdl_device_probe
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_device_set_device_file
    - FU_MM_DEVICE
    - 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:291,1
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:291,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:291,1
    - Dst: tcsetattr
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:295,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:296,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMmFdlDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 310
    functionName: fu_mm_fdl_device_ensure_io_flags
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_io_channel_unix_get_fd
    - fu_udev_device_get_io_channel
    - FU_UDEV_DEVICE
    - tcsetattr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mm_fdl_device_ensure_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:315,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:318,1
    - Dst: fu_mm_fdl_device_ensure_io_flags
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 321
    functionName: fu_mm_fdl_device_open
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - fu_mm_fdl_device_ensure_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:329,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:330,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 332
    functionName: fu_mm_fdl_device_prepare
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - fu_mm_device_set_inhibited
    - 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:340,1
    - Dst: fu_mm_device_set_inhibited
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:341,1
    - Dst: FU_MM_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: fu_mm_fdl_device_cleanup
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - FU_MM_DEVICE
    - fu_mm_device_set_inhibited
    - 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:348,1
    - Dst: fu_progress_add_flag
      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
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:351,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:352,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:353,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 355
    functionName: fu_mm_fdl_device_set_progress
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_mm_fdl_device_set_progress(FuDevice *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:360,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:360,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:361,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:361,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:362,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMmFdlDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 363
    functionName: fu_mm_fdl_device_init
    functionSourceFile: /src/fwupd/plugins/modem-manager/fu-mm-fdl-device.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_DEVICE
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    - FU_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:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMmFdlDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 376
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:28,1
    - Dst: fu_struct_uf2_extension_parse
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:30,1
    - Dst: fu_struct_uf2_extension_get_size
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:33,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:37,1
    - Dst: fu_uf2_firmware_tag_to_string
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:42,1
    - Dst: fu_struct_uf2_extension_get_tag
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:46,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:51,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:58,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:58,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:61,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:68,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:68,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:70,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:71,1
    - Dst: fu_uf2_firmware_tag_to_string
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:73,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:78,1
    - Dst: fu_common_align_up
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:79,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - offset
    - error
    argTypes:
    - FuUf2Firmware*
    - guint8*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 86
    functionName: fu_uf2_firmware_parse_extensions
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
    functionUses: 0
    functionsReached:
    - fu_uf2_firmware_tag_to_string
    - fu_struct_uf2_extension_get_size
    - fu_struct_uf2_extension_parse
    - fu_firmware_set_id
    - fu_memstrsafe
    - g_set_error
    - fu_firmware_set_version
    - g_getenv
    - FU_FIRMWARE
    - fu_struct_uf2_extension_get_tag
    - g_warning
    - fu_common_align_up
    - fu_size_checked_inc
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uf2_firmware_parse_extensions(FuUf2Firmware *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
      GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:91,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:92,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:95,1
    - Dst: fu_struct_uf2_parse
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:98,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:98,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:99,1
    - Dst: fu_struct_uf2_get_flags
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:104,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:106,1
    - Dst: fu_struct_uf2_get_payload_size
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:112,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:114,1
    - Dst: fu_struct_uf2_get_block_no
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:121,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:121,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:122,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:126,1
    - Dst: fu_struct_uf2_get_block_no
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:127,1
    - Dst: fu_struct_uf2_get_num_blocks
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:130,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:131,1
    - Dst: fu_struct_uf2_get_family_id
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:138,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:139,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:148,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:149,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:149,1
    - Dst: fu_struct_uf2_get_target_addr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:149,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:150,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:150,1
    - Dst: fu_struct_uf2_get_family_id
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:150,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:154,1
    - Dst: fu_struct_uf2_get_data
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:154,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:157,1
    - Dst: fu_uf2_firmware_parse_extensions
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:165,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 4
    argNames:
    - self
    - chk
    - tmp
    - error
    argTypes:
    - FuUf2Firmware*
    - FuChunk*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 175
    functionName: fu_uf2_firmware_parse_chunk
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_idx
    - fu_struct_uf2_parse
    - fu_chunk_get_data_sz
    - fu_struct_uf2_get_payload_size
    - fu_uf2_firmware_parse_extensions
    - fu_firmware_set_addr
    - g_set_error_literal
    - fu_struct_uf2_get_flags
    - fu_struct_uf2_get_num_blocks
    - FU_FIRMWARE
    - fu_struct_uf2_get_target_addr
    - fu_firmware_set_idx
    - fu_struct_uf2_get_block_no
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_struct_uf2_get_family_id
    - g_set_error
    - fu_struct_uf2_get_data
    - g_autoptr
    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:183,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:184,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:184,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:185,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:186,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:189,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:197,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:200,1
    - Dst: fu_uf2_firmware_parse_chunk
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:203,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:208,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 177
    functionDepth: 5
    functionLinenumber: 177
    functionLinenumberEnd: 211
    functionName: fu_uf2_firmware_parse
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
    functionUses: 0
    functionsReached:
    - fu_uf2_firmware_parse_chunk
    - g_bytes_new
    - fu_chunk_array_index
    - FU_UF2_FIRMWARE
    - fu_firmware_set_bytes
    - g_byte_array_new
    - fu_chunk_array_new_from_stream
    - fu_chunk_array_length
    - g_autoptr
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:216,1
    - Dst: fu_struct_uf2_extension_new
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:216,1
    - Dst: fu_struct_uf2_extension_set_tag
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:217,1
    - Dst: fu_struct_uf2_extension_set_size
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:218,1
    - Dst: strlen
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:218,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:219,1
    - Dst: strlen
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:219,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:220,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - tag
    - str
    argTypes:
    - FuUf2FirmwareTag
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 222
    functionName: fu_uf2_firmware_build_utf8_extension
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_uf2_extension_set_size
    - fu_struct_uf2_extension_set_tag
    - fu_byte_array_align_up
    - g_steal_pointer
    - strlen
    - g_byte_array_append
    - g_autoptr
    - fu_struct_uf2_extension_new
    linkageType: ''
    returnType: FuStructUf2Extension
    signature: 'FuStructUf2Extension *

      fu_uf2_firmware_build_utf8_extension(FuUf2FirmwareTag tag, const gchar *str)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:227,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:228,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:228,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:230,1
    - Dst: fu_struct_uf2_new
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:230,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:231,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:232,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:235,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:235,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:239,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:239,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:240,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:240,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:241,1
    - Dst: fu_uf2_firmware_build_utf8_extension
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:242,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:244,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:244,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:246,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:246,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:247,1
    - Dst: fu_uf2_firmware_build_utf8_extension
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:248,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:250,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:250,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:253,1
    - Dst: fu_struct_uf2_extension_new
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:253,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:259,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:259,1
    - Dst: fu_struct_uf2_set_flags
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:262,1
    - Dst: fu_struct_uf2_set_target_addr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:263,1
    - Dst: fu_struct_uf2_set_payload_size
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:264,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:264,1
    - Dst: fu_struct_uf2_set_block_no
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:265,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:265,1
    - Dst: fu_struct_uf2_set_num_blocks
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:266,1
    - Dst: fu_struct_uf2_set_family_id
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:267,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:267,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:267,1
    - Dst: fu_struct_uf2_set_data
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:268,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:268,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:268,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:273,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:274,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:287,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - self
    - chk
    - chk_len
    - error
    argTypes:
    - FuUf2Firmware*
    - FuChunk*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 288
    functionName: fu_uf2_firmware_write_chunk
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_idx
    - fu_struct_uf2_set_payload_size
    - fu_chunk_get_data_sz
    - fu_struct_uf2_set_num_blocks
    - fu_struct_uf2_set_flags
    - fu_uf2_firmware_build_utf8_extension
    - fu_struct_uf2_extension_new
    - g_ptr_array_index
    - fu_struct_uf2_set_family_id
    - fu_firmware_get_id
    - fu_struct_uf2_new
    - fu_struct_uf2_set_block_no
    - g_ptr_array_new_with_free_func
    - fu_firmware_get_idx
    - FU_FIRMWARE
    - fu_struct_uf2_set_target_addr
    - fu_chunk_get_data
    - g_steal_pointer
    - g_ptr_array_add
    - fu_firmware_get_addr
    - fu_struct_uf2_set_data
    - fu_memcpy_safe
    - fu_firmware_get_version
    - g_autoptr
    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:293,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:294,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:294,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:295,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:296,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:299,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:304,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:305,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:311,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:312,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:313,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:316,1
    - Dst: fu_uf2_firmware_write_chunk
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:319,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:319,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:322,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:326,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 290
    functionDepth: 4
    functionLinenumber: 290
    functionLinenumberEnd: 327
    functionName: fu_uf2_firmware_write
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_chunk_array_index
    - g_steal_pointer
    - FU_UF2_FIRMWARE
    - fu_firmware_get_addr
    - g_byte_array_new
    - fu_chunk_array_new_from_stream
    - g_byte_array_append
    - fu_uf2_firmware_write_chunk
    - fu_chunk_array_length
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_uf2_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:332,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUf2Firmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: fu_uf2_firmware_init
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUf2FirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 341
    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:346,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uf2/fu-uf2-firmware.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 347
    functionName: fu_uf2_firmware_new
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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:16,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:18,1
    - Dst: fu_firmware_roundtrip_from_filename
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:19,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:23,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 11
    functionDepth: 7
    functionLinenumber: 11
    functionLinenumberEnd: 25
    functionName: fu_uf2_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/uf2/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - fu_firmware_roundtrip_from_filename
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    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:30,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:31,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:32,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:33,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/uf2/fu-self-test.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: main
    functionSourceFile: /src/fwupd/plugins/uf2/fu-self-test.c
    functionUses: 4
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_type_ensure
    - 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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uf2/fu-uf2-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 34
    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_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_device_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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUf2PluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    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: 4
    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
    - fu_firmware_parse_stream
    - g_set_error
    - g_steal_pointer
    - fu_firmware_new
    - FU_UF2_DEVICE
    - g_autoptr
    - fu_firmware_get_idx
    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_DEVICE
      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_DEVICE
      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_DEVICE
      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
      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
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - self
    - fw
    - error
    argTypes:
    - FuUf2Device*
    - 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_device_add_flag
    - fu_device_set_version
    - fu_uf2_firmware_new
    - fu_firmware_get_bytes
    - fu_device_add_instance_u32
    - FU_DEVICE
    - fu_firmware_parse_bytes
    - fu_device_build_instance_id_full
    - g_compute_checksum_for_bytes
    - fu_device_add_checksum
    - fu_firmware_get_version
    - g_autoptr
    - fu_firmware_get_idx
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uf2_device_probe_current_fw(FuUf2Device *self, 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:
    - fu_block_partition_get_mount_point
    - FU_BLOCK_PARTITION
    - g_build_filename
    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_uf2_device_get_full_path
    - fu_device_add_flag
    - g_debug
    - fu_firmware_get_stream
    - fu_device_has_private_flag
    - fu_device_set_contents
    - FU_UF2_DEVICE
    - g_autoptr
    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: 5
    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_firmware_parse_bytes
    - fu_device_dump_firmware
    - g_autoptr
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_uf2_device_read_firmware(FuDevice *device, FuProgress *progress, GError **error)'
  - BBCount: 3
    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: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:169,1
    - Dst: fu_volume_new_by_device
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:172,1
    - Dst: fu_volume_is_mounted
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:177,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:178,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:183,1
    - Dst: fu_volume_mount
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUf2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 185
    functionName: fu_uf2_device_volume_mount
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_device_file
    - fu_volume_new_by_device
    - g_debug
    - fu_volume_is_mounted
    - g_steal_pointer
    - fu_volume_mount
    - FU_UDEV_DEVICE
    - g_autoptr
    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:190,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:190,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:191,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:194,1
    - Dst: fu_volume_new_by_device
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:202,1
    - Dst: fu_volume_is_mounted
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:205,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 215
    functionName: fu_uf2_device_check_volume_mounted_cb
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_device_file
    - fu_volume_new_by_device
    - fu_volume_is_mounted
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - g_autoptr
    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:220,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:221,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:224,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:228,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:233,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:239,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:240,1
    - Dst: fu_uf2_device_volume_mount
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:242,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:245,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:245,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 252
    functionName: fu_uf2_device_open
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_device_retry_full
    - fu_uf2_device_volume_mount
    - fu_device_has_flag
    - g_error_matches
    - FU_UF2_DEVICE
    - g_propagate_error
    - g_autoptr
    - FU_DEVICE_CLASS
    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:257,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:260,1
    - Dst: fu_volume_unmount
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:265,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 272
    functionName: fu_uf2_device_close
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - FU_UF2_DEVICE
    - g_clear_object
    - FU_DEVICE_CLASS
    - fu_volume_unmount
    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:277,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:280,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:281,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:282,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:285,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:289,1
    - Dst: fu_block_partition_get_fs_type
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:289,1
    - Dst: FU_BLOCK_PARTITION
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:289,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:290,1
    - Dst: fu_block_partition_get_fs_type
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:294,1
    - Dst: FU_BLOCK_PARTITION
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:294,1
    - Dst: fu_block_partition_get_fs_uuid
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:299,1
    - Dst: FU_BLOCK_PARTITION
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:299,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:300,1
    - Dst: fu_block_partition_get_fs_uuid
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:303,1
    - Dst: FU_BLOCK_PARTITION
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:303,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:304,1
    - Dst: fu_uf2_device_get_full_path
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:309,1
    - Dst: fu_device_get_contents_bytes
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:312,1
    - Dst: fu_strsplit_bytes
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:313,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:315,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:316,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:317,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:318,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:321,1
    - Dst: fu_uf2_device_get_full_path
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:324,1
    - Dst: fu_device_get_contents_bytes
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:327,1
    - Dst: fu_uf2_device_probe_current_fw
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:329,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:332,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:332,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 274
    functionDepth: 7
    functionLinenumber: 274
    functionLinenumberEnd: 337
    functionName: fu_uf2_device_setup
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_contents_bytes
    - fu_strsplit_bytes
    - g_auto
    - fu_device_set_version_format
    - fu_block_partition_get_fs_type
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - fu_uf2_device_probe_current_fw
    - g_str_has_prefix
    - fu_uf2_device_get_full_path
    - fu_block_partition_get_fs_uuid
    - fu_device_set_name
    - FU_BLOCK_PARTITION
    - FU_DEVICE
    - FU_DEVICE_CLASS
    - g_strcmp0
    - g_set_error
    - fu_device_add_instance_strsafe
    - FU_UF2_DEVICE
    - g_autoptr
    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:343,1
    - Dst: fu_device_incorporate
      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
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:349,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:349,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:356,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - usb_device
    - error
    argTypes:
    - FuUf2Device*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 339
    functionDepth: 9
    functionLinenumber: 339
    functionLinenumberEnd: 361
    functionName: fu_uf2_device_usb_probe
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - fu_device_build_instance_id
    - fu_device_incorporate
    - FU_DEVICE
    - 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:366,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:367,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:370,1
    - Dst: fu_uf2_device_usb_probe
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:373,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:377,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 363
    functionDepth: 10
    functionLinenumber: 363
    functionLinenumberEnd: 387
    functionName: fu_uf2_device_probe
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_parent_with_subsystem
    - g_set_error_literal
    - fu_device_has_flag
    - FU_UF2_DEVICE
    - fu_uf2_device_usb_probe
    - g_autoptr
    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:393,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:393,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:394,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:394,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 389
    functionDepth: 3
    functionLinenumber: 389
    functionLinenumberEnd: 396
    functionName: fu_uf2_device_replace
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_vid
    - fu_device_add_private_flag
    - fu_device_get_pid
    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:401,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:402,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:403,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:404,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:405,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:406,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 408
    functionName: fu_uf2_device_set_progress
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_uf2_device_set_progress(FuDevice *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_UF2_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:413,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 415
    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:420,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 421
    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:426,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 427
    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:432,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:432,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:433,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:433,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:434,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:434,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:435,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:435,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:436,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:436,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:437,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:437,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:439,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:441,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:441,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUf2Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 429
    functionDepth: 6
    functionLinenumber: 429
    functionLinenumberEnd: 445
    functionName: fu_uf2_device_init
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - g_signal_connect
    - fu_device_add_private_flag
    - FU_DEVICE
    - G_CALLBACK
    - fu_device_add_protocol
    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:450,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:454,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 457
    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:462,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uf2/fu-uf2-device.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUf2DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 476
    functionName: fu_uf2_device_class_init
    functionSourceFile: /src/fwupd/plugins/uf2/fu-uf2-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uf2_device_class_init(FuUf2DeviceClass *klass)
  - BBCount: 9
    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_version
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:40,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:41,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:44,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:47,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:49,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:50,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:54,1
    - Dst: fu_struct_ebitdo_hdr_get_destination_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:56,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:60,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:62,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:63,1
    - Dst: fu_struct_ebitdo_hdr_get_destination_addr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:63,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:65,1
    - Dst: fu_struct_ebitdo_hdr_get_destination_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:65,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:67,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 69
    functionName: fu_ebitdo_firmware_parse
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_addr
    - fu_firmware_set_version_raw
    - fu_struct_ebitdo_hdr_get_destination_addr
    - fu_firmware_set_id
    - fu_firmware_add_image
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - fu_struct_ebitdo_hdr_parse_stream
    - fu_firmware_new
    - fu_struct_ebitdo_hdr_get_destination_len
    - fu_size_checked_inc
    - fu_firmware_set_stream
    - fu_struct_ebitdo_hdr_get_version
    - g_autoptr
    - fu_partial_input_stream_new
    - fu_firmware_set_size
    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:74,1
    - Dst: fu_struct_ebitdo_hdr_new
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:75,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:78,1
    - Dst: fu_struct_ebitdo_hdr_set_version
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:81,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:81,1
    - Dst: fu_struct_ebitdo_hdr_set_destination_addr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:82,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:82,1
    - Dst: fu_struct_ebitdo_hdr_set_destination_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:83,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:83,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:84,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 86
    functionName: fu_ebitdo_firmware_write
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_raw
    - fu_struct_ebitdo_hdr_set_version
    - fu_byte_array_append_bytes
    - fu_struct_ebitdo_hdr_set_destination_addr
    - fu_struct_ebitdo_hdr_set_destination_len
    - fu_firmware_get_bytes_with_patches
    - g_steal_pointer
    - fu_firmware_get_addr
    - g_bytes_get_size
    - fu_struct_ebitdo_hdr_new
    - g_autoptr
    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:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    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:97,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:97,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:98,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:98,1
    - Dst: fu_firmware_add_flag
      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
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:100,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:100,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:101,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:101,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:102,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEbitdoFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: fu_ebitdo_firmware_init
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEbitdoFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 112
    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_literal
      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:59,1
    - Dst: fu_struct_ebitdo_pkt_set_subtype
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:60,1
    - Dst: fu_struct_ebitdo_pkt_set_cmd_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:64,1
    - Dst: fu_struct_ebitdo_pkt_set_cmd
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:65,1
    - Dst: fu_struct_ebitdo_pkt_set_payload_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:66,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:67,1
    - Dst: fu_struct_ebitdo_pkt_set_pkt_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:76,1
    - Dst: fu_struct_ebitdo_pkt_set_cmd_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:78,1
    - Dst: fu_struct_ebitdo_pkt_set_cmd
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:79,1
    - Dst: fu_struct_ebitdo_pkt_set_pkt_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:80,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:82,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:85,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:85,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:93,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: 102
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 102
    functionName: fu_ebitdo_device_send
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ebitdo_pkt_new
    - fu_struct_ebitdo_pkt_set_type
    - fu_struct_ebitdo_pkt_set_cmd
    - fu_struct_ebitdo_pkt_set_pkt_len
    - fu_struct_ebitdo_pkt_set_subtype
    - g_set_error
    - g_set_error_literal
    - fu_struct_ebitdo_pkt_set_payload_len
    - fu_dump_raw
    - FU_DEVICE
    - fu_usb_device_interrupt_transfer
    - fu_device_has_flag
    - fu_memcpy_safe
    - FU_USB_DEVICE
    - g_autoptr
    - fu_struct_ebitdo_pkt_set_cmd_len
    - 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:110,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:111,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:114,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:114,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:118,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:118,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:126,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:136,1
    - Dst: fu_struct_ebitdo_pkt_parse
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:137,1
    - Dst: fu_struct_ebitdo_pkt_get_type
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:142,1
    - Dst: fu_struct_ebitdo_pkt_get_subtype
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:143,1
    - Dst: fu_struct_ebitdo_pkt_get_cmd
      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:146,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:147,1
    - Dst: fu_struct_ebitdo_pkt_get_payload_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:152,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:155,1
    - Dst: fu_struct_ebitdo_pkt_get_pkt_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:169,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:172,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:179,1
    - Dst: fu_struct_ebitdo_pkt_get_type
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:193,1
    - Dst: fu_struct_ebitdo_pkt_get_subtype
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:194,1
    - Dst: fu_struct_ebitdo_pkt_get_cmd_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:196,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:197,1
    - Dst: fu_struct_ebitdo_pkt_get_cmd_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:202,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:205,1
    - Dst: fu_struct_ebitdo_pkt_get_cmd_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:211,1
    - Dst: fu_struct_ebitdo_pkt_get_type
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:219,1
    - Dst: fu_struct_ebitdo_pkt_get_subtype
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:220,1
    - Dst: fu_struct_ebitdo_pkt_get_payload_len
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:221,1
    - Dst: fu_struct_ebitdo_pkt_get_cmd
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:222,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:223,1
    - Dst: fu_ebitdo_pkt_cmd_to_string
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:228,1
    - Dst: fu_struct_ebitdo_pkt_get_cmd
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:228,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:235,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: 237
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 237
    functionName: fu_ebitdo_device_receive
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ebitdo_pkt_get_cmd_len
    - fu_struct_ebitdo_pkt_get_subtype
    - g_set_error
    - fu_struct_ebitdo_pkt_get_type
    - fu_struct_ebitdo_pkt_get_pkt_len
    - g_set_error_literal
    - fu_struct_ebitdo_pkt_get_payload_len
    - fu_dump_raw
    - FU_DEVICE
    - fu_usb_device_interrupt_transfer
    - fu_struct_ebitdo_pkt_parse
    - fu_device_has_flag
    - fu_struct_ebitdo_pkt_get_cmd
    - fu_memcpy_safe
    - FU_USB_DEVICE
    - g_autoptr
    - 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:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    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:252,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:252,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:256,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:256,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:258,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:264,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:265,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:268,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuEbitdoDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 275
    functionName: fu_ebitdo_device_validate
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - fu_device_get_vid
    - FU_DEVICE
    - G_N_ELEMENTS
    - g_str_has_prefix
    - 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:280,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:283,1
    - Dst: fu_ebitdo_device_validate
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:287,1
    - Dst: fu_usb_device_claim_interface
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:289,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 298
    functionName: fu_ebitdo_device_open
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - fu_ebitdo_device_validate
    - fu_usb_device_claim_interface
    - FU_EBITDO_DEVICE
    - FU_USB_DEVICE
    - FU_DEVICE_CLASS
    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:303,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:308,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:312,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:312,1
    - Dst: fu_ebitdo_device_send
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:313,1
    - Dst: fu_ebitdo_device_receive
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:322,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:328,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:328,1
    - Dst: GUINT32_FROM_LE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:329,1
    - Dst: fu_ebitdo_device_send
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:334,1
    - Dst: fu_ebitdo_device_receive
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:343,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:360,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 300
    functionDepth: 5
    functionLinenumber: 300
    functionLinenumberEnd: 364
    functionName: fu_ebitdo_device_setup
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_raw
    - FU_EBITDO_DEVICE
    - FU_DEVICE
    - fu_ebitdo_device_receive
    - GUINT32_FROM_LE
    - fu_device_has_flag
    - fu_ebitdo_device_send
    - FU_DEVICE_CLASS
    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:369,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:369,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:372,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:376,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:377,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:377,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:378,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:379,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:385,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:391,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:396,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:405,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:411,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:416,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:421,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:424,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:425,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:429,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:432,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:433,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:434,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:434,1
    - Dst: fwupd_request_set_image
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:435,1
    - Dst: fu_device_get_update_image
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:435,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:436,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 366
    functionDepth: 6
    functionLinenumber: 366
    functionLinenumberEnd: 437
    functionName: fu_ebitdo_device_detach
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fwupd_request_new
    - g_string_append
    - fu_device_get_pid
    - fwupd_request_set_message
    - fwupd_request_set_kind
    - fwupd_request_set_id
    - fwupd_request_set_image
    - fu_device_set_update_message
    - fu_device_has_flag
    - g_string_new
    - fu_device_get_update_message
    - fu_device_emit_request
    - g_autoptr
    - fu_device_get_update_image
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ebitdo_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:446,1
    - Dst: fu_linear_firmware_new
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:446,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:447,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:449,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: 450
      start: 439
    functionDepth: 4
    functionLinenumber: 439
    functionLinenumberEnd: 450
    functionName: fu_ebitdo_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_parse_stream
    - fu_linear_firmware_new
    - g_autoptr
    - g_steal_pointer
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_ebitdo_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: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:462,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:463,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:464,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:465,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:486,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:487,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:488,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:489,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:492,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:495,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:500,1
    - Dst: fu_ebitdo_device_send
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:501,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:508,1
    - Dst: fu_ebitdo_device_receive
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:511,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:512,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:515,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:518,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:525,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:526,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:529,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:532,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:533,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:534,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:535,1
    - Dst: fu_ebitdo_device_send
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:536,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:540,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:541,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:543,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:545,1
    - Dst: fu_ebitdo_device_receive
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:548,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:549,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:551,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:554,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:554,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:556,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:558,1
    - Dst: fu_ebitdo_device_send
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:566,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:573,1
    - Dst: fu_ebitdo_device_send
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:578,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:585,1
    - Dst: fu_ebitdo_device_receive
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:588,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:589,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:591,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:591,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:592,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:592,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:593,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:596,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:596,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:599,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 72
    argCount: 5
    argNames:
    - self
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuEbitdoDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 452
    functionDepth: 5
    functionLinenumber: 452
    functionLinenumberEnd: 603
    functionName: fu_ebitdo_device_write_image
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_ebitdo_device_send
    - fu_device_set_remove_delay
    - g_debug
    - fu_firmware_get_image_by_id_bytes
    - g_prefix_error_literal
    - fu_chunk_array_new_from_stream
    - fu_device_has_flag
    - fu_progress_set_percentage_full
    - g_propagate_error
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_progress_step_done
    - fu_ebitdo_device_receive
    - FU_DEVICE
    - fu_chunk_get_data
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_chunk_get_address
    - fu_progress_set_id
    - fu_firmware_get_stream
    - fu_chunk_array_index
    - g_steal_pointer
    - g_prefix_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ebitdo_device_write_image(FuEbitdoDevice *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: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_EBITDO_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:612,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:613,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:613,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:616,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:617,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:625,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:626,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:628,1
    - Dst: fu_ebitdo_device_write_image
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:629,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:631,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:635,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: 640
      start: 605
    functionDepth: 6
    functionLinenumber: 605
    functionLinenumberEnd: 640
    functionName: fu_ebitdo_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - FU_EBITDO_DEVICE
    - g_set_error_literal
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_firmware_get_images
    - fu_device_has_flag
    - fu_ebitdo_device_write_image
    - g_autoptr
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    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:645,1
    - Dst: fu_usb_device_reset
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:649,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:649,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:650,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:651,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:652,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:653,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:656,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:656,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:661,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:662,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:664,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 642
    functionDepth: 6
    functionLinenumber: 642
    functionLinenumberEnd: 668
    functionName: fu_ebitdo_device_attach
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - g_debug
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_device_has_flag
    - fu_usb_device_reset
    - g_propagate_error
    - FU_USB_DEVICE
    - g_autoptr
    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:674,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:675,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:678,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:679,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:682,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:685,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:686,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 670
    functionDepth: 6
    functionLinenumber: 670
    functionLinenumberEnd: 696
    functionName: fu_ebitdo_device_probe
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - fu_device_set_summary
    - fu_device_set_vendor
    - fu_device_has_flag
    - fu_device_add_instance_id_full
    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:701,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:702,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:703,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:704,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:705,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:706,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 698
    functionDepth: 3
    functionLinenumber: 698
    functionLinenumberEnd: 708
    functionName: fu_ebitdo_device_set_progress
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_ebitdo_device_set_progress(FuDevice *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:713,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:713,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:714,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:714,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:715,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:715,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:716,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:716,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:717,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:717,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:718,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEbitdoDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 710
    functionDepth: 6
    functionLinenumber: 710
    functionLinenumberEnd: 719
    functionName: fu_ebitdo_device_init
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_add_request_flag
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEbitdoDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 734
    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_udev_subsystem
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-plugin.c:29,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-plugin.c:30,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ebitdo/fu-ebitdo-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: fu_ebitdo_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/ebitdo/fu-ebitdo-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEbitdoPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRaydiumTpPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_raydium_tp_plugin_init
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_raydium_tp_plugin_init(FuRaydiumTpPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-plugin.c:27,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-plugin.c:28,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-plugin.c:29,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-plugin.c:30,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: fu_raydium_tp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_set_device_gtype_default
    linkageType: ''
    returnType: void
    signature: void fu_raydium_tp_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-plugin.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRaydiumTpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: fu_raydium_tp_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_raydium_tp_plugin_class_init(FuRaydiumTpPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_RAYDIUM_TP_FIRMWARE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:24,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:25,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-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_raydium_tp_firmware_export
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_RAYDIUM_TP_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_raydium_tp_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:32,1
    - Dst: FU_IS_RAYDIUM_TP_FIRMWARE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRaydiumTpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: fu_raydium_tp_firmware_get_vendor_id
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_RAYDIUM_TP_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_raydium_tp_firmware_get_vendor_id(FuRaydiumTpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:39,1
    - Dst: FU_IS_RAYDIUM_TP_FIRMWARE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRaydiumTpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: fu_raydium_tp_firmware_get_product_id
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_RAYDIUM_TP_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_raydium_tp_firmware_get_product_id(FuRaydiumTpFirmware *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_RAYDIUM_TP_FIRMWARE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:50,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:51,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:53,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:54,1
    - Dst: fu_struct_raydium_tp_fw_hdr_parse_stream
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:56,1
    - Dst: fu_struct_raydium_tp_fw_hdr_get_vendor_id
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:59,1
    - Dst: fu_struct_raydium_tp_fw_hdr_get_product_id
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:60,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:63,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:64,1
    - Dst: fu_struct_raydium_tp_fw_hdr_get_fw_base
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:64,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:65,1
    - Dst: fu_struct_raydium_tp_fw_hdr_get_start
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:66,1
    - Dst: fu_struct_raydium_tp_fw_hdr_get_length
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:67,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:71,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:73,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:77,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:78,1
    - Dst: fu_struct_raydium_tp_fw_hdr_get_desc_base
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:78,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:79,1
    - Dst: fu_struct_raydium_tp_fw_hdr_get_desc_start
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:80,1
    - Dst: fu_struct_raydium_tp_fw_hdr_get_desc_length
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:81,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:85,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:87,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 92
    functionName: fu_raydium_tp_firmware_parse
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_addr
    - fu_struct_raydium_tp_fw_hdr_get_fw_base
    - fu_struct_raydium_tp_fw_hdr_get_desc_base
    - fu_firmware_set_id
    - fu_struct_raydium_tp_fw_hdr_get_length
    - fu_firmware_add_image
    - fu_firmware_parse_stream
    - fu_struct_raydium_tp_fw_hdr_get_desc_start
    - FU_RAYDIUM_TP_FIRMWARE
    - fu_struct_raydium_tp_fw_hdr_parse_stream
    - fu_struct_raydium_tp_fw_hdr_get_desc_length
    - g_object_new
    - fu_struct_raydium_tp_fw_hdr_get_start
    - fu_struct_raydium_tp_fw_hdr_get_vendor_id
    - g_autoptr
    - fu_partial_input_stream_new
    - fu_struct_raydium_tp_fw_hdr_get_product_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_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/raydium-tp/fu-raydium-tp-firmware.c:97,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:97,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:98,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:98,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:99,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:99,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:100,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRaydiumTpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: fu_raydium_tp_firmware_init
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_raydium_tp_firmware_init(FuRaydiumTpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRaydiumTpFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: fu_raydium_tp_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_raydium_tp_firmware_class_init(FuRaydiumTpFirmwareClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:39,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:39,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:41,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:42,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:43,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:43,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 36
    functionDepth: 5
    functionLinenumber: 36
    functionLinenumberEnd: 50
    functionName: fu_raydium_tp_hid_device_get_report
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_get_feature
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - g_byte_array_new
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_raydium_tp_hid_device_get_report(FuRaydiumTpHidDevice *self, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:55,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 5
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: fu_raydium_tp_hid_device_set_report
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - FU_HIDRAW_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_set_report(FuRaydiumTpHidDevice *self,
      GByteArray *buf, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_RAYDIUM_TP_HID_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:65,1
    - Dst: fu_raydium_tp_hid_device_set_report
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 6
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: fu_raydium_tp_hid_device_write_cb
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_set_report
    - FU_RAYDIUM_TP_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_write_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:73,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: fu_raydium_tp_hid_device_write
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_write(FuRaydiumTpHidDevice *self,
      GByteArray *buf, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_RAYDIUM_TP_HID_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:92,1
    - Dst: fu_raydium_tp_hid_device_set_report
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:94,1
    - Dst: fu_raydium_tp_hid_device_get_report
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:96,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:99,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:102,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 86
    functionDepth: 6
    functionLinenumber: 86
    functionLinenumberEnd: 109
    functionName: fu_raydium_tp_hid_device_read_cb
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_get_report
    - g_set_error_literal
    - g_steal_pointer
    - fu_raydium_tp_hid_device_set_report
    - FU_RAYDIUM_TP_HID_DEVICE
    - fu_memread_uint8_safe
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_read_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:119,1
    - Dst: fu_struct_raydium_tp_hid_packet_new
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:119,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:120,1
    - Dst: fu_struct_raydium_tp_hid_packet_new
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:120,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_header3
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:122,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_header4
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:123,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_data0
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:124,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_data2
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:125,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_data3
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:126,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_data4
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:127,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_data5
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:128,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_length
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:129,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:131,1
    - Dst: fu_raydium_tp_hid_device_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:140,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:141,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_header3
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:145,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_header4
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:146,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_data0
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:147,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_length
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:148,1
    - Dst: fu_raydium_tp_hid_device_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 6
    argNames:
    - self
    - cmd
    - buf
    - bufsz
    - length
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - guint8
    - guint8*
    - gsize
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 111
    functionDepth: 4
    functionLinenumber: 111
    functionLinenumberEnd: 150
    functionName: fu_raydium_tp_hid_device_bl_write
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_raydium_tp_hid_packet_set_data0
    - fu_struct_raydium_tp_hid_packet_set_data3
    - fu_struct_raydium_tp_hid_packet_set_data4
    - fu_struct_raydium_tp_hid_packet_set_length
    - g_prefix_error_literal
    - fu_struct_raydium_tp_hid_packet_set_data5
    - fu_memcpy_safe
    - fu_raydium_tp_hid_device_write
    - fu_struct_raydium_tp_hid_packet_set_data2
    - fu_struct_raydium_tp_hid_packet_new
    - g_autoptr
    - fu_struct_raydium_tp_hid_packet_set_header4
    - fu_struct_raydium_tp_hid_packet_set_header3
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_bl_write(FuRaydiumTpHidDevice *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  guint
      length,\n\t\t\t\t  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:161,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:162,1
    - Dst: fu_struct_raydium_tp_hid_packet_new
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:162,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_header3
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:169,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_header4
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:170,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_data0
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:171,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_data1
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:172,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_data2
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:173,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_data3
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:174,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_data4
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:175,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_data5
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:176,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_length
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:177,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:180,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:180,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:186,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:192,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 5
    argNames:
    - self
    - rcv_buf
    - rcv_bufsz
    - length
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - guint8*
    - gsize
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 210
    functionName: fu_raydium_tp_hid_device_bl_read
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_raydium_tp_hid_packet_set_data0
    - fu_struct_raydium_tp_hid_packet_set_data3
    - fu_struct_raydium_tp_hid_packet_set_data4
    - fu_struct_raydium_tp_hid_packet_set_length
    - g_prefix_error_literal
    - fu_struct_raydium_tp_hid_packet_set_data1
    - fu_struct_raydium_tp_hid_packet_set_data5
    - fu_device_retry_full
    - FU_DEVICE
    - fu_memcpy_safe
    - fu_struct_raydium_tp_hid_packet_set_data2
    - fu_struct_raydium_tp_hid_packet_new
    - g_autoptr
    - fu_struct_raydium_tp_hid_packet_set_header4
    - fu_struct_raydium_tp_hid_packet_set_header3
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_bl_read(FuRaydiumTpHidDevice *self,\n\t\t\t\t
      guint8 *rcv_buf,\n\t\t\t\t gsize rcv_bufsz,\n\t\t\t\t guint length,\n\t\t\t\t
      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:220,1
    - Dst: fu_struct_raydium_tp_hid_packet_new
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:220,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:221,1
    - Dst: fu_struct_raydium_tp_hid_packet_new
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:221,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:225,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_header3
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:232,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_header4
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:233,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_data0
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:234,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_data2
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:235,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_data3
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:236,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:237,1
    - Dst: fu_raydium_tp_hid_device_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:239,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:240,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_header3
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:244,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_header4
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:245,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_data0
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:246,1
    - Dst: fu_raydium_tp_hid_device_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 6
    argNames:
    - self
    - cmd
    - buf
    - bufsz
    - length
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - guint8
    - guint8*
    - gsize
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 212
    functionDepth: 4
    functionLinenumber: 212
    functionLinenumberEnd: 248
    functionName: fu_raydium_tp_hid_device_tp_write
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_raydium_tp_hid_packet_set_data0
    - fu_struct_raydium_tp_hid_packet_set_data3
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_memcpy_safe
    - fu_raydium_tp_hid_device_write
    - fu_struct_raydium_tp_hid_packet_set_data2
    - fu_struct_raydium_tp_hid_packet_new
    - g_autoptr
    - fu_struct_raydium_tp_hid_packet_set_header4
    - fu_struct_raydium_tp_hid_packet_set_header3
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_tp_write(FuRaydiumTpHidDevice *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  guint
      length,\n\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:258,1
    - Dst: fu_struct_raydium_tp_hid_packet_new
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:258,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:259,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_header3
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:261,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_header4
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:262,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_data0
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:263,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_data3
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:264,1
    - Dst: fu_struct_raydium_tp_hid_packet_set_data4
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:265,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:268,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:268,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:274,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - self
    - cmd
    - rcv_buf
    - rcv_bufsz
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 287
    functionName: fu_raydium_tp_hid_device_tp_read
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_raydium_tp_hid_packet_set_data0
    - fu_struct_raydium_tp_hid_packet_set_data3
    - fu_struct_raydium_tp_hid_packet_set_data4
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - fu_memcpy_safe
    - fu_struct_raydium_tp_hid_packet_new
    - g_autoptr
    - fu_struct_raydium_tp_hid_packet_set_header4
    - fu_struct_raydium_tp_hid_packet_set_header3
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_tp_read(FuRaydiumTpHidDevice *self,\n\t\t\t\t
      guint8 cmd,\n\t\t\t\t guint8 *rcv_buf,\n\t\t\t\t gsize rcv_bufsz,\n\t\t\t\t
      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:298,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:299,1
    - Dst: fu_raydium_tp_hid_device_bl_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - addr
    - value
    - size
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - guint32
    - guint32
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 289
    functionDepth: 5
    functionLinenumber: 289
    functionLinenumberEnd: 306
    functionName: fu_raydium_tp_hid_device_set_bl_mem
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_bl_write
    - fu_memwrite_uint32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_set_bl_mem(FuRaydiumTpHidDevice
      *self,\n\t\t\t\t    guint32 addr,\n\t\t\t\t    guint32 value,\n\t\t\t\t    guint
      size,\n\t\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:318,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:319,1
    - Dst: fu_raydium_tp_hid_device_bl_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:320,1
    - Dst: fu_raydium_tp_hid_device_bl_read
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - self
    - addr
    - length
    - outbuf
    - outbufsz
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - guint32
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 308
    functionDepth: 5
    functionLinenumber: 308
    functionLinenumberEnd: 330
    functionName: fu_raydium_tp_hid_device_get_bl_mem
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - fu_raydium_tp_hid_device_bl_read
    - fu_raydium_tp_hid_device_bl_write
    - fu_memwrite_uint32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_get_bl_mem(FuRaydiumTpHidDevice
      *self,\n\t\t\t\t    guint32 addr,\n\t\t\t\t    guint16 length,\n\t\t\t\t    guint8
      *outbuf,\n\t\t\t\t    gsize outbufsz,\n\t\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_raydium_tp_hid_device_tp_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 332
    functionDepth: 5
    functionLinenumber: 332
    functionLinenumberEnd: 343
    functionName: fu_raydium_tp_hid_device_jump_to_boot
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_tp_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_jump_to_boot(FuRaydiumTpHidDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_RAYDIUM_TP_HID_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:348,1
    - Dst: fu_raydium_tp_hid_device_bl_read
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:353,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:355,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - device
    - userdata
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 345
    functionDepth: 4
    functionLinenumber: 345
    functionLinenumberEnd: 362
    functionName: fu_raydium_tp_hid_device_read_status_cb
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_bl_read
    - FU_RAYDIUM_TP_HID_DEVICE
    - fu_memcmp_safe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_read_status_cb(FuDevice *device,
      gpointer userdata, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:369,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - FuRaydiumTpBootMode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 374
    functionName: fu_raydium_tp_hid_device_read_status
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_read_status(FuRaydiumTpHidDevice
      *self,\n\t\t\t\t     FuRaydiumTpBootMode *status,\n\t\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_RAYDIUM_TP_HID_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:379,1
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:382,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:388,1
    - Dst: fu_raydium_tp_hid_device_read_status
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:389,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 376
    functionDepth: 6
    functionLinenumber: 376
    functionLinenumberEnd: 399
    functionName: fu_raydium_tp_hid_device_wait_main_cb
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - g_set_error_literal
    - fu_raydium_tp_hid_device_set_bl_mem
    - FU_RAYDIUM_TP_HID_DEVICE
    - fu_raydium_tp_hid_device_read_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_wait_main_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_RAYDIUM_TP_HID_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:404,1
    - Dst: fu_raydium_tp_hid_device_jump_to_boot
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:407,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:409,1
    - Dst: fu_raydium_tp_hid_device_read_status
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:410,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 401
    functionDepth: 6
    functionLinenumber: 401
    functionLinenumberEnd: 420
    functionName: fu_raydium_tp_hid_device_wait_boot_cb
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - g_set_error_literal
    - FU_RAYDIUM_TP_HID_DEVICE
    - fu_raydium_tp_hid_device_read_status
    - fu_raydium_tp_hid_device_jump_to_boot
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_wait_boot_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_RAYDIUM_TP_HID_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:425,1
    - Dst: fu_raydium_tp_hid_device_get_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:428,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:435,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 422
    functionDepth: 6
    functionLinenumber: 422
    functionLinenumberEnd: 442
    functionName: fu_raydium_tp_hid_device_wait_dma_cb
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_BIT_IS_SET
    - g_set_error_literal
    - FU_RAYDIUM_TP_HID_DEVICE
    - fu_raydium_tp_hid_device_get_bl_mem
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_wait_dma_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_RAYDIUM_TP_HID_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:447,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:450,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:450,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:452,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:453,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:454,1
    - Dst: fu_raydium_tp_hid_device_bl_read
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:456,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:458,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:462,1
    - Dst: fu_raydium_tp_bl_cmd_to_string
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:466,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 444
    functionDepth: 4
    functionLinenumber: 444
    functionLinenumberEnd: 472
    functionName: fu_raydium_tp_hid_device_wait_idle_cb
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_bl_read
    - g_set_error
    - FU_RAYDIUM_TP_HID_DEVICE
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - fu_memread_uint8_safe
    - fu_raydium_tp_bl_cmd_to_string
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_wait_idle_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:477,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 474
    functionDepth: 3
    functionLinenumber: 474
    functionLinenumberEnd: 483
    functionName: fu_raydium_tp_hid_device_wait_for_idle_boot
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_wait_for_idle_boot(FuRaydiumTpHidDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_raydium_tp_hid_device_bl_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - enable
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 485
    functionDepth: 5
    functionLinenumber: 485
    functionLinenumberEnd: 501
    functionName: fu_raydium_tp_hid_device_bl_set_wdt
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_bl_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_bl_set_wdt(FuRaydiumTpHidDevice *self,
      guint8 enable, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_raydium_tp_hid_device_bl_set_wdt
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:506,1
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:508,1
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:514,1
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:520,1
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:526,1
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:532,1
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:538,1
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:544,1
    - Dst: fu_raydium_tp_hid_device_wait_for_idle_boot
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:550,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 503
    functionDepth: 6
    functionLinenumber: 503
    functionLinenumberEnd: 551
    functionName: fu_raydium_tp_hid_device_bl_dis_wdt_and_unlock_flash
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_bl_set_wdt
    - fu_raydium_tp_hid_device_set_bl_mem
    - fu_raydium_tp_hid_device_wait_for_idle_boot
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_bl_dis_wdt_and_unlock_flash(FuRaydiumTpHidDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_raydium_tp_hid_device_bl_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:559,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:567,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:567,1
    - Dst: fu_raydium_tp_hid_device_wait_for_idle_boot
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 553
    functionDepth: 5
    functionLinenumber: 553
    functionLinenumberEnd: 569
    functionName: fu_raydium_tp_hid_device_bl_erase_fw_flash
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_raydium_tp_hid_device_wait_for_idle_boot
    - fu_raydium_tp_hid_device_bl_write
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_bl_erase_fw_flash(FuRaydiumTpHidDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:580,1
    - Dst: fu_raydium_tp_hid_device_bl_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:583,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:591,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:591,1
    - Dst: fu_raydium_tp_hid_device_wait_for_idle_boot
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - addr
    - loop
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - guint32
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 571
    functionDepth: 5
    functionLinenumber: 571
    functionLinenumberEnd: 593
    functionName: fu_raydium_tp_hid_device_bl_erase_flash_sector
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_bl_write
    - fu_device_sleep
    - FU_DEVICE
    - fu_raydium_tp_hid_device_wait_for_idle_boot
    - fu_memwrite_uint32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_bl_erase_flash_sector(FuRaydiumTpHidDevice
      *self,\n\t\t\t\t\t       guint32 addr,\n\t\t\t\t\t       guint8 loop,\n\t\t\t\t\t
      \      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:604,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:607,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:610,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:611,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:613,1
    - Dst: fu_raydium_tp_hid_device_bl_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - chunk
    - cur_write_page_no
    - sub_page_no
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - FuChunk*
    - guint
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 595
    functionDepth: 5
    functionLinenumber: 595
    functionLinenumberEnd: 623
    functionName: fu_raydium_tp_hid_device_bl_write_flash_chunk
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_bl_write
    - fu_memwrite_uint16
    - fu_chunk_get_data_sz
    - fu_chunk_get_data
    - fu_memcpy_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_bl_write_flash_chunk(FuRaydiumTpHidDevice
      *self,\n\t\t\t\t\t      FuChunk *chunk,\n\t\t\t\t\t      guint cur_write_page_no,\n\t\t\t\t\t
      \     guint8 sub_page_no,\n\t\t\t\t\t      GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:633,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:634,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:636,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:639,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:646,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:647,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:647,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:648,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:649,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:651,1
    - Dst: fu_raydium_tp_hid_device_bl_write_flash_chunk
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:654,1
    - Dst: fu_raydium_tp_hid_device_wait_for_idle_boot
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:665,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:670,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - self
    - img
    - progress
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 625
    functionDepth: 6
    functionLinenumber: 625
    functionLinenumberEnd: 675
    functionName: fu_raydium_tp_hid_device_bl_write_flash
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_bl_write_flash_chunk
    - fu_firmware_get_stream
    - fu_chunk_array_index
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_raydium_tp_hid_device_wait_for_idle_boot
    - fu_chunk_array_new_from_stream
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_bl_write_flash(FuRaydiumTpHidDevice
      *self,\n\t\t\t\t\tFuFirmware *img,\n\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:686,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:686,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:692,1
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:693,1
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:699,1
    - Dst: fu_raydium_tp_hid_device_get_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:705,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:713,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:714,1
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:716,1
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:722,1
    - Dst: fu_raydium_tp_hid_device_get_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:728,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:736,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:737,1
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:739,1
    - Dst: fu_raydium_tp_hid_device_get_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:745,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:753,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:754,1
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:756,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:763,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:763,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:769,1
    - Dst: fu_raydium_tp_hid_device_get_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:773,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:781,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:783,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 5
    argNames:
    - self
    - base_addr
    - img_length
    - image_crc
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - guint32
    - guint32
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 677
    functionDepth: 6
    functionLinenumber: 677
    functionLinenumberEnd: 794
    functionName: fu_raydium_tp_hid_device_bl_dma_crc
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_raydium_tp_hid_device_set_bl_mem
    - fu_memread_uint32
    - fu_raydium_tp_hid_device_get_bl_mem
    - FU_BIT_SET
    - fu_device_retry_full
    - FU_DEVICE
    - g_prefix_error_literal
    - g_byte_array_new
    - FU_BIT_CLEAR
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_bl_dma_crc(FuRaydiumTpHidDevice
      *self,\n\t\t\t\t    guint32 base_addr,\n\t\t\t\t    guint32 img_length,\n\t\t\t\t
      \   guint32 image_crc,\n\t\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:807,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:808,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:809,1
    - Dst: fu_raydium_tp_hid_device_bl_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:811,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:819,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:819,1
    - Dst: fu_raydium_tp_hid_device_wait_for_idle_boot
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - self
    - pram_addr
    - flash_addr
    - length
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - guint32
    - guint32
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 796
    functionDepth: 5
    functionLinenumber: 796
    functionLinenumberEnd: 821
    functionName: fu_raydium_tp_hid_device_bl_trig_desc_to_flash
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_bl_write
    - fu_memwrite_uint16
    - fu_device_sleep
    - FU_DEVICE
    - fu_raydium_tp_hid_device_wait_for_idle_boot
    - fu_memwrite_uint32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_bl_trig_desc_to_flash(FuRaydiumTpHidDevice
      *self,\n\t\t\t\t\t       guint32 pram_addr,\n\t\t\t\t\t       guint32 flash_addr,\n\t\t\t\t\t
      \      guint16 length,\n\t\t\t\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_raydium_tp_hid_device_bl_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:831,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:839,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:839,1
    - Dst: fu_raydium_tp_hid_device_wait_for_idle_boot
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 823
    functionDepth: 5
    functionLinenumber: 823
    functionLinenumberEnd: 841
    functionName: fu_raydium_tp_hid_device_bl_trig_pram_to_flash
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_raydium_tp_hid_device_wait_for_idle_boot
    - fu_raydium_tp_hid_device_bl_write
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_bl_trig_pram_to_flash(FuRaydiumTpHidDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:846,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:846,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 843
    functionDepth: 3
    functionLinenumber: 843
    functionLinenumberEnd: 857
    functionName: fu_raydium_tp_hid_device_bl_software_reset
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_prefix_error_literal
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_bl_software_reset(FuRaydiumTpHidDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:867,1
    - Dst: fu_raydium_tp_hid_device_tp_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - self
    - addr
    - type
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - guint32
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 859
    functionDepth: 5
    functionLinenumber: 859
    functionLinenumberEnd: 876
    functionName: fu_raydium_tp_hid_device_set_mem_addr
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_tp_write
    - fu_memwrite_uint32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_set_mem_addr(FuRaydiumTpHidDevice
      *self,\n\t\t\t\t      guint32 addr,\n\t\t\t\t      guint8 type,\n\t\t\t\t      GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:883,1
    - Dst: fu_raydium_tp_hid_device_tp_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 878
    functionDepth: 5
    functionLinenumber: 878
    functionLinenumberEnd: 890
    functionName: fu_raydium_tp_hid_device_set_mem_write
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_tp_write
    - fu_memwrite_uint32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_set_mem_write(FuRaydiumTpHidDevice
      *self, guint32 value, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_raydium_tp_hid_device_tp_read
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:900,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - ram
    - ramsz
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 892
    functionDepth: 4
    functionLinenumber: 892
    functionLinenumberEnd: 908
    functionName: fu_raydium_tp_hid_device_get_mem_read
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_memcpy_safe
    - fu_raydium_tp_hid_device_tp_read
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_get_mem_read(FuRaydiumTpHidDevice
      *self,\n\t\t\t\t      guint8 *ram,\n\t\t\t\t      gsize ramsz,\n\t\t\t\t      GError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:918,1
    - Dst: fu_raydium_tp_hid_device_wait_for_idle_boot
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:925,1
    - Dst: fu_raydium_tp_hid_device_get_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:928,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:936,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:937,1
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:939,1
    - Dst: fu_raydium_tp_hid_device_wait_for_idle_boot
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:946,1
    - Dst: fu_raydium_tp_hid_device_get_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:949,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - FuRaydiumTpProtect*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 910
    functionDepth: 6
    functionLinenumber: 910
    functionLinenumberEnd: 959
    functionName: fu_raydium_tp_hid_device_read_flash_protect_status
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_set_bl_mem
    - fu_memread_uint32
    - fu_raydium_tp_hid_device_get_bl_mem
    - FU_BIT_SET
    - fu_raydium_tp_hid_device_wait_for_idle_boot
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_read_flash_protect_status(FuRaydiumTpHidDevice
      *self,\n\t\t\t\t\t\t   FuRaydiumTpProtect *status,\n\t\t\t\t\t\t   GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:969,1
    - Dst: fu_raydium_tp_hid_device_wait_for_idle_boot
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:976,1
    - Dst: fu_raydium_tp_hid_device_get_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:979,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:987,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:988,1
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:990,1
    - Dst: fu_raydium_tp_hid_device_wait_for_idle_boot
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:997,1
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1000,1
    - Dst: fu_raydium_tp_hid_device_wait_for_idle_boot
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1007,1
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1012,1
    - Dst: fu_raydium_tp_hid_device_wait_for_idle_boot
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1019,1
    - Dst: fu_raydium_tp_hid_device_get_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1022,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1030,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1031,1
    - Dst: fu_raydium_tp_hid_device_set_bl_mem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1033,1
    - Dst: fu_raydium_tp_hid_device_wait_for_idle_boot
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1040,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 961
    functionDepth: 6
    functionLinenumber: 961
    functionLinenumberEnd: 1041
    functionName: fu_raydium_tp_hid_device_write_flash_protect_status
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_set_bl_mem
    - fu_memread_uint32
    - fu_raydium_tp_hid_device_get_bl_mem
    - FU_BIT_SET
    - fu_raydium_tp_hid_device_wait_for_idle_boot
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_write_flash_protect_status(FuRaydiumTpHidDevice
      *self,\n\t\t\t\t\t\t    guint8 status,\n\t\t\t\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1050,1
    - Dst: fu_raydium_tp_hid_device_bl_read
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1053,1
    - Dst: fu_struct_raydium_tp_ft_record_info_parse
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1055,1
    - Dst: fu_struct_raydium_tp_ft_record_info_get_vid
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1059,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1061,1
    - Dst: fu_struct_raydium_tp_ft_record_info_get_version_major
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1068,1
    - Dst: fu_struct_raydium_tp_ft_record_info_get_version_minor
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1069,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1072,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1072,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1043
    functionDepth: 4
    functionLinenumber: 1043
    functionLinenumberEnd: 1074
    functionName: fu_raydium_tp_hid_device_ensure_version_bldr_fallback
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_bl_read
    - fu_struct_raydium_tp_ft_record_info_get_version_major
    - g_set_error
    - fu_device_set_version_raw
    - fu_struct_raydium_tp_ft_record_info_parse
    - fu_struct_raydium_tp_ft_record_info_get_version_minor
    - fu_struct_raydium_tp_ft_record_info_get_vid
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_ensure_version_bldr_fallback(FuRaydiumTpHidDevice
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1084,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1087,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1088,1
    - Dst: fu_raydium_tp_hid_device_bl_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1089,1
    - Dst: fu_raydium_tp_hid_device_bl_read
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1098,1
    - Dst: fu_struct_raydium_tp_desc_record_info_parse
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1100,1
    - Dst: fu_struct_raydium_tp_desc_record_info_get_vid
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1103,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1106,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1107,1
    - Dst: fu_raydium_tp_hid_device_bl_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1108,1
    - Dst: fu_raydium_tp_hid_device_ensure_version_bldr_fallback
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1117,1
    - Dst: fu_struct_raydium_tp_desc_record_info_get_rev
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1119,1
    - Dst: fu_struct_raydium_tp_desc_record_info_get_rev
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1120,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1123,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1123,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1076
    functionDepth: 5
    functionLinenumber: 1076
    functionLinenumberEnd: 1125
    functionName: fu_raydium_tp_hid_device_ensure_version_bldr
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_bl_read
    - fu_raydium_tp_hid_device_bl_write
    - fu_device_set_version_raw
    - fu_memwrite_uint16
    - fu_struct_raydium_tp_desc_record_info_parse
    - fu_raydium_tp_hid_device_ensure_version_bldr_fallback
    - FU_DEVICE
    - fu_struct_raydium_tp_desc_record_info_get_rev
    - fu_struct_raydium_tp_desc_record_info_get_vid
    - g_autoptr
    - fu_memwrite_uint32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_ensure_version_bldr(FuRaydiumTpHidDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_raydium_tp_hid_device_tp_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1137,1
    - Dst: fu_raydium_tp_hid_device_tp_read
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1145,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1151,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1153,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1162,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1127
    functionDepth: 5
    functionLinenumber: 1127
    functionLinenumberEnd: 1166
    functionName: fu_raydium_tp_hid_device_ensure_version_main
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_raw
    - g_set_error
    - fu_raydium_tp_hid_device_tp_read
    - fu_raydium_tp_hid_device_tp_write
    - FU_DEVICE
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_ensure_version_main(FuRaydiumTpHidDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_raydium_tp_hid_device_read_status
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1173,1
    - Dst: fu_raydium_tp_hid_device_ensure_version_bldr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1176,1
    - Dst: fu_raydium_tp_hid_device_ensure_version_main
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1178,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1168
    functionDepth: 6
    functionLinenumber: 1168
    functionLinenumberEnd: 1183
    functionName: fu_raydium_tp_hid_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_raydium_tp_hid_device_ensure_version_main
    - fu_raydium_tp_hid_device_read_status
    - fu_raydium_tp_hid_device_ensure_version_bldr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_ensure_version(FuRaydiumTpHidDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1188,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1188,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1185
    functionDepth: 3
    functionLinenumber: 1185
    functionLinenumberEnd: 1199
    functionName: fu_raydium_tp_hid_device_update_prepare
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_prefix_error_literal
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_update_prepare(FuRaydiumTpHidDevice
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1207,1
    - Dst: fu_raydium_tp_image_get_checksum
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1208,1
    - Dst: FU_RAYDIUM_TP_IMAGE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1208,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1211,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1219,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1220,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1221,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1222,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1223,1
    - Dst: fu_raydium_tp_hid_device_bl_write_flash
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1226,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1228,1
    - Dst: fu_raydium_tp_hid_device_bl_dma_crc
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1231,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1237,1
    - Dst: fu_raydium_tp_hid_device_bl_erase_fw_flash
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1240,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1242,1
    - Dst: fu_raydium_tp_hid_device_bl_trig_pram_to_flash
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1245,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - self
    - img
    - progress
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1201
    functionDepth: 7
    functionLinenumber: 1201
    functionLinenumberEnd: 1251
    functionName: fu_raydium_tp_hid_device_write_fwimage
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_bl_dma_crc
    - fu_progress_add_step
    - fu_raydium_tp_hid_device_bl_erase_fw_flash
    - fu_raydium_tp_hid_device_bl_trig_pram_to_flash
    - g_set_error_literal
    - fu_progress_add_flag
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_raydium_tp_image_get_checksum
    - fu_firmware_get_size
    - fu_raydium_tp_hid_device_bl_write_flash
    - FU_RAYDIUM_TP_IMAGE
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_write_fwimage(FuRaydiumTpHidDevice
      *self,\n\t\t\t\t       FuFirmware *img,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1259,1
    - Dst: fu_raydium_tp_image_get_checksum
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1260,1
    - Dst: FU_RAYDIUM_TP_IMAGE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1260,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1264,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1273,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1274,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1275,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1276,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1277,1
    - Dst: fu_raydium_tp_hid_device_bl_write_flash
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1279,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1281,1
    - Dst: fu_raydium_tp_hid_device_bl_dma_crc
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1284,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1290,1
    - Dst: fu_raydium_tp_hid_device_bl_erase_flash_sector
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1293,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1294,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1298,1
    - Dst: fu_raydium_tp_hid_device_bl_trig_desc_to_flash
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1301,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1303,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1307,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - self
    - img
    - progress
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1253
    functionDepth: 7
    functionLinenumber: 1253
    functionLinenumberEnd: 1311
    functionName: fu_raydium_tp_hid_device_write_descimage
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_bl_dma_crc
    - g_set_error
    - fu_progress_add_step
    - fu_raydium_tp_hid_device_bl_erase_flash_sector
    - fu_progress_add_flag
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_firmware_get_addr
    - fu_raydium_tp_hid_device_bl_trig_desc_to_flash
    - fu_raydium_tp_image_get_checksum
    - fu_firmware_get_size
    - fu_raydium_tp_hid_device_bl_write_flash
    - FU_RAYDIUM_TP_IMAGE
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_write_descimage(FuRaydiumTpHidDevice
      *self,\n\t\t\t\t\t FuFirmware *img,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t
      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1326,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1335,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1336,1
    - Dst: fu_raydium_tp_hid_device_bl_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1337,1
    - Dst: fu_raydium_tp_hid_device_bl_read
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1347,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - self
    - base_addr
    - length
    - out_crc
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - guint32
    - guint32
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1313
    functionDepth: 5
    functionLinenumber: 1313
    functionLinenumberEnd: 1351
    functionName: fu_raydium_tp_hid_device_read_flash_crc
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_bl_read
    - fu_raydium_tp_hid_device_bl_write
    - g_set_error
    - fu_memread_uint32
    - fu_memwrite_uint32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_read_flash_crc(FuRaydiumTpHidDevice
      *self,\n\t\t\t\t\tguint32 base_addr,\n\t\t\t\t\tguint32 length,\n\t\t\t\t\tguint32
      *out_crc,\n\t\t\t\t\tGError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1362,1
    - Dst: fu_raydium_tp_hid_device_set_mem_addr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1364,1
    - Dst: fu_raydium_tp_hid_device_get_mem_read
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1370,1
    - Dst: fu_raydium_tp_hid_device_set_mem_addr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1373,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1379,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1380,1
    - Dst: fu_raydium_tp_hid_device_set_mem_addr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1382,1
    - Dst: fu_raydium_tp_hid_device_get_mem_read
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1388,1
    - Dst: fu_raydium_tp_hid_device_set_mem_addr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1391,1
    - Dst: fu_raydium_tp_hid_device_set_mem_write
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1397,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1401,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1401,1
    - Dst: fu_raydium_tp_image_get_checksum
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1404,1
    - Dst: FU_RAYDIUM_TP_IMAGE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1404,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1405,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1407,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - self
    - firmware
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - FuRaydiumTpFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1353
    functionDepth: 6
    functionLinenumber: 1353
    functionLinenumberEnd: 1418
    functionName: fu_raydium_tp_hid_device_verify_status
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_raydium_tp_hid_device_set_mem_addr
    - fu_memread_uint32
    - FU_FIRMWARE
    - fu_firmware_get_image_by_id
    - fu_raydium_tp_hid_device_get_mem_read
    - fu_raydium_tp_image_get_checksum
    - FU_BIT_CLEAR
    - g_autoptr
    - FU_RAYDIUM_TP_IMAGE
    - fu_raydium_tp_hid_device_set_mem_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_verify_status(FuRaydiumTpHidDevice
      *self,\n\t\t\t\t       FuRaydiumTpFirmware *firmware,\n\t\t\t\t       GError
      **error)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1429,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1430,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1432,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1433,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1434,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1435,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1436,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1437,1
    - Dst: fu_raydium_tp_hid_device_bl_dis_wdt_and_unlock_flash
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1439,1
    - Dst: fu_raydium_tp_hid_device_read_flash_protect_status
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1441,1
    - Dst: fu_raydium_tp_hid_device_write_flash_protect_status
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1444,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1448,1
    - Dst: fu_raydium_tp_hid_device_read_flash_protect_status
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1451,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1454,1
    - Dst: fu_raydium_tp_protect_to_string
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1458,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1465,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1465,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1468,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1468,1
    - Dst: fu_raydium_tp_hid_device_read_flash_crc
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1471,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1472,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1473,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1476,1
    - Dst: fu_raydium_tp_hid_device_read_flash_crc
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1479,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1480,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1481,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1484,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1487,1
    - Dst: fu_raydium_tp_image_get_checksum
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1489,1
    - Dst: FU_RAYDIUM_TP_IMAGE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1489,1
    - Dst: fu_raydium_tp_hid_device_write_descimage
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1490,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1492,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1494,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1498,1
    - Dst: fu_raydium_tp_image_get_checksum
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1499,1
    - Dst: FU_RAYDIUM_TP_IMAGE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1499,1
    - Dst: fu_raydium_tp_hid_device_write_fwimage
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1500,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1502,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1504,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1508,1
    - Dst: fu_raydium_tp_hid_device_read_flash_protect_status
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1510,1
    - Dst: fu_raydium_tp_hid_device_write_flash_protect_status
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1513,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1517,1
    - Dst: fu_raydium_tp_hid_device_read_flash_protect_status
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1520,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1523,1
    - Dst: fu_raydium_tp_protect_to_string
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1527,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1531,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 71
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuRaydiumTpHidDevice*
    - FuRaydiumTpFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1420
    functionDepth: 8
    functionLinenumber: 1420
    functionLinenumberEnd: 1535
    functionName: fu_raydium_tp_hid_device_write_images
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_raydium_tp_hid_device_write_descimage
    - fu_progress_add_flag
    - fu_firmware_get_image_by_id
    - fu_raydium_tp_hid_device_read_flash_protect_status
    - fu_firmware_get_size
    - fu_raydium_tp_hid_device_bl_dis_wdt_and_unlock_flash
    - g_prefix_error_literal
    - fu_progress_add_step
    - FU_FIRMWARE
    - fu_progress_step_done
    - fu_raydium_tp_hid_device_read_flash_crc
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_raydium_tp_hid_device_write_fwimage
    - g_set_error
    - fu_raydium_tp_protect_to_string
    - fu_raydium_tp_hid_device_write_flash_protect_status
    - fu_firmware_get_addr
    - fu_raydium_tp_image_get_checksum
    - g_autoptr
    - FU_RAYDIUM_TP_IMAGE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_write_images(FuRaydiumTpHidDevice
      *self,\n\t\t\t\t      FuRaydiumTpFirmware *firmware,\n\t\t\t\t      FuProgress
      *progress,\n\t\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_raydium_tp_firmware_get_vendor_id
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1546,1
    - Dst: FU_RAYDIUM_TP_FIRMWARE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1546,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1548,1
    - Dst: fu_raydium_tp_firmware_get_product_id
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1555,1
    - Dst: FU_RAYDIUM_TP_FIRMWARE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1555,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1556,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1537
    functionDepth: 1
    functionLinenumber: 1537
    functionLinenumberEnd: 1567
    functionName: fu_raydium_tp_hid_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_raydium_tp_firmware_get_vendor_id
    - g_set_error
    - FU_RAYDIUM_TP_FIRMWARE
    - fu_raydium_tp_firmware_get_product_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_hid_device_check_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\t\tGError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_RAYDIUM_TP_HID_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1576,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1579,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1579,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1581,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1582,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1583,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1584,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1585,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1586,1
    - Dst: fu_raydium_tp_hid_device_update_prepare
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1588,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1590,1
    - Dst: fu_raydium_tp_hid_device_write_images
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1592,1
    - Dst: FU_RAYDIUM_TP_FIRMWARE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1593,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1594,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1597,1
    - Dst: fu_raydium_tp_hid_device_bl_software_reset
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1599,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1601,1
    - Dst: fu_raydium_tp_hid_device_verify_status
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1603,1
    - Dst: FU_RAYDIUM_TP_FIRMWARE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1603,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1605,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1569
    functionDepth: 9
    functionLinenumber: 1569
    functionLinenumberEnd: 1609
    functionName: fu_raydium_tp_hid_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_add_flag
    - fu_device_add_private_flag
    - FU_RAYDIUM_TP_HID_DEVICE
    - fu_progress_step_done
    - FU_RAYDIUM_TP_FIRMWARE
    - fu_raydium_tp_hid_device_bl_software_reset
    - FU_DEVICE
    - fu_raydium_tp_hid_device_write_images
    - fu_raydium_tp_hid_device_update_prepare
    - fu_progress_get_child
    - fu_raydium_tp_hid_device_verify_status
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_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/raydium-tp/fu-raydium-tp-hid-device.c:1614,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1615,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1616,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1617,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1618,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1619,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1611
    functionDepth: 3
    functionLinenumber: 1611
    functionLinenumberEnd: 1621
    functionName: fu_raydium_tp_hid_device_set_progress
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_raydium_tp_hid_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1626,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1628,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1628,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1628,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1629,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1633,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1623
    functionDepth: 1
    functionLinenumber: 1623
    functionLinenumberEnd: 1639
    functionName: fu_raydium_tp_hid_device_probe
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error
    - FU_UDEV_DEVICE
    - fu_udev_device_get_subsystem
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_RAYDIUM_TP_HID_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1644,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1646,1
    - Dst: fu_raydium_tp_hid_device_ensure_version
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1649,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1650,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1641
    functionDepth: 7
    functionLinenumber: 1641
    functionLinenumberEnd: 1656
    functionName: fu_raydium_tp_hid_device_setup
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - FU_RAYDIUM_TP_HID_DEVICE
    - FU_DEVICE_CLASS
    - fu_raydium_tp_hid_device_ensure_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_raydium_tp_hid_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1661,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1658
    functionDepth: 1
    functionLinenumber: 1658
    functionLinenumberEnd: 1662
    functionName: fu_raydium_tp_hid_device_convert_version
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_raydium_tp_hid_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1667,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1667,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1668,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1668,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1669,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1669,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1670,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1670,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1671,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1671,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1672,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1672,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1673,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1673,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1674,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1674,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1675,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1675,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1676,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1676,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1677,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1677,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1678,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1678,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1679,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRaydiumTpHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1664
    functionDepth: 6
    functionLinenumber: 1664
    functionLinenumberEnd: 1680
    functionName: fu_raydium_tp_hid_device_init
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_icon
    - fu_device_set_name
    - FU_DEVICE
    - fu_device_retry_add_recovery
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    linkageType: ''
    returnType: void
    signature: void fu_raydium_tp_hid_device_init(FuRaydiumTpHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c:1685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRaydiumTpHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1682
    functionDepth: 0
    functionLinenumber: 1682
    functionLinenumberEnd: 1693
    functionName: fu_raydium_tp_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_raydium_tp_hid_device_class_init(FuRaydiumTpHidDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_RAYDIUM_TP_IMAGE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c:21,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: fu_raydium_tp_image_export
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_RAYDIUM_TP_IMAGE
    linkageType: ''
    returnType: void
    signature: void fu_raydium_tp_image_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c:28,1
    - Dst: FU_IS_RAYDIUM_TP_IMAGE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRaydiumTpImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: fu_raydium_tp_image_get_checksum
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_RAYDIUM_TP_IMAGE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_raydium_tp_image_get_checksum(FuRaydiumTpImage *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_RAYDIUM_TP_IMAGE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c:38,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c:41,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c:43,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c:46,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c:52,1
    - Dst: fu_input_stream_compute_crc32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c:55,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c:57,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c:64,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 75
    functionName: fu_raydium_tp_image_parse
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u32
    - fu_input_stream_size
    - g_set_error
    - g_set_error_literal
    - g_autoptr
    - FU_RAYDIUM_TP_IMAGE
    - fu_partial_input_stream_new
    - fu_input_stream_compute_crc32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_raydium_tp_image_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/raydium-tp/fu-raydium-tp-image.c:80,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c:80,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c:81,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c:81,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c:82,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRaydiumTpImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: fu_raydium_tp_image_init
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_raydium_tp_image_init(FuRaydiumTpImage *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRaydiumTpImageClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: fu_raydium_tp_image_class_init
    functionSourceFile: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_raydium_tp_image_class_init(FuRaydiumTpImageClass *klass)
  - 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: 8
    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:63,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:66,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:68,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:69,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:70,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 75
    functionName: fu_algoltek_usb_firmware_parse
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_algoltek_product_identity_parse_stream
    - fu_firmware_set_id
    - fu_firmware_set_version
    - fu_firmware_add_image
    - fu_firmware_parse_stream
    - fu_firmware_new
    - g_autoptr
    - fu_partial_input_stream_new
    - fu_struct_algoltek_product_identity_get_version
    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:80,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:80,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:82,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:84,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:87,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:89,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:92,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 77
    functionDepth: 5
    functionLinenumber: 77
    functionLinenumberEnd: 95
    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
    - fu_firmware_get_image_by_id_bytes
    - g_steal_pointer
    - g_byte_array_new
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_algoltek_usb_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:100,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:100,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:101,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAlgoltekUsbFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: fu_algoltek_usb_firmware_init
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_size_max
    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:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAlgoltekUsbFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 111
    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_udev_subsystem
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-plugin.c:29,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-plugin.c:30,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    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_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAlgoltekUsbPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    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: 4
    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
    - fu_usb_device_control_transfer
    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:56,1
    - Dst: fu_algoltek_usb_device_ctrl_transfer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:58,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - address
    - error
    argTypes:
    - FuAlgoltekUsbDevice*
    - int
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 70
    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_len
    - fu_struct_algoltek_cmd_address_pkt_new
    - fu_struct_algoltek_cmd_address_pkt_set_address
    - fu_algoltek_usb_device_ctrl_transfer
    - g_steal_pointer
    - fu_sum8
    - fu_struct_algoltek_cmd_address_pkt_set_cmd
    - fu_struct_algoltek_cmd_address_pkt_set_checksum
    - g_autoptr
    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:76,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:76,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:77,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:77,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_set_len
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:79,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_set_cmd
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:80,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_set_checksum
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:81,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:82,1
    - Dst: fu_algoltek_usb_device_ctrl_transfer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:84,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:94,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:115,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:121,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:126,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAlgoltekUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 72
    functionDepth: 5
    functionLinenumber: 72
    functionLinenumberEnd: 127
    functionName: fu_algoltek_usb_device_rdv
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_algoltek_usb_device_ctrl_transfer
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - fu_sum8
    - g_byte_array_new
    - fu_struct_algoltek_cmd_transfer_pkt_set_cmd
    - fu_struct_algoltek_cmd_transfer_pkt_new
    - fu_struct_algoltek_cmd_transfer_pkt_set_checksum
    - g_autoptr
    - fu_memread_uint16_safe
    - fu_struct_algoltek_cmd_transfer_pkt_set_len
    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:132,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:132,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_len
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:134,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_cmd
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:135,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_checksum
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:136,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:137,1
    - Dst: fu_algoltek_usb_device_ctrl_transfer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:139,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAlgoltekUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 129
    functionDepth: 5
    functionLinenumber: 129
    functionLinenumberEnd: 152
    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_len
    - fu_struct_algoltek_cmd_address_pkt_new
    - fu_algoltek_usb_device_ctrl_transfer
    - g_prefix_error_literal
    - fu_sum8
    - fu_struct_algoltek_cmd_address_pkt_set_cmd
    - fu_struct_algoltek_cmd_address_pkt_set_checksum
    - g_autoptr
    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:157,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:157,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_len
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:159,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_cmd
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:160,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_address
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:161,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_checksum
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:162,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:163,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:166,1
    - Dst: fu_algoltek_usb_device_ctrl_transfer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:174,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - address
    - error
    argTypes:
    - FuAlgoltekUsbDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 154
    functionDepth: 5
    functionLinenumber: 154
    functionLinenumberEnd: 187
    functionName: fu_algoltek_usb_device_rst
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_algoltek_cmd_address_pkt_set_len
    - fu_struct_algoltek_cmd_address_pkt_new
    - fu_struct_algoltek_cmd_address_pkt_set_address
    - g_set_error
    - fu_algoltek_usb_device_ctrl_transfer
    - g_prefix_error_literal
    - fu_sum8
    - fu_struct_algoltek_cmd_address_pkt_set_cmd
    - fu_struct_algoltek_cmd_address_pkt_set_checksum
    - g_autoptr
    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:192,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:192,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_len
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:194,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_cmd
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:195,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_address
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:196,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_value
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:197,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_checksum
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:198,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:199,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:202,1
    - Dst: fu_algoltek_usb_device_ctrl_transfer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:210,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - self
    - address
    - value
    - error
    argTypes:
    - FuAlgoltekUsbDevice*
    - int
    - int
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 189
    functionDepth: 5
    functionLinenumber: 189
    functionLinenumberEnd: 223
    functionName: fu_algoltek_usb_device_wrr
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_algoltek_cmd_address_pkt_set_len
    - fu_struct_algoltek_cmd_address_pkt_new
    - fu_struct_algoltek_cmd_address_pkt_set_address
    - fu_struct_algoltek_cmd_address_pkt_set_value
    - g_set_error
    - fu_algoltek_usb_device_ctrl_transfer
    - g_prefix_error_literal
    - fu_sum8
    - fu_struct_algoltek_cmd_address_pkt_set_cmd
    - fu_struct_algoltek_cmd_address_pkt_set_checksum
    - g_autoptr
    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:233,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:235,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:242,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:243,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:243,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:245,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:246,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:247,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:248,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:250,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_set_len
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:253,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:255,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_set_cmd
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:256,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_set_address
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:257,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:257,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_set_data
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:258,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:259,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:260,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:262,1
    - Dst: fu_struct_algoltek_cmd_transfer_pkt_set_checksum
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:265,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:267,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:269,1
    - Dst: fu_algoltek_usb_device_ctrl_transfer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:277,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:285,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:288,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: 292
      start: 225
    functionDepth: 5
    functionLinenumber: 225
    functionLinenumberEnd: 292
    functionName: fu_algoltek_usb_device_isp
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_sum8
    - fu_struct_algoltek_cmd_transfer_pkt_new
    - fu_struct_algoltek_cmd_transfer_pkt_set_checksum
    - fu_algoltek_usb_device_ctrl_transfer
    - fu_struct_algoltek_cmd_transfer_pkt_set_len
    - fu_progress_set_steps
    - g_prefix_error_literal
    - fu_chunk_array_new_from_stream
    - fu_struct_algoltek_cmd_transfer_pkt_set_cmd
    - fu_struct_algoltek_cmd_transfer_pkt_set_address
    - fu_progress_step_done
    - fu_chunk_get_data
    - fu_struct_algoltek_cmd_transfer_pkt_set_data
    - fu_chunk_array_length
    - fu_chunk_get_address
    - fu_progress_set_id
    - g_set_error
    - fu_chunk_array_index
    - g_autoptr
    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:297,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:297,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_len
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:299,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_cmd
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:300,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_address
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:301,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_checksum
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:302,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:303,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:306,1
    - Dst: fu_algoltek_usb_device_ctrl_transfer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:314,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - address
    - error
    argTypes:
    - FuAlgoltekUsbDevice*
    - int
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 294
    functionDepth: 5
    functionLinenumber: 294
    functionLinenumberEnd: 327
    functionName: fu_algoltek_usb_device_bot
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_algoltek_cmd_address_pkt_set_len
    - fu_struct_algoltek_cmd_address_pkt_new
    - fu_struct_algoltek_cmd_address_pkt_set_address
    - g_set_error
    - fu_algoltek_usb_device_ctrl_transfer
    - g_prefix_error_literal
    - fu_sum8
    - fu_struct_algoltek_cmd_address_pkt_set_cmd
    - fu_struct_algoltek_cmd_address_pkt_set_checksum
    - g_autoptr
    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:336,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:336,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_len
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:338,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_cmd
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:339,1
    - Dst: fu_struct_algoltek_cmd_address_pkt_set_checksum
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:340,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:341,1
    - Dst: fu_algoltek_usb_device_ctrl_transfer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:344,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:352,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: 356
      start: 329
    functionDepth: 5
    functionLinenumber: 329
    functionLinenumberEnd: 356
    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_len
    - fu_struct_algoltek_cmd_address_pkt_new
    - fu_algoltek_usb_device_ctrl_transfer
    - g_prefix_error_literal
    - fu_sum8
    - fu_struct_algoltek_cmd_address_pkt_set_cmd
    - fu_struct_algoltek_cmd_address_pkt_set_checksum
    - g_autoptr
    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:362,1
    - Dst: fu_algoltek_usb_device_rdr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:365,1
    - Dst: FU_ALGOLTEK_USB_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:365,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:376,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 358
    functionDepth: 6
    functionLinenumber: 358
    functionLinenumberEnd: 383
    functionName: fu_algoltek_usb_device_status_check_cb
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_algoltek_usb_device_rdr
    - g_set_error_literal
    - g_autoptr
    - FU_ALGOLTEK_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usb_device_status_check_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:391,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:392,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:392,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:394,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:401,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:402,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:402,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:403,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:406,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:407,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:407,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:409,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:412,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:412,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:412,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:414,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:420,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:421,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:424,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:425,1
    - Dst: fu_algoltek_usb_device_ctrl_transfer
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:427,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:435,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:439,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:440,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:440,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:448,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - self
    - stream
    - progress
    - error
    argTypes:
    - FuAlgoltekUsbDevice*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 385
    functionDepth: 5
    functionLinenumber: 385
    functionLinenumberEnd: 451
    functionName: fu_algoltek_usb_device_wrf
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_algoltek_usb_device_ctrl_transfer
    - fu_progress_set_steps
    - g_prefix_error_literal
    - g_byte_array_new
    - fu_chunk_array_new_from_stream
    - fu_progress_step_done
    - FU_DEVICE
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_chunk_array_length
    - fu_chunk_get_address
    - fu_progress_set_id
    - fu_chunk_array_index
    - fu_device_retry_full
    - fu_memread_uint16
    - g_autoptr
    - fu_byte_array_set_size
    - fu_memwrite_uint24
    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:456,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:458,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:461,1
    - Dst: fu_algoltek_usb_device_rdv
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:464,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:467,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 453
    functionDepth: 6
    functionLinenumber: 453
    functionLinenumberEnd: 473
    functionName: fu_algoltek_usb_device_setup
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_algoltek_usb_device_rdv
    - fu_strsafe
    - fu_device_set_version
    - FU_ALGOLTEK_USB_DEVICE
    - g_autoptr
    - FU_DEVICE_CLASS
    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:482,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:483,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:484,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:487,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:488,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:489,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:490,1
    - Dst: fu_algoltek_usb_device_en
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:492,1
    - Dst: fu_algoltek_usb_device_rst
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:495,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:498,1
    - Dst: FU_DEVICE
      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:500,1
    - Dst: fu_algoltek_usb_device_wrr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:503,1
    - Dst: fu_algoltek_usb_device_wrr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:506,1
    - Dst: fu_algoltek_usb_device_wrr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:509,1
    - Dst: fu_algoltek_usb_device_wrr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:512,1
    - Dst: fu_algoltek_usb_device_wrr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:515,1
    - Dst: fu_algoltek_usb_device_wrr
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:518,1
    - Dst: fu_algoltek_usb_device_rst
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:521,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:524,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:524,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:527,1
    - Dst: fu_algoltek_usb_device_isp
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:530,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:533,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:536,1
    - Dst: fu_algoltek_usb_device_bot
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:538,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:541,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:541,1
    - Dst: fu_algoltek_usb_device_ers
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:543,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:547,1
    - Dst: fu_algoltek_usb_device_ers
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:548,1
    - Dst: fu_algoltek_usb_device_ers
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:551,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:554,1
    - Dst: fu_algoltek_usb_device_ers
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:558,1
    - Dst: fu_algoltek_usb_device_ers
      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:565,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:567,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:567,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:571,1
    - Dst: fu_algoltek_usb_device_wrf
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:574,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:576,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:580,1
    - Dst: fu_algoltek_usb_device_rst
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:582,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:586,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: 590
      start: 475
    functionDepth: 6
    functionLinenumber: 475
    functionLinenumberEnd: 590
    functionName: fu_algoltek_usb_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_firmware_get_image_by_id_stream
    - fu_algoltek_usb_device_wrf
    - fu_device_has_flag
    - fu_algoltek_usb_device_bot
    - fu_algoltek_usb_device_wrr
    - fu_algoltek_usb_device_isp
    - fu_progress_add_step
    - fu_device_sleep
    - fu_progress_step_done
    - FU_DEVICE
    - FU_ALGOLTEK_USB_DEVICE
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_algoltek_usb_device_en
    - fu_device_has_private_flag
    - fu_algoltek_usb_device_ers
    - g_autoptr
    - fu_algoltek_usb_device_rst
    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:595,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:596,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:597,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:598,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:599,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 601
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:606,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:606,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:607,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:607,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:608,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:608,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:610,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:610,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:611,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:611,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:612,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:612,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:613,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:613,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:614,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAlgoltekUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 603
    functionDepth: 6
    functionLinenumber: 603
    functionLinenumberEnd: 615
    functionName: fu_algoltek_usb_device_init
    functionSourceFile: /src/fwupd/plugins/algoltek-usb/fu-algoltek-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - FU_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAlgoltekUsbDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 624
    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:
    - g_debug
    - g_set_error_literal
    - FU_MSR_PLUGIN
    - g_file_test
    - fu_cpuid
    - fu_cpu_get_vendor
    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_literal
      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_literal
      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_literal
      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_literal
      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_literal
      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_literal
      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_literal
      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_literal
      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: 4
    functionLinenumber: 229
    functionLinenumberEnd: 411
    functionName: fu_msr_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_locker_new
    - fu_cpuid
    - fu_memread_uint32_safe
    - fu_device_set_physical_id
    - g_prefix_error_literal
    - fu_plugin_cache_lookup
    - fu_memread_uint64_safe
    - fu_udev_device_get_subsystem
    - g_path_get_basename
    - fu_udev_device_get_sysfs_path
    - fu_device_set_version_raw
    - FU_MSR_PLUGIN
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_dump_raw
    - g_strcmp0
    - fu_udev_device_pread
    - fu_cpu_get_vendor
    - FU_IS_UDEV_DEVICE
    - g_autoptr
    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_plugin_cache_add
    - fu_device_get_plugin
    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:
    - fwupd_security_attr_add_guids
    - fwupd_security_attr_set_result
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - FU_MSR_PLUGIN
    - fu_plugin_cache_lookup
    - fu_device_get_guids
    - fu_cpu_get_vendor
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - 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:461,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:464,1
    - Dst: fu_processor_device_needs_mitigation
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:470,1
    - Dst: FU_PROCESSOR_DEVICE
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:470,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:475,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:476,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:477,1
    - Dst: fwupd_security_attr_add_guids
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:478,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:478,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:482,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:488,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:489,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:495,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:496,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:500,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:501,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:506,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 507
    functionName: fu_msr_plugin_add_security_attr_intel_gds
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_guids
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_plugin_security_attr_new
    - FU_MSR_PLUGIN
    - FU_PROCESSOR_DEVICE
    - fu_plugin_cache_lookup
    - fu_device_get_guids
    - fu_cpu_get_vendor
    - fu_processor_device_needs_mitigation
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    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:512,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:513,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:516,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:520,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:524,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:525,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:526,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:531,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:535,1
    - Dst: fwupd_security_attr_remove_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:536,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:537,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:541,1
    - Dst: fwupd_security_attr_remove_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:542,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:543,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:547,1
    - Dst: fwupd_security_attr_remove_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:548,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:549,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 509
    functionDepth: 3
    functionLinenumber: 509
    functionLinenumberEnd: 552
    functionName: fu_msr_plugin_add_security_attr_intel_tme_enabled
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_plugin_security_attr_new
    - FU_MSR_PLUGIN
    - fu_cpu_get_vendor
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_remove_flag
    - fu_security_attrs_append
    - fu_security_attrs_get_by_appstream_id
    - g_autoptr
    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:557,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:558,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:559,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:562,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:566,1
    - Dst: fwupd_security_attr_add_guids
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:568,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:568,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:569,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:570,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:574,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:575,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:579,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:580,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:585,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 586
    functionName: fu_msr_plugin_add_security_attr_dci_locked
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_guids
    - fwupd_security_attr_set_result
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - FU_MSR_PLUGIN
    - fu_plugin_cache_lookup
    - fu_device_get_guids
    - fu_cpu_get_vendor
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - 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:591,1
    - Dst: fu_kernel_check_version
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - plugin
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 588
    functionDepth: 3
    functionLinenumber: 588
    functionLinenumberEnd: 593
    functionName: fu_msr_plugin_safe_kernel_for_sme
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_config_value
    - fu_kernel_check_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_msr_plugin_safe_kernel_for_sme(FuPlugin *plugin, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:598,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:598,1
    - Dst: fu_context_get_path_store
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:599,1
    - 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: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMsrPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 595
    functionDepth: 3
    functionLinenumber: 595
    functionLinenumberEnd: 620
    functionName: fu_msr_plugin_kernel_enabled_sme
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - FU_PLUGIN
    - g_hash_table_lookup
    - g_set_error_literal
    - fu_plugin_get_context
    - fu_context_get_path_store
    - g_strsplit
    - g_auto
    - g_autoptr
    - fu_cpu_get_attrs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_msr_plugin_kernel_enabled_sme(FuMsrPlugin *self, 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_safe_kernel_for_sme
    - fwupd_security_attr_add_guids
    - fwupd_security_attr_set_result
    - fwupd_security_attr_add_flag
    - g_debug
    - fu_plugin_security_attr_new
    - FU_MSR_PLUGIN
    - fu_plugin_cache_lookup
    - fu_device_get_guids
    - fu_cpu_get_vendor
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    - fwupd_security_attr_add_obsolete
    - 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: 8
    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: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:681,1
    - Dst: fu_processor_device_needs_mitigation
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:689,1
    - Dst: FU_PROCESSOR_DEVICE
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:689,1
    - Dst: fu_processor_device_get_sinkclose_microcode_ver
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:692,1
    - Dst: FU_PROCESSOR_DEVICE
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:692,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:693,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:694,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:696,1
    - Dst: g_info
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:697,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:703,1
    - Dst: fwupd_security_attr_add_guids
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:705,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:705,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:706,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:707,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:710,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:711,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:714,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:715,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:717,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 672
    functionDepth: 3
    functionLinenumber: 672
    functionLinenumberEnd: 718
    functionName: fu_msr_plugin_add_security_attr_amd_hwcr
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_raw
    - g_debug
    - g_info
    - fwupd_security_attr_add_guids
    - fu_processor_device_get_sinkclose_microcode_ver
    - fu_plugin_security_attr_new
    - fwupd_security_attr_set_result
    - fwupd_security_attr_add_flag
    - FU_MSR_PLUGIN
    - FU_PROCESSOR_DEVICE
    - fu_plugin_cache_lookup
    - fu_device_get_guids
    - fu_cpu_get_vendor
    - fu_processor_device_needs_mitigation
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    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:723,1
    - Dst: fu_msr_plugin_add_security_attr_dci_locked
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:724,1
    - Dst: fu_msr_plugin_add_security_attr_amd_sme_enabled
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:725,1
    - Dst: fu_msr_plugin_add_security_attr_intel_tme_enabled
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:726,1
    - Dst: fu_msr_plugin_add_security_attr_intel_gds
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:727,1
    - Dst: fu_msr_plugin_add_security_attr_amd_hwcr
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 720
    functionDepth: 5
    functionLinenumber: 720
    functionLinenumberEnd: 729
    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_dci_locked
    - fu_msr_plugin_add_security_attr_dci_enabled
    - fu_msr_plugin_add_security_attr_amd_sme_enabled
    - fu_msr_plugin_add_security_attr_intel_tme_enabled
    - fu_msr_plugin_add_security_attr_intel_gds
    - fu_msr_plugin_add_security_attr_amd_hwcr
    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:735,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:736,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - plugin
    - key
    - value
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 744
    functionName: fu_msr_plugin_modify_config
    functionSourceFile: /src/fwupd/plugins/msr/fu-msr-plugin.c
    functionUses: 0
    functionsReached:
    - g_strv_contains
    - fu_plugin_set_config_value
    - g_set_error
    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: 749
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 749
    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:754,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:755,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:758,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/msr/fu-msr-plugin.c:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 751
    functionDepth: 4
    functionLinenumber: 751
    functionLinenumberEnd: 762
    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
    - G_OBJECT_CLASS
    - 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:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMsrPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 775
    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:
    - fwupd_security_attr_get_result
    - fwupd_codec_to_string
    - fu_context_new
    - fwupd_security_attr_has_flag
    - FWUPD_CODEC
    - fu_uefi_mok_attr_new
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fwupd_security_attr_set_created
    - g_assert_false
    - fu_plugin_new
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    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:
    - fwupd_security_attr_get_result
    - fwupd_codec_to_string
    - fu_context_new
    - fwupd_security_attr_has_flag
    - FWUPD_CODEC
    - fu_uefi_mok_attr_new
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fwupd_security_attr_set_created
    - g_assert_false
    - fu_plugin_new
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    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:
    - fwupd_security_attr_get_result
    - fwupd_codec_to_string
    - fu_context_new
    - fwupd_security_attr_has_flag
    - FWUPD_CODEC
    - fu_uefi_mok_attr_new
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fwupd_security_attr_set_created
    - fu_plugin_new
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    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_test_init
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:138,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:139,1
    - Dst: g_test_add_func
      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_run
      Src: /src/fwupd/plugins/uefi-mok/fu-self-test.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 143
    functionName: main
    functionSourceFile: /src/fwupd/plugins/uefi-mok/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:21,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - plugin
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 29
    functionName: fu_uefi_mok_plugin_get_filename
    functionSourceFile: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_context
    - fu_context_build_filename
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_mok_plugin_get_filename(FuPlugin *plugin, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_uefi_mok_plugin_get_filename
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:37,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:40,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: fu_uefi_mok_plugin_startup
    functionSourceFile: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c
    functionUses: 0
    functionsReached:
    - g_file_test
    - fu_uefi_mok_plugin_get_filename
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_mok_plugin_startup(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:53,1
    - Dst: fu_uefi_mok_plugin_get_filename
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:56,1
    - Dst: fu_uefi_mok_attr_new
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:59,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:61,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:62,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: fu_uefi_mok_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/uefi-mok/fu-uefi-mok-plugin.c
    functionUses: 0
    functionsReached:
    - fu_uefi_mok_attr_new
    - g_warning
    - g_error_matches
    - fu_security_attrs_append
    - fu_uefi_mok_plugin_get_filename
    - 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: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    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:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiMokPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    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_strcmp0
    - fu_bytes_get_contents
    - fwupd_security_attr_set_plugin
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_plugin_security_attr_new
    - fu_strsplit_bytes
    - g_steal_pointer
    - g_strsplit
    - g_strv_length
    - fu_uefi_mok_hsi_key_from_string
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_add_metadata
    - g_auto
    - g_autoptr
    linkageType: ''
    returnType: FwupdSecurityAttr
    signature: 'FwupdSecurityAttr *

      fu_uefi_mok_attr_new(FuPlugin *plugin, const gchar *filename, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_GPU_UMA_SETTING
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:37,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:39,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:43,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:50,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:52,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:60,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:61,1
    - Dst: fu_io_channel_write_raw
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:65,1
    - Dst: strlen
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:67,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:71,1
    - Dst: fwupd_bios_setting_set_current_value
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:75,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:76,1
    - Dst: fwupd_bios_setting_get_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FwupdBiosSetting*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 78
    functionName: fu_amd_gpu_uma_setting_write_value
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c
    functionUses: 0
    functionsReached:
    - fu_io_channel_new_file
    - fwupd_bios_setting_get_id
    - fwupd_bios_setting_set_current_value
    - g_debug
    - g_set_error
    - g_set_error_literal
    - g_hash_table_lookup
    - g_prefix_error
    - fu_io_channel_write_raw
    - strlen
    - FU_AMD_GPU_UMA_SETTING
    - g_autoptr
    - g_build_filename
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_amd_gpu_uma_setting_write_value(FwupdBiosSetting *self,
      const gchar *value, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_GPU_UMA_SETTING
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:83,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:84,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:85,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:86,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: fu_amd_gpu_uma_setting_finalize
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c
    functionUses: 0
    functionsReached:
    - g_hash_table_unref
    - g_free
    - FU_AMD_GPU_UMA_SETTING
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_uma_setting_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_GPU_UMA_SETTING
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:93,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:94,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdGpuUmaSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: fu_amd_gpu_uma_setting_init
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c
    functionUses: 0
    functionsReached:
    - g_hash_table_new_full
    - FU_AMD_GPU_UMA_SETTING
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_uma_setting_init(FuAmdGpuUmaSetting *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:101,1
    - Dst: FWUPD_BIOS_SETTING_CLASS
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdGpuUmaSettingClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: fu_amd_gpu_uma_setting_class_init
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c
    functionUses: 0
    functionsReached:
    - FWUPD_BIOS_SETTING_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_uma_setting_class_init(FuAmdGpuUmaSettingClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:121,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:122,1
    - Dst: g_strchomp
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - path
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 128
    functionName: fu_amd_gpu_uma_read_file
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c
    functionUses: 0
    functionsReached:
    - g_file_get_contents
    - g_prefix_error
    - g_strchomp
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_amd_gpu_uma_read_file(const gchar *path, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:146,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:148,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:150,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:151,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:153,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:154,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - device_sysfs_path
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 163
    functionName: fu_amd_gpu_uma_check_support
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_file_test
    - g_set_error_literal
    - g_build_filename
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_amd_gpu_uma_check_support(const gchar *device_sysfs_path,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:185,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:186,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:188,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:189,1
    - Dst: fu_amd_gpu_uma_check_support
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:191,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:194,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:196,1
    - Dst: FU_AMD_GPU_UMA_SETTING
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:197,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:198,1
    - Dst: fwupd_bios_setting_set_name
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:200,1
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:200,1
    - Dst: fwupd_bios_setting_set_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:201,1
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:201,1
    - Dst: fwupd_bios_setting_set_description
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:202,1
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:203,1
    - Dst: fwupd_bios_setting_set_kind
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:205,1
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:205,1
    - Dst: fwupd_bios_setting_set_path
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:206,1
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:206,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:208,1
    - Dst: fu_amd_gpu_uma_read_file
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:209,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:213,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:219,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:219,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:224,1
    - Dst: g_strstrip
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:225,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:227,1
    - Dst: fwupd_bios_setting_add_possible_value
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:229,1
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:229,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:231,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:232,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:233,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:234,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:235,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:236,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:239,1
    - Dst: fu_amd_gpu_uma_read_file
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:240,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:244,1
    - Dst: fwupd_bios_setting_set_current_value
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:246,1
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:246,1
    - Dst: fwupd_bios_setting_set_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:248,1
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:248,1
    - Dst: FWUPD_BIOS_SETTING
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:249,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c:249,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 2
    argNames:
    - device_sysfs_path
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 250
    functionName: fu_amd_gpu_uma_get_setting
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - g_hash_table_lookup
    - fwupd_bios_setting_set_filename
    - g_object_new
    - fwupd_bios_setting_set_kind
    - g_autoptr
    - g_auto
    - fwupd_bios_setting_set_current_value
    - FWUPD_BIOS_SETTING
    - g_strsplit
    - fwupd_bios_setting_set_name
    - fu_amd_gpu_uma_read_file
    - g_strstrip
    - fwupd_bios_setting_set_path
    - fu_amd_gpu_uma_check_support
    - g_return_val_if_fail
    - g_strdup
    - g_steal_pointer
    - FU_AMD_GPU_UMA_SETTING
    - fwupd_bios_setting_add_possible_value
    - fwupd_bios_setting_set_description
    - fwupd_bios_setting_set_id
    - g_build_filename
    linkageType: ''
    returnType: FwupdBiosSetting
    signature: 'FwupdBiosSetting *

      fu_amd_gpu_uma_get_setting(const gchar *device_sysfs_path, 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:56,1
    - Dst: fu_struct_psp_dir_validate_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:59,1
    - Dst: fu_struct_efs_get_psp_dir_loc
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 60
    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_psp_dir_validate_stream
    - g_autoptr
    - fu_struct_efs_get_psp_dir_loc
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:68,1
    - Dst: fu_struct_psp_dir_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:71,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:74,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:75,1
    - Dst: fu_struct_psp_dir_get_total_entries
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:79,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:80,1
    - Dst: fu_struct_psp_dir_table_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:81,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:84,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - self
    - stream
    - offset
    - error
    argTypes:
    - FuAmdGpuPspFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 92
    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_get_total_entries
    - fu_struct_psp_dir_table_parse_stream
    - g_prefix_error_literal
    - g_prefix_error
    - fu_size_checked_inc
    - g_autoptr
    - fu_struct_psp_dir_parse_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_gpu_psp_firmware_parse_l2(FuAmdGpuPspFirmware *self,\n\t\t\t\t
      GInputStream *stream,\n\t\t\t\t gsize offset,\n\t\t\t\t GError **error)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:101,1
    - Dst: fu_struct_psp_dir_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:104,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:107,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:108,1
    - Dst: fu_struct_psp_dir_get_total_entries
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:112,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:115,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:117,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:117,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:118,1
    - Dst: fu_amd_gpu_atom_firmware_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:119,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:119,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:120,1
    - Dst: fu_struct_psp_dir_table_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:122,1
    - Dst: fu_struct_psp_dir_table_get_fw_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:126,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:128,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:131,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:134,1
    - Dst: fu_struct_psp_dir_table_get_fw_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:138,1
    - Dst: fu_struct_psp_dir_table_get_loc
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:143,1
    - Dst: fu_struct_image_slot_header_parse_stream
      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:147,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:149,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:150,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:150,1
    - Dst: fu_struct_image_slot_header_get_loc_csm
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:154,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:155,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:156,1
    - Dst: fu_struct_image_slot_header_get_loc
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:159,1
    - Dst: fu_struct_image_slot_header_get_slot_max_size
      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:161,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:163,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:164,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:167,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:168,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:171,1
    - Dst: fu_struct_image_slot_header_get_fw_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:175,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:178,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:179,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:182,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:185,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:186,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:188,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:189,1
    - Dst: fu_amd_gpu_psp_firmware_parse_l2
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:193,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:197,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:198,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 80
    argCount: 5
    argNames:
    - self
    - stream
    - offset
    - flags
    - error
    argTypes:
    - FuAmdGpuPspFirmware*
    - GInputStream*
    - gsize
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 204
    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_psp_dir_table_parse_stream
    - fu_amd_gpu_psp_firmware_parse_l2
    - fu_firmware_set_addr
    - fu_struct_psp_dir_table_get_fw_id
    - fu_firmware_add_image
    - fu_amd_gpu_atom_firmware_new
    - g_prefix_error_literal
    - fu_struct_image_slot_header_get_loc_csm
    - fu_struct_image_slot_header_get_slot_max_size
    - fu_struct_psp_dir_get_total_entries
    - fu_struct_psp_dir_table_get_loc
    - fu_struct_image_slot_header_get_fw_id
    - FU_FIRMWARE
    - fu_firmware_new
    - fu_struct_image_slot_header_get_loc
    - fu_struct_psp_dir_parse_stream
    - fu_partial_input_stream_new
    - fu_firmware_set_id
    - g_set_error
    - fu_firmware_parse_stream
    - fu_firmware_add_image_gtype
    - g_prefix_error
    - fu_size_checked_inc
    - g_autoptr
    - fu_struct_image_slot_header_parse_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_gpu_psp_firmware_parse_l1(FuAmdGpuPspFirmware *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: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_GPU_PSP_FIRMWARE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:212,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:213,1
    - Dst: fu_struct_efs_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:215,1
    - Dst: fu_struct_efs_get_psp_dir_loc
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:218,1
    - Dst: fu_amd_gpu_psp_firmware_parse_l1
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 206
    functionDepth: 5
    functionLinenumber: 206
    functionLinenumberEnd: 221
    functionName: fu_amd_gpu_psp_firmware_parse
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_amd_gpu_psp_firmware_parse_l1
    - FU_AMD_GPU_PSP_FIRMWARE
    - fu_struct_efs_get_psp_dir_loc
    - fu_struct_efs_parse_stream
    - g_autoptr
    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:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:226,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:226,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:227,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdGpuPspFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: fu_amd_gpu_psp_firmware_init
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-psp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_size_max
    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:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdGpuPspFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 237
    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_AMDGPU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:43,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:45,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 47
    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: fu_device_get_context
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:52,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:58,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:61,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:61,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:62,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:62,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:62,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:64,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:68,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:68,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:69,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:69,1
    - Dst: fu_device_event_get_str
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:72,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:75,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:75,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:80,1
    - Dst: fu_device_get_context
      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: fu_device_save_event
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:82,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:82,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:86,1
    - Dst: g_dir_open
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:87,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:90,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:91,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:92,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:104,1
    - Dst: fu_device_event_set_str
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:112,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:115,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:115,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - self
    - base
    - error
    argTypes:
    - FuAmdGpuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 117
    functionName: fu_amd_gpu_device_set_device_file
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_context_build_filename
    - fu_device_load_event
    - fu_device_event_set_str
    - g_set_error_literal
    - fu_device_get_context
    - g_build_filename
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_save_event
    - fu_device_has_flag
    - fu_udev_device_set_device_file
    - g_dir_read_name
    - g_dir_open
    - FU_UDEV_DEVICE
    - g_str_has_prefix
    - g_autoptr
    - fu_device_event_get_str
    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:122,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:131,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:131,1
    - Dst: fu_amd_gpu_device_set_device_file
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:132,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:136,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:137,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:137,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:140,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:141,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:141,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:142,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:144,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:145,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:146,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:146,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:150,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:151,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:153,1
    - Dst: fu_device_query_file_exists
      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:157,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:158,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:159,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:160,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:161,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:162,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:163,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 119
    functionDepth: 6
    functionLinenumber: 119
    functionLinenumberEnd: 168
    functionName: fu_amd_gpu_device_probe
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_logical_id
    - fu_udev_device_get_sysfs_path
    - fu_device_add_private_flag
    - fu_device_add_protocol
    - FU_DEVICE
    - fu_amd_gpu_device_set_device_file
    - fu_device_set_install_duration
    - FU_UDEV_DEVICE
    - FU_AMDGPU_DEVICE
    - g_build_filename
    - fu_udev_device_add_open_flag
    - 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:173,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:173,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:178,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:178,1
    - Dst: amdgpu_device_initialize
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:181,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:181,1
    - Dst: amdgpu_get_marketing_name
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:186,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:188,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:188,1
    - Dst: amdgpu_device_deinitialize
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:189,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:191,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdGpuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 192
    functionName: fu_amd_gpu_device_set_marketing_name
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - fwupd_strerror
    - FU_DEVICE
    - fu_device_set_name
    - fu_udev_device_get_io_channel
    - fu_device_has_flag
    - fu_io_channel_unix_get_fd
    - g_warning
    - FU_UDEV_DEVICE
    - amdgpu_device_initialize
    - amdgpu_device_deinitialize
    - amdgpu_get_marketing_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:202,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: 205
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 205
    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:210,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:210,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:210,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:217,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:218,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:219,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:220,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuAmdGpuDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 207
    functionDepth: 4
    functionLinenumber: 207
    functionLinenumberEnd: 234
    functionName: fu_amd_gpu_device_ioctl_drm_info
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_execute
    - fu_ioctl_add_mutable_buffer
    - g_prefix_error_literal
    - fu_ioctl_add_key_as_u8
    - fu_udev_device_ioctl_new
    - FU_UDEV_DEVICE
    - fu_ioctl_add_key_as_u16
    - g_autoptr
    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:240,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:242,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:243,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:243,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:244,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:244,1
    - Dst: g_info
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:247,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:248,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:248,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:249,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:249,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:251,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - str
    - error
    argTypes:
    - FuAmdGpuDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 255
    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
    - g_info
    - fu_device_set_version_raw
    - fu_strtoull
    - g_steal_pointer
    - FU_DEVICE
    - fu_device_has_flag
    - fu_device_set_version_format
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_amd_gpu_device_parse_version_string(FuAmdGpuDevice *self,
      const gchar *str, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:260,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:260,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:262,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:263,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:264,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:266,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:266,1
    - Dst: fu_amd_gpu_uma_check_support
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:267,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:268,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:269,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:269,1
    - Dst: fu_context_get_bios_settings
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:273,1
    - Dst: fu_amd_gpu_uma_get_setting
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:277,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:279,1
    - Dst: fu_bios_settings_register_attr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:282,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdGpuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 284
    functionName: fu_amd_gpu_device_setup_bios_settings
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_sysfs_path
    - g_debug
    - fu_bios_settings_register_attr
    - fu_device_get_context
    - FU_DEVICE
    - fu_context_get_bios_settings
    - fu_amd_gpu_uma_get_setting
    - fu_device_get_name
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_amd_gpu_uma_check_support
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_device_setup_bios_settings(FuAmdGpuDevice *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMDGPU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:289,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:293,1
    - Dst: fu_amd_gpu_device_set_marketing_name
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:295,1
    - Dst: fu_amd_gpu_device_ioctl_drm_info
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:297,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:302,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:303,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:304,1
    - Dst: fu_strsplit
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:307,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:308,1
    - Dst: fu_amd_gpu_device_parse_version_string
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:309,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:313,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:314,1
    - Dst: fu_amd_gpu_device_setup_bios_settings
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 286
    functionDepth: 5
    functionLinenumber: 286
    functionLinenumberEnd: 319
    functionName: fu_amd_gpu_device_setup
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - fu_strsplit
    - fu_strsafe
    - fu_device_add_instance_id
    - fu_amd_gpu_device_ioctl_drm_info
    - fu_amd_gpu_device_setup_bios_settings
    - g_strdup_printf
    - g_strv_length
    - fu_amd_gpu_device_set_marketing_name
    - fu_device_set_summary
    - g_auto
    - FU_AMDGPU_DEVICE
    - fu_amd_gpu_device_parse_version_string
    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:324,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: fu_amd_gpu_device_convert_version
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_amd_gpu_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMDGPU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:333,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:334,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:335,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:336,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:340,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:343,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:346,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:350,1
    - Dst: fu_amd_gpu_atom_firmware_get_vbios_pn
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:350,1
    - Dst: FU_AMD_GPU_ATOM_FIRMWARE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:350,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:352,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:354,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:362,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 369
    functionName: fu_amd_gpu_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - FU_AMD_GPU_ATOM_FIRMWARE
    - g_strcmp0
    - fu_strsafe
    - g_set_error
    - fu_firmware_get_image_by_id
    - g_warning
    - fu_amd_gpu_atom_firmware_get_vbios_pn
    - FU_AMDGPU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_gpu_device_check_firmware(FuDevice *device,\n\t\t\t\t
      FuFirmware *firmware,\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:374,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:374,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:380,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:381,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:383,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:386,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 396
    functionName: fu_amd_gpu_device_wait_for_completion_cb
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_sysfs_path
    - g_set_error
    - fu_strtoull
    - g_file_get_contents
    - FU_UDEV_DEVICE
    - g_build_filename
    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:406,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:407,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:408,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:412,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:415,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:415,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:416,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:419,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:425,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:428,1
    - Dst: fu_io_channel_write_bytes
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:431,1
    - Dst: fu_io_channel_read_raw
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:435,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:442,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:445,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: 451
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 451
    functionName: fu_amd_gpu_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - fu_io_channel_write_bytes
    - fu_io_channel_new_file
    - fu_udev_device_get_sysfs_path
    - g_debug
    - fu_firmware_get_bytes
    - fu_io_channel_read_raw
    - fu_device_retry_full
    - fu_device_has_flag
    - FU_UDEV_DEVICE
    - g_autoptr
    - g_build_filename
    - fu_progress_set_id
    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:456,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:457,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:458,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:459,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:460,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 453
    functionDepth: 3
    functionLinenumber: 453
    functionLinenumberEnd: 462
    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 *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:467,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:467,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:468,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:468,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:469,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:469,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:470,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdGpuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 471
    functionName: fu_amd_gpu_device_init
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_version_format
    - fu_device_add_private_flag
    - fu_device_set_firmware_gtype
    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:476,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:477,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 479
    functionName: fu_amd_gpu_device_finalize
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c
    functionUses: 0
    functionsReached:
    - FU_AMDGPU_DEVICE
    - g_free
    - 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:484,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-device.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdGpuDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 494
    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: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:22,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:24,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:25,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:26,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:28,1
    - Dst: fu_amd_gpu_uma_check_support
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:29,1
    - Dst: fu_temporary_directory_get_path
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:29,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 31
    functionName: fu_amd_gpu_uma_check_support_no_support_func
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c
    functionUses: 0
    functionsReached:
    - fu_temporary_directory_get_path
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_false
    - fu_temporary_directory_new
    - g_autoptr
    - fu_amd_gpu_uma_check_support
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_uma_check_support_no_support_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:37,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:38,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:43,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:44,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:45,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:47,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:48,1
    - Dst: fu_path_mkdir
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:49,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:50,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:51,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:53,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:54,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:55,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:56,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:57,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:59,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:60,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:61,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:62,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:63,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:65,1
    - Dst: fu_amd_gpu_uma_check_support
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:66,1
    - Dst: fu_temporary_directory_get_path
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:66,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 68
    functionName: fu_amd_gpu_uma_check_support_with_support_func
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c
    functionUses: 0
    functionsReached:
    - fu_temporary_directory_get_path
    - g_assert_nonnull
    - g_assert_no_error
    - fu_temporary_directory_build
    - fu_path_mkdir
    - g_assert_true
    - fu_temporary_directory_new
    - g_autoptr
    - g_file_set_contents
    - fu_amd_gpu_uma_check_support
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_uma_check_support_with_support_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:75,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:79,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:82,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:83,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:84,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:86,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:87,1
    - Dst: fu_path_mkdir
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:88,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:89,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:90,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:92,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:93,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:94,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:95,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:96,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:98,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:99,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:100,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:104,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:105,1
    - Dst: fu_amd_gpu_uma_get_setting
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:107,1
    - Dst: fu_temporary_directory_get_path
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:107,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:108,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:109,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:111,1
    - Dst: fwupd_bios_setting_get_id
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:111,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:112,1
    - Dst: fwupd_bios_setting_get_name
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:112,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:113,1
    - Dst: fwupd_bios_setting_get_kind
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:113,1
    - Dst: fwupd_bios_setting_get_possible_values
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:117,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:118,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:120,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 121
    functionName: fu_amd_gpu_uma_get_setting_valid_func
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c
    functionUses: 0
    functionsReached:
    - fu_temporary_directory_get_path
    - fwupd_bios_setting_get_id
    - fwupd_bios_setting_get_name
    - fwupd_bios_setting_get_possible_values
    - fwupd_bios_setting_get_current_value
    - g_assert_nonnull
    - g_assert_no_error
    - fu_temporary_directory_build
    - g_assert_cmpint
    - fu_amd_gpu_uma_get_setting
    - fu_path_mkdir
    - g_assert_true
    - fu_temporary_directory_new
    - g_assert_cmpstr
    - g_autoptr
    - fwupd_bios_setting_get_kind
    - g_file_set_contents
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_uma_get_setting_valid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:128,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:131,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:132,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:133,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:135,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:136,1
    - Dst: fu_amd_gpu_uma_get_setting
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:138,1
    - Dst: g_assert_null
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:139,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 141
    functionName: fu_amd_gpu_uma_get_setting_invalid_func
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c
    functionUses: 0
    functionsReached:
    - g_assert_error
    - g_assert_nonnull
    - g_assert_no_error
    - fu_temporary_directory_build
    - fu_amd_gpu_uma_get_setting
    - fu_temporary_directory_new
    - g_autoptr
    - g_assert_null
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_uma_get_setting_invalid_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:147,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:148,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:153,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:155,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:156,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:157,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:159,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:160,1
    - Dst: fu_path_mkdir
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:161,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:162,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:163,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:165,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:166,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:167,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:168,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:169,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:171,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:172,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:173,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:177,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:178,1
    - Dst: fu_amd_gpu_uma_get_setting
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:180,1
    - Dst: fu_temporary_directory_get_path
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:180,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:181,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:182,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:184,1
    - Dst: fwupd_bios_setting_write_value
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:184,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:185,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:187,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:187,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:188,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:189,1
    - Dst: g_strstrip
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:189,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:191,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 192
    functionName: fu_amd_gpu_uma_write_value_func
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c
    functionUses: 0
    functionsReached:
    - fu_temporary_directory_get_path
    - fwupd_bios_setting_get_current_value
    - g_file_get_contents
    - g_assert_nonnull
    - g_assert_no_error
    - fu_temporary_directory_build
    - fwupd_bios_setting_write_value
    - g_strstrip
    - fu_amd_gpu_uma_get_setting
    - fu_path_mkdir
    - g_assert_true
    - fu_temporary_directory_new
    - g_assert_cmpstr
    - g_autoptr
    - g_file_set_contents
    linkageType: ''
    returnType: void
    signature: void fu_amd_gpu_uma_write_value_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:197,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:199,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:201,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:203,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:204,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:206,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: main
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c
    functionUses: 5
    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_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_AMD_GPU_ATOM_FIRMWARE
    - FU_FIRMWARE_CLASS
    - 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:71,1
    - Dst: fu_struct_atom_rom21_header_validate_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:74,1
    - Dst: fu_struct_atom_image_get_rom_loc
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 78
    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_image_parse_stream
    - g_autoptr
    - fu_struct_atom_image_get_rom_loc
    - fu_struct_atom_rom21_header_validate_stream
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdGpuAtomFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: fu_amd_gpu_atom_firmware_get_vbios_pn
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_amd_gpu_atom_firmware_get_vbios_pn(FuAmdGpuAtomFirmware *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:93,1
    - Dst: fu_memmem_safe
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:96,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:102,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:107,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:108,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:112,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:116,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - blob
    - error
    argTypes:
    - FuAmdGpuAtomFirmware*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 119
    functionName: fu_amd_gpu_atom_firmware_parse_vbios_version
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_memstrsafe
    - fu_firmware_set_version
    - g_bytes_get_data
    - FU_FIRMWARE
    - g_prefix_error_literal
    - fu_memmem_safe
    - fu_size_checked_inc
    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:126,1
    - Dst: fu_struct_atom_image_get_vbios_date
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:126,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:134,1
    - Dst: fu_struct_vbios_date_get_year
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:141,1
    - Dst: fu_struct_vbios_date_get_month
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:142,1
    - Dst: fu_struct_vbios_date_get_day
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:143,1
    - Dst: fu_struct_vbios_date_get_hours
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:144,1
    - Dst: fu_struct_vbios_date_get_minutes
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:145,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - self
    - st_image
    - error
    argTypes:
    - FuAmdGpuAtomFirmware*
    - FuStructAtomImage*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 151
    functionName: fu_amd_gpu_atom_firmware_parse_vbios_date
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_vbios_date_get_hours
    - fu_struct_vbios_date_get_minutes
    - fu_struct_vbios_date_get_day
    - g_set_error_literal
    - fu_struct_atom_image_get_vbios_date
    - fu_struct_vbios_date_get_year
    - g_strdup_printf
    - g_autoptr
    - fu_struct_vbios_date_get_month
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_amd_gpu_atom_firmware_parse_vbios_date(FuAmdGpuAtomFirmware
      *self,\n\t\t\t\t\t  FuStructAtomImage *st_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:163,1
    - Dst: fu_struct_atom_image_get_num_strings
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:166,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:168,1
    - Dst: fu_struct_atom_image_get_str_loc
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:174,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:176,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:184,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:184,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:186,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:197,1
    - Dst: strlen
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:201,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:205,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:208,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:211,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:214,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:217,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:231,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:238,1
    - Dst: fu_strstrip
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:241,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 4
    argNames:
    - self
    - blob
    - st_image
    - error
    argTypes:
    - FuAmdGpuAtomFirmware*
    - GBytes*
    - FuStructAtomImage*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 244
    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_memstrsafe
    - g_set_error
    - g_bytes_get_data
    - g_set_error_literal
    - FU_FIRMWARE
    - g_steal_pointer
    - fu_strstrip
    - fu_firmware_get_size
    - fu_struct_atom_image_get_str_loc
    - strlen
    - fu_struct_atom_image_get_num_strings
    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 *st_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:253,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:257,1
    - Dst: fu_struct_atom_rom21_header_get_config_filename_offset
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:259,1
    - Dst: fu_strstrip
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:267,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: 270
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 270
    functionName: fu_amd_gpu_atom_firmware_parse_config_filename
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    functionUses: 0
    functionsReached:
    - g_bytes_get_data
    - fu_struct_atom_rom21_header_get_config_filename_offset
    - 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:278,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: g_autoptr
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:282,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:284,1
    - Dst: fu_struct_atom_image_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:289,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:294,1
    - Dst: fu_struct_atom_image_get_size
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:294,1
    - Dst: fu_struct_atom_image_get_rom_loc
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:297,1
    - Dst: fu_struct_atom_rom21_header_parse_stream
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:298,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:302,1
    - Dst: fu_amd_gpu_atom_firmware_parse_config_filename
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:305,1
    - Dst: fu_amd_gpu_atom_firmware_parse_vbios_date
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:307,1
    - Dst: fu_amd_gpu_atom_firmware_parse_vbios_pn
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:309,1
    - Dst: fu_amd_gpu_atom_firmware_parse_vbios_version
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:311,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 315
    functionName: fu_amd_gpu_atom_firmware_parse
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_atom_image_get_size
    - FU_AMD_GPU_ATOM_FIRMWARE
    - fu_struct_atom_rom21_header_parse_stream
    - fu_input_stream_read_bytes
    - fu_amd_gpu_atom_firmware_parse_vbios_pn
    - fu_amd_gpu_atom_firmware_parse_config_filename
    - fu_struct_atom_image_parse_stream
    - FU_FIRMWARE_CLASS
    - fu_struct_atom_image_get_rom_loc
    - fu_amd_gpu_atom_firmware_parse_vbios_date
    - g_autoptr
    - fu_amd_gpu_atom_firmware_parse_vbios_version
    - fu_firmware_set_size
    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: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    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: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_free
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:332,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 334
    functionName: fu_amd_gpu_atom_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    functionUses: 0
    functionsReached:
    - FU_AMD_GPU_ATOM_FIRMWARE
    - g_free
    - 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:339,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdGpuAtomFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 345
    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:350,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: fu_amd_gpu_atom_firmware_new
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-atom-firmware.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-plugin.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 43
    functionName: fu_amd_gpu_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_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:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdGpuPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    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_steal_pointer
    - g_strstrip
    - g_string_free
    - g_string_new
    - 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:
    - FU_ATA_DEVICE
    - fwupd_codec_string_append_int
    - fwupd_codec_string_append_hex
    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_replace
    - g_string_free
    - g_string_new
    - g_string_append_c
    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:
    - fu_device_add_instance_id
    - g_debug
    - g_str_is_ascii
    - fu_device_build_vendor_id_u16
    - fu_device_add_private_flag
    - fu_ata_device_get_string
    - FU_DEVICE
    - g_strdup_printf
    - strlen
    - fu_device_set_vendor
    - fu_ata_device_get_guid_safe
    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: 5
    functionLinenumber: 174
    functionLinenumberEnd: 323
    functionName: fu_ata_device_parse_vendor_name
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_device_build_vendor_id_u16
    - g_pattern_match_simple
    - FU_DEVICE
    - fu_device_get_version
    - fu_device_set_name
    - fu_device_set_vendor
    - strlen
    - fu_device_get_name
    - g_ascii_strup
    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_device_add_flag
    - fu_device_set_version
    - g_strdup_printf
    - fu_device_get_guids
    - fu_device_get_serial
    - fu_device_add_instance_id
    - g_debug
    - g_set_error_literal
    - fu_ata_device_pad_string_for_id
    - fu_device_add_instance_id_full
    - g_str_has_prefix
    - fu_device_get_vendor
    - fu_device_set_serial
    - FU_DEVICE
    - fu_device_set_name
    - fu_ata_device_parse_vendor_name
    - g_strcmp0
    - g_set_error
    - fu_ata_device_get_string
    - fu_device_get_version
    - fu_memread_uint16
    - fu_device_build_vendor_id
    - fu_ata_device_parse_id_maybe_dell
    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_ATA_DEVICE
    - fu_device_get_backend_id
    - fu_device_add_flag
    - fu_device_set_physical_id
    - fu_device_get_backend_parent_with_subsystem
    - fu_udev_device_get_subsystem_depth
    - FU_UDEV_DEVICE
    - g_autoptr
    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:
    - FuAtaDeviceTf*
    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(FuAtaDeviceTf *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*
    - FuAtaDeviceTf*
    - 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:
    - fu_ioctl_execute
    - g_debug
    - fu_ioctl_add_const_buffer
    - g_set_error
    - fu_ioctl_add_mutable_buffer
    - fu_udev_device_ioctl_new
    - fu_ioctl_add_key_as_u8
    - fu_dump_raw
    - FU_UDEV_DEVICE
    - fu_ioctl_add_key_as_u16
    - g_autoptr
    - fu_ata_device_tf_to_pack_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ata_device_command(FuAtaDevice *self,\n\t\t      FuAtaDeviceTf
      *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_literal
      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
    - fu_ata_device_parse_id
    - g_prefix_error_literal
    - 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_literal
      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_literal
      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_literal
      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:
    - FU_ATA_DEVICE
    - fu_ata_device_command
    - g_prefix_error_literal
    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_prefix_error
    - g_set_error_literal
    - fu_ata_device_command
    - g_set_error
    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_chunk_get_idx
    - fu_device_add_flag
    - fu_chunk_get_data_sz
    - fu_ata_device_fw_download
    - fu_progress_set_steps
    - fu_chunk_array_new_from_stream
    - fu_progress_set_status
    - fu_progress_step_done
    - fu_chunk_get_data
    - fu_chunk_array_length
    - fu_chunk_get_address
    - FU_ATA_DEVICE
    - fu_progress_set_id
    - g_set_error
    - fu_input_stream_size
    - fu_firmware_get_stream
    - fu_chunk_array_index
    - g_prefix_error
    - g_autoptr
    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:
    - FU_ATA_DEVICE
    - fu_strtoull
    - g_strcmp0
    - g_set_error_literal
    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:
    - device
    - 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_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_ata_device_set_progress(FuDevice *device, 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_add_flag
    - fu_device_add_icon
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_summary
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    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_object_new
    - g_autoptr
    - g_steal_pointer
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ata/fu-ata-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_ata_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/ata/fu-ata-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - fu_plugin_add_device_udev_subsystem
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAtaPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    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:
    - fu_context_new
    - g_file_get_contents
    - g_assert_nonnull
    - fu_ata_device_get_transfer_blocks
    - fu_ata_device_new_from_blob
    - fu_device_get_name
    - fu_context_load_quirks
    - fu_device_get_serial
    - g_assert_cmpint
    - g_assert_true
    - FU_DEVICE
    - g_assert_no_error
    - g_file_test
    - fu_device_get_version
    - g_test_skip
    - fu_ata_device_get_transfer_mode
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    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:
    - fu_context_new
    - g_file_get_contents
    - g_assert_nonnull
    - fu_ata_device_get_transfer_blocks
    - fu_ata_device_new_from_blob
    - fu_context_load_quirks
    - fu_device_get_name
    - fu_device_get_serial
    - fu_device_to_string
    - g_debug
    - g_assert_cmpint
    - g_assert_true
    - fu_device_convert_instance_ids
    - FU_DEVICE
    - g_assert_no_error
    - g_file_test
    - fu_device_get_version
    - g_test_skip
    - fu_ata_device_get_transfer_mode
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    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:86,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/ata/fu-self-test.c:87,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/ata/fu-self-test.c:88,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/ata/fu-self-test.c:89,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/ata/fu-self-test.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: main
    functionSourceFile: /src/fwupd/plugins/ata/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add_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:
    - 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_proxy
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:49,1
    - Dst: fu_device_prepare_firmware
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: fu_usi_dock_child_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c
    functionUses: 0
    functionsReached:
    - fu_device_prepare_firmware
    - fu_device_get_proxy
    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:63,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:64,1
    - Dst: fu_usi_dock_mcu_device_write_firmware_with_idx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:67,1
    - Dst: FU_USI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 73
    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
    - FU_USI_DOCK_CHILD_DEVICE
    - fu_usi_dock_mcu_device_write_firmware_with_idx
    - fu_device_get_proxy
    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:78,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:78,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:79,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:79,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:80,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:80,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:81,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-child-device.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsiDockChildDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 82
    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
    - fu_device_set_proxy_gtype
    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:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsiDockChildDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 91
    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:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    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(FuDevice *proxy)'
  - 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: fu_device_add_instance_str
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:26,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:26,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:27,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:34,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:39,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:39,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:40,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:49,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:54,1
    - Dst: strlen
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:55,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:58,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:60,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:63,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:71,1
    - Dst: g_info
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:77,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:78,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:78,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:79,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:79,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:80,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-dmc-device.c:80,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: 7
    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:
    - fu_device_get_parent
    - fu_device_set_version
    - g_info
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - fu_device_get_version_format
    - fu_device_set_serial
    - fu_device_set_name
    - fu_device_get_version
    - g_warning
    - fu_device_build_instance_id_full
    - strlen
    - fu_device_get_name
    - fu_device_set_version_format
    - fu_device_get_serial
    - g_autoptr
    - 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:
    - FU_DEVICE
    - G_CALLBACK
    - g_signal_connect
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:47,1
    - Dst: fu_struct_usi_dock_mcu_cmd_req_new
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:47,1
    - Dst: fu_struct_usi_dock_mcu_cmd_req_set_length
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:49,1
    - Dst: fu_struct_usi_dock_mcu_cmd_req_set_tag3
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:50,1
    - Dst: fu_struct_usi_dock_mcu_cmd_req_set_buf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:52,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: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - self
    - tag2
    - buf
    - bufsz
    - error
    argTypes:
    - FuUsiDockMcuDevice*
    - FuUsiDockTag2
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    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_struct_usi_dock_mcu_cmd_req_set_buf
    - fu_struct_usi_dock_mcu_cmd_req_set_tag3
    - fu_struct_usi_dock_mcu_cmd_req_new
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    - fu_struct_usi_dock_mcu_cmd_req_set_length
    - g_autoptr
    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: 6
    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_struct_usi_dock_mcu_cmd_res_parse
    - FU_HID_DEVICE
    - fu_memcpy_safe
    - g_autoptr
    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_literal
      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_literal
      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: 7
    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_rx
    - fu_usi_dock_mcu_device_tx
    - g_prefix_error_literal
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_children
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:125,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:125,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:127,1
    - Dst: fu_usi_dock_child_device_get_chip_idx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:128,1
    - Dst: FU_USI_DOCK_CHILD_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:128,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - chip_idx
    argTypes:
    - FuUsiDockMcuDevice*
    - FuUsiDockFirmwareIdx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: fu_usi_dock_mcu_device_find_child
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_usi_dock_child_device_get_chip_idx
    - fu_device_get_children
    - FU_DEVICE
    - g_object_ref
    - FU_USI_DOCK_CHILD_DEVICE
    - g_ptr_array_index
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_usi_dock_mcu_device_find_child(FuUsiDockMcuDevice *self, FuUsiDockFirmwareIdx
      chip_idx)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_usi_dock_mcu_device_txrx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:142,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:149,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:153,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsiDockMcuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 136
    functionDepth: 8
    functionLinenumber: 136
    functionLinenumberEnd: 163
    functionName: fu_usi_dock_mcu_device_get_status
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_usi_dock_mcu_device_txrx
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usi_dock_mcu_device_get_status(FuUsiDockMcuDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_usi_dock_mcu_device_tx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:170,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:175,1
    - Dst: fu_usi_dock_mcu_device_tx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:181,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:186,1
    - Dst: fu_usi_dock_mcu_device_tx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:192,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsiDockMcuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 165
    functionDepth: 7
    functionLinenumber: 165
    functionLinenumberEnd: 203
    functionName: fu_usi_dock_mcu_device_send_phase2_parameters
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_usi_dock_mcu_device_tx
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usi_dock_mcu_device_send_phase2_parameters(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:233,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:245,1
    - Dst: fu_usi_dock_child_device_new
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:247,1
    - Dst: FU_DEVICE
      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: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:254,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:254,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:256,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:261,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:261,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:263,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:263,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:265,1
    - Dst: g_debug
      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:274,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:277,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:280,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:281,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:282,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:283,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:284,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:289,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:292,1
    - Dst: FU_DEVICE
      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: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:298,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:299,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:301,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:302,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:303,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:306,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:309,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:310,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:311,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:312,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:313,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:314,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:317,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:320,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:321,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:322,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:323,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:324,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:325,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:328,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:331,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:331,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:334,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:335,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:336,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:338,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:339,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:340,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:342,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:343,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:344,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:347,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:350,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:351,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:352,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:353,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:354,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:359,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:363,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:364,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:365,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:366,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:367,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:370,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:373,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:374,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:375,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:376,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:377,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:380,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:383,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:384,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:385,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:386,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:387,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:388,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:391,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:394,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:394,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:396,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:401,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:403,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:404,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:406,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:407,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:409,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:413,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:413,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:413,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:414,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:414,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:414,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:415,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:416,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:418,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:419,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:420,1
    - Dst: fu_usi_dock_child_device_set_chip_idx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:421,1
    - Dst: FU_USI_DOCK_CHILD_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:421,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:423,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:423,1
    CyclomaticComplexity: 95
    EdgeCount: 95
    ICount: 156
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsiDockMcuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 205
    functionDepth: 8
    functionLinenumber: 205
    functionLinenumberEnd: 428
    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_device_get_pid
    - fu_usi_dock_mcu_device_txrx
    - fu_device_set_version
    - g_strdup_printf
    - fu_device_get_name
    - fu_device_set_version_format
    - g_debug
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - fu_device_add_icon
    - fu_usi_dock_child_device_set_chip_idx
    - fu_usi_dock_child_device_new
    - fu_device_set_logical_id
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_get_vid
    - g_warning
    - g_strcmp0
    - fu_device_has_private_flag
    - g_autoptr
    - FU_USI_DOCK_CHILD_DEVICE
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usi_dock_mcu_device_enumerate_children(FuUsiDockMcuDevice
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:434,1
    - Dst: g_autoptr
      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_context_get_backend_by_name
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:440,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:440,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:440,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:445,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:445,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:445,1
    - Dst: fu_backend_create_device
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:448,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:450,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:455,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:457,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:458,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:467,1
    - Dst: fu_usb_device_reset
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:472,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:472,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:473,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUsiDockMcuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 479
    functionName: fu_usi_dock_mcu_device_reset_usb2
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_backend_create_device
    - fu_udev_device_get_sysfs_path
    - g_set_error
    - fu_device_sleep
    - fu_device_locker_new
    - fu_device_get_context
    - g_prefix_error
    - g_prefix_error_literal
    - FU_DEVICE
    - g_file_test
    - g_path_get_dirname
    - fu_context_get_backend_by_name
    - fu_usb_device_reset
    - FU_UDEV_DEVICE
    - FU_USB_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usi_dock_mcu_device_reset_usb2(FuUsiDockMcuDevice *self,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_USI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:484,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:485,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:488,1
    - Dst: fu_usi_dock_mcu_device_get_status
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:492,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:493,1
    - Dst: fu_usi_dock_mcu_device_reset_usb2
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:495,1
    - Dst: fu_usi_dock_mcu_device_get_status
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:497,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:500,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:501,1
    - Dst: fu_usi_dock_mcu_device_enumerate_children
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:506,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:507,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 481
    functionDepth: 9
    functionLinenumber: 481
    functionLinenumberEnd: 513
    functionName: fu_usi_dock_mcu_device_setup
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_usi_dock_mcu_device_reset_usb2
    - g_steal_pointer
    - fu_usi_dock_mcu_device_enumerate_children
    - g_prefix_error_literal
    - g_error_matches
    - g_autoptr
    - FU_USI_DOCK_MCU_DEVICE
    - FU_DEVICE_CLASS
    - fu_usi_dock_mcu_device_get_status
    - g_propagate_prefixed_error
    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:518,1
    - Dst: fu_struct_usi_dock_hid_req_new
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:518,1
    - Dst: fu_struct_usi_dock_hid_req_set_length
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:520,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:520,1
    - Dst: fu_struct_usi_dock_hid_req_set_tag3
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:521,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:522,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:525,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:526,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:528,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:531,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:531,1
    - Dst: fu_usi_dock_mcu_device_rx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuUsiDockMcuDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 515
    functionDepth: 7
    functionLinenumber: 515
    functionLinenumberEnd: 540
    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_hid_device_set_report
    - fu_struct_usi_dock_hid_req_new
    - fu_struct_usi_dock_hid_req_set_length
    - fu_usi_dock_mcu_device_rx
    - FU_HID_DEVICE
    - fu_chunk_get_data
    - fu_struct_usi_dock_hid_req_set_tag3
    - fu_memcpy_safe
    - g_autoptr
    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:545,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:546,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:546,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:548,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:552,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:553,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:556,1
    - Dst: fu_usi_dock_mcu_device_write_chunk
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:559,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - chk_page
    - error
    argTypes:
    - FuUsiDockMcuDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 542
    functionDepth: 8
    functionLinenumber: 542
    functionLinenumberEnd: 563
    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_usi_dock_mcu_device_write_chunk
    - fu_chunk_array_index
    - fu_chunk_get_bytes
    - fu_chunk_array_length
    - g_autoptr
    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:571,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:572,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:572,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:573,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:574,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:577,1
    - Dst: fu_usi_dock_mcu_device_write_page
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:580,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:581,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:584,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuUsiDockMcuDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 565
    functionDepth: 9
    functionLinenumber: 565
    functionLinenumberEnd: 587
    functionName: fu_usi_dock_mcu_device_write_pages
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_usi_dock_mcu_device_write_page
    - fu_chunk_array_index
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:592,1
    - Dst: fu_usi_dock_mcu_device_txrx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:596,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:605,1
    - Dst: fu_usi_dock_spi_state_to_string
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 589
    functionDepth: 8
    functionLinenumber: 589
    functionLinenumberEnd: 616
    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
    - fu_usi_dock_mcu_device_txrx
    - 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:623,1
    - Dst: fu_usi_dock_mcu_device_txrx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:627,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:636,1
    - Dst: fu_usi_dock_spi_state_to_string
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 618
    functionDepth: 8
    functionLinenumber: 618
    functionLinenumberEnd: 647
    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
    - fu_usi_dock_mcu_device_txrx
    - 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:652,1
    - Dst: fu_usi_dock_mcu_device_rx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 649
    functionDepth: 7
    functionLinenumber: 649
    functionLinenumberEnd: 663
    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_rx
    - FU_USI_DOCK_MCU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usi_dock_mcu_device_wait_for_checksum_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:674,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:675,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:679,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:680,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:681,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:682,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:683,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:684,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:687,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:687,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:692,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:695,1
    - Dst: fu_usi_dock_mcu_device_txrx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:699,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:707,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:707,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:712,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:715,1
    - Dst: fu_usi_dock_mcu_device_txrx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:719,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:728,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:731,1
    - Dst: fu_usi_dock_mcu_device_write_pages
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:738,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:740,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:743,1
    - Dst: fu_usi_dock_mcu_device_txrx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:747,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:757,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:757,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:762,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:767,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:774,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:777,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:777,1
    - Dst: fu_usi_dock_mcu_device_send_phase2_parameters
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:778,1
    - Dst: fu_usi_dock_mcu_device_txrx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:784,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:792,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:795,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:795,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:796,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:796,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 6
    argNames:
    - self
    - firmware
    - chip_idx
    - progress
    - flags
    - error
    argTypes:
    - FuUsiDockMcuDevice*
    - FuFirmware*
    - guint8
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 665
    functionDepth: 10
    functionLinenumber: 665
    functionLinenumberEnd: 800
    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_add_flag
    - fu_usi_dock_mcu_device_txrx
    - fu_progress_add_step
    - fu_firmware_get_stream
    - g_set_error
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_usi_dock_mcu_device_write_pages
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_usi_dock_mcu_device_send_phase2_parameters
    - fu_chunk_array_new_from_stream
    - fu_device_retry
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:809,1
    - Dst: FU_USI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:809,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: 815
      start: 802
    functionDepth: 11
    functionLinenumber: 802
    functionLinenumberEnd: 815
    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:820,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:823,1
    - Dst: g_info
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:824,1
    - Dst: fu_usi_dock_mcu_device_txrx
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 817
    functionDepth: 8
    functionLinenumber: 817
    functionLinenumberEnd: 836
    functionName: fu_usi_dock_mcu_device_reload
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - g_info
    - FU_USI_DOCK_MCU_DEVICE
    - fu_usi_dock_mcu_device_txrx
    - fu_device_has_private_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_usi_dock_mcu_device_reload(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:842,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 838
    functionDepth: 6
    functionLinenumber: 838
    functionLinenumberEnd: 849
    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_has_private_flag
    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:854,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:855,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:855,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:856,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:859,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:860,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:861,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:862,1
    - Dst: g_critical
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 851
    functionDepth: 4
    functionLinenumber: 851
    functionLinenumberEnd: 867
    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_new
    - g_critical
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fwupd_request_set_id
    - FU_DEVICE
    - fu_device_emit_request
    - g_autoptr
    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:874,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:875,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:876,1
    - Dst: g_timeout_add_seconds_full
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:877,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:880,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 869
    functionDepth: 2
    functionLinenumber: 869
    functionLinenumberEnd: 884
    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_debug
    - g_timeout_add_seconds_full
    - fu_device_has_private_flag
    - g_object_ref
    - fu_device_remove_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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:892,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:892,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:895,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:899,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:900,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:901,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:904,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:905,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:906,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - device
    - progress
    - install_flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 886
    functionDepth: 6
    functionLinenumber: 886
    functionLinenumberEnd: 908
    functionName: fu_usi_dock_mcu_device_cleanup
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fwupd_request_new
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fwupd_request_set_id
    - fu_device_add_private_flag
    - fu_device_has_private_flag
    - fu_device_emit_request
    - fu_progress_set_status
    - g_autoptr
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:913,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:914,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:915,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 910
    functionDepth: 3
    functionLinenumber: 910
    functionLinenumberEnd: 917
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:925,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:928,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:928,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:930,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:931,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:933,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 919
    functionDepth: 4
    functionLinenumber: 919
    functionLinenumberEnd: 937
    functionName: fu_usi_dock_mcu_device_prepare
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_has_instance_id
    - fu_device_add_private_flag
    - fu_version_compare
    - fu_device_get_version
    - fu_device_remove_private_flag
    - fu_device_get_version_format
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_usi_dock_mcu_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_progress_set_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:942,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:943,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:944,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:945,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:946,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 939
    functionDepth: 3
    functionLinenumber: 939
    functionLinenumberEnd: 948
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:953,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:953,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:954,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:954,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:955,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:955,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:956,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:956,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:958,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:958,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:959,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:959,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:960,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:960,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:961,1
    - Dst: FWUPD_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:961,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:963,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:966,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:966,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:967,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:967,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:968,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:968,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:970,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:970,1
    - Dst: fu_hid_device_add_flag
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:971,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:971,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:972,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:972,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:973,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:973,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:974,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:974,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:975,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:975,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:976,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c:976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsiDockMcuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 950
    functionDepth: 6
    functionLinenumber: 950
    functionLinenumberEnd: 977
    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_flag
    - fu_device_retry_set_delay
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - g_signal_connect
    - fu_device_add_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - FWUPD_DEVICE
    - fu_device_add_request_flag
    - fu_hid_device_add_flag
    - FU_HID_DEVICE
    - G_CALLBACK
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsiDockMcuDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 992
    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_plugin_get_devices
      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_IS_USI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:30,1
    - Dst: FU_USI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:31,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: fu_usi_dock_plugin_find_mcu_device
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_devices
    - FU_IS_USI_DOCK_MCU_DEVICE
    - g_object_ref
    - FU_USI_DOCK_MCU_DEVICE
    - g_ptr_array_index
    linkageType: ''
    returnType: FuUsiDockMcuDevice
    signature: 'FuUsiDockMcuDevice *

      fu_usi_dock_plugin_find_mcu_device(FuPlugin *plugin)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_USI_DOCK_PLUGIN
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:41,1
    - Dst: fu_usi_dock_plugin_find_mcu_device
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:45,1
    - Dst: fu_usi_dock_mcu_device_find_child
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:48,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:51,1
    - Dst: fu_device_get_priority
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:51,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:52,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:52,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:53,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 54
    functionName: fu_usi_dock_plugin_ensure_tbt4
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c
    functionUses: 0
    functionsReached:
    - FU_USI_DOCK_PLUGIN
    - fu_usi_dock_mcu_device_find_child
    - fu_device_get_priority
    - fu_device_set_priority
    - fu_device_get_id
    - fu_device_set_equivalent_id
    - fu_usi_dock_plugin_find_mcu_device
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_usi_dock_plugin_ensure_tbt4(FuPlugin *plugin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_usi_dock_plugin_ensure_tbt4
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 5
    functionLinenumber: 56
    functionLinenumberEnd: 60
    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_tbt4
    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:65,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:68,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:68,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:69,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:70,1
    - Dst: fu_usi_dock_plugin_ensure_tbt4
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 5
    functionLinenumber: 62
    functionLinenumberEnd: 73
    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_ensure_tbt4
    - g_strcmp0
    - FU_USI_DOCK_PLUGIN
    - fu_device_has_guid
    - g_set_object
    - 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:78,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUsiDockPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 79
    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:84,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:85,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:86,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:87,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:88,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: fu_usi_dock_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:97,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:98,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-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: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: fu_usi_dock_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c
    functionUses: 0
    functionsReached:
    - g_clear_object
    - FU_USI_DOCK_PLUGIN
    - G_OBJECT_CLASS
    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:105,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUsiDockPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: fu_usi_dock_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/usi-dock/fu-usi-dock-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    - G_OBJECT_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:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:52,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:54,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:54,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:59,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:64,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:68,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:70,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:71,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:75,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:76,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 84
    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_steal_pointer
    - g_prefix_error_literal
    - fu_udev_device_pread
    - fu_dump_raw
    - fu_memread_uint8_safe
    - g_error_matches
    - FU_LOGITECH_TAP_TOUCH_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    - g_propagate_prefixed_error
    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:93,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:94,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:94,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:99,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:105,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:106,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:106,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:107,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:107,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - self
    - st_req
    - delay
    - buf_res
    - error
    argTypes:
    - FuLogitechTapTouchDevice*
    - FuStructLogitechTapTouchHidReq*
    - guint
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 86
    functionDepth: 5
    functionLinenumber: 86
    functionLinenumberEnd: 121
    functionName: fu_logitech_tap_touch_device_hid_transfer
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_device_sleep
    - g_prefix_error_literal
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_device_retry_full
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_tap_touch_device_hid_transfer(FuLogitechTapTouchDevice
      *self,\n\t\t\t\t\t  FuStructLogitechTapTouchHidReq *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:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:127,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:127,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:130,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:131,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:132,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:135,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 123
    functionDepth: 6
    functionLinenumber: 123
    functionLinenumberEnd: 137
    functionName: fu_logitech_tap_touch_device_enable_tde_cb
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint8
    - fu_logitech_tap_touch_device_hid_transfer
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - FU_LOGITECH_TAP_TOUCH_DEVICE
    - fu_struct_logitech_tap_touch_hid_req_new
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_touch_device_enable_tde_cb(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:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:143,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:143,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:145,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:146,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:147,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:150,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 139
    functionDepth: 6
    functionLinenumber: 139
    functionLinenumberEnd: 152
    functionName: fu_logitech_tap_touch_device_disable_tde_cb
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint8
    - fu_logitech_tap_touch_device_hid_transfer
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - FU_LOGITECH_TAP_TOUCH_DEVICE
    - fu_struct_logitech_tap_touch_hid_req_new
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_touch_device_disable_tde_cb(FuDevice *device,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:163,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:163,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:166,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:169,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:172,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:173,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:176,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:177,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:179,1
    - Dst: fu_byte_array_append_uint24
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:180,1
    - Dst: fu_byte_array_append_uint24
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:181,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:185,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:189,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:189,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: 193
      start: 154
    functionDepth: 6
    functionLinenumber: 154
    functionLinenumberEnd: 193
    functionName: fu_logitech_tap_touch_device_write_enable
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_byte_array_append_uint8
    - fu_logitech_tap_touch_device_hid_transfer
    - FU_DEVICE
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - fu_struct_logitech_tap_touch_hid_req_new
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    - fu_byte_array_append_uint24
    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:198,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:200,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:200,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:201,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:201,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:204,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:205,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:206,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:209,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:211,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 195
    functionDepth: 6
    functionLinenumber: 195
    functionLinenumberEnd: 229
    functionName: fu_logitech_tap_touch_device_check_busy_cb
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_logitech_tap_touch_device_hid_transfer
    - g_byte_array_new
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - 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_cmd
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    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:237,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:237,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:238,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:241,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:243,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:244,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:250,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:250,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:251,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:253,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - self
    - crc
    - datasz
    - error
    argTypes:
    - FuLogitechTapTouchDevice*
    - guint16*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 231
    functionDepth: 6
    functionLinenumber: 231
    functionLinenumberEnd: 267
    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
    - g_byte_array_new
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - fu_struct_logitech_tap_touch_hid_req_new
    - fu_memread_uint16_safe
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    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:274,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:274,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:275,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:275,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:277,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:278,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:279,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:284,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - self
    - mcu_mode
    - error
    argTypes:
    - FuLogitechTapTouchDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 269
    functionDepth: 6
    functionLinenumber: 269
    functionLinenumberEnd: 292
    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
    - g_byte_array_new
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - fu_memread_uint8_safe
    - fu_struct_logitech_tap_touch_hid_req_new
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    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:298,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:298,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:299,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:299,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:301,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:302,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:303,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:306,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:308,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechTapTouchDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 294
    functionDepth: 6
    functionLinenumber: 294
    functionLinenumberEnd: 326
    functionName: fu_logitech_tap_touch_device_check_ic_name
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_logitech_tap_touch_device_hid_transfer
    - g_byte_array_new
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - fu_struct_logitech_tap_touch_hid_req_new
    - fu_memread_uint16_safe
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    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:332,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:332,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:333,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:333,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:344,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:345,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:346,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:349,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:351,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:351,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:353,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:356,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:356,1
    - Dst: fu_device_add_instance_str
      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: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:360,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:367,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:367,1
    - Dst: fu_memread_uint64_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:376,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:383,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:383,1
    - Dst: fu_device_set_version_bootloader_raw
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:384,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:384,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:386,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:386,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechTapTouchDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 328
    functionDepth: 7
    functionLinenumber: 328
    functionLinenumberEnd: 391
    functionName: fu_logitech_tap_touch_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_raw
    - g_set_error
    - fu_device_add_instance_str
    - fu_device_build_instance_id
    - fu_device_set_version_bootloader_raw
    - fu_logitech_tap_touch_device_hid_transfer
    - FU_DEVICE
    - g_byte_array_new
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - fu_device_has_flag
    - fu_memread_uint8_safe
    - fu_struct_logitech_tap_touch_hid_req_new
    - fu_memread_uint64_safe
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    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:397,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:397,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:398,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:398,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:405,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:406,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:407,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:410,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:412,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:422,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:422,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:423,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:430,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechTapTouchDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 393
    functionDepth: 6
    functionLinenumber: 393
    functionLinenumberEnd: 437
    functionName: fu_logitech_tap_touch_device_check_protocol
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - fu_logitech_tap_touch_device_hid_transfer
    - FU_DEVICE
    - g_byte_array_new
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - fu_device_has_flag
    - fu_struct_logitech_tap_touch_hid_req_new
    - fu_memcpy_safe
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    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:442,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:443,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:445,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:446,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:449,1
    - Dst: fu_hidraw_device_get_bus_type
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:452,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:452,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:453,1
    - Dst: fu_hidraw_device_get_bus_type
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:457,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:457,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:462,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:462,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:470,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:470,1
    - Dst: fu_logitech_tap_touch_device_check_protocol
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:473,1
    - Dst: fu_logitech_tap_touch_device_check_ic_name
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:475,1
    - Dst: fu_logitech_tap_touch_device_ensure_version
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:479,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 439
    functionDepth: 8
    functionLinenumber: 439
    functionLinenumberEnd: 480
    functionName: fu_logitech_tap_touch_device_setup
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_tap_touch_device_check_protocol
    - g_debug
    - g_set_error
    - fu_device_sleep
    - fu_logitech_tap_touch_device_check_ic_name
    - fu_logitech_tap_touch_device_ensure_version
    - FU_HIDRAW_DEVICE
    - fu_hidraw_device_get_bus_type
    - FU_DEVICE
    - fu_device_has_flag
    - FU_LOGITECH_TAP_TOUCH_DEVICE
    - g_autoptr
    - FU_DEVICE_CLASS
    - 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:485,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:489,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:490,1
    - Dst: fu_logitech_tap_touch_device_enable_tde_cb
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:495,1
    - Dst: fu_logitech_tap_touch_device_get_mcu_mode
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:498,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:503,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:504,1
    - Dst: fu_logitech_tap_touch_device_write_enable
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:505,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:507,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:508,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:509,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:512,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:516,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 482
    functionDepth: 7
    functionLinenumber: 482
    functionLinenumberEnd: 520
    functionName: fu_logitech_tap_touch_device_detach
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - fu_logitech_tap_touch_device_enable_tde_cb
    - fu_logitech_tap_touch_device_hid_transfer
    - fu_logitech_tap_touch_device_get_mcu_mode
    - fu_device_has_flag
    - 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_payload_len
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    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:525,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:526,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:526,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:529,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:530,1
    - Dst: fu_logitech_tap_touch_device_write_enable
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:535,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:537,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:538,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:539,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:542,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:546,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:546,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:547,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 522
    functionDepth: 7
    functionLinenumber: 522
    functionLinenumberEnd: 551
    functionName: fu_logitech_tap_touch_device_attach
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - fu_device_sleep
    - fu_logitech_tap_touch_device_hid_transfer
    - FU_DEVICE
    - fu_logitech_tap_touch_device_write_enable
    - fu_device_has_flag
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - FU_LOGITECH_TAP_TOUCH_DEVICE
    - fu_struct_logitech_tap_touch_hid_req_new
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - g_autoptr
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    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:557,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:561,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:561,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:561,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:562,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:566,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 572
    functionName: fu_logitech_tap_touch_device_probe
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error
    - FU_UDEV_DEVICE
    - fu_udev_device_get_subsystem
    - FU_DEVICE_CLASS
    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:583,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:584,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:586,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:589,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:598,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:600,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:602,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:603,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:603,1
    - Dst: fu_logitech_tap_touch_device_write_enable
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:606,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:609,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:613,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:613,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:615,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:616,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:617,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:618,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:618,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:619,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:619,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:623,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:623,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:623,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:626,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:627,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:628,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:631,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:633,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:634,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:635,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:636,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:638,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:638,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:640,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:640,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:646,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:651,1
    - Dst: fu_device_sleep
      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: fu_logitech_tap_touch_device_get_crc
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:657,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:659,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:659,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:665,1
    - Dst: fu_logitech_tap_touch_device_get_crc
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:668,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:671,1
    - Dst: g_info
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:680,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: 684
      start: 574
    functionDepth: 7
    functionLinenumber: 574
    functionLinenumberEnd: 684
    functionName: fu_logitech_tap_touch_device_write_blocks
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - g_debug
    - fu_firmware_get_offset
    - fu_progress_set_steps
    - g_byte_array_new
    - fu_chunk_array_new_from_stream
    - fu_struct_logitech_tap_touch_hid_req_new
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    - fu_logitech_tap_touch_device_get_crc
    - g_info
    - fu_device_sleep
    - fu_progress_step_done
    - FU_DEVICE
    - fu_logitech_tap_touch_device_write_enable
    - fu_chunk_get_data
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - g_byte_array_append
    - fu_chunk_array_length
    - fu_progress_set_id
    - fu_firmware_get_stream
    - g_set_error
    - fu_chunk_array_index
    - g_prefix_error
    - fu_logitech_tap_touch_device_hid_transfer
    - fu_device_retry_full
    - g_autoptr
    - fu_byte_array_set_size
    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:694,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:698,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:698,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:699,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:700,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:703,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:704,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:705,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:706,1
    - Dst: fu_logitech_tap_touch_firmware_get_ap_checksum
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:708,1
    - Dst: FU_LOGITECH_TAP_TOUCH_FIRMWARE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:709,1
    - Dst: fu_logitech_tap_touch_firmware_get_df_checksum
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:710,1
    - Dst: FU_LOGITECH_TAP_TOUCH_FIRMWARE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:711,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:714,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:717,1
    - Dst: fu_logitech_tap_touch_device_write_enable
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:722,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:724,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:724,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_payload_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:727,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_response_len
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:728,1
    - Dst: fu_struct_logitech_tap_touch_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:729,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:732,1
    - Dst: fu_logitech_tap_touch_device_hid_transfer
      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_progress_step_done
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:741,1
    - Dst: fu_logitech_tap_touch_device_write_blocks
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:744,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:748,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:751,1
    - Dst: fu_logitech_tap_touch_device_write_blocks
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:754,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:758,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:761,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 691
    functionDepth: 8
    functionLinenumber: 691
    functionLinenumberEnd: 765
    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_firmware_get_ap_checksum
    - fu_firmware_get_image_by_id
    - FU_LOGITECH_TAP_TOUCH_DEVICE
    - fu_struct_logitech_tap_touch_hid_req_set_cmd
    - fu_struct_logitech_tap_touch_hid_req_new
    - FU_LOGITECH_TAP_TOUCH_FIRMWARE
    - fu_struct_logitech_tap_touch_hid_req_set_response_len
    - fu_progress_add_step
    - fu_device_sleep
    - fu_progress_step_done
    - FU_DEVICE
    - fu_logitech_tap_touch_device_write_enable
    - fu_struct_logitech_tap_touch_hid_req_set_payload_len
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_logitech_tap_touch_firmware_get_df_checksum
    - fu_logitech_tap_touch_device_write_blocks
    - fu_logitech_tap_touch_device_hid_transfer
    - g_autoptr
    - 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:774,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:776,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:779,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:780,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:788,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: 794
      start: 767
    functionDepth: 3
    functionLinenumber: 767
    functionLinenumberEnd: 794
    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_DEVICE
    - FU_LOGITECH_TAP_TOUCH_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:799,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:800,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:801,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:802,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:803,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 796
    functionDepth: 3
    functionLinenumber: 796
    functionLinenumberEnd: 805
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 821
    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:826,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:826,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:827,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:827,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:828,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:828,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:829,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:829,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:830,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:830,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:831,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:831,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:832,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:832,1
    - Dst: fu_device_set_firmware_size_min
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:833,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:833,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:834,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:834,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:835,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:835,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:836,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:836,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:837,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:837,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:838,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechTapTouchDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 823
    functionDepth: 6
    functionLinenumber: 823
    functionLinenumberEnd: 839
    functionName: fu_logitech_tap_touch_device_init
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_set_firmware_size_min
    - fu_device_set_firmware_size_max
    - fu_device_add_private_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    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:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechTapTouchDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 852
    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: 62
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 62
    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:77,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:77,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:77,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:79,1
    - Dst: fu_ioctl_add_key_as_u16
      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_key_as_u8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:84,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:85,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:86,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:91,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:102,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:104,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:108,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: 112
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 112
    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_ioctl_execute
    - g_debug
    - fu_ioctl_add_mutable_buffer
    - fu_udev_device_ioctl_new
    - fu_ioctl_add_key_as_u8
    - fu_dump_raw
    - FU_UDEV_DEVICE
    - fu_ioctl_add_key_as_u16
    - g_autoptr
    - fu_memread_uint16_safe
    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:127,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:127,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:127,1
    - Dst: fu_ioctl_add_key_as_u16
      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_key_as_u8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:132,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:133,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:134,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:139,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:149,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:153,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: 157
      start: 114
    functionDepth: 4
    functionLinenumber: 114
    functionLinenumberEnd: 157
    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_ioctl_execute
    - g_debug
    - fu_ioctl_add_mutable_buffer
    - fu_ioctl_add_key_as_u8
    - fu_udev_device_ioctl_new
    - fu_dump_raw
    - FU_UDEV_DEVICE
    - fu_ioctl_add_key_as_u16
    - g_autoptr
    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:172,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:172,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:172,1
    - Dst: fu_ioctl_add_key_as_u16
      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_key_as_u8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:177,1
    - Dst: fu_ioctl_add_key_as_u8
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:178,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:179,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:184,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:194,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: 201
      start: 159
    functionDepth: 4
    functionLinenumber: 159
    functionLinenumberEnd: 201
    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_ioctl_execute
    - g_debug
    - fu_ioctl_add_mutable_buffer
    - fu_ioctl_add_key_as_u8
    - fu_udev_device_ioctl_new
    - FU_UDEV_DEVICE
    - fu_ioctl_add_key_as_u16
    - g_autoptr
    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:211,1
    - Dst: fu_logitech_tap_hdmi_device_query_data_size
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:219,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:226,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:234,1
    - Dst: fu_logitech_tap_hdmi_device_get_xu_control
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:235,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechTapHdmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 203
    functionDepth: 5
    functionLinenumber: 203
    functionLinenumberEnd: 253
    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_query_data_size
    - g_malloc0
    - fu_logitech_tap_hdmi_device_get_xu_control
    - fu_logitech_tap_hdmi_device_set_xu_control
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_hdmi_device_ait_initiate_update(FuLogitechTapHdmiDevice
      *self, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:264,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:264,1
    - Dst: fu_logitech_tap_hdmi_device_set_xu_control
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:265,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:273,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:273,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:279,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:279,1
    - Dst: fu_logitech_tap_hdmi_device_query_data_size
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:281,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:289,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:296,1
    - Dst: fu_logitech_tap_hdmi_device_get_xu_control
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:297,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:307,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:307,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:310,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:319,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechTapHdmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 255
    functionDepth: 5
    functionLinenumber: 255
    functionLinenumberEnd: 330
    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_device_sleep
    - fu_logitech_tap_hdmi_device_query_data_size
    - g_malloc0
    - FU_DEVICE
    - fu_logitech_tap_hdmi_device_get_xu_control
    - fu_logitech_tap_hdmi_device_set_xu_control
    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:339,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:343,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:344,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:344,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:345,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:346,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:349,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:352,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:355,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:358,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:359,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:361,1
    - Dst: fu_logitech_tap_hdmi_device_set_xu_control
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:364,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:371,1
    - Dst: fu_logitech_tap_hdmi_device_ait_finalize_update
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:375,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:379,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:379,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuLogitechTapHdmiDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 332
    functionDepth: 6
    functionLinenumber: 332
    functionLinenumberEnd: 382
    functionName: fu_logitech_tap_hdmi_device_write_fw
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_tap_hdmi_device_ait_finalize_update
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_device_add_private_flag
    - fu_progress_set_steps
    - fu_progress_step_done
    - g_malloc0
    - FU_DEVICE
    - fu_chunk_get_data
    - fu_logitech_tap_hdmi_device_set_xu_control
    - fu_memcpy_safe
    - fu_chunk_array_length
    - g_autoptr
    - fu_logitech_tap_hdmi_device_ait_initiate_update
    - fu_progress_set_id
    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:391,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:393,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:394,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:397,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:397,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:398,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:401,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:402,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:405,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:410,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:411,1
    - Dst: fu_logitech_tap_hdmi_device_write_fw
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:418,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:420,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:423,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: 427
      start: 384
    functionDepth: 7
    functionLinenumber: 384
    functionLinenumberEnd: 427
    functionName: fu_logitech_tap_hdmi_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_debug
    - fu_progress_add_step
    - fu_firmware_get_stream
    - FU_LOGITECH_TAP_HDMI_DEVICE
    - fu_progress_step_done
    - fu_device_get_version
    - fu_logitech_tap_hdmi_device_write_fw
    - fu_chunk_array_new_from_stream
    - fu_progress_set_status
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:441,1
    - Dst: fu_logitech_tap_hdmi_device_query_data_size
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:450,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:457,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:465,1
    - Dst: fu_logitech_tap_hdmi_device_get_xu_control
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:466,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:475,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:477,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:479,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:481,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:481,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:481,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechTapHdmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 429
    functionDepth: 5
    functionLinenumber: 429
    functionLinenumberEnd: 485
    functionName: fu_logitech_tap_hdmi_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_set_error
    - fu_logitech_tap_hdmi_device_query_data_size
    - g_malloc0
    - FU_DEVICE
    - g_strdup_printf
    - fu_logitech_tap_hdmi_device_get_xu_control
    - fu_logitech_tap_hdmi_device_set_xu_control
    - fu_memread_uint16_safe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_hdmi_device_ensure_version(FuLogitechTapHdmiDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_TAP_HDMI_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:490,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:493,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:497,1
    - Dst: fu_v4l_device_get_caps
      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: fu_v4l_cap_to_string
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:503,1
    - Dst: fu_v4l_device_get_caps
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:503,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:503,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:504,1
    - Dst: fu_logitech_tap_hdmi_device_ensure_version
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 487
    functionDepth: 6
    functionLinenumber: 487
    functionLinenumberEnd: 512
    functionName: fu_logitech_tap_hdmi_device_setup
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    functionUses: 0
    functionsReached:
    - fu_v4l_cap_to_string
    - fu_v4l_device_get_caps
    - g_set_error
    - fu_logitech_tap_hdmi_device_ensure_version
    - FU_LOGITECH_TAP_HDMI_DEVICE
    - fu_device_has_private_flag
    - FU_V4L_DEVICE
    - FU_DEVICE_CLASS
    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:519,1
    - Dst: FU_V4L_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:519,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 529
    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
    - fu_v4l_device_get_index
    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:534,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:535,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:536,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:537,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:538,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 531
    functionDepth: 3
    functionLinenumber: 531
    functionLinenumberEnd: 540
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:545,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:545,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:546,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:546,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:547,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:547,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:548,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:548,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:549,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:549,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:550,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:550,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:551,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:551,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:552,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:552,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:553,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:553,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:554,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:554,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:555,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechTapHdmiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 542
    functionDepth: 6
    functionLinenumber: 542
    functionLinenumberEnd: 557
    functionName: fu_logitech_tap_hdmi_device_init
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_retry_set_delay
    - fu_device_register_private_flag
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_udev_device_add_open_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:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechTapHdmiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 567
    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: 4
    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: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_logitech_tap_sensor_device_reboot_device
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:44,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:46,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 23
    functionDepth: 6
    functionLinenumber: 23
    functionLinenumberEnd: 51
    functionName: fu_logitech_tap_plugin_composite_cleanup
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_TAP_SENSOR_DEVICE
    - fu_device_add_flag
    - g_strcmp0
    - g_debug
    - fu_device_get_proxy
    - fu_device_get_plugin
    - fu_device_has_private_flag
    - FU_LOGITECH_TAP_PLUGIN
    - fu_logitech_tap_sensor_device_reboot_device
    - FU_IS_LOGITECH_TAP_HDMI_DEVICE
    - g_ptr_array_index
    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: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    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:61,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:62,1
    - Dst: fu_plugin_add_udev_subsystem
      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
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:65,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:66,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: fu_logitech_tap_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:75,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:76,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:76,1
    - Dst: FU_IS_LOGITECH_TAP_HDMI_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
    - Dst: FU_IS_LOGITECH_TAP_SENSOR_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:83,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:84,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 88
    functionName: fu_logitech_tap_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_object
    - fu_device_get_plugin
    - FU_LOGITECH_TAP_PLUGIN
    - FU_IS_LOGITECH_TAP_HDMI_DEVICE
    - fu_device_set_proxy
    - FU_IS_LOGITECH_TAP_SENSOR_DEVICE
    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:93,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:95,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:97,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:99,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 101
    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:106,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechTapPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 113
    functionName: fu_logitech_tap_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    - G_OBJECT_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:
    - g_return_val_if_fail
    - FU_LOGITECH_TAP_TOUCH_FIRMWARE
    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:
    - g_return_val_if_fail
    - FU_LOGITECH_TAP_TOUCH_FIRMWARE
    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_xmlb_builder_insert_kx
    - FU_LOGITECH_TAP_TOUCH_FIRMWARE
    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: 20
    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_literal
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:202,1
    - Dst: g_set_error
      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:217,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:221,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:224,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:229,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:230,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:231,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:233,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:237,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:240,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:245,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:246,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:247,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:249,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 254
    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_find
    - fu_firmware_set_offset
    - g_autoptr
    - fu_firmware_set_stream
    - fu_firmware_add_image
    - g_prefix_error_literal
    - FU_LOGITECH_TAP_TOUCH_FIRMWARE
    - fu_firmware_set_version_raw
    - fu_firmware_new
    - fu_input_stream_read_u24
    - fu_input_stream_chunkify
    - fu_partial_input_stream_new
    - fu_input_stream_read_u8
    - fu_firmware_set_id
    - g_set_error
    - fu_input_stream_size
    - strlen
    - fu_input_stream_read_u32
    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:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 270
    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:275,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-firmware.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechTapTouchFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 276
    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:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechTapTouchFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 286
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:28,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:31,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:31,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:36,1
    - Dst: fu_hidraw_device_get_input
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:37,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - data
    - datasz
    - error
    argTypes:
    - FuLogitechTapSensorDevice*
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 47
    functionName: fu_logitech_tap_sensor_device_get_feature
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_hidraw_device_get_feature
    - FU_HIDRAW_DEVICE
    - g_autoptr
    - fu_hidraw_device_get_input
    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:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:53,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:53,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:55,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:56,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:59,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:63,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 49
    functionDepth: 5
    functionLinenumber: 49
    functionLinenumberEnd: 68
    functionName: fu_logitech_tap_sensor_device_enable_tde_cb
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_TAP_SENSOR_DEVICE
    - fu_hidraw_device_set_feature
    - fu_struct_logitech_tap_sensor_hid_req_new
    - FU_HIDRAW_DEVICE
    - fu_struct_logitech_tap_sensor_hid_req_set_cmd
    - g_autoptr
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_sensor_device_enable_tde_cb(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:73,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:74,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:74,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:76,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:77,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:80,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:84,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 70
    functionDepth: 5
    functionLinenumber: 70
    functionLinenumberEnd: 89
    functionName: fu_logitech_tap_sensor_device_disable_tde_cb
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_TAP_SENSOR_DEVICE
    - fu_hidraw_device_set_feature
    - fu_struct_logitech_tap_sensor_hid_req_new
    - FU_HIDRAW_DEVICE
    - fu_struct_logitech_tap_sensor_hid_req_set_cmd
    - g_autoptr
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_sensor_device_disable_tde_cb(FuDevice *device,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:95,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:96,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:96,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:99,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:100,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:101,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:104,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:104,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:108,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:116,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:118,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:121,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:124,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:124,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:131,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:134,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:134,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:141,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:141,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:143,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:146,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:149,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:149,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:156,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:156,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:158,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:161,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:161,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:168,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechTapSensorDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 91
    functionDepth: 5
    functionLinenumber: 91
    functionLinenumberEnd: 172
    functionName: fu_logitech_tap_sensor_device_reboot_device
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 1
    functionsReached:
    - fu_device_open
    - fu_hidraw_device_set_feature
    - fu_progress_add_step
    - fu_device_sleep
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
    - fu_progress_step_done
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_struct_logitech_tap_sensor_hid_req_set_cmd
    - fu_progress_new
    - fu_device_locker_new_full
    - fu_progress_set_status
    - g_autoptr
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
    - fu_struct_logitech_tap_sensor_hid_req_new
    - fu_progress_set_id
    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:178,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:179,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:180,1
    - Dst: fu_struct_logitech_tap_sensor_hid_res_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:181,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:183,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:185,1
    - Dst: fu_struct_logitech_tap_sensor_hid_res_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:188,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:191,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:191,1
    - Dst: fu_logitech_tap_sensor_device_get_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:197,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:204,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:211,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechTapSensorDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 174
    functionDepth: 6
    functionLinenumber: 174
    functionLinenumberEnd: 215
    functionName: fu_logitech_tap_sensor_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_memread_uint32_safe
    - fu_device_set_version_raw
    - fu_struct_logitech_tap_sensor_hid_res_new
    - fu_struct_logitech_tap_sensor_hid_req_new
    - fu_logitech_tap_sensor_device_get_feature
    - FU_HIDRAW_DEVICE
    - fu_struct_logitech_tap_sensor_hid_req_set_cmd
    - fu_struct_logitech_tap_sensor_hid_res_set_cmd
    - FU_DEVICE
    - g_autoptr
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_sensor_device_ensure_version(FuLogitechTapSensorDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:220,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:221,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:222,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:223,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:225,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:228,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:231,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte3
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:234,1
    - Dst: fu_struct_logitech_tap_sensor_hid_req_set_payload_byte4
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:237,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:242,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:243,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:251,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:251,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:257,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:257,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:261,1
    - Dst: fu_struct_logitech_tap_sensor_hid_res_new
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:262,1
    - Dst: fu_struct_logitech_tap_sensor_hid_res_set_cmd
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:264,1
    - Dst: fu_logitech_tap_sensor_device_get_feature
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:268,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:274,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:281,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:288,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechTapSensorDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 217
    functionDepth: 6
    functionLinenumber: 217
    functionLinenumberEnd: 292
    functionName: fu_logitech_tap_sensor_device_ensure_serial
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte4
    - fu_hidraw_device_set_feature
    - fu_struct_logitech_tap_sensor_hid_res_new
    - fu_logitech_tap_sensor_device_get_feature
    - g_string_new
    - fu_struct_logitech_tap_sensor_hid_req_new
    - fu_device_sleep
    - fu_device_set_serial
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte1
    - fu_device_locker_new_full
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte3
    - g_set_error
    - fu_struct_logitech_tap_sensor_hid_req_set_cmd
    - fu_struct_logitech_tap_sensor_hid_res_set_cmd
    - g_string_append_printf
    - g_autoptr
    - fu_struct_logitech_tap_sensor_hid_req_set_payload_byte2
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_tap_sensor_device_ensure_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:297,1
    - Dst: fu_logitech_tap_sensor_device_ensure_version
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:299,1
    - Dst: fu_logitech_tap_sensor_device_ensure_serial
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 294
    functionDepth: 7
    functionLinenumber: 294
    functionLinenumberEnd: 304
    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
    - fu_logitech_tap_sensor_device_ensure_version
    - fu_logitech_tap_sensor_device_ensure_serial
    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:309,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:310,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:311,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:312,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:313,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 306
    functionDepth: 3
    functionLinenumber: 306
    functionLinenumberEnd: 315
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:320,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: fu_logitech_tap_sensor_device_convert_version
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    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:326,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:326,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:327,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:327,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:328,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:328,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:329,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:329,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:330,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:330,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:331,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:331,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:332,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:332,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:333,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechTapSensorDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 323
    functionDepth: 6
    functionLinenumber: 323
    functionLinenumberEnd: 334
    functionName: fu_logitech_tap_sensor_device_init
    functionSourceFile: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-sensor-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_retry_set_delay
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    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:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechTapSensorDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 343
    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_xmlb_builder_insert_kx
    - FU_BCM57XX_DICT_IMAGE
    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_input_stream_size
    - g_set_error_literal
    - fu_bcm57xx_verify_crc
    - fu_firmware_set_stream
    - g_autoptr
    - 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_bytes
    - g_byte_array_sized_new
    - fu_firmware_get_bytes
    - g_steal_pointer
    - fu_byte_array_append_uint32
    - g_bytes_get_size
    - fu_crc32_bytes
    - g_autoptr
    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_getenv
    - fu_firmware_set_id
    - g_debug
    - FU_FIRMWARE
    - g_strdup_printf
    - g_warning
    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:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:160,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBcm57xxDictImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: fu_bcm57xx_dict_image_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBcm57xxDictImageClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 171
    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:176,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: fu_bcm57xx_dict_image_new
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-dict-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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_input_stream_size
    - g_set_error_literal
    - fu_bcm57xx_verify_crc
    - fu_firmware_set_stream
    - g_autoptr
    - 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:
    - fu_byte_array_append_bytes
    - g_byte_array_sized_new
    - fu_firmware_get_bytes
    - g_steal_pointer
    - fu_byte_array_append_uint32
    - g_bytes_get_size
    - fu_crc32_bytes
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_bcm57xx_stage2_image_write(FuFirmware *image, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:74,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBcm57xxStage2Image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: fu_bcm57xx_stage2_image_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBcm57xxStage2ImageClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    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:88,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: fu_bcm57xx_stage2_image_new
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage2-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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: 4
    functionLinenumber: 18
    functionLinenumberEnd: 94
    functionName: fu_bcm57xx_stage1_image_parse
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_raw
    - fu_input_stream_read_safe
    - fu_firmware_set_version
    - g_set_error
    - fu_input_stream_read_u32
    - fu_input_stream_size
    - g_set_error_literal
    - fu_bcm57xx_veritem_new
    - fu_bcm57xx_verify_crc
    - fu_firmware_set_stream
    - g_autoptr
    - fu_partial_input_stream_new
    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_firmware_get_version_raw
    - fu_byte_array_append_bytes
    - fu_crc32
    - fu_firmware_get_bytes
    - g_set_error
    - g_steal_pointer
    - fu_firmware_get_alignment
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - fu_memwrite_uint32_safe
    - g_bytes_get_size
    - fu_common_align_up
    - g_autoptr
    - 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: 1
    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
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:157,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBcm57xxStage1Image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: fu_bcm57xx_stage1_image_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_alignment
    - fu_firmware_set_version_format
    - fu_firmware_set_size_max
    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:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBcm57xxStage1ImageClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 167
    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:172,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.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_bcm57xx_stage1_image_new
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-stage1-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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: 3
    functionLinenumber: 17
    functionLinenumberEnd: 34
    functionName: fu_bcm57xx_create_verbuf
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - strlen
    - fu_memcpy_safe
    - g_assert_true
    - 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: 4
    functionLinenumber: 36
    functionLinenumberEnd: 64
    functionName: fu_bcm57xx_common_veritem_func
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_bcm57xx_create_verbuf
    - g_assert_nonnull
    - g_assert_cmpint
    - fu_bcm57xx_veritem_new
    - g_assert_cmpstr
    - g_autoptr
    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:87,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: 5
    functionLinenumber: 66
    functionLinenumberEnd: 108
    functionName: fu_bcm57xx_firmware_talos_func
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_bytes_get_contents
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fu_firmware_get_images
    - g_file_test
    - fu_firmware_parse_bytes
    - fu_bytes_set_contents
    - fu_bytes_compare
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - fu_bcm57xx_firmware_new
    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:115,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:117,1
    - Dst: fu_firmware_roundtrip_from_filename
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:118,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:122,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 110
    functionDepth: 7
    functionLinenumber: 110
    functionLinenumberEnd: 124
    functionName: fu_bcm57xx_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - fu_firmware_roundtrip_from_filename
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    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:129,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:130,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:131,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:132,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:133,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:134,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/bcm57xx/fu-self-test.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 136
    functionName: main
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_type_ensure
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_FIRMWARE
      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_kx
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:41,1
    - Dst: fu_xmlb_builder_insert_kb
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:43,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: fu_bcm57xx_firmware_export
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_BCM57XX_FIRMWARE
    - fu_xmlb_builder_insert_kb
    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:52,1
    - Dst: fu_bcm57xx_verify_crc
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:54,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuBcm57xxFirmware*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: fu_bcm57xx_firmware_parse_header
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_bcm57xx_verify_crc
    - fu_input_stream_read_u32
    - fu_bcm57xx_verify_magic
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_firmware_parse_header(FuBcm57xxFirmware *self,
      GInputStream *stream, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:72,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:72,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:73,1
    - Dst: fu_struct_bcm57xx_nvram_info_parse_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:75,1
    - Dst: fu_struct_bcm57xx_nvram_info_get_mac_addr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:80,1
    - Dst: fu_struct_bcm57xx_nvram_info_get_vendor
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:84,1
    - Dst: fu_struct_bcm57xx_nvram_info_get_device
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:85,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:88,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:90,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuBcm57xxFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 92
    functionName: fu_bcm57xx_firmware_parse_info
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - fu_firmware_parse_stream
    - g_steal_pointer
    - fu_firmware_new
    - fu_struct_bcm57xx_nvram_info_get_mac_addr
    - fu_struct_bcm57xx_nvram_info_get_vendor
    - fu_struct_bcm57xx_nvram_info_get_device
    - fu_struct_bcm57xx_nvram_info_parse_stream
    - g_autoptr
    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:105,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:106,1
    - Dst: fu_bcm57xx_stage1_image_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:107,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:109,1
    - Dst: fu_struct_bcm57xx_nvram_header_parse_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:111,1
    - Dst: fu_struct_bcm57xx_nvram_header_get_size_wrds
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:114,1
    - Dst: fu_struct_bcm57xx_nvram_header_get_offset
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:115,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:118,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:127,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:136,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:146,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:149,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:161,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:162,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:163,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 5
    argNames:
    - self
    - stream
    - out_stage1_sz
    - flags
    - error
    argTypes:
    - FuBcm57xxFirmware*
    - GInputStream*
    - guint32*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 164
    functionName: fu_bcm57xx_firmware_parse_stage1
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_bcm57xx_nvram_header_get_size_wrds
    - fu_firmware_set_id
    - g_set_error
    - fu_input_stream_size
    - fu_bcm57xx_stage1_image_new
    - fu_firmware_parse_stream
    - g_steal_pointer
    - fu_firmware_set_offset
    - fu_struct_bcm57xx_nvram_header_parse_stream
    - fu_struct_bcm57xx_nvram_header_get_offset
    - g_autoptr
    - 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:176,1
    - Dst: fu_bcm57xx_stage2_image_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:176,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:177,1
    - Dst: fu_bcm57xx_verify_magic
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:180,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:182,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:188,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:191,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:201,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:204,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:212,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:213,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:214,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: 215
      start: 166
    functionDepth: 4
    functionLinenumber: 166
    functionLinenumberEnd: 215
    functionName: fu_bcm57xx_firmware_parse_stage2
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_partial_input_stream_new
    - fu_bcm57xx_verify_magic
    - fu_firmware_set_id
    - g_set_error
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - g_steal_pointer
    - fu_firmware_set_offset
    - g_autoptr
    - fu_input_stream_read_u32
    - fu_bcm57xx_stage2_image_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: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:230,1
    - Dst: fu_bcm57xx_dict_image_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:230,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:231,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:232,1
    - Dst: fu_struct_bcm57xx_nvram_directory_parse_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:235,1
    - Dst: fu_struct_bcm57xx_nvram_directory_get_addr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:238,1
    - Dst: fu_struct_bcm57xx_nvram_directory_get_size_wrds
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:239,1
    - Dst: fu_struct_bcm57xx_nvram_directory_get_offset
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:240,1
    - Dst: fu_bcm57xx_dict_image_set_target
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:248,1
    - Dst: FU_BCM57XX_DICT_IMAGE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:248,1
    - Dst: fu_bcm57xx_dict_image_set_kind
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:250,1
    - Dst: FU_BCM57XX_DICT_IMAGE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:250,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:251,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:252,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:253,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:257,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:257,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:258,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:259,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:259,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:263,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:266,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:274,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:277,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:285,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:285,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 5
    argNames:
    - self
    - stream
    - idx
    - flags
    - error
    argTypes:
    - FuBcm57xxFirmware*
    - GInputStream*
    - guint
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 217
    functionDepth: 4
    functionLinenumber: 217
    functionLinenumberEnd: 286
    functionName: fu_bcm57xx_firmware_parse_dict
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - FU_BCM57XX_DICT_IMAGE
    - g_bytes_new
    - fu_bcm57xx_dict_image_set_kind
    - fu_firmware_set_bytes
    - fu_firmware_set_offset
    - fu_struct_bcm57xx_nvram_directory_get_offset
    - fu_firmware_set_addr
    - fu_firmware_add_image
    - FU_FIRMWARE
    - fu_firmware_set_idx
    - fu_struct_bcm57xx_nvram_directory_get_addr
    - fu_struct_bcm57xx_nvram_directory_get_size_wrds
    - fu_partial_input_stream_new
    - fu_struct_bcm57xx_nvram_directory_parse_stream
    - g_set_error
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - fu_bcm57xx_dict_image_new
    - fu_bcm57xx_dict_image_set_target
    - g_autoptr
    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:296,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:297,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:302,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 288
    functionDepth: 4
    functionLinenumber: 288
    functionLinenumberEnd: 312
    functionName: fu_bcm57xx_firmware_validate
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u32
    - g_prefix_error_literal
    - g_set_error
    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: 24
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:320,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:324,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:324,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:325,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:326,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:327,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:328,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:328,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:329,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:330,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:331,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:332,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:335,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:340,1
    - Dst: fu_bcm57xx_dict_image_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:340,1
    - Dst: fu_bcm57xx_dict_image_set_target
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:341,1
    - Dst: FU_BCM57XX_DICT_IMAGE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:341,1
    - Dst: fu_bcm57xx_dict_image_set_kind
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:342,1
    - Dst: FU_BCM57XX_DICT_IMAGE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:342,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:343,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:344,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:345,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:350,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:350,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:351,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:353,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:354,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:359,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:368,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:371,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:375,1
    - Dst: fu_bcm57xx_firmware_parse_header
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:381,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:382,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:387,1
    - Dst: fu_bcm57xx_firmware_parse_info
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:393,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:395,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:398,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:399,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:404,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:407,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:408,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:411,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:412,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:413,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:418,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:421,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:422,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:425,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:426,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:427,1
    - Dst: fu_bcm57xx_firmware_parse_stage1
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:431,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:433,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:436,1
    - Dst: fu_bcm57xx_firmware_parse_stage2
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:440,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:442,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:445,1
    - Dst: fu_bcm57xx_firmware_parse_dict
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:450,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:451,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 101
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 314
    functionDepth: 5
    functionLinenumber: 314
    functionLinenumberEnd: 458
    functionName: fu_bcm57xx_firmware_parse
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - FU_BCM57XX_DICT_IMAGE
    - fu_bcm57xx_dict_image_set_kind
    - fu_firmware_set_offset
    - g_autoptr
    - fu_firmware_set_stream
    - fu_firmware_set_addr
    - fu_firmware_add_image
    - g_prefix_error_literal
    - FU_BCM57XX_FIRMWARE
    - fu_bcm57xx_firmware_parse_stage1
    - fu_bcm57xx_firmware_parse_header
    - fu_bcm57xx_firmware_parse_info
    - fu_firmware_new
    - fu_bcm57xx_firmware_parse_dict
    - fu_partial_input_stream_new
    - fu_input_stream_read_u8
    - fu_firmware_set_id
    - g_set_error
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - fu_bcm57xx_dict_image_new
    - g_prefix_error
    - fu_bcm57xx_dict_image_set_target
    - fu_bcm57xx_firmware_parse_stage2
    - fu_input_stream_read_u32
    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:463,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:463,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:465,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sz
    argTypes:
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 467
    functionName: _g_bytes_new_sized
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint8
    - g_autoptr
    - g_bytes_new
    - g_byte_array_sized_new
    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:472,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:476,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:479,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 485
    functionName: fu_bcm57xx_firmware_build
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - FU_BCM57XX_FIRMWARE
    - xb_node_query_text_as_uint
    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:491,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:492,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:492,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:493,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:494,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:495,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:496,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:497,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:498,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:499,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:500,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:501,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:502,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:503,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:506,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:509,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:512,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:513,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:516,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:519,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:522,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:523,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:524,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:525,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:527,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:528,1
    - Dst: fu_crc32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:529,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:533,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:535,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:536,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:538,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:540,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:545,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:545,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:546,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:548,1
    - Dst: fu_bcm57xx_dict_image_get_target
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:549,1
    - Dst: FU_BCM57XX_DICT_IMAGE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:550,1
    - Dst: fu_bcm57xx_dict_image_get_kind
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:552,1
    - Dst: FU_BCM57XX_DICT_IMAGE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:552,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:555,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:556,1
    - Dst: g_bytes_get_size
      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:559,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:562,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:564,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:566,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:566,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:570,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:572,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:576,1
    - Dst: fu_struct_bcm57xx_nvram_info_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:576,1
    - Dst: fu_struct_bcm57xx_nvram_info_set_device
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:577,1
    - Dst: fu_struct_bcm57xx_nvram_info_set_vendor
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:578,1
    - Dst: fu_struct_bcm57xx_nvram_info_to_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:579,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:581,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:584,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:586,1
    - Dst: _g_bytes_new_sized
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:590,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:592,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:595,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:597,1
    - Dst: _g_bytes_new_sized
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:601,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:603,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:606,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:607,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:611,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:612,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:617,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:620,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 100
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 487
    functionDepth: 4
    functionLinenumber: 487
    functionLinenumberEnd: 621
    functionName: fu_bcm57xx_firmware_write
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_crc32
    - fu_firmware_get_image_by_idx
    - FU_BCM57XX_DICT_IMAGE
    - g_bytes_new
    - _g_bytes_new_sized
    - fu_firmware_get_image_by_id
    - fu_struct_bcm57xx_nvram_info_new
    - fu_byte_array_append_uint32
    - fu_bcm57xx_dict_image_get_target
    - fu_struct_bcm57xx_nvram_info_set_device
    - g_ptr_array_index
    - fu_byte_array_append_bytes
    - g_byte_array_sized_new
    - fu_struct_bcm57xx_nvram_info_set_vendor
    - FU_BCM57XX_FIRMWARE
    - fu_bcm57xx_dict_image_get_kind
    - g_ptr_array_new_with_free_func
    - fu_struct_bcm57xx_nvram_info_to_bytes
    - fu_byte_array_append_uint8
    - g_steal_pointer
    - g_ptr_array_add
    - fu_firmware_get_addr
    - g_bytes_get_size
    - g_autoptr
    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: 627
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 627
    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: 633
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 633
    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:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:641,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:641,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:642,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:642,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:643,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:643,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:644,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:644,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:645,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:645,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:646,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:646,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:647,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:647,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:648,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBcm57xxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 649
    functionName: fu_bcm57xx_firmware_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBcm57xxFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 660
    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:665,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 666
    functionName: fu_bcm57xx_firmware_new
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-firmware.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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:43,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 45
    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:50,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 51
    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: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    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:70,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:70,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:70,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:72,1
    - Dst: strncpy
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:75,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:76,1
    - Dst: fu_ioctl_add_mutable_buffer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:77,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:78,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuBcm57xxDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 92
    functionName: fu_bcm57xx_device_submit_ifreq
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_ioctl_execute
    - strncpy
    - fu_ioctl_add_mutable_buffer
    - g_prefix_error_literal
    - fu_udev_device_ioctl_new
    - FU_UDEV_DEVICE
    - fu_ioctl_add_key_as_u16
    - g_autoptr
    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:108,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:116,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:116,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:117,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:121,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:121,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:127,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:132,1
    - Dst: fu_bcm57xx_device_submit_ifreq
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:133,1
    - Dst: FU_BCM57XX_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:133,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:137,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:144,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: 150
      start: 95
    functionDepth: 5
    functionLinenumber: 95
    functionLinenumberEnd: 150
    functionName: fu_bcm57xx_device_nvram_write
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - FU_BCM57XX_DEVICE
    - g_set_error
    - fu_bcm57xx_device_submit_ifreq
    - g_set_error_literal
    - g_prefix_error_literal
    - g_malloc0
    - memcpy
    - FU_DEVICE
    - fu_device_get_firmware_size_max
    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:165,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:173,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:173,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:174,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:178,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:178,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:184,1
    - Dst: fu_bcm57xx_device_submit_ifreq
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:188,1
    - Dst: FU_BCM57XX_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:188,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:192,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:197,1
    - Dst: G_STRUCT_OFFSET
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:202,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:210,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: 216
      start: 152
    functionDepth: 5
    functionLinenumber: 152
    functionLinenumberEnd: 216
    functionName: fu_bcm57xx_device_nvram_read
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - FU_BCM57XX_DEVICE
    - g_set_error
    - fu_bcm57xx_device_submit_ifreq
    - g_set_error_literal
    - g_prefix_error_literal
    - g_malloc0
    - FU_DEVICE
    - G_STRUCT_OFFSET
    - fu_device_get_firmware_size_max
    - fu_memcpy_safe
    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:226,1
    - Dst: fu_bcm57xx_device_submit_ifreq
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:234,1
    - Dst: FU_BCM57XX_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:234,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:238,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:241,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:244,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:244,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:246,1
    - Dst: fu_pci_device_get_subsystem_vid
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:247,1
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:247,1
    - Dst: fu_pci_device_get_subsystem_pid
      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: g_debug
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:249,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:250,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:250,1
    - Dst: fu_device_get_firmware_size_max
      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: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:252,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:257,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:257,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBcm57xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 218
    functionDepth: 5
    functionLinenumber: 218
    functionLinenumberEnd: 270
    functionName: fu_bcm57xx_device_nvram_check
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - FU_PCI_DEVICE
    - fu_pci_device_get_subsystem_vid
    - FU_BCM57XX_DEVICE
    - fu_pci_device_get_subsystem_pid
    - g_debug
    - fu_bcm57xx_device_submit_ifreq
    - fu_device_set_firmware_size
    - g_set_error
    - g_set_error_literal
    - g_prefix_error_literal
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_get_firmware_size_max
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_bcm57xx_device_nvram_check(FuBcm57xxDevice *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_BCM57XX_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:275,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:276,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:276,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:277,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:278,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:280,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:283,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:284,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:285,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:287,1
    - Dst: fu_bcm57xx_device_nvram_read
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:288,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:289,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:290,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:291,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:294,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:298,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 272
    functionDepth: 6
    functionLinenumber: 272
    functionLinenumberEnd: 299
    functionName: fu_bcm57xx_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - FU_BCM57XX_DEVICE
    - fu_chunk_get_data_sz
    - fu_bcm57xx_device_nvram_read
    - fu_chunk_get_data_out
    - fu_progress_set_steps
    - fu_progress_step_done
    - g_malloc0
    - g_steal_pointer
    - FU_DEVICE
    - fu_chunk_array_mutable_new
    - fu_chunk_get_address
    - fu_device_get_firmware_size_max
    - g_bytes_new_take
    - fu_progress_set_status
    - g_autoptr
    - g_ptr_array_index
    - fu_progress_set_id
    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:304,1
    - Dst: fu_bcm57xx_firmware_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:304,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:305,1
    - Dst: fu_bcm57xx_device_dump_firmware
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:308,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:311,1
    - Dst: fu_firmware_remove_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:315,1
    - Dst: fu_firmware_remove_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:317,1
    - Dst: fu_firmware_remove_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:319,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:321,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 301
    functionDepth: 7
    functionLinenumber: 301
    functionLinenumberEnd: 322
    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_firmware_parse_bytes
    - fu_firmware_remove_image_by_id
    - g_autoptr
    - fu_bcm57xx_firmware_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_bcm57xx_device_read_firmware(FuDevice *device, FuProgress *progress, GError
      **error)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      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: fu_bcm57xx_firmware_new
      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: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:340,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:343,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:344,1
    - Dst: fu_bcm57xx_firmware_get_vendor
      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_bcm57xx_firmware_get_model
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:351,1
    - Dst: FU_BCM57XX_FIRMWARE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:351,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:353,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:353,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:354,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:361,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:362,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:368,1
    - Dst: fu_bcm57xx_device_dump_firmware
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:369,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:372,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:377,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:380,1
    - Dst: g_info
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:381,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:384,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:386,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_image_by_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:394,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:396,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:401,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:403,1
    - Dst: FU_IS_BCM57XX_DICT_IMAGE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:404,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:405,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:409,1
    - Dst: g_info
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:410,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:413,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 324
    functionDepth: 7
    functionLinenumber: 324
    functionLinenumberEnd: 414
    functionName: fu_bcm57xx_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - fu_firmware_to_string
    - fu_firmware_get_image_by_id
    - fu_bcm57xx_firmware_get_vendor
    - g_ptr_array_index
    - fu_firmware_add_image
    - g_prefix_error_literal
    - fu_firmware_get_images
    - FU_BCM57XX_FIRMWARE
    - fu_firmware_parse_bytes
    - fu_progress_set_status
    - FU_IS_BCM57XX_DICT_IMAGE
    - g_info
    - fu_firmware_set_idx
    - fu_device_get_vid
    - fu_bcm57xx_firmware_new
    - g_set_error
    - fu_firmware_parse_stream
    - g_steal_pointer
    - fu_bcm57xx_firmware_get_model
    - fu_bcm57xx_device_dump_firmware
    - g_autoptr
    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:422,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:423,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:423,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:424,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:425,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:428,1
    - Dst: fu_bcm57xx_device_nvram_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:431,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:432,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:433,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:434,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuBcm57xxDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 416
    functionDepth: 6
    functionLinenumber: 416
    functionLinenumberEnd: 440
    functionName: fu_bcm57xx_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_bcm57xx_device_nvram_write
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_chunk_get_address
    - fu_chunk_get_data
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:449,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:450,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:451,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:452,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:455,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:456,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:457,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:458,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:459,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:462,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:465,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:468,1
    - Dst: fu_bcm57xx_device_write_chunks
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:472,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:472,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:474,1
    - Dst: fu_bcm57xx_device_dump_firmware
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:478,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:478,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:481,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:483,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: 487
      start: 442
    functionDepth: 7
    functionLinenumber: 442
    functionLinenumberEnd: 487
    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_bcm57xx_device_write_chunks
    - fu_progress_add_step
    - fu_chunk_array_new_from_bytes
    - fu_progress_add_flag
    - fu_progress_step_done
    - fu_bcm57xx_device_dump_firmware
    - fu_bytes_compare
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:492,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:492,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:495,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:496,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:497,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 489
    functionDepth: 4
    functionLinenumber: 489
    functionLinenumberEnd: 505
    functionName: fu_bcm57xx_device_attach
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - fwupd_request_new
    - fwupd_request_set_message
    - fwupd_request_add_flag
    - fwupd_request_set_kind
    - fu_device_emit_request
    - g_autoptr
    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:510,1
    - Dst: fu_bcm57xx_device_nvram_check
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:514,1
    - Dst: fu_bcm57xx_device_nvram_read
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:518,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:526,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:527,1
    - Dst: GUINT32_FROM_BE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:527,1
    - Dst: fu_device_set_branch
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:528,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:532,1
    - Dst: fu_bcm57xx_device_nvram_read
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:535,1
    - Dst: GUINT32_FROM_BE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:541,1
    - Dst: fu_bcm57xx_device_nvram_read
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:544,1
    - Dst: fu_bcm57xx_veritem_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:550,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:552,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:553,1
    - Dst: fu_device_set_branch
      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:559,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:559,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:560,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:560,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:561,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:561,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:562,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:562,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 507
    functionDepth: 6
    functionLinenumber: 507
    functionLinenumberEnd: 564
    functionName: fu_bcm57xx_device_setup
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_branch
    - FU_BCM57XX_DEVICE
    - fu_device_set_version
    - fu_device_set_version_raw
    - fu_bcm57xx_device_nvram_read
    - fu_bcm57xx_device_nvram_check
    - GUINT32_FROM_BE
    - fu_bcm57xx_veritem_new
    - FU_DEVICE
    - fu_device_set_version_format
    - g_autoptr
    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:570,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:572,1
    - Dst: socket
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:574,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:576,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:581,1
    - Dst: fu_io_channel_unix_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:587,1
    - Dst: g_steal_fd
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:587,1
    - Dst: fu_udev_device_set_io_channel
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:588,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:588,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 597
    functionName: fu_bcm57xx_device_open
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - FU_BCM57XX_DEVICE
    - fu_io_channel_unix_new
    - fu_udev_device_set_io_channel
    - g_set_error
    - socket
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - fwupd_strerror
    - g_autoptr
    - g_steal_fd
    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:602,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:603,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:604,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:605,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:606,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:607,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 599
    functionDepth: 3
    functionLinenumber: 599
    functionLinenumberEnd: 609
    functionName: fu_bcm57xx_device_set_progress
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_bcm57xx_device_set_progress(FuDevice *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:614,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 615
    functionName: fu_bcm57xx_device_convert_version
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    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:620,1
    - Dst: g_value_set_string
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:623,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:626,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: 629
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 629
    functionName: fu_bcm57xx_device_get_property
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - g_value_set_string
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_BCM57XX_DEVICE
    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:637,1
    - Dst: g_free
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:640,1
    - Dst: g_value_dup_string
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:641,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:644,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: 647
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 647
    functionName: fu_bcm57xx_device_set_property
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - FU_BCM57XX_DEVICE
    - g_free
    - g_value_dup_string
    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:652,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:652,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:653,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:653,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:654,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:654,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:655,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:655,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:656,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:656,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:659,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBcm57xxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 649
    functionDepth: 6
    functionLinenumber: 649
    functionLinenumberEnd: 660
    functionName: fu_bcm57xx_device_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_firmware_size
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_add_request_flag
    - fu_device_add_protocol
    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:665,1
    - Dst: g_free
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:666,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 668
    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:673,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:676,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:694,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBcm57xxDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 700
    functionName: fu_bcm57xx_device_class_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_string
    - 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: 4
    functionLinenumber: 14
    functionLinenumberEnd: 60
    functionName: fu_bcm57xx_verify_crc
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c
    functionUses: 4
    functionsReached:
    - fu_input_stream_read_u32
    - fu_input_stream_size
    - g_set_error
    - g_set_error_literal
    - g_autoptr
    - fu_partial_input_stream_new
    - fu_input_stream_compute_crc32
    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: 4
    functionLinenumber: 62
    functionLinenumberEnd: 81
    functionName: fu_bcm57xx_verify_magic
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-common.c
    functionUses: 2
    functionsReached:
    - fu_input_stream_read_u32
    - g_set_error
    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:
    - FuBcm57xxVeritem*
    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(FuBcm57xxVeritem *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: 3
    functionsReached:
    - g_strdup
    - g_strndup
    - g_new0
    - g_steal_pointer
    - strlen
    - g_str_has_prefix
    - g_autoptr
    linkageType: ''
    returnType: FuBcm57xxVeritem
    signature: 'FuBcm57xxVeritem *

      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:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:29,1
    - Dst: FU_IS_UDEV_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:32,1
    - Dst: fu_udev_device_get_number
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:36,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:36,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:37,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:45,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:46,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:49,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:49,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:49,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:52,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:55,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:56,1
    - Dst: fu_path_glob
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:58,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:60,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:67,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:67,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:68,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_add_device
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:74,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 19
    functionDepth: 9
    functionLinenumber: 19
    functionLinenumberEnd: 76
    functionName: fu_bcm57xx_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_locker_new
    - fu_device_incorporate
    - g_object_new
    - fu_device_query_file_exists
    - g_ptr_array_index
    - fu_udev_device_get_number
    - g_debug
    - g_set_error_literal
    - fu_device_has_flag
    - fu_udev_device_get_sysfs_path
    - g_path_get_basename
    - fu_device_sleep
    - FU_UDEV_DEVICE
    - fu_plugin_add_device
    - fu_path_glob
    - g_set_error
    - FU_IS_UDEV_DEVICE
    - g_autoptr
    - g_build_filename
    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_add_udev_subsystem
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:87,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:88,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:89,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 93
    functionName: fu_bcm57xx_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_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:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBcm57xxPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: fu_bcm57xx_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-plugin.c
    functionUses: 0
    functionsReached:
    - 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: 5
    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_amd_kria_image_firmware_new
    - fu_progress_new
    - fu_firmware_parse_bytes
    - fu_device_dump_firmware
    - fu_firmware_get_version
    - g_autoptr
    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: 5
    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_amd_kria_persistent_firmware_new
    - fu_amd_kria_persistent_firmware_booted_image_a
    - fu_progress_new
    - fu_firmware_parse_bytes
    - FU_AMD_KRIA_PERSISTENT_FIRMWARE
    - fu_device_dump_firmware
    - FU_AMD_KRIA_PLUGIN
    - g_autoptr
    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:85,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:87,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:87,1
    - Dst: FU_AMD_KRIA_PLUGIN
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:90,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:91,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:92,1
    - Dst: fu_amd_kria_plugin_process_image
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:93,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:94,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:95,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:95,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:96,1
    - Dst: fu_amd_kria_plugin_process_image
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:97,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:98,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:99,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:99,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:100,1
    - Dst: fu_amd_kria_plugin_process_persistent
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:101,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:102,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:106,1
    - Dst: fu_device_get_version
      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: g_strcmp0
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:110,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:111,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:112,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:115,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 2
    argNames:
    - plugin
    - dev
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 79
    functionDepth: 6
    functionLinenumber: 79
    functionLinenumberEnd: 116
    functionName: fu_amd_kria_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_device_add_flag
    - g_strcmp0
    - fu_device_get_parent
    - fu_device_set_version
    - FU_AMD_KRIA_PLUGIN
    - fu_device_get_plugin
    - fu_device_remove_flag
    - fu_device_get_version
    - fu_amd_kria_plugin_process_persistent
    - fu_amd_kria_plugin_process_image
    - g_warning
    - fu_device_get_name
    - g_autoptr
    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:121,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:123,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:124,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - plugin
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: fu_amd_kria_plugin_to_string
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append
    - FU_AMD_KRIA_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_plugin_to_string(FuPlugin *plugin, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:132,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:137,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:140,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:141,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 149
    functionName: fu_amd_kria_plugin_startup
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c
    functionUses: 0
    functionsReached:
    - g_file_test
    - g_set_error_literal
    - fu_plugin_get_context
    - fu_context_build_filename
    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:154,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:157,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:158,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:161,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:162,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:163,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 167
    functionName: fu_amd_kria_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_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:172,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:174,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:175,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 177
    functionName: fu_amd_kria_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c
    functionUses: 0
    functionsReached:
    - g_free
    - G_OBJECT_CLASS
    - FU_AMD_KRIA_PLUGIN
    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:182,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdKriaPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 191
    functionName: fu_amd_kria_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    - G_OBJECT_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_input_stream_read_bytes
    - fu_strsafe
    - fu_firmware_set_version
    - g_bytes_get_data
    - g_set_error_literal
    - FU_FIRMWARE
    - g_autoptr
    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
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c:60,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdKriaImageFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: fu_amd_kria_image_firmware_init
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdKriaImageFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    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:73,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: fu_amd_kria_image_firmware_new
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-image-firmware.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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: 1410
    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
    - fwupd_codec_string_append
    - FU_AMD_KRIA_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_amd_kria_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 3
    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: g_set_error_literal
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:48,1
    - Dst: fu_volume_locker_new
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 57
    functionName: fu_amd_kria_device_prepare
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_set_error_literal
    - fu_volume_locker_new
    - 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_AMD_KRIA_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:65,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:66,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:70,1
    - Dst: fu_volume_locker_close
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:74,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 79
    functionName: fu_amd_kria_device_cleanup
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    functionUses: 0
    functionsReached:
    - fu_volume_locker_close
    - g_set_error_literal
    - FU_AMD_KRIA_DEVICE
    - g_clear_object
    - GET_PRIVATE
    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:88,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:91,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:93,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:96,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:96,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:101,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:102,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:104,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: 108
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 108
    functionName: fu_amd_kria_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_firmware_get_bytes
    - fu_volume_get_mount_point
    - fu_path_mkdir_parent
    - fu_bytes_set_contents
    - FU_AMD_KRIA_DEVICE
    - g_autoptr
    - g_build_filename
    - GET_PRIVATE
    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:116,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:117,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:119,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:120,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 128
    functionName: fu_amd_kria_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_set_error_literal
    - FU_AMD_KRIA_DEVICE
    - GET_PRIVATE
    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:133,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:134,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:137,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:140,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:148,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:148,1
    - Dst: fu_strsplit
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:151,1
    - Dst: strlen
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:151,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:153,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:160,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:162,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 130
    functionDepth: 5
    functionLinenumber: 130
    functionLinenumberEnd: 171
    functionName: fu_amd_kria_device_probe
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    functionUses: 0
    functionsReached:
    - fu_strsplit
    - g_strcmp0
    - g_set_error
    - g_set_error_literal
    - g_strv_length
    - strlen
    - fu_udev_device_read_property
    - FU_AMD_KRIA_DEVICE
    - g_auto
    - FU_UDEV_DEVICE
    - FU_DEVICE_CLASS
    - GET_PRIVATE
    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:176,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:176,1
    - Dst: g_build_path
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:179,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:180,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:181,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:183,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:187,1
    - Dst: fu_amd_kria_som_eeprom_new
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:188,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:189,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:193,1
    - Dst: fu_amd_kria_som_eeprom_get_manufacturer
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:195,1
    - Dst: FU_AMD_KRIA_SOM_EEPROM
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:195,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:196,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:196,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:197,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:197,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:198,1
    - Dst: fu_amd_kria_som_eeprom_get_product_name
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:201,1
    - Dst: FU_AMD_KRIA_SOM_EEPROM
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:201,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:202,1
    - Dst: fu_amd_kria_som_eeprom_get_serial_number
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:204,1
    - Dst: FU_AMD_KRIA_SOM_EEPROM
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:204,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:205,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 173
    functionDepth: 7
    functionLinenumber: 173
    functionLinenumberEnd: 211
    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_product_name
    - fu_udev_device_get_sysfs_path
    - g_bytes_new
    - fu_amd_kria_som_eeprom_new
    - fu_device_add_instance_str
    - fu_device_get_vendor
    - fu_device_build_instance_id
    - g_file_get_contents
    - fu_device_set_serial
    - g_build_path
    - fu_firmware_parse_bytes
    - fu_device_set_vendor
    - fu_amd_kria_som_eeprom_get_manufacturer
    - FU_AMD_KRIA_SOM_EEPROM
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_device_build_vendor_id
    - fu_amd_kria_som_eeprom_get_serial_number
    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:216,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:217,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:219,1
    - Dst: fu_device_get_context
      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_context_get_default_esp
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:223,1
    - Dst: fu_device_inhibit
      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: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 213
    functionDepth: 5
    functionLinenumber: 213
    functionLinenumberEnd: 229
    functionName: fu_amd_kria_device_constructed
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    functionUses: 0
    functionsReached:
    - fu_context_get_default_esp
    - fu_device_get_context
    - G_OBJECT_CLASS
    - FU_DEVICE
    - fu_device_inhibit
    - FU_AMD_KRIA_DEVICE
    - g_autoptr
    - GET_PRIVATE
    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:234,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:234,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:235,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:235,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:236,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:236,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:237,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:237,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:238,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:238,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:239,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:239,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:240,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:240,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:241,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:241,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:242,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:242,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:243,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdKriaDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 231
    functionDepth: 6
    functionLinenumber: 231
    functionLinenumberEnd: 244
    functionName: fu_amd_kria_device_init
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_add_flag
    - fu_device_add_icon
    - fu_device_set_name
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:249,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:250,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:253,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:255,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:256,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 259
    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
    - g_free
    - FU_AMD_KRIA_DEVICE
    - GET_PRIVATE
    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:264,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-device.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdKriaDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 277
    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: 11
    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: g_set_error_literal
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:70,1
    - Dst: LENGTH
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:76,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:78,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:84,1
    - Dst: LENGTH
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:90,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:92,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:98,1
    - Dst: LENGTH
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:104,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:106,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 111
    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_input_stream_read_bytes
    - fu_struct_ipmi_common_get_board_offset
    - fu_memstrsafe
    - fu_struct_ipmi_common_parse_stream
    - fu_bytes_get_data_safe
    - g_set_error_literal
    - FU_AMD_KRIA_SOM_EEPROM
    - fu_struct_board_info_parse_stream
    - g_autoptr
    - LENGTH
    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: 117
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 117
    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: 123
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 123
    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: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    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:134,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:136,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:137,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: fu_amd_kria_som_eeprom_export
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kv
    - FU_AMD_KRIA_SOM_EEPROM
    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:144,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:144,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:145,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdKriaSomEeprom*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: fu_amd_kria_som_eeprom_init
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:151,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:153,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:154,1
    - Dst: g_free
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:155,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 158
    functionName: fu_amd_kria_som_eeprom_finalize
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_AMD_KRIA_SOM_EEPROM
    - 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:162,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdKriaSomEepromClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 167
    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:172,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.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_amd_kria_som_eeprom_new
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-som-eeprom.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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:
    - g_autoptr
    - FU_AMD_KRIA_PERSISTENT_FIRMWARE
    - fu_struct_amd_kria_persist_reg_get_last_booted_img
    - fu_struct_amd_kria_persist_reg_parse_stream
    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:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c:50,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAmdKriaPersistentFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: fu_amd_kria_persistent_firmware_init
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:58,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 63
    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:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAmdKriaPersistentFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    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:76,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: fu_amd_kria_persistent_firmware_new
    functionSourceFile: /src/fwupd/plugins/amd-kria/fu-amd-kria-persistent-firmware.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_amd_kria_persistent_firmware_new(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:20,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: fu_context_has_flag
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:32,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:33,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:34,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:39,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:46,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:47,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:50,1
    - Dst: g_file_load_contents
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:51,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:52,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:53,1
    - Dst: g_strstr_len
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:56,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:57,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:58,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c:59,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-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: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 65
    functionName: fu_linux_sleep_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/linux-sleep/fu-linux-sleep-plugin.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_context_build_filename
    - g_debug
    - fu_plugin_security_attr_new
    - fu_plugin_get_context
    - g_file_load_contents
    - g_strstr_len
    - g_warning
    - fwupd_security_attr_set_result_success
    - g_file_new_for_path
    - fu_security_attrs_append
    - g_autoptr
    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: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLinuxSleepPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    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
    - fu_byte_array_append_uint16
    - fu_firmware_get_bytes_with_patches
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - g_bytes_get_size
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_nordic_hid_firmware_mcuboot_write(FuFirmware *firmware, GError **error)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:78,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:81,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:88,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:91,1
    - Dst: fu_size_checked_inc_product
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:98,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:100,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:102,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:105,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:113,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:115,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:117,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:119,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:121,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:123,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:123,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuNordicHidFirmwareMcuboot*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 126
    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_u8
    - fu_input_stream_read_u16
    - fu_firmware_set_version
    - g_set_error_literal
    - FU_FIRMWARE
    - g_strdup_printf
    - fu_size_checked_inc
    - fu_input_stream_read_u32
    - fu_size_checked_inc_product
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_firmware_mcuboot_validate(FuNordicHidFirmwareMcuboot
      *self,\n\t\t\t\t\tGInputStream *stream,\n\t\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_NORDIC_HID_FIRMWARE_MCUBOOT
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:134,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:135,1
    - Dst: fu_nordic_hid_firmware_mcuboot_validate
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 5
    functionLinenumber: 128
    functionLinenumberEnd: 139
    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
    - 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:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:144,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuNordicHidFirmwareMcuboot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: fu_nordic_hid_firmware_mcuboot_init
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-mcuboot.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuNordicHidFirmwareMcubootClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 153
    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: 1418
    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:
    - FU_NORDIC_HID_FIRMWARE
    - fu_xmlb_builder_insert_kx
    - GET_PRIVATE
    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:
    - FU_NORDIC_HID_FIRMWARE
    - g_set_error_literal
    - g_strdup_printf
    - 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:
    - FU_NORDIC_HID_FIRMWARE
    - fu_input_stream_compute_crc32
    - GET_PRIVATE
    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
    - fu_firmware_add_flag
    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: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    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:27,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c:28,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c:29,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c:31,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c:32,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 36
    functionName: fu_nordic_hid_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuNordicHidPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    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
    - fu_firmware_get_bytes_with_patches
    - g_steal_pointer
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - g_autoptr
    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:59,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:61,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:67,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:73,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:80,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:94,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:99,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:99,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:106,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuNordicHidFirmwareB0*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 41
    functionDepth: 4
    functionLinenumber: 41
    functionLinenumberEnd: 111
    functionName: fu_nordic_hid_firmware_b0_read_fwinfo
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version
    - FU_FIRMWARE
    - g_set_error_literal
    - g_strdup_printf
    - G_N_ELEMENTS
    - fu_input_stream_read_u32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_firmware_b0_read_fwinfo(FuNordicHidFirmwareB0
      *self,\n\t\t\t\t      GInputStream *stream,\n\t\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_NORDIC_HID_FIRMWARE_B0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:119,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:120,1
    - Dst: fu_nordic_hid_firmware_b0_read_fwinfo
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 5
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: fu_nordic_hid_firmware_b0_parse
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c
    functionUses: 0
    functionsReached:
    - FU_NORDIC_HID_FIRMWARE_B0
    - 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:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:129,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuNordicHidFirmwareB0*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: fu_nordic_hid_firmware_b0_init
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-firmware-b0.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuNordicHidFirmwareB0Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 138
    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:89,1
    - Dst: g_free
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - opt
    argTypes:
    - FuNordicCfgChannelModuleOption*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    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:100,1
    - Dst: g_free
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:101,1
    - Dst: g_free
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - FuNordicCfgChannelModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: fu_nordic_hid_cfg_channel_module_free
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_free
    - g_ptr_array_unref
    linkageType: ''
    returnType: void
    signature: void fu_nordic_hid_cfg_channel_module_free(FuNordicCfgChannelModule
      *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:112,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:115,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:115,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: fu_nordic_hid_cfg_channel_get_udev_device
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_DEVICE
    - FU_DEVICE
    - fu_device_get_proxy
    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:124,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:127,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 118
    functionDepth: 5
    functionLinenumber: 118
    functionLinenumberEnd: 132
    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_set_feature
    - fu_nordic_hid_cfg_channel_get_udev_device
    - FU_HIDRAW_DEVICE
    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:140,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:140,1
    - Dst: fu_nordic_hid_cfg_channel_get_udev_device
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:141,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:147,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:147,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:158,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:158,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:160,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:171,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 134
    functionDepth: 5
    functionLinenumber: 134
    functionLinenumberEnd: 180
    functionName: fu_nordic_hid_cfg_channel_receive
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_new0
    - fu_device_sleep
    - fu_hidraw_device_get_feature
    - fu_nordic_hid_cfg_channel_get_udev_device
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_dump_raw
    - fu_memcpy_safe
    - g_autoptr
    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:186,1
    - Dst: fu_nordic_hid_cfg_channel_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:189,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 182
    functionDepth: 6
    functionLinenumber: 182
    functionLinenumberEnd: 204
    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_receive
    - FU_NORDIC_HID_CFG_CHANNEL
    - g_set_error
    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:231,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:232,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:245,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:246,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: 254
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 254
    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_strcmp0
    - g_ptr_array_index
    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:264,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:264,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:274,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:282,1
    - Dst: fu_nordic_hid_cfg_channel_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:294,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:295,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: 301
      start: 256
    functionDepth: 6
    functionLinenumber: 256
    functionLinenumberEnd: 301
    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_new0
    - g_set_error
    - g_prefix_error_literal
    - fu_nordic_hid_cfg_channel_send
    - 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:314,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:315,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send_by_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:324,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:330,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: 336
      start: 303
    functionDepth: 7
    functionLinenumber: 303
    functionLinenumberEnd: 336
    functionName: fu_nordic_hid_cfg_channel_cmd_send
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_nordic_hid_cfg_channel_get_event_id
    - g_prefix_error_literal
    - fu_nordic_hid_cfg_channel_cmd_send_by_id
    - g_set_error
    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:350,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:350,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - status
    - res
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - guint8
    - FuNordicCfgChannelMsg*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 338
    functionDepth: 4
    functionLinenumber: 338
    functionLinenumberEnd: 361
    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
    - g_prefix_error_literal
    - FU_DEVICE
    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: 367
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 367
    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:374,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:375,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:375,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:379,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:380,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:386,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:386,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:388,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:388,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 369
    functionDepth: 5
    functionLinenumber: 369
    functionLinenumberEnd: 390
    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_device_get_children
    - fu_device_add_problem
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_device_remove_problem
    - FU_NORDIC_HID_CFG_CHANNEL
    - g_ptr_array_index
    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:395,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:396,1
    - Dst: fu_nordic_hid_cfg_channel_new
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:398,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:398,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:399,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:399,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:402,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:402,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:406,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:406,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:407,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:411,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:414,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:414,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:416,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:419,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:419,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:419,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:421,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - self
    - peer_id
    argTypes:
    - FuNordicHidCfgChannel*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 392
    functionDepth: 5
    functionLinenumber: 392
    functionLinenumberEnd: 422
    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_child
    - g_signal_connect
    - g_debug
    - fu_device_add_private_flag
    - fu_device_setup
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_nordic_hid_cfg_channel_new
    - G_CALLBACK
    - fu_device_add_instance_id_full
    - g_autoptr
    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:427,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:427,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:431,1
    - Dst: FU_NORDIC_HID_CFG_CHANNEL
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:432,1
    - Dst: fu_device_remove_child
      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
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - self
    - peer_id
    argTypes:
    - FuNordicHidCfgChannel*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 424
    functionDepth: 3
    functionLinenumber: 424
    functionLinenumberEnd: 439
    functionName: fu_nordic_hid_cfg_channel_remove_peer
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_device_get_children
    - FU_DEVICE
    - fu_device_remove_child
    - FU_NORDIC_HID_CFG_CHANNEL
    - g_ptr_array_index
    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:449,1
    - Dst: fu_nordic_hid_cfg_channel_remove_peer
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - self
    - peers_cache
    argTypes:
    - FuNordicHidCfgChannel*
    - guint8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 441
    functionDepth: 4
    functionLinenumber: 441
    functionLinenumberEnd: 455
    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_remove_peer
    - fu_nordic_hid_cfg_channel_is_cached_peer_connected
    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:462,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:462,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:463,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:467,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:474,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:478,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:487,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - self
    - cmd_supported
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 457
    functionDepth: 8
    functionLinenumber: 457
    functionLinenumberEnd: 497
    functionName: fu_nordic_hid_cfg_channel_index_peers_cmd
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_prefix_error_literal
    - fu_nordic_hid_cfg_channel_cmd_send
    - fu_nordic_hid_cfg_channel_cmd_receive
    - g_autoptr
    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:504,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:504,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:506,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:513,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:517,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - peer_id
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 499
    functionDepth: 8
    functionLinenumber: 499
    functionLinenumberEnd: 528
    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:
    - g_new0
    - g_prefix_error_literal
    - fu_nordic_hid_cfg_channel_cmd_send
    - fu_nordic_hid_cfg_channel_cmd_receive
    - g_autoptr
    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:536,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:536,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:537,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:541,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:548,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:552,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:561,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:565,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:569,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: 582
      start: 530
    functionDepth: 8
    functionLinenumber: 530
    functionLinenumberEnd: 582
    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:
    - g_new0
    - g_prefix_error_literal
    - fu_nordic_hid_cfg_channel_cmd_send
    - fu_memcpy_safe
    - fu_nordic_hid_cfg_channel_cmd_receive
    - g_autoptr
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_nordic_hid_cfg_channel_index_peers_cmd
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:593,1
    - Dst: fu_nordic_hid_cfg_channel_remove_disconnected_peers
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:602,1
    - Dst: fu_nordic_hid_cfg_channel_get_next_peer_id_cmd
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:605,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:614,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:622,1
    - Dst: fu_nordic_hid_cfg_channel_add_peer
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:626,1
    - Dst: fu_nordic_hid_cfg_channel_is_cached_peer_connected
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:633,1
    - Dst: fu_nordic_hid_cfg_channel_remove_peer
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:634,1
    - Dst: fu_nordic_hid_cfg_channel_add_peer
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:635,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:642,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 3
    argNames:
    - self
    - peers_cache
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - guint8[]
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 584
    functionDepth: 9
    functionLinenumber: 584
    functionLinenumberEnd: 650
    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_remove_peer
    - fu_nordic_hid_cfg_channel_remove_disconnected_peers
    - fu_nordic_hid_cfg_channel_add_peer
    - g_debug
    - g_set_error
    - g_set_error_literal
    - fu_nordic_hid_cfg_channel_index_peers_cmd
    - fu_nordic_hid_cfg_channel_is_cached_peer_connected
    - fu_nordic_hid_cfg_channel_get_next_peer_id_cmd
    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:667,1
    - Dst: fu_nordic_hid_cfg_channel_read_peers_cache_cmd
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:673,1
    - Dst: fu_nordic_hid_cfg_channel_update_peers
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:680,1
    - Dst: fu_nordic_hid_cfg_channel_update_peers
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:683,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:687,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:687,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:692,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:692,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 652
    functionDepth: 10
    functionLinenumber: 652
    functionLinenumberEnd: 697
    functionName: fu_nordic_hid_cfg_channel_setup_peers
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_nordic_hid_cfg_channel_read_peers_cache_cmd
    - fu_device_open
    - fu_nordic_hid_cfg_channel_index_peers_cmd
    - FU_DEVICE
    - fu_nordic_hid_cfg_channel_update_peers
    - fu_device_set_poll_interval
    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:702,1
    - Dst: fu_nordic_hid_cfg_channel_read_peers_cache_cmd
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:706,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:713,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:721,1
    - Dst: fu_nordic_hid_cfg_channel_update_peers
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:724,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 699
    functionDepth: 10
    functionLinenumber: 699
    functionLinenumberEnd: 728
    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_read_peers_cache_cmd
    - g_set_error_literal
    - fu_nordic_hid_cfg_channel_update_peers
    - memcmp
    - FU_NORDIC_HID_CFG_CHANNEL
    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:733,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:734,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:734,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:736,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:744,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:749,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 730
    functionDepth: 8
    functionLinenumber: 730
    functionLinenumberEnd: 755
    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:
    - g_new0
    - fu_memstrsafe
    - fu_nordic_hid_cfg_channel_cmd_send
    - g_autoptr
    - fu_nordic_hid_cfg_channel_cmd_receive
    - FU_NORDIC_HID_CFG_CHANNEL
    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:761,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:761,1
    - Dst: fu_nordic_hid_cfg_channel_get_event_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:764,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:765,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:773,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:781,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:783,1
    - Dst: g_free
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:786,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:788,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:792,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:796,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:800,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 757
    functionDepth: 8
    functionLinenumber: 757
    functionLinenumberEnd: 809
    functionName: fu_nordic_hid_cfg_channel_get_bl_name
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - g_strcmp0
    - g_new0
    - g_debug
    - fu_memstrsafe
    - g_set_error_literal
    - fu_nordic_hid_cfg_channel_cmd_send
    - fu_nordic_hid_cfg_channel_get_event_id
    - g_free
    - fu_nordic_hid_cfg_channel_cmd_receive
    - g_autoptr
    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:815,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:815,1
    - Dst: fu_nordic_hid_cfg_channel_get_event_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:818,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:821,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:829,1
    - Dst: fu_memread_uint16_safe
      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:842,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:850,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:856,1
    - Dst: g_free
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:859,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:863,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:867,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 811
    functionDepth: 8
    functionLinenumber: 811
    functionLinenumberEnd: 876
    functionName: fu_nordic_hid_cfg_channel_get_devinfo
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_new0
    - fu_memstrsafe
    - g_debug
    - g_set_error_literal
    - fu_nordic_hid_cfg_channel_cmd_send
    - fu_nordic_hid_cfg_channel_get_event_id
    - g_free
    - fu_nordic_hid_cfg_channel_cmd_receive
    - g_autoptr
    - fu_memread_uint16_safe
    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:888,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:888,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:890,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:898,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: 883
    functionDepth: 8
    functionLinenumber: 883
    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:
    - g_new0
    - fu_device_set_physical_id
    - fu_nordic_hid_cfg_channel_cmd_send
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_set_name
    - fu_memcpy_safe
    - fu_nordic_hid_cfg_channel_cmd_receive
    - g_autoptr
    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:953,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:954,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:958,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:958,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - mod
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - FuNordicCfgChannelModule*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 928
    functionDepth: 7
    functionLinenumber: 928
    functionLinenumberEnd: 963
    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_new0
    - fu_memstrsafe
    - g_steal_pointer
    - g_ptr_array_add
    - fu_nordic_hid_cfg_channel_cmd_receive
    - g_autoptr
    - fu_nordic_hid_cfg_channel_cmd_send_by_id
    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:970,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:970,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:973,1
    - Dst: fu_nordic_hid_cfg_channel_load_module_opts
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:975,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:979,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:980,1
    - Dst: g_ptr_array_remove_index
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:981,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:982,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:991,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:991,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - module_idx
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 965
    functionDepth: 8
    functionLinenumber: 965
    functionLinenumberEnd: 993
    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_strdup
    - g_new0
    - g_ptr_array_remove_index
    - g_set_error_literal
    - g_steal_pointer
    - g_ptr_array_add
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - fu_nordic_hid_cfg_channel_load_module_opts
    - g_ptr_array_index
    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:998,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:998,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1000,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1008,1
    - Dst: fu_nordic_hid_cfg_channel_load_module_info
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1016,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 995
    functionDepth: 9
    functionLinenumber: 995
    functionLinenumberEnd: 1022
    functionName: fu_nordic_hid_cfg_channel_get_modinfo
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_new0
    - fu_nordic_hid_cfg_channel_cmd_send
    - fu_nordic_hid_cfg_channel_load_module_info
    - fu_nordic_hid_cfg_channel_cmd_receive
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nordic_hid_cfg_channel_get_modinfo(FuNordicHidCfgChannel
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1028,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1028,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1029,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1031,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1039,1
    - Dst: fu_struct_nordic_hid_dfu_fwinfo_parse
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1046,1
    - Dst: fu_struct_nordic_hid_dfu_fwinfo_get_flashed_image_len
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1049,1
    - Dst: fu_struct_nordic_hid_dfu_fwinfo_get_flash_area_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1052,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1053,1
    - Dst: fu_struct_nordic_hid_dfu_fwinfo_get_flash_area_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1061,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1064,1
    - Dst: fu_struct_nordic_hid_dfu_fwinfo_get_ver_major
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1065,1
    - Dst: fu_struct_nordic_hid_dfu_fwinfo_get_ver_minor
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1066,1
    - Dst: fu_struct_nordic_hid_dfu_fwinfo_get_ver_rev
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1067,1
    - Dst: fu_struct_nordic_hid_dfu_fwinfo_get_ver_build_nr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1068,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1069,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1069,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1024
    functionDepth: 8
    functionLinenumber: 1024
    functionLinenumberEnd: 1073
    functionName: fu_nordic_hid_cfg_channel_dfu_fwinfo
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_struct_nordic_hid_dfu_fwinfo_get_ver_build_nr
    - fu_struct_nordic_hid_dfu_fwinfo_get_flash_area_id
    - g_new0
    - fu_struct_nordic_hid_dfu_fwinfo_parse
    - fu_device_set_version
    - g_set_error_literal
    - fu_nordic_hid_cfg_channel_cmd_send
    - fu_struct_nordic_hid_dfu_fwinfo_get_ver_minor
    - FU_DEVICE
    - g_strdup_printf
    - fu_struct_nordic_hid_dfu_fwinfo_get_ver_rev
    - fu_struct_nordic_hid_dfu_fwinfo_get_ver_major
    - fu_nordic_hid_cfg_channel_cmd_receive
    - g_autoptr
    - fu_struct_nordic_hid_dfu_fwinfo_get_flashed_image_len
    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:1078,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1078,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1080,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1088,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1094,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1075
    functionDepth: 8
    functionLinenumber: 1075
    functionLinenumberEnd: 1103
    functionName: fu_nordic_hid_cfg_channel_dfu_reboot
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_set_error_literal
    - fu_nordic_hid_cfg_channel_cmd_send
    - fu_nordic_hid_cfg_channel_cmd_receive
    - g_autoptr
    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:1108,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1110,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1110,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1115,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1125,1
    - Dst: fu_nordic_hid_cfg_channel_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1126,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1133,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1146,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1155,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1105
    functionDepth: 8
    functionLinenumber: 1105
    functionLinenumberEnd: 1163
    functionName: fu_nordic_hid_cfg_channel_dfu_sync_cb
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_set_error
    - fu_device_sleep
    - fu_nordic_hid_cfg_channel_receive
    - g_set_error_literal
    - fu_nordic_hid_cfg_channel_cmd_send
    - fu_memcpy_safe
    - g_autoptr
    - FU_NORDIC_HID_CFG_CHANNEL
    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:1172,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1172,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1178,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1178,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1184,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1188,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1195,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1202,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1209,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: 1218
      start: 1165
    functionDepth: 4
    functionLinenumber: 1165
    functionLinenumberEnd: 1218
    functionName: fu_nordic_hid_cfg_channel_dfu_sync
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    - g_new0
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - g_autoptr
    - fu_memread_uint16_safe
    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:1228,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1228,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1232,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1239,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1246,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1248,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1251,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1259,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: 1263
      start: 1220
    functionDepth: 8
    functionLinenumber: 1220
    functionLinenumberEnd: 1263
    functionName: fu_nordic_hid_cfg_channel_dfu_start
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_set_error_literal
    - fu_nordic_hid_cfg_channel_cmd_send
    - fu_memwrite_uint32_safe
    - fu_nordic_hid_cfg_channel_cmd_receive
    - g_autoptr
    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:1268,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1271,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_u16
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1280,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1281,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1287,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1288,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1296,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1301,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1310,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1265
    functionDepth: 7
    functionLinenumber: 1265
    functionLinenumberEnd: 1315
    functionName: fu_nordic_hid_cfg_channel_generate_ids
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_device_build_instance_id
    - fu_device_add_instance_strsafe
    - g_prefix_error_literal
    - FU_DEVICE
    - 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:1320,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1321,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1322,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1336,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1342,1
    - Dst: fu_nordic_hid_cfg_channel_get_hwid
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1353,1
    - Dst: fu_nordic_hid_cfg_channel_get_modinfo
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1356,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1360,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1362,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1363,1
    - Dst: fu_nordic_hid_cfg_channel_dfu_fwinfo
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1367,1
    - Dst: fu_nordic_hid_cfg_channel_get_bl_name
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1372,1
    - Dst: fu_nordic_hid_cfg_channel_get_devinfo
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1375,1
    - Dst: fu_nordic_hid_cfg_channel_generate_ids
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1379,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1383,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1384,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1317
    functionDepth: 10
    functionLinenumber: 1317
    functionLinenumberEnd: 1387
    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_add_flag
    - g_set_error
    - fu_nordic_hid_cfg_channel_get_devinfo
    - fu_nordic_hid_cfg_channel_get_modinfo
    - fu_nordic_hid_cfg_channel_dfu_fwinfo
    - fu_nordic_hid_cfg_channel_get_bl_name
    - fu_device_get_physical_id
    - fu_device_retry_full
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_get_name
    - fu_nordic_hid_cfg_channel_generate_ids
    - g_autoptr
    - fu_nordic_hid_cfg_channel_get_hwid
    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:1392,1
    - Dst: fu_nordic_hid_cfg_channel_direct_discovery
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1394,1
    - Dst: fu_nordic_hid_cfg_channel_setup_peers
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1389
    functionDepth: 11
    functionLinenumber: 1389
    functionLinenumberEnd: 1401
    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_direct_discovery
    - FU_NORDIC_HID_CFG_CHANNEL
    - fu_nordic_hid_cfg_channel_setup_peers
    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:1406,1
    - Dst: fu_progress_add_step
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1403
    functionDepth: 3
    functionLinenumber: 1403
    functionLinenumberEnd: 1412
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1418,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1419,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mod
    - idt
    - str
    argTypes:
    - FuNordicCfgChannelModule*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1414
    functionDepth: 2
    functionLinenumber: 1414
    functionLinenumberEnd: 1422
    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_strdup_printf
    - g_ptr_array_index
    - 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:1427,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1429,1
    - Dst: fwupd_codec_string_append_hex
      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
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1435,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_hex
      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: g_ptr_array_index
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1442,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1443,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1444,1
    - Dst: fu_nordic_hid_cfg_channel_module_to_string
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1424
    functionDepth: 3
    functionLinenumber: 1424
    functionLinenumberEnd: 1447
    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_module_to_string
    - fwupd_codec_string_append
    - g_strdup_printf
    - fwupd_codec_string_append_hex
    - FU_NORDIC_HID_CFG_CHANNEL
    - g_ptr_array_index
    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:1458,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1458,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1460,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1464,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1464,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1469,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1472,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_send
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1480,1
    - Dst: fu_nordic_hid_cfg_channel_cmd_receive
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1488,1
    - Dst: fu_nordic_hid_cfg_channel_dfu_sync
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1500,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: 1501
      start: 1449
    functionDepth: 8
    functionLinenumber: 1449
    functionLinenumberEnd: 1501
    functionName: fu_nordic_hid_cfg_channel_write_firmware_chunk
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_new0
    - fu_chunk_get_data_sz
    - fu_nordic_hid_cfg_channel_dfu_sync
    - fu_nordic_hid_cfg_channel_cmd_send
    - fu_chunk_get_data
    - fu_memcpy_safe
    - fu_nordic_hid_cfg_channel_cmd_receive
    - g_autoptr
    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:1509,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1509,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1510,1
    - Dst: fu_nordic_hid_cfg_channel_dfu_sync
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1512,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1518,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1525,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1526,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1526,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1528,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1530,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1533,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1536,1
    - Dst: fu_nordic_hid_cfg_channel_write_firmware_chunk
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1537,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1538,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1538,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1541,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - self
    - stream
    - progress
    - error
    argTypes:
    - FuNordicHidCfgChannel*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1503
    functionDepth: 9
    functionLinenumber: 1503
    functionLinenumberEnd: 1546
    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_get_idx
    - g_new0
    - fu_chunk_array_index
    - fu_nordic_hid_cfg_channel_dfu_sync
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_chunk_array_new_from_stream
    - fu_nordic_hid_cfg_channel_write_firmware_chunk
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:1555,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1561,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1562,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1562,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1566,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1567,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1572,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1576,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1581,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1582,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1583,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1584,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1587,1
    - Dst: fu_nordic_hid_cfg_channel_dfu_sync
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1590,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1595,1
    - Dst: fu_nordic_hid_cfg_channel_dfu_start
      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:1599,1
    - Dst: fu_nordic_hid_cfg_channel_write_firmware_blob
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1602,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1604,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1607,1
    - Dst: fu_nordic_hid_cfg_channel_dfu_reboot
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1610,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1612,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: 1614
      start: 1548
    functionDepth: 10
    functionLinenumber: 1548
    functionLinenumberEnd: 1614
    functionName: fu_nordic_hid_cfg_channel_write_firmware
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_new0
    - fu_progress_add_step
    - fu_firmware_get_stream
    - fu_strtoull
    - fu_input_stream_size
    - fu_progress_get_child
    - fu_nordic_hid_cfg_channel_dfu_sync
    - fu_progress_step_done
    - fu_firmware_get_image_by_id
    - g_strdup_printf
    - fu_nordic_hid_cfg_channel_dfu_reboot
    - fu_nordic_hid_cfg_channel_write_firmware_blob
    - fu_firmware_get_checksum
    - g_autoptr
    - FU_NORDIC_HID_CFG_CHANNEL
    - fu_nordic_hid_cfg_channel_dfu_start
    - fu_progress_set_id
    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:1622,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1624,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1625,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1626,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1632,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1636,1
    - Dst: g_strcmp0
      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:1638,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1644,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1649,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 1654
    functionName: fu_nordic_hid_cfg_channel_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FU_NORDIC_HID_CFG_CHANNEL
    - g_set_error_literal
    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:1659,1
    - Dst: g_free
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1660,1
    - Dst: g_free
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1661,1
    - Dst: g_free
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1662,1
    - Dst: g_ptr_array_unref
      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: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1656
    functionDepth: 0
    functionLinenumber: 1656
    functionLinenumberEnd: 1665
    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_free
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    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:1670,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuNordicHidCfgChannelClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1667
    functionDepth: 0
    functionLinenumber: 1667
    functionLinenumberEnd: 1680
    functionName: fu_nordic_hid_cfg_channel_class_init
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_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:1686,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1688,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1688,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1689,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1689,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1690,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1690,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1691,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1691,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1692,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1692,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1693,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuNordicHidCfgChannel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1682
    functionDepth: 1
    functionLinenumber: 1682
    functionLinenumberEnd: 1694
    functionName: fu_nordic_hid_cfg_channel_init
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_set_delay
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - g_ptr_array_new_with_free_func
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    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:1700,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1701,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c:1701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - proxy
    - id
    argTypes:
    - FuDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1696
    functionDepth: 9
    functionLinenumber: 1696
    functionLinenumberEnd: 1704
    functionName: fu_nordic_hid_cfg_channel_new
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    functionUses: 1
    functionsReached:
    - FU_DEVICE
    - g_object_new
    - fu_device_incorporate
    linkageType: ''
    returnType: FuNordicHidCfgChannel
    signature: 'FuNordicHidCfgChannel *

      fu_nordic_hid_cfg_channel_new(FuDevice *proxy, guint8 id)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_json_object_has_node
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:27,1
    - Dst: fwupd_json_object_has_node
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:29,1
    - Dst: fwupd_json_object_has_node
      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:
    - json_obj
    - error
    argTypes:
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 24
    functionDepth: 2
    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:
    - g_set_error_literal
    - fwupd_json_object_has_node
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_nordic_hid_archive_parse_file_get_bootloader_name(FwupdJsonObject *json_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_object_new
    - g_set_error_literal
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_nordic_hid_archive_parse_file_image_create(const gchar *bootloader_name,
      GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:62,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:65,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:67,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:75,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:77,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:83,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - json_obj
    - manifest_ver
    - error
    argTypes:
    - FwupdJsonObject*
    - gint64
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 88
    functionName: fu_nordic_hid_archive_parse_file_get_board_name
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_set_error_literal
    - g_prefix_error_literal
    - g_strsplit
    - fwupd_json_object_get_string
    - g_auto
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_nordic_hid_archive_parse_file_get_board_name(FwupdJsonObject
      *json_obj,\n\t\t\t\t\t\tgint64 manifest_ver,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:105,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:110,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:112,1
    - Dst: fu_strtoll
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:115,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:121,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:125,1
    - Dst: fu_strtoll
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:128,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:129,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:134,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:141,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - json_obj
    - flash_area_id
    - bootloader_name
    - files_cnt
    - error
    argTypes:
    - FwupdJsonObject*
    - guint*
    - gchar*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 150
    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:
    - g_strcmp0
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_strtoll
    - fwupd_json_object_get_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_archive_parse_file_get_flash_area_id_v1(FwupdJsonObject
      *json_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:168,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - obj
    - flash_area_id
    - manifest_ver
    - file_idx
    - bootloader_name
    - files_cnt
    - error
    argTypes:
    - FwupdJsonObject*
    - guint*
    - gint64
    - guint
    - gchar*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 180
    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:
    - fu_nordic_hid_archive_parse_file_get_flash_area_id_v1
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_nordic_hid_archive_parse_file_get_flash_area_id(FwupdJsonObject
      *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: 20
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:188,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:189,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:190,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:193,1
    - Dst: fu_zip_firmware_new
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:193,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:194,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:195,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:195,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:198,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:199,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:200,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:203,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:209,1
    - Dst: fwupd_json_parser_load_from_bytes
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:214,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:220,1
    - Dst: fwupd_json_object_get_integer
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:224,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:227,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:234,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:237,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:239,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:251,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:252,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:255,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:257,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:260,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:262,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:265,1
    - Dst: fu_nordic_hid_archive_parse_file_get_bootloader_name
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:270,1
    - Dst: fu_nordic_hid_archive_parse_file_image_create
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:274,1
    - Dst: fu_nordic_hid_archive_parse_file_get_board_name
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:278,1
    - Dst: fu_nordic_hid_archive_parse_file_get_flash_area_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:284,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:295,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:297,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:304,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:305,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:307,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:314,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:316,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 78
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 182
    functionDepth: 8
    functionLinenumber: 182
    functionLinenumberEnd: 322
    functionName: fu_nordic_hid_archive_parse
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - fu_nordic_hid_archive_parse_file_get_bootloader_name
    - fwupd_json_object_get_integer
    - fwupd_json_parser_load_from_bytes
    - fwupd_json_parser_set_max_quoted
    - g_strdup_printf
    - fu_zip_firmware_new
    - fu_nordic_hid_archive_parse_file_get_board_name
    - fwupd_json_array_get_object
    - fwupd_json_parser_set_max_items
    - fu_firmware_set_addr
    - fwupd_json_array_get_size
    - fu_firmware_add_image
    - fu_nordic_hid_archive_parse_file_image_create
    - fu_firmware_get_image_by_id_bytes
    - g_set_error_literal
    - g_prefix_error_literal
    - fwupd_json_object_get_array
    - fu_firmware_parse_bytes
    - fu_nordic_hid_archive_parse_file_get_flash_area_id
    - fu_firmware_set_idx
    - fwupd_json_parser_new
    - fwupd_json_object_get_string
    - fwupd_json_node_get_object
    - fu_firmware_set_id
    - fu_firmware_parse_stream
    - g_autoptr
    - fwupd_json_object_get_integer_with_default
    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_add_image_gtype
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:327,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:327,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:328,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:328,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:329,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:329,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:330,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuNordicHidArchive*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 331
    functionName: fu_nordic_hid_archive_init
    functionSourceFile: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-archive.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_set_size_max
    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:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuNordicHidArchiveClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 338
    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:33,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:34,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:35,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-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_synaptics_vmm9_device_to_string
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_VMM9_DEVICE
    - fwupd_codec_string_append_hex
    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:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:51,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:54,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:54,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:61,1
    - Dst: fu_struct_hid_get_command_parse
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:64,1
    - Dst: fu_struct_hid_get_command_get_payload
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:69,1
    - Dst: fu_struct_hid_payload_get_sts
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:70,1
    - Dst: fu_struct_hid_payload_get_ctrl
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:71,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:72,1
    - Dst: fu_synaptics_vmm9_rc_sts_to_string
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:74,1
    - Dst: fu_struct_hid_payload_get_sts
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:74,1
    - Dst: fu_struct_hid_payload_get_sts
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:75,1
    - Dst: fu_struct_hid_payload_get_sts
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:80,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:81,1
    - Dst: fu_synaptics_vmm9_rc_sts_to_string
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:86,1
    - Dst: fu_struct_hid_payload_get_sts
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:86,1
    - Dst: fu_struct_hid_payload_get_sts
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:87,1
    - Dst: fu_struct_hid_payload_get_ctrl
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:92,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:93,1
    - Dst: fu_struct_hid_payload_get_fifo
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:100,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 44
    functionDepth: 6
    functionLinenumber: 44
    functionLinenumberEnd: 114
    functionName: fu_synaptics_vmm9_device_command_cb
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - fu_struct_hid_payload_get_ctrl
    - fu_hid_device_get_report
    - g_set_error_literal
    - fu_struct_hid_payload_get_fifo
    - g_prefix_error_literal
    - fu_struct_hid_payload_get_sts
    - fu_memcpy_safe
    - FU_HID_DEVICE
    - fu_synaptics_vmm9_rc_sts_to_string
    - fu_struct_hid_get_command_parse
    - g_autoptr
    - fu_struct_hid_get_command_get_payload
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_vmm9_device_command_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:131,1
    - Dst: fu_struct_hid_payload_new
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:132,1
    - Dst: fu_struct_hid_set_command_new
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:132,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:133,1
    - Dst: fu_struct_hid_payload_set_ctrl
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:136,1
    - Dst: fu_struct_hid_payload_set_offset
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:137,1
    - Dst: fu_struct_hid_payload_set_length
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:138,1
    - Dst: fu_struct_hid_payload_set_fifo
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:140,1
    - Dst: fu_struct_hid_set_command_set_size
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:145,1
    - Dst: fu_struct_hid_set_command_set_payload
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:146,1
    - Dst: fu_sum8_safe
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:148,1
    - Dst: fu_struct_hid_set_command_set_checksum
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:152,1
    - Dst: fu_memwrite_uint8_safe
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:156,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:163,1
    - Dst: fu_struct_hid_set_command_to_string
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:166,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:167,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:168,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:168,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:175,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:185,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:185,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:188,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:188,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:195,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:198,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:199,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 9
    argNames:
    - self
    - ctrl
    - offset
    - src_buf
    - src_bufsz
    - dst_buf
    - dst_bufsz
    - flags
    - error
    argTypes:
    - FuSynapticsVmm9Device*
    - FuSynapticsVmm9RcCtrl
    - guint32
    - guint8*
    - gsize
    - guint8*
    - gsize
    - FuSynapticsVmm9CommandFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 116
    functionDepth: 6
    functionLinenumber: 116
    functionLinenumberEnd: 206
    functionName: fu_synaptics_vmm9_device_command
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_hid_set_command_set_checksum
    - fu_struct_hid_payload_set_ctrl
    - g_debug
    - fu_struct_hid_set_command_new
    - g_prefix_error_literal
    - fu_struct_hid_set_command_set_payload
    - fu_memwrite_uint8_safe
    - fu_device_sleep
    - FU_DEVICE
    - fu_struct_hid_payload_set_offset
    - fu_struct_hid_payload_set_fifo
    - fu_struct_hid_payload_new
    - fu_hid_device_set_report
    - g_steal_pointer
    - fu_struct_hid_payload_set_length
    - fu_device_retry_full
    - fu_struct_hid_set_command_to_string
    - FU_HID_DEVICE
    - fu_sum8_safe
    - g_autoptr
    - fu_struct_hid_set_command_set_size
    - fu_byte_array_set_size
    - g_propagate_prefixed_error
    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 FuSynapticsVmm9CommandFlags 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:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:216,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:219,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:229,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:230,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:233,1
    - Dst: fu_struct_synaptics_upd_get_id_parse
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:243,1
    - Dst: fu_struct_synaptics_upd_get_id_get_bid
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:246,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:247,1
    - Dst: fu_struct_synaptics_upd_get_id_get_cid
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:248,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:249,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:250,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:251,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:255,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:257,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:258,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:262,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:272,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:272,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:275,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:285,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:287,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:289,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:292,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:293,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:296,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:298,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:298,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:299,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:301,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:301,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 208
    functionDepth: 7
    functionLinenumber: 208
    functionLinenumberEnd: 306
    functionName: fu_synaptics_vmm9_device_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_SYNAPTICS_VMM9_DEVICE
    - fu_memread_uint32
    - fu_struct_synaptics_upd_get_id_parse
    - fu_device_add_private_flag
    - g_strdup_printf
    - g_autoptr
    - fu_struct_synaptics_upd_get_id_get_bid
    - fu_device_set_remove_delay
    - fu_device_build_instance_id
    - fu_device_set_version_raw
    - fu_device_set_version_bootloader
    - fu_device_set_serial
    - fu_device_remove_flag
    - FU_DEVICE
    - fu_device_add_instance_u8
    - fu_device_has_private_flag
    - fu_device_add_request_flag
    - fu_synaptics_vmm9_device_command
    - fu_struct_synaptics_upd_get_id_get_cid
    - 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:311,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:315,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:319,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:328,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:331,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:332,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 308
    functionDepth: 7
    functionLinenumber: 308
    functionLinenumberEnd: 347
    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_device_sleep
    - g_prefix_error_literal
    - fu_synaptics_vmm9_device_command
    - FU_DEVICE_CLASS
    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:352,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:355,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:364,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 349
    functionDepth: 7
    functionLinenumber: 349
    functionLinenumberEnd: 374
    functionName: fu_synaptics_vmm9_device_close
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_VMM9_DEVICE
    - FU_DEVICE_CLASS
    - g_prefix_error_literal
    - 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:383,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:384,1
    - Dst: fu_synaptics_vmm9_firmware_new
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:384,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:385,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:388,1
    - Dst: fu_device_get_firmware_size_min
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:390,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:394,1
    - Dst: fu_synaptics_vmm9_firmware_get_board_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:400,1
    - Dst: FU_SYNAPTICS_VMM9_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:400,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:401,1
    - Dst: fu_synaptics_vmm9_firmware_get_board_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:405,1
    - Dst: FU_SYNAPTICS_VMM9_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:406,1
    - Dst: fu_synaptics_vmm9_firmware_get_customer_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:410,1
    - Dst: FU_SYNAPTICS_VMM9_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:411,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:412,1
    - Dst: fu_synaptics_vmm9_firmware_get_customer_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:416,1
    - Dst: FU_SYNAPTICS_VMM9_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:417,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:424,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: 425
      start: 376
    functionDepth: 4
    functionLinenumber: 376
    functionLinenumberEnd: 425
    functionName: fu_synaptics_vmm9_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_firmware_size_min
    - FU_SYNAPTICS_VMM9_DEVICE
    - fu_synaptics_vmm9_firmware_new
    - fu_firmware_parse_stream
    - FU_SYNAPTICS_VMM9_FIRMWARE
    - g_set_error
    - g_steal_pointer
    - fu_synaptics_vmm9_firmware_get_customer_id
    - fu_synaptics_vmm9_firmware_get_board_id
    - g_autoptr
    - 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:434,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:435,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:435,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:436,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:437,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:440,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:444,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:446,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:447,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:448,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:453,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:455,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:456,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuSynapticsVmm9Device*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 427
    functionDepth: 7
    functionLinenumber: 427
    functionLinenumberEnd: 466
    functionName: fu_synaptics_vmm9_device_write_blocks
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_idx
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_chunk_get_address
    - fu_chunk_get_data
    - fu_synaptics_vmm9_device_command
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:472,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuSynapticsVmm9Device*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 468
    functionDepth: 7
    functionLinenumber: 468
    functionLinenumberEnd: 485
    functionName: fu_synaptics_vmm9_device_erase
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - fu_synaptics_vmm9_device_command
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_vmm9_device_erase(FuSynapticsVmm9Device *self,
      FuProgress *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_VMM9_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:490,1
    - Dst: fu_device_get_firmware_size_min
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:491,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:491,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:492,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:493,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:493,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:494,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:495,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:498,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:503,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:504,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:506,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:507,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:509,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:511,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:512,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:513,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:516,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:518,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:519,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:524,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:528,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:528,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:529,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:533,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 487
    functionDepth: 7
    functionLinenumber: 487
    functionLinenumberEnd: 534
    functionName: fu_synaptics_vmm9_device_read_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_idx
    - FU_SYNAPTICS_VMM9_DEVICE
    - fu_chunk_get_data_sz
    - g_bytes_new_take
    - g_ptr_array_index
    - fu_chunk_get_data_out
    - fu_progress_set_steps
    - fu_chunk_array_mutable_new
    - fu_firmware_parse_bytes
    - fu_device_get_firmware_size_min
    - fu_progress_step_done
    - g_malloc0
    - FU_DEVICE
    - fu_firmware_new
    - fu_chunk_get_address
    - fu_progress_set_id
    - g_steal_pointer
    - g_prefix_error
    - fu_synaptics_vmm9_device_command
    - g_autoptr
    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:543,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:544,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:545,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:548,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:549,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:550,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:551,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:552,1
    - Dst: fu_synaptics_vmm9_device_erase
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:555,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:555,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:556,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:559,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:562,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:562,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:563,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:566,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:569,1
    - Dst: fu_synaptics_vmm9_device_write_blocks
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:576,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:578,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:580,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:583,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:584,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:587,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:596,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:599,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:602,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:603,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:604,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:609,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:611,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:611,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:612,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:613,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:614,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:615,1
    - Dst: fu_synaptics_vmm9_device_command
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:620,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:631,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:637,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: 639
      start: 536
    functionDepth: 8
    functionLinenumber: 536
    functionLinenumberEnd: 639
    functionName: fu_synaptics_vmm9_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_SYNAPTICS_VMM9_DEVICE
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fu_device_sleep_full
    - fu_synaptics_vmm9_device_write_blocks
    - g_debug
    - g_prefix_error_literal
    - fu_chunk_array_new_from_stream
    - fu_synaptics_vmm9_device_erase
    - fwupd_request_new
    - fu_progress_add_step
    - fu_device_sleep
    - fwupd_request_set_id
    - fu_progress_step_done
    - fu_device_emit_request
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_firmware_get_stream
    - fu_device_has_private_flag
    - fu_synaptics_vmm9_device_command
    - g_autoptr
    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:644,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:645,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:646,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:647,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:648,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 641
    functionDepth: 3
    functionLinenumber: 641
    functionLinenumberEnd: 650
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 659
    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:664,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:664,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:665,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:665,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:666,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:666,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:667,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:667,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:668,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:668,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:669,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:669,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:670,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:670,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:671,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:671,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:672,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsVmm9Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 661
    functionDepth: 6
    functionLinenumber: 661
    functionLinenumberEnd: 674
    functionName: fu_synaptics_vmm9_device_init
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_firmware_size_min
    - FU_DEVICE
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsVmm9DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 689
    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_udev_subsystem
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-plugin.c:29,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-plugin.c:30,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-plugin.c:31,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 35
    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_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_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:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsVmm9PluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    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_SYNAPTICS_VMM9_FIRMWARE
    - fu_xmlb_builder_insert_kx
    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: 4
    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_u8
    - fu_input_stream_read_u16
    - fu_firmware_set_version
    - FU_SYNAPTICS_VMM9_FIRMWARE
    - g_strdup_printf
    - 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
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:117,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsVmm9Firmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: fu_synaptics_vmm9_firmware_init
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsVmm9FirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 127
    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:132,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-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_synaptics_vmm9_firmware_new
    functionSourceFile: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-firmware.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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:
    - g_return_val_if_fail
    - g_set_error_literal
    - FU_QC_FIREHOSE_IMPL_GET_IFACE
    - FU_IS_QC_FIREHOSE_IMPL
    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:
    - g_return_val_if_fail
    - g_set_error_literal
    - FU_QC_FIREHOSE_IMPL_GET_IFACE
    - FU_IS_QC_FIREHOSE_IMPL
    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:
    - g_return_val_if_fail
    - FU_QC_FIREHOSE_IMPL_GET_IFACE
    - FU_IS_QC_FIREHOSE_IMPL
    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:
    - fu_qc_firehose_impl_add_function
    - g_strsplit
    - xb_node_get_attr
    - g_auto
    - g_str_has_prefix
    - fu_qc_firehose_functions_from_string
    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
    - fu_qc_firehose_impl_read_xml_init_log
    - g_autoptr
    - g_ptr_array_index
    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:
    - g_str_has_prefix
    - fu_qc_firehose_impl_add_function
    - fu_qc_firehose_functions_from_string
    - 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_autoptr
    - g_ptr_array_index
    - fu_qc_firehose_impl_read_xml_nop_log
    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_literal
      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:281,1
    - Dst: g_strcmp0
      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:286,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:287,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:291,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: 298
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 298
    functionName: fu_qc_firehose_impl_read_xml_cb
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - g_strcmp0
    - g_debug
    - g_set_error
    - FuQcFirehoseImplHelper*::read_func
    - fu_qc_firehose_impl_read
    - g_set_error_literal
    - fu_strtoull
    - fwupd_error_convert
    - xb_silo_new_from_xml
    - g_prefix_error_literal
    - xb_node_query
    - xb_node_query_first
    - xb_node_get_attr
    - xb_silo_query_first
    - g_autoptr
    - g_ptr_array_index
    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:307,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: 312
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 312
    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:324,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: 330
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 330
    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:335,1
    - Dst: xb_builder_node_export
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:338,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:345,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:347,1
    - Dst: xb_version_string
      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_string_replace
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:354,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:356,1
    - Dst: fu_qc_firehose_impl_retry
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - self
    - bn
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - XbBuilderNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 332
    functionDepth: 4
    functionLinenumber: 332
    functionLinenumberEnd: 364
    functionName: fu_qc_firehose_impl_write_xml
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - g_string_replace
    - g_debug
    - fu_version_compare
    - fu_qc_firehose_impl_retry
    - g_string_new
    - g_autoptr
    - xb_version_string
    - xb_builder_node_export
    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:374,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:374,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:375,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:378,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:379,1
    - Dst: fu_qc_firehose_impl_write_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:397,1
    - Dst: fu_qc_firehose_impl_read_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:399,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:402,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:403,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:406,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:406,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: 412
      start: 366
    functionDepth: 5
    functionLinenumber: 366
    functionLinenumberEnd: 412
    functionName: fu_qc_firehose_impl_send_configure
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_impl_write_xml
    - g_debug
    - xb_builder_node_insert_text
    - g_steal_pointer
    - xb_builder_node_new
    - g_strdup_printf
    - fu_qc_firehose_impl_read_xml
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    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:423,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:424,1
    - Dst: fu_qc_firehose_impl_send_configure
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:432,1
    - Dst: fu_qc_firehose_impl_send_configure
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:435,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - self
    - storage
    - helper
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - gchar*
    - FuQcFirehoseImplHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 414
    functionDepth: 6
    functionLinenumber: 414
    functionLinenumberEnd: 441
    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:449,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:449,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:450,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:450,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:450,1
    - Dst: LIBXMLB_CHECK_VERSION
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:451,1
    - Dst: fu_qc_firehose_impl_has_function
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:472,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:473,1
    - Dst: LIBXMLB_CHECK_VERSION
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:480,1
    - Dst: xb_node_attr_iter_init
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:482,1
    - Dst: xb_node_attr_iter_next
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:483,1
    - Dst: xb_builder_node_set_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:484,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:487,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:488,1
    - Dst: xb_builder_node_set_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:490,1
    - Dst: fu_qc_firehose_impl_write_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:493,1
    - Dst: fu_qc_firehose_impl_read_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:495,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - xn
    - helper
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - XbNode*
    - FuQcFirehoseImplHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 443
    functionDepth: 5
    functionLinenumber: 443
    functionLinenumberEnd: 496
    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
    - LIBXMLB_CHECK_VERSION
    - g_set_error_literal
    - xb_builder_node_new
    - xb_node_attr_iter_init
    - xb_builder_node_set_attr
    - xb_node_get_element
    - fu_qc_firehose_impl_read_xml
    - xb_builder_node_insert
    - G_N_ELEMENTS
    - xb_node_get_attr
    - fu_qc_firehose_impl_has_function
    - g_autoptr
    - xb_node_attr_iter_next
    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:505,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:506,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:506,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:507,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:508,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:511,1
    - Dst: fu_qc_firehose_impl_write
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:514,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:515,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:516,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:522,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 498
    functionDepth: 4
    functionLinenumber: 498
    functionLinenumberEnd: 527
    functionName: fu_qc_firehose_impl_write_blocks
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_impl_write
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_chunk_get_data
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:536,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:542,1
    - Dst: g_strdelimit
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:543,1
    - Dst: g_path_get_basename
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - filename
    - error
    argTypes:
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 545
    functionName: fu_qc_firehose_impl_convert_to_image_id
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_set_error_literal
    - g_strdelimit
    - g_path_get_basename
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_qc_firehose_impl_convert_to_image_id(const gchar *filename, GError **error)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xb_node_get_attr_as_uint
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:554,1
    - Dst: xb_node_get_attr_as_uint
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:555,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:556,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:558,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:559,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:560,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:561,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:561,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:562,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:562,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:562,1
    - Dst: LIBXMLB_CHECK_VERSION
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:563,1
    - Dst: fu_qc_firehose_impl_has_function
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:580,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:581,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:588,1
    - Dst: fu_qc_firehose_impl_convert_to_image_id
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:596,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:599,1
    - Dst: LIBXMLB_CHECK_VERSION
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:603,1
    - Dst: xb_node_attr_iter_init
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:605,1
    - Dst: xb_node_attr_iter_next
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:606,1
    - Dst: xb_builder_node_set_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:607,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:610,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:611,1
    - Dst: xb_builder_node_set_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:613,1
    - Dst: fu_qc_firehose_impl_write_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:616,1
    - Dst: fu_qc_firehose_impl_read_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:618,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:619,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:625,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:633,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:636,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:637,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:641,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:642,1
    - Dst: xb_builder_node_set_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:643,1
    - Dst: fu_bytes_pad
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:647,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:648,1
    - Dst: fu_qc_firehose_impl_write_blocks
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:649,1
    - Dst: fu_qc_firehose_impl_read_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:651,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:656,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 5
    argNames:
    - self
    - xn
    - helper
    - progress
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - XbNode*
    - FuQcFirehoseImplHelper*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 547
    functionDepth: 5
    functionLinenumber: 547
    functionLinenumberEnd: 665
    functionName: fu_qc_firehose_impl_program
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_impl_write_xml
    - LIBXMLB_CHECK_VERSION
    - xb_builder_node_set_attr
    - g_strdup_printf
    - fu_qc_firehose_impl_read_xml
    - fu_qc_firehose_impl_write_blocks
    - xb_node_get_attr_as_uint
    - xb_node_get_attr
    - fu_bytes_pad
    - g_debug
    - fu_chunk_array_new_from_bytes
    - g_set_error_literal
    - fu_firmware_get_image_by_id_bytes
    - g_prefix_error_literal
    - xb_builder_node_insert
    - fu_qc_firehose_impl_has_function
    - xb_node_attr_iter_next
    - xb_builder_node_new
    - xb_node_get_element
    - xb_node_attr_iter_init
    - G_N_ELEMENTS
    - g_bytes_get_size
    - fu_qc_firehose_impl_convert_to_image_id
    - g_autoptr
    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:673,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:673,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:674,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:674,1
    - Dst: xb_node_get_element
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:674,1
    - Dst: LIBXMLB_CHECK_VERSION
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:675,1
    - Dst: fu_qc_firehose_impl_has_function
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:692,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:693,1
    - Dst: LIBXMLB_CHECK_VERSION
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:700,1
    - Dst: xb_node_attr_iter_init
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:702,1
    - Dst: xb_node_attr_iter_next
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:703,1
    - Dst: xb_builder_node_set_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:704,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:707,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:708,1
    - Dst: xb_builder_node_set_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:710,1
    - Dst: fu_qc_firehose_impl_write_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:713,1
    - Dst: fu_qc_firehose_impl_read_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:715,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - self
    - xn
    - helper
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - XbNode*
    - FuQcFirehoseImplHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 667
    functionDepth: 5
    functionLinenumber: 667
    functionLinenumberEnd: 716
    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
    - LIBXMLB_CHECK_VERSION
    - g_set_error_literal
    - xb_builder_node_new
    - xb_node_attr_iter_init
    - xb_builder_node_set_attr
    - xb_node_get_element
    - fu_qc_firehose_impl_read_xml
    - xb_builder_node_insert
    - G_N_ELEMENTS
    - xb_node_get_attr
    - fu_qc_firehose_impl_has_function
    - g_autoptr
    - xb_node_attr_iter_next
    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:724,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:724,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:725,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:728,1
    - Dst: fu_qc_firehose_impl_write_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:729,1
    - Dst: fu_qc_firehose_impl_read_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:731,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:732,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - part
    - helper
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - guint
    - FuQcFirehoseImplHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 718
    functionDepth: 5
    functionLinenumber: 718
    functionLinenumberEnd: 737
    functionName: fu_qc_firehose_impl_set_bootable
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_impl_write_xml
    - g_debug
    - xb_builder_node_insert_text
    - xb_builder_node_new
    - g_prefix_error
    - g_strdup_printf
    - fu_qc_firehose_impl_read_xml
    - g_autoptr
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:742,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:743,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:743,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:747,1
    - Dst: fu_qc_firehose_impl_write_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:748,1
    - Dst: fu_qc_firehose_impl_read_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:750,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:751,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:752,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:754,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:754,1
    - Dst: fu_qc_firehose_impl_read_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:760,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 739
    functionDepth: 5
    functionLinenumber: 739
    functionLinenumberEnd: 765
    functionName: fu_qc_firehose_impl_reset
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_impl_write_xml
    - g_debug
    - xb_builder_node_insert_text
    - g_steal_pointer
    - xb_builder_node_new
    - fu_qc_firehose_impl_read_xml
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    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:775,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:776,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:780,1
    - Dst: fu_qc_firehose_impl_erase
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:781,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:783,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: 788
      start: 767
    functionDepth: 6
    functionLinenumber: 767
    functionLinenumberEnd: 788
    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
    - fu_progress_set_steps
    - fu_qc_firehose_impl_erase
    - g_ptr_array_index
    - fu_progress_set_id
    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:798,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:799,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:803,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:804,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:805,1
    - Dst: fu_qc_firehose_impl_program
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:806,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:809,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:813,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:815,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: 820
      start: 790
    functionDepth: 6
    functionLinenumber: 790
    functionLinenumberEnd: 820
    functionName: fu_qc_firehose_impl_program_targets
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_debug
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_qc_firehose_impl_program
    - xb_node_get_attr
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    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:830,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:831,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:835,1
    - Dst: fu_qc_firehose_impl_apply_patch
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:836,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:838,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: 843
      start: 822
    functionDepth: 6
    functionLinenumber: 822
    functionLinenumberEnd: 843
    functionName: fu_qc_firehose_impl_patch_targets
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_impl_apply_patch
    - fu_progress_step_done
    - fu_progress_set_steps
    - g_ptr_array_index
    - fu_progress_set_id
    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:849,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:850,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:853,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:854,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:855,1
    - Dst: xb_node_get_attr_as_uint
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:856,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - self
    - xns
    argTypes:
    - FuQcFirehoseImpl*
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 860
    functionName: fu_qc_firehose_impl_find_bootable
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - xb_node_get_attr_as_uint
    - g_pattern_match_simple
    - g_ptr_array_index
    - 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:865,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:865,1
    - Dst: xb_builder_node_insert_text
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:868,1
    - Dst: fu_qc_firehose_impl_write_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:869,1
    - Dst: fu_qc_firehose_impl_read_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - helper
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - FuQcFirehoseImplHelper*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 862
    functionDepth: 5
    functionLinenumber: 862
    functionLinenumberEnd: 872
    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_insert_text
    - xb_builder_node_new
    - fu_qc_firehose_impl_read_xml
    - g_autoptr
    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:880,1
    - Dst: fu_qc_firehose_impl_read_xml
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:883,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:884,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:885,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:885,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:888,1
    - Dst: fu_qc_firehose_impl_has_function
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:892,1
    - Dst: fu_qc_firehose_impl_send_nop
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:894,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:895,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 874
    functionDepth: 6
    functionLinenumber: 874
    functionLinenumberEnd: 902
    functionName: fu_qc_firehose_impl_setup
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_qc_firehose_impl_send_nop
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_qc_firehose_impl_read_xml
    - g_error_matches
    - fu_qc_firehose_impl_has_function
    - g_propagate_error
    - 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:912,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:913,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:914,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:915,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:916,1
    - Dst: xb_builder_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:916,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:917,1
    - Dst: xb_builder_source_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:917,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:918,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:927,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:928,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:929,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:930,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:931,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:934,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:936,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:939,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:940,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:941,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:944,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:945,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:947,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:948,1
    - Dst: fu_qc_firehose_impl_configure
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:953,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:954,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:957,1
    - Dst: xb_silo_query
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:960,1
    - Dst: fu_qc_firehose_impl_erase_targets
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:962,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:965,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:967,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:971,1
    - Dst: xb_silo_query
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:974,1
    - Dst: fu_qc_firehose_impl_program_targets
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:976,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:979,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:981,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:985,1
    - Dst: xb_silo_query
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:988,1
    - Dst: fu_qc_firehose_impl_patch_targets
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:990,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:993,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:995,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:999,1
    - Dst: fu_qc_firehose_impl_has_function
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:1003,1
    - Dst: fu_qc_firehose_impl_find_bootable
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:1005,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:1007,1
    - Dst: fu_qc_firehose_impl_set_bootable
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:1008,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c:1012,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 71
    argCount: 5
    argNames:
    - self
    - firmware
    - no_zlp
    - progress
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - FuFirmware*
    - gboolean
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 904
    functionDepth: 7
    functionLinenumber: 904
    functionLinenumberEnd: 1020
    functionName: fu_qc_firehose_impl_write_firmware
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-impl.c
    functionUses: 0
    functionsReached:
    - xb_builder_compile
    - xb_builder_source_new
    - xb_builder_source_load_bytes
    - fu_qc_firehose_impl_patch_targets
    - g_debug
    - fu_firmware_get_image_by_id_bytes
    - xb_builder_import_source
    - g_prefix_error_literal
    - fu_qc_firehose_impl_set_bootable
    - fu_qc_firehose_impl_has_function
    - fu_progress_add_step
    - fu_progress_step_done
    - fwupd_error_convert
    - fu_qc_firehose_impl_find_bootable
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_qc_firehose_impl_configure
    - xb_silo_query
    - g_prefix_error
    - fu_qc_firehose_impl_program_targets
    - fu_qc_firehose_impl_erase_targets
    - g_autoptr
    - xb_builder_new
    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_error
    - g_assert_cmpint
    - g_assert_false
    - fu_qc_firehose_impl_retry
    - 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_no_error
    - g_assert_cmpint
    - fu_qc_firehose_impl_retry
    - g_assert_true
    - 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_error
    - g_assert_cmpint
    - g_assert_false
    - 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_error
    - g_assert_cmpint
    - g_assert_false
    - 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_test_init
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:106,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:107,1
    - Dst: g_test_add_func
      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_run
      Src: /src/fwupd/plugins/qc-firehose/fu-self-test.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: main
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add_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: 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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: fu_qc_firehose_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    - G_OBJECT_CLASS
    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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQcFirehosePluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    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_RAW_DEVICE
    - fu_qc_firehose_functions_to_string
    - 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:58,1
    - Dst: fu_zip_firmware_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:58,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:59,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:65,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: 66
      start: 51
    functionDepth: 4
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: fu_qc_firehose_raw_device_impl_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_parse_stream
    - fu_zip_firmware_new
    - g_autoptr
    - g_steal_pointer
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_qc_firehose_raw_device_impl_prepare_firmware(FuDevice
      *device,\n\t\t\t\t\t\tGInputStream *stream,\n\t\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\t\tFuFirmwareParseFlags
      flags,\n\t\t\t\t\t\tGError **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_setup
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:77,1
    - Dst: FU_QC_FIREHOSE_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:77,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:78,1
    - Dst: fu_qc_firehose_impl_write_firmware
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:82,1
    - Dst: FU_QC_FIREHOSE_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:82,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: 87
      start: 68
    functionDepth: 8
    functionLinenumber: 68
    functionLinenumberEnd: 87
    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_RAW_DEVICE
    - fu_qc_firehose_impl_setup
    - g_prefix_error_literal
    - FU_QC_FIREHOSE_IMPL
    - fu_qc_firehose_impl_write_firmware
    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:92,1
    - Dst: fu_qc_firehose_impl_reset
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:97,1
    - Dst: FU_QC_FIREHOSE_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:97,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 89
    functionDepth: 6
    functionLinenumber: 89
    functionLinenumberEnd: 104
    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_QC_FIREHOSE_RAW_DEVICE
    - fu_device_add_flag
    - FU_QC_FIREHOSE_IMPL
    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:110,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:113,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:113,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:115,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:121,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:122,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:130,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:133,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:135,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 106
    functionDepth: 9
    functionLinenumber: 106
    functionLinenumberEnd: 143
    functionName: fu_qc_firehose_raw_device_probe
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_device_file
    - fu_device_probe
    - fu_device_get_backend_parent_with_subsystem
    - g_set_error_literal
    - g_pattern_match_simple
    - fu_device_incorporate
    - FU_UDEV_DEVICE
    - g_autoptr
    - FU_DEVICE_CLASS
    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:148,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:151,1
    - Dst: fu_qc_firehose_impl_setup
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:153,1
    - Dst: FU_QC_FIREHOSE_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 7
    functionLinenumber: 145
    functionLinenumberEnd: 154
    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_RAW_DEVICE
    - FU_QC_FIREHOSE_IMPL
    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:159,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:160,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:161,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:162,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:163,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 165
    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:170,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:172,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:172,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:174,1
    - Dst: fu_udev_device_read
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:175,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:175,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:182,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:186,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:187,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - impl
    - timeout_ms
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 167
    functionDepth: 5
    functionLinenumber: 167
    functionLinenumberEnd: 189
    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
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_dump_raw
    - g_byte_array_set_size
    - g_byte_array_new
    - FU_UDEV_DEVICE
    - fu_udev_device_read
    - g_autoptr
    - 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:198,1
    - Dst: fu_udev_device_write
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:199,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:199,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: 205
      start: 191
    functionDepth: 5
    functionLinenumber: 191
    functionLinenumberEnd: 205
    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
    - fu_udev_device_write
    - FU_QC_FIREHOSE_RAW_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: 214
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 214
    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:219,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:219,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:220,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:220,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:221,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:221,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:222,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:222,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:223,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:223,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:224,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:224,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:225,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:225,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:226,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:226,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:227,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:227,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:228,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:228,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:229,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:229,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:230,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:230,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:231,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQcFirehoseRawDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 216
    functionDepth: 6
    functionLinenumber: 216
    functionLinenumberEnd: 232
    functionName: fu_qc_firehose_raw_device_init
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_set_version
    - fu_device_add_private_flag
    - fu_device_set_name
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    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:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQcFirehoseRawDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 245
    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_return_val_if_fail
    - func
    - g_debug
    - g_set_error
    - g_steal_pointer
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    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:
    - fwupd_codec_string_append_hex
    - FU_QC_FIREHOSE_USB_DEVICE
    - fu_qc_firehose_functions_to_string
    - 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_literal
      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: 4
    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_literal
    - fu_dump_raw
    - g_byte_array_set_size
    - g_byte_array_new
    - fu_usb_device_bulk_transfer
    - FU_USB_DEVICE
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_qc_firehose_usb_device_read(FuQcFirehoseUsbDevice *self, guint timeout_ms,
      GError **error)'
  - BBCount: 8
    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_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:105,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:113,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:114,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:123,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:125,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:127,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:129,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:130,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:131,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:131,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:133,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:134,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:139,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:142,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:143,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:148,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:154,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:154,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:156,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:156,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:164,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 5
    argNames:
    - self
    - buf
    - sz
    - timeout_ms
    - error
    argTypes:
    - FuQcFirehoseUsbDevice*
    - guint8*
    - gsize
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 92
    functionDepth: 4
    functionLinenumber: 92
    functionLinenumberEnd: 171
    functionName: fu_qc_firehose_usb_device_write
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - g_byte_array_sized_new
    - g_debug
    - g_set_error
    - fu_chunk_get_data_sz
    - g_set_error_literal
    - fu_chunk_get_data_out
    - g_prefix_error_literal
    - fu_dump_raw
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_chunk_array_mutable_new
    - fu_chunk_get_data
    - fu_usb_device_bulk_transfer
    - g_byte_array_append
    - FU_USB_DEVICE
    - g_autoptr
    - g_ptr_array_index
    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:177,1
    - Dst: fu_usb_endpoint_get_direction
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:178,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:179,1
    - Dst: fu_usb_endpoint_get_maximum_packet_size
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:180,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:182,1
    - Dst: fu_usb_endpoint_get_maximum_packet_size
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - endpoints
    argTypes:
    - FuQcFirehoseUsbDevice*
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 186
    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
    - fu_usb_endpoint_get_address
    - fu_usb_endpoint_get_direction
    - g_ptr_array_index
    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:191,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:192,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:196,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:199,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:203,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:203,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:207,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:208,1
    - Dst: fu_usb_interface_get_subclass
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:209,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:210,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:212,1
    - Dst: fu_usb_interface_get_endpoints
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:212,1
    - Dst: fu_qc_firehose_usb_device_parse_eps
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:215,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:216,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:216,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:217,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:221,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 188
    functionDepth: 9
    functionLinenumber: 188
    functionLinenumberEnd: 223
    functionName: fu_qc_firehose_usb_device_probe
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_endpoints
    - fu_usb_interface_get_number
    - fu_device_set_version
    - fu_usb_device_get_interfaces
    - g_set_error_literal
    - fu_usb_interface_get_protocol
    - fu_usb_device_add_interface
    - fu_usb_interface_get_class
    - FU_QC_FIREHOSE_USB_DEVICE
    - fu_qc_firehose_usb_device_parse_eps
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_interface_get_subclass
    - FU_DEVICE_CLASS
    - g_ptr_array_index
    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:228,1
    - Dst: fu_qc_firehose_impl_reset
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:233,1
    - Dst: FU_QC_FIREHOSE_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:233,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 225
    functionDepth: 6
    functionLinenumber: 225
    functionLinenumberEnd: 240
    functionName: fu_qc_firehose_usb_device_attach
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_firehose_impl_reset
    - FU_QC_FIREHOSE_USB_DEVICE
    - fu_device_add_flag
    - FU_QC_FIREHOSE_IMPL
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_firehose_usb_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:249,1
    - Dst: fu_zip_firmware_new
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:249,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:250,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:256,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: 257
      start: 242
    functionDepth: 4
    functionLinenumber: 242
    functionLinenumberEnd: 257
    functionName: fu_qc_firehose_usb_device_impl_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_parse_stream
    - fu_zip_firmware_new
    - g_autoptr
    - g_steal_pointer
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_qc_firehose_usb_device_impl_prepare_firmware(FuDevice
      *device,\n\t\t\t\t\t\tGInputStream *stream,\n\t\t\t\t\t\tFuProgress *progress,\n\t\t\t\t\t\tFuFirmwareParseFlags
      flags,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:266,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:269,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:270,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:271,1
    - Dst: fu_qc_firehose_sahara_impl_write_firmware
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:274,1
    - Dst: FU_QC_FIREHOSE_SAHARA_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:274,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:276,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:279,1
    - Dst: fu_qc_firehose_impl_setup
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:282,1
    - Dst: FU_QC_FIREHOSE_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:282,1
    - Dst: fu_qc_firehose_impl_write_firmware
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:284,1
    - Dst: FU_QC_FIREHOSE_IMPL
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:285,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:287,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:288,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:291,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: 295
      start: 259
    functionDepth: 8
    functionLinenumber: 259
    functionLinenumberEnd: 295
    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_sahara_impl_write_firmware
    - fu_progress_add_step
    - fu_qc_firehose_impl_setup
    - fu_progress_step_done
    - FU_QC_FIREHOSE_IMPL
    - fu_device_has_private_flag
    - FU_QC_FIREHOSE_SAHARA_IMPL
    - FU_QC_FIREHOSE_USB_DEVICE
    - fu_qc_firehose_impl_write_firmware
    - fu_progress_get_child
    - 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_IS_QC_FIREHOSE_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:300,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:302,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 304
    functionName: fu_qc_firehose_usb_device_replace
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_has_private_flag
    - fu_device_add_private_flag
    - FU_IS_QC_FIREHOSE_USB_DEVICE
    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:309,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:310,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:311,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:312,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:313,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 306
    functionDepth: 3
    functionLinenumber: 306
    functionLinenumberEnd: 315
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_FIREHOSE_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:322,1
    - Dst: fu_qc_firehose_usb_device_read
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - impl
    - timeout_ms
    - error
    argTypes:
    - FuQcFirehoseSaharaImpl*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 317
    functionDepth: 5
    functionLinenumber: 317
    functionLinenumberEnd: 324
    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_read
    - FU_QC_FIREHOSE_USB_DEVICE
    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:329,1
    - Dst: fu_qc_firehose_usb_device_read
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - impl
    - timeout_ms
    - error
    argTypes:
    - FuQcFirehoseImpl*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 326
    functionDepth: 5
    functionLinenumber: 326
    functionLinenumberEnd: 331
    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_read
    - FU_QC_FIREHOSE_USB_DEVICE
    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:340,1
    - Dst: fu_qc_firehose_usb_device_write
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:341,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: 342
      start: 333
    functionDepth: 5
    functionLinenumber: 333
    functionLinenumberEnd: 342
    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_write
    - FU_QC_FIREHOSE_USB_DEVICE
    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:351,1
    - Dst: fu_qc_firehose_usb_device_write
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:352,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: 353
      start: 344
    functionDepth: 5
    functionLinenumber: 344
    functionLinenumberEnd: 353
    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_write
    - FU_QC_FIREHOSE_USB_DEVICE
    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: 362
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 362
    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: 369
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 369
    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:374,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:374,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:375,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:375,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:376,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:376,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:377,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:377,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:378,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:378,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:379,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:379,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:380,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:380,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:381,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:381,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:382,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:382,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:383,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQcFirehoseUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 371
    functionDepth: 6
    functionLinenumber: 371
    functionLinenumberEnd: 384
    functionName: fu_qc_firehose_usb_device_init
    functionSourceFile: /src/fwupd/plugins/qc-firehose/fu-qc-firehose-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - FU_DEVICE
    - fu_device_set_version_format
    - FU_USB_DEVICE
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQcFirehoseUsbDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 397
    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_return_val_if_fail
    - FU_QC_FIREHOSE_SAHARA_IMPL_GET_IFACE
    - g_set_error_literal
    - FU_IS_QC_FIREHOSE_SAHARA_IMPL
    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_return_val_if_fail
    - FU_QC_FIREHOSE_SAHARA_IMPL_GET_IFACE
    - g_set_error_literal
    - FU_IS_QC_FIREHOSE_SAHARA_IMPL
    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_parse
    - fu_qc_firehose_sahara_pkt_hello_get_mode
    - fu_qc_firehose_sahara_pkt_hello_resp_set_mode
    - fu_qc_firehose_sahara_pkt_hello_resp_new
    - fu_qc_firehose_sahara_impl_write
    - g_autoptr
    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_literal
      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_literal
    - fu_qc_firehose_sahara_impl_write
    - fu_qc_firehose_sahara_pkt_read_get_length
    - fu_qc_firehose_sahara_pkt_read_get_offset
    - fu_bytes_new_offset
    - g_bytes_get_size
    - g_autoptr
    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_literal
      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:
    - fu_qc_firehose_sahara_pkt_read64_get_offset
    - g_bytes_get_data
    - g_prefix_error_literal
    - fu_qc_firehose_sahara_pkt_read64_parse
    - fu_qc_firehose_sahara_impl_write
    - g_bytes_get_size
    - fu_bytes_new_offset
    - g_autoptr
    - fu_qc_firehose_sahara_pkt_read64_get_length
    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_parse
    - fu_qc_firehose_sahara_status_to_string
    - fu_qc_firehose_sahara_pkt_done_new
    - fu_qc_firehose_sahara_impl_write
    - fu_qc_firehose_sahara_pkt_end_of_image_get_status
    - g_autoptr
    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_status_to_string
    - fu_qc_firehose_sahara_pkt_done_resp_parse
    - fu_qc_firehose_sahara_pkt_done_resp_get_status
    - g_autoptr
    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_literal
      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:
    - fu_strsafe
    - fu_qc_firehose_sahara_impl_read32
    - g_debug
    - fu_firmware_get_image_by_id_bytes
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_qc_firehose_sahara_impl_eoi
    - fu_qc_firehose_sahara_pkt_get_hdr_length
    - g_str_has_prefix
    - fu_qc_firehose_sahara_pkt_get_command_id
    - fu_qc_firehose_sahara_impl_read
    - fu_qc_firehose_sahara_impl_hello
    - fu_qc_firehose_sahara_impl_read64
    - fu_qc_firehose_sahara_pkt_parse
    - fu_qc_firehose_sahara_command_id_to_string
    - g_set_error
    - g_prefix_error
    - g_autoptr
    - fu_qc_firehose_sahara_impl_done
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 34
    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_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_device_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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAlgoltekUsbcrPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    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:27,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:28,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: fu_algoltek_usbcr_firmware_export
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_ALGOLTEK_USBCR_FIRMWARE
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_ALGOLTEK_USBCR_FIRMWARE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:38,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:41,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:42,1
    - Dst: fu_struct_ag_usbcr_firmware_hdr_parse_stream
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:45,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:48,1
    - Dst: fu_struct_ag_usbcr_firmware_hdr_get_fw_addr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:48,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:49,1
    - Dst: fu_struct_ag_usbcr_firmware_hdr_get_fw_len
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:49,1
    - Dst: fu_struct_ag_usbcr_firmware_hdr_get_emmc_ver
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:50,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:53,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:53,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:55,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:56,1
    - Dst: fu_struct_ag_usbcr_firmware_info_parse_stream
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:62,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:65,1
    - Dst: fu_struct_ag_usbcr_firmware_info_get_app_ver
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:65,1
    - Dst: fu_struct_ag_usbcr_firmware_info_get_boot_ver
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:68,1
    - Dst: fu_struct_ag_usbcr_firmware_info_get_emmc_support_ver
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:71,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 84
    functionName: fu_algoltek_usbcr_firmware_parse
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_ag_usbcr_firmware_info_get_emmc_support_ver
    - fu_firmware_set_version_raw
    - fu_struct_ag_usbcr_firmware_info_get_boot_ver
    - fu_struct_ag_usbcr_firmware_hdr_get_emmc_ver
    - g_set_error
    - fu_firmware_get_offset
    - FU_ALGOLTEK_USBCR_FIRMWARE
    - fu_struct_ag_usbcr_firmware_hdr_parse_stream
    - fu_firmware_set_offset
    - fu_firmware_get_size
    - fu_struct_ag_usbcr_firmware_info_get_app_ver
    - fu_size_checked_inc
    - g_autoptr
    - fu_struct_ag_usbcr_firmware_hdr_get_fw_addr
    - fu_struct_ag_usbcr_firmware_info_parse_stream
    - fu_firmware_set_size
    - fu_struct_ag_usbcr_firmware_hdr_get_fw_len
    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: FU_ALGOLTEK_USBCR_FIRMWARE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:90,1
    - Dst: fu_struct_ag_usbcr_firmware_hdr_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:91,1
    - Dst: fu_struct_ag_usbcr_firmware_info_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:92,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:92,1
    - Dst: fu_struct_ag_usbcr_firmware_hdr_set_fw_addr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:94,1
    - Dst: fu_struct_ag_usbcr_firmware_hdr_set_fw_len
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:95,1
    - Dst: fu_struct_ag_usbcr_firmware_hdr_set_emmc_ver
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:96,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:97,1
    - Dst: fu_struct_ag_usbcr_firmware_info_set_app_ver
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:99,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:99,1
    - Dst: fu_struct_ag_usbcr_firmware_info_set_boot_ver
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:100,1
    - Dst: fu_struct_ag_usbcr_firmware_info_set_emmc_support_ver
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:101,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:102,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 106
    functionName: fu_algoltek_usbcr_firmware_write
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_ag_usbcr_firmware_info_new
    - fu_firmware_get_version_raw
    - fu_struct_ag_usbcr_firmware_hdr_set_emmc_ver
    - fu_struct_ag_usbcr_firmware_info_set_boot_ver
    - fu_struct_ag_usbcr_firmware_hdr_set_fw_addr
    - fu_struct_ag_usbcr_firmware_info_set_emmc_support_ver
    - g_steal_pointer
    - FU_ALGOLTEK_USBCR_FIRMWARE
    - g_byte_array_new
    - g_byte_array_append
    - fu_struct_ag_usbcr_firmware_info_set_app_ver
    - g_autoptr
    - fu_struct_ag_usbcr_firmware_hdr_set_fw_len
    - fu_struct_ag_usbcr_firmware_hdr_new
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_algoltek_usbcr_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:111,1
    - Dst: FU_IS_ALGOLTEK_USBCR_FIRMWARE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAlgoltekUsbcrFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ALGOLTEK_USBCR_FIRMWARE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:118,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:122,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: fu_algoltek_usbcr_firmware_build
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text_as_uint
    - FU_ALGOLTEK_USBCR_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usbcr_firmware_build(FuFirmware *firmware, XbNode
      *n, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16_hex
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:136,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: fu_algoltek_usbcr_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16_hex
    - fu_firmware_get_version_format
    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:142,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:142,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:143,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:143,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:144,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:144,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:145,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAlgoltekUsbcrFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 146
    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
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAlgoltekUsbcrFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 157
    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: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-self-test.c:16,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-self-test.c:18,1
    - Dst: fu_firmware_roundtrip_from_filename
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-self-test.c:19,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-self-test.c:23,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-self-test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 11
    functionDepth: 7
    functionLinenumber: 11
    functionLinenumberEnd: 25
    functionName: fu_algoltek_usbcr_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - fu_firmware_roundtrip_from_filename
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_algoltek_usbcr_firmware_xml_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-self-test.c:30,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-self-test.c:31,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-self-test.c:32,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-self-test.c:33,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-self-test.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: main
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_type_ensure
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:34,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:34,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_set_cmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:36,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_set_subcmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:37,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_set_ramdest
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:38,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_set_addr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:39,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_set_val
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:40,1
    - Dst: fu_block_device_sg_io_cmd_none
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:42,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - self
    - addr
    - value
    - ram_dest
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - guint16
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 5
    functionLinenumber: 27
    functionLinenumberEnd: 46
    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_cmd
    - fu_struct_ag_usbcr_reg_cdb_set_val
    - fu_block_device_sg_io_cmd_none
    - fu_struct_ag_usbcr_reg_cdb_set_ramdest
    - fu_struct_ag_usbcr_reg_cdb_set_subcmd
    - FU_BLOCK_DEVICE
    - g_autoptr
    - fu_struct_ag_usbcr_reg_cdb_set_addr
    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:56,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:56,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_set_cmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:58,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_set_subcmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:59,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_set_ramdest
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:60,1
    - Dst: fu_struct_ag_usbcr_reg_cdb_set_addr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:61,1
    - Dst: fu_block_device_sg_io_cmd_read
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:63,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:63,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: 69
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 69
    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_struct_ag_usbcr_reg_cdb_set_cmd
    - fu_struct_ag_usbcr_reg_cdb_set_ramdest
    - fu_struct_ag_usbcr_reg_cdb_set_subcmd
    - FU_BLOCK_DEVICE
    - fu_block_device_sg_io_cmd_read
    - g_autoptr
    - fu_struct_ag_usbcr_reg_cdb_set_addr
    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:75,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:75,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_cmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:77,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_addr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:78,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_bufsz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:79,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_tag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:80,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_valid
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:81,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_spisig1
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:82,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_spisig2
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:83,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_spicmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:84,1
    - Dst: fu_block_device_sg_io_cmd_write
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:86,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - self
    - cmd
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 71
    functionDepth: 5
    functionLinenumber: 71
    functionLinenumberEnd: 92
    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_set_tag
    - fu_struct_ag_usbcr_spi_cdb_set_valid
    - fu_block_device_sg_io_cmd_write
    - fu_struct_ag_usbcr_spi_cdb_set_addr
    - fu_struct_ag_usbcr_spi_cdb_set_cmd
    - fu_struct_ag_usbcr_spi_cdb_new
    - FU_BLOCK_DEVICE
    - fu_struct_ag_usbcr_spi_cdb_set_bufsz
    - fu_struct_ag_usbcr_spi_cdb_set_spisig2
    - fu_struct_ag_usbcr_spi_cdb_set_spicmd
    - fu_struct_ag_usbcr_spi_cdb_set_spisig1
    - g_autoptr
    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:102,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:102,1
    - Dst: fu_algoltek_usbcr_device_send_spi_cmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:104,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_cmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:107,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_addr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:108,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_bufsz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:109,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_tag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:110,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_valid
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:111,1
    - Dst: fu_block_device_sg_io_cmd_write
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:113,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - access_sz
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - guint16
    - guint8*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 94
    functionDepth: 6
    functionLinenumber: 94
    functionLinenumberEnd: 119
    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_set_tag
    - fu_struct_ag_usbcr_spi_cdb_set_valid
    - fu_algoltek_usbcr_device_send_spi_cmd
    - fu_block_device_sg_io_cmd_write
    - fu_struct_ag_usbcr_spi_cdb_set_addr
    - fu_struct_ag_usbcr_spi_cdb_set_cmd
    - fu_struct_ag_usbcr_spi_cdb_new
    - FU_BLOCK_DEVICE
    - fu_struct_ag_usbcr_spi_cdb_set_bufsz
    - g_autoptr
    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:128,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:128,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_cmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:130,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_addr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:131,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_bufsz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:132,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_tag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:133,1
    - Dst: fu_struct_ag_usbcr_spi_cdb_set_valid
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:134,1
    - Dst: fu_block_device_sg_io_cmd_read
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:136,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - guint16
    - guint8*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 121
    functionDepth: 5
    functionLinenumber: 121
    functionLinenumberEnd: 142
    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_set_tag
    - fu_struct_ag_usbcr_spi_cdb_set_valid
    - fu_struct_ag_usbcr_spi_cdb_set_addr
    - fu_struct_ag_usbcr_spi_cdb_set_cmd
    - fu_struct_ag_usbcr_spi_cdb_new
    - FU_BLOCK_DEVICE
    - fu_struct_ag_usbcr_spi_cdb_set_bufsz
    - fu_block_device_sg_io_cmd_read
    - g_autoptr
    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:147,1
    - Dst: fu_algoltek_usbcr_device_read_reg
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:150,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 144
    functionDepth: 6
    functionLinenumber: 144
    functionLinenumberEnd: 159
    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:164,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:174,1
    - Dst: fu_algoltek_usbcr_device_write_reg
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:175,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:183,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:183,1
    - Dst: fu_algoltek_usbcr_device_read_reg
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:192,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 161
    functionDepth: 6
    functionLinenumber: 161
    functionLinenumberEnd: 201
    functionName: fu_algoltek_usbcr_device_check_status_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_write_reg
    - fu_device_retry_full
    - FU_DEVICE
    - 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:215,1
    - Dst: fu_algoltek_usbcr_device_write_reg
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:216,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:223,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 203
    functionDepth: 6
    functionLinenumber: 203
    functionLinenumberEnd: 233
    functionName: fu_algoltek_usbcr_device_command_wren
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - G_N_ELEMENTS
    - fu_algoltek_usbcr_device_write_reg
    - fu_device_retry_full
    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:250,1
    - Dst: fu_algoltek_usbcr_device_write_reg
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:251,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:258,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - self
    - en
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 235
    functionDepth: 6
    functionLinenumber: 235
    functionLinenumberEnd: 268
    functionName: fu_algoltek_usbcr_device_command_wrsr
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - G_N_ELEMENTS
    - fu_algoltek_usbcr_device_write_reg
    - fu_device_retry_full
    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:284,1
    - Dst: fu_algoltek_usbcr_device_write_reg
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:285,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:292,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 270
    functionDepth: 6
    functionLinenumber: 270
    functionLinenumberEnd: 302
    functionName: fu_algoltek_usbcr_device_command_rdsr
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - G_N_ELEMENTS
    - fu_algoltek_usbcr_device_write_reg
    - fu_device_retry_full
    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:309,1
    - Dst: GPOINTER_TO_INT
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:311,1
    - Dst: fu_algoltek_usbcr_device_command_wren
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:314,1
    - Dst: fu_algoltek_usbcr_device_command_wrsr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:318,1
    - Dst: fu_algoltek_usbcr_device_command_rdsr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:322,1
    - Dst: fu_algoltek_usbcr_device_read_reg
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:326,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:335,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:344,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 304
    functionDepth: 7
    functionLinenumber: 304
    functionLinenumberEnd: 354
    functionName: fu_algoltek_usbcr_device_spi_flash_block_mode_cb
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - FU_ALGOLTEK_USBCR_DEVICE
    - GPOINTER_TO_INT
    - g_set_error
    - fu_algoltek_usbcr_device_command_wren
    - fu_algoltek_usbcr_device_command_wrsr
    - fu_algoltek_usbcr_device_command_rdsr
    - 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:361,1
    - Dst: fu_struct_ag_usbcr_reset_cdb_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:361,1
    - Dst: fu_struct_ag_usbcr_reset_cdb_set_cmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:363,1
    - Dst: fu_struct_ag_usbcr_reset_cdb_set_subcmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:364,1
    - Dst: fu_struct_ag_usbcr_reset_cdb_set_val
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:365,1
    - Dst: fu_struct_ag_usbcr_reset_cdb_set_val2
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:366,1
    - Dst: fu_block_device_sg_io_cmd_none
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:368,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - val
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 356
    functionDepth: 5
    functionLinenumber: 356
    functionLinenumberEnd: 372
    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_struct_ag_usbcr_reset_cdb_new
    - fu_struct_ag_usbcr_reset_cdb_set_val2
    - fu_struct_ag_usbcr_reset_cdb_set_cmd
    - fu_block_device_sg_io_cmd_none
    - FU_BLOCK_DEVICE
    - fu_struct_ag_usbcr_reset_cdb_set_subcmd
    - fu_struct_ag_usbcr_reset_cdb_set_val
    - g_autoptr
    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: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_block_device_sg_io_cmd_none
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:383,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 374
    functionDepth: 5
    functionLinenumber: 374
    functionLinenumberEnd: 387
    functionName: fu_algoltek_usbcr_device_reset_chip
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ag_usbcr_reset_cdb_new
    - fu_struct_ag_usbcr_reset_cdb_set_cmd
    - fu_block_device_sg_io_cmd_none
    - FU_BLOCK_DEVICE
    - fu_struct_ag_usbcr_reset_cdb_set_subcmd
    - fu_struct_ag_usbcr_reset_cdb_set_val
    - g_autoptr
    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:394,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:394,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:395,1
    - Dst: fu_struct_ag_usbcr_firmware_revision_cdb_new
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:396,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:398,1
    - Dst: fu_block_device_sg_io_cmd_read
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:399,1
    - Dst: FU_BLOCK_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:399,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:405,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:408,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:410,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:410,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:411,1
    - Dst: fu_device_set_version_bootloader_raw
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:413,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 389
    functionDepth: 5
    functionLinenumber: 389
    functionLinenumberEnd: 415
    functionName: fu_algoltek_usbcr_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_raw
    - fu_device_set_version_bootloader_raw
    - g_prefix_error_literal
    - FU_DEVICE
    - FU_BLOCK_DEVICE
    - g_byte_array_new
    - fu_block_device_sg_io_cmd_read
    - fu_struct_ag_usbcr_firmware_revision_cdb_new
    - g_autoptr
    - fu_memread_uint16_safe
    - fu_byte_array_set_size
    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:421,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:423,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:424,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 434
    functionName: fu_algoltek_usbcr_device_probe
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_vid
    - FU_DEVICE_CLASS
    - g_set_error
    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:439,1
    - Dst: fu_algoltek_usbcr_device_ensure_version
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:441,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:443,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 436
    functionDepth: 6
    functionLinenumber: 436
    functionLinenumberEnd: 447
    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_build_vendor_id_u16
    - fu_device_get_vid
    - fu_algoltek_usbcr_device_ensure_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_algoltek_usbcr_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_algoltek_usbcr_firmware_get_boot_ver
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:456,1
    - Dst: FU_ALGOLTEK_USBCR_FIRMWARE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:456,1
    - Dst: fu_device_get_version_bootloader_raw
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:457,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:458,1
    - Dst: fu_algoltek_usbcr_firmware_get_boot_ver
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:463,1
    - Dst: FU_ALGOLTEK_USBCR_FIRMWARE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:463,1
    - Dst: fu_device_get_version_bootloader_raw
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 470
    functionName: fu_algoltek_usbcr_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_algoltek_usbcr_firmware_get_boot_ver
    - fu_device_get_version_bootloader_raw
    - FU_ALGOLTEK_USBCR_FIRMWARE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_algoltek_usbcr_device_check_firmware(FuDevice *device,\n\t\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_algoltek_usbcr_device_do_write_spi
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:477,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:478,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:479,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:480,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:481,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:484,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 472
    functionDepth: 7
    functionLinenumber: 472
    functionLinenumberEnd: 494
    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_DEVICE
    - fu_algoltek_usbcr_device_do_write_spi
    - fu_chunk_get_data
    - fu_chunk_get_address
    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:503,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:504,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:504,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:506,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:507,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:509,1
    - Dst: fu_algoltek_usbcr_device_write_chunk
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:512,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 496
    functionDepth: 8
    functionLinenumber: 496
    functionLinenumberEnd: 519
    functionName: fu_algoltek_usbcr_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_algoltek_usbcr_device_write_chunk
    - fu_chunk_array_index
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:528,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:529,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:529,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:531,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:533,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:535,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:538,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:538,1
    - Dst: fu_algoltek_usbcr_device_do_read_spi
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:539,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:540,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:542,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:545,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:545,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:546,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:549,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:551,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:555,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuAlgoltekUsbcrDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 521
    functionDepth: 6
    functionLinenumber: 521
    functionLinenumberEnd: 560
    functionName: fu_algoltek_usbcr_device_verify_chunks
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_memcmp_safe
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - fu_progress_step_done
    - g_malloc0
    - fu_algoltek_usbcr_device_do_read_spi
    - fu_chunk_get_address
    - fu_chunk_get_data
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:569,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:570,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:571,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:574,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:575,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:576,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:577,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:579,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:579,1
    - Dst: GINT_TO_POINTER
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:583,1
    - Dst: fu_algoltek_usbcr_device_send_spi_cmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:587,1
    - Dst: fu_algoltek_usbcr_device_send_spi_cmd
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:589,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:591,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:594,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:597,1
    - Dst: fu_algoltek_usbcr_device_write_chunks
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:606,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:608,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:611,1
    - Dst: fu_algoltek_usbcr_device_verify_chunks
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:614,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:616,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:619,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:620,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:620,1
    - Dst: GINT_TO_POINTER
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:624,1
    - Dst: fu_algoltek_usbcr_device_set_clear_soft_reset_flag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:629,1
    - Dst: fu_algoltek_usbcr_device_reset_chip
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:631,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: 636
      start: 562
    functionDepth: 9
    functionLinenumber: 562
    functionLinenumberEnd: 636
    functionName: fu_algoltek_usbcr_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - FU_ALGOLTEK_USBCR_DEVICE
    - fu_algoltek_usbcr_device_set_clear_soft_reset_flag
    - fu_algoltek_usbcr_device_send_spi_cmd
    - fu_progress_add_step
    - fu_firmware_get_stream
    - GINT_TO_POINTER
    - fu_progress_step_done
    - fu_device_retry_full
    - FU_DEVICE
    - fu_algoltek_usbcr_device_write_chunks
    - fu_chunk_array_new_from_stream
    - fu_algoltek_usbcr_device_reset_chip
    - fu_algoltek_usbcr_device_verify_chunks
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:641,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:642,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:643,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:644,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:645,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:646,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 638
    functionDepth: 3
    functionLinenumber: 638
    functionLinenumberEnd: 648
    functionName: fu_algoltek_usbcr_device_set_progress
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_algoltek_usbcr_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:653,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 654
    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:659,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:659,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:660,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:660,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:661,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:661,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:662,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:662,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:663,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:663,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:664,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:664,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:665,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:665,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:666,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:666,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:667,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAlgoltekUsbcrDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 656
    functionDepth: 6
    functionLinenumber: 656
    functionLinenumberEnd: 668
    functionName: fu_algoltek_usbcr_device_init
    functionSourceFile: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_vendor
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    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:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAlgoltekUsbcrDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 680
    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_udev_subsystem
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-plugin.c:29,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-plugin.c:30,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    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_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCrosEcPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    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_ptr_array_new
    - g_set_error_literal
    - g_steal_pointer
    - g_ptr_array_add
    - g_autoptr
    - g_ptr_array_index
    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
    - g_strcmp0
    - fu_firmware_set_version
    - g_bytes_get_data
    - g_set_error_literal
    - FU_FIRMWARE
    - g_prefix_error
    - fu_firmware_get_image_by_id
    - fu_firmware_get_addr
    - fu_cros_ec_version_parse
    - g_bytes_get_size
    - fu_memcpy_safe
    - g_autoptr
    - fu_firmware_get_idx
    - g_ptr_array_index
    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
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:176,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCrosEcFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 177
    functionName: fu_cros_ec_firmware_init
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c
    functionUses: 0
    functionsReached:
    - g_new0
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - g_ptr_array_add
    - g_ptr_array_new_with_free_func
    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:182,1
    - Dst: g_ptr_array_free
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:183,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-firmware.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 185
    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_OBJECT_CLASS
    - g_ptr_array_free
    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:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCrosEcFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 192
    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:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 198
    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: 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/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 1421
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:51,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:54,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:54,1
    - Dst: fu_usb_device_get_configuration_index
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:56,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:56,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:59,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:59,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:62,1
    - Dst: g_strlcpy
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:64,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCrosEcUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 48
    functionDepth: 10
    functionLinenumber: 48
    functionLinenumberEnd: 76
    functionName: fu_cros_ec_usb_device_get_configuration
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_id_display
    - fu_usb_device_get_string_descriptor
    - g_debug
    - g_set_error_literal
    - fu_usb_device_get_configuration_index
    - FU_DEVICE
    - g_strlcpy
    - FU_USB_DEVICE
    - GET_PRIVATE
    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:81,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:83,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:86,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:90,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:91,1
    - Dst: fu_usb_interface_get_subclass
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:92,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:95,1
    - Dst: fu_usb_interface_get_endpoints
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:95,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:98,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:99,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:100,1
    - Dst: fu_usb_endpoint_get_maximum_packet_size
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:101,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:105,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 78
    functionDepth: 9
    functionLinenumber: 78
    functionLinenumberEnd: 107
    functionName: fu_cros_ec_usb_device_find_interface
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_CROS_EC_USB_DEVICE
    - fu_usb_interface_get_endpoints
    - fu_usb_interface_get_number
    - fu_usb_endpoint_get_maximum_packet_size
    - fu_usb_device_get_interfaces
    - g_set_error_literal
    - fu_usb_interface_get_protocol
    - fu_usb_interface_get_class
    - fu_usb_endpoint_get_address
    - g_autoptr
    - fu_usb_interface_get_subclass
    - g_ptr_array_index
    - GET_PRIVATE
    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:112,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:113,1
    - Dst: fu_cros_ec_usb_device_find_interface
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:116,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:116,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:117,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:120,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:120,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 109
    functionDepth: 10
    functionLinenumber: 109
    functionLinenumberEnd: 133
    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
    - g_prefix_error_literal
    - fu_cros_ec_usb_device_find_interface
    - fu_usb_device_add_interface
    - FU_USB_DEVICE
    - FU_CROS_EC_USB_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cros_ec_usb_device_probe(FuDevice *device, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:145,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:153,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:157,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:157,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:167,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:180,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:180,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:188,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:192,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: 206
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 206
    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
    - fwupd_error_convert
    - fu_usb_device_bulk_transfer
    - fu_memdup_safe
    - FU_USB_DEVICE
    - GET_PRIVATE
    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:211,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:212,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:214,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:219,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:219,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:227,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 208
    functionDepth: 4
    functionLinenumber: 208
    functionLinenumberEnd: 238
    functionName: fu_cros_ec_usb_device_flush_cb
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - g_malloc0
    - fu_usb_device_bulk_transfer
    - FU_USB_DEVICE
    - FU_CROS_EC_USB_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cros_ec_usb_device_flush_cb(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:244,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:244,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCrosEcUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 240
    functionDepth: 4
    functionLinenumber: 240
    functionLinenumberEnd: 255
    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
    - g_prefix_error_literal
    - FU_DEVICE
    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:275,1
    - Dst: fu_struct_cros_ec_update_frame_header_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:276,1
    - Dst: fu_struct_cros_ec_update_frame_header_set_block_size
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:277,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:278,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:281,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:283,1
    - Dst: fu_cros_ec_usb_device_do_xfer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:284,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: 292
      start: 263
    functionDepth: 5
    functionLinenumber: 263
    functionLinenumberEnd: 292
    functionName: fu_cros_ec_usb_device_ext_cmd
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_cros_ec_update_frame_header_set_cmd_block_base
    - fu_byte_array_append_uint16
    - fu_struct_cros_ec_update_frame_header_set_block_size
    - fu_cros_ec_usb_device_do_xfer
    - g_byte_array_append
    - fu_struct_cros_ec_update_frame_header_new
    - g_autoptr
    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:297,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:300,1
    - Dst: fu_struct_cros_ec_update_frame_header_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:301,1
    - Dst: fu_struct_cros_ec_update_frame_header_set_block_size
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:303,1
    - Dst: fu_cros_ec_usb_device_do_xfer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:304,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 294
    functionDepth: 5
    functionLinenumber: 294
    functionLinenumberEnd: 326
    functionName: fu_cros_ec_usb_device_start_request_cb
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_cros_ec_update_frame_header_set_block_size
    - g_set_error
    - fu_cros_ec_usb_device_do_xfer
    - g_autoptr
    - fu_struct_cros_ec_update_frame_header_new
    - FU_CROS_EC_USB_DEVICE
    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:331,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:332,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:334,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:335,1
    - Dst: fu_struct_cros_ec_first_response_pdu_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:336,1
    - Dst: g_autoptr
      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: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:339,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:342,1
    - Dst: fu_cros_ec_usb_device_recovery
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:345,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:349,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:354,1
    - Dst: fu_struct_cros_ec_first_response_pdu_get_protocol_version
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:358,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:360,1
    - Dst: fu_struct_cros_ec_first_response_pdu_get_return_value
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:368,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:370,1
    - Dst: fu_struct_cros_ec_first_response_pdu_get_offset
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:378,1
    - Dst: g_free
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:379,1
    - Dst: fu_struct_cros_ec_first_response_pdu_get_version
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:380,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:381,1
    - Dst: fu_struct_cros_ec_first_response_pdu_get_flash_protection
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:382,1
    - Dst: fu_cros_ec_usb_device_get_configuration
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:385,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:387,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:388,1
    - Dst: fu_cros_ec_version_parse
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:391,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:393,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:399,1
    - Dst: fu_cros_ec_version_parse
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:400,1
    - Dst: g_prefix_error
      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:410,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:413,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:414,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:421,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:422,1
    - Dst: g_strndup
      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:426,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:432,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:433,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:433,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:434,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:434,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:436,1
    - Dst: fu_device_set_version
      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_set_version_bootloader
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:438,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:438,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:442,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:442,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:443,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:443,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 75
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 328
    functionDepth: 11
    functionLinenumber: 328
    functionLinenumberEnd: 454
    functionName: fu_cros_ec_usb_device_setup
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - fu_struct_cros_ec_first_response_pdu_new
    - g_strv_length
    - fu_cros_ec_version_parse
    - g_free
    - g_auto
    - fu_struct_cros_ec_first_response_pdu_get_protocol_version
    - g_new0
    - fu_struct_cros_ec_first_response_pdu_get_return_value
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - g_prefix_error_literal
    - g_strsplit
    - fu_struct_cros_ec_first_response_pdu_get_offset
    - fu_struct_cros_ec_first_response_pdu_get_flash_protection
    - GET_PRIVATE
    - fu_cros_ec_usb_device_get_configuration
    - fu_device_set_version_bootloader
    - fu_device_remove_flag
    - fu_struct_cros_ec_first_response_pdu_get_version
    - fu_struct_cros_ec_first_response_pdu_get_maximum_pdu_size
    - FU_DEVICE
    - fu_device_retry
    - FU_CROS_EC_USB_DEVICE
    - FU_DEVICE_CLASS
    - g_strndup
    - g_strcmp0
    - g_set_error
    - g_steal_pointer
    - g_prefix_error
    - fu_cros_ec_usb_device_recovery
    - g_autoptr
    - g_propagate_prefixed_error
    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:459,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:460,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 456
    functionDepth: 5
    functionLinenumber: 456
    functionLinenumberEnd: 465
    functionName: fu_cros_ec_usb_device_reload
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_has_private_flag
    - fu_device_remove_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cros_ec_usb_device_reload(FuDevice *device, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_CROS_EC_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:470,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:471,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:475,1
    - Dst: fu_struct_cros_ec_update_frame_header_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:476,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_set_block_size
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:480,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:482,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:483,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:485,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:487,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:493,1
    - Dst: g_checksum_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:493,1
    - Dst: g_checksum_update
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:495,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:496,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:497,1
    - Dst: g_checksum_get_digest
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:498,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:507,1
    - Dst: fu_struct_cros_ec_update_frame_header_set_cmd_block_digest
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:517,1
    - Dst: fu_cros_ec_usb_device_do_xfer
      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:528,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: g_prefix_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:532,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:537,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:540,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:540,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:541,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:548,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:549,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:551,1
    - Dst: fu_cros_ec_usb_device_do_xfer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:553,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:554,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:555,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:561,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:562,1
    - Dst: fu_cros_ec_usb_device_recovery
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:565,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:566,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:569,1
    - Dst: fu_cros_ec_usb_device_do_xfer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:573,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:581,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:582,1
    - Dst: fu_cros_ec_usb_device_recovery
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:584,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:585,1
    - Dst: g_set_error_literal
      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:596,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 467
    functionDepth: 5
    functionLinenumber: 467
    functionLinenumberEnd: 602
    functionName: fu_cros_ec_usb_device_transfer_block_cb
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_progress_reset
    - g_checksum_new
    - g_ptr_array_index
    - fu_struct_cros_ec_update_frame_header_set_cmd_block_base
    - g_debug
    - fu_cros_ec_usb_device_do_xfer
    - g_set_error_literal
    - fu_struct_cros_ec_update_frame_header_set_cmd_block_digest
    - g_prefix_error_literal
    - fu_progress_set_steps
    - g_checksum_get_digest
    - GET_PRIVATE
    - fu_chunk_array_new
    - fu_struct_cros_ec_update_frame_header_set_block_size
    - g_checksum_update
    - fu_progress_step_done
    - fu_chunk_get_data
    - FU_CROS_EC_USB_DEVICE
    - fu_chunk_get_address
    - fu_progress_set_id
    - g_set_error
    - g_prefix_error
    - fu_device_has_private_flag
    - fu_cros_ec_usb_device_recovery
    - fu_memcpy_safe
    - fu_struct_cros_ec_update_frame_header_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cros_ec_usb_device_transfer_block_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:611,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:614,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:615,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:617,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:619,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:621,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:625,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:627,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:639,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:640,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:643,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:651,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:652,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:655,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:656,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:658,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:658,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:663,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:666,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 5
    argNames:
    - self
    - firmware
    - section
    - progress
    - error
    argTypes:
    - FuCrosEcUsbDevice*
    - FuFirmware*
    - FuCrosEcFirmwareSection*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 604
    functionDepth: 5
    functionLinenumber: 604
    functionLinenumberEnd: 671
    functionName: fu_cros_ec_usb_device_transfer_section
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_chunk_array_new
    - g_debug
    - g_set_error
    - g_bytes_get_data
    - fu_progress_get_child
    - fu_progress_set_steps
    - g_prefix_error_literal
    - g_prefix_error
    - fu_progress_step_done
    - FU_DEVICE
    - fu_device_retry
    - fu_progress_set_id
    - g_autoptr
    - fu_firmware_get_image_by_idx_bytes
    - g_ptr_array_index
    - GET_PRIVATE
    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:677,1
    - Dst: fu_struct_cros_ec_update_done_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:677,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:678,1
    - Dst: fu_cros_ec_usb_device_do_xfer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:681,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCrosEcUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 673
    functionDepth: 5
    functionLinenumber: 673
    functionLinenumberEnd: 691
    functionName: fu_cros_ec_usb_device_send_done
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_cros_ec_usb_device_do_xfer
    - g_autoptr
    - fu_struct_cros_ec_update_done_new
    - g_debug
    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:703,1
    - Dst: fu_cros_ec_usb_device_ext_cmd
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:705,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:713,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: 721
      start: 693
    functionDepth: 6
    functionLinenumber: 693
    functionLinenumberEnd: 721
    functionName: fu_cros_ec_usb_device_send_subcommand
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_cros_ec_usb_device_ext_cmd
    - g_prefix_error
    - 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:731,1
    - Dst: fu_cros_ec_usb_device_send_subcommand
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:733,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCrosEcUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 723
    functionDepth: 7
    functionLinenumber: 723
    functionLinenumberEnd: 744
    functionName: fu_cros_ec_usb_device_reset_to_ro
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - g_debug
    - fu_cros_ec_usb_device_send_subcommand
    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:754,1
    - Dst: fu_cros_ec_usb_device_send_subcommand
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:756,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:765,1
    - Dst: fu_cros_ec_usb_device_reset_to_ro
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCrosEcUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 746
    functionDepth: 8
    functionLinenumber: 746
    functionLinenumberEnd: 775
    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_reset_to_ro
    - g_autoptr
    - g_debug
    - fu_cros_ec_usb_device_send_subcommand
    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:786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCrosEcUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 777
    functionDepth: 7
    functionLinenumber: 777
    functionLinenumberEnd: 798
    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:807,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:808,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:809,1
    - Dst: FU_CROS_EC_FIRMWARE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:810,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:812,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:814,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:815,1
    - Dst: fu_struct_cros_ec_first_response_pdu_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:816,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:818,1
    - Dst: fu_cros_ec_usb_device_stay_in_ro
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:819,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:820,1
    - Dst: fu_cros_ec_usb_device_recovery
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:825,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:826,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:831,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:836,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:841,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:857,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:858,1
    - Dst: fu_cros_ec_firmware_get_needed_sections
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:862,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:867,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:868,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:869,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:871,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:872,1
    - Dst: fu_cros_ec_usb_device_transfer_section
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:874,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:877,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:879,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:880,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:883,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:885,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:888,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:888,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:894,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:896,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:899,1
    - Dst: fu_cros_ec_usb_device_send_done
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:903,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:906,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:908,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:911,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:912,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:913,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: 917
      start: 800
    functionDepth: 8
    functionLinenumber: 800
    functionLinenumberEnd: 917
    functionName: fu_cros_ec_usb_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - fu_struct_cros_ec_first_response_pdu_new
    - fu_device_add_private_flag
    - fu_cros_ec_usb_device_transfer_section
    - g_ptr_array_index
    - fu_progress_finished
    - g_debug
    - fu_cros_ec_usb_device_send_done
    - fu_progress_set_steps
    - g_prefix_error_literal
    - fu_progress_set_status
    - g_propagate_error
    - GET_PRIVATE
    - fu_device_set_version_bootloader
    - fu_progress_step_done
    - fu_cros_ec_usb_device_stay_in_ro
    - fu_device_retry
    - FU_CROS_EC_USB_DEVICE
    - fu_progress_get_child
    - fu_progress_set_id
    - FU_CROS_EC_FIRMWARE
    - fu_device_remove_private_flag
    - fu_cros_ec_firmware_get_needed_sections
    - g_steal_pointer
    - fu_device_has_private_flag
    - fu_cros_ec_usb_device_recovery
    - g_error_matches
    - g_autoptr
    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:926,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:927,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:928,1
    - Dst: fu_cros_ec_firmware_new
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:928,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:930,1
    - Dst: fu_cros_ec_firmware_ensure_version
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:932,1
    - Dst: FU_CROS_EC_FIRMWARE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:932,1
    - Dst: fu_cros_ec_firmware_pick_sections
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:936,1
    - Dst: FU_CROS_EC_FIRMWARE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:936,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:939,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:943,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: 944
      start: 919
    functionDepth: 5
    functionLinenumber: 919
    functionLinenumberEnd: 944
    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
    - fu_cros_ec_firmware_pick_sections
    - fu_firmware_parse_stream
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_cros_ec_firmware_new
    - g_autoptr
    - fu_cros_ec_firmware_ensure_version
    - FU_CROS_EC_USB_DEVICE
    - GET_PRIVATE
    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:949,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:950,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:953,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:961,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:962,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:966,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:967,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:968,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:968,1
    - Dst: fu_cros_ec_usb_device_reset_to_ro
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:970,1
    - Dst: fu_cros_ec_usb_device_jump_to_rw
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:972,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:974,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 946
    functionDepth: 9
    functionLinenumber: 946
    functionLinenumberEnd: 978
    functionName: fu_cros_ec_usb_device_attach
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_cros_ec_usb_device_reset_to_ro
    - fu_device_add_private_flag
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_cros_ec_usb_device_jump_to_rw
    - GET_PRIVATE
    - FU_CROS_EC_USB_DEVICE
    - fu_device_remove_private_flag
    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:983,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:984,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:986,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:987,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:992,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:993,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1000,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1001,1
    - Dst: fu_cros_ec_usb_device_reset_to_ro
      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
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 980
    functionDepth: 8
    functionLinenumber: 980
    functionLinenumberEnd: 1008
    functionName: fu_cros_ec_usb_device_detach
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - 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
    - GET_PRIVATE
    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:1013,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1014,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1015,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1016,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1017,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1018,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1019,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1020,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1010
    functionDepth: 3
    functionLinenumber: 1010
    functionLinenumberEnd: 1021
    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:1029,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1030,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1031,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1023
    functionDepth: 2
    functionLinenumber: 1023
    functionLinenumberEnd: 1036
    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:1041,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1041,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1042,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1042,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1043,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1043,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1044,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1044,1
    - Dst: fu_device_set_acquiesce_delay
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1045,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1045,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1046,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1046,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1047,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1047,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1048,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1048,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1049,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1049,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1050,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1050,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1051,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1051,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1052,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1052,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1053,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1053,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1055,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1055,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1056,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCrosEcUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1038
    functionDepth: 6
    functionLinenumber: 1038
    functionLinenumberEnd: 1058
    functionName: fu_cros_ec_usb_device_init
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_acquiesce_delay
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:1063,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1064,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1065,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1066,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1067,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1068,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1060
    functionDepth: 3
    functionLinenumber: 1060
    functionLinenumberEnd: 1070
    functionName: fu_cros_ec_usb_device_to_string
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append
    - fwupd_codec_string_append_int
    - fwupd_codec_string_append_hex
    - FU_CROS_EC_USB_DEVICE
    - GET_PRIVATE
    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:1075,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1076,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1077,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1078,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1079,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1072
    functionDepth: 3
    functionLinenumber: 1072
    functionLinenumberEnd: 1081
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CROS_EC_USB_DEVICE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1086,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1087,1
    - Dst: g_free
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1088,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1090
    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
    - GET_PRIVATE
    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:1095,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCrosEcUsbDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1109
    functionName: fu_cros_ec_usb_device_class_init
    functionSourceFile: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_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_strdup
    - fu_strsafe
    - g_new0
    - g_strrstr
    - g_set_error
    - g_set_error_literal
    - g_steal_pointer
    - g_strsplit_set
    - strlen
    - g_strv_length
    - g_auto
    - g_autoptr
    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: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 1435
    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:32,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:33,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:34,1
    - Dst: fwupd_codec_string_append_hex
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 37
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:45,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:45,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:50,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:51,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:57,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:61,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_addr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:65,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_len
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:66,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:69,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:73,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:79,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:79,1
    - Dst: fu_logitech_hidpp_bootloader_get_addr_hi
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:84,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:85,1
    - Dst: fu_logitech_hidpp_bootloader_get_addr_lo
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:90,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:91,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:97,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:103,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:103,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:106,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:112,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - self
    - records
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 113
    functionName: fu_logitech_hidpp_bootloader_parse_pkts
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_bootloader_pkt_set_len
    - fu_logitech_hidpp_bootloader_get_addr_lo
    - g_debug
    - fu_struct_logitech_hidpp_bootloader_pkt_set_data
    - g_steal_pointer
    - g_ptr_array_add
    - fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
    - g_prefix_error_literal
    - g_set_error_literal
    - fu_logitech_hidpp_bootloader_get_addr_hi
    - g_autoptr
    - fu_struct_logitech_hidpp_bootloader_pkt_new
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    - fu_struct_logitech_hidpp_bootloader_pkt_set_addr
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfu_logitech_hidpp_bootloader_parse_pkts(FuLogitechHidppBootloader
      *self,\n\t\t\t\t\tGPtrArray *records,\n\t\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:118,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:119,1
    - Dst: FU_IS_LOGITECH_HIDPP_BOOTLOADER
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppBootloader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: fu_logitech_hidpp_bootloader_get_addr_lo
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_LOGITECH_HIDPP_BOOTLOADER
    - 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:126,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:127,1
    - Dst: FU_IS_LOGITECH_HIDPP_BOOTLOADER
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppBootloader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: fu_logitech_hidpp_bootloader_get_addr_hi
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_LOGITECH_HIDPP_BOOTLOADER
    - 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:134,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:135,1
    - Dst: FU_IS_LOGITECH_HIDPP_BOOTLOADER
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppBootloader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: fu_logitech_hidpp_bootloader_get_blocksize
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_LOGITECH_HIDPP_BOOTLOADER
    - 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:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:143,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:144,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:145,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:147,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:149,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:151,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 139
    functionDepth: 6
    functionLinenumber: 139
    functionLinenumberEnd: 156
    functionName: fu_logitech_hidpp_bootloader_attach
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_logitech_hidpp_bootloader_request
    - FU_LOGITECH_HIDPP_BOOTLOADER
    - fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
    - g_prefix_error_literal
    - fu_struct_logitech_hidpp_bootloader_pkt_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_bootloader_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:167,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:168,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:169,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:172,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:175,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:177,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:180,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:184,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:186,1
    - Dst: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:188,1
    - Dst: fu_logitech_hidpp_format_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:190,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:192,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:198,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:198,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:201,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:201,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:203,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:203,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:205,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:205,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 208
    functionName: fu_logitech_hidpp_bootloader_ensure_bl_version
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_bootloader_pkt_get_data
    - fu_firmware_strparse_uint16_safe
    - fu_firmware_strparse_uint8_safe
    - fu_logitech_hidpp_bootloader_request
    - fu_device_set_version_bootloader
    - g_set_error_literal
    - fu_device_add_private_flag
    - g_prefix_error_literal
    - fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
    - FU_DEVICE
    - fu_struct_logitech_hidpp_bootloader_pkt_new
    - g_autoptr
    - fu_device_add_protocol
    - fu_logitech_hidpp_format_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_bootloader_ensure_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:213,1
    - Dst: GET_PRIVATE
      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:216,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:217,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:218,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:221,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:225,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:228,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:230,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_len
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:233,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:234,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_len
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:238,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:243,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:244,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:245,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:246,1
    - Dst: fu_logitech_hidpp_bootloader_ensure_bl_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 210
    functionDepth: 5
    functionLinenumber: 210
    functionLinenumberEnd: 250
    functionName: fu_logitech_hidpp_bootloader_setup
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_bootloader_pkt_get_data
    - fu_logitech_hidpp_bootloader_ensure_bl_version
    - fu_logitech_hidpp_bootloader_request
    - g_set_error
    - FU_LOGITECH_HIDPP_BOOTLOADER
    - fu_struct_logitech_hidpp_bootloader_pkt_get_len
    - fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
    - g_prefix_error_literal
    - fu_memread_uint16
    - fu_struct_logitech_hidpp_bootloader_pkt_new
    - g_autoptr
    - FU_DEVICE_CLASS
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_bootloader_setup(FuDevice *device, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:259,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:262,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:263,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:263,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:270,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:275,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:277,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:278,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:278,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:286,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:288,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:290,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:294,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:294,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:302,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:305,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:308,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:309,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:314,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:317,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:320,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - self
    - st_req
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - FuStructLogitechHidppBootloaderPkt*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 252
    functionDepth: 6
    functionLinenumber: 252
    functionLinenumberEnd: 321
    functionName: fu_logitech_hidpp_bootloader_request
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 3
    functionsReached:
    - g_debug
    - g_set_error
    - fu_hid_device_set_report
    - fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_dump_raw
    - fu_usb_device_interrupt_transfer
    - FU_HID_DEVICE
    - fu_struct_logitech_hidpp_bootloader_pkt_new
    - FU_USB_DEVICE
    - g_autoptr
    - fu_struct_logitech_hidpp_bootloader_pkt_parse
    linkageType: ''
    returnType: FuStructLogitechHidppBootloaderPkt
    signature: "FuStructLogitechHidppBootloaderPkt *\nfu_logitech_hidpp_bootloader_request(FuLogitechHidppBootloader
      *self,\n\t\t\t\t     FuStructLogitechHidppBootloaderPkt *st_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:326,1
    - Dst: fu_device_incorporate_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 7
    functionLinenumber: 323
    functionLinenumberEnd: 328
    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:333,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:333,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:334,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:334,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:335,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:335,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:336,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:336,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:337,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:337,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:338,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:338,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:339,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:339,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:340,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:340,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:341,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c:341,1
    - Dst: fu_usb_device_add_interface
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppBootloader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 330
    functionDepth: 6
    functionLinenumber: 330
    functionLinenumberEnd: 344
    functionName: fu_logitech_hidpp_bootloader_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_summary
    - fu_device_set_version_format
    - FU_USB_DEVICE
    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:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechHidppBootloaderClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 354
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:26,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:27,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:29,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_len
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:31,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:32,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:34,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 21
    functionDepth: 7
    functionLinenumber: 21
    functionLinenumberEnd: 40
    functionName: fu_logitech_hidpp_bootloader_texas_erase_all
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_bootloader_pkt_set_len
    - fu_logitech_hidpp_bootloader_request
    - fu_struct_logitech_hidpp_bootloader_pkt_set_data
    - fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
    - g_prefix_error_literal
    - fu_struct_logitech_hidpp_bootloader_pkt_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_bootloader_texas_erase_all(FuLogitechHidppBootloader
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:47,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:48,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:49,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:51,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_len
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:53,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:54,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:56,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:58,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:61,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 42
    functionDepth: 7
    functionLinenumber: 42
    functionLinenumberEnd: 70
    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_struct_logitech_hidpp_bootloader_pkt_set_len
    - fu_logitech_hidpp_bootloader_request
    - fu_struct_logitech_hidpp_bootloader_pkt_set_data
    - fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
    - g_set_error_literal
    - fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
    - g_prefix_error_literal
    - fu_struct_logitech_hidpp_bootloader_pkt_new
    - 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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:78,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:79,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:80,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:82,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_addr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:84,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_len
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:85,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:86,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:88,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:90,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:93,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:95,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:102,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:104,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:111,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 72
    functionDepth: 7
    functionLinenumber: 72
    functionLinenumberEnd: 121
    functionName: fu_logitech_hidpp_bootloader_texas_flash_ram_buffer
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_bootloader_pkt_set_len
    - fu_logitech_hidpp_bootloader_request
    - g_set_error
    - fu_struct_logitech_hidpp_bootloader_pkt_set_data
    - fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
    - fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
    - g_prefix_error
    - fu_struct_logitech_hidpp_bootloader_pkt_new
    - g_autoptr
    - fu_struct_logitech_hidpp_bootloader_pkt_set_addr
    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: 3
    BranchProfiles: []
    Callsites:
    - 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_struct_logitech_hidpp_bootloader_pkt_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:129,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:131,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_len
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:133,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:134,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:136,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:138,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_addr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 123
    functionDepth: 7
    functionLinenumber: 123
    functionLinenumberEnd: 144
    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_struct_logitech_hidpp_bootloader_pkt_get_addr
    - fu_struct_logitech_hidpp_bootloader_pkt_set_len
    - fu_logitech_hidpp_bootloader_request
    - fu_struct_logitech_hidpp_bootloader_pkt_set_data
    - fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
    - g_prefix_error
    - fu_struct_logitech_hidpp_bootloader_pkt_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_bootloader_texas_clear_ram_buffer(FuLogitechHidppBootloader
      *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:151,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_addr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:152,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:154,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_addr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:156,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:158,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:160,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:163,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:165,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_addr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:169,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:172,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:174,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_addr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:178,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_len
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:179,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:185,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:188,1
    - Dst: fu_logitech_hidpp_bootloader_texas_flash_ram_buffer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:189,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:190,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - self
    - st_req
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - FuStructLogitechHidppBootloaderPkt*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 146
    functionDepth: 8
    functionLinenumber: 146
    functionLinenumberEnd: 197
    functionName: fu_logitech_hidpp_bootloader_texas_write_pkt
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_bootloader_pkt_get_addr
    - g_debug
    - fu_logitech_hidpp_bootloader_request
    - g_set_error
    - fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
    - fu_struct_logitech_hidpp_bootloader_pkt_get_len
    - g_prefix_error
    - fu_logitech_hidpp_bootloader_texas_flash_ram_buffer
    - g_autoptr
    - fu_struct_logitech_hidpp_bootloader_pkt_set_addr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_bootloader_texas_write_pkt(FuLogitechHidppBootloader
      *self,\n\t\t\t\t\t     FuStructLogitechHidppBootloaderPkt *st_req,\n\t\t\t\t\t
      \    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:206,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:207,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:209,1
    - Dst: fu_logitech_hidpp_bootloader_texas_write_pkt
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:210,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - pkts
    - progress
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - GPtrArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 199
    functionDepth: 9
    functionLinenumber: 199
    functionLinenumberEnd: 217
    functionName: fu_logitech_hidpp_bootloader_texas_write_pkts
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_bootloader_texas_write_pkt
    - fu_progress_step_done
    - fu_progress_set_steps
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_bootloader_texas_write_pkts(FuLogitechHidppBootloader
      *self,\n\t\t\t\t\t      GPtrArray *pkts,\n\t\t\t\t\t      FuProgress *progress,\n\t\t\t\t\t
      \     GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_BOOTLOADER
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:226,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:228,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:231,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:232,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:233,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:234,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:235,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:236,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:238,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:239,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:240,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:241,1
    - Dst: fu_ihex_firmware_get_records
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:245,1
    - Dst: FU_IHEX_FIRMWARE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:245,1
    - Dst: fu_logitech_hidpp_bootloader_parse_pkts
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:246,1
    - Dst: fu_logitech_hidpp_bootloader_texas_erase_all
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:251,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:253,1
    - Dst: fu_logitech_hidpp_bootloader_texas_clear_ram_buffer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:256,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:258,1
    - Dst: fu_logitech_hidpp_bootloader_texas_write_pkts
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:261,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:263,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:266,1
    - Dst: fu_logitech_hidpp_bootloader_texas_compute_and_test_crc
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:269,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:271,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: 275
      start: 219
    functionDepth: 10
    functionLinenumber: 219
    functionLinenumberEnd: 275
    functionName: fu_logitech_hidpp_bootloader_texas_write_firmware
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c
    functionUses: 0
    functionsReached:
    - fu_ihex_firmware_get_records
    - fu_logitech_hidpp_bootloader_texas_write_pkts
    - fu_progress_add_step
    - FU_IHEX_FIRMWARE
    - FU_LOGITECH_HIDPP_BOOTLOADER
    - fu_progress_step_done
    - fu_logitech_hidpp_bootloader_texas_erase_all
    - fu_device_has_private_flag
    - fu_logitech_hidpp_bootloader_parse_pkts
    - fu_logitech_hidpp_bootloader_texas_clear_ram_buffer
    - g_autoptr
    - fu_progress_get_child
    - fu_logitech_hidpp_bootloader_texas_compute_and_test_crc
    - fu_progress_set_id
    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:281,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-texas.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 285
    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:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechHidppBootloaderTexasClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 293
    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: 298
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 298
    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: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c
    functionUses: 1440
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_RUNTIME
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:26,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      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_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:34,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:35,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:36,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:37,1
    - Dst: fu_struct_logitech_hidpp_msg_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:40,1
    - Dst: fu_logitech_hidpp_send
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:42,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:42,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:48,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:49,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:50,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:52,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:53,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:53,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 22
    functionDepth: 6
    functionLinenumber: 22
    functionLinenumberEnd: 59
    functionName: fu_logitech_hidpp_runtime_unifying_detach
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_struct_logitech_hidpp_msg_set_function_id
    - fu_struct_logitech_hidpp_msg_set_report_id
    - g_debug
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - g_steal_pointer
    - fu_struct_logitech_hidpp_msg_set_data
    - g_prefix_error_literal
    - g_propagate_error
    - fu_struct_logitech_hidpp_msg_new
    - fu_logitech_hidpp_send
    - g_error_matches
    - fu_struct_logitech_hidpp_msg_set_device_id
    - FU_UDEV_DEVICE
    - FU_LOGITECH_HIDPP_RUNTIME
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_runtime_unifying_detach(FuDevice *device,
      FuProgress *progress, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:69,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:70,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:80,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:82,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:84,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:86,1
    - Dst: fu_struct_logitech_hidpp_msg_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:89,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:91,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:91,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:97,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:100,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:101,1
    - Dst: fu_logitech_hidpp_format_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:113,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:117,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:117,1
    - Dst: fu_logitech_hidpp_runtime_get_version_bl_major
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:120,1
    - Dst: fu_logitech_hidpp_format_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:122,1
    - Dst: fu_logitech_hidpp_runtime_get_version_bl_major
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:124,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:127,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:127,1
    - Dst: fu_logitech_hidpp_runtime_get_version_bl_major
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:130,1
    - Dst: fu_logitech_hidpp_runtime_get_version_bl_major
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:132,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:134,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:134,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:135,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:135,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:138,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:138,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:139,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:139,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:140,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:140,1
    - Dst: fu_logitech_hidpp_runtime_enable_notifications
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:144,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:145,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppRuntime*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 61
    functionDepth: 6
    functionLinenumber: 61
    functionLinenumberEnd: 151
    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_add_flag
    - fu_struct_logitech_hidpp_msg_set_function_id
    - fu_device_set_version
    - fu_logitech_hidpp_runtime_get_version_bl_major
    - fu_struct_logitech_hidpp_msg_set_report_id
    - fu_logitech_hidpp_runtime_enable_notifications
    - fu_struct_logitech_hidpp_msg_set_data
    - g_prefix_error_literal
    - fu_struct_logitech_hidpp_msg_new
    - fu_device_has_flag
    - fu_device_add_protocol
    - fu_logitech_hidpp_transfer
    - fu_device_set_version_bootloader
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - FU_DEVICE
    - fu_struct_logitech_hidpp_msg_set_device_id
    - FU_UDEV_DEVICE
    - fu_struct_logitech_hidpp_msg_get_data
    - fu_memcpy_safe
    - fu_logitech_hidpp_format_version
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_runtime_unifying_setup_internal(FuLogitechHidppRuntime
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_RUNTIME
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:156,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:157,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:159,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:163,1
    - Dst: fu_logitech_hidpp_runtime_unifying_setup_internal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:164,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:166,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:167,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:167,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:171,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 153
    functionDepth: 7
    functionLinenumber: 153
    functionLinenumberEnd: 173
    functionName: fu_logitech_hidpp_runtime_unifying_setup
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - g_steal_pointer
    - fu_logitech_hidpp_runtime_unifying_setup_internal
    - g_clear_error
    - g_error_matches
    - g_propagate_error
    - FU_LOGITECH_HIDPP_RUNTIME
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_runtime_unifying_setup(FuDevice *device,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:182,1
    - Dst: fu_ihex_firmware_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:182,1
    - Dst: fu_firmware_tokenize
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:183,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:185,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: 186
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 186
    functionName: fu_logitech_hidpp_runtime_unifying_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c
    functionUses: 0
    functionsReached:
    - fu_firmware_tokenize
    - g_autoptr
    - fu_ihex_firmware_new
    - g_steal_pointer
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_logitech_hidpp_runtime_unifying_prepare_firmware(FuDevice
      *device,\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    FuFirmwareParseFlags flags,\n\t\t\t\t\t\t    GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:191,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:192,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:193,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:194,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:195,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 197
    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 *device,
      FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-unifying.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechHidppRuntimeUnifyingClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 208
    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: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechRdfuEntity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: fu_logitech_rdfu_entity_get_model_id
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_logitech_rdfu_entity_get_model_id(FuLogitechRdfuEntity *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechRdfuEntity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: fu_logitech_rdfu_entity_get_magic
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_logitech_rdfu_entity_get_magic(FuLogitechRdfuEntity *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechRdfuEntity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: fu_logitech_rdfu_entity_get_blocks
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_logitech_rdfu_entity_get_blocks(FuLogitechRdfuEntity *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:46,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:48,1
    - Dst: fu_byte_array_from_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:51,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:56,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - json_obj
    - error
    argTypes:
    - FuLogitechRdfuEntity*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 58
    functionName: fu_logitech_rdfu_entity_add_block
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_ptr_array_add
    - fwupd_json_object_get_string
    - g_autoptr
    - fu_byte_array_from_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_rdfu_entity_add_block(FuLogitechRdfuEntity *self,\n\t\t\t\t
      \ FwupdJsonObject *json_obj,\n\t\t\t\t  GError **error)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:78,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:81,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:84,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:86,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:86,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:88,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:90,1
    - Dst: strlen
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:93,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:94,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:101,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:104,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:104,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:106,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:110,1
    - Dst: fu_byte_array_from_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:112,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:116,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:120,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:123,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:126,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:130,1
    - Dst: fu_byte_array_from_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:134,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:139,1
    - Dst: g_ascii_strup
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:140,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:141,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:142,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:142,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 3
    argNames:
    - self
    - json_obj
    - error
    argTypes:
    - FuLogitechRdfuEntity*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 146
    functionName: fu_logitech_rdfu_entity_add_entry
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - fu_firmware_set_version
    - fu_strtoull
    - FU_FIRMWARE
    - g_set_error_literal
    - fu_firmware_set_idx
    - g_ascii_strup
    - g_strdup_printf
    - strlen
    - fu_byte_array_to_string
    - fwupd_json_object_get_string
    - g_str_has_prefix
    - g_autoptr
    - fu_byte_array_from_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_rdfu_entity_add_entry(FuLogitechRdfuEntity *self,\n\t\t\t\t
      \ FwupdJsonObject *json_obj,\n\t\t\t\t  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_RDFU_ENTITY
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:151,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:154,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:156,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:157,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: fu_logitech_rdfu_entity_export
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_RDFU_ENTITY
    - fu_byte_array_to_string
    - fu_xmlb_builder_insert_kv
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rdfu_entity_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_RDFU_ENTITY
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:166,1
    - Dst: g_free
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:168,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:170,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:171,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 174
    functionName: fu_logitech_rdfu_entity_finalize
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_RDFU_ENTITY
    - g_ptr_array_unref
    - g_byte_array_unref
    - G_OBJECT_CLASS
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rdfu_entity_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:179,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:180,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechRdfuEntity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: fu_logitech_rdfu_entity_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rdfu_entity_init(FuLogitechRdfuEntity *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:186,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechRdfuEntityClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: fu_logitech_rdfu_entity_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rdfu_entity_class_init(FuLogitechRdfuEntityClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.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_logitech_rdfu_entity_new
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuLogitechRdfuEntity
    signature: 'FuLogitechRdfuEntity *

      fu_logitech_rdfu_entity_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_logitech_hidpp_format_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c:15,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 17
    functionName: fu_logitech_hidpp_common
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_format_version
    - g_assert_cmpstr
    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:22,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c:23,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c:24,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: main
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add_func
    - 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: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c
    functionUses: 1440
    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:25,1
    - Dst: FU_IS_LOGITECH_HIDPP_RUNTIME
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:25,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppRuntime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 28
    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
    - FU_IS_LOGITECH_HIDPP_RUNTIME
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_logitech_hidpp_runtime_get_version_bl_major(FuLogitechHidppRuntime
      *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:33,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:34,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:40,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:41,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:42,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:43,1
    - Dst: fu_struct_logitech_hidpp_msg_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:46,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:48,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:48,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppRuntime*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 58
    functionName: fu_logitech_hidpp_runtime_enable_notifications
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c
    functionUses: 1
    functionsReached:
    - fu_struct_logitech_hidpp_msg_set_function_id
    - fu_logitech_hidpp_transfer
    - fu_struct_logitech_hidpp_msg_set_report_id
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - fu_struct_logitech_hidpp_msg_set_data
    - g_prefix_error_literal
    - fu_struct_logitech_hidpp_msg_new
    - fu_struct_logitech_hidpp_msg_set_device_id
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_runtime_enable_notifications(FuLogitechHidppRuntime
      *self, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_RUNTIME
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:63,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:66,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:69,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:73,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:78,1
    - Dst: fu_usb_device_get_release
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:80,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:80,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: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:97,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:98,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:100,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:110,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:116,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:116,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:121,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:122,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:129,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:130,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:132,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:138,1
    - Dst: fu_usb_device_get_release
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:139,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:139,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 60
    functionDepth: 5
    functionLinenumber: 60
    functionLinenumberEnd: 144
    functionName: fu_logitech_hidpp_runtime_probe
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - g_strcmp0
    - FU_UDEV_DEVICE
    - fu_device_get_backend_parent_with_subsystem
    - g_set_error_literal
    - fu_usb_device_get_release
    - fu_device_get_vid
    - g_strdup_printf
    - g_warning
    - fu_udev_device_read_property
    - fu_device_add_instance_id_full
    - FU_USB_DEVICE
    - FU_LOGITECH_HIDPP_RUNTIME
    - g_autoptr
    - FU_DEVICE_CLASS
    - GET_PRIVATE
    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:149,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:153,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:153,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:154,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:154,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:155,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 146
    functionDepth: 7
    functionLinenumber: 146
    functionLinenumberEnd: 164
    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_build_instance_id
    - fu_device_get_vid
    - 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:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechHidppRuntimeClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 171
    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:176,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:176,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:177,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:177,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:178,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:178,1
    - Dst: fu_device_set_version_format
      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: fu_device_set_vid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:180,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:180,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:181,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:181,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:182,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:182,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:183,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:183,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:184,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:184,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:185,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:185,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:187,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:187,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:188,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:188,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:189,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:189,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:191,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:193,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:193,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppRuntime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 173
    functionDepth: 6
    functionLinenumber: 173
    functionLinenumberEnd: 197
    functionName: fu_logitech_hidpp_runtime_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - g_signal_connect
    - fu_device_set_vid
    - fu_device_add_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_summary
    - G_CALLBACK
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_set_poll_interval
    - fu_udev_device_add_open_flag
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_runtime_init(FuLogitechHidppRuntime *self)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:33,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:34,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:37,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:38,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:39,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:41,1
    - Dst: g_seekable_seek
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:43,1
    - Dst: G_SEEKABLE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:43,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:44,1
    - Dst: fwupd_json_parser_load_from_stream
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:48,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:54,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:57,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:60,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:68,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:71,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:72,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:80,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:81,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:82,1
    - Dst: fu_logitech_rdfu_entity_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:82,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:83,1
    - Dst: fu_logitech_rdfu_entity_add_entry
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:86,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:87,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:90,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:90,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:95,1
    - Dst: fwupd_json_object_get_keys
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:98,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:103,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:106,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:110,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:113,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:115,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:118,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:119,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:128,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:130,1
    - Dst: fu_logitech_rdfu_entity_add_block
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:133,1
    - Dst: FU_LOGITECH_RDFU_ENTITY
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:133,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:136,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 90
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 20
    functionDepth: 8
    functionLinenumber: 20
    functionLinenumberEnd: 144
    functionName: fu_logitech_rdfu_firmware_parse
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - fu_logitech_rdfu_entity_add_entry
    - fwupd_json_parser_set_max_quoted
    - fu_firmware_get_image_by_id
    - fwupd_json_array_get_object
    - fwupd_json_parser_set_max_items
    - g_ptr_array_index
    - FU_LOGITECH_RDFU_ENTITY
    - fwupd_json_array_get_size
    - fu_firmware_add_image
    - g_set_error_literal
    - g_prefix_error_literal
    - fwupd_json_object_get_array
    - fu_logitech_rdfu_entity_new
    - g_seekable_seek
    - fu_strtoull
    - fwupd_json_parser_load_from_stream
    - FU_FIRMWARE
    - fwupd_json_object_get_object
    - G_SEEKABLE
    - fwupd_json_parser_new
    - fwupd_json_object_get_string
    - fwupd_json_node_get_object
    - fu_logitech_rdfu_entity_add_block
    - g_set_error
    - fu_input_stream_size
    - g_prefix_error
    - fwupd_json_object_get_keys
    - g_autoptr
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:149,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:149,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:150,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechRdfuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: fu_logitech_rdfu_firmware_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rdfu_firmware_init(FuLogitechRdfuFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechRdfuFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: fu_logitech_rdfu_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_rdfu_firmware_class_init(FuLogitechRdfuFirmwareClass
      *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_logitech_hidpp_msg_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:16,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:17,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:18,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:18,1
    - Dst: fu_logitech_hidpp_msg_is_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:20,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:21,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:22,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - st
    argTypes:
    - FuStructLogitechHidppMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: fu_logitech_hidpp_msg_to_string
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_msg_is_error
    - fu_struct_logitech_hidpp_msg_to_string
    - g_steal_pointer
    - g_string_free
    - g_string_new
    - g_string_append_printf
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_logitech_hidpp_msg_to_string(FuStructLogitechHidppMsg *st)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_logitech_hidpp_msg_get_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:29,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - st
    argTypes:
    - FuStructLogitechHidppMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: fu_logitech_hidpp_msg_is_hidpp10_compat
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_msg_get_sub_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_msg_is_hidpp10_compat(FuStructLogitechHidppMsg
      *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:40,1
    - Dst: fu_struct_logitech_hidpp_msg_get_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - st
    argTypes:
    - FuStructLogitechHidppMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: fu_logitech_hidpp_msg_verify_swid
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_struct_logitech_hidpp_msg_get_function_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_msg_verify_swid(FuStructLogitechHidppMsg
      *st)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_logitech_hidpp_msg_get_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - st
    argTypes:
    - FuStructLogitechHidppMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 60
    functionName: fu_logitech_hidpp_msg_get_payload_length
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_msg_get_report_id
    linkageType: ''
    returnType: gsize
    signature: gsize fu_logitech_hidpp_msg_get_payload_length(FuStructLogitechHidppMsg
      *st)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_logitech_hidpp_msg_get_payload_length
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:70,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:76,1
    - Dst: fu_struct_logitech_hidpp_msg_get_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:80,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:86,1
    - Dst: fu_struct_logitech_hidpp_msg_get_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:88,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:94,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:97,1
    - Dst: MIN
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:97,1
    - Dst: fu_logitech_hidpp_msg_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:100,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:101,1
    - Dst: fu_udev_device_write
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:108,1
    - Dst: MIN
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:110,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - udev_device
    - st
    - hidpp_version
    - timeout
    - flags
    - error
    argTypes:
    - FuUdevDevice*
    - FuStructLogitechHidppMsg*
    - guint8
    - guint
    - FuLogitechHidppMsgFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 62
    functionDepth: 5
    functionLinenumber: 62
    functionLinenumberEnd: 120
    functionName: fu_logitech_hidpp_send
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c
    functionUses: 1
    functionsReached:
    - fu_struct_logitech_hidpp_msg_set_function_id
    - fu_logitech_hidpp_msg_get_payload_length
    - fu_struct_logitech_hidpp_msg_set_report_id
    - fu_udev_device_write
    - g_debug
    - g_set_error
    - fu_struct_logitech_hidpp_msg_get_report_id
    - fu_struct_logitech_hidpp_msg_get_function_id
    - g_prefix_error_literal
    - fu_logitech_hidpp_msg_to_string
    - MIN
    - fu_dump_raw
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_send(FuUdevDevice *udev_device,\n\t\t       FuStructLogitechHidppMsg
      *st,\n\t\t       guint8 hidpp_version,\n\t\t       guint timeout,\n\t\t       FuLogitechHidppMsgFlags
      flags,\n\t\t       GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:128,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:128,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:131,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:131,1
    - Dst: fu_device_check_fwupd_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:132,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:132,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:135,1
    - Dst: fu_udev_device_read
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:136,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:143,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:148,1
    - Dst: fu_struct_logitech_hidpp_msg_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:149,1
    - Dst: fu_logitech_hidpp_msg_get_payload_length
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:152,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:153,1
    - Dst: fu_logitech_hidpp_msg_get_payload_length
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:159,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - udev_device
    - timeout
    - error
    argTypes:
    - FuUdevDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 122
    functionDepth: 5
    functionLinenumber: 122
    functionLinenumberEnd: 165
    functionName: fu_logitech_hidpp_receive
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_msg_get_payload_length
    - g_set_error
    - fu_device_check_fwupd_version
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_dump_raw
    - FU_DEVICE
    - g_byte_array_new
    - fu_device_has_flag
    - fu_struct_logitech_hidpp_msg_parse
    - fu_udev_device_read
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: FuStructLogitechHidppMsg
    signature: 'FuStructLogitechHidppMsg *

      fu_logitech_hidpp_receive(FuUdevDevice *udev_device, guint timeout, GError **error)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fu_logitech_hidpp_send
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:181,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:186,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:189,1
    - Dst: fu_logitech_hidpp_receive
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:191,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:193,1
    - Dst: fu_logitech_hidpp_send
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:194,1
    - Dst: fu_logitech_hidpp_receive
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:204,1
    - Dst: fu_logitech_hidpp_msg_get_payload_length
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:210,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:211,1
    - Dst: fu_struct_logitech_hidpp_msg_get_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:212,1
    - Dst: fu_logitech_hidpp_msg_is_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:218,1
    - Dst: fu_logitech_hidpp_msg_is_reply
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:222,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:223,1
    - Dst: fu_logitech_hidpp_msg_is_hidpp10_compat
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:230,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:231,1
    - Dst: fu_logitech_hidpp_msg_verify_swid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:237,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:238,1
    - Dst: fu_struct_logitech_hidpp_msg_get_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:240,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:249,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:253,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 5
    argNames:
    - udev_device
    - st
    - hidpp_version
    - flags
    - error
    argTypes:
    - FuUdevDevice*
    - FuStructLogitechHidppMsg*
    - guint8
    - FuLogitechHidppMsgFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 167
    functionDepth: 6
    functionLinenumber: 167
    functionLinenumberEnd: 258
    functionName: fu_logitech_hidpp_transfer
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c
    functionUses: 2
    functionsReached:
    - fu_logitech_hidpp_msg_get_payload_length
    - fu_logitech_hidpp_msg_verify_swid
    - g_debug
    - fu_logitech_hidpp_msg_is_error
    - fu_struct_logitech_hidpp_msg_get_report_id
    - fu_struct_logitech_hidpp_msg_get_function_id
    - g_set_error_literal
    - g_steal_pointer
    - fu_logitech_hidpp_receive
    - fu_logitech_hidpp_send
    - g_autoptr
    - fu_logitech_hidpp_msg_is_hidpp10_compat
    - fu_logitech_hidpp_msg_is_reply
    linkageType: ''
    returnType: FuStructLogitechHidppMsg
    signature: "FuStructLogitechHidppMsg *\nfu_logitech_hidpp_transfer(FuUdevDevice
      *udev_device,\n\t\t\t   FuStructLogitechHidppMsg *st,\n\t\t\t   guint8 hidpp_version,\n\t\t\t
      \  FuLogitechHidppMsgFlags flags,\n\t\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:265,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:266,1
    - Dst: fu_struct_logitech_hidpp_msg_get_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:267,1
    - Dst: fu_struct_logitech_hidpp_msg_get_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:268,1
    - Dst: fu_struct_logitech_hidpp_msg_get_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:269,1
    - Dst: fu_struct_logitech_hidpp_msg_get_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:270,1
    - Dst: fu_struct_logitech_hidpp_msg_get_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:273,1
    - Dst: fu_struct_logitech_hidpp_msg_get_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:274,1
    - Dst: fu_struct_logitech_hidpp_msg_get_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:277,1
    - Dst: fu_struct_logitech_hidpp_msg_get_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:278,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 3
    argNames:
    - st1
    - st2
    - flags
    argTypes:
    - FuStructLogitechHidppMsg*
    - FuStructLogitechHidppMsg*
    - FuLogitechHidppMsgFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 281
    functionName: fu_logitech_hidpp_msg_is_reply
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_struct_logitech_hidpp_msg_get_sub_id
    - fu_struct_logitech_hidpp_msg_get_device_id
    - fu_struct_logitech_hidpp_msg_get_function_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_msg_is_reply(FuStructLogitechHidppMsg *st1,\n\t\t\t
      \      FuStructLogitechHidppMsg *st2,\n\t\t\t       FuLogitechHidppMsgFlags
      flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_logitech_hidpp_msg_get_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:287,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:289,1
    - Dst: fu_logitech_hidpp_err_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:290,1
    - Dst: fu_error_map_entry_to_gerror
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:305,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:305,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:308,1
    - Dst: fu_logitech_hidpp_err2_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:309,1
    - Dst: fu_error_map_entry_to_gerror
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:319,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - st
    - error
    argTypes:
    - FuStructLogitechHidppMsg*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 322
    functionName: fu_logitech_hidpp_msg_is_error
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c
    functionUses: 2
    functionsReached:
    - fu_logitech_hidpp_err2_to_string
    - fu_struct_logitech_hidpp_msg_get_data
    - fu_error_map_entry_to_gerror
    - G_N_ELEMENTS
    - fu_logitech_hidpp_err_to_string
    - fu_struct_logitech_hidpp_msg_get_sub_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_msg_is_error(FuStructLogitechHidppMsg *st,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:327,1
    - Dst: g_ascii_isspace
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:329,1
    - Dst: g_string_append_c
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:331,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:333,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c:334,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - name
    - major
    - minor
    - build
    argTypes:
    - gchar*
    - guint8
    - guint8
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 335
    functionName: fu_logitech_hidpp_format_version
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c
    functionUses: 3
    functionsReached:
    - g_string_free
    - g_ascii_isspace
    - g_string_new
    - g_string_append_printf
    - g_string_append_c
    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: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:28,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:29,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:30,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:33,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:35,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:38,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:39,1
    - Dst: MIN
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:40,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_len
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 23
    functionDepth: 7
    functionLinenumber: 23
    functionLinenumberEnd: 42
    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_struct_logitech_hidpp_bootloader_pkt_get_data
    - fu_strsafe
    - fu_logitech_hidpp_bootloader_request
    - fu_struct_logitech_hidpp_bootloader_pkt_get_len
    - g_prefix_error_literal
    - fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
    - MIN
    - fu_struct_logitech_hidpp_bootloader_pkt_new
    - g_autoptr
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:53,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:54,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:56,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:59,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:61,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:66,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:67,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:69,1
    - Dst: fu_firmware_strparse_uint16_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:71,1
    - Dst: fu_logitech_hidpp_format_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 44
    functionDepth: 7
    functionLinenumber: 44
    functionLinenumberEnd: 74
    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_struct_logitech_hidpp_bootloader_pkt_get_data
    - fu_firmware_strparse_uint16_safe
    - fu_firmware_strparse_uint8_safe
    - fu_logitech_hidpp_bootloader_request
    - g_prefix_error_literal
    - fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
    - fu_struct_logitech_hidpp_bootloader_pkt_new
    - 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:79,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:82,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:85,1
    - Dst: fu_logitech_hidpp_bootloader_nordic_get_hw_platform_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:90,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:93,1
    - Dst: fu_logitech_hidpp_bootloader_nordic_get_fw_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:96,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:98,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:99,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 76
    functionDepth: 8
    functionLinenumber: 76
    functionLinenumberEnd: 105
    functionName: fu_logitech_hidpp_bootloader_nordic_setup
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_debug
    - FU_LOGITECH_HIDPP_BOOTLOADER
    - fu_logitech_hidpp_bootloader_nordic_get_hw_platform_id
    - g_warning
    - fu_logitech_hidpp_bootloader_nordic_get_fw_version
    - g_autoptr
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_bootloader_nordic_setup(FuDevice *device,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:114,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:115,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:116,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:118,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_addr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:121,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_len
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:122,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:123,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:125,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:127,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:130,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - self
    - addr
    - len
    - data
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - guint16
    - guint8
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 107
    functionDepth: 7
    functionLinenumber: 107
    functionLinenumberEnd: 140
    functionName: fu_logitech_hidpp_bootloader_nordic_write_signature
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_bootloader_pkt_set_len
    - fu_logitech_hidpp_bootloader_request
    - g_set_error
    - fu_struct_logitech_hidpp_bootloader_pkt_set_data
    - fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
    - fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
    - g_prefix_error
    - fu_struct_logitech_hidpp_bootloader_pkt_new
    - g_autoptr
    - fu_struct_logitech_hidpp_bootloader_pkt_set_addr
    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:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:150,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:151,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:153,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_addr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:155,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_len
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:156,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:157,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:159,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:161,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:164,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:166,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:173,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:175,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:182,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:184,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_len
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:185,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_addr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:186,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:187,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:194,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:196,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 5
    argNames:
    - self
    - addr
    - len
    - data
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - guint16
    - guint8
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 142
    functionDepth: 7
    functionLinenumber: 142
    functionLinenumberEnd: 204
    functionName: fu_logitech_hidpp_bootloader_nordic_write
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_bootloader_pkt_get_addr
    - fu_struct_logitech_hidpp_bootloader_pkt_set_len
    - g_debug
    - fu_logitech_hidpp_bootloader_request
    - g_set_error
    - fu_struct_logitech_hidpp_bootloader_pkt_set_data
    - fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
    - fu_struct_logitech_hidpp_bootloader_pkt_get_len
    - fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
    - g_prefix_error
    - fu_struct_logitech_hidpp_bootloader_pkt_new
    - g_autoptr
    - fu_struct_logitech_hidpp_bootloader_pkt_set_addr
    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:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:212,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:213,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:215,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_addr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:218,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_set_len
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:219,1
    - Dst: fu_logitech_hidpp_bootloader_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:220,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:222,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:225,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:227,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:234,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 206
    functionDepth: 7
    functionLinenumber: 206
    functionLinenumberEnd: 244
    functionName: fu_logitech_hidpp_bootloader_nordic_erase
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_bootloader_pkt_set_len
    - fu_logitech_hidpp_bootloader_request
    - g_set_error
    - fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
    - fu_struct_logitech_hidpp_bootloader_pkt_set_cmd
    - g_prefix_error
    - fu_struct_logitech_hidpp_bootloader_pkt_new
    - g_autoptr
    - fu_struct_logitech_hidpp_bootloader_pkt_set_addr
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:251,1
    - Dst: fu_logitech_hidpp_bootloader_nordic_write_signature
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:253,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_addr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:255,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_len
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:256,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:257,1
    - Dst: fu_logitech_hidpp_bootloader_nordic_write
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:260,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_addr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:262,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_len
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:263,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - st_req
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - FuStructLogitechHidppBootloaderPkt*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 246
    functionDepth: 8
    functionLinenumber: 246
    functionLinenumberEnd: 266
    functionName: fu_logitech_hidpp_bootloader_nordic_write_pkt
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_bootloader_pkt_get_addr
    - fu_struct_logitech_hidpp_bootloader_pkt_get_data
    - fu_struct_logitech_hidpp_bootloader_pkt_get_cmd
    - fu_struct_logitech_hidpp_bootloader_pkt_get_len
    - fu_logitech_hidpp_bootloader_nordic_write_signature
    - fu_logitech_hidpp_bootloader_nordic_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_bootloader_nordic_write_pkt(FuLogitechHidppBootloader
      *self,\n\t\t\t\t\t      FuStructLogitechHidppBootloaderPkt *st_req,\n\t\t\t\t\t
      \     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:275,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:276,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:278,1
    - Dst: fu_logitech_hidpp_bootloader_nordic_write_pkt
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:279,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - pkts
    - progress
    - error
    argTypes:
    - FuLogitechHidppBootloader*
    - GPtrArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 268
    functionDepth: 9
    functionLinenumber: 268
    functionLinenumberEnd: 286
    functionName: fu_logitech_hidpp_bootloader_nordic_write_pkts
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_bootloader_nordic_write_pkt
    - fu_progress_step_done
    - fu_progress_set_steps
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_bootloader_nordic_write_pkts(FuLogitechHidppBootloader
      *self,\n\t\t\t\t\t       GPtrArray *pkts,\n\t\t\t\t\t       FuProgress *progress,\n\t\t\t\t\t
      \      GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_BOOTLOADER
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:295,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:299,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:302,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:303,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:304,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:305,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:306,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:307,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:309,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:310,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:311,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:312,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:316,1
    - Dst: fu_logitech_hidpp_bootloader_get_addr_lo
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:317,1
    - Dst: fu_logitech_hidpp_bootloader_get_addr_hi
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:318,1
    - Dst: fu_logitech_hidpp_bootloader_get_blocksize
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:319,1
    - Dst: fu_logitech_hidpp_bootloader_nordic_erase
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:320,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:323,1
    - Dst: fu_ihex_firmware_get_records
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:326,1
    - Dst: FU_IHEX_FIRMWARE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:326,1
    - Dst: fu_logitech_hidpp_bootloader_parse_pkts
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:327,1
    - Dst: fu_logitech_hidpp_bootloader_nordic_write_pkts
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:330,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:332,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:335,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:338,1
    - Dst: fu_logitech_hidpp_bootloader_nordic_write
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:339,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_addr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:341,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_len
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:342,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:343,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:346,1
    - Dst: fu_logitech_hidpp_bootloader_nordic_write
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:349,1
    - Dst: fu_struct_logitech_hidpp_bootloader_pkt_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:353,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c:356,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 288
    functionDepth: 10
    functionLinenumber: 288
    functionLinenumberEnd: 360
    functionName: fu_logitech_hidpp_bootloader_nordic_write_firmware
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader-nordic.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_HIDPP_BOOTLOADER
    - g_ptr_array_index
    - fu_struct_logitech_hidpp_bootloader_pkt_get_len
    - fu_logitech_hidpp_bootloader_get_blocksize
    - fu_progress_set_status
    - fu_logitech_hidpp_bootloader_get_addr_lo
    - fu_struct_logitech_hidpp_bootloader_pkt_get_data
    - fu_progress_add_step
    - fu_progress_step_done
    - fu_logitech_hidpp_bootloader_nordic_write_pkts
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_ihex_firmware_get_records
    - fu_logitech_hidpp_bootloader_nordic_erase
    - fu_struct_logitech_hidpp_bootloader_pkt_get_addr
    - FU_IHEX_FIRMWARE
    - fu_device_has_private_flag
    - fu_logitech_hidpp_bootloader_get_addr_hi
    - fu_logitech_hidpp_bootloader_parse_pkts
    - g_autoptr
    - fu_logitech_hidpp_bootloader_nordic_write
    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:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechHidppBootloaderNordicClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 368
    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: 373
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 373
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_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_struct_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: fwupd_request_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:29,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:40,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:41,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:42,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:43,1
    - Dst: fu_struct_logitech_hidpp_msg_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:45,1
    - Dst: fu_logitech_hidpp_send
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:47,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:47,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:53,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:54,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:55,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:57,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:58,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:58,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:64,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:65,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:66,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:67,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 23
    functionDepth: 6
    functionLinenumber: 23
    functionLinenumberEnd: 73
    functionName: fu_logitech_hidpp_runtime_bolt_detach
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_struct_logitech_hidpp_msg_set_function_id
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fu_struct_logitech_hidpp_msg_set_report_id
    - g_debug
    - fu_struct_logitech_hidpp_msg_set_data
    - g_prefix_error_literal
    - fu_struct_logitech_hidpp_msg_new
    - fu_logitech_hidpp_send
    - g_propagate_error
    - fwupd_request_new
    - fwupd_request_set_id
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - fu_struct_logitech_hidpp_msg_set_device_id
    - FU_UDEV_DEVICE
    - fu_device_emit_request
    - FU_LOGITECH_HIDPP_RUNTIME
    - g_steal_pointer
    - g_error_matches
    - 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_LOGITECH_HIDPP_RUNTIME_BOLT
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:78,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 80
    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_LOGITECH_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:86,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:86,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:89,1
    - Dst: FU_IS_LOGITECH_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:90,1
    - Dst: fu_logitech_hidpp_device_get_hidpp_pid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:91,1
    - Dst: FU_LOGITECH_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:91,1
    - Dst: FU_LOGITECH_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:93,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - self
    - hidpp_pid
    argTypes:
    - FuLogitechHidppRuntimeBolt*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 97
    functionName: fu_logitech_hidpp_runtime_bolt_find_paired_device
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - FU_IS_LOGITECH_HIDPP_DEVICE
    - FU_LOGITECH_HIDPP_DEVICE
    - fu_device_get_children
    - fu_logitech_hidpp_device_get_hidpp_pid
    - FU_DEVICE
    - g_object_ref
    - g_ptr_array_index
    linkageType: ''
    returnType: FuLogitechHidppDevice
    signature: "FuLogitechHidppDevice *\nfu_logitech_hidpp_runtime_bolt_find_paired_device(FuLogitechHidppRuntimeBolt
      *self,\n\t\t\t\t\t\t  guint16 hidpp_pid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:104,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:104,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:105,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:114,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:115,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:116,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:117,1
    - Dst: fu_struct_logitech_hidpp_msg_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:120,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:123,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:123,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:129,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:132,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:133,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - self
    - slot
    - error
    argTypes:
    - FuLogitechHidppRuntime*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 99
    functionDepth: 7
    functionLinenumber: 99
    functionLinenumberEnd: 136
    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_struct_logitech_hidpp_msg_set_function_id
    - fu_logitech_hidpp_transfer
    - fu_struct_logitech_hidpp_msg_set_report_id
    - fu_memstrsafe
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - fu_struct_logitech_hidpp_msg_set_data
    - g_prefix_error
    - fu_struct_logitech_hidpp_msg_get_data
    - fu_struct_logitech_hidpp_msg_new
    - fu_memread_uint8_safe
    - fu_struct_logitech_hidpp_msg_set_device_id
    - FU_UDEV_DEVICE
    - g_autoptr
    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: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_RUNTIME
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:143,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:149,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:151,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:152,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:154,1
    - Dst: fu_logitech_hidpp_runtime_bolt_find_paired_device
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:159,1
    - Dst: fu_device_get_id_display
      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: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:162,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:164,1
    - Dst: fu_device_probe_invalidate
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:167,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:167,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:168,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:168,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:170,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:173,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:173,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:176,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:176,1
    - Dst: fu_logitech_hidpp_runtime_bolt_query_device_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:182,1
    - Dst: fu_struct_logitech_hidpp_msg_get_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:184,1
    - Dst: fu_logitech_hidpp_device_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:188,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:188,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:189,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:189,1
    - Dst: fu_logitech_hidpp_device_set_device_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:190,1
    - Dst: fu_struct_logitech_hidpp_msg_get_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:192,1
    - Dst: fu_logitech_hidpp_device_set_hidpp_pid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:193,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:194,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:194,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:196,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:196,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:198,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:198,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:200,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:200,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:200,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:203,1
    - Dst: fu_struct_logitech_hidpp_msg_get_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:205,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 3
    argNames:
    - self
    - st
    - error
    argTypes:
    - FuLogitechHidppRuntimeBolt*
    - FuStructLogitechHidppMsg*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 138
    functionDepth: 8
    functionLinenumber: 138
    functionLinenumberEnd: 209
    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_flag
    - fu_device_add_child
    - fu_logitech_hidpp_device_set_hidpp_pid
    - fu_device_locker_new
    - fu_logitech_hidpp_runtime_bolt_query_device_name
    - fu_device_probe
    - fu_device_get_id_display
    - g_debug
    - fu_device_probe_invalidate
    - fu_logitech_hidpp_device_new
    - g_prefix_error_literal
    - fu_device_setup
    - fu_struct_logitech_hidpp_msg_get_device_id
    - fu_device_remove_flag
    - FU_DEVICE
    - fu_device_set_name
    - fu_memread_uint8_safe
    - g_warning
    - FU_UDEV_DEVICE
    - FU_LOGITECH_HIDPP_RUNTIME
    - fu_logitech_hidpp_device_set_device_idx
    - fu_memread_uint16_safe
    - fu_device_open
    - fu_struct_logitech_hidpp_msg_get_data
    - fu_logitech_hidpp_runtime_bolt_find_paired_device
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_runtime_bolt_update_paired_device(FuLogitechHidppRuntimeBolt
      *self,\n\t\t\t\t\t\t    FuStructLogitechHidppMsg *st,\n\t\t\t\t\t\t    GError
      **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:221,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:222,1
    - Dst: fu_logitech_hidpp_runtime_bolt_query_device_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:225,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:229,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:230,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:231,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:232,1
    - Dst: fu_struct_logitech_hidpp_msg_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:235,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:237,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:237,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:244,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:245,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:247,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:251,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:252,1
    - Dst: fu_logitech_hidpp_device_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:254,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:254,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:255,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:255,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:256,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:256,1
    - Dst: fu_logitech_hidpp_device_set_device_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:257,1
    - Dst: fu_logitech_hidpp_device_set_hidpp_pid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:258,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:260,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:260,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:262,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:265,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:265,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:265,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 3
    argNames:
    - self
    - i
    - error
    argTypes:
    - FuLogitechHidppRuntime*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 211
    functionDepth: 8
    functionLinenumber: 211
    functionLinenumberEnd: 270
    functionName: fu_logitech_hidpp_runtime_bolt_poll_peripheral
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_msg_set_function_id
    - fu_device_add_child
    - fu_logitech_hidpp_device_set_hidpp_pid
    - fu_device_locker_new
    - fu_logitech_hidpp_runtime_bolt_query_device_name
    - fu_struct_logitech_hidpp_msg_set_report_id
    - fu_logitech_hidpp_device_new
    - fu_struct_logitech_hidpp_msg_set_data
    - fu_struct_logitech_hidpp_msg_new
    - fu_logitech_hidpp_transfer
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - FU_DEVICE
    - fu_device_set_name
    - fu_memread_uint8_safe
    - fu_struct_logitech_hidpp_msg_set_device_id
    - FU_UDEV_DEVICE
    - fu_logitech_hidpp_device_set_device_idx
    - fu_memread_uint16_safe
    - g_prefix_error
    - fu_struct_logitech_hidpp_msg_get_data
    - fu_device_set_install_duration
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_runtime_bolt_poll_peripheral(FuLogitechHidppRuntime
      *self,\n\t\t\t\t\t       guint i,\n\t\t\t\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_RUNTIME_BOLT
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:275,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:277,1
    - Dst: fu_logitech_hidpp_runtime_bolt_poll_peripheral
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:278,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppRuntime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 272
    functionDepth: 9
    functionLinenumber: 272
    functionLinenumberEnd: 283
    functionName: fu_logitech_hidpp_runtime_bolt_poll_peripherals
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_autoptr
    - FU_LOGITECH_HIDPP_RUNTIME_BOLT
    - fu_logitech_hidpp_runtime_bolt_poll_peripheral
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_runtime_bolt_poll_peripherals(FuLogitechHidppRuntime
      *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:289,1
    - Dst: fu_logitech_hidpp_msg_is_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:292,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:293,1
    - Dst: fu_struct_logitech_hidpp_msg_get_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:298,1
    - Dst: fu_struct_logitech_hidpp_msg_get_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:299,1
    - Dst: fu_logitech_hidpp_runtime_bolt_update_paired_device
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:303,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:306,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:312,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:315,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:318,1
    - Dst: fu_struct_logitech_hidpp_msg_get_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:318,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - self
    - st
    argTypes:
    - FuLogitechHidppRuntimeBolt*
    - FuStructLogitechHidppMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 285
    functionDepth: 9
    functionLinenumber: 285
    functionLinenumberEnd: 324
    functionName: fu_logitech_hidpp_runtime_bolt_process_notification
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_runtime_bolt_update_paired_device
    - fu_logitech_hidpp_msg_is_error
    - g_debug
    - fu_struct_logitech_hidpp_msg_get_report_id
    - g_warning
    - g_autoptr
    - fu_struct_logitech_hidpp_msg_get_sub_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_runtime_bolt_process_notification(FuLogitechHidppRuntimeBolt
      *self,\n\t\t\t\t\t\t    FuStructLogitechHidppMsg *st)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:330,1
    - Dst: fu_struct_logitech_hidpp_msg_get_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:331,1
    - Dst: fu_struct_logitech_hidpp_msg_get_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - st_rsps
    - device_id
    - sub_id
    argTypes:
    - GPtrArray*
    - guint8
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 336
    functionName: fu_logitech_hidpp_runtime_bolt_find_newest_msg
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_msg_get_sub_id
    - fu_struct_logitech_hidpp_msg_get_device_id
    - g_ptr_array_index
    linkageType: ''
    returnType: FuStructLogitechHidppMsg
    signature: 'FuStructLogitechHidppMsg *

      fu_logitech_hidpp_runtime_bolt_find_newest_msg(GPtrArray *st_rsps, guint8 device_id,
      guint8 sub_id)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_RUNTIME
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:341,1
    - Dst: FU_LOGITECH_HIDPP_RUNTIME_BOLT
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:342,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:344,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:345,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:348,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:352,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:357,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:358,1
    - Dst: fu_logitech_hidpp_receive
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:360,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:360,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:362,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:364,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:365,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:368,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:369,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:373,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:373,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:378,1
    - Dst: fu_logitech_hidpp_runtime_bolt_find_newest_msg
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:382,1
    - Dst: fu_struct_logitech_hidpp_msg_get_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:384,1
    - Dst: fu_struct_logitech_hidpp_msg_get_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:385,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:387,1
    - Dst: fu_struct_logitech_hidpp_msg_get_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:388,1
    - Dst: fu_logitech_hidpp_device_idx_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:389,1
    - Dst: fu_struct_logitech_hidpp_msg_get_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:390,1
    - Dst: fu_struct_logitech_hidpp_msg_get_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:391,1
    - Dst: fu_logitech_hidpp_subid_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:392,1
    - Dst: fu_struct_logitech_hidpp_msg_get_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:393,1
    - Dst: fu_logitech_hidpp_runtime_bolt_process_notification
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:396,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 338
    functionDepth: 10
    functionLinenumber: 338
    functionLinenumberEnd: 400
    functionName: fu_logitech_hidpp_runtime_bolt_poll
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - g_debug
    - fu_logitech_hidpp_receive
    - fu_device_has_flag
    - FU_LOGITECH_HIDPP_RUNTIME_BOLT
    - g_ptr_array_new_with_free_func
    - fu_logitech_hidpp_device_idx_to_string
    - fu_struct_logitech_hidpp_msg_get_device_id
    - fu_logitech_hidpp_runtime_bolt_find_newest_msg
    - FU_UDEV_DEVICE
    - FU_LOGITECH_HIDPP_RUNTIME
    - fu_logitech_hidpp_subid_to_string
    - fu_device_open
    - fu_logitech_hidpp_runtime_bolt_process_notification
    - g_steal_pointer
    - g_ptr_array_add
    - g_error_matches
    - g_autoptr
    - fu_struct_logitech_hidpp_msg_get_sub_id
    - g_propagate_prefixed_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_runtime_bolt_poll(FuDevice *device, GError
      **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:409,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:410,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:410,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:413,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:414,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:415,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:416,1
    - Dst: fu_struct_logitech_hidpp_msg_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:419,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:421,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:421,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:427,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:432,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:433,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:440,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:442,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:444,1
    - Dst: fu_logitech_hidpp_format_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:446,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:447,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:447,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:457,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:459,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:461,1
    - Dst: fu_logitech_hidpp_format_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:463,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:464,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:464,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - self
    - i
    - error
    argTypes:
    - FuLogitechHidppRuntime*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 402
    functionDepth: 7
    functionLinenumber: 402
    functionLinenumberEnd: 470
    functionName: fu_logitech_hidpp_runtime_bolt_setup_slot
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_msg_set_function_id
    - fu_logitech_hidpp_transfer
    - fu_struct_logitech_hidpp_msg_set_report_id
    - fu_device_set_version
    - fu_device_set_version_bootloader
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - fu_struct_logitech_hidpp_msg_set_data
    - g_prefix_error_literal
    - fu_struct_logitech_hidpp_msg_get_data
    - FU_DEVICE
    - fu_struct_logitech_hidpp_msg_new
    - fu_memread_uint8_safe
    - fu_struct_logitech_hidpp_msg_set_device_id
    - FU_UDEV_DEVICE
    - fu_logitech_hidpp_format_version
    - g_autoptr
    - fu_memread_uint16_safe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_runtime_bolt_setup_slot(FuLogitechHidppRuntime
      *self, guint i, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_RUNTIME_BOLT
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:475,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:476,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:476,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:477,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:482,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:483,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:484,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:485,1
    - Dst: fu_struct_logitech_hidpp_msg_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:488,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:491,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:491,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:497,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:500,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:501,1
    - Dst: fu_logitech_hidpp_runtime_bolt_setup_slot
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:509,1
    - Dst: fu_logitech_hidpp_runtime_enable_notifications
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:514,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:515,1
    - Dst: fu_logitech_hidpp_runtime_bolt_poll_peripherals
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:518,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppRuntime*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 472
    functionDepth: 10
    functionLinenumber: 472
    functionLinenumberEnd: 522
    functionName: fu_logitech_hidpp_runtime_bolt_setup_internal
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_runtime_bolt_poll_peripherals
    - fu_struct_logitech_hidpp_msg_set_function_id
    - fu_logitech_hidpp_transfer
    - fu_struct_logitech_hidpp_msg_set_report_id
    - fu_logitech_hidpp_runtime_bolt_setup_slot
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - fu_logitech_hidpp_runtime_enable_notifications
    - fu_struct_logitech_hidpp_msg_set_data
    - g_prefix_error_literal
    - fu_struct_logitech_hidpp_msg_get_data
    - fu_struct_logitech_hidpp_msg_new
    - fu_memread_uint8_safe
    - FU_LOGITECH_HIDPP_RUNTIME_BOLT
    - fu_struct_logitech_hidpp_msg_set_device_id
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_runtime_bolt_setup_internal(FuLogitechHidppRuntime
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_RUNTIME
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:527,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:528,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:530,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:534,1
    - Dst: fu_logitech_hidpp_runtime_bolt_setup_internal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:535,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:537,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:538,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:538,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:542,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:542,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 524
    functionDepth: 11
    functionLinenumber: 524
    functionLinenumberEnd: 544
    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
    - fu_device_sleep
    - g_steal_pointer
    - g_clear_error
    - g_error_matches
    - g_propagate_error
    - FU_LOGITECH_HIDPP_RUNTIME
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_runtime_bolt_setup(FuDevice *device, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:549,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:550,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:551,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:552,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:553,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 546
    functionDepth: 3
    functionLinenumber: 546
    functionLinenumberEnd: 555
    functionName: fu_logitech_hidpp_runtime_bolt_set_progress
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_runtime_bolt_set_progress(FuDevice *device,
      FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechHidppRuntimeBoltClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 567
    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:572,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:572,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:573,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:573,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:574,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:574,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:575,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:575,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:576,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:576,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:577,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime-bolt.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppRuntimeBolt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 569
    functionDepth: 6
    functionLinenumber: 569
    functionLinenumberEnd: 578
    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_flag
    - fu_device_set_remove_delay
    - fu_device_set_name
    - FU_DEVICE
    - fu_device_add_request_flag
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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_udev_subsystem
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c:37,1
    - Dst: fu_plugin_add_rule
      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_device_gtype
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c:43,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c:44,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 48
    functionName: fu_logitech_hidpp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_add_rule
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_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:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechHidppPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    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:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:52,1
    - Dst: FU_IS_LOGITECH_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - device_idx
    argTypes:
    - FuLogitechHidppDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: fu_logitech_hidpp_device_set_device_idx
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 2
    functionsReached:
    - g_return_if_fail
    - FU_IS_LOGITECH_HIDPP_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_device_set_device_idx(FuLogitechHidppDevice
      *self, guint8 device_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:59,1
    - Dst: FU_IS_LOGITECH_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: fu_logitech_hidpp_device_get_hidpp_pid
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_LOGITECH_HIDPP_DEVICE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_logitech_hidpp_device_get_hidpp_pid(FuLogitechHidppDevice
      *self)
  - 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_LOGITECH_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - hidpp_pid
    argTypes:
    - FuLogitechHidppDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: fu_logitech_hidpp_device_set_hidpp_pid
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 2
    functionsReached:
    - g_return_if_fail
    - FU_IS_LOGITECH_HIDPP_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_device_set_hidpp_pid(FuLogitechHidppDevice *self,
      guint16 hidpp_pid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:73,1
    - Dst: FU_IS_LOGITECH_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:73,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:74,1
    - Dst: g_free
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:76,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - model_id
    argTypes:
    - FuLogitechHidppDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: fu_logitech_hidpp_device_set_model_id
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FU_IS_LOGITECH_HIDPP_DEVICE
    - g_return_if_fail
    - g_free
    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: 100
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 100
    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: 122
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 122
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:128,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:129,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:130,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:137,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:138,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:139,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:140,1
    - Dst: fu_struct_logitech_hidpp_msg_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:141,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:145,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:145,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:150,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:150,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:156,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:160,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:161,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:161,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:164,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:164,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:169,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:169,1
    - Dst: fu_struct_logitech_hidpp_msg_get_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:173,1
    - Dst: fu_struct_logitech_hidpp_msg_get_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:175,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:176,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:181,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 124
    functionDepth: 7
    functionLinenumber: 124
    functionLinenumberEnd: 188
    functionName: fu_logitech_hidpp_device_ping
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_struct_logitech_hidpp_msg_set_function_id
    - fu_struct_logitech_hidpp_msg_set_report_id
    - g_debug
    - fu_struct_logitech_hidpp_msg_set_data
    - fu_struct_logitech_hidpp_msg_new
    - fu_device_get_proxy
    - g_propagate_error
    - fu_logitech_hidpp_transfer
    - fu_struct_logitech_hidpp_msg_get_device_id
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - fu_device_remove_flag
    - FU_DEVICE
    - fu_struct_logitech_hidpp_msg_set_device_id
    - FU_UDEV_DEVICE
    - g_steal_pointer
    - fu_struct_logitech_hidpp_msg_get_data
    - g_error_matches
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_ping(FuLogitechHidppDevice *self,
      GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:193,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:197,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:197,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:198,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:199,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:202,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:206,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:206,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:211,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:216,1
    - Dst: fu_logitech_hidpp_receive
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:217,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:217,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:219,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:220,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:224,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:228,1
    - Dst: fu_logitech_hidpp_device_ping
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:229,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:230,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:231,1
    - Dst: fu_device_probe_invalidate
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:239,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:239,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:240,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:240,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 190
    functionDepth: 8
    functionLinenumber: 190
    functionLinenumberEnd: 246
    functionName: fu_logitech_hidpp_device_poll
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_HIDPP_DEVICE
    - fu_device_get_name
    - fu_device_probe_invalidate
    - fu_device_locker_new
    - fu_logitech_hidpp_receive
    - fu_device_has_private_flag
    - fu_device_setup
    - FU_DEVICE
    - g_clear_error
    - fu_struct_logitech_hidpp_msg_new
    - fu_device_has_flag
    - g_error_matches
    - fu_struct_logitech_hidpp_msg_set_device_id
    - g_warning
    - fu_device_get_proxy
    - FU_UDEV_DEVICE
    - fu_logitech_hidpp_device_ping
    - g_autoptr
    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:251,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:252,1
    - Dst: fu_logitech_hidpp_feature_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:253,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - map
    - idt
    - str
    argTypes:
    - FuLogitechHidppHidppMap*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 256
    functionName: fu_logitech_hidpp_device_map_to_string
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_logitech_hidpp_feature_to_string
    - 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_LOGITECH_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:261,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:262,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:263,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:264,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:265,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:266,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:268,1
    - Dst: fu_logitech_hidpp_device_map_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 271
    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
    - fu_logitech_hidpp_device_map_to_string
    - fwupd_codec_string_append
    - fwupd_codec_string_append_int
    - fwupd_codec_string_append_hex
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - feature
    argTypes:
    - FuLogitechHidppDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 282
    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
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_logitech_hidpp_device_feature_get_idx(FuLogitechHidppDevice
      *self, guint16 feature)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:290,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      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:291,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:296,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:302,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:302,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:307,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:308,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:309,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:310,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:312,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:312,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:318,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:321,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:323,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:330,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:330,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:331,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:334,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:336,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:337,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:338,1
    - Dst: fu_struct_logitech_hidpp_msg_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:339,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:341,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:341,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:347,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:352,1
    - Dst: FU_BIT_IS_CLEAR
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:354,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:360,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:363,1
    - Dst: fu_logitech_hidpp_format_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:365,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:366,1
    - Dst: FU_BIT_IS_SET
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:369,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:370,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:370,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:372,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:372,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:374,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:374,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 284
    functionDepth: 7
    functionLinenumber: 284
    functionLinenumberEnd: 380
    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_SET
    - fu_struct_logitech_hidpp_msg_set_function_id
    - fu_device_set_version
    - g_strdup_printf
    - fu_struct_logitech_hidpp_msg_set_report_id
    - g_debug
    - fu_logitech_hidpp_device_feature_get_idx
    - g_prefix_error_literal
    - fu_struct_logitech_hidpp_msg_set_data
    - fu_struct_logitech_hidpp_msg_new
    - fu_device_get_proxy
    - FU_BIT_IS_CLEAR
    - fu_logitech_hidpp_transfer
    - fu_device_set_version_bootloader
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - FU_DEVICE
    - fu_struct_logitech_hidpp_msg_set_device_id
    - FU_UDEV_DEVICE
    - fu_device_set_metadata
    - fu_struct_logitech_hidpp_msg_get_data
    - fu_logitech_hidpp_format_version
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_fetch_firmware_info(FuLogitechHidppDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:389,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:389,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:390,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:391,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:391,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:394,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:400,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:400,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:404,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:405,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:406,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:407,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:408,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:408,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:414,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:419,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:421,1
    - Dst: fu_logitech_hidpp_device_set_model_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:422,1
    - Dst: g_string_set_size
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:425,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:426,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:427,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:433,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:433,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:433,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:433,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:434,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:434,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:435,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:435,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 382
    functionDepth: 7
    functionLinenumber: 382
    functionLinenumberEnd: 436
    functionName: fu_logitech_hidpp_device_fetch_model_id
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_msg_set_function_id
    - g_string_set_size
    - fu_logitech_hidpp_device_set_model_id
    - fu_struct_logitech_hidpp_msg_set_report_id
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - fu_logitech_hidpp_device_feature_get_idx
    - g_prefix_error_literal
    - fu_struct_logitech_hidpp_msg_new
    - g_string_new
    - fu_device_get_proxy
    - fu_logitech_hidpp_transfer
    - fu_strtoull
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - FU_DEVICE
    - fu_device_get_vid
    - fu_struct_logitech_hidpp_msg_set_device_id
    - FU_UDEV_DEVICE
    - fu_struct_logitech_hidpp_msg_get_data
    - g_string_append_printf
    - g_autoptr
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_fetch_model_id(FuLogitechHidppDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:447,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:447,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:448,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:451,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:451,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:455,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:456,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:457,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:458,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:460,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:460,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:466,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:469,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - self
    - idx
    - capabilities
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - guint8
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 438
    functionDepth: 7
    functionLinenumber: 438
    functionLinenumberEnd: 471
    functionName: fu_logitech_hidpp_device_ensure_capabilities
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_msg_set_function_id
    - fu_logitech_hidpp_transfer
    - fu_struct_logitech_hidpp_msg_set_report_id
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_struct_logitech_hidpp_msg_get_data
    - fu_struct_logitech_hidpp_msg_new
    - fu_memread_uint8_safe
    - fu_struct_logitech_hidpp_msg_set_device_id
    - fu_device_get_proxy
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_ensure_capabilities(FuLogitechHidppDevice
      *self,\n\t\t\t\t\t     guint8 idx,\n\t\t\t\t\t     guint8 *capabilities,\n\t\t\t\t\t
      \    GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:482,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:482,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:483,1
    - Dst: fu_logitech_hidpp_device_ensure_capabilities
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:486,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:490,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:490,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:495,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:496,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:497,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      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:500,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:500,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:506,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:509,1
    - Dst: fu_memread_uint8_safe
      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:514,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:514,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:517,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:521,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:521,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:524,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:524,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:527,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:527,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:530,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:530,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:533,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 473
    functionDepth: 8
    functionLinenumber: 473
    functionLinenumberEnd: 538
    functionName: fu_logitech_hidpp_device_ensure_battery_level_unified
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_msg_set_function_id
    - fu_logitech_hidpp_transfer
    - fu_logitech_hidpp_device_ensure_capabilities
    - fu_struct_logitech_hidpp_msg_set_report_id
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - g_prefix_error_literal
    - fu_device_set_battery_level
    - FU_DEVICE
    - fu_struct_logitech_hidpp_msg_get_data
    - fu_struct_logitech_hidpp_msg_new
    - fu_memread_uint8_safe
    - g_warning
    - fu_struct_logitech_hidpp_msg_set_device_id
    - fu_device_get_proxy
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_ensure_battery_level_unified(FuLogitechHidppDevice
      *self,\n\t\t\t\t\t\t      guint8 idx,\n\t\t\t\t\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:547,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:547,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:548,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:551,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:551,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:555,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:556,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:557,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:558,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:560,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:560,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:566,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:569,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:571,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:571,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 540
    functionDepth: 7
    functionLinenumber: 540
    functionLinenumberEnd: 573
    functionName: fu_logitech_hidpp_device_ensure_battery_level_status
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_msg_set_function_id
    - fu_logitech_hidpp_transfer
    - fu_struct_logitech_hidpp_msg_set_report_id
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - g_prefix_error_literal
    - fu_device_set_battery_level
    - FU_DEVICE
    - fu_struct_logitech_hidpp_msg_get_data
    - fu_struct_logitech_hidpp_msg_new
    - fu_struct_logitech_hidpp_msg_set_device_id
    - fu_device_get_proxy
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_ensure_battery_level_status(FuLogitechHidppDevice
      *self,\n\t\t\t\t\t\t     guint8 idx,\n\t\t\t\t\t\t     GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:579,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:579,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:580,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:583,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:583,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:587,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:588,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:589,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:590,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:594,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:594,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:600,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:602,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:602,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:604,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:609,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:612,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:612,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:618,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:621,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:621,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:624,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:624,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:627,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:627,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:630,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:630,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:633,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 575
    functionDepth: 7
    functionLinenumber: 575
    functionLinenumberEnd: 640
    functionName: fu_logitech_hidpp_device_ensure_battery_level_mileage
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_msg_set_function_id
    - fu_logitech_hidpp_transfer
    - fu_struct_logitech_hidpp_msg_set_report_id
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - fu_device_set_battery_level
    - FU_DEVICE
    - fu_struct_logitech_hidpp_msg_get_data
    - fu_struct_logitech_hidpp_msg_new
    - g_warning
    - fu_struct_logitech_hidpp_msg_set_device_id
    - fu_device_get_proxy
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_ensure_battery_level_mileage(FuLogitechHidppDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_logitech_hidpp_device_ensure_battery_level_mileage
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:654,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:657,1
    - Dst: fu_logitech_hidpp_device_ensure_battery_level_unified
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:660,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:663,1
    - Dst: fu_logitech_hidpp_device_ensure_battery_level_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:667,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 642
    functionDepth: 9
    functionLinenumber: 642
    functionLinenumberEnd: 671
    functionName: fu_logitech_hidpp_device_ensure_battery_level
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_device_ensure_battery_level_mileage
    - fu_logitech_hidpp_device_ensure_battery_level_unified
    - fu_logitech_hidpp_device_feature_get_idx
    - fu_logitech_hidpp_device_ensure_battery_level_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_ensure_battery_level(FuLogitechHidppDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:678,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:679,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:681,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:684,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:684,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:689,1
    - Dst: fu_struct_logitech_hidpp_msg_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:690,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:693,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:693,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:700,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 674
    functionDepth: 7
    functionLinenumber: 674
    functionLinenumberEnd: 701
    functionName: fu_logitech_hidpp_device_transfer_raw
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_logitech_hidpp_transfer
    - FU_DEVICE
    - g_byte_array_ref
    - fu_struct_logitech_hidpp_msg_parse
    - fu_device_get_proxy
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_logitech_hidpp_device_transfer_raw(FuLogitechHidppDevice *self, GByteArray
      *buf, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:707,1
    - Dst: fu_struct_logitech_hidpp_rdfu_get_capabilities_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:708,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:709,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:710,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:715,1
    - Dst: fu_struct_logitech_hidpp_rdfu_get_capabilities_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:719,1
    - Dst: fu_struct_logitech_hidpp_rdfu_get_capabilities_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:720,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:722,1
    - Dst: fu_logitech_hidpp_device_transfer_raw
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:723,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:725,1
    - Dst: fu_struct_logitech_hidpp_rdfu_capabilities_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:730,1
    - Dst: fu_struct_logitech_hidpp_rdfu_capabilities_get_capabilities
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:734,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 703
    functionDepth: 8
    functionLinenumber: 703
    functionLinenumberEnd: 736
    functionName: fu_logitech_hidpp_device_rdfu_get_capabilities
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_rdfu_capabilities_parse
    - g_debug
    - fu_logitech_hidpp_device_feature_get_idx
    - g_prefix_error_literal
    - fu_struct_logitech_hidpp_rdfu_get_capabilities_set_device_id
    - fu_logitech_hidpp_device_transfer_raw
    - fu_struct_logitech_hidpp_rdfu_get_capabilities_set_sub_id
    - fu_struct_logitech_hidpp_rdfu_capabilities_get_capabilities
    - fu_struct_logitech_hidpp_rdfu_get_capabilities_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_rdfu_get_capabilities(FuLogitechHidppDevice
      *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:745,1
    - Dst: fu_struct_logitech_hidpp_rdfu_start_dfu_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:746,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:747,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:748,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:750,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:752,1
    - Dst: fu_struct_logitech_hidpp_rdfu_start_dfu_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:759,1
    - Dst: fu_struct_logitech_hidpp_rdfu_start_dfu_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:760,1
    - Dst: fu_struct_logitech_hidpp_rdfu_start_dfu_set_fw_entity
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:761,1
    - Dst: fu_struct_logitech_hidpp_rdfu_start_dfu_set_magic
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:762,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:768,1
    - Dst: fu_logitech_hidpp_device_transfer_raw
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:769,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:771,1
    - Dst: fu_struct_logitech_hidpp_rdfu_start_dfu_response_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:775,1
    - Dst: fu_struct_logitech_hidpp_rdfu_start_dfu_response_get_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:781,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:783,1
    - Dst: fu_struct_logitech_hidpp_rdfu_start_dfu_response_get_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:788,1
    - Dst: fu_struct_logitech_hidpp_rdfu_start_dfu_response_get_status_code
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:791,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:793,1
    - Dst: fu_logitech_hidpp_rdfu_response_code_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:798,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 3
    argNames:
    - self
    - magic
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 738
    functionDepth: 8
    functionLinenumber: 738
    functionLinenumberEnd: 805
    functionName: fu_logitech_hidpp_device_rdfu_start_dfu
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_rdfu_start_dfu_set_sub_id
    - fu_struct_logitech_hidpp_rdfu_start_dfu_response_get_function_id
    - g_debug
    - g_set_error
    - g_set_error_literal
    - fu_logitech_hidpp_rdfu_response_code_to_string
    - fu_struct_logitech_hidpp_rdfu_start_dfu_set_magic
    - fu_logitech_hidpp_device_feature_get_idx
    - fu_struct_logitech_hidpp_rdfu_start_dfu_set_device_id
    - fu_struct_logitech_hidpp_rdfu_start_dfu_set_fw_entity
    - g_prefix_error_literal
    - fu_struct_logitech_hidpp_rdfu_start_dfu_response_get_status_code
    - fu_logitech_hidpp_device_transfer_raw
    - g_autoptr
    - fu_struct_logitech_hidpp_rdfu_start_dfu_response_parse
    - fu_struct_logitech_hidpp_rdfu_start_dfu_new
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - FuLogitechHidppDevice*
    - FuLogitechHidppRdfuState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 818
    functionName: fu_logitech_hidpp_device_rdfu_set_state
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_device_rdfu_set_state(FuLogitechHidppDevice
      *self, FuLogitechHidppRdfuState state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:826,1
    - Dst: fu_struct_logitech_hidpp_rdfu_data_transfer_ready_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:829,1
    - Dst: fu_struct_logitech_hidpp_rdfu_data_transfer_ready_get_block_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:837,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:840,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - st_rsp
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - FuStructLogitechHidppRdfuResponse*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 848
    functionName: fu_logitech_hidpp_device_rdfu_status_data_transfer_ready
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_rdfu_data_transfer_ready_get_block_id
    - g_autoptr
    - fu_logitech_hidpp_device_rdfu_set_state
    - fu_struct_logitech_hidpp_rdfu_data_transfer_ready_parse
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_rdfu_status_data_transfer_ready(FuLogitechHidppDevice
      *self,\n\t\t\t\t\t\t\t FuStructLogitechHidppRdfuResponse *st_rsp,\n\t\t\t\t\t\t\t
      GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:857,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:860,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:860,1
    - Dst: fu_struct_logitech_hidpp_rdfu_data_transfer_wait_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:864,1
    - Dst: fu_struct_logitech_hidpp_rdfu_data_transfer_wait_get_delay_ms
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:873,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:882,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:883,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:884,1
    - Dst: fu_logitech_hidpp_receive
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:889,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:889,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:893,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:894,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:896,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:901,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:901,1
    - Dst: fu_struct_logitech_hidpp_rdfu_response_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:905,1
    - Dst: fu_logitech_hidpp_device_rdfu_check_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:913,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:918,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 3
    argNames:
    - self
    - st_rsp
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - FuStructLogitechHidppRdfuResponse*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 850
    functionDepth: 6
    functionLinenumber: 850
    functionLinenumberEnd: 927
    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_device_rdfu_set_state
    - g_debug
    - g_set_error_literal
    - g_steal_pointer
    - fu_logitech_hidpp_receive
    - g_propagate_error
    - FU_DEVICE
    - fu_struct_logitech_hidpp_rdfu_response_parse
    - fu_struct_logitech_hidpp_rdfu_data_transfer_wait_parse
    - g_error_matches
    - fu_logitech_hidpp_device_rdfu_check_status
    - fu_device_get_proxy
    - FU_UDEV_DEVICE
    - fu_struct_logitech_hidpp_rdfu_data_transfer_wait_get_delay_ms
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_rdfu_status_data_transfer_wait(FuLogitechHidppDevice
      *self,\n\t\t\t\t\t\t\tFuStructLogitechHidppRdfuResponse *st_rsp,\n\t\t\t\t\t\t\tGError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:935,1
    - Dst: fu_struct_logitech_hidpp_rdfu_dfu_transfer_pkt_ack_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:938,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:946,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:951,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:954,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:964,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - self
    - st_rsp
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - FuStructLogitechHidppRdfuResponse*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 972
    functionName: fu_logitech_hidpp_device_rdfu_status_pkt_ack
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_hidpp_device_rdfu_set_state
    - 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
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_rdfu_status_pkt_ack(FuLogitechHidppDevice
      *self,\n\t\t\t\t\t     FuStructLogitechHidppRdfuResponse *st_rsp,\n\t\t\t\t\t
      \    GError **error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_logitech_hidpp_rdfu_response_get_status_code
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:979,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:983,1
    - Dst: fu_logitech_hidpp_device_rdfu_status_data_transfer_ready
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:988,1
    - Dst: fu_logitech_hidpp_device_rdfu_status_data_transfer_wait
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:993,1
    - Dst: fu_logitech_hidpp_device_rdfu_status_pkt_ack
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:998,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1003,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1008,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1016,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1018,1
    - Dst: fu_logitech_hidpp_rdfu_response_code_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1023,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - self
    - st_rsp
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - FuStructLogitechHidppRdfuResponse*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 974
    functionDepth: 7
    functionLinenumber: 974
    functionLinenumberEnd: 1028
    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_set_state
    - g_set_error
    - fu_logitech_hidpp_rdfu_response_code_to_string
    - fu_struct_logitech_hidpp_rdfu_response_get_status_code
    - fu_logitech_hidpp_device_rdfu_status_pkt_ack
    - fu_logitech_hidpp_device_rdfu_status_data_transfer_wait
    - fu_logitech_hidpp_device_rdfu_status_data_transfer_ready
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_rdfu_check_status(FuLogitechHidppDevice
      *self,\n\t\t\t\t\t   FuStructLogitechHidppRdfuResponse *st_rsp,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1034,1
    - Dst: fu_struct_logitech_hidpp_rdfu_get_dfu_status_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1035,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1036,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1037,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1039,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1041,1
    - Dst: fu_struct_logitech_hidpp_rdfu_get_dfu_status_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1048,1
    - Dst: fu_struct_logitech_hidpp_rdfu_get_dfu_status_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1049,1
    - Dst: fu_struct_logitech_hidpp_rdfu_get_dfu_status_set_fw_entity
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1050,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1052,1
    - Dst: fu_logitech_hidpp_device_transfer_raw
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1053,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1055,1
    - Dst: fu_struct_logitech_hidpp_rdfu_response_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1060,1
    - Dst: fu_logitech_hidpp_device_rdfu_check_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1064,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1030
    functionDepth: 8
    functionLinenumber: 1030
    functionLinenumberEnd: 1065
    functionName: fu_logitech_hidpp_device_rdfu_get_dfu_status
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error_literal
    - fu_struct_logitech_hidpp_rdfu_get_dfu_status_new
    - fu_struct_logitech_hidpp_rdfu_get_dfu_status_set_device_id
    - fu_logitech_hidpp_device_feature_get_idx
    - g_prefix_error_literal
    - fu_struct_logitech_hidpp_rdfu_response_parse
    - fu_logitech_hidpp_device_transfer_raw
    - fu_logitech_hidpp_device_rdfu_check_status
    - fu_struct_logitech_hidpp_rdfu_get_dfu_status_set_fw_entity
    - g_autoptr
    - fu_struct_logitech_hidpp_rdfu_get_dfu_status_set_sub_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_rdfu_get_dfu_status(FuLogitechHidppDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1074,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1075,1
    - Dst: fu_struct_logitech_hidpp_rdfu_apply_dfu_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1076,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1078,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1080,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1088,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1088,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1093,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1100,1
    - Dst: fu_struct_logitech_hidpp_rdfu_apply_dfu_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1101,1
    - Dst: fu_struct_logitech_hidpp_rdfu_apply_dfu_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1102,1
    - Dst: fu_struct_logitech_hidpp_rdfu_apply_dfu_set_fw_entity
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1103,1
    - Dst: fu_struct_logitech_hidpp_rdfu_apply_dfu_set_flags
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1104,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1109,1
    - Dst: fu_struct_logitech_hidpp_msg_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1111,1
    - Dst: fu_logitech_hidpp_send
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1116,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - self
    - fw_entity
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1067
    functionDepth: 6
    functionLinenumber: 1067
    functionLinenumberEnd: 1122
    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_flags
    - g_debug
    - FU_UDEV_DEVICE
    - g_set_error_literal
    - fu_logitech_hidpp_device_feature_get_idx
    - FU_DEVICE
    - fu_logitech_hidpp_send
    - fu_struct_logitech_hidpp_msg_parse
    - fu_struct_logitech_hidpp_rdfu_apply_dfu_set_fw_entity
    - fu_device_get_proxy
    - fu_struct_logitech_hidpp_rdfu_apply_dfu_set_device_id
    - fu_struct_logitech_hidpp_rdfu_apply_dfu_set_sub_id
    - g_autoptr
    - fu_byte_array_set_size
    - fu_struct_logitech_hidpp_rdfu_apply_dfu_new
    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: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1131,1
    - Dst: fu_struct_logitech_hidpp_rdfu_transfer_dfu_data_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1132,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1133,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1134,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1136,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1138,1
    - Dst: fu_struct_logitech_hidpp_rdfu_transfer_dfu_data_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1145,1
    - Dst: fu_struct_logitech_hidpp_rdfu_transfer_dfu_data_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1146,1
    - Dst: fu_struct_logitech_hidpp_rdfu_transfer_dfu_data_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1147,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1150,1
    - Dst: fu_logitech_hidpp_device_transfer_raw
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1151,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1153,1
    - Dst: fu_struct_logitech_hidpp_rdfu_response_parse
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1157,1
    - Dst: fu_logitech_hidpp_device_rdfu_check_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - self
    - data
    - datasz
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1124
    functionDepth: 8
    functionLinenumber: 1124
    functionLinenumberEnd: 1162
    functionName: fu_logitech_hidpp_device_rdfu_transfer_pkt
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_rdfu_transfer_dfu_data_set_sub_id
    - g_debug
    - fu_struct_logitech_hidpp_rdfu_transfer_dfu_data_new
    - g_set_error_literal
    - fu_logitech_hidpp_device_feature_get_idx
    - fu_struct_logitech_hidpp_rdfu_transfer_dfu_data_set_device_id
    - g_prefix_error_literal
    - fu_struct_logitech_hidpp_rdfu_response_parse
    - fu_logitech_hidpp_device_transfer_raw
    - fu_logitech_hidpp_device_rdfu_check_status
    - g_autoptr
    - fu_struct_logitech_hidpp_rdfu_transfer_dfu_data_set_data
    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: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1170,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1170,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1172,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1175,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1182,1
    - Dst: fu_byte_array_append_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1183,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1189,1
    - Dst: fu_logitech_hidpp_device_rdfu_transfer_pkt
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - blocks
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1164
    functionDepth: 9
    functionLinenumber: 1164
    functionLinenumberEnd: 1193
    functionName: fu_logitech_hidpp_device_rdfu_transfer_data
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - fu_byte_array_append_safe
    - g_prefix_error
    - g_byte_array_new
    - fu_logitech_hidpp_device_rdfu_transfer_pkt
    - g_autoptr
    - g_ptr_array_index
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1203,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1203,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1204,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1214,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1214,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1218,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1219,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1220,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1221,1
    - Dst: fu_struct_logitech_hidpp_msg_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1222,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1224,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1224,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1230,1
    - Dst: fu_logitech_hidpp_feature_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1232,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1238,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1240,1
    - Dst: fu_logitech_hidpp_feature_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1244,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1250,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1253,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1254,1
    - Dst: fu_logitech_hidpp_feature_to_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 3
    argNames:
    - self
    - feature
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1195
    functionDepth: 7
    functionLinenumber: 1195
    functionLinenumberEnd: 1259
    functionName: fu_logitech_hidpp_device_feature_search
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_msg_set_function_id
    - fu_logitech_hidpp_transfer
    - fu_struct_logitech_hidpp_msg_set_report_id
    - fu_logitech_hidpp_feature_to_string
    - g_new0
    - g_set_error
    - g_debug
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - g_ptr_array_add
    - fu_struct_logitech_hidpp_msg_set_data
    - g_prefix_error
    - FU_DEVICE
    - fu_struct_logitech_hidpp_msg_get_data
    - fu_struct_logitech_hidpp_msg_new
    - fu_struct_logitech_hidpp_msg_set_device_id
    - fu_device_get_proxy
    - FU_UDEV_DEVICE
    - g_autoptr
    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_LOGITECH_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1264,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1267,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1276,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1276,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1277,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1261
    functionDepth: 3
    functionLinenumber: 1261
    functionLinenumberEnd: 1283
    functionName: fu_logitech_hidpp_device_probe
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - FU_LOGITECH_HIDPP_DEVICE
    - fu_device_build_vendor_id_u16
    - g_string_new
    - g_string_append_printf
    - 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:1288,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1292,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1292,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1293,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1293,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1285
    functionDepth: 7
    functionLinenumber: 1285
    functionLinenumberEnd: 1295
    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_vid
    - fu_device_build_instance_id
    - fu_device_get_pid
    - 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy_gtype
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1302,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1304,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1309,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1297
    functionDepth: 2
    functionLinenumber: 1297
    functionLinenumberEnd: 1310
    functionName: fu_logitech_hidpp_device_proxy_notify_cb
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_DEVICE
    - fu_device_get_proxy_gtype
    - fu_udev_device_add_open_flag
    - fu_device_get_proxy
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_device_proxy_notify_cb(FuDevice *device, GParamSpec
      *pspec, gpointer user_data)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1315,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1332,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1332,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1336,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1343,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1345,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1351,1
    - Dst: fu_logitech_hidpp_device_ping
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1354,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1355,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1361,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1366,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1368,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1371,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1376,1
    - Dst: fu_logitech_hidpp_device_feature_search
      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:1378,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1379,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1380,1
    - Dst: fu_logitech_hidpp_device_fetch_model_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1388,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1389,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:1400,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1400,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1401,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1403,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1405,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1406,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1407,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1409,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1409,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1415,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1420,1
    - Dst: fu_logitech_hidpp_device_get_summary
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1421,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1423,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1423,1
    - Dst: fu_logitech_hidpp_device_get_icon
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1424,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1426,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1426,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1428,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1430,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1430,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1431,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1431,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1432,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1432,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1433,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1433,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1435,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1438,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1443,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1443,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1444,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1446,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1448,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1449,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1450,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1451,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1451,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1457,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1460,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1462,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1464,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1464,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1466,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1466,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1467,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1467,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1468,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1468,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1470,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1472,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1472,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1473,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1473,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1474,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1474,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1475,1
    - Dst: g_info
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1476,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1477,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1477,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1481,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1481,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1482,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1482,1
    - Dst: fu_logitech_hidpp_device_fetch_firmware_info
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1486,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1487,1
    - Dst: fu_logitech_hidpp_device_ensure_battery_level
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1492,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1493,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1497,1
    - Dst: fu_logitech_hidpp_device_rdfu_get_capabilities
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1499,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1500,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1503,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1503,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1504,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1504,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1505,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1505,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1506,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1506,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1510,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 129
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1312
    functionDepth: 10
    functionLinenumber: 1312
    functionLinenumberEnd: 1512
    functionName: fu_logitech_hidpp_device_setup
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_struct_logitech_hidpp_msg_set_function_id
    - fu_device_set_version
    - fu_logitech_hidpp_device_ensure_battery_level
    - g_ptr_array_set_size
    - fu_logitech_hidpp_device_fetch_model_id
    - fu_logitech_hidpp_device_ping
    - fu_device_set_firmware_gtype
    - fu_struct_logitech_hidpp_msg_set_report_id
    - g_new0
    - g_debug
    - g_set_error_literal
    - fu_device_add_icon
    - g_prefix_error_literal
    - fu_logitech_hidpp_device_feature_get_idx
    - fu_logitech_hidpp_device_rdfu_get_capabilities
    - fu_struct_logitech_hidpp_msg_new
    - fu_device_set_summary
    - fu_device_get_proxy
    - fu_logitech_hidpp_device_feature_search
    - fu_device_add_protocol
    - fu_logitech_hidpp_transfer
    - g_info
    - fu_logitech_hidpp_device_fetch_firmware_info
    - fu_device_sleep
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - fu_device_remove_flag
    - FU_DEVICE
    - fu_logitech_hidpp_device_get_summary
    - g_warning
    - fu_struct_logitech_hidpp_msg_set_device_id
    - FU_UDEV_DEVICE
    - FU_LOGITECH_HIDPP_DEVICE
    - fu_logitech_hidpp_device_get_icon
    - g_ptr_array_add
    - fu_device_has_private_flag
    - fu_struct_logitech_hidpp_msg_get_data
    - fu_device_get_version
    - g_error_matches
    - g_autoptr
    - fu_device_set_poll_interval
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_setup(FuDevice *device, GError **error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1517,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1521,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1523,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1528,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1529,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1534,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1534,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1539,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1543,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1547,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1547,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1548,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1549,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1549,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1550,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1561,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1563,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1564,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1565,1
    - Dst: fu_struct_logitech_hidpp_msg_set_data
      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:1568,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1568,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1575,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1578,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1579,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1582,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1583,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1587,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1590,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1592,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1595,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1598,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1600,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1603,1
    - Dst: fu_device_set_update_message
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1604,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1606,1
    - Dst: fu_device_get_update_message
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1606,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1607,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1608,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1609,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1610,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1618,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1621,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1621,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1632,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1634,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1636,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1637,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1638,1
    - Dst: fu_struct_logitech_hidpp_msg_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1639,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1641,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1641,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1647,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1650,1
    - Dst: fu_logitech_hidpp_device_setup
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1651,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1651,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1655,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 78
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1514
    functionDepth: 11
    functionLinenumber: 1514
    functionLinenumberEnd: 1657
    functionName: fu_logitech_hidpp_device_detach
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_struct_logitech_hidpp_msg_set_function_id
    - fu_device_get_parent
    - fwupd_request_add_flag
    - fwupd_request_set_kind
    - g_strdup_printf
    - fu_logitech_hidpp_device_setup
    - fu_device_get_name
    - fu_struct_logitech_hidpp_msg_set_report_id
    - g_debug
    - fwupd_request_set_message
    - g_set_error_literal
    - fu_logitech_hidpp_device_feature_get_idx
    - fu_struct_logitech_hidpp_msg_set_data
    - g_prefix_error_literal
    - fu_struct_logitech_hidpp_msg_new
    - fu_device_has_flag
    - fu_device_get_update_message
    - fu_device_get_proxy
    - fwupd_request_new
    - fu_logitech_hidpp_transfer
    - fu_device_sleep
    - fwupd_request_set_id
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - FU_DEVICE
    - fu_struct_logitech_hidpp_msg_set_device_id
    - FU_UDEV_DEVICE
    - fu_device_emit_request
    - FU_LOGITECH_HIDPP_DEVICE
    - g_steal_pointer
    - fu_device_has_private_flag
    - fu_device_set_update_message
    - g_autoptr
    - fu_device_set_poll_interval
    - g_propagate_prefixed_error
    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:1663,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1670,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1676,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1682,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1689,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1699,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1704,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1707,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 2
    argNames:
    - status_raw
    - error
    argTypes:
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1659
    functionDepth: 0
    functionLinenumber: 1659
    functionLinenumberEnd: 1715
    functionName: fu_logitech_hidpp_device_check_status
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_set_error
    - 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: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1730,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1730,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1731,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1732,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1735,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1735,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1745,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1746,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1747,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1748,1
    - Dst: fu_struct_logitech_hidpp_msg_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1749,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1751,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1751,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1757,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1762,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1763,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1765,1
    - Dst: fu_logitech_hidpp_device_check_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1766,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1770,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1771,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1771,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1776,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1778,1
    - Dst: fu_logitech_hidpp_receive
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1780,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1780,1
    - Dst: fu_struct_logitech_hidpp_msg_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1783,1
    - Dst: fu_logitech_hidpp_msg_is_reply
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1784,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1787,1
    - Dst: fu_logitech_hidpp_device_check_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1788,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1789,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1794,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1798,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 6
    argNames:
    - self
    - idx
    - cmd
    - buf
    - bufsz
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - guint8
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1717
    functionDepth: 7
    functionLinenumber: 1717
    functionLinenumberEnd: 1803
    functionName: fu_logitech_hidpp_device_write_firmware_pkt
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_logitech_hidpp_msg_set_function_id
    - fu_logitech_hidpp_msg_is_reply
    - fu_memread_uint32_safe
    - fu_struct_logitech_hidpp_msg_set_report_id
    - g_debug
    - g_set_error_literal
    - fu_logitech_hidpp_receive
    - fu_struct_logitech_hidpp_msg_set_data
    - g_prefix_error_literal
    - fu_struct_logitech_hidpp_msg_new
    - fu_device_get_proxy
    - g_propagate_error
    - fu_logitech_hidpp_device_check_status
    - fu_logitech_hidpp_transfer
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - FU_DEVICE
    - fu_struct_logitech_hidpp_msg_set_device_id
    - FU_UDEV_DEVICE
    - g_steal_pointer
    - fu_struct_logitech_hidpp_msg_get_data
    - g_error_matches
    - g_autoptr
    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 *buf,\n\t\t\t\t\t    gsize bufsz,\n\t\t\t\t\t    GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1814,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1815,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1818,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1820,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1828,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1831,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1836,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1838,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1839,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1840,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1840,1
    - Dst: fu_chunk_array_length
      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_chunk_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1845,1
    - Dst: fu_logitech_hidpp_device_write_firmware_pkt
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1848,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1851,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1852,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1854,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1856,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1865,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1805
    functionDepth: 8
    functionLinenumber: 1805
    functionLinenumberEnd: 1870
    functionName: fu_logitech_hidpp_device_write_firmware_dfu_img
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u8
    - fu_firmware_get_stream
    - fu_chunk_array_index
    - g_set_error_literal
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - fu_logitech_hidpp_device_feature_get_idx
    - g_prefix_error
    - fu_progress_step_done
    - fu_logitech_hidpp_device_write_firmware_pkt
    - fu_chunk_get_address
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data
    - fu_chunk_array_length
    - fu_progress_set_status
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_write_firmware_dfu_img(FuLogitechHidppDevice
      *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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1879,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1879,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1882,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1883,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1884,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1886,1
    - Dst: fu_logitech_hidpp_device_write_firmware_dfu_img
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1887,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1890,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - self
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1872
    functionDepth: 9
    functionLinenumber: 1872
    functionLinenumberEnd: 1898
    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_steps
    - fu_progress_step_done
    - fu_firmware_get_images
    - fu_logitech_hidpp_device_write_firmware_dfu_img
    - fu_progress_set_status
    - g_autoptr
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_write_firmware_dfu(FuLogitechHidppDevice
      *self,\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: 11
    BranchProfiles: []
    Callsites:
    - Dst: fu_logitech_rdfu_entity_get_blocks
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1908,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1909,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1913,1
    - Dst: fu_logitech_rdfu_entity_get_model_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1913,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1914,1
    - Dst: fu_logitech_rdfu_entity_get_model_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1918,1
    - Dst: fu_logitech_hidpp_device_rdfu_get_dfu_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1924,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1926,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1928,1
    - Dst: fu_logitech_hidpp_device_rdfu_start_dfu
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1934,1
    - Dst: fu_logitech_rdfu_entity_get_magic
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1936,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1941,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1942,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1945,1
    - Dst: fu_logitech_hidpp_device_rdfu_transfer_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1948,1
    - Dst: fu_logitech_hidpp_device_rdfu_get_dfu_status
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1953,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1958,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1967,1
    - Dst: fu_logitech_hidpp_device_rdfu_apply_dfu
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1968,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 5
    argNames:
    - self
    - entity_fw
    - progress
    - flags
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - FuLogitechRdfuEntity*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1900
    functionDepth: 10
    functionLinenumber: 1900
    functionLinenumberEnd: 1973
    functionName: fu_logitech_hidpp_device_write_firmware_rdfu_entity
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_rdfu_entity_get_model_id
    - fu_logitech_hidpp_device_rdfu_start_dfu
    - g_strcmp0
    - fu_logitech_hidpp_device_rdfu_apply_dfu
    - fu_logitech_hidpp_device_rdfu_set_state
    - g_debug
    - g_set_error
    - fu_logitech_rdfu_entity_get_magic
    - g_set_error_literal
    - fu_logitech_hidpp_device_rdfu_get_dfu_status
    - fu_progress_set_percentage_full
    - fu_logitech_hidpp_device_rdfu_transfer_data
    - g_autoptr
    - fu_progress_set_status
    - fu_logitech_rdfu_entity_get_blocks
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_write_firmware_rdfu_entity(FuLogitechHidppDevice
      *self,\n\t\t\t\t\t\t    FuLogitechRdfuEntity *entity_fw,\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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1983,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1985,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1987,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1994,1
    - Dst: fu_logitech_hidpp_device_write_firmware_rdfu_entity
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1997,1
    - Dst: FU_LOGITECH_RDFU_ENTITY
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:1999,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - self
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuLogitechHidppDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1975
    functionDepth: 11
    functionLinenumber: 1975
    functionLinenumberEnd: 2003
    functionName: fu_logitech_hidpp_device_write_firmware_rdfu
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_RDFU_ENTITY
    - fu_firmware_get_image_by_idx
    - g_set_error_literal
    - fu_logitech_hidpp_device_feature_get_idx
    - fu_logitech_hidpp_device_write_firmware_rdfu_entity
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_hidpp_device_write_firmware_rdfu(FuLogitechHidppDevice
      *self,\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_LOGITECH_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2012,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2016,1
    - Dst: fu_logitech_hidpp_device_write_firmware_rdfu
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2018,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2026,1
    - Dst: fu_logitech_hidpp_device_write_firmware_dfu
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2028,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2035,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: 2040
      start: 2005
    functionDepth: 12
    functionLinenumber: 2005
    functionLinenumberEnd: 2040
    functionName: fu_logitech_hidpp_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_HIDPP_DEVICE
    - g_set_error_literal
    - fu_logitech_hidpp_device_write_firmware_rdfu
    - fu_logitech_hidpp_device_feature_get_idx
    - fu_logitech_hidpp_device_write_firmware_dfu
    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:2045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2042
    functionDepth: 11
    functionLinenumber: 2042
    functionLinenumberEnd: 2046
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2051,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2056,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2056,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2060,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2063,1
    - Dst: fu_struct_logitech_hidpp_msg_new
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2063,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2064,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2065,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2068,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2068,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2069,1
    - Dst: fu_logitech_hidpp_device_feature_get_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2074,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2076,1
    - Dst: fu_struct_logitech_hidpp_msg_set_report_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2084,1
    - Dst: fu_struct_logitech_hidpp_msg_set_device_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2086,1
    - Dst: fu_struct_logitech_hidpp_msg_set_sub_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2087,1
    - Dst: fu_struct_logitech_hidpp_msg_set_function_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2088,1
    - Dst: fu_struct_logitech_hidpp_msg_set_data
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2089,1
    - Dst: fu_logitech_hidpp_transfer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2091,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2092,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2100,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2101,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2102,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2103,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2105,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2106,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2114,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2114,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2116,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2116,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2117,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2117,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2120,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2120,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2048
    functionDepth: 7
    functionLinenumber: 2048
    functionLinenumberEnd: 2130
    functionName: fu_logitech_hidpp_device_attach_cached
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_struct_logitech_hidpp_msg_set_function_id
    - fu_struct_logitech_hidpp_msg_set_report_id
    - g_debug
    - g_set_error_literal
    - fu_logitech_hidpp_device_feature_get_idx
    - fu_struct_logitech_hidpp_msg_set_data
    - fu_struct_logitech_hidpp_msg_new
    - fu_device_has_flag
    - fu_device_get_proxy
    - fu_logitech_hidpp_transfer
    - fu_struct_logitech_hidpp_msg_set_sub_id
    - FU_DEVICE
    - fu_struct_logitech_hidpp_msg_set_device_id
    - FU_UDEV_DEVICE
    - fu_device_retry
    - FU_LOGITECH_HIDPP_DEVICE
    - g_steal_pointer
    - fu_device_has_private_flag
    - g_error_matches
    - g_autoptr
    - fu_device_set_poll_interval
    - g_propagate_prefixed_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_attach_cached(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2138,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2139,1
    - Dst: fu_logitech_hidpp_device_set_model_id
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2140,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2148
      start: 2132
    functionDepth: 1
    functionLinenumber: 2132
    functionLinenumberEnd: 2148
    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_LOGITECH_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:2153,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2154,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2155,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2156,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2157,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2150
    functionDepth: 3
    functionLinenumber: 2150
    functionLinenumberEnd: 2159
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2164,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2165,1
    - Dst: g_free
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2166,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2168
      start: 2161
    functionDepth: 0
    functionLinenumber: 2161
    functionLinenumberEnd: 2168
    functionName: fu_logitech_hidpp_device_finalize
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_LOGITECH_HIDPP_DEVICE
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2173,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2175,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2175,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2177,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2170
    functionDepth: 0
    functionLinenumber: 2170
    functionLinenumberEnd: 2180
    functionName: fu_logitech_hidpp_device_constructed
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_HIDPP_DEVICE
    - g_signal_connect
    - G_OBJECT_CLASS
    - FU_DEVICE
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_device_constructed(GObject *object)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2188,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2182
    functionDepth: 2
    functionLinenumber: 2182
    functionLinenumberEnd: 2194
    functionName: fu_logitech_hidpp_device_cleanup
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_parent
    - fu_device_set_poll_interval
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2199,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2204,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2207,1
    - Dst: fwupd_json_object_get_integer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2210,1
    - Dst: fu_logitech_hidpp_device_set_device_idx
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2212,1
    - Dst: fwupd_json_object_get_integer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2215,1
    - Dst: fu_logitech_hidpp_device_set_hidpp_pid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - device
    - json_obj
    - error
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2196
    functionDepth: 2
    functionLinenumber: 2196
    functionLinenumberEnd: 2221
    functionName: fu_logitech_hidpp_device_from_json
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_HIDPP_DEVICE
    - fwupd_json_object_get_integer
    - fu_logitech_hidpp_device_set_hidpp_pid
    - fu_device_set_name
    - fwupd_json_object_get_string
    - fu_logitech_hidpp_device_set_device_idx
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_hidpp_device_from_json(FuDevice *device, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_HIDPP_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2228,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2231,1
    - Dst: g_type_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2233,1
    - Dst: fu_device_get_proxy_gtype
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2233,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2234,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2234,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2235,1
    - Dst: fwupd_json_object_add_integer
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - json_obj
    - flags
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2237
      start: 2223
    functionDepth: 3
    functionLinenumber: 2223
    functionLinenumberEnd: 2237
    functionName: fu_logitech_hidpp_device_add_json
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - g_type_name
    - FU_LOGITECH_HIDPP_DEVICE
    - fwupd_json_object_add_integer
    - fu_device_get_name
    - fu_device_get_proxy_gtype
    - fwupd_json_object_add_string
    linkageType: ''
    returnType: void
    signature: "void fu_logitech_hidpp_device_add_json(FuDevice *device,\n\t\t\t\t
      \ FwupdJsonObject *json_obj,\n\t\t\t\t  FwupdCodecFlags flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2242,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechHidppDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2239
    functionDepth: 0
    functionLinenumber: 2239
    functionLinenumberEnd: 2259
    functionName: fu_logitech_hidpp_device_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_logitech_hidpp_device_class_init(FuLogitechHidppDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2265,1
    - Dst: fu_logitech_hidpp_device_rdfu_set_state
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2266,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2267,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2267,1
    - Dst: fu_device_set_vid
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2268,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2268,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2269,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2269,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2270,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2270,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2271,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2271,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2272,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2272,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2273,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2273,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2274,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2274,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2275,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2275,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2277,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2277,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2278,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2278,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2280,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2280,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2282,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2282,1
    - Dst: fu_device_set_battery_threshold
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2283,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2283,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2284,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2284,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2286,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2288,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2288,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c:2290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechHidppDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2292
      start: 2261
    functionDepth: 7
    functionLinenumber: 2261
    functionLinenumberEnd: 2292
    functionName: fu_logitech_hidpp_device_init
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_retry_set_delay
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_logitech_hidpp_device_rdfu_set_state
    - g_signal_connect
    - fu_device_set_battery_threshold
    - fu_device_set_vid
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_add_request_flag
    - fu_device_set_proxy_gtype
    - G_CALLBACK
    - fu_device_set_version_format
    - g_ptr_array_new_with_free_func
    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:2297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuUdevDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2298
      start: 2294
    functionDepth: 0
    functionLinenumber: 2294
    functionLinenumberEnd: 2298
    functionName: fu_logitech_hidpp_device_new
    functionSourceFile: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    functionUses: 2
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuLogitechHidppDevice
    signature: 'FuLogitechHidppDevice *

      fu_logitech_hidpp_device_new(FuUdevDevice *proxy)'
  - 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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: fu_uefi_pk_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_set_device_gtype_default
    - G_OBJECT_CLASS
    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:36,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.c:38,1
    - Dst: fu_uefi_pk_device_get_key_id
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.c:40,1
    - Dst: FU_UEFI_PK_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: fu_uefi_pk_plugin_device_created
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - fu_uefi_pk_device_get_key_id
    - fu_plugin_add_report_metadata
    - FU_UEFI_PK_DEVICE
    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:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiPkPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    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_strstr_len
    - G_N_ELEMENTS
    - g_info
    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_strdup
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_uefi_pk_device_set_key_id(FuUefiPkDevice *self, const gchar
      *key_id)
  - BBCount: 6
    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_context_add_flag
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:82,1
    - Dst: fu_device_get_context
      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_problem
      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_add_instance_strsafe
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:88,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:88,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:89,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:89,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:90,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:90,1
    - Dst: fu_device_set_name
      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_set_vendor
      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
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:93,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:93,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:93,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:93,1
    - Dst: fu_uefi_pk_device_set_key_id
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:94,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:94,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:94,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:97,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:97,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:98,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - self
    - sig
    - error
    argTypes:
    - FuUefiPkDevice*
    - FuEfiX509Signature*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 65
    functionDepth: 7
    functionLinenumber: 65
    functionLinenumberEnd: 99
    functionName: fu_uefi_pk_device_parse_certificate
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c
    functionUses: 0
    functionsReached:
    - fu_uefi_pk_device_set_key_id
    - fu_context_add_flag
    - fu_device_add_instance_strup
    - fu_device_get_context
    - fu_efi_x509_signature_get_subject
    - fu_firmware_get_id
    - fu_device_build_instance_id
    - fu_efi_x509_signature_get_issuer
    - fu_device_add_problem
    - fu_device_set_vendor
    - fu_uefi_pk_device_check
    - fu_device_set_version_raw
    - FU_FIRMWARE
    - fu_efi_x509_signature_get_subject_name
    - FU_DEVICE
    - fu_device_set_name
    - fu_firmware_get_version_raw
    - fu_device_add_instance_strsafe
    - fu_efi_x509_signature_get_subject_vendor
    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:104,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:105,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:107,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:108,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:111,1
    - Dst: fu_device_read_firmware
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:114,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:119,1
    - Dst: fu_firmware_get_image_by_checksum
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:124,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:129,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:131,1
    - Dst: fu_efi_signature_get_kind
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:132,1
    - Dst: fu_uefi_pk_device_parse_certificate
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:134,1
    - Dst: FU_EFI_X509_SIGNATURE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:134,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 101
    functionDepth: 8
    functionLinenumber: 101
    functionLinenumberEnd: 140
    functionName: fu_uefi_pk_device_probe
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c
    functionUses: 0
    functionsReached:
    - fu_efi_signature_get_kind
    - FU_EFI_X509_SIGNATURE
    - fu_firmware_get_image_by_checksum
    - g_prefix_error_literal
    - fu_firmware_get_images
    - fu_progress_new
    - fu_uefi_pk_device_parse_certificate
    - fu_device_read_firmware
    - FU_UEFI_PK_DEVICE
    - g_autoptr
    - FU_DEVICE_CLASS
    - g_ptr_array_index
    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:145,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:146,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:149,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:150,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:151,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:155,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:156,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:157,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - device
    - attrs
    argTypes:
    - FuDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 163
    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
    - fwupd_security_attr_set_result
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - FU_UEFI_PK_DEVICE
    - fu_security_attrs_append
    - g_autoptr
    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:168,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 169
    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:174,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:174,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:175,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:175,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:176,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:176,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:177,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:177,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:178,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:178,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:179,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:179,1
    - Dst: fu_device_set_required_free
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:180,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiPkDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 181
    functionName: fu_uefi_pk_device_init
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_physical_id
    - fu_device_add_icon
    - fu_device_add_private_flag
    - fu_device_set_required_free
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_set_version_format
    - fu_device_set_firmware_gtype
    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:186,1
    - Dst: g_free
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:187,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    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:194,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiPkDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 201
    functionName: fu_uefi_pk_device_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-pk/fu-uefi-pk-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_uefi_pk_device_class_init(FuUefiPkDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_TOUCH_HID_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:27,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-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: 3
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: fu_focal_touch_hid_device_to_string
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_FOCAL_TOUCH_HID_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_focal_touch_hid_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:34,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:34,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:37,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 48
    functionName: fu_focal_touch_hid_device_probe
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_DEVICE
    - g_strcmp0
    - fu_udev_device_get_subsystem
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_touch_hid_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:56,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:64,1
    - Dst: fu_xor8
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:65,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:66,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuFocalTouchHidDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 71
    functionName: fu_focal_touch_hid_device_send
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_xor8
    - g_set_error
    - FU_HIDRAW_DEVICE
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_touch_hid_device_send(FuFocalTouchHidDevice *self,
      GByteArray *buf, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:79,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:79,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:81,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:82,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:83,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:83,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:91,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:93,1
    - Dst: fu_xor8_safe
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:95,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:99,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFocalTouchHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 73
    functionDepth: 5
    functionLinenumber: 73
    functionLinenumberEnd: 110
    functionName: fu_focal_touch_hid_device_recv_raw
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_xor8_safe
    - g_set_error
    - fu_hidraw_device_get_feature
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - g_byte_array_new
    - fu_memread_uint8_safe
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_focal_touch_hid_device_recv_raw(FuFocalTouchHidDevice *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_TOUCH_HID_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:115,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:117,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:118,1
    - Dst: fu_focal_touch_hid_device_recv_raw
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:120,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:122,1
    - Dst: fu_struct_focal_touch_read_register_res_parse
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:125,1
    - Dst: fu_struct_focal_touch_read_register_res_get_value
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 112
    functionDepth: 6
    functionLinenumber: 112
    functionLinenumberEnd: 132
    functionName: fu_focal_touch_hid_device_read_reg_cb
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_focal_touch_read_register_res_get_value
    - fu_struct_focal_touch_read_register_res_parse
    - g_prefix_error_literal
    - fu_focal_touch_hid_device_recv_raw
    - g_autoptr
    - FU_FOCAL_TOUCH_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_touch_hid_device_read_reg_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:140,1
    - Dst: fu_struct_focal_touch_read_register_req_new
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:141,1
    - Dst: fu_struct_focal_touch_read_register_req_set_address
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:144,1
    - Dst: fu_focal_touch_hid_device_send
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:145,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:149,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - reg_address
    - val
    - error
    argTypes:
    - FuFocalTouchHidDevice*
    - FuFocalTouchRegister
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 134
    functionDepth: 6
    functionLinenumber: 134
    functionLinenumberEnd: 155
    functionName: fu_focal_touch_hid_device_read_reg
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_focal_touch_read_register_req_new
    - fu_device_retry_full
    - fu_focal_touch_hid_device_send
    - fu_struct_focal_touch_read_register_req_set_address
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_touch_hid_device_read_reg(FuFocalTouchHidDevice
      *self,\n\t\t\t\t   FuFocalTouchRegister reg_address,\n\t\t\t\t   guint8 *val,
      /* out */\n\t\t\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:162,1
    - Dst: fu_struct_focal_touch_bin_length_req_new
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:163,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:165,1
    - Dst: fu_struct_focal_touch_bin_length_req_set_size
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:167,1
    - Dst: fu_focal_touch_hid_device_send
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:168,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:169,1
    - Dst: fu_focal_touch_hid_device_recv_raw
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:172,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:174,1
    - Dst: fu_struct_focal_touch_bin_length_res_parse
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - self
    - firmware_size
    - error
    argTypes:
    - FuFocalTouchHidDevice*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 157
    functionDepth: 6
    functionLinenumber: 157
    functionLinenumberEnd: 183
    functionName: fu_focal_touch_hid_device_write_bin_length
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_focal_touch_bin_length_res_parse
    - fu_struct_focal_touch_bin_length_req_new
    - g_prefix_error_literal
    - fu_struct_focal_touch_bin_length_req_set_size
    - fu_focal_touch_hid_device_send
    - fu_focal_touch_hid_device_recv_raw
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_touch_hid_device_write_bin_length(FuFocalTouchHidDevice
      *self,\n\t\t\t\t\t   gsize firmware_size,\n\t\t\t\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:188,1
    - Dst: fu_struct_focal_touch_enter_upgrade_mode_req_new
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:189,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:190,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:191,1
    - Dst: fu_focal_touch_hid_device_send
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:193,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:194,1
    - Dst: fu_focal_touch_hid_device_recv_raw
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:197,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:199,1
    - Dst: fu_struct_focal_touch_enter_upgrade_mode_res_parse
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFocalTouchHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 185
    functionDepth: 6
    functionLinenumber: 185
    functionLinenumberEnd: 209
    functionName: fu_focal_touch_hid_device_enter_upgrade_mode
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - fu_focal_touch_hid_device_send
    - fu_struct_focal_touch_enter_upgrade_mode_res_parse
    - fu_focal_touch_hid_device_recv_raw
    - g_autoptr
    - fu_struct_focal_touch_enter_upgrade_mode_req_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_touch_hid_device_enter_upgrade_mode(FuFocalTouchHidDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:216,1
    - Dst: fu_struct_focal_touch_check_current_state_req_new
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:217,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:218,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:219,1
    - Dst: fu_focal_touch_hid_device_send
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:221,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:222,1
    - Dst: fu_focal_touch_hid_device_recv_raw
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:225,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:227,1
    - Dst: fu_struct_focal_touch_check_current_state_res_parse
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:231,1
    - Dst: fu_struct_focal_touch_check_current_state_res_get_mode
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - self
    - val
    - error
    argTypes:
    - FuFocalTouchHidDevice*
    - FuFocalTouchUcMode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 211
    functionDepth: 6
    functionLinenumber: 211
    functionLinenumberEnd: 238
    functionName: fu_focal_touch_hid_device_check_current_state
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_focal_touch_check_current_state_res_get_mode
    - g_prefix_error_literal
    - fu_focal_touch_hid_device_send
    - fu_focal_touch_hid_device_recv_raw
    - fu_struct_focal_touch_check_current_state_res_parse
    - g_autoptr
    - fu_struct_focal_touch_check_current_state_req_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_touch_hid_device_check_current_state(FuFocalTouchHidDevice
      *self,\n\t\t\t\t\t      FuFocalTouchUcMode *val,\n\t\t\t\t\t      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_TOUCH_HID_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:245,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:246,1
    - Dst: fu_struct_focal_touch_ready_for_upgrade_req_new
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:247,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:248,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:249,1
    - Dst: fu_focal_touch_hid_device_send
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:251,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:252,1
    - Dst: fu_focal_touch_hid_device_recv_raw
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:255,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:257,1
    - Dst: fu_struct_focal_touch_ready_for_upgrade_res_parse
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:260,1
    - Dst: fu_struct_focal_touch_ready_for_upgrade_res_get_status
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:265,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:266,1
    - Dst: fu_struct_focal_touch_ready_for_upgrade_res_get_status
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 240
    functionDepth: 6
    functionLinenumber: 240
    functionLinenumberEnd: 275
    functionName: fu_focal_touch_hid_device_wait_for_upgrade_ready_cb
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error_literal
    - fu_focal_touch_hid_device_send
    - fu_struct_focal_touch_ready_for_upgrade_res_get_status
    - fu_focal_touch_hid_device_recv_raw
    - fu_struct_focal_touch_ready_for_upgrade_res_parse
    - g_autoptr
    - fu_struct_focal_touch_ready_for_upgrade_req_new
    - FU_FOCAL_TOUCH_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_touch_hid_device_wait_for_upgrade_ready_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/focal-touch/fu-focal-touch-hid-device.c:283,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - retries
    - error
    argTypes:
    - FuFocalTouchHidDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 289
    functionName: fu_focal_touch_hid_device_wait_for_upgrade_ready
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_touch_hid_device_wait_for_upgrade_ready(FuFocalTouchHidDevice
      *self,\n\t\t\t\t\t\t guint retries,\n\t\t\t\t\t\t GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_TOUCH_HID_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:294,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:296,1
    - Dst: fu_struct_focal_touch_usb_read_upgrade_id_req_new
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:297,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:298,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:299,1
    - Dst: fu_focal_touch_hid_device_send
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:301,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:302,1
    - Dst: fu_focal_touch_hid_device_recv_raw
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:305,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:307,1
    - Dst: fu_struct_focal_touch_usb_read_upgrade_id_res_parse
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:311,1
    - Dst: fu_struct_focal_touch_usb_read_upgrade_id_res_get_upgrade_id
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 291
    functionDepth: 6
    functionLinenumber: 291
    functionLinenumberEnd: 318
    functionName: fu_focal_touch_hid_device_read_update_id_cb
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_focal_touch_usb_read_upgrade_id_res_parse
    - g_prefix_error_literal
    - fu_struct_focal_touch_usb_read_upgrade_id_res_get_upgrade_id
    - fu_focal_touch_hid_device_send
    - fu_struct_focal_touch_usb_read_upgrade_id_req_new
    - fu_focal_touch_hid_device_recv_raw
    - g_autoptr
    - FU_FOCAL_TOUCH_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_touch_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/focal-touch/fu-focal-touch-hid-device.c:326,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - upgrade_id
    - error
    argTypes:
    - FuFocalTouchHidDevice*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 332
    functionName: fu_focal_touch_hid_device_read_update_id
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_touch_hid_device_read_update_id(FuFocalTouchHidDevice
      *self,\n\t\t\t\t\t guint16 *upgrade_id,\n\t\t\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:338,1
    - Dst: fu_struct_focal_touch_usb_erase_flash_req_new
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:339,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:340,1
    - Dst: fu_focal_touch_hid_device_send
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:342,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:343,1
    - Dst: fu_focal_touch_hid_device_recv_raw
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:346,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFocalTouchHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 335
    functionDepth: 6
    functionLinenumber: 335
    functionLinenumberEnd: 354
    functionName: fu_focal_touch_hid_device_erase_flash
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - fu_focal_touch_hid_device_send
    - fu_focal_touch_hid_device_recv_raw
    - g_autoptr
    - fu_struct_focal_touch_usb_erase_flash_req_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_touch_hid_device_erase_flash(FuFocalTouchHidDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_TOUCH_HID_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:359,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:360,1
    - Dst: fu_focal_touch_hid_device_recv_raw
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:362,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 356
    functionDepth: 6
    functionLinenumber: 356
    functionLinenumberEnd: 370
    functionName: fu_focal_touch_hid_device_send_data_cb
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_focal_touch_hid_device_recv_raw
    - g_autoptr
    - FU_FOCAL_TOUCH_HID_DEVICE
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_touch_hid_device_send_data_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:380,1
    - Dst: fu_struct_focal_touch_send_data_req_new
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:380,1
    - Dst: fu_struct_focal_touch_send_data_req_set_packet_type
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:382,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:383,1
    - Dst: fu_struct_focal_touch_send_data_req_set_len
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:384,1
    - Dst: fu_focal_touch_hid_device_send
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:385,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:387,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:387,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:388,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - self
    - packet_type
    - buf
    - bufsz
    - error
    argTypes:
    - FuFocalTouchHidDevice*
    - FuFocalTouchPacketType
    - guint8*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 373
    functionDepth: 6
    functionLinenumber: 373
    functionLinenumberEnd: 394
    functionName: fu_focal_touch_hid_device_send_data
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_focal_touch_send_data_req_new
    - fu_device_sleep
    - fu_struct_focal_touch_send_data_req_set_packet_type
    - fu_focal_touch_hid_device_send
    - FU_DEVICE
    - fu_device_retry_full
    - fu_struct_focal_touch_send_data_req_set_len
    - g_byte_array_append
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_touch_hid_device_send_data(FuFocalTouchHidDevice
      *self,\n\t\t\t\t    FuFocalTouchPacketType packet_type,\n\t\t\t\t    const guint8
      *buf,\n\t\t\t\t    guint8 bufsz,\n\t\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:402,1
    - Dst: fu_struct_focal_touch_upgrade_checksum_req_new
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:403,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:404,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:405,1
    - Dst: fu_focal_touch_hid_device_send
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:407,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:408,1
    - Dst: fu_focal_touch_hid_device_recv_raw
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:411,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:413,1
    - Dst: fu_struct_focal_touch_upgrade_checksum_res_parse
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:418,1
    - Dst: fu_struct_focal_touch_upgrade_checksum_res_get_value
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - self
    - val
    - error
    argTypes:
    - FuFocalTouchHidDevice*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 397
    functionDepth: 6
    functionLinenumber: 397
    functionLinenumberEnd: 425
    functionName: fu_focal_touch_hid_device_checksum_upgrade
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_focal_touch_upgrade_checksum_res_get_value
    - fu_struct_focal_touch_upgrade_checksum_res_parse
    - g_prefix_error_literal
    - fu_focal_touch_hid_device_send
    - fu_struct_focal_touch_upgrade_checksum_req_new
    - fu_focal_touch_hid_device_recv_raw
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_touch_hid_device_checksum_upgrade(FuFocalTouchHidDevice
      *self,\n\t\t\t\t\t   guint32 *val,\n\t\t\t\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_TOUCH_HID_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:430,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:434,1
    - Dst: fu_focal_touch_hid_device_read_reg
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:437,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:441,1
    - Dst: fu_focal_touch_hid_device_read_reg
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:444,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:448,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:451,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:451,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 427
    functionDepth: 7
    functionLinenumber: 427
    functionLinenumberEnd: 455
    functionName: fu_focal_touch_hid_device_setup
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_raw
    - fu_device_set_firmware_size
    - g_prefix_error_literal
    - fu_focal_touch_hid_device_read_reg
    - fu_memread_uint16
    - FU_FOCAL_TOUCH_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_touch_hid_device_setup(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:464,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:465,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:465,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:466,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:468,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:471,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:476,1
    - Dst: fu_focal_touch_hid_device_send_data
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:479,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:481,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:482,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:484,1
    - Dst: fu_focal_touch_hid_device_wait_for_upgrade_ready
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:487,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:488,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:491,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuFocalTouchHidDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 457
    functionDepth: 7
    functionLinenumber: 457
    functionLinenumberEnd: 496
    functionName: fu_focal_touch_hid_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error
    - fu_focal_touch_hid_device_send_data
    - fu_progress_step_done
    - fu_chunk_get_data
    - fu_focal_touch_hid_device_wait_for_upgrade_ready
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_touch_hid_device_write_chunks(FuFocalTouchHidDevice
      *self,\n\t\t\t\t       FuChunkArray *chunks,\n\t\t\t\t       FuProgress *progress,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_TOUCH_HID_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:505,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:510,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:511,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:525,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:534,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:535,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:536,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:537,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:538,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:539,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:542,1
    - Dst: fu_focal_touch_hid_device_wait_for_upgrade_ready
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:547,1
    - Dst: fu_focal_touch_hid_device_read_update_id
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:549,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:552,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:561,1
    - Dst: fu_focal_touch_hid_device_write_bin_length
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:562,1
    - Dst: fu_focal_touch_hid_device_erase_flash
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:567,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:569,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:569,1
    - Dst: fu_focal_touch_hid_device_wait_for_upgrade_ready
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:570,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:572,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:575,1
    - Dst: fu_focal_touch_hid_device_write_chunks
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:582,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:584,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:587,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:590,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:590,1
    - Dst: fu_focal_touch_hid_device_wait_for_upgrade_ready
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:591,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:593,1
    - Dst: fu_focal_touch_hid_device_checksum_upgrade
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:596,1
    - Dst: fu_focal_touch_firmware_get_checksum
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:598,1
    - Dst: FU_FOCAL_TOUCH_FIRMWARE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:598,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:599,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:599,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:600,1
    - Dst: fu_focal_touch_firmware_get_checksum
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:606,1
    - Dst: FU_FOCAL_TOUCH_FIRMWARE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:606,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:609,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 498
    functionDepth: 8
    functionLinenumber: 498
    functionLinenumberEnd: 613
    functionName: fu_focal_touch_hid_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_focal_touch_hid_device_checksum_upgrade
    - fu_progress_add_flag
    - fu_focal_touch_hid_device_erase_flash
    - fu_firmware_get_size
    - fu_focal_touch_hid_device_wait_for_upgrade_ready
    - FU_FOCAL_TOUCH_FIRMWARE
    - fu_focal_touch_hid_device_write_chunks
    - fu_focal_touch_hid_device_write_bin_length
    - fu_chunk_array_new_from_stream
    - fu_focal_touch_hid_device_read_update_id
    - fu_progress_add_step
    - fu_device_sleep
    - fu_progress_step_done
    - FU_DEVICE
    - fu_progress_get_child
    - FU_FOCAL_TOUCH_HID_DEVICE
    - fu_progress_set_id
    - g_set_error
    - fu_firmware_get_stream
    - g_autoptr
    - fu_focal_touch_firmware_get_checksum
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_touch_hid_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_FOCAL_TOUCH_HID_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:619,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:623,1
    - Dst: fu_focal_touch_hid_device_read_reg
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:624,1
    - Dst: fu_focal_touch_hid_device_read_reg
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:629,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:634,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:636,1
    - Dst: fu_focal_touch_hid_device_setup
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 616
    functionDepth: 8
    functionLinenumber: 616
    functionLinenumberEnd: 645
    functionName: fu_focal_touch_hid_device_reload
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_sleep
    - fu_focal_touch_hid_device_read_reg
    - fu_focal_touch_hid_device_setup
    - fu_memread_uint16
    - FU_FOCAL_TOUCH_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_touch_hid_device_reload(FuDevice *device, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_TOUCH_HID_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:650,1
    - Dst: fu_focal_touch_hid_device_enter_upgrade_mode
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:653,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:654,1
    - Dst: fu_focal_touch_hid_device_check_current_state
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:659,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:662,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 647
    functionDepth: 7
    functionLinenumber: 647
    functionLinenumberEnd: 673
    functionName: fu_focal_touch_hid_device_detach_cb
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_focal_touch_hid_device_check_current_state
    - g_prefix_error_literal
    - fu_focal_touch_hid_device_enter_upgrade_mode
    - FU_FOCAL_TOUCH_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_touch_hid_device_detach_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_TOUCH_HID_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:678,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:679,1
    - Dst: fu_struct_focal_touch_enter_upgrade_mode_req_new
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:680,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:681,1
    - Dst: fu_focal_touch_hid_device_send
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:684,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:685,1
    - Dst: fu_focal_touch_hid_device_recv_raw
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:688,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:690,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:693,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:696,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 675
    functionDepth: 6
    functionLinenumber: 675
    functionLinenumberEnd: 707
    functionName: fu_focal_touch_hid_device_detach
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - g_prefix_error_literal
    - fu_focal_touch_hid_device_send
    - fu_device_retry_full
    - fu_focal_touch_hid_device_recv_raw
    - g_autoptr
    - FU_FOCAL_TOUCH_HID_DEVICE
    - fu_struct_focal_touch_enter_upgrade_mode_req_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_touch_hid_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_TOUCH_HID_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:712,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:713,1
    - Dst: fu_struct_focal_touch_exit_upgrade_mode_req_new
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:714,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:715,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:716,1
    - Dst: fu_focal_touch_hid_device_send
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:718,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:719,1
    - Dst: fu_focal_touch_hid_device_recv_raw
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:722,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:724,1
    - Dst: fu_struct_focal_touch_exit_upgrade_mode_res_parse
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:727,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:732,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 709
    functionDepth: 6
    functionLinenumber: 709
    functionLinenumberEnd: 734
    functionName: fu_focal_touch_hid_device_attach
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_focal_touch_exit_upgrade_mode_req_new
    - fu_device_sleep
    - g_prefix_error_literal
    - fu_struct_focal_touch_exit_upgrade_mode_res_parse
    - fu_focal_touch_hid_device_send
    - fu_focal_touch_hid_device_recv_raw
    - g_autoptr
    - FU_FOCAL_TOUCH_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_touch_hid_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:739,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:740,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:741,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:742,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:743,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:744,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 736
    functionDepth: 3
    functionLinenumber: 736
    functionLinenumberEnd: 746
    functionName: fu_focal_touch_hid_device_set_progress
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_focal_touch_hid_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:751,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 752
    functionName: fu_focal_touch_hid_device_convert_version
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_focal_touch_hid_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_TOUCH_HID_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:760,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:763,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:765,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 777
    functionName: fu_focal_touch_hid_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_strcmp0
    - FU_FOCAL_TOUCH_HID_DEVICE
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_touch_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_add_flag
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:781,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:781,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:782,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:782,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:783,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:783,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:784,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:784,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:785,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:785,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:786,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:786,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:787,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:787,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:788,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:788,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:789,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:789,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:790,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFocalTouchHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 778
    functionDepth: 6
    functionLinenumber: 778
    functionLinenumberEnd: 791
    functionName: fu_focal_touch_hid_device_init
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_summary
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    linkageType: ''
    returnType: void
    signature: void fu_focal_touch_hid_device_init(FuFocalTouchHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFocalTouchHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 807
    functionName: fu_focal_touch_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_focal_touch_hid_device_class_init(FuFocalTouchHidDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFocalTouchPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_focal_touch_plugin_init
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_focal_touch_plugin_init(FuFocalTouchPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-plugin.c:27,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-plugin.c:28,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-plugin.c:31,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: fu_focal_touch_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_focal_touch_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-plugin.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFocalTouchPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: fu_focal_touch_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_focal_touch_plugin_class_init(FuFocalTouchPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.c:21,1
    - Dst: FU_IS_FOCAL_TOUCH_FIRMWARE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFocalTouchFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: fu_focal_touch_firmware_get_checksum
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FOCAL_TOUCH_FIRMWARE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_focal_touch_firmware_get_checksum(FuFocalTouchFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_TOUCH_FIRMWARE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.c:28,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: fu_focal_touch_firmware_export
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_FOCAL_TOUCH_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_focal_touch_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.c:41,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: 46
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 46
    functionName: fu_focal_touch_firmware_compute_checksum_cb
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_touch_firmware_compute_checksum_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: FU_FOCAL_TOUCH_FIRMWARE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.c:54,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 66
    functionName: fu_focal_touch_firmware_parse
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_chunkify
    - FU_FOCAL_TOUCH_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_touch_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_set_size_max
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.c:71,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFocalTouchFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: fu_focal_touch_firmware_init
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_focal_touch_firmware_init(FuFocalTouchFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFocalTouchFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: fu_focal_touch_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_focal_touch_firmware_class_init(FuFocalTouchFirmwareClass *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_xmlb_builder_insert_kv
    - FU_ACPI_PHAT
    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
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:77,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:77,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:81,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 5
    argNames:
    - self
    - stream
    - offset
    - flags
    - error
    argTypes:
    - FuAcpiPhat*
    - GInputStream*
    - gsize*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 82
    functionName: fu_acpi_phat_record_parse
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u8
    - fu_firmware_set_version_raw
    - fu_acpi_phat_health_record_new
    - fu_input_stream_read_u16
    - fu_acpi_phat_version_record_new
    - g_set_error
    - fu_firmware_parse_stream
    - fu_firmware_add_image
    - FU_FIRMWARE
    - fu_firmware_set_offset
    - fu_size_checked_inc
    - g_autoptr
    - fu_partial_input_stream_new
    - fu_firmware_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_acpi_phat_record_parse(FuAcpiPhat *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_free
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:87,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - oem_id
    argTypes:
    - FuAcpiPhat*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: fu_acpi_phat_set_oem_id
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_free
    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:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    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:103,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:113,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:115,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:118,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:130,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:133,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:146,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:147,1
    - Dst: fu_input_stream_compute_sum8
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:150,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:153,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:163,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:171,1
    - Dst: fu_acpi_phat_set_oem_id
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:172,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:175,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:183,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:184,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:185,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:187,1
    - Dst: fu_acpi_phat_record_parse
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:191,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 197
    functionName: fu_acpi_phat_parse
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u8
    - fu_input_stream_read_safe
    - fu_firmware_set_version_raw
    - fu_strsafe
    - fu_firmware_set_id
    - fu_input_stream_compute_sum8
    - g_set_error
    - fu_input_stream_size
    - fu_acpi_phat_set_oem_id
    - fu_acpi_phat_record_parse
    - FU_ACPI_PHAT
    - g_autoptr
    - fu_input_stream_read_u32
    - 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:202,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:203,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:209,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:209,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: fu_firmware_get_images
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:211,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:215,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:216,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:216,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:219,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:223,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:224,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:225,1
    - Dst: fu_firmware_get_version_raw
      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: strlen
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:228,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:229,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:239,1
    - Dst: strlen
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:241,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:242,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:252,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:253,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:253,1
    - Dst: g_byte_array_append
      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: fu_sum8
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:259,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:262,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 263
    functionName: fu_acpi_phat_write
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_firmware_write
    - fu_byte_array_append_bytes
    - fu_firmware_get_version_raw
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - fu_firmware_get_images
    - fu_memcpy_safe
    - fu_sum8
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - strlen
    - g_byte_array_append
    - FU_ACPI_PHAT
    - g_autoptr
    - g_ptr_array_index
    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:268,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:272,1
    - Dst: fu_acpi_phat_set_oem_id
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 278
    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_set_oem_id
    - FU_ACPI_PHAT
    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:283,1
    - Dst: xb_builder_node_get_element
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:283,1
    - 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: xb_builder_node_add_flag
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - bn
    - user_data
    argTypes:
    - XbBuilderNode*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 288
    functionName: fu_acpi_phat_to_report_string_cb
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - xb_builder_node_get_element
    - g_strcmp0
    - 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:293,1
    - Dst: xb_builder_node_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:293,1
    - Dst: fu_firmware_export
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:294,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:294,1
    - Dst: xb_builder_node_traverse
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:295,1
    - Dst: xb_builder_node_export
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiPhat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 305
    functionName: fu_acpi_phat_to_report_string
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - fu_firmware_export
    - xb_builder_node_export
    - FU_FIRMWARE
    - xb_builder_node_new
    - g_autoptr
    - xb_builder_node_traverse
    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:310,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:310,1
    - Dst: fu_firmware_set_size_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: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:313,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:313,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:314,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiPhat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 315
    functionName: fu_acpi_phat_init
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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
    - G_OBJECT_CLASS
    - FU_ACPI_PHAT
    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:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_acpi_phat_new(void)'
  - BBCount: 6
    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
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:50,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:52,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:52,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 56
    functionName: fu_acpi_phat_version_record_parse
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c
    functionUses: 0
    functionsReached:
    - fu_struct_acpi_phat_version_record_get_record_count
    - fu_struct_acpi_phat_version_record_parse_stream
    - fu_firmware_add_image
    - fu_firmware_parse_stream
    - fu_firmware_set_offset
    - fu_acpi_phat_version_element_new
    - fu_firmware_get_size
    - fu_size_checked_inc
    - 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:61,1
    - Dst: g_byte_array_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_struct_acpi_phat_version_record_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:62,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:63,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:63,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:67,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:68,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:68,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:71,1
    - Dst: fu_struct_acpi_phat_version_record_set_rcdlen
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:75,1
    - Dst: fu_struct_acpi_phat_version_record_set_version
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:76,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:76,1
    - Dst: fu_struct_acpi_phat_version_record_set_record_count
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:77,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:80,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 82
    functionName: fu_acpi_phat_version_record_write
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c
    functionUses: 0
    functionsReached:
    - fu_struct_acpi_phat_version_record_set_rcdlen
    - fu_firmware_write
    - fu_byte_array_append_bytes
    - fu_firmware_get_version_raw
    - fu_struct_acpi_phat_version_record_set_record_count
    - g_steal_pointer
    - fu_firmware_get_images
    - g_byte_array_new
    - fu_struct_acpi_phat_version_record_set_version
    - fu_struct_acpi_phat_version_record_new
    - g_byte_array_append
    - g_autoptr
    - g_ptr_array_index
    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:87,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:87,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:88,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:88,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:89,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:89,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:90,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiPhatVersionRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: fu_acpi_phat_version_record_init
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiPhatVersionRecordClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    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:104,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.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_acpi_phat_version_record_new
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-record.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_acpi_phat_version_record_new(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:21,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:24,1
    - Dst: fu_acpi_phat_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:26,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:28,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:31,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:33,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:34,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:40,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:40,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:43,1
    - Dst: fu_acpi_phat_to_report_string
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:45,1
    - Dst: FU_ACPI_PHAT
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:45,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 18
    functionDepth: 5
    functionLinenumber: 18
    functionLinenumberEnd: 48
    functionName: fu_acpi_phat_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c
    functionUses: 0
    functionsReached:
    - fu_bytes_get_contents
    - fu_acpi_phat_to_report_string
    - fu_context_build_filename
    - g_set_error_literal
    - g_steal_pointer
    - FU_ACPI_PHAT
    - fu_plugin_get_context
    - fu_plugin_add_report_metadata
    - fu_firmware_parse_bytes
    - g_error_matches
    - fu_acpi_phat_new
    - g_propagate_error
    - g_autoptr
    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: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    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:58,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:59,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-plugin.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 63
    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
    - G_OBJECT_CLASS
    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:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiPhatPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    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_debug
      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: 5
    functionLinenumber: 11
    functionLinenumberEnd: 38
    functionName: fu_acpi_phat_parse_func
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_bytes_get_contents
    - fu_acpi_phat_to_report_string
    - g_debug
    - FU_ACPI_PHAT
    - fu_acpi_phat_new
    - g_assert_nonnull
    - g_assert_no_error
    - g_file_test
    - fu_firmware_parse_bytes
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    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_test_add_func
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:45,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/acpi-phat/fu-self-test.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: main
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add_func
    - 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_ACPI_PHAT_VERSION_ELEMENT
    - fu_xmlb_builder_insert_kv
    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_firmware_set_version_raw
    - fu_struct_acpi_phat_version_element_get_component_id
    - fu_struct_acpi_phat_version_element_get_producer_id
    - fu_struct_acpi_phat_version_element_get_version_value
    - FU_ACPI_PHAT_VERSION_ELEMENT
    - fwupd_guid_to_string
    - fu_struct_acpi_phat_version_element_parse_stream
    - g_autoptr
    - fu_firmware_set_size
    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_firmware_get_version_raw
    - FU_ACPI_PHAT_VERSION_ELEMENT
    - fwupd_guid_from_string
    - fu_struct_acpi_phat_version_element_set_component_id
    - g_steal_pointer
    - fu_struct_acpi_phat_version_element_set_version_value
    - fu_struct_acpi_phat_version_element_new
    - fu_struct_acpi_phat_version_element_set_producer_id
    - g_autoptr
    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_strdup
    - g_free
    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_strdup
    - g_free
    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
    - xb_node_query_text
    - fu_acpi_phat_version_element_set_guid
    - fu_acpi_phat_version_element_set_producer_id
    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_set_size_max
      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
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:115,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiPhatVersionElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: fu_acpi_phat_version_element_init
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:121,1
    - Dst: g_free
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:122,1
    - Dst: g_free
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:123,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: fu_acpi_phat_version_element_finalize
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c
    functionUses: 0
    functionsReached:
    - FU_ACPI_PHAT_VERSION_ELEMENT
    - g_free
    - G_OBJECT_CLASS
    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:130,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiPhatVersionElementClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 137
    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:142,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.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_acpi_phat_version_element_new
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-version-element.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    - FU_ACPI_PHAT_HEALTH_RECORD
    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: 10
    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:78,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:88,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:97,1
    - Dst: fu_utf16_to_utf8_bytes
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 107
    functionName: fu_acpi_phat_health_record_parse
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_bytes
    - fu_struct_acpi_phat_health_record_get_device_signature
    - FU_ACPI_PHAT_HEALTH_RECORD
    - g_set_error
    - fu_input_stream_size
    - fu_struct_acpi_phat_health_record_parse_stream
    - fu_utf16_to_utf8_bytes
    - fu_struct_acpi_phat_health_record_get_flags
    - fwupd_guid_to_string
    - fu_struct_acpi_phat_health_record_get_device_specific_data
    - fu_struct_acpi_phat_health_record_get_rcdlen
    - g_autoptr
    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:112,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:113,1
    - Dst: fu_struct_acpi_phat_health_record_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:113,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:117,1
    - Dst: fu_utf8_to_utf16_byte_array
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:117,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:123,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:129,1
    - Dst: fu_struct_acpi_phat_health_record_set_device_signature
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:131,1
    - Dst: fu_struct_acpi_phat_health_record_set_rcdlen
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:133,1
    - Dst: fu_struct_acpi_phat_health_record_set_version
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:134,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:134,1
    - Dst: fu_struct_acpi_phat_health_record_set_flags
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:135,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 139
    functionName: fu_acpi_phat_health_record_write
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_raw
    - FU_ACPI_PHAT_HEALTH_RECORD
    - fwupd_guid_from_string
    - g_steal_pointer
    - fu_struct_acpi_phat_health_record_set_device_signature
    - fu_struct_acpi_phat_health_record_new
    - fu_struct_acpi_phat_health_record_set_version
    - g_byte_array_append
    - fu_utf8_to_utf16_byte_array
    - g_autoptr
    - fu_struct_acpi_phat_health_record_set_rcdlen
    - fu_struct_acpi_phat_health_record_set_flags
    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: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
    - guid
    argTypes:
    - FuAcpiPhatHealthRecord*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: fu_acpi_phat_health_record_set_guid
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_free
    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:151,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - device_path
    argTypes:
    - FuAcpiPhatHealthRecord*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 153
    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_strdup
    - g_free
    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:158,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:163,1
    - Dst: fu_acpi_phat_health_record_set_device_path
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:165,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:166,1
    - Dst: fu_acpi_phat_health_record_set_guid
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:168,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:169,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 184
    functionName: fu_acpi_phat_health_record_build
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c
    functionUses: 0
    functionsReached:
    - fu_acpi_phat_health_record_set_guid
    - xb_node_query_text
    - FU_ACPI_PHAT_HEALTH_RECORD
    - g_set_error
    - xb_node_query_text_as_uint
    - fu_acpi_phat_health_record_set_device_path
    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:189,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:189,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:190,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:190,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:191,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiPhatHealthRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: fu_acpi_phat_health_record_init
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:197,1
    - Dst: g_free
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:198,1
    - Dst: g_free
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:199,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 201
    functionName: fu_acpi_phat_health_record_finalize
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_ACPI_PHAT_HEALTH_RECORD
    - 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:206,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiPhatHealthRecordClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 213
    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:218,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: fu_acpi_phat_health_record_new
    functionSourceFile: /src/fwupd/plugins/acpi-phat/fu-acpi-phat-health-record.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_acpi_phat_health_record_new(void)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:35,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:35,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:41,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:42,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:46,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:53,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:53,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:59,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:60,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:64,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuPciBcrPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 73
    functionName: fu_pci_bcr_plugin_is_intel_spi
    functionSourceFile: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_set_error_literal
    - g_prefix_error
    - fu_udev_device_read_sysfs
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pci_bcr_plugin_is_intel_spi(FuPciBcrPlugin *self, FuDevice
      *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_BCR_PLUGIN
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:78,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:79,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:80,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - plugin
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 82
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_BCR_PLUGIN
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:87,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:88,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:88,1
    - Dst: fu_device_get_metadata_integer
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:89,1
    - Dst: g_info
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - plugin
    - dev
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 95
    functionName: fu_pci_bcr_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_device_get_metadata_integer
    - g_info
    - FU_PCI_BCR_PLUGIN
    - fu_device_get_plugin
    linkageType: ''
    returnType: void
    signature: void fu_pci_bcr_plugin_device_registered(FuPlugin *plugin, FuDevice
      *dev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_BCR_PLUGIN
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:101,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:104,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:105,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:106,1
    - Dst: fwupd_security_attr_set_result
      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:116,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:117,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 123
    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_set_result
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_pci_bcr_plugin_add_security_attr_bioswe(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_BCR_PLUGIN
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:128,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:129,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:132,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:133,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:134,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:138,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:144,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 150
    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_set_result
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_pci_bcr_plugin_add_security_attr_ble(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_BCR_PLUGIN
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:155,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:156,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:159,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:160,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:161,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:165,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:171,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 177
    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_set_result
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - 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:185,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:187,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:188,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:192,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:200,1
    - Dst: fu_pci_bcr_plugin_is_intel_spi
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:202,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:203,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:212,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:212,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:212,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:213,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:213,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:214,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:214,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:215,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:220,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:220,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:221,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 179
    functionDepth: 5
    functionLinenumber: 179
    functionLinenumberEnd: 228
    functionName: fu_pci_bcr_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_sysfs_path
    - FU_PCI_BCR_PLUGIN
    - g_set_error_literal
    - fu_device_locker_new
    - FU_IS_PCI_DEVICE
    - fu_udev_device_pread
    - g_prefix_error_literal
    - fu_udev_device_set_device_file
    - fu_pci_bcr_plugin_is_intel_spi
    - g_autoptr
    - g_build_filename
    - FU_UDEV_DEVICE
    - fu_udev_device_add_open_flag
    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:234,1
    - Dst: fu_pci_bcr_plugin_add_security_attr_bioswe
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:238,1
    - Dst: fu_pci_bcr_plugin_add_security_attr_ble
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:239,1
    - Dst: fu_pci_bcr_plugin_add_security_attr_smm_bwp
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 230
    functionDepth: 4
    functionLinenumber: 230
    functionLinenumberEnd: 241
    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_smm_bwp
    - fu_pci_bcr_plugin_add_security_attr_ble
    - fu_cpu_get_vendor
    - fu_pci_bcr_plugin_add_security_attr_bioswe
    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: 248
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 248
    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:253,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:254,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:255,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:256,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 260
    functionName: fu_pci_bcr_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    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:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPciBcrPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 271
    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:40,1
    - Dst: fu_rts54hub_vendor_cmd_to_string
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:41,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:42,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:43,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:44,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:45,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-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: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: fu_rts54hub_device_to_string
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - FU_RTS54HUB_DEVICE
    - fwupd_codec_string_append
    - fwupd_codec_string_append_bool
    - fwupd_codec_string_append_int
    - fu_rts54hub_vendor_cmd_to_string
    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:55,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:57,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:58,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 73
    functionName: fu_rts54hub_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_strcmp0
    - FU_RTS54HUB_DEVICE
    - g_set_error_literal
    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:87,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:87,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:100,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: 104
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 104
    functionName: fu_rts54hub_device_i2c_config
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_prefix_error
    - fu_usb_device_control_transfer
    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:113,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:116,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:116,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:129,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: 133
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 133
    functionName: fu_rts54hub_device_i2c_write
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - fu_memdup_safe
    - FU_USB_DEVICE
    - g_prefix_error_literal
    - fu_usb_device_control_transfer
    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:142,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:142,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:155,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: 159
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 159
    functionName: fu_rts54hub_device_i2c_read
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_prefix_error_literal
    - fu_usb_device_control_transfer
    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:164,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:164,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuRts54hubDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 161
    functionDepth: 4
    functionLinenumber: 161
    functionLinenumberEnd: 181
    functionName: fu_rts54hub_device_highclockmode
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_prefix_error_literal
    - fu_usb_device_control_transfer
    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:186,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:186,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRts54hubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 183
    functionDepth: 4
    functionLinenumber: 183
    functionLinenumberEnd: 203
    functionName: fu_rts54hub_device_reset_flash
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_prefix_error_literal
    - fu_usb_device_control_transfer
    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:216,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:220,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:220,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:233,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:237,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: 245
      start: 205
    functionDepth: 4
    functionLinenumber: 205
    functionLinenumberEnd: 245
    functionName: fu_rts54hub_device_write_flash
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_prefix_error_literal
    - fu_memdup_safe
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    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:256,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:256,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:267,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:271,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: 276
      start: 248
    functionDepth: 4
    functionLinenumber: 248
    functionLinenumberEnd: 276
    functionName: fu_rts54hub_device_read_flash
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_set_error
    - g_prefix_error_literal
    - fu_usb_device_control_transfer
    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:282,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:282,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRts54hubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 279
    functionDepth: 4
    functionLinenumber: 279
    functionLinenumberEnd: 299
    functionName: fu_rts54hub_device_flash_authentication
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_prefix_error_literal
    - fu_usb_device_control_transfer
    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:304,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:304,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - erase_type
    - error
    argTypes:
    - FuRts54hubDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 301
    functionDepth: 4
    functionLinenumber: 301
    functionLinenumberEnd: 321
    functionName: fu_rts54hub_device_erase_flash
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_prefix_error_literal
    - fu_usb_device_control_transfer
    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:330,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:333,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:333,1
    - Dst: fu_rts54hub_vendor_cmd_to_string
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:346,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
    - vendor_cmd
    - error
    argTypes:
    - FuRts54hubDevice*
    - FuRts54hubVendorCmd
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 323
    functionDepth: 4
    functionLinenumber: 323
    functionLinenumberEnd: 352
    functionName: fu_rts54hub_device_vendor_cmd
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_prefix_error
    - FU_USB_DEVICE
    - fu_rts54hub_vendor_cmd_to_string
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_device_vendor_cmd(FuRts54hubDevice *self,\n\t\t\t
      \     FuRts54hubVendorCmd vendor_cmd,\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:360,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c:360,1
    - Dst: g_prefix_error_literal
      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: 4
    functionLinenumber: 354
    functionLinenumberEnd: 391
    functionName: fu_rts54hub_device_ensure_status
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_set_error
    - g_prefix_error_literal
    - fu_usb_device_control_transfer
    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_literal
      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_uninhibit
    - fu_rts54hub_device_vendor_cmd
    - FU_RTS54HUB_DEVICE
    - g_prefix_error_literal
    - fu_rts54hub_device_ensure_status
    - fu_device_inhibit
    - FU_DEVICE_CLASS
    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_literal
      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: 5
    functionLinenumber: 431
    functionLinenumberEnd: 446
    functionName: fu_rts54hub_device_close
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - fu_rts54hub_device_vendor_cmd
    - FU_DEVICE_CLASS
    - FU_RTS54HUB_DEVICE
    - g_prefix_error_literal
    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_literal
      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_literal
      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_literal
      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_device_add_flag
    - FU_RTS54HUB_DEVICE
    - fu_rts54hub_device_write_flash
    - fu_chunk_get_data_sz
    - fu_rts54hub_device_flash_authentication
    - fu_rts54hub_device_vendor_cmd
    - g_prefix_error_literal
    - fu_chunk_array_new_from_stream
    - fu_progress_set_percentage_full
    - fu_rts54hub_device_erase_flash
    - fu_progress_add_step
    - fu_progress_step_done
    - fu_chunk_get_data
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_chunk_get_address
    - fu_progress_set_id
    - fu_firmware_get_stream
    - fu_rts54hub_device_highclockmode
    - fu_chunk_array_index
    - g_autoptr
    - fu_rts54hub_device_reset_flash
    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: 4
    functionLinenumber: 546
    functionLinenumberEnd: 568
    functionName: fu_rts54hub_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u8
    - fu_firmware_parse_stream
    - g_set_error_literal
    - g_steal_pointer
    - fu_firmware_new
    - g_autoptr
    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:
    - device
    - 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 *device, 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
    - fu_device_add_protocol
    - fu_device_add_flag
    - 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:34,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:34,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:40,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:45,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:45,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:46,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:46,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:52,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:56,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:57,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRts54hubRtd21xxForeground*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 59
    functionName: fu_rts54hub_rtd21xx_foreground_ensure_version_unlocked
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    functionUses: 0
    functionsReached:
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_rts54hub_rtd21xx_device_i2c_read
    - fu_device_set_version
    - fu_device_sleep
    - g_prefix_error_literal
    - FU_DEVICE
    - g_strdup_printf
    - fu_rts54hub_rtd21xx_device_i2c_write
    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:65,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:65,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:71,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:75,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRts54hubRtd21xxForeground*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 77
    functionName: fu_rts54hub_rtd21xx_foreground_detach_raw
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    functionUses: 0
    functionsReached:
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_device_sleep
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_rts54hub_rtd21xx_device_i2c_write
    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:82,1
    - Dst: fu_rts54hub_rtd21xx_foreground_detach_raw
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:85,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status_raw
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:87,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:87,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 102
    functionName: fu_rts54hub_rtd21xx_foreground_detach_cb
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    functionUses: 0
    functionsReached:
    - FU_RTS54HUB_RTD21XX_DEVICE
    - g_set_error
    - fu_rts54hub_rtd21xx_foreground_detach_raw
    - fu_rts54hub_rtd21xx_device_read_status_raw
    - FU_RTS54HUB_RTD21XX_FOREGROUND
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_foreground_detach_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:108,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:111,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:114,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 118
    functionName: fu_rts54hub_rtd21xx_foreground_detach
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    functionUses: 0
    functionsReached:
    - fu_device_locker_new
    - fu_device_retry
    - g_autoptr
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_foreground_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_FOREGROUND
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:124,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:126,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:129,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:132,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:137,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:137,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:139,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:139,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:145,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:153,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:156,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:156,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 120
    functionDepth: 5
    functionLinenumber: 120
    functionLinenumberEnd: 168
    functionName: fu_rts54hub_rtd21xx_foreground_attach
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    functionUses: 0
    functionsReached:
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_rts54hub_rtd21xx_device_i2c_read
    - fu_rts54hub_rtd21xx_device_read_status
    - fu_device_locker_new
    - fu_device_sleep_full
    - g_prefix_error_literal
    - fu_device_get_proxy
    - fu_rts54hub_rtd21xx_device_i2c_write
    - g_autoptr
    - FU_RTS54HUB_RTD21XX_FOREGROUND
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_foreground_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_FOREGROUND
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:174,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:176,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:179,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:182,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:186,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:186,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 199
    functionName: fu_rts54hub_rtd21xx_foreground_exit_cb
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    functionUses: 0
    functionsReached:
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_device_locker_new
    - g_prefix_error_literal
    - fu_device_get_proxy
    - fu_rts54hub_rtd21xx_device_i2c_write
    - g_autoptr
    - FU_RTS54HUB_RTD21XX_FOREGROUND
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_foreground_exit_cb(FuDevice *device, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_FOREGROUND
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:204,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:205,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:209,1
    - Dst: fu_rts54hub_rtd21xx_foreground_ensure_version_unlocked
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 220
    functionName: fu_rts54hub_rtd21xx_foreground_setup
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_rts54hub_rtd21xx_foreground_ensure_version_unlocked
    - FU_RTS54HUB_RTD21XX_FOREGROUND
    - fu_device_locker_new_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_foreground_setup(FuDevice *device, GError
      **error)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_FOREGROUND
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:229,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: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:236,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:239,1
    - Dst: fu_progress_add_flag
      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_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:243,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:246,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:246,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:251,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:258,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:258,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:264,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:267,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:267,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:272,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:272,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:278,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:283,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:283,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:284,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:284,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:290,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:294,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:303,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:306,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:313,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:316,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:316,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:322,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:325,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:325,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:330,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:331,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:331,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:337,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:340,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:343,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:350,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:351,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:354,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:357,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:357,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:361,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:361,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:364,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:365,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:367,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:369,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:374,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:374,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:376,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:378,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:381,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:381,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:384,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:384,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:390,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c:393,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: 397
      start: 222
    functionDepth: 4
    functionLinenumber: 222
    functionLinenumberEnd: 397
    functionName: fu_rts54hub_rtd21xx_foreground_write_firmware
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - fu_chunk_get_data_sz
    - fu_progress_add_flag
    - fu_device_locker_new
    - fu_memread_uint32
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_rts54hub_rtd21xx_device_i2c_read
    - g_prefix_error_literal
    - fu_chunk_array_new_from_stream
    - fu_progress_set_percentage_full
    - FU_RTS54HUB_RTD21XX_FOREGROUND
    - fu_input_stream_read_safe
    - fu_progress_add_step
    - fu_rts54hub_rtd21xx_device_read_status
    - fu_device_sleep
    - fu_progress_step_done
    - FU_DEVICE
    - fu_chunk_get_data
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_chunk_get_address
    - fu_firmware_get_stream
    - g_set_error
    - fu_chunk_array_index
    - g_prefix_error
    - fu_rts54hub_rtd21xx_device_i2c_write
    - g_autoptr
    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: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    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:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRts54hubRtd21xxForegroundClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    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:37,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:37,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:43,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:46,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:46,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:52,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:57,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:58,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRts54hubRtd21xxBackground*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 61
    functionName: fu_rts54hub_rtd21xx_background_ensure_version_unlocked
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    functionUses: 0
    functionsReached:
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_rts54hub_rtd21xx_device_i2c_read
    - fu_device_set_version
    - g_prefix_error_literal
    - FU_DEVICE
    - g_strdup_printf
    - fu_rts54hub_rtd21xx_device_i2c_write
    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:67,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:67,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRts54hubRtd21xxBackground*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 77
    functionName: fu_rts54hub_rtd21xx_background_detach_raw
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    functionUses: 0
    functionsReached:
    - fu_rts54hub_rtd21xx_device_i2c_write
    - FU_RTS54HUB_RTD21XX_DEVICE
    - g_prefix_error_literal
    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:82,1
    - Dst: fu_rts54hub_rtd21xx_background_detach_raw
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:85,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status_raw
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:87,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:87,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 102
    functionName: fu_rts54hub_rtd21xx_background_detach_cb
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    functionUses: 0
    functionsReached:
    - FU_RTS54HUB_RTD21XX_BACKGROUND
    - FU_RTS54HUB_RTD21XX_DEVICE
    - g_set_error
    - fu_rts54hub_rtd21xx_device_read_status_raw
    - fu_rts54hub_rtd21xx_background_detach_raw
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_background_detach_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: fu_rts54hub_rtd21xx_background_detach
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_background_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:118,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:122,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:128,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:131,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:134,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 115
    functionDepth: 5
    functionLinenumber: 115
    functionLinenumberEnd: 141
    functionName: fu_rts54hub_rtd21xx_background_attach
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    functionUses: 0
    functionsReached:
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_rts54hub_rtd21xx_device_i2c_read
    - fu_device_sleep_full
    - g_prefix_error_literal
    - fu_rts54hub_rtd21xx_device_i2c_write
    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:146,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:147,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:150,1
    - Dst: fu_rts54hub_rtd21xx_background_ensure_version_unlocked
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 161
    functionName: fu_rts54hub_rtd21xx_background_setup
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    functionUses: 0
    functionsReached:
    - FU_RTS54HUB_RTD21XX_BACKGROUND
    - fu_rts54hub_rtd21xx_background_ensure_version_unlocked
    - g_autoptr
    - fu_device_locker_new_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_background_setup(FuDevice *device, GError
      **error)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_BACKGROUND
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:170,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:175,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:176,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:177,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:180,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:181,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:182,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:183,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:184,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:187,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:192,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:198,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:198,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:204,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:209,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:210,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:210,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:216,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:220,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:229,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:232,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:239,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:242,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:242,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:248,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:251,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:251,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:256,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:257,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:257,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:263,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:266,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:269,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:276,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:277,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:280,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:283,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      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:287,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:287,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:290,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:291,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:293,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:295,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:300,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:300,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:302,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:304,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:307,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:307,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      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: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:316,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:321,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:321,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:323,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: 327
      start: 163
    functionDepth: 4
    functionLinenumber: 163
    functionLinenumberEnd: 327
    functionName: fu_rts54hub_rtd21xx_background_write_firmware
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - fu_chunk_get_data_sz
    - fu_progress_add_flag
    - fu_device_locker_new
    - fu_memread_uint32
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_rts54hub_rtd21xx_device_i2c_read
    - g_prefix_error_literal
    - fu_chunk_array_new_from_stream
    - fu_progress_set_percentage_full
    - FU_RTS54HUB_RTD21XX_BACKGROUND
    - fu_input_stream_read_safe
    - fu_progress_add_step
    - fu_device_sleep
    - fu_rts54hub_rtd21xx_device_read_status
    - fu_progress_step_done
    - fu_chunk_get_data
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_chunk_get_address
    - fu_firmware_get_stream
    - g_set_error
    - fu_chunk_array_index
    - g_prefix_error
    - fu_rts54hub_rtd21xx_device_i2c_write
    - g_autoptr
    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:332,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRts54hubRtd21xxBackground*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 6
    functionLinenumber: 329
    functionLinenumberEnd: 333
    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:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRts54hubRtd21xxBackgroundClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 343
    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: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    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:29,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:30,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:31,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:32,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:33,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:34,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:35,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:36,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:37,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:38,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:39,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 43
    functionName: fu_rts54hub_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_gtype
    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:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRts54hubPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: fu_rts54hub_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-plugin.c
    functionUses: 0
    functionsReached:
    - 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: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 1442
    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:29,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:30,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:31,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:32,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 34
    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
    - FU_RTS54HUB_RTD21XX_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_rtd21xx_device_to_string(FuDevice *module, guint idt,
      GString *str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:42,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:43,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:47,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:48,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:55,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:56,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:68,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:69,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 81
    functionName: fu_rts54hub_rtd21xx_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_strtoull
    - g_set_error_literal
    - GET_PRIVATE
    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:92,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:94,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:94,1
    - Dst: fu_rts54hub_device_vendor_cmd
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:97,1
    - Dst: FU_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:97,1
    - Dst: fu_rts54hub_device_i2c_config
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:103,1
    - Dst: FU_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:103,1
    - Dst: fu_rts54hub_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:111,1
    - Dst: FU_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:111,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:116,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:119,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:119,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: 121
      start: 83
    functionDepth: 5
    functionLinenumber: 83
    functionLinenumberEnd: 121
    functionName: fu_rts54hub_rtd21xx_device_i2c_write
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 9
    functionsReached:
    - fu_rts54hub_device_i2c_config
    - FU_RTS54HUB_DEVICE
    - fu_rts54hub_device_vendor_cmd
    - fu_rts54hub_device_i2c_write
    - fu_device_sleep
    - g_prefix_error
    - FU_DEVICE
    - fu_device_get_proxy
    - GET_PRIVATE
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:131,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:131,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:134,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:141,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:142,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:143,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:144,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:145,1
    - Dst: fu_xor8
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:145,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:147,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    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: 158
      start: 123
    functionDepth: 6
    functionLinenumber: 123
    functionLinenumberEnd: 158
    functionName: fu_rts54hub_rtd21xx_device_ddcci_write
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_xor8
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - g_byte_array_append
    - fu_rts54hub_rtd21xx_device_i2c_write
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_rtd21xx_device_ddcci_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:169,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:171,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:171,1
    - Dst: fu_rts54hub_device_vendor_cmd
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:174,1
    - Dst: FU_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:174,1
    - Dst: fu_rts54hub_device_i2c_config
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:179,1
    - Dst: FU_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:179,1
    - Dst: fu_rts54hub_device_i2c_read
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:187,1
    - Dst: FU_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:187,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:192,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: 196
      start: 160
    functionDepth: 5
    functionLinenumber: 160
    functionLinenumberEnd: 196
    functionName: fu_rts54hub_rtd21xx_device_i2c_read
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 6
    functionsReached:
    - fu_rts54hub_device_i2c_config
    - FU_RTS54HUB_DEVICE
    - fu_rts54hub_device_vendor_cmd
    - g_prefix_error_literal
    - fu_rts54hub_device_i2c_read
    - FU_DEVICE
    - fu_device_get_proxy
    - 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: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:211,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:218,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:219,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:224,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:233,1
    - Dst: fu_xor8_safe
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:241,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:244,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:252,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 6
    argNames:
    - self
    - target_addr
    - sub_addr
    - data
    - datasz
    - error
    argTypes:
    - FuRts54hubRtd21xxDevice*
    - guint8
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 198
    functionDepth: 6
    functionLinenumber: 198
    functionLinenumberEnd: 260
    functionName: fu_rts54hub_rtd21xx_device_ddcci_read
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_xor8_safe
    - fu_rts54hub_rtd21xx_device_i2c_read
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_memcpy_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_rtd21xx_device_ddcci_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:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuRts54hubRtd21xxDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 262
    functionDepth: 6
    functionLinenumber: 262
    functionLinenumberEnd: 278
    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:283,1
    - Dst: fu_rts54hub_rtd21xx_device_read_status_raw
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:285,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 280
    functionDepth: 7
    functionLinenumber: 280
    functionLinenumberEnd: 292
    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:299,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuRts54hubRtd21xxDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 294
    functionDepth: 4
    functionLinenumber: 294
    functionLinenumberEnd: 304
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:309,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:309,1
    - Dst: FU_IS_RTS54HUB_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:310,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:311,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:311,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRts54hubRtd21xxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 306
    functionDepth: 3
    functionLinenumber: 306
    functionLinenumberEnd: 312
    functionName: fu_rts54hub_rtd21xx_device_sync_parent_proxy
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_get_parent
    - fu_device_set_proxy
    - FU_IS_RTS54HUB_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_rtd21xx_device_sync_parent_proxy(FuRts54hubRtd21xxDevice
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:317,1
    - Dst: fu_rts54hub_rtd21xx_device_sync_parent_proxy
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 4
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: fu_rts54hub_rtd21xx_device_parent_notify_cb
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_rts54hub_rtd21xx_device_sync_parent_proxy
    - FU_RTS54HUB_RTD21XX_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_rtd21xx_device_parent_notify_cb(FuDevice *device,
      GParamSpec *pspec, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:324,1
    - Dst: fu_rts54hub_rtd21xx_device_sync_parent_proxy
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:326,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:327,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:327,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:329,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 321
    functionDepth: 4
    functionLinenumber: 321
    functionLinenumberEnd: 332
    functionName: fu_rts54hub_rtd21xx_device_constructed
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - FU_RTS54HUB_RTD21XX_DEVICE
    - g_signal_connect
    - G_OBJECT_CLASS
    - FU_DEVICE
    - G_CALLBACK
    - fu_rts54hub_rtd21xx_device_sync_parent_proxy
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_rtd21xx_device_constructed(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:337,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:337,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:338,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:338,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:339,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:339,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:340,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:340,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:341,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:341,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:342,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:342,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:343,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:343,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:344,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:344,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:345,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:345,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:346,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:346,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:347,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:347,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:348,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRts54hubRtd21xxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 334
    functionDepth: 6
    functionLinenumber: 334
    functionLinenumberEnd: 349
    functionName: fu_rts54hub_rtd21xx_device_init
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_logical_id
    - fu_device_retry_set_delay
    - fu_device_add_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:354,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRts54hubRtd21xxDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 359
    functionName: fu_rts54hub_rtd21xx_device_class_init
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_rtd21xx_device_class_init(FuRts54hubRtd21xxDeviceClass
      *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_rts54hub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:43,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:43,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:49,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:54,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:54,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:56,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:56,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRts54hubRtd21xxMergeinfo*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 68
    functionName: fu_rts54hub_rtd21xx_mergeinfo_ddcci_mode
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
    functionUses: 0
    functionsReached:
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_rts54hub_rtd21xx_device_i2c_read
    - fu_device_sleep
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_rts54hub_rtd21xx_device_i2c_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_mergeinfo_ddcci_mode(FuRts54hubRtd21xxMergeinfo
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:74,1
    - Dst: fu_struct_rts54_hub_ddc_pkt_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:74,1
    - Dst: fu_struct_rts54_hub_ddc_pkt_set_second_opcode
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:77,1
    - Dst: fu_rts54hub_rtd21xx_device_ddcci_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:81,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:81,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:87,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:92,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:92,1
    - Dst: fu_rts54hub_rtd21xx_device_ddcci_read
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:94,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:94,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:100,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRts54hubRtd21xxMergeinfo*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 70
    functionDepth: 7
    functionLinenumber: 70
    functionLinenumberEnd: 114
    functionName: fu_rts54hub_rtd21xx_mergeinfo_check_ddcci
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
    functionUses: 0
    functionsReached:
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_device_sleep
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_rts54hub_rtd21xx_device_ddcci_read
    - fu_struct_rts54_hub_ddc_pkt_new
    - FU_DEVICE
    - fu_struct_rts54_hub_ddc_pkt_set_second_opcode
    - g_autoptr
    - fu_rts54hub_rtd21xx_device_ddcci_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_mergeinfo_check_ddcci(FuRts54hubRtd21xxMergeinfo
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:121,1
    - Dst: fu_struct_rts54_hub_ddc_pkt_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:121,1
    - Dst: fu_struct_rts54_hub_ddc_pkt_set_second_opcode
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:124,1
    - Dst: fu_rts54hub_rtd21xx_device_ddcci_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:128,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:128,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:134,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:139,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:139,1
    - Dst: fu_rts54hub_rtd21xx_device_ddcci_read
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:141,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:141,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:147,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:151,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:157,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:160,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRts54hubRtd21xxMergeinfo*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 116
    functionDepth: 7
    functionLinenumber: 116
    functionLinenumberEnd: 164
    functionName: fu_rts54hub_rtd21xx_mergeinfo_ensure_version
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_device_set_version_raw
    - fu_device_sleep
    - g_prefix_error_literal
    - fu_rts54hub_rtd21xx_device_ddcci_read
    - fu_struct_rts54_hub_ddc_pkt_new
    - FU_DEVICE
    - fu_struct_rts54_hub_ddc_pkt_set_second_opcode
    - g_autoptr
    - fu_rts54hub_rtd21xx_device_ddcci_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_mergeinfo_ensure_version(FuRts54hubRtd21xxMergeinfo
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:173,1
    - Dst: fu_struct_rts54_hub_ddc_pkt_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:173,1
    - Dst: fu_struct_rts54_hub_ddc_pkt_set_second_opcode
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:176,1
    - Dst: fu_rts54hub_rtd21xx_device_ddcci_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:180,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:180,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:186,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:191,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:191,1
    - Dst: fu_rts54hub_rtd21xx_device_ddcci_read
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:193,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:193,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:199,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:203,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - self
    - buf_version
    - buf_version_sz
    - error
    argTypes:
    - FuRts54hubRtd21xxMergeinfo*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 166
    functionDepth: 7
    functionLinenumber: 166
    functionLinenumberEnd: 217
    functionName: fu_rts54hub_rtd21xx_mergeinfo_read_version
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
    functionUses: 0
    functionsReached:
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_device_sleep
    - g_prefix_error_literal
    - fu_rts54hub_rtd21xx_device_ddcci_read
    - fu_memcpy_safe
    - fu_struct_rts54_hub_ddc_pkt_new
    - FU_DEVICE
    - fu_struct_rts54_hub_ddc_pkt_set_second_opcode
    - g_autoptr
    - fu_rts54hub_rtd21xx_device_ddcci_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_rtd21xx_mergeinfo_read_version(FuRts54hubRtd21xxMergeinfo
      *self,\n\t\t\t\t\t   guint8 *buf_version,\n\t\t\t\t\t   gsize buf_version_sz,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:225,1
    - Dst: fu_struct_rts54_hub_ddc_write_merge_info_pkt_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:226,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:229,1
    - Dst: fu_struct_rts54_hub_ddc_write_merge_info_pkt_set_second_opcode
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:237,1
    - Dst: fu_struct_rts54_hub_ddc_write_merge_info_pkt_set_major_version
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:240,1
    - Dst: fu_struct_rts54_hub_ddc_write_merge_info_pkt_set_minor_version
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:241,1
    - Dst: fu_struct_rts54_hub_ddc_write_merge_info_pkt_set_patch_version
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:242,1
    - Dst: fu_struct_rts54_hub_ddc_write_merge_info_pkt_set_build_version
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:243,1
    - Dst: fu_rts54hub_rtd21xx_device_ddcci_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:245,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:245,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - self
    - buf_version
    - buf_version_sz
    - error
    argTypes:
    - FuRts54hubRtd21xxMergeinfo*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 219
    functionDepth: 7
    functionLinenumber: 219
    functionLinenumberEnd: 257
    functionName: fu_rts54hub_rtd21xx_mergeinfo_write_version
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
    functionUses: 0
    functionsReached:
    - fu_struct_rts54_hub_ddc_write_merge_info_pkt_set_minor_version
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_struct_rts54_hub_ddc_write_merge_info_pkt_set_major_version
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_struct_rts54_hub_ddc_write_merge_info_pkt_set_build_version
    - fu_struct_rts54_hub_ddc_write_merge_info_pkt_set_patch_version
    - fu_struct_rts54_hub_ddc_write_merge_info_pkt_set_second_opcode
    - g_autoptr
    - fu_rts54hub_rtd21xx_device_ddcci_write
    - fu_struct_rts54_hub_ddc_write_merge_info_pkt_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_rtd21xx_mergeinfo_write_version(FuRts54hubRtd21xxMergeinfo
      *self,\n\t\t\t\t\t    const guint8 *buf_version,\n\t\t\t\t\t    gsize buf_version_sz,\n\t\t\t\t\t
      \   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:263,1
    - Dst: fu_struct_rts54_hub_ddc_pkt_new
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:263,1
    - Dst: fu_struct_rts54_hub_ddc_pkt_set_second_opcode
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:265,1
    - Dst: fu_rts54hub_rtd21xx_device_ddcci_write
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:269,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:269,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:275,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:280,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:280,1
    - Dst: fu_rts54hub_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:282,1
    - Dst: FU_RTS54HUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:282,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRts54hubRtd21xxMergeinfo*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 259
    functionDepth: 7
    functionLinenumber: 259
    functionLinenumberEnd: 294
    functionName: fu_rts54hub_rtd21xx_mergeinfo_restore_state
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
    functionUses: 0
    functionsReached:
    - FU_RTS54HUB_RTD21XX_DEVICE
    - fu_rts54hub_rtd21xx_device_i2c_read
    - fu_device_sleep
    - g_prefix_error_literal
    - fu_struct_rts54_hub_ddc_pkt_new
    - FU_DEVICE
    - fu_struct_rts54_hub_ddc_pkt_set_second_opcode
    - g_autoptr
    - fu_rts54hub_rtd21xx_device_ddcci_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_mergeinfo_restore_state(FuRts54hubRtd21xxMergeinfo
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_MERGEINFO
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:299,1
    - Dst: fu_rts54hub_rtd21xx_mergeinfo_ddcci_mode
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:302,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:303,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:306,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:306,1
    - Dst: fu_rts54hub_rtd21xx_mergeinfo_check_ddcci
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:307,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:308,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:311,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 296
    functionDepth: 8
    functionLinenumber: 296
    functionLinenumberEnd: 315
    functionName: fu_rts54hub_rtd21xx_mergeinfo_detach_cb
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
    functionUses: 0
    functionsReached:
    - FU_RTS54HUB_RTD21XX_MERGEINFO
    - fu_device_sleep
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_rts54hub_rtd21xx_mergeinfo_check_ddcci
    - fu_rts54hub_rtd21xx_mergeinfo_ddcci_mode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_mergeinfo_detach_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 326
    functionName: fu_rts54hub_rtd21xx_mergeinfo_detach
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_mergeinfo_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_MERGEINFO
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:331,1
    - Dst: fu_rts54hub_rtd21xx_mergeinfo_restore_state
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:333,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:334,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 328
    functionDepth: 8
    functionLinenumber: 328
    functionLinenumberEnd: 343
    functionName: fu_rts54hub_rtd21xx_mergeinfo_attach
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
    functionUses: 0
    functionsReached:
    - FU_RTS54HUB_RTD21XX_MERGEINFO
    - fu_device_sleep_full
    - fu_rts54hub_rtd21xx_mergeinfo_restore_state
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_mergeinfo_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_MERGEINFO
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:348,1
    - Dst: fu_rts54hub_rtd21xx_mergeinfo_restore_state
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:350,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 345
    functionDepth: 8
    functionLinenumber: 345
    functionLinenumberEnd: 357
    functionName: fu_rts54hub_rtd21xx_mergeinfo_exit_cb
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
    functionUses: 0
    functionsReached:
    - FU_RTS54HUB_RTD21XX_MERGEINFO
    - fu_rts54hub_rtd21xx_mergeinfo_restore_state
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_mergeinfo_exit_cb(FuDevice *device, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_MERGEINFO
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:362,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:363,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:367,1
    - Dst: fu_rts54hub_rtd21xx_mergeinfo_ensure_version
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 359
    functionDepth: 8
    functionLinenumber: 359
    functionLinenumberEnd: 378
    functionName: fu_rts54hub_rtd21xx_mergeinfo_setup
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
    functionUses: 0
    functionsReached:
    - FU_RTS54HUB_RTD21XX_MERGEINFO
    - fu_rts54hub_rtd21xx_mergeinfo_ensure_version
    - g_autoptr
    - fu_device_locker_new_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_mergeinfo_setup(FuDevice *device, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_rts54hub_rtd21xx_mergeinfo_setup
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 9
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: fu_rts54hub_rtd21xx_mergeinfo_reload
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
    functionUses: 0
    functionsReached:
    - fu_rts54hub_rtd21xx_mergeinfo_setup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rts54hub_rtd21xx_mergeinfo_reload(FuDevice *device, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_RTS54HUB_RTD21XX_MERGEINFO
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:393,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:399,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:400,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:401,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:402,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:405,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:407,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:415,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:415,1
    - Dst: sscanf
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:416,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:422,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:429,1
    - Dst: fu_rts54hub_rtd21xx_mergeinfo_write_version
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:437,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:441,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:446,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:446,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:447,1
    - Dst: fu_rts54hub_rtd21xx_mergeinfo_read_version
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:449,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:450,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:453,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:461,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:464,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: 468
      start: 386
    functionDepth: 8
    functionLinenumber: 386
    functionLinenumberEnd: 468
    functionName: fu_rts54hub_rtd21xx_mergeinfo_write_firmware
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
    functionUses: 0
    functionsReached:
    - fu_memcmp_safe
    - fu_progress_add_step
    - FU_RTS54HUB_RTD21XX_MERGEINFO
    - fu_device_get_version_format
    - fu_progress_add_flag
    - g_set_error_literal
    - fu_rts54hub_rtd21xx_mergeinfo_write_version
    - g_prefix_error_literal
    - fu_device_sleep
    - fu_progress_step_done
    - FU_DEVICE
    - fu_rts54hub_rtd21xx_mergeinfo_read_version
    - sscanf
    - fu_firmware_get_version
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_rts54hub_rtd21xx_mergeinfo_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/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:473,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: fu_rts54hub_rtd21xx_mergeinfo_convert_version
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_rts54hub_rtd21xx_mergeinfo_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:479,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:479,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:480,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRts54hubRtd21xxMergeinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 476
    functionDepth: 6
    functionLinenumber: 476
    functionLinenumberEnd: 481
    functionName: fu_rts54hub_rtd21xx_mergeinfo_init
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version_format
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_rtd21xx_mergeinfo_init(FuRts54hubRtd21xxMergeinfo
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRts54hubRtd21xxMergeinfoClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 493
    functionName: fu_rts54hub_rtd21xx_mergeinfo_class_init
    functionSourceFile: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_rts54hub_rtd21xx_mergeinfo_class_init(FuRts54hubRtd21xxMergeinfoClass
      *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:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 6
    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
    - fu_hid_device_set_report
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_hid_set_report_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - outbuffer
    - error
    argTypes:
    - FuDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 4
    functionLinenumber: 90
    functionLinenumberEnd: 98
    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 *device, 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:104,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 6
    functionLinenumber: 100
    functionLinenumberEnd: 111
    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 *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - inbuffer
    - error
    argTypes:
    - FuDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 4
    functionLinenumber: 114
    functionLinenumberEnd: 122
    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 *device, guint8 *inbuffer,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GUINT16_TO_LE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:136,1
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:141,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:142,1
    - Dst: fu_dell_dock_hid_get_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:145,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:146,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:150,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:151,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 125
    functionDepth: 5
    functionLinenumber: 125
    functionLinenumberEnd: 154
    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
    - GUINT16_TO_LE
    - g_prefix_error_literal
    - g_strdup_printf
    - fu_dell_dock_hid_get_report
    - fu_device_set_version_format
    - fu_dell_dock_hid_set_report
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_hid_get_hub_version(FuDevice *device, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:172,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - enable
    - error
    argTypes:
    - FuDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 157
    functionDepth: 5
    functionLinenumber: 157
    functionLinenumberEnd: 178
    functionName: fu_dell_dock_hid_raise_mcu_clock
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_dell_dock_hid_set_report
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_hid_raise_mcu_clock(FuDevice *device, 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:196,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - idx
    - error
    argTypes:
    - FuDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 181
    functionDepth: 5
    functionLinenumber: 181
    functionLinenumberEnd: 202
    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_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_hid_erase_bank(FuDevice *device, guint8 idx,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GUINT32_TO_LE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:215,1
    - Dst: GUINT16_TO_LE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:216,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:221,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:223,1
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:224,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - device
    - dwAddr
    - input
    - write_size
    - error
    argTypes:
    - FuDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 205
    functionDepth: 5
    functionLinenumber: 205
    functionLinenumberEnd: 233
    functionName: fu_dell_dock_hid_write_flash
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GUINT32_TO_LE
    - GUINT16_TO_LE
    - g_prefix_error
    - memcpy
    - fu_dell_dock_hid_set_report
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_hid_write_flash(FuDevice *device,\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:246,1
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:251,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:252,1
    - Dst: fu_dell_dock_hid_get_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:255,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - result
    - error
    argTypes:
    - FuDevice*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 236
    functionDepth: 5
    functionLinenumber: 236
    functionLinenumberEnd: 262
    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_get_report
    - fu_dell_dock_hid_set_report
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_hid_verify_update(FuDevice *device, gboolean
      *result, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GUINT16_TO_LE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:276,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:283,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:285,1
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - device
    - input
    - write_size
    - parameters
    - error
    argTypes:
    - FuDevice*
    - guint8*
    - gsize
    - FuHIDI2CParameters*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 265
    functionDepth: 5
    functionLinenumber: 265
    functionLinenumberEnd: 288
    functionName: fu_dell_dock_hid_i2c_write
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GUINT16_TO_LE
    - fu_dell_dock_hid_set_report
    - memcpy
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_hid_i2c_write(FuDevice *device,\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:302,1
    - Dst: GUINT16_TO_LE
      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:311,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:312,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:313,1
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:315,1
    - Dst: fu_dell_dock_hid_get_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:317,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - device
    - cmd
    - read_size
    - bytes
    - parameters
    - error
    argTypes:
    - FuDevice*
    - guint32
    - gsize
    - GBytes**
    - FuHIDI2CParameters*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 291
    functionDepth: 5
    functionLinenumber: 291
    functionLinenumberEnd: 323
    functionName: fu_dell_dock_hid_i2c_read
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GUINT32_TO_LE
    - g_bytes_new
    - GUINT16_TO_LE
    - fu_dell_dock_hid_get_report
    - fu_dell_dock_hid_set_report
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_hid_i2c_read(FuDevice *device,\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:340,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:341,1
    - Dst: fu_dell_dock_hid_get_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:344,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:345,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - parameters
    - error
    argTypes:
    - FuDevice*
    - FuHIDI2CParameters*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 326
    functionDepth: 5
    functionLinenumber: 326
    functionLinenumberEnd: 351
    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_get_report
    - fu_dell_dock_hid_set_report
    - g_debug
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_hid_tbt_wake(FuDevice *device, const FuHIDI2CParameters
      *parameters, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:357,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:359,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - code
    argTypes:
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 362
    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:378,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:384,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:385,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:387,1
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:390,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:391,1
    - Dst: fu_dell_dock_hid_get_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:394,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:395,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:401,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:404,1
    - Dst: fu_dell_dock_hid_tbt_map_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:409,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 6
    argNames:
    - device
    - start_addr
    - input
    - write_size
    - parameters
    - error
    argTypes:
    - FuDevice*
    - guint32
    - guint8*
    - gsize
    - FuHIDI2CParameters*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 365
    functionDepth: 5
    functionLinenumber: 365
    functionLinenumberEnd: 414
    functionName: fu_dell_dock_hid_tbt_write
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - GUINT32_TO_LE
    - g_debug
    - g_set_error
    - g_prefix_error_literal
    - memcpy
    - fu_dell_dock_hid_get_report
    - fu_dell_dock_hid_tbt_map_error
    - fu_dell_dock_hid_set_report
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_hid_tbt_write(FuDevice *device,\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:427,1
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:433,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:434,1
    - Dst: GUINT32_TO_LE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:439,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:441,1
    - Dst: fu_dell_dock_hid_set_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:443,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:444,1
    - Dst: fu_dell_dock_hid_get_report
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:447,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:448,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:454,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:458,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:461,1
    - Dst: fu_dell_dock_hid_tbt_map_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c:465,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - device
    - parameters
    - error
    argTypes:
    - FuDevice*
    - FuHIDI2CParameters*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 417
    functionDepth: 5
    functionLinenumber: 417
    functionLinenumberEnd: 470
    functionName: fu_dell_dock_hid_tbt_authenticate
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hid.c
    functionUses: 0
    functionsReached:
    - GUINT32_TO_LE
    - g_debug
    - g_set_error
    - fu_device_sleep
    - g_prefix_error_literal
    - fu_dell_dock_hid_get_report
    - fu_dell_dock_hid_tbt_map_error
    - fu_dell_dock_hid_set_report
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_hid_tbt_authenticate(FuDevice *device,\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_add_device
      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_device_locker_new
    - g_autoptr
    - fu_plugin_add_device
    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_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_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: 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: 6
    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_probe
    - fu_device_add_child
    - fu_dell_dock_plugin_create_node
    - fu_dell_dock_status_new
    - fu_device_add_instance_id
    - fu_dell_dock_ec_get_dock_type
    - fu_dell_dock_ec_module_is_usb4
    - fu_plugin_get_context
    - fu_dell_dock_mst_new
    - FU_DEVICE
    - fu_dell_dock_hid_get_hub_version
    - fu_dell_dock_ec_needs_tbt
    - fu_dell_dock_tbt_new
    - fu_dell_dock_ec_new
    - g_autoptr
    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_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:105,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
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:108,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:
    - FU_IS_DELL_DOCK_EC
    - fu_device_get_parent
    - g_ptr_array_index
    - FU_DELL_DOCK_EC
    linkageType: ''
    returnType: FuDellDockEc
    signature: 'FuDellDockEc *

      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_literal
      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_plugin_add_device
      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_DELL_DOCK_HUB
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:166,1
    - Dst: fu_plugin_add_device
      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: 7
    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_plugin_cache_remove
    - fu_dell_dock_ec_get_dock_type
    - fu_plugin_get_devices
    - g_set_error_literal
    - fu_device_locker_new
    - fu_dell_dock_plugin_get_ec
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_dell_dock_hub_add_instance
    - fu_plugin_add_device
    - fu_plugin_cache_lookup
    - FU_IS_USB_DEVICE
    - FU_DELL_DOCK_HUB
    - FU_USB_DEVICE
    - g_autoptr
    - fu_dell_dock_hub_new
    - fu_dell_dock_plugin_probe
    - fu_plugin_cache_add
    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:
    - g_info
    - fu_device_remove_flag
    - FU_DEVICE
    - fu_plugin_cache_lookup
    - fu_device_has_flag
    - fu_device_get_name
    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:
    - g_strcmp0
    - fu_plugin_get_name
    - fu_device_has_guid
    - fu_device_add_private_flag
    - fu_device_get_plugin
    - g_strdup_printf
    - fu_device_inhibit
    - FU_IS_DELL_DOCK_EC
    - fu_plugin_cache_add
    - fu_dell_dock_plugin_separate_activation
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_plugin_device_registered(FuPlugin *plugin, FuDevice
      *device)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:226,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:230,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:231,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:232,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:232,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:236,1
    - Dst: FU_IS_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:239,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:240,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:243,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:244,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:245,1
    - Dst: fu_plugin_remove_device
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:249,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 254
    functionName: fu_dell_dock_plugin_backend_device_removed
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_id_display
    - fu_device_get_parent
    - fu_plugin_remove_device
    - g_debug
    - FU_IS_USB_DEVICE
    - fu_device_remove_flag
    - fu_device_has_flag
    - fu_device_get_name
    - FU_IS_DELL_DOCK_EC
    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:259,1
    - Dst: fu_dell_dock_ec_get_module_type
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:263,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 268
    functionName: fu_dell_dock_plugin_composite_prepare
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_report_metadata
    - fu_dell_dock_plugin_get_ec
    - fu_dell_dock_ec_get_module_type
    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:273,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:275,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:283,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:284,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:284,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:285,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:285,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:286,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:286,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:287,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:290,1
    - Dst: fu_dell_dock_ec_tbt_passive
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:291,1
    - Dst: fu_dell_dock_plugin_separate_activation
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:300,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:302,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:302,1
    - Dst: fu_dell_dock_ec_reboot_dock
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:306,1
    - Dst: fu_device_locker_close
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:310,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:314,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:314,1
    - Dst: fu_device_activate
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:315,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 270
    functionDepth: 6
    functionLinenumber: 270
    functionLinenumberEnd: 320
    functionName: fu_dell_dock_plugin_composite_cleanup
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_ec_tbt_passive
    - g_strcmp0
    - fu_device_activate
    - fu_dell_dock_plugin_get_ec
    - fu_device_locker_new
    - fu_device_locker_close
    - fu_device_get_plugin
    - fu_dell_dock_ec_reboot_dock
    - FU_DEVICE
    - fu_progress_new
    - fu_device_has_flag
    - g_autoptr
    - g_ptr_array_index
    - fu_dell_dock_plugin_separate_activation
    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:325,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 326
    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:331,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:332,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:333,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:334,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:335,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:336,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:337,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:338,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:339,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:340,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:341,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:343,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:346,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:347,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:348,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:349,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:350,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:351,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:355,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 360
    functionName: fu_dell_dock_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_rule
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_gtype
    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:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellDockPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 372
    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:156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - bank
    - out
    - error
    argTypes:
    - FuDellDockMstBank
    - FuDellDockMstBankAttributes**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 164
    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(FuDellDockMstBank bank,\n\t\t\t\t
      \ const FuDellDockMstBankAttributes **out,\n\t\t\t\t  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:182,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:183,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:186,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:186,1
    - Dst: fu_dell_dock_hid_i2c_write
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:189,1
    - Dst: fu_dell_dock_hid_i2c_read
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - self
    - address
    - length
    - bytes
    - error
    argTypes:
    - FuDellDockMst*
    - guint32
    - gsize
    - GBytes**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 174
    functionDepth: 6
    functionLinenumber: 174
    functionLinenumberEnd: 197
    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_DEVICE
    - fu_device_get_proxy
    - fu_dell_dock_hid_i2c_read
    - fu_dell_dock_hid_i2c_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_mst_read_register(FuDellDockMst *self,\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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:208,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:210,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:212,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:214,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:218,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:218,1
    - Dst: fu_dell_dock_hid_i2c_write
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - self
    - address
    - data
    - length
    - error
    argTypes:
    - FuDellDockMst*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 199
    functionDepth: 6
    functionLinenumber: 199
    functionLinenumberEnd: 222
    functionName: fu_dell_dock_mst_write_register
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_malloc0
    - fu_memcpy_safe
    - FU_DEVICE
    - fu_memwrite_uint32_safe
    - fu_device_get_proxy
    - fu_dell_dock_hid_i2c_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_mst_write_register(FuDellDockMst *self,\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:227,1
    - Dst: fu_dell_dock_mst_read_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:231,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:236,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:240,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - active
    - error
    argTypes:
    - FuDellDockMst*
    - FuDellDockMstBank*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 224
    functionDepth: 7
    functionLinenumber: 224
    functionLinenumberEnd: 248
    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_bytes_get_data
    - g_prefix_error_literal
    - g_autoptr
    - fu_dell_dock_mst_read_register
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_query_active_bank(FuDellDockMst *self, FuDellDockMstBank
      *active, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:253,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellDockMst*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 260
    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(FuDellDockMst *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:265,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:268,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:269,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:275,1
    - Dst: fu_dell_dock_mst_disable_remote_control
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:277,1
    - Dst: fu_dell_dock_mst_enable_remote_control
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellDockMst*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 282
    functionName: fu_dell_dock_mst_enable_remote_control
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 1
    functionsReached:
    - fu_dell_dock_mst_rc_command
    - g_debug
    - fu_dell_dock_mst_enable_remote_control
    - g_autoptr
    - fu_dell_dock_mst_disable_remote_control
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_enable_remote_control(FuDellDockMst *self,
      GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fu_dell_dock_mst_write_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:292,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:297,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:303,1
    - Dst: fu_dell_dock_mst_read_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:304,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:309,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:312,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:313,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:320,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:320,1
    - Dst: fu_dell_dock_mst_enable_remote_control
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:325,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:328,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:331,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:337,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:347,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellDockMst*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 284
    functionDepth: 7
    functionLinenumber: 284
    functionLinenumberEnd: 354
    functionName: fu_dell_dock_mst_trigger_rc_command
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_mst_write_register
    - fu_device_sleep
    - g_bytes_get_data
    - g_set_error_literal
    - g_set_error
    - g_prefix_error_literal
    - fu_dell_dock_mst_enable_remote_control
    - FU_DEVICE
    - g_bytes_get_size
    - g_autoptr
    - fu_dell_dock_mst_read_register
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_trigger_rc_command(FuDellDockMst *self, GError
      **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:366,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:369,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:371,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:373,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:376,1
    - Dst: fu_dell_dock_mst_write_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:381,1
    - Dst: fu_dell_dock_mst_trigger_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:384,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 6
    argNames:
    - self
    - cmd
    - length
    - offset
    - data
    - error
    argTypes:
    - FuDellDockMst*
    - guint8
    - guint32
    - guint32
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 356
    functionDepth: 8
    functionLinenumber: 356
    functionLinenumberEnd: 385
    functionName: fu_dell_dock_mst_rc_command
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 2
    functionsReached:
    - fu_dell_dock_mst_trigger_rc_command
    - fu_dell_dock_mst_write_register
    - g_malloc0
    - fu_memwrite_uint32_safe
    - fu_memcpy_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_mst_rc_command(FuDellDockMst *self,\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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockMst*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: fu_dell_dock_mst_get_module_type
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FuDellDockMstType
    signature: FuDellDockMstType fu_dell_dock_mst_get_module_type(FuDellDockMst *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - byte
    - offset
    argTypes:
    - guint8
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 399
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:404,1
    - Dst: fu_dell_dock_mst_read_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:408,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:414,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:416,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:424,1
    - Dst: fu_dell_dock_mst_check_offset
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:424,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:425,1
    - Dst: fu_dell_dock_mst_check_offset
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:425,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:426,1
    - Dst: fu_dell_dock_mst_check_offset
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:426,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:427,1
    - Dst: fu_dell_dock_mst_check_offset
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:427,1
    - Dst: fu_dell_dock_mst_check_offset
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:429,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:430,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:432,1
    - Dst: g_debug
      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:434,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellDockMst*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 401
    functionDepth: 7
    functionLinenumber: 401
    functionLinenumberEnd: 438
    functionName: fu_dell_dock_mst_d19_check_fw
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - g_bytes_get_data
    - g_autoptr
    - fu_dell_dock_mst_read_register
    - fu_dell_dock_mst_check_offset
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_d19_check_fw(FuDellDockMst *self, GError
      **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:447,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:450,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:454,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:455,1
    - Dst: fu_dell_dock_mst_get_bank_attribs
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:457,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:462,1
    - Dst: fu_crc16_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:474,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:488,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:491,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:497,1
    - Dst: fu_dell_dock_mst_read_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:501,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:503,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:504,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:510,1
    - Dst: GUINT32_FROM_LE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:511,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:513,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 5
    argNames:
    - self
    - blob_fw
    - bank
    - checksum
    - error
    argTypes:
    - FuDellDockMst*
    - GBytes*
    - FuDellDockMstBank
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 440
    functionDepth: 9
    functionLinenumber: 440
    functionLinenumberEnd: 518
    functionName: fu_dell_dock_mst_checksum_bank
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_dell_dock_mst_rc_command
    - g_debug
    - g_set_error
    - g_bytes_get_data
    - g_set_error_literal
    - g_prefix_error
    - GUINT32_FROM_LE
    - g_bytes_get_size
    - g_autoptr
    - fu_crc16_safe
    - fu_dell_dock_mst_get_bank_attribs
    - fu_dell_dock_mst_read_register
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_mst_checksum_bank(FuDellDockMst *self,\n\t\t\t
      \      GBytes *blob_fw,\n\t\t\t       FuDellDockMstBank 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:526,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:531,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:532,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:538,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:542,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:543,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:543,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - bank
    - error
    argTypes:
    - FuDellDockMst*
    - FuDellDockMstBank
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 520
    functionDepth: 9
    functionLinenumber: 520
    functionLinenumberEnd: 546
    functionName: fu_dell_dock_mst_erase_panamera_bank
    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
    - FU_DEVICE
    - fu_dell_dock_mst_get_bank_attribs
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_erase_panamera_bank(FuDellDockMst *self,
      FuDellDockMstBank 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:555,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:561,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:565,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:566,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellDockMst*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 548
    functionDepth: 9
    functionLinenumber: 548
    functionLinenumberEnd: 569
    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
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_erase_cayenne(FuDellDockMst *self, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:582,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:584,1
    - Dst: fu_dell_dock_mst_get_bank_attribs
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:586,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:590,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:601,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:607,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:613,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - self
    - blob_fw
    - bank
    - progress
    - error
    argTypes:
    - FuDellDockMst*
    - GBytes*
    - FuDellDockMstBank
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 571
    functionDepth: 9
    functionLinenumber: 571
    functionLinenumberEnd: 617
    functionName: fu_dell_dock_mst_write_flash_bank
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_dell_dock_mst_rc_command
    - g_debug
    - g_set_error
    - g_bytes_get_data
    - g_prefix_error
    - fu_progress_set_percentage_full
    - fu_dell_dock_mst_get_bank_attribs
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_mst_write_flash_bank(FuDellDockMst *self,\n\t\t\t\t
      \ GBytes *blob_fw,\n\t\t\t\t  FuDellDockMstBank bank,\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/dell-dock/fu-dell-dock-mst.c:622,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:623,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:630,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:639,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:639,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:642,1
    - Dst: fu_dell_dock_mst_read_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:650,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:657,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:658,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:668,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:677,1
    - Dst: fu_dell_dock_mst_read_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:685,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:692,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:693,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:703,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellDockMst*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 619
    functionDepth: 9
    functionLinenumber: 619
    functionLinenumberEnd: 712
    functionName: fu_dell_dock_mst_stop_esm
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_mst_rc_command
    - fu_device_sleep
    - g_bytes_get_data
    - FU_DEVICE
    - fu_memcpy_safe
    - g_autoptr
    - fu_dell_dock_mst_read_register
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_stop_esm(FuDellDockMst *self, GError **error)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:718,1
    - Dst: fu_dell_dock_mst_get_bank_attribs
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:725,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:726,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:733,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:739,1
    - Dst: fu_dell_dock_mst_read_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:742,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:744,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:746,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:752,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:755,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:760,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:764,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:770,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:776,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:779,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:785,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:790,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:796,1
    - Dst: fu_dell_dock_mst_read_register
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:799,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:806,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:807,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:808,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:814,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:822,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 3
    argNames:
    - self
    - bank_in_use
    - error
    argTypes:
    - FuDellDockMst*
    - FuDellDockMstBank
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 714
    functionDepth: 9
    functionLinenumber: 714
    functionLinenumberEnd: 833
    functionName: fu_dell_dock_mst_invalidate_bank
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_mst_rc_command
    - g_debug
    - g_set_error
    - g_bytes_get_data
    - g_set_error_literal
    - g_prefix_error_literal
    - g_prefix_error
    - g_bytes_get_size
    - g_autoptr
    - fu_dell_dock_mst_get_bank_attribs
    - fu_dell_dock_mst_read_register
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_invalidate_bank(FuDellDockMst *self, FuDellDockMstBank
      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:847,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:848,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:849,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:850,1
    - Dst: fu_dell_dock_mst_erase_panamera_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:852,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:854,1
    - Dst: fu_dell_dock_mst_write_flash_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:856,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:859,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:862,1
    - Dst: fu_dell_dock_mst_checksum_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:864,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:867,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:868,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:871,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:873,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:878,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - self
    - fw
    - bank
    - progress
    - error
    argTypes:
    - FuDellDockMst*
    - GBytes*
    - guint8
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 835
    functionDepth: 10
    functionLinenumber: 835
    functionLinenumberEnd: 880
    functionName: fu_dell_dock_mst_write_bank
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_mst_erase_panamera_bank
    - g_debug
    - fu_progress_add_step
    - g_set_error
    - fu_progress_reset
    - fu_dell_dock_mst_write_flash_bank
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_dell_dock_mst_checksum_bank
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_mst_write_bank(FuDellDockMst *self,\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:886,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:887,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - progress
    - steps
    argTypes:
    - FuProgress*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 882
    functionDepth: 4
    functionLinenumber: 882
    functionLinenumberEnd: 891
    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_steps
    - fu_progress_set_id
    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:905,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:906,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:907,1
    - Dst: fu_dell_dock_mst_query_active_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:910,1
    - Dst: fu_dell_dock_mst_stop_esm
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:916,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:918,1
    - Dst: fu_dell_dock_mst_set_local_progress
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:920,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:923,1
    - Dst: fu_dell_dock_mst_checksum_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:924,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:927,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:928,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:931,1
    - Dst: fu_dell_dock_mst_write_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:932,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:935,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:938,1
    - Dst: fu_dell_dock_mst_invalidate_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:941,1
    - Dst: g_prefix_error
      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:945,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 5
    argNames:
    - self
    - fw
    - flags
    - progress
    - error
    argTypes:
    - FuDellDockMst*
    - GBytes*
    - FwupdInstallFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 893
    functionDepth: 11
    functionLinenumber: 893
    functionLinenumberEnd: 948
    functionName: fu_dell_dock_mst_write_panamera
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_mst_stop_esm
    - fu_dell_dock_mst_query_active_bank
    - g_debug
    - fu_progress_add_step
    - fu_progress_step_done
    - fu_dell_dock_mst_invalidate_bank
    - g_prefix_error
    - fu_dell_dock_mst_set_local_progress
    - fu_dell_dock_mst_write_bank
    - fu_progress_get_child
    - fu_dell_dock_mst_checksum_bank
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_mst_write_panamera(FuDellDockMst *self,\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:960,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:961,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:962,1
    - Dst: fu_dell_dock_mst_erase_cayenne
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:965,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:967,1
    - Dst: fu_dell_dock_mst_write_flash_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:968,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:971,1
    - Dst: fu_dell_dock_mst_checksum_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:974,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:980,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:982,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:983,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:990,1
    - Dst: fu_dell_dock_mst_rc_command
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:997,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:999,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1003,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 5
    argNames:
    - self
    - fw
    - flags
    - progress
    - error
    argTypes:
    - FuDellDockMst*
    - GBytes*
    - FwupdInstallFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 950
    functionDepth: 10
    functionLinenumber: 950
    functionLinenumberEnd: 1007
    functionName: fu_dell_dock_mst_write_cayenne
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_mst_rc_command
    - g_debug
    - fu_progress_add_step
    - fu_progress_reset
    - fu_dell_dock_mst_write_flash_bank
    - g_set_error_literal
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_dell_dock_mst_erase_cayenne
    - g_bytes_get_size
    - fu_progress_get_child
    - fu_dell_dock_mst_checksum_bank
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_mst_write_cayenne(FuDellDockMst *self,\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: 13
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_MST
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1016,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1020,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1027,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1028,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1028,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1031,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1031,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1034,1
    - Dst: fu_dell_dock_set_power
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1038,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1042,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1045,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1046,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1048,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1050,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1053,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1054,1
    - Dst: fu_dell_dock_mst_enable_remote_control
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1057,1
    - Dst: fu_dell_dock_mst_get_module_type
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1060,1
    - Dst: fu_dell_dock_mst_write_panamera
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1062,1
    - Dst: fu_dell_dock_mst_write_cayenne
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1065,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1068,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1076,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1077,1
    - Dst: fu_dell_dock_mst_disable_remote_control
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1080,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1009
    functionDepth: 12
    functionLinenumber: 1009
    functionLinenumberEnd: 1081
    functionName: fu_dell_dock_mst_write_firmware
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_strdup_printf
    - fu_device_set_version_format
    - fu_dell_dock_mst_disable_remote_control
    - fu_firmware_get_bytes
    - g_set_error_literal
    - FU_IS_FIRMWARE
    - fu_dell_dock_mst_write_cayenne
    - fu_device_get_proxy
    - FU_DELL_DOCK_MST
    - g_info
    - g_bytes_get_data
    - fu_dell_dock_set_power
    - fu_dell_dock_mst_enable_remote_control
    - FU_DEVICE
    - fu_memread_uint8_safe
    - g_return_val_if_fail
    - fu_device_open
    - fu_dell_dock_mst_get_module_type
    - fu_dell_dock_mst_write_panamera
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_mst_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: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_MST
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1089,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1092,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1093,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: fu_device_set_install_duration
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1119,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1124,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1129
    functionName: fu_dell_dock_mst_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_strtoull
    - g_set_error_literal
    - fu_device_set_install_duration
    - FU_DELL_DOCK_MST
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_MST
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1134,1
    - Dst: fu_dell_dock_mst_d19_check_fw
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1139,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1143,1
    - Dst: fu_dell_dock_ec_get_mst_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1146,1
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1146,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1148,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1131
    functionDepth: 8
    functionLinenumber: 1131
    functionLinenumberEnd: 1153
    functionName: fu_dell_dock_mst_setup
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_device_get_parent
    - fu_device_set_version
    - FU_DELL_DOCK_EC
    - fu_dell_dock_ec_get_mst_version
    - fu_dell_dock_mst_d19_check_fw
    - fu_device_set_version_format
    - FU_DELL_DOCK_MST
    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:1158,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1161,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1161,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1170,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1171,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1178,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1179,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1155
    functionDepth: 6
    functionLinenumber: 1155
    functionLinenumberEnd: 1190
    functionName: fu_dell_dock_mst_probe
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_add_flag
    - fu_device_add_instance_id
    - g_set_error
    - FU_DEVICE
    - FU_DELL_DOCK_MST
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_probe(FuDevice *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_MST
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1195,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1197,1
    - Dst: g_return_val_if_fail
      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:1200,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1202,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1203,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1203,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:1208,1
    - Dst: fu_dell_dock_set_power
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1192
    functionDepth: 5
    functionLinenumber: 1192
    functionLinenumberEnd: 1216
    functionName: fu_dell_dock_mst_open
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_device_open
    - fu_device_get_parent
    - fu_dell_dock_set_power
    - fu_device_get_proxy
    - fu_device_set_proxy
    - FU_DELL_DOCK_MST
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_mst_open(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_MST
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1221,1
    - Dst: fu_dell_dock_set_power
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1225,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1228,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1228,1
    - Dst: fu_device_close
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1218
    functionDepth: 4
    functionLinenumber: 1218
    functionLinenumberEnd: 1232
    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
    - fu_device_get_proxy
    - FU_DELL_DOCK_MST
    - fu_device_close
    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:1237,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1238,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1239,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1240,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1241,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1234
    functionDepth: 3
    functionLinenumber: 1234
    functionLinenumberEnd: 1243
    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 *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1248,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1248,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1249,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1249,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1250,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c:1250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockMst*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1245
    functionDepth: 6
    functionLinenumber: 1245
    functionLinenumberEnd: 1251
    functionName: fu_dell_dock_mst_init
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_add_protocol
    - fu_device_add_flag
    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:1256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellDockMstClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1253
    functionDepth: 0
    functionLinenumber: 1253
    functionLinenumberEnd: 1264
    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:1270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - dock_type
    argTypes:
    - FuContext*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1266
    functionDepth: 0
    functionLinenumber: 1266
    functionLinenumberEnd: 1273
    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
      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: FU_DEVICE
      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
      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
      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
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - dock_type
    argTypes:
    - FuDellDockHub*
    - 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
    - fu_device_get_vid
    - g_strdup_printf
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_hub_add_instance(FuDellDockHub *self, 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_set_logical_id
    - fu_device_add_protocol
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_hub_probe(FuDevice *device, GError **error)
  - BBCount: 11
    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:72,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:74,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:75,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:75,1
    - Dst: fu_progress_set_id
      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_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:80,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:81,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:84,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:87,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:90,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:92,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:94,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:95,1
    - Dst: fu_dell_dock_set_power
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:97,1
    - Dst: fu_dell_dock_hid_raise_mcu_clock
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:100,1
    - Dst: fu_dell_dock_hid_erase_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:104,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:106,1
    - Dst: fu_dell_dock_hid_write_flash
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:114,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:119,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:119,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:121,1
    - Dst: fu_dell_dock_hid_verify_update
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:124,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:127,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:133,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:136,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:137,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 55
    functionDepth: 6
    functionLinenumber: 55
    functionLinenumberEnd: 139
    functionName: fu_dell_dock_hub_write_fw
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_strdup_printf
    - fu_device_set_version_format
    - fu_firmware_get_bytes
    - g_set_error_literal
    - FU_IS_FIRMWARE
    - fu_progress_set_percentage_full
    - g_info
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_dell_dock_hid_write_flash
    - fu_dell_dock_set_power
    - fu_progress_step_done
    - fu_memread_uint8_safe
    - fu_progress_get_child
    - fu_progress_set_id
    - g_return_val_if_fail
    - fu_dell_dock_hid_erase_bank
    - fu_dell_dock_hid_verify_update
    - FU_DELL_DOCK_HUB
    - fu_dell_dock_hid_raise_mcu_clock
    - g_autoptr
    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:145,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:149,1
    - Dst: fu_dell_dock_hid_get_hub_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 141
    functionDepth: 6
    functionLinenumber: 141
    functionLinenumberEnd: 153
    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:161,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:164,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:165,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:170,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:171,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:176,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:177,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 189
    functionName: fu_dell_dock_hub_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c
    functionUses: 0
    functionsReached:
    - FU_DELL_DOCK_HUB
    - fu_strtoull
    - g_strcmp0
    - g_set_error_literal
    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:194,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:195,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:196,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:197,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:198,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 200
    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 *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:205,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:205,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:206,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:206,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:207,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:207,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:208,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockHub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 6
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: fu_dell_dock_hub_init
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_retry_set_delay
    - fu_device_register_private_flag
    - FU_DEVICE
    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:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellDockHubClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 220
    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:225,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:226,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:226,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - device
    argTypes:
    - FuUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 9
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: fu_dell_dock_hub_new
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-hub.c
    functionUses: 1
    functionsReached:
    - FU_DEVICE
    - g_object_new
    - fu_device_incorporate
    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:26,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.c:28,1
    - Dst: FU_IS_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.c:30,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.c:30,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
    - Dst: FU_DELL_DOCK_EC
      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: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 45
    functionName: fu_dell_dock_set_power
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-common.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - fu_device_get_parent
    - FU_DELL_DOCK_EC
    - g_set_error
    - fu_device_locker_new
    - fu_device_get_name
    - FU_IS_DELL_DOCK_EC
    - g_autoptr
    - fu_dell_dock_ec_modify_lock
    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: 159
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 159
    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: 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
      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
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    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_get_metadata
    - g_strdup_printf
    - fu_device_set_summary
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_ec_set_board(FuDellDockEc *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: fu_dell_dock_ec_module_is_usb4
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_module_is_usb4(FuDellDockEc *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: fu_dell_dock_ec_get_dock_type
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_dell_dock_ec_get_dock_type(FuDellDockEc *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 208
    functionName: fu_dell_dock_ec_get_module_type
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dell_dock_ec_get_module_type(FuDellDockEc *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 222
    functionName: fu_dell_dock_ec_needs_tbt
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 1
    functionsReached:
    - g_info
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_needs_tbt(FuDellDockEc *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: fu_dell_dock_ec_tbt_passive
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_tbt_passive(FuDellDockEc *self)
  - 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: 255
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 255
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:264,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:267,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:268,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:270,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:270,1
    - Dst: fu_dell_dock_hid_i2c_read
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:273,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:279,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:282,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:283,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:284,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:292,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - self
    - cmd
    - length
    - bytes
    - error
    argTypes:
    - FuDellDockEc*
    - guint32
    - gsize
    - GBytes**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 257
    functionDepth: 6
    functionLinenumber: 257
    functionLinenumberEnd: 303
    functionName: fu_dell_dock_ec_read
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_new
    - g_set_error
    - g_bytes_get_data
    - g_set_error_literal
    - g_prefix_error_literal
    - FU_DEVICE
    - g_bytes_get_size
    - fu_device_get_proxy
    - fu_dell_dock_hid_i2c_read
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_read(FuDellDockEc *self, guint32 cmd, gsize
      length, GBytes **bytes, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:310,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:311,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:313,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:313,1
    - Dst: fu_dell_dock_hid_i2c_write
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:316,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - length
    - data
    - error
    argTypes:
    - FuDellDockEc*
    - gsize
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 305
    functionDepth: 6
    functionLinenumber: 305
    functionLinenumberEnd: 322
    functionName: fu_dell_dock_ec_write
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_device_get_proxy
    - fu_dell_dock_hid_i2c_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_write(FuDellDockEc *self, gsize length, guint8
      *data, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:329,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:331,1
    - Dst: fu_dell_dock_ec_read
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:333,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:334,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:337,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:339,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:349,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:349,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:353,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:353,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellDockEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 324
    functionDepth: 7
    functionLinenumber: 324
    functionLinenumberEnd: 362
    functionName: fu_dell_dock_ec_is_valid_dock
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_device_add_instance_id
    - g_set_error
    - g_bytes_get_data
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_dell_dock_ec_read
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_is_valid_dock(FuDellDockEc *self, GError **error)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:371,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:373,1
    - Dst: fu_dell_dock_ec_read
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:375,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:380,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:383,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:384,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:391,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:393,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:402,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:411,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:418,1
    - Dst: fu_dell_dock_ec_devicetype_to_str
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:427,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:430,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:436,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:445,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:450,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:451,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:451,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:452,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:452,1
    - Dst: fu_dell_dock_ec_test_valid_byte
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:457,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:459,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:463,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:467,1
    - Dst: fu_dell_dock_ec_test_valid_byte
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:473,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:475,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:480,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:483,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:485,1
    - Dst: GUINT32_TO_BE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:496,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:498,1
    - Dst: fu_device_get_install_duration
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:510,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:510,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:511,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:511,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:516,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:516,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 77
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellDockEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 364
    functionDepth: 7
    functionLinenumber: 364
    functionLinenumberEnd: 518
    functionName: fu_dell_dock_ec_get_dock_info
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_device_add_private_flag
    - g_strdup_printf
    - fu_dell_dock_ec_test_valid_byte
    - fu_device_set_version_format
    - g_debug
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_dell_dock_ec_read
    - g_info
    - g_bytes_get_data
    - FU_DEVICE
    - g_warning
    - fu_dell_dock_ec_devicetype_to_str
    - g_return_val_if_fail
    - fu_device_get_install_duration
    - g_set_error
    - GUINT32_TO_BE
    - fu_device_set_install_duration
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_get_dock_info(FuDellDockEc *self, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:523,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:524,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:531,1
    - Dst: fu_dell_dock_ec_read
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:533,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:534,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:537,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:539,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:545,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:546,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:550,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:553,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:556,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:558,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:558,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:560,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:563,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:566,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:568,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:569,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:569,1
    - Dst: fu_dell_dock_ec_get_status
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:575,1
    - Dst: fu_dell_dock_ec_set_board
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:579,1
    - Dst: fu_device_remove_problem
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:583,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:583,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:585,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:585,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:586,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:587,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:587,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellDockEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 520
    functionDepth: 7
    functionLinenumber: 520
    functionLinenumberEnd: 591
    functionName: fu_dell_dock_ec_get_dock_data
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - fu_dell_dock_ec_set_board
    - g_strdup_printf
    - fu_device_get_name
    - fu_dell_dock_ec_get_status
    - g_debug
    - fu_device_add_problem
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_dell_dock_ec_read
    - g_string_new
    - g_bytes_get_data
    - fu_device_set_serial
    - fu_device_set_name
    - FU_DEVICE
    - g_warning
    - fu_device_remove_problem
    - g_return_val_if_fail
    - g_set_error
    - memcpy
    - g_bytes_get_size
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_get_dock_data(FuDellDockEc *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:596,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:599,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:600,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_hex
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:602,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:603,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:604,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:605,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_int
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:611,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:612,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:616,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:617,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:618,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 593
    functionDepth: 3
    functionLinenumber: 593
    functionLinenumberEnd: 620
    functionName: fu_dell_dock_ec_to_string
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - FU_DELL_DOCK_EC
    - memcpy
    - fwupd_codec_string_append
    - fwupd_codec_string_append_int
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_dell_dock_ec_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:627,1
    - Dst: FU_IS_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:627,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:628,1
    - Dst: fu_dell_dock_ec_write
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:635,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:636,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:639,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:642,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:642,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:643,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:643,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:646,1
    - Dst: FU_BIT_CLEAR
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:648,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:649,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - self
    - target
    - unlocked
    - error
    argTypes:
    - FuDellDockEc*
    - guint8
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 622
    functionDepth: 7
    functionLinenumber: 622
    functionLinenumberEnd: 652
    functionName: fu_dell_dock_ec_modify_lock
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_debug
    - g_prefix_error
    - FU_BIT_SET
    - FU_DEVICE
    - fu_device_get_id
    - fu_dell_dock_ec_write
    - FU_BIT_CLEAR
    - fu_device_get_name
    - FU_IS_DELL_DOCK_EC
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_modify_lock(FuDellDockEc *self, 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:659,1
    - Dst: fu_dell_dock_ec_write
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellDockEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 654
    functionDepth: 7
    functionLinenumber: 654
    functionLinenumberEnd: 662
    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(FuDellDockEc *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:667,1
    - Dst: fu_dell_dock_ec_get_status
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:671,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:675,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:679,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:679,1
    - Dst: fu_dell_dock_ec_reset
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 664
    functionDepth: 8
    functionLinenumber: 664
    functionLinenumberEnd: 684
    functionName: fu_dell_dock_ec_activate
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - FU_DELL_DOCK_EC
    - g_set_error
    - fu_dell_dock_ec_reset
    - FU_DEVICE
    - fu_device_get_name
    - fu_dell_dock_ec_get_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_activate(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:693,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:695,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:697,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:697,1
    - Dst: fu_dell_dock_ec_write
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellDockEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 686
    functionDepth: 7
    functionLinenumber: 686
    functionLinenumberEnd: 699
    functionName: fu_dell_dock_ec_reboot_dock
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - g_info
    - FU_DEVICE
    - fu_dell_dock_ec_write
    - fu_device_get_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_reboot_dock(FuDellDockEc *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:706,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:709,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:710,1
    - Dst: fu_dell_dock_ec_read
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:712,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:713,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:716,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - status_out
    - error
    argTypes:
    - FuDellDockEc*
    - FuDellDockECFWUpdateStatus*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 701
    functionDepth: 7
    functionLinenumber: 701
    functionLinenumberEnd: 727
    functionName: fu_dell_dock_ec_get_status
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_bytes_get_data
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_dell_dock_ec_read
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_ec_get_status(FuDellDockEc *self,\n\t\t\t   FuDellDockECFWUpdateStatus
      *status_out,\n\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 733
    functionName: fu_dell_dock_ec_get_tbt_version
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dell_dock_ec_get_tbt_version(FuDellDockEc *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 739
    functionName: fu_dell_dock_ec_get_mst_version
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dell_dock_ec_get_mst_version(FuDellDockEc *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 745
    functionName: fu_dell_dock_ec_get_status_version
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_dell_dock_ec_get_status_version(FuDellDockEc *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:751,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:752,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:754,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:755,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:758,1
    - Dst: memcpy
      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:767,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:768,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:769,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:770,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:771,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:772,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:773,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:777,1
    - Dst: fu_dell_dock_ec_write
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:779,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - self
    - blob_fw
    - error
    argTypes:
    - FuDellDockEc*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 747
    functionDepth: 7
    functionLinenumber: 747
    functionLinenumberEnd: 785
    functionName: fu_dell_dock_ec_commit_package
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_debug
    - g_set_error
    - g_bytes_get_data
    - g_prefix_error_literal
    - memcpy
    - g_malloc0
    - fu_dell_dock_ec_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_ec_commit_package(FuDellDockEc *self, GBytes
      *blob_fw, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:794,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:802,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:804,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:805,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:805,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:808,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:809,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:810,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:813,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:816,1
    - Dst: fu_memstrsafe
      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:822,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:826,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:829,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:838,1
    - Dst: fu_dell_dock_ec_modify_lock
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:839,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:842,1
    - Dst: fu_dell_dock_hid_raise_mcu_clock
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:845,1
    - Dst: fu_dell_dock_hid_erase_bank
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:849,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:851,1
    - Dst: fu_dell_dock_hid_write_flash
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:859,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:860,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:863,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:863,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:868,1
    - Dst: fu_dell_dock_hid_raise_mcu_clock
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:870,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:874,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:874,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:875,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:875,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:879,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:879,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 787
    functionDepth: 8
    functionLinenumber: 787
    functionLinenumberEnd: 881
    functionName: fu_dell_dock_ec_write_firmware
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - fu_device_set_version_format
    - FU_DELL_DOCK_EC
    - fu_firmware_get_bytes
    - fu_memstrsafe
    - FU_IS_FIRMWARE
    - g_prefix_error_literal
    - fu_device_get_proxy
    - fu_progress_set_percentage_full
    - g_info
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_dell_dock_hid_write_flash
    - fu_progress_step_done
    - FU_DEVICE
    - fu_progress_get_child
    - fu_dell_dock_ec_modify_lock
    - fu_progress_set_id
    - g_return_val_if_fail
    - fu_dell_dock_hid_erase_bank
    - g_set_error
    - fu_version_compare
    - fu_dell_dock_hid_raise_mcu_clock
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_dell_dock_ec_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: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      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:889,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:890,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:895,1
    - Dst: fu_strtoull
      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:901,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:902,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:905,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:906,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:909,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:910,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:917,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 922
    functionName: fu_dell_dock_ec_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FU_DELL_DOCK_EC
    - fu_strtoull
    - g_set_error_literal
    - fu_device_set_metadata
    - g_str_has_prefix
    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:927,1
    - Dst: fu_dell_dock_ec_get_dock_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellDockEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 924
    functionDepth: 8
    functionLinenumber: 924
    functionLinenumberEnd: 931
    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(FuDellDockEc *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:936,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:937,1
    - Dst: fu_dell_dock_ec_query
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:940,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:941,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:942,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:943,1
    - Dst: fu_dell_dock_ec_query
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:944,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:947,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:947,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 933
    functionDepth: 9
    functionLinenumber: 933
    functionLinenumberEnd: 952
    functionName: fu_dell_dock_ec_setup
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - FU_DELL_DOCK_EC
    - fu_device_sleep
    - fu_dell_dock_ec_query
    - g_steal_pointer
    - g_warning
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    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:957,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:961,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:964,1
    - Dst: fu_dell_dock_ec_is_valid_dock
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:967,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 954
    functionDepth: 8
    functionLinenumber: 954
    functionLinenumberEnd: 969
    functionName: fu_dell_dock_ec_open
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - fu_device_open
    - fu_dell_dock_ec_is_valid_dock
    - FU_DELL_DOCK_EC
    - fu_device_get_proxy
    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:974,1
    - Dst: fu_device_close
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 971
    functionDepth: 4
    functionLinenumber: 971
    functionLinenumberEnd: 978
    functionName: fu_dell_dock_ec_close
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - fu_device_close
    - fu_device_get_proxy
    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:983,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:984,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:985,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:986,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:987,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:988,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:989,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 991
    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:996,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:997,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:998,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:999,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1000,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 993
    functionDepth: 3
    functionLinenumber: 993
    functionLinenumberEnd: 1002
    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 *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1007,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1008,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1009,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1009,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1010,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1010,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1011,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1011,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1012,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1004
    functionDepth: 6
    functionLinenumber: 1004
    functionLinenumberEnd: 1013
    functionName: fu_dell_dock_ec_init
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_new0
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - 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:1018,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellDockEcClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1029
    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:1035,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1037,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1038,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1038,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1039,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1039,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1040,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1031
    functionDepth: 9
    functionLinenumber: 1031
    functionLinenumberEnd: 1043
    functionName: fu_dell_dock_ec_new
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    functionUses: 1
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_get_context
    - fu_device_incorporate
    - FU_DEVICE
    - g_object_new
    - fu_device_set_proxy
    linkageType: ''
    returnType: FuDellDockEc
    signature: 'FuDellDockEc *

      fu_dell_dock_ec_new(FuDevice *proxy)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_TBT
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:56,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:65,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:67,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:69,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:70,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:70,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:73,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:76,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:77,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:83,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:89,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:90,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:91,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:92,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:94,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:96,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:104,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:112,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:123,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:124,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:124,1
    - Dst: fu_dell_dock_hid_tbt_wake
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:127,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:129,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:131,1
    - Dst: fu_dell_dock_hid_tbt_write
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:136,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:144,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:146,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:146,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:148,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:150,1
    - Dst: fu_dell_dock_ec_tbt_passive
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:153,1
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:153,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:154,1
    - Dst: fu_dell_dock_hid_tbt_authenticate
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:155,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:156,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:161,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:162,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 49
    functionDepth: 6
    functionLinenumber: 49
    functionLinenumberEnd: 165
    functionName: fu_dell_dock_tbt_write_fw
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    functionUses: 0
    functionsReached:
    - fu_device_get_parent
    - fu_device_set_version
    - g_strdup_printf
    - fu_dell_dock_hid_tbt_authenticate
    - g_timer_elapsed
    - fu_device_set_version_format
    - fu_dell_dock_ec_tbt_passive
    - fu_memread_uint32_safe
    - fu_dell_dock_hid_tbt_write
    - g_debug
    - fu_firmware_get_bytes
    - FU_DELL_DOCK_EC
    - FU_IS_FIRMWARE
    - g_prefix_error_literal
    - fu_device_get_proxy
    - fu_progress_set_status
    - fu_progress_set_percentage_full
    - g_info
    - fu_device_sleep
    - g_bytes_get_data
    - FU_DEVICE
    - fu_memread_uint8_safe
    - fu_memread_uint16_safe
    - g_return_val_if_fail
    - FU_DELL_DOCK_TBT
    - g_set_error
    - fu_dell_dock_hid_tbt_wake
    - g_autoptr
    - g_timer_new
    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:173,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_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:182,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:183,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:185,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:188,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:189,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:192,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:193,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:198,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:199,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:206,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 211
    functionName: fu_dell_dock_tbt_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - FU_DELL_DOCK_TBT
    - fu_strtoull
    - g_set_error_literal
    - fu_device_set_install_duration
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_TBT
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:216,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:222,1
    - Dst: fu_dell_dock_ec_get_tbt_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:225,1
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:225,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:227,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:228,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:233,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:234,1
    - Dst: fu_device_get_proxy
      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_version_compare
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:243,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:243,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:246,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 213
    functionDepth: 4
    functionLinenumber: 213
    functionLinenumberEnd: 253
    functionName: fu_dell_dock_tbt_setup
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    functionUses: 0
    functionsReached:
    - fu_device_get_parent
    - FU_DELL_DOCK_TBT
    - FU_DELL_DOCK_EC
    - fu_device_set_version
    - fu_version_compare
    - fu_device_set_update_error
    - FU_DEVICE
    - fu_device_get_version
    - fu_device_get_proxy
    - fu_device_set_version_format
    - fu_dell_dock_ec_get_tbt_version
    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:261,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:265,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:266,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:266,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:267,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 255
    functionDepth: 9
    functionLinenumber: 255
    functionLinenumberEnd: 272
    functionName: fu_dell_dock_tbt_probe
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_add_flag
    - fu_device_get_parent
    - fu_device_add_instance_id
    - fu_device_incorporate
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_tbt_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_TBT
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:277,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:280,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:282,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:282,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:285,1
    - Dst: fu_dell_dock_set_power
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 274
    functionDepth: 5
    functionLinenumber: 274
    functionLinenumberEnd: 293
    functionName: fu_dell_dock_tbt_open
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_device_open
    - FU_DELL_DOCK_TBT
    - fu_dell_dock_set_power
    - FU_DEVICE
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_tbt_open(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_TBT
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:298,1
    - Dst: fu_dell_dock_set_power
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:302,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:305,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:305,1
    - Dst: fu_device_close
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 295
    functionDepth: 4
    functionLinenumber: 295
    functionLinenumberEnd: 309
    functionName: fu_dell_dock_tbt_close
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    functionUses: 0
    functionsReached:
    - FU_DELL_DOCK_TBT
    - fu_dell_dock_set_power
    - FU_DEVICE
    - fu_device_get_proxy
    - fu_device_close
    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:314,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:315,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 318
    functionName: fu_dell_dock_tbt_finalize
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_DELL_DOCK_TBT
    - G_OBJECT_CLASS
    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:323,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:323,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:324,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:324,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:325,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:325,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:326,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockTbt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 320
    functionDepth: 6
    functionLinenumber: 320
    functionLinenumberEnd: 327
    functionName: fu_dell_dock_tbt_init
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_add_protocol
    - fu_device_add_flag
    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:332,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellDockTbtClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 341
    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:346,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:347,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:348,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 350
    functionName: fu_dell_dock_tbt_new
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-tbt.c
    functionUses: 1
    functionsReached:
    - fu_device_set_proxy
    - g_object_new
    - fu_device_get_context
    - FU_DEVICE
    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: 2
    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:52,1
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:52,1
    - Dst: fu_dell_dock_status_ver_string
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:54,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:55,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:56,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:57,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 59
    functionName: fu_dell_dock_status_setup
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_get_parent
    - fu_device_set_version
    - FU_DELL_DOCK_EC
    - fu_dell_dock_status_ver_string
    - FU_DEVICE
    - fu_dell_dock_ec_get_status_version
    - fu_device_set_version_format
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_dock_status_setup(FuDevice *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_DOCK_STATUS
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:74,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:76,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:77,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:77,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:80,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:83,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:84,1
    - Dst: fu_dell_dock_status_ver_string
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:93,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:94,1
    - Dst: FU_DELL_DOCK_EC
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:96,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:96,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:96,1
    - Dst: fu_dell_dock_ec_commit_package
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:99,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:103,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:104,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: 106
      start: 61
    functionDepth: 8
    functionLinenumber: 61
    functionLinenumberEnd: 106
    functionName: fu_dell_dock_status_write
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_device_set_version
    - g_info
    - fu_firmware_get_bytes
    - FU_DELL_DOCK_EC
    - g_bytes_get_data
    - fu_dell_dock_status_ver_string
    - fu_device_get_proxy
    - FU_IS_FIRMWARE
    - FU_DEVICE
    - FU_DELL_DOCK_STATUS
    - fu_memcpy_safe
    - fu_dell_dock_ec_commit_package
    - fu_device_set_version_format
    - g_autoptr
    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:111,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:114,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:117,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:119,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 108
    functionDepth: 5
    functionLinenumber: 108
    functionLinenumberEnd: 130
    functionName: fu_dell_dock_status_probe
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_id
    - FU_DELL_DOCK_STATUS
    - g_set_error
    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:137,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:139,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:142,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 132
    functionDepth: 5
    functionLinenumber: 132
    functionLinenumberEnd: 145
    functionName: fu_dell_dock_status_open
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
    functionUses: 0
    functionsReached:
    - fu_device_set_proxy
    - fu_device_open
    - fu_device_get_parent
    - fu_device_get_proxy
    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:151,1
    - Dst: fu_device_close
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 147
    functionDepth: 4
    functionLinenumber: 147
    functionLinenumberEnd: 155
    functionName: fu_dell_dock_status_close
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
    functionUses: 0
    functionsReached:
    - fu_device_close
    - fu_device_get_proxy
    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:163,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:164,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:166,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 178
    functionName: fu_dell_dock_status_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_strcmp0
    - g_set_error_literal
    - FU_DELL_DOCK_STATUS
    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:183,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:184,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:185,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:186,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:187,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 189
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:194,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:194,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:195,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:195,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:196,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:196,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:197,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellDockStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 6
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: fu_dell_dock_status_init
    functionSourceFile: /src/fwupd/plugins/dell-dock/fu-dell-dock-status.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_add_protocol
    - fu_device_add_flag
    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:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellDockStatusClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 211
    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:217,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: 221
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 221
    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:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-plugin.c:21,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-plugin.c:22,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-plugin.c:23,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-plugin.c:24,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-plugin.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 28
    functionName: fu_novatek_ts_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_udev_subsystem
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_novatek_ts_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuNovatekTsPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: fu_novatek_ts_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_novatek_ts_plugin_class_init(FuNovatekTsPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuNovatekTsPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: fu_novatek_ts_plugin_init
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_novatek_ts_plugin_init(FuNovatekTsPlugin *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-firmware.c:29,1
    - Dst: strlen
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-firmware.c:31,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-firmware.c:32,1
    - Dst: fu_input_stream_read_string
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-firmware.c:38,1
    - Dst: strlen
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-firmware.c:39,1
    - Dst: strlen
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-firmware.c:40,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-firmware.c:44,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-firmware.c:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 56
    functionName: fu_novatek_ts_firmware_parse
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-firmware.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error
    - fu_input_stream_size
    - g_set_error_literal
    - strlen
    - fu_input_stream_read_string
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_novatek_ts_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_set_size_max
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-firmware.c:61,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-firmware.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuNovatekTsFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: fu_novatek_ts_firmware_init
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_novatek_ts_firmware_init(FuNovatekTsFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-firmware.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuNovatekTsFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: fu_novatek_ts_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_novatek_ts_firmware_class_init(FuNovatekTsFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_NOVATEK_TS_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:53,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:54,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:55,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:56,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:57,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:61,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:65,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:66,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:70,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:71,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:72,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:73,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:74,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:75,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:76,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:77,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:81,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:82,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:83,1
    - Dst: fu_device_add_string
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:84,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 50
    functionDepth: 4
    functionLinenumber: 50
    functionLinenumberEnd: 85
    functionName: fu_novatek_ts_device_to_string
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fwupd_codec_string_append_hex
    - FU_NOVATEK_TS_DEVICE
    - fu_device_add_string
    linkageType: ''
    returnType: void
    signature: void fu_novatek_ts_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:107,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:108,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:110,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:111,1
    - Dst: fu_struct_novatek_ts_hid_read_req_new
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:114,1
    - Dst: fu_struct_novatek_ts_hid_read_req_set_i2c_hid_eng_report_id
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:115,1
    - Dst: fu_struct_novatek_ts_hid_read_req_set_i2c_eng_addr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:116,1
    - Dst: fu_struct_novatek_ts_hid_read_req_set_target_addr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:117,1
    - Dst: fu_struct_novatek_ts_hid_read_req_set_len
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:118,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:119,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:119,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:124,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:129,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:131,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:131,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:136,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:139,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuNovatekTsDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 100
    functionDepth: 5
    functionLinenumber: 100
    functionLinenumberEnd: 153
    functionName: fu_novatek_ts_device_hid_read_dev
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_hidraw_device_set_feature
    - g_debug
    - fu_hidraw_device_get_feature
    - g_prefix_error_literal
    - FU_HIDRAW_DEVICE
    - g_byte_array_new
    - fu_struct_novatek_ts_hid_read_req_new
    - fu_struct_novatek_ts_hid_read_req_set_i2c_hid_eng_report_id
    - fu_struct_novatek_ts_hid_read_req_set_i2c_eng_addr
    - fu_struct_novatek_ts_hid_read_req_set_len
    - fu_memcpy_safe
    - g_autoptr
    - fu_byte_array_set_size
    - fu_struct_novatek_ts_hid_read_req_set_target_addr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_novatek_ts_device_hid_read_dev(FuNovatekTsDevice *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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:163,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:163,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:164,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:166,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:168,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:169,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:172,1
    - Dst: fu_struct_novatek_ts_hid_write_hdr_new
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:174,1
    - Dst: fu_struct_novatek_ts_hid_write_hdr_set_i2c_hid_eng_report_id
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:175,1
    - Dst: fu_struct_novatek_ts_hid_write_hdr_set_write_len
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:176,1
    - Dst: fu_struct_novatek_ts_hid_write_hdr_set_target_addr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:177,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:179,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:187,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:191,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:199,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:203,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:203,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuNovatekTsDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 155
    functionDepth: 5
    functionLinenumber: 155
    functionLinenumberEnd: 214
    functionName: fu_novatek_ts_device_hid_write_dev
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_hidraw_device_set_feature
    - fu_struct_novatek_ts_hid_write_hdr_new
    - g_debug
    - fu_struct_novatek_ts_hid_write_hdr_set_write_len
    - g_prefix_error_literal
    - fu_dump_raw
    - FU_HIDRAW_DEVICE
    - g_byte_array_new
    - fu_struct_novatek_ts_hid_write_hdr_set_i2c_hid_eng_report_id
    - fu_struct_novatek_ts_hid_write_hdr_set_target_addr
    - fu_memcpy_safe
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_novatek_ts_device_hid_write_dev(FuNovatekTsDevice *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: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_novatek_ts_device_hid_read_dev
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:223,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuNovatekTsDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 216
    functionDepth: 6
    functionLinenumber: 216
    functionLinenumberEnd: 228
    functionName: fu_novatek_ts_device_hid_read
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_hid_read_dev
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_novatek_ts_device_hid_read(FuNovatekTsDevice *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: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_novatek_ts_device_hid_write_dev
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:237,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuNovatekTsDevice*
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 230
    functionDepth: 6
    functionLinenumber: 230
    functionLinenumberEnd: 242
    functionName: fu_novatek_ts_device_hid_write
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_hid_write_dev
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_novatek_ts_device_hid_write(FuNovatekTsDevice *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_memcpy_safe
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:252,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:255,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:256,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:258,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:260,1
    - Dst: fu_novatek_ts_device_hid_write
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:263,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:264,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:266,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - self
    - chk
    - buf
    - bufsz
    - base_addr
    - error
    argTypes:
    - FuNovatekTsDevice*
    - FuChunk*
    - guint8*
    - gsize
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 244
    functionDepth: 7
    functionLinenumber: 244
    functionLinenumberEnd: 272
    functionName: fu_novatek_ts_device_gcm_xfer_tx_chunk
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_hid_write
    - fu_chunk_get_data_sz
    - g_prefix_error_literal
    - fu_chunk_get_data
    - fu_memcpy_safe
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_novatek_ts_device_gcm_xfer_tx_chunk(FuNovatekTsDevice
      *self,\n\t\t\t\t       FuChunk *chk,\n\t\t\t\t       guint8 *buf,\n\t\t\t\t
      \      gsize bufsz,\n\t\t\t\t       guint32 base_addr,\n\t\t\t\t       GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:284,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:285,1
    - Dst: fu_novatek_ts_device_hid_read
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:287,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:288,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:291,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:293,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - self
    - chk
    - buf
    - bufsz
    - base_addr
    - rx_buf
    - rx_len
    - error
    argTypes:
    - FuNovatekTsDevice*
    - FuChunk*
    - guint8*
    - gsize
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 274
    functionDepth: 7
    functionLinenumber: 274
    functionLinenumberEnd: 305
    functionName: fu_novatek_ts_device_gcm_xfer_rx_chunk
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_novatek_ts_device_hid_read
    - g_prefix_error_literal
    - fu_memcpy_safe
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_novatek_ts_device_gcm_xfer_rx_chunk(FuNovatekTsDevice
      *self,\n\t\t\t\t       FuChunk *chk,\n\t\t\t\t       guint8 *buf,\n\t\t\t\t
      \      gsize bufsz,\n\t\t\t\t       guint32 base_addr,\n\t\t\t\t       guint8
      *rx_buf,\n\t\t\t\t       gsize rx_len,\n\t\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_NOVATEK_TS_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:316,1
    - Dst: fu_novatek_ts_device_hid_read
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:319,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 313
    functionDepth: 7
    functionLinenumber: 313
    functionLinenumberEnd: 330
    functionName: fu_novatek_ts_device_wait_cmd_issue_cb
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_hid_read
    - FU_NOVATEK_TS_DEVICE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_wait_cmd_issue_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 337
    functionName: fu_novatek_ts_device_retry_busy_cb
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_retry_busy_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:343,1
    - Dst: fu_struct_novatek_ts_gcm_cmd_new
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:343,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:344,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:344,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:349,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:352,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:353,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:362,1
    - Dst: fu_novatek_ts_device_gcm_xfer_tx_chunk
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:363,1
    - Dst: memset
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:373,1
    - Dst: fu_struct_novatek_ts_gcm_cmd_set_flash_cmd
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:374,1
    - Dst: fu_struct_novatek_ts_gcm_cmd_set_flash_addr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:376,1
    - Dst: fu_struct_novatek_ts_gcm_cmd_set_flash_addr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:378,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:381,1
    - Dst: fu_struct_novatek_ts_gcm_cmd_set_write_len
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:388,1
    - Dst: fu_struct_novatek_ts_gcm_cmd_set_read_len
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:389,1
    - Dst: fu_struct_novatek_ts_gcm_cmd_set_flash_checksum
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:390,1
    - Dst: fu_novatek_ts_device_hid_write
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:391,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:396,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:399,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:399,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:405,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:410,1
    - Dst: memset
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:412,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:413,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:422,1
    - Dst: fu_novatek_ts_device_gcm_xfer_rx_chunk
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:423,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 3
    argNames:
    - self
    - xfer
    - error
    argTypes:
    - FuNovatekTsDevice*
    - FuNovatekTsGcmXfer*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 339
    functionDepth: 8
    functionLinenumber: 339
    functionLinenumberEnd: 437
    functionName: fu_novatek_ts_device_gcm_xfer
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_gcm_xfer_tx_chunk
    - fu_struct_novatek_ts_gcm_cmd_new
    - g_ptr_array_index
    - fu_novatek_ts_device_gcm_xfer_rx_chunk
    - fu_novatek_ts_device_hid_write
    - fu_struct_novatek_ts_gcm_cmd_set_read_len
    - g_prefix_error_literal
    - g_byte_array_new
    - fu_struct_novatek_ts_gcm_cmd_set_flash_checksum
    - fu_chunk_array_new
    - fu_struct_novatek_ts_gcm_cmd_set_flash_cmd
    - fu_struct_novatek_ts_gcm_cmd_set_write_len
    - FU_DEVICE
    - memset
    - g_set_error
    - g_prefix_error
    - fu_device_retry_full
    - fu_struct_novatek_ts_gcm_cmd_set_flash_addr
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_gcm_xfer(FuNovatekTsDevice *self, FuNovatekTsGcmXfer
      *xfer, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:444,1
    - Dst: fu_novatek_ts_device_gcm_xfer
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:449,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNovatekTsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 439
    functionDepth: 9
    functionLinenumber: 439
    functionLinenumberEnd: 456
    functionName: fu_novatek_ts_device_gcm_write_enable
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_gcm_xfer
    - g_prefix_error_literal
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_gcm_write_enable(FuNovatekTsDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:463,1
    - Dst: fu_novatek_ts_device_gcm_xfer
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:470,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:471,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuNovatekTsDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 458
    functionDepth: 9
    functionLinenumber: 458
    functionLinenumberEnd: 477
    functionName: fu_novatek_ts_device_gcm_read_status
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_gcm_xfer
    - g_prefix_error_literal
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_gcm_read_status(FuNovatekTsDevice *self,
      guint8 *status, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_NOVATEK_TS_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:482,1
    - Dst: fu_novatek_ts_device_gcm_read_status
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:485,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 479
    functionDepth: 10
    functionLinenumber: 479
    functionLinenumberEnd: 494
    functionName: fu_novatek_ts_device_wait_status_ready_cb
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - FU_NOVATEK_TS_DEVICE
    - fu_novatek_ts_device_gcm_read_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_wait_status_ready_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_NOVATEK_TS_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:504,1
    - Dst: fu_novatek_ts_device_hid_read
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:508,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:513,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 501
    functionDepth: 7
    functionLinenumber: 501
    functionLinenumberEnd: 515
    functionName: fu_novatek_ts_device_wait_reset_state_cb
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_hid_read
    - g_set_error_literal
    - FU_NOVATEK_TS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_wait_reset_state_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_NOVATEK_TS_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:524,1
    - Dst: fu_novatek_ts_device_hid_read
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:527,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 521
    functionDepth: 7
    functionLinenumber: 521
    functionLinenumberEnd: 533
    functionName: fu_novatek_ts_device_get_fw_ver_cb
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_hid_read
    - g_set_error_literal
    - FU_NOVATEK_TS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_get_fw_ver_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_NOVATEK_TS_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:544,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:557,1
    - Dst: fu_novatek_ts_device_gcm_xfer
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:569,1
    - Dst: fu_novatek_ts_device_hid_read
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:571,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:575,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:579,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 541
    functionDepth: 9
    functionLinenumber: 541
    functionLinenumberEnd: 588
    functionName: fu_novatek_ts_device_read_flash_data_cb
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_novatek_ts_device_hid_read
    - fu_sum8
    - fu_novatek_ts_device_gcm_xfer
    - FU_NOVATEK_TS_DEVICE
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_read_flash_data_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:612,1
    - Dst: fu_novatek_ts_device_gcm_xfer
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:619,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - flash_addr
    - error
    argTypes:
    - FuNovatekTsDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 607
    functionDepth: 9
    functionLinenumber: 607
    functionLinenumberEnd: 625
    functionName: fu_novatek_ts_device_gcm_sector_erase
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_gcm_xfer
    - g_prefix_error_literal
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_gcm_sector_erase(FuNovatekTsDevice *self,
      guint32 flash_addr, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:643,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:647,1
    - Dst: fu_novatek_ts_device_gcm_xfer
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:657,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 5
    argNames:
    - self
    - flash_addr
    - bufsz
    - buf
    - error
    argTypes:
    - FuNovatekTsDevice*
    - guint32
    - guint16
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 627
    functionDepth: 9
    functionLinenumber: 627
    functionLinenumberEnd: 663
    functionName: fu_novatek_ts_device_page_program_gcm
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_sum16
    - fu_novatek_ts_device_gcm_xfer
    - g_prefix_error_literal
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_novatek_ts_device_page_program_gcm(FuNovatekTsDevice *self,\n\t\t\t\t
      \     guint32 flash_addr,\n\t\t\t\t      guint16 bufsz,\n\t\t\t\t      guint8
      *buf,\n\t\t\t\t      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_NOVATEK_TS_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:668,1
    - Dst: fu_novatek_ts_device_hid_read
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:672,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:685,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 665
    functionDepth: 7
    functionLinenumber: 665
    functionLinenumberEnd: 687
    functionName: fu_novatek_ts_device_check_flash_checksum_cb
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_hid_read
    - g_set_error_literal
    - FU_NOVATEK_TS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_check_flash_checksum_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:706,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:706,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 6
    argNames:
    - self
    - flash_cksum_status_addr
    - buf
    - allow_retry_once
    - retry_needed
    - error
    argTypes:
    - FuNovatekTsDevice*
    - guint32
    - guint8*
    - gboolean
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 689
    functionDepth: 3
    functionLinenumber: 689
    functionLinenumberEnd: 722
    functionName: fu_novatek_ts_device_check_flash_checksum
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_set_error_literal
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_novatek_ts_device_check_flash_checksum(FuNovatekTsDevice
      *self,\n\t\t\t\t\t  guint32 flash_cksum_status_addr,\n\t\t\t\t\t  guint8 *buf,\n\t\t\t\t\t
      \ gboolean allow_retry_once,\n\t\t\t\t\t  gboolean *retry_needed,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_novatek_ts_device_gcm_write_enable
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:731,1
    - Dst: fu_novatek_ts_device_page_program_gcm
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:734,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:736,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:737,1
    - Dst: fu_novatek_ts_device_check_flash_checksum
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:742,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:750,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 724
    functionDepth: 10
    functionLinenumber: 724
    functionLinenumberEnd: 755
    functionName: fu_novatek_ts_device_page_program_retry_cb
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_gcm_write_enable
    - fu_chunk_get_data_sz
    - g_set_error_literal
    - fu_chunk_get_data
    - fu_novatek_ts_device_page_program_gcm
    - fu_novatek_ts_device_check_flash_checksum
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_page_program_retry_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:767,1
    - Dst: fu_novatek_ts_device_gcm_xfer
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:777,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:778,1
    - Dst: fu_novatek_ts_device_hid_read
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:782,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:783,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - self
    - flash_addr
    - bufsz
    - checksum
    - error
    argTypes:
    - FuNovatekTsDevice*
    - guint32
    - guint32
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 757
    functionDepth: 9
    functionLinenumber: 757
    functionLinenumberEnd: 789
    functionName: fu_novatek_ts_device_gcm_get_checksum
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_hid_read
    - g_prefix_error_literal
    - fu_memread_uint16
    - fu_novatek_ts_device_gcm_xfer
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_novatek_ts_device_gcm_get_checksum(FuNovatekTsDevice *self,\n\t\t\t\t
      \     guint32 flash_addr,\n\t\t\t\t      guint32 bufsz,\n\t\t\t\t      guint16
      *checksum,\n\t\t\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_NOVATEK_TS_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:794,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:797,1
    - Dst: fu_novatek_ts_device_hid_write
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:798,1
    - Dst: fu_novatek_ts_device_hid_read
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:800,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:803,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 791
    functionDepth: 7
    functionLinenumber: 791
    functionLinenumberEnd: 809
    functionName: fu_novatek_ts_device_gcm_switch_enable_cb
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_hid_write
    - g_set_error_literal
    - fu_novatek_ts_device_hid_read
    - FU_NOVATEK_TS_DEVICE
    - fu_memwrite_uint24
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_gcm_switch_enable_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:814,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNovatekTsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 811
    functionDepth: 4
    functionLinenumber: 811
    functionLinenumberEnd: 819
    functionName: fu_novatek_ts_device_gcm_switch_enable
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_gcm_switch_enable(FuNovatekTsDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:826,1
    - Dst: fu_novatek_ts_device_gcm_xfer
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:831,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:832,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNovatekTsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 821
    functionDepth: 9
    functionLinenumber: 821
    functionLinenumberEnd: 838
    functionName: fu_novatek_ts_device_gcm_resume_pd
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_gcm_xfer
    - g_prefix_error_literal
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_gcm_resume_pd(FuNovatekTsDevice *self,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:844,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:847,1
    - Dst: fu_novatek_ts_device_gcm_write_enable
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:856,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:857,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:862,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:862,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:868,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:875,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:877,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:886,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:887,1
    - Dst: fu_novatek_ts_device_gcm_write_enable
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:891,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:892,1
    - Dst: fu_novatek_ts_device_gcm_sector_erase
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:897,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:898,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:901,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:901,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:903,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:903,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:909,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - self
    - bin_size
    - error
    argTypes:
    - FuNovatekTsDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 840
    functionDepth: 10
    functionLinenumber: 840
    functionLinenumberEnd: 916
    functionName: fu_novatek_ts_device_gcm_erase_flash
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_gcm_write_enable
    - fu_chunk_array_new
    - g_debug
    - g_set_error
    - fu_device_sleep
    - g_prefix_error_literal
    - g_prefix_error
    - fu_device_retry_full
    - FU_DEVICE
    - fu_novatek_ts_device_gcm_sector_erase
    - g_autoptr
    - g_ptr_array_index
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_gcm_erase_flash(FuNovatekTsDevice *self,
      guint32 bin_size, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:924,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:926,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:930,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:931,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:931,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:932,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:937,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:939,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:948,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:950,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:950,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:956,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:961,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:961,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:967,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:972,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 4
    argNames:
    - self
    - blob
    - progress
    - error
    argTypes:
    - FuNovatekTsDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 918
    functionDepth: 4
    functionLinenumber: 918
    functionLinenumberEnd: 977
    functionName: fu_novatek_ts_device_gcm_write_flash
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_index
    - fu_progress_set_steps
    - g_prefix_error
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - fu_progress_step_done
    - fu_chunk_get_address
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_novatek_ts_device_gcm_write_flash(FuNovatekTsDevice *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: g_autoptr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:985,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:987,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:991,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:992,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:992,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:993,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:999,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1001,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1004,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1005,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1006,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1014,1
    - Dst: fu_novatek_ts_device_gcm_get_checksum
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1016,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1021,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1025,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1035,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 4
    argNames:
    - self
    - blob
    - progress
    - error
    argTypes:
    - FuNovatekTsDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 979
    functionDepth: 10
    functionLinenumber: 979
    functionLinenumberEnd: 1040
    functionName: fu_novatek_ts_device_gcm_verify_flash
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_sum16
    - fu_chunk_array_new_from_bytes
    - g_set_error
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_chunk_get_address
    - fu_chunk_get_data
    - fu_novatek_ts_device_gcm_get_checksum
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_novatek_ts_device_gcm_verify_flash(FuNovatekTsDevice *self,\n\t\t\t\t
      \     GBytes *blob,\n\t\t\t\t      FuProgress *progress,\n\t\t\t\t      GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1052,1
    - Dst: fu_novatek_ts_device_gcm_xfer
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1057,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1058,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1063,1
    - Dst: fu_cfi_device_set_flash_id
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1064,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1065,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1065,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNovatekTsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1042
    functionDepth: 9
    functionLinenumber: 1042
    functionLinenumberEnd: 1066
    functionName: fu_novatek_ts_device_gcm_read_flash_mid_did
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_cfi_device_set_flash_id
    - g_prefix_error_literal
    - fu_device_setup
    - FU_DEVICE
    - g_strdup_printf
    - fu_novatek_ts_device_gcm_xfer
    - fu_cfi_device_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_gcm_read_flash_mid_did(FuNovatekTsDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_novatek_ts_device_hid_read
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1073,1
    - Dst: g_info
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNovatekTsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1068
    functionDepth: 7
    functionLinenumber: 1068
    functionLinenumberEnd: 1084
    functionName: fu_novatek_ts_device_read_start_chip_id
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_hid_read
    - g_info
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_read_start_chip_id(FuNovatekTsDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_NOVATEK_TS_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1089,1
    - Dst: fu_novatek_ts_device_read_start_chip_id
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1086
    functionDepth: 8
    functionLinenumber: 1086
    functionLinenumberEnd: 1091
    functionName: fu_novatek_ts_device_read_start_chip_id_cb
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - FU_NOVATEK_TS_DEVICE
    - fu_novatek_ts_device_read_start_chip_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_read_start_chip_id_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_novatek_ts_device_hid_write
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1098,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1102,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNovatekTsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1093
    functionDepth: 7
    functionLinenumber: 1093
    functionLinenumberEnd: 1104
    functionName: fu_novatek_ts_device_bootloader_reset
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_novatek_ts_device_hid_write
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_bootloader_reset(FuNovatekTsDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_novatek_ts_device_hid_write
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1112,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1119,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNovatekTsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1106
    functionDepth: 7
    functionLinenumber: 1106
    functionLinenumberEnd: 1122
    functionName: fu_novatek_ts_device_sw_reset_and_idle
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_novatek_ts_device_hid_write
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_sw_reset_and_idle(FuNovatekTsDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_novatek_ts_device_hid_write
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1129,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1136,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNovatekTsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1124
    functionDepth: 7
    functionLinenumber: 1124
    functionLinenumberEnd: 1138
    functionName: fu_novatek_ts_device_stop_crc_reboot
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_novatek_ts_device_hid_write
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_stop_crc_reboot(FuNovatekTsDevice *self,
      GError **error)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1147,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1148,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1149,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1150,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1151,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1152,1
    - Dst: fu_novatek_ts_device_bootloader_reset
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1155,1
    - Dst: fu_novatek_ts_device_sw_reset_and_idle
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1157,1
    - Dst: fu_novatek_ts_device_stop_crc_reboot
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1159,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1161,1
    - Dst: fu_novatek_ts_device_gcm_switch_enable
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1164,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1165,1
    - Dst: fu_novatek_ts_device_gcm_resume_pd
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1168,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1169,1
    - Dst: fu_novatek_ts_device_gcm_read_flash_mid_did
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1172,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1173,1
    - Dst: fu_novatek_ts_device_gcm_erase_flash
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1176,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1176,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1177,1
    - Dst: fu_novatek_ts_device_gcm_write_flash
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1180,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1182,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1184,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1187,1
    - Dst: fu_novatek_ts_device_gcm_verify_flash
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1190,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1192,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1194,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1197,1
    - Dst: fu_novatek_ts_device_bootloader_reset
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1200,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1202,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 4
    argNames:
    - self
    - blob
    - progress
    - error
    argTypes:
    - FuNovatekTsDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1140
    functionDepth: 11
    functionLinenumber: 1140
    functionLinenumberEnd: 1206
    functionName: fu_novatek_ts_device_update_firmware_reset
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_bootloader_reset
    - fu_novatek_ts_device_gcm_erase_flash
    - fu_novatek_ts_device_sw_reset_and_idle
    - fu_novatek_ts_device_stop_crc_reboot
    - fu_progress_add_step
    - fu_progress_add_flag
    - fu_novatek_ts_device_gcm_verify_flash
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_novatek_ts_device_gcm_read_flash_mid_did
    - fu_novatek_ts_device_gcm_write_flash
    - g_bytes_get_size
    - fu_progress_get_child
    - fu_novatek_ts_device_gcm_resume_pd
    - fu_novatek_ts_device_gcm_switch_enable
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_novatek_ts_device_update_firmware_reset(FuNovatekTsDevice
      *self,\n\t\t\t\t\t   GBytes *blob,\n\t\t\t\t\t   FuProgress *progress,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1213,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1213,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1214,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1208
    functionDepth: 1
    functionLinenumber: 1208
    functionLinenumberEnd: 1223
    functionName: fu_novatek_ts_device_probe
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_DEVICE
    - g_strcmp0
    - fu_udev_device_get_subsystem
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_novatek_ts_device_hid_write
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNovatekTsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1225
    functionDepth: 7
    functionLinenumber: 1225
    functionLinenumberEnd: 1234
    functionName: fu_novatek_ts_device_clear_fw_reset_state
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_hid_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_clear_fw_reset_state(FuNovatekTsDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_info
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1241,1
    - Dst: fu_novatek_ts_device_clear_fw_reset_state
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1246,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1249,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1249,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1255,1
    - Dst: g_info
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - state
    - error
    argTypes:
    - FuNovatekTsDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1236
    functionDepth: 8
    functionLinenumber: 1236
    functionLinenumberEnd: 1265
    functionName: fu_novatek_ts_device_check_fw_reset_state
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - g_info
    - g_set_error
    - fu_device_retry_full
    - FU_DEVICE
    - fu_novatek_ts_device_clear_fw_reset_state
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_check_fw_reset_state(FuNovatekTsDevice
      *self, guint8 state, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1271,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1273,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1273,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1278,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1279,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1281,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1287,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1288,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1288,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1293,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNovatekTsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1267
    functionDepth: 4
    functionLinenumber: 1267
    functionLinenumberEnd: 1295
    functionName: fu_novatek_ts_device_ensure_fw_ver
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_raw
    - g_steal_pointer
    - FU_DEVICE
    - g_warning
    - g_error_matches
    - fu_device_retry
    - g_autoptr
    - g_propagate_prefixed_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_ensure_fw_ver(FuNovatekTsDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1300,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1302,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1302,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1308,1
    - Dst: fu_novatek_ts_device_check_fw_reset_state
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1312,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNovatekTsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1297
    functionDepth: 9
    functionLinenumber: 1297
    functionLinenumberEnd: 1320
    functionName: fu_novatek_ts_device_check_start_ready
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_check_fw_reset_state
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - g_warning
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_check_start_ready(FuNovatekTsDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1335,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1336,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1340,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1346,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - self
    - flash_addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuNovatekTsDevice*
    - guint32
    - guint8*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1322
    functionDepth: 4
    functionLinenumber: 1322
    functionLinenumberEnd: 1355
    functionName: fu_novatek_ts_device_gcm_read_flash_data
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_set_error_literal
    - FU_DEVICE
    - fu_device_retry
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_novatek_ts_device_gcm_read_flash_data(FuNovatekTsDevice
      *self,\n\t\t\t\t\t guint32 flash_addr,\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: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1365,1
    - Dst: fu_novatek_ts_device_gcm_switch_enable
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1371,1
    - Dst: fu_novatek_ts_device_gcm_resume_pd
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1373,1
    - Dst: fu_novatek_ts_device_gcm_read_flash_mid_did
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1375,1
    - Dst: fu_novatek_ts_device_gcm_read_flash_data
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1377,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1390,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1391,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1403,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1409,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1409,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1410,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1410,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuNovatekTsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1357
    functionDepth: 10
    functionLinenumber: 1357
    functionLinenumberEnd: 1411
    functionName: fu_novatek_ts_device_ensure_flash_pid
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_build_instance_id
    - fu_strtoull
    - g_set_error_literal
    - fu_novatek_ts_device_gcm_read_flash_mid_did
    - fu_novatek_ts_device_gcm_read_flash_data
    - FU_DEVICE
    - fu_novatek_ts_device_gcm_resume_pd
    - fu_novatek_ts_device_gcm_switch_enable
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_ensure_flash_pid(FuNovatekTsDevice *self,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_NOVATEK_TS_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1416,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1417,1
    - Dst: fu_novatek_ts_device_check_start_ready
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1419,1
    - Dst: fu_novatek_ts_device_ensure_fw_ver
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1422,1
    - Dst: fu_novatek_ts_device_bootloader_reset
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1425,1
    - Dst: fu_novatek_ts_device_sw_reset_and_idle
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1427,1
    - Dst: fu_novatek_ts_device_stop_crc_reboot
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1429,1
    - Dst: fu_novatek_ts_device_ensure_flash_pid
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1433,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1434,1
    - Dst: fu_novatek_ts_device_bootloader_reset
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1439,1
    - Dst: FuDeviceClass*::setup
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1443,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1413
    functionDepth: 11
    functionLinenumber: 1413
    functionLinenumberEnd: 1444
    functionName: fu_novatek_ts_device_setup
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_bootloader_reset
    - fu_novatek_ts_device_sw_reset_and_idle
    - fu_novatek_ts_device_stop_crc_reboot
    - g_prefix_error_literal
    - FuDeviceClass*::setup
    - fu_novatek_ts_device_ensure_flash_pid
    - fu_novatek_ts_device_ensure_fw_ver
    - fu_novatek_ts_device_check_start_ready
    - FU_NOVATEK_TS_DEVICE
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1449,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1446
    functionDepth: 1
    functionLinenumber: 1446
    functionLinenumberEnd: 1450
    functionName: fu_novatek_ts_device_convert_version
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_novatek_ts_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_NOVATEK_TS_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1461,1
    - Dst: fu_novatek_ts_device_update_firmware_reset
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1462,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1457
    functionDepth: 12
    functionLinenumber: 1457
    functionLinenumberEnd: 1471
    functionName: fu_novatek_ts_device_update_firmware_cb
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_novatek_ts_device_update_firmware_reset
    - g_set_error_literal
    - FU_NOVATEK_TS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_novatek_ts_device_update_firmware_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_NOVATEK_TS_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1481,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1482,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1483,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1485,1
    - Dst: FU_IS_NOVATEK_TS_FIRMWARE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1485,1
    - Dst: fu_novatek_ts_device_check_start_ready
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1487,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1492,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1501,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1504,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1505,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1512,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1514,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1521,1
    - Dst: fu_novatek_ts_device_check_fw_reset_state
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1524,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1528,1
    - Dst: fu_novatek_ts_device_ensure_fw_ver
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1531,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1473
    functionDepth: 10
    functionLinenumber: 1473
    functionLinenumberEnd: 1536
    functionName: fu_novatek_ts_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_novatek_ts_device_check_fw_reset_state
    - g_set_error
    - fu_firmware_get_bytes
    - g_prefix_error_literal
    - fu_device_retry
    - fu_novatek_ts_device_ensure_fw_ver
    - fu_novatek_ts_device_check_start_ready
    - g_bytes_get_size
    - g_autoptr
    - fu_bytes_new_offset
    - FU_IS_NOVATEK_TS_FIRMWARE
    - FU_NOVATEK_TS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_novatek_ts_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/novatek-ts/fu-novatek-ts-device.c:1541,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1542,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1543,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1544,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1545,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1538
    functionDepth: 3
    functionLinenumber: 1538
    functionLinenumberEnd: 1547
    functionName: fu_novatek_ts_device_set_progress
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_novatek_ts_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1553,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1553,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1574,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1574,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1579,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1579,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1580,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1580,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1581,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1581,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1583,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1583,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1584,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1584,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1585,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1585,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1586,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1586,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1587,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuNovatekTsDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1549
    functionDepth: 6
    functionLinenumber: 1549
    functionLinenumberEnd: 1588
    functionName: fu_novatek_ts_device_init
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_firmware_size_max
    - fu_device_set_name
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_retry_add_recovery
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_novatek_ts_device_init(FuNovatekTsDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_NOVATEK_TS_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1593,1
    - Dst: fu_cfi_device_new
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1594,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1594,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1590
    functionDepth: 1
    functionLinenumber: 1590
    functionLinenumberEnd: 1598
    functionName: fu_novatek_ts_device_constructed
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - FU_NOVATEK_TS_DEVICE
    - fu_cfi_device_new
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_novatek_ts_device_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_NOVATEK_TS_DEVICE
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1603,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1604,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1600
    functionDepth: 0
    functionLinenumber: 1600
    functionLinenumberEnd: 1606
    functionName: fu_novatek_ts_device_finalize
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - FU_NOVATEK_TS_DEVICE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_novatek_ts_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1611,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c:1612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuNovatekTsDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1608
    functionDepth: 0
    functionLinenumber: 1608
    functionLinenumberEnd: 1622
    functionName: fu_novatek_ts_device_class_init
    functionSourceFile: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_novatek_ts_device_class_init(FuNovatekTsDeviceClass *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/kinetic-dp/fu-kinetic-dp-secure-firmware.c
    functionUses: 1446
    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_KINETIC_DP_SECURE_FIRMWARE
    - fu_kinetic_dp_chip_to_string
    - fu_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    - fu_xmlb_builder_insert_kb
    - GET_PRIVATE
    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: 3
    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:
    - fu_input_stream_read_safe
    - g_set_error_literal
    - memcmp
    - G_N_ELEMENTS
    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:
    - g_return_val_if_fail
    - FU_KINETIC_DP_SECURE_FIRMWARE
    - 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:
    - g_return_val_if_fail
    - FU_KINETIC_DP_SECURE_FIRMWARE
    - 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:
    - g_return_val_if_fail
    - FU_KINETIC_DP_SECURE_FIRMWARE
    - 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:
    - g_return_val_if_fail
    - FU_KINETIC_DP_SECURE_FIRMWARE
    - 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:
    - g_return_val_if_fail
    - FU_KINETIC_DP_SECURE_FIRMWARE
    - 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:
    - fu_firmware_set_version_raw
    - g_set_error
    - fu_input_stream_size
    - fu_struct_kinetic_dp_jaguar_footer_parse_stream
    - FU_FIRMWARE
    - fu_struct_kinetic_dp_jaguar_footer_get_fw_ver
    - g_autoptr
    - fu_struct_kinetic_dp_jaguar_footer_get_fw_rev
    - GET_PRIVATE
    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
      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:233,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:239,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:241,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:242,1
    - Dst: fu_kinetic_dp_secure_firmware_parse_chip_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:246,1
    - Dst: fu_kinetic_dp_secure_firmware_parse_app_fw
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:251,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:252,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 187
    functionDepth: 4
    functionLinenumber: 187
    functionLinenumberEnd: 258
    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
    - fu_firmware_add_image
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - g_set_error_literal
    - fu_kinetic_dp_secure_firmware_parse_chip_id
    - g_prefix_error_literal
    - fu_firmware_set_idx
    - fu_firmware_new
    - g_autoptr
    - fu_input_stream_read_u32
    - fu_partial_input_stream_new
    - fu_kinetic_dp_secure_firmware_parse_app_fw
    - GET_PRIVATE
    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:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:263,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:263,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:264,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuKineticDpSecureFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: fu_kinetic_dp_secure_firmware_init
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_size_max
    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:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuKineticDpSecureFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 273
    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:
    - g_return_val_if_fail
    - strncmp
    - fu_kinetic_dp_device_set_chip_id
    - g_set_error
    - g_set_error_literal
    - g_steal_pointer
    - FU_KINETIC_DP_DEVICE
    - fu_dpaux_device_get_dpcd_dev_id
    - fu_device_incorporate
    - FU_DEVICE
    - g_object_new
    - strlen
    - fu_kinetic_dp_device_set_fw_state
    - G_N_ELEMENTS
    - g_autoptr
    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_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:107,1
    - Dst: fu_plugin_add_device
      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
    - fu_kinetic_dp_plugin_create_device
    - fu_device_locker_new
    - FU_KINETIC_DP_PLUGIN
    - FU_IS_DPAUX_DEVICE
    - FU_DEVICE
    - FU_DPAUX_DEVICE
    - g_autoptr
    - fu_plugin_add_device
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-plugin.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 132
    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
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_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:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuKineticDpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 140
    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: 1454
    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_fw_state_to_string
    - fu_kinetic_dp_family_to_string
    - fu_kinetic_dp_chip_to_string
    - FU_KINETIC_DP_DEVICE
    - fwupd_codec_string_append
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    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_literal
      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:
    - FU_DPAUX_DEVICE
    - fu_dpaux_device_read
    - g_prefix_error_literal
    - g_set_error
    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_literal
      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
    - fu_dpaux_device_write
    - g_prefix_error_literal
    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_literal
      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_literal
      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: 7
    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_device_add_instance_u8
    - fu_device_build_instance_id
    - fu_dpaux_device_read
    - fu_device_add_private_flag
    - g_prefix_error_literal
    - FU_DEVICE
    - FU_DPAUX_DEVICE
    - fu_device_build_instance_id_full
    - GET_PRIVATE
    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: 8
    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_get_name_for_chip_id
    - fu_device_add_instance_strup
    - fu_device_add_instance_str
    - fu_kinetic_dp_family_to_string
    - g_set_error_literal
    - fu_device_add_instance_u16
    - fu_kinetic_dp_device_ensure_customer
    - FU_KINETIC_DP_DEVICE
    - fu_dpaux_device_get_dpcd_dev_id
    - fu_device_set_name
    - FU_DEVICE
    - FU_DPAUX_DEVICE
    - fu_kinetic_dp_device_chip_id_to_family
    - fu_device_build_instance_id_full
    - fu_dpaux_device_get_dpcd_ieee_oui
    - FU_DEVICE_CLASS
    - GET_PRIVATE
    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_add_flag
    - fu_device_build_vendor_id_u16
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_set_vendor
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    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_literal
      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_literal
    - 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_literal
      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_literal
    - 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_literal
      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_literal
      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: 3
    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_dpaux_device_write
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - FU_DPAUX_DEVICE
    - GUINT_TO_POINTER
    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:142,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:143,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:144,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:145,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:148,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:151,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:151,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:152,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:153,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:154,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:157,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - fw
    - error
    argTypes:
    - FuKineticDpPumaDevice*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 164
    functionName: fu_kinetic_dp_puma_device_send_chunk
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - fu_dpaux_device_write
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - g_prefix_error
    - FU_DPAUX_DEVICE
    - fu_chunk_get_data
    - fu_chunk_array_length
    - g_autoptr
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kinetic_dp_puma_device_send_chunk(FuKineticDpPumaDevice
      *self, GBytes *fw, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:174,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:174,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:180,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:181,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:181,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:182,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:183,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:184,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:187,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:192,1
    - Dst: fu_kinetic_dp_puma_device_send_chunk
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:193,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:194,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:196,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:201,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:201,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:205,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:207,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 6
    argNames:
    - self
    - fw
    - progress
    - wait_time_ms
    - ignore_error
    - error
    argTypes:
    - FuKineticDpPumaDevice*
    - GBytes*
    - FuProgress*
    - guint32
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 166
    functionDepth: 4
    functionLinenumber: 166
    functionLinenumberEnd: 213
    functionName: fu_kinetic_dp_puma_device_send_payload
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - fu_kinetic_dp_puma_device_send_chunk
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_index
    - fu_progress_set_steps
    - g_prefix_error
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - fu_progress_step_done
    - fu_chunk_get_address
    - GUINT_TO_POINTER
    - fu_chunk_get_bytes
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_kinetic_dp_puma_device_send_payload(FuKineticDpPumaDevice
      *self,\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:219,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:224,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:227,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:227,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:231,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:233,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:236,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:236,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:242,1
    - Dst: fu_struct_kinetic_dp_flash_info_parse
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:245,1
    - Dst: fu_struct_kinetic_dp_flash_info_get_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:246,1
    - Dst: fu_struct_kinetic_dp_flash_info_get_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:247,1
    - Dst: fu_struct_kinetic_dp_flash_info_get_erase_time
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuKineticDpPumaDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 252
    functionName: fu_kinetic_dp_puma_device_wait_drv_ready
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_struct_kinetic_dp_flash_info_get_size
    - fu_dpaux_device_read
    - fu_struct_kinetic_dp_flash_info_get_erase_time
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - FU_DPAUX_DEVICE
    - fu_struct_kinetic_dp_flash_info_get_id
    - GUINT_TO_POINTER
    - g_autoptr
    - fu_struct_kinetic_dp_flash_info_parse
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_kinetic_dp_puma_device_wait_drv_ready(FuKineticDpPumaDevice
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_kinetic_dp_puma_device_enter_code_loading_mode
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:260,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:261,1
    - Dst: fu_kinetic_dp_puma_device_send_payload
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:264,1
    - Dst: fu_kinetic_dp_puma_device_wait_drv_ready
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:270,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:271,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:275,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:275,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:278,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuKineticDpPumaDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 254
    functionDepth: 6
    functionLinenumber: 254
    functionLinenumberEnd: 291
    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_device_add_flag
    - fu_kinetic_dp_puma_device_enter_code_loading_mode
    - fu_kinetic_dp_puma_device_wait_drv_ready
    - g_set_error_literal
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_kinetic_dp_puma_device_send_payload
    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:302,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:302,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:308,1
    - Dst: fu_kinetic_dp_device_get_fw_state
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:313,1
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:313,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:316,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:319,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:319,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:320,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:321,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:325,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:327,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:333,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:333,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:339,1
    - Dst: fu_struct_kinetic_dp_flash_info_parse
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:343,1
    - Dst: fu_struct_kinetic_dp_flash_info_get_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:344,1
    - Dst: fu_struct_kinetic_dp_flash_info_get_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:345,1
    - Dst: fu_struct_kinetic_dp_flash_info_get_erase_time
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:346,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:351,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:357,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:364,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:364,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:368,1
    - Dst: fu_device_sleep
      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: fu_device_sleep
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:372,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:372,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:373,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:373,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:377,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:379,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 3
    argNames:
    - self
    - firmware
    - error
    argTypes:
    - FuKineticDpPumaDevice*
    - FuKineticDpPumaFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 293
    functionDepth: 6
    functionLinenumber: 293
    functionLinenumberEnd: 385
    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_add_flag
    - fu_dpaux_device_write
    - g_debug
    - fu_device_sleep
    - fu_struct_kinetic_dp_flash_info_get_size
    - fu_kinetic_dp_device_get_fw_state
    - fu_dpaux_device_read
    - g_prefix_error_literal
    - FU_KINETIC_DP_DEVICE
    - fu_device_retry_full
    - FU_DEVICE
    - fu_struct_kinetic_dp_flash_info_get_erase_time
    - g_set_error_literal
    - FU_DPAUX_DEVICE
    - fu_struct_kinetic_dp_flash_info_get_id
    - GUINT_TO_POINTER
    - g_autoptr
    - fu_struct_kinetic_dp_flash_info_parse
    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:390,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:395,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:399,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:399,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:408,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:408,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:415,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 420
    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
    - g_strdup_printf
    - FU_DPAUX_DEVICE
    - FU_KINETIC_DP_PUMA_DEVICE
    - FU_DEVICE_CLASS
    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:429,1
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 430
    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_dpcd_write_oui
    - FU_KINETIC_DP_DEVICE
    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:438,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:441,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:441,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:442,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:442,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 456
    functionName: fu_kinetic_dp_puma_device_cleanup
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - fu_dpaux_device_write
    - fu_device_sleep
    - g_prefix_error_literal
    - FU_DEVICE
    - FU_DPAUX_DEVICE
    - FU_KINETIC_DP_PUMA_DEVICE
    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:465,1
    - Dst: FU_KINETIC_DP_PUMA_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:466,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:467,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:470,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:471,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:472,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:473,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:474,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:475,1
    - Dst: fu_kinetic_dp_device_get_fw_state
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:478,1
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:478,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:480,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:484,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:489,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:490,1
    - Dst: fu_kinetic_dp_puma_device_send_isp_drv
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:491,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:493,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:498,1
    - Dst: fu_kinetic_dp_puma_device_enable_fw_update_mode
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:501,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:503,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:507,1
    - Dst: fu_kinetic_dp_puma_device_send_payload
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:510,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:512,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:516,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:519,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:522,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:522,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:523,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:523,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:527,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:529,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:532,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: 536
      start: 458
    functionDepth: 7
    functionLinenumber: 458
    functionLinenumberEnd: 536
    functionName: fu_kinetic_dp_puma_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - fu_kinetic_dp_puma_device_enable_fw_update_mode
    - fu_progress_add_flag
    - fu_kinetic_dp_puma_device_send_isp_drv
    - FU_KINETIC_DP_DEVICE
    - FU_KINETIC_DP_PUMA_DEVICE
    - g_debug
    - g_prefix_error_literal
    - fu_progress_add_step
    - fu_device_sleep
    - fu_progress_step_done
    - FU_DEVICE
    - FU_KINETIC_DP_PUMA_FIRMWARE
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_kinetic_dp_device_get_fw_state
    - fu_device_retry_full
    - fu_kinetic_dp_puma_device_send_payload
    - g_bytes_get_size
    - GUINT_TO_POINTER
    - g_autoptr
    - fu_firmware_get_image_by_idx_bytes
    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:541,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:542,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:543,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:544,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:545,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 547
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:553,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:553,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:554,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuKineticDpPumaDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 549
    functionDepth: 6
    functionLinenumber: 549
    functionLinenumberEnd: 555
    functionName: fu_kinetic_dp_puma_device_init
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_add_flag
    - 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:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuKineticDpPumaDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 567
    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: 1460
    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_chip_to_string
    - fu_xmlb_builder_insert_kx
    - FU_KINETIC_DP_PUMA_FIRMWARE
    - fu_xmlb_builder_insert_kv
    - GET_PRIVATE
    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: 3
    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:
    - fu_input_stream_read_safe
    - g_set_error_literal
    - memcmp
    - G_N_ELEMENTS
    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: 21
    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: fu_size_checked_inc
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:130,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:131,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:135,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:146,1
    - Dst: fu_struct_kinetic_dp_puma_header_info_parse_stream
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:147,1
    - Dst: fu_struct_kinetic_dp_puma_header_info_get_length
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:152,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:154,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:163,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:171,1
    - Dst: g_prefix_error
      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:177,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:186,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:192,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:198,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:204,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:204,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:207,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:215,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:221,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:222,1
    - Dst: fu_input_stream_read_u24
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:229,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:238,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:240,1
    - Dst: fu_input_stream_read_u24
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:246,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 77
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuKineticDpPumaFirmware*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 97
    functionDepth: 4
    functionLinenumber: 97
    functionLinenumberEnd: 255
    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_input_stream_read_u16
    - fu_sum8
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_input_stream_read_byte_array
    - memcmp
    - GET_PRIVATE
    - fu_firmware_set_version_raw
    - FU_FIRMWARE
    - fu_input_stream_read_u24
    - fu_struct_kinetic_dp_puma_header_info_parse_stream
    - fu_input_stream_read_u8
    - g_set_error
    - fu_input_stream_size
    - fu_struct_kinetic_dp_puma_header_info_get_length
    - g_prefix_error
    - fu_size_checked_inc
    - g_autoptr
    - fu_struct_kinetic_dp_puma_header_parse_stream
    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:263,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:264,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:268,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:269,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:270,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:270,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:271,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:271,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:276,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:281,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:284,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:286,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:287,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:291,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:294,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:301,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:307,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:309,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:310,1
    - Dst: fu_kinetic_dp_puma_firmware_parse_chip_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:314,1
    - Dst: fu_kinetic_dp_puma_firmware_parse_app_fw
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:316,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:317,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 257
    functionDepth: 5
    functionLinenumber: 257
    functionLinenumberEnd: 323
    functionName: fu_kinetic_dp_puma_firmware_parse
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_add_image
    - fu_firmware_parse_stream
    - fu_input_stream_size
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_firmware_set_idx
    - fu_firmware_new
    - FU_KINETIC_DP_PUMA_FIRMWARE
    - fu_kinetic_dp_puma_firmware_parse_app_fw
    - fu_kinetic_dp_puma_firmware_parse_chip_id
    - g_autoptr
    - fu_input_stream_read_u32
    - fu_partial_input_stream_new
    - GET_PRIVATE
    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:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:328,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:328,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:329,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuKineticDpPumaFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: fu_kinetic_dp_puma_firmware_init
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-puma-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_size_max
    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:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuKineticDpPumaFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 338
    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:
    - fu_kinetic_dp_bank_to_string
    - FU_KINETIC_DP_SECURE_DEVICE
    - fwupd_codec_string_append_hex
    - 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_literal
      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:
    - FU_DPAUX_DEVICE
    - fu_dpaux_device_read
    - g_prefix_error_literal
    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_literal
      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
    - fu_dpaux_device_write
    - g_prefix_error_literal
    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_literal
      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
    - fu_dpaux_device_write
    - g_prefix_error_literal
    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_literal
      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:
    - fu_kinetic_dp_dpcd_to_string
    - g_set_error
    - g_set_error_literal
    - fu_dpaux_device_read
    - g_prefix_error_literal
    - GPOINTER_TO_UINT
    - FU_KINETIC_DP_SECURE_DEVICE
    - FU_DPAUX_DEVICE
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:173,1
    - Dst: fu_kinetic_dp_secure_device_write_kt_prop_cmd
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:180,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:184,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:184,1
    - Dst: GUINT_TO_POINTER
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:188,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    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: 195
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 195
    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_kinetic_dp_secure_device_write_kt_prop_cmd
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - GUINT_TO_POINTER
    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:208,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:208,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:214,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:219,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:229,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:229,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:235,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: 242
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 242
    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:
    - FU_DPAUX_DEVICE
    - fu_dpaux_device_read
    - g_prefix_error_literal
    - g_set_error
    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:253,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
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:267,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:270,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - buf
    - len
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 276
    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_prefix_error_literal
    - FU_DPAUX_DEVICE
    - fu_dpaux_device_write
    - g_set_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:282,1
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 283
    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_dpcd_write_oui
    - FU_KINETIC_DP_DEVICE
    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:293,1
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:293,1
    - Dst: fu_kinetic_dp_secure_device_send_kt_prop_cmd
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:296,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:307,1
    - Dst: fu_kinetic_dp_secure_device_write_dpcd_reply_data_reg
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:308,1
    - Dst: fu_kinetic_dp_secure_device_send_kt_prop_cmd
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - self
    - code_size
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 285
    functionDepth: 4
    functionLinenumber: 285
    functionLinenumberEnd: 321
    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_write_dpcd_reply_data_reg
    - fu_kinetic_dp_device_get_fw_state
    - fu_kinetic_dp_secure_device_send_kt_prop_cmd
    - FU_KINETIC_DP_DEVICE
    - fu_memwrite_uint32
    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: 352
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 352
    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:360,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:361,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:364,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:365,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:365,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:366,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:367,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:370,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:373,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:373,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:374,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:375,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:376,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:379,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:379,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 354
    functionDepth: 4
    functionLinenumber: 354
    functionLinenumberEnd: 387
    functionName: fu_kinetic_dp_secure_device_send_chunk
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_dpaux_device_write
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_chunk_get_address
    - FU_DPAUX_DEVICE
    - fu_chunk_get_data
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:397,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:397,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:403,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:404,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:404,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:405,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:406,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:407,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:412,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:417,1
    - Dst: fu_kinetic_dp_secure_device_send_chunk
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:418,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:420,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:422,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:424,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:429,1
    - Dst: fu_kinetic_dp_secure_device_crc16
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:430,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:430,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:431,1
    - Dst: fu_kinetic_dp_secure_device_write_dpcd_reply_data_reg
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:433,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:437,1
    - Dst: fu_kinetic_dp_secure_device_send_kt_prop_cmd
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:442,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:449,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:452,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: 457
      start: 389
    functionDepth: 5
    functionLinenumber: 389
    functionLinenumberEnd: 457
    functionName: fu_kinetic_dp_secure_device_send_payload
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_kinetic_dp_secure_device_crc16
    - fu_chunk_get_data_sz
    - g_autoptr
    - fu_memwrite_uint32
    - fu_kinetic_dp_secure_device_send_chunk
    - fu_progress_set_steps
    - g_prefix_error_literal
    - fu_chunk_get_bytes
    - fu_kinetic_dp_secure_device_write_dpcd_reply_data_reg
    - fu_kinetic_dp_secure_device_send_kt_prop_cmd
    - fu_progress_step_done
    - fu_chunk_get_data
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_chunk_get_address
    - fu_progress_set_id
    - fu_chunk_array_index
    - g_prefix_error
    - fu_chunk_array_new_from_bytes
    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:464,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:467,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:467,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:483,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:489,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:497,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 502
    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:
    - FU_DPAUX_DEVICE
    - FU_KINETIC_DP_SECURE_DEVICE
    - fu_dpaux_device_read
    - g_set_error_literal
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:512,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:519,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:519,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - wait_time_ms
    - poll_interval_ms
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 529
    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
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_device_retry_full
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:537,1
    - Dst: fu_kinetic_dp_secure_device_write_kt_prop_cmd
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:544,1
    - Dst: fu_kinetic_dp_secure_device_wait_dpcd_cmd_cleared
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:549,1
    - Dst: fu_kinetic_dp_secure_device_read_param_reg
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:551,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:556,1
    - Dst: fu_kinetic_dp_secure_device_read_dpcd_reply_data_reg
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:564,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:569,1
    - Dst: fu_struct_kinetic_dp_flash_info_parse
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:572,1
    - Dst: fu_struct_kinetic_dp_flash_info_get_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:575,1
    - Dst: fu_struct_kinetic_dp_flash_info_get_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:576,1
    - Dst: fu_struct_kinetic_dp_flash_info_get_erase_time
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:577,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:583,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:583,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:586,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:592,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 531
    functionDepth: 6
    functionLinenumber: 531
    functionLinenumberEnd: 601
    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_device_add_flag
    - fu_kinetic_dp_secure_device_write_kt_prop_cmd
    - fu_struct_kinetic_dp_flash_info_parse
    - fu_kinetic_dp_secure_device_read_param_reg
    - g_set_error_literal
    - fu_struct_kinetic_dp_flash_info_get_size
    - fu_struct_kinetic_dp_flash_info_get_erase_time
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_struct_kinetic_dp_flash_info_get_id
    - fu_kinetic_dp_secure_device_read_dpcd_reply_data_reg
    - g_autoptr
    - fu_kinetic_dp_secure_device_wait_dpcd_cmd_cleared
    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:609,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:610,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:612,1
    - Dst: fu_kinetic_dp_secure_device_send_payload
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:616,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:617,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:621,1
    - Dst: fu_kinetic_dp_secure_device_execute_isp_drv
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:622,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:623,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 603
    functionDepth: 7
    functionLinenumber: 603
    functionLinenumberEnd: 627
    functionName: fu_kinetic_dp_secure_device_send_isp_drv
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_prefix_error_literal
    - fu_kinetic_dp_secure_device_execute_isp_drv
    - g_bytes_get_size
    - fu_kinetic_dp_secure_device_send_payload
    - fu_kinetic_dp_secure_device_enter_code_loading_mode
    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:638,1
    - Dst: fu_kinetic_dp_secure_firmware_get_esm_payload_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:641,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:646,1
    - Dst: fu_kinetic_dp_secure_firmware_get_arm_app_code_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:649,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:654,1
    - Dst: fu_kinetic_dp_secure_firmware_get_app_init_data_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:657,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:662,1
    - Dst: fu_kinetic_dp_secure_firmware_get_esm_xip_enabled
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:666,1
    - Dst: fu_kinetic_dp_secure_firmware_get_cmdb_block_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:667,1
    - Dst: fu_kinetic_dp_secure_device_write_dpcd_reply_data_reg
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:672,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:673,1
    - Dst: fu_kinetic_dp_secure_device_send_kt_prop_cmd
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:677,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:684,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - firmware
    - self
    - error
    argTypes:
    - FuKineticDpSecureFirmware*
    - FuKineticDpSecureDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 629
    functionDepth: 4
    functionLinenumber: 629
    functionLinenumberEnd: 689
    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_device_write_dpcd_reply_data_reg
    - fu_kinetic_dp_secure_firmware_get_esm_xip_enabled
    - fu_memwrite_uint16_safe
    - fu_kinetic_dp_secure_device_send_kt_prop_cmd
    - g_prefix_error_literal
    - fu_kinetic_dp_secure_firmware_get_arm_app_code_size
    - fu_memwrite_uint32_safe
    - fu_kinetic_dp_secure_firmware_get_app_init_data_size
    - fu_kinetic_dp_secure_firmware_get_esm_payload_size
    - fu_kinetic_dp_secure_firmware_get_cmdb_block_size
    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:698,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:699,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:700,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:701,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:704,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:705,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:706,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:707,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:708,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:709,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:713,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:716,1
    - Dst: fu_kinetic_dp_secure_device_send_payload
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:722,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:726,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:728,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:732,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:735,1
    - Dst: fu_kinetic_dp_secure_firmware_get_esm_payload_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:737,1
    - Dst: fu_kinetic_dp_secure_device_send_payload
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:741,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:745,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:747,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:750,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:753,1
    - Dst: fu_kinetic_dp_secure_firmware_get_arm_app_code_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:755,1
    - Dst: fu_kinetic_dp_secure_device_send_payload
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:759,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:763,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:765,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:768,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_firmware_get_esm_xip_enabled
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:773,1
    - Dst: fu_kinetic_dp_secure_firmware_get_app_init_data_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:776,1
    - Dst: fu_kinetic_dp_secure_device_send_payload
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:780,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:784,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:786,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:789,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:792,1
    - Dst: fu_kinetic_dp_secure_device_send_payload
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:798,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:802,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:804,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:807,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: 811
      start: 691
    functionDepth: 6
    functionLinenumber: 691
    functionLinenumberEnd: 811
    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_xip_enabled
    - fu_progress_add_step
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_kinetic_dp_secure_firmware_get_app_init_data_size
    - fu_kinetic_dp_secure_firmware_get_arm_app_code_size
    - fu_bytes_new_offset
    - fu_kinetic_dp_secure_device_send_payload
    - fu_kinetic_dp_secure_firmware_get_esm_payload_size
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:818,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:821,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:821,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:827,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:835,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:843,1
    - Dst: fu_kinetic_dp_dpcd_to_string
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:847,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 849
    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:
    - fu_kinetic_dp_dpcd_to_string
    - g_set_error
    - g_set_error_literal
    - fu_dpaux_device_read
    - g_prefix_error_literal
    - FU_KINETIC_DP_SECURE_DEVICE
    - FU_DPAUX_DEVICE
    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:856,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:857,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:861,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:861,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 851
    functionDepth: 3
    functionLinenumber: 851
    functionLinenumberEnd: 873
    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_DEVICE
    - fu_kinetic_dp_secure_device_write_kt_prop_cmd
    - g_prefix_error_literal
    - fu_device_retry_full
    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:882,1
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:882,1
    - Dst: fu_kinetic_dp_secure_device_write_mca_oui
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:887,1
    - Dst: fu_kinetic_dp_secure_device_send_kt_prop_cmd
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:889,1
    - Dst: fu_kinetic_dp_secure_device_read_param_reg
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:897,1
    - Dst: fu_kinetic_dp_secure_device_clear_kt_prop_cmd
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:899,1
    - Dst: fu_kinetic_dp_device_dpcd_write_oui
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:903,1
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:903,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:906,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:909,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuKineticDpSecureDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 875
    functionDepth: 4
    functionLinenumber: 875
    functionLinenumberEnd: 915
    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:
    - fu_kinetic_dp_secure_device_write_mca_oui
    - g_debug
    - fu_kinetic_dp_secure_device_read_param_reg
    - g_set_error_literal
    - fu_kinetic_dp_secure_device_send_kt_prop_cmd
    - fu_kinetic_dp_device_dpcd_read_oui
    - FU_KINETIC_DP_DEVICE
    - fu_kinetic_dp_secure_device_clear_kt_prop_cmd
    - 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:921,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 923
    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:928,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:931,1
    - Dst: fu_kinetic_dp_device_get_fw_state
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:935,1
    - Dst: FU_KINETIC_DP_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:935,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:937,1
    - Dst: fu_kinetic_dp_secure_device_get_flash_bank_idx
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:938,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 925
    functionDepth: 6
    functionLinenumber: 925
    functionLinenumberEnd: 944
    functionName: fu_kinetic_dp_secure_device_setup
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_kinetic_dp_device_get_fw_state
    - fu_kinetic_dp_secure_device_get_flash_bank_idx
    - FU_KINETIC_DP_DEVICE
    - FU_KINETIC_DP_SECURE_DEVICE
    - FU_DEVICE_CLASS
    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:952,1
    - Dst: fu_kinetic_dp_secure_device_write_mca_oui
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 946
    functionDepth: 4
    functionLinenumber: 946
    functionLinenumberEnd: 954
    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
    - fu_kinetic_dp_secure_device_write_mca_oui
    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:962,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:965,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:965,1
    - Dst: fu_kinetic_dp_secure_device_write_kt_prop_cmd
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 956
    functionDepth: 3
    functionLinenumber: 956
    functionLinenumberEnd: 971
    functionName: fu_kinetic_dp_secure_device_cleanup
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_kinetic_dp_secure_device_write_kt_prop_cmd
    - FU_KINETIC_DP_SECURE_DEVICE
    - FU_DEVICE
    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:980,1
    - Dst: FU_KINETIC_DP_SECURE_FIRMWARE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:981,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:982,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:983,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:986,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:987,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:988,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:992,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:997,1
    - Dst: fu_kinetic_dp_secure_device_send_isp_drv
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:998,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1000,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1004,1
    - Dst: fu_kinetic_dp_secure_device_enable_fw_update_mode
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1007,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1012,1
    - Dst: fu_kinetic_dp_secure_device_send_app_fw
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1015,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1018,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1021,1
    - Dst: fu_kinetic_dp_secure_device_install_fw_images
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1024,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: 1025
      start: 973
    functionDepth: 8
    functionLinenumber: 973
    functionLinenumberEnd: 1025
    functionName: fu_kinetic_dp_secure_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - FU_KINETIC_DP_SECURE_FIRMWARE
    - fu_progress_add_step
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_kinetic_dp_secure_device_send_isp_drv
    - fu_kinetic_dp_secure_device_enable_fw_update_mode
    - FU_KINETIC_DP_SECURE_DEVICE
    - fu_kinetic_dp_secure_device_send_app_fw
    - fu_kinetic_dp_secure_device_install_fw_images
    - g_bytes_get_size
    - g_autoptr
    - fu_firmware_get_image_by_idx_bytes
    - fu_progress_set_id
    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:1030,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1031,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1032,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1033,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1034,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1027
    functionDepth: 3
    functionLinenumber: 1027
    functionLinenumberEnd: 1036
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1043,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1043,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1044,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1044,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1045,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuKineticDpSecureDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1038
    functionDepth: 6
    functionLinenumber: 1038
    functionLinenumberEnd: 1046
    functionName: fu_kinetic_dp_secure_device_init
    functionSourceFile: /src/fwupd/plugins/kinetic-dp/fu-kinetic-dp-secure-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_add_flag
    - fu_device_set_firmware_gtype
    - fu_device_retry_add_recovery
    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:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuKineticDpSecureDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1059
    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: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c
    functionUses: 1463
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint64
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c:21,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: fu_goodixtp_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint64
    - fu_firmware_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_goodixtp_firmware_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c:27,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c:27,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c:28,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c:28,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c:29,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixtpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: fu_goodixtp_firmware_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_firmware_init(FuGoodixtpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGoodixtpFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: fu_goodixtp_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    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: 3
    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_memwrite_uint16
    - fu_goodixtp_hid_device_get_report
    - fu_goodixtp_hid_device_set_report
    - fu_memcpy_safe
    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: 3
    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:74,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:78,1
    - Dst: fu_goodixtp_gtx8_device_read_pkg
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:79,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:80,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:81,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 87
    functionName: fu_goodixtp_gtx8_device_hid_read
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - fu_goodixtp_gtx8_device_read_pkg
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - fu_chunk_array_mutable_new
    - g_autoptr
    - g_ptr_array_index
    - 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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:96,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:98,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:102,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:111,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:113,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:113,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:114,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:114,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:115,1
    - Dst: fu_chunk_get_data
      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:119,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:121,1
    - Dst: fu_goodixtp_hid_device_set_report
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:125,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:125,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:127,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:129,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:131,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 137
    functionName: fu_goodixtp_gtx8_device_hid_write
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new
    - FU_GOODIXTP_HID_DEVICE
    - fu_memwrite_uint16
    - fu_chunk_get_data_sz
    - fu_goodixtp_hid_device_set_report
    - g_prefix_error
    - fu_chunk_get_data
    - fu_memcpy_safe
    - g_autoptr
    - g_ptr_array_index
    - 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:147,1
    - Dst: fu_goodixtp_hid_device_set_report
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:150,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:150,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 159
    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_literal
    - FU_GOODIXTP_HID_DEVICE
    - fu_memcpy_safe
    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:173,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:174,1
    - Dst: fu_goodixtp_gtx8_device_hid_read
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:177,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:178,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:183,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:185,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:193,1
    - Dst: fu_goodixtp_hid_device_set_patch_pid
      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_memread_uint32
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:196,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:198,1
    - Dst: fu_goodixtp_hid_device_set_patch_vid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:199,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:199,1
    - Dst: fu_goodixtp_hid_device_set_sensor_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:202,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:202,1
    - Dst: fu_goodixtp_hid_device_set_config_ver
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:203,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:203,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:208,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 161
    functionDepth: 5
    functionLinenumber: 161
    functionLinenumberEnd: 210
    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_set_patch_pid
    - fu_goodixtp_gtx8_device_hid_read
    - FU_GOODIXTP_HID_DEVICE
    - fu_memstrsafe
    - g_set_error
    - fu_device_set_version_raw
    - fu_memread_uint32
    - fu_goodixtp_hid_device_set_config_ver
    - fu_goodixtp_hid_device_set_patch_vid
    - g_prefix_error_literal
    - fu_sum8
    - FU_DEVICE
    - g_strdup_printf
    - fu_goodixtp_hid_device_set_sensor_id
    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:220,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:225,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:228,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:228,1
    - Dst: fu_goodixtp_gtx8_device_hid_write
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:231,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:236,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:239,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:239,1
    - Dst: fu_goodixtp_gtx8_device_hid_read
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:240,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:241,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:245,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 212
    functionDepth: 5
    functionLinenumber: 212
    functionLinenumberEnd: 255
    functionName: fu_goodixtp_gtx8_device_disable_report
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - fu_goodixtp_gtx8_device_hid_read
    - g_set_error
    - fu_device_sleep
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_goodixtp_gtx8_device_hid_write
    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:260,1
    - Dst: fu_goodixtp_gtx8_device_hid_read
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:263,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 257
    functionDepth: 5
    functionLinenumber: 257
    functionLinenumberEnd: 270
    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_hid_read
    - FU_GOODIXTP_GTX8_DEVICE
    - 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:281,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:282,1
    - Dst: fu_goodixtp_gtx8_device_send_cmd
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:286,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:290,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:294,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:294,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:296,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:296,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:302,1
    - Dst: fu_goodixtp_gtx8_device_disable_report
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:306,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:307,1
    - Dst: fu_goodixtp_gtx8_device_send_cmd
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:312,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:316,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:319,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:319,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 272
    functionDepth: 6
    functionLinenumber: 272
    functionLinenumberEnd: 322
    functionName: fu_goodixtp_gtx8_device_update_prepare
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - fu_goodixtp_gtx8_device_send_cmd
    - fu_device_sleep
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - fu_goodixtp_gtx8_device_disable_report
    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:332,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:333,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:336,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:336,1
    - Dst: fu_goodixtp_gtx8_device_send_cmd
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:337,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 324
    functionDepth: 4
    functionLinenumber: 324
    functionLinenumberEnd: 345
    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_literal
    - 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:350,1
    - Dst: fu_goodixtp_gtx8_device_hid_read
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:353,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 347
    functionDepth: 5
    functionLinenumber: 347
    functionLinenumberEnd: 360
    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_hid_read
    - FU_GOODIXTP_GTX8_DEVICE
    - 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:365,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:372,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:375,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:376,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:378,1
    - Dst: fu_goodixtp_gtx8_device_hid_write
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:382,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:387,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:390,1
    - Dst: fu_sum16w
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:395,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:396,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:397,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:397,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:398,1
    - Dst: fu_goodixtp_gtx8_device_send_cmd
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:399,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:400,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:404,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:406,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:412,1
    - Dst: fu_goodixtp_gtx8_device_hid_write
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:416,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:422,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 362
    functionDepth: 4
    functionLinenumber: 362
    functionLinenumberEnd: 424
    functionName: fu_goodixtp_gtx8_device_load_sub_firmware_cb
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - fu_goodixtp_gtx8_device_send_cmd
    - fu_memwrite_uint16
    - fu_chunk_get_data_sz
    - fu_device_sleep
    - g_prefix_error
    - g_prefix_error_literal
    - fu_device_retry_full
    - fu_chunk_get_data
    - FU_GOODIXTP_GTX8_DEVICE
    - fu_memcpy_safe
    - fu_sum16w
    - fu_goodixtp_gtx8_device_hid_write
    - fu_chunk_get_address
    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:429,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:429,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:435,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 426
    functionDepth: 3
    functionLinenumber: 426
    functionLinenumberEnd: 441
    functionName: fu_goodixtp_gtx8_device_update_process
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_chunk_get_address
    - g_prefix_error
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_gtx8_device_update_process(FuGoodixtpGtx8Device
      *self, FuChunk *chk, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXTP_GTX8_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:446,1
    - Dst: fu_goodixtp_gtx8_device_ensure_version
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:448,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:449,1
    - Dst: fu_goodixtp_hid_device_get_patch_pid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:453,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:453,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:455,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:462,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:462,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:463,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:463,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:464,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 443
    functionDepth: 7
    functionLinenumber: 443
    functionLinenumberEnd: 466
    functionName: fu_goodixtp_gtx8_device_setup
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - FU_GOODIXTP_HID_DEVICE
    - fu_device_build_instance_id
    - g_set_error_literal
    - fu_device_add_instance_strsafe
    - g_prefix_error_literal
    - fu_device_get_vid
    - fu_goodixtp_gtx8_device_ensure_version
    - FU_GOODIXTP_GTX8_DEVICE
    - fu_goodixtp_hid_device_get_patch_pid
    - fu_device_add_instance_u16
    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:475,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:476,1
    - Dst: fu_goodixtp_gtx8_firmware_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:476,1
    - Dst: fu_goodixtp_gtx8_firmware_parse
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:477,1
    - Dst: FU_GOODIXTP_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:478,1
    - Dst: fu_goodixtp_hid_device_get_sensor_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:480,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:480,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:483,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: 484
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 484
    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_FIRMWARE
    - g_steal_pointer
    - fu_goodixtp_gtx8_firmware_parse
    - fu_goodixtp_hid_device_get_sensor_id
    - FU_GOODIXTP_GTX8_DEVICE
    - fu_goodixtp_gtx8_firmware_new
    - 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:492,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:493,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:495,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:498,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:499,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:506,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:507,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:507,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:508,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:509,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:512,1
    - Dst: fu_goodixtp_gtx8_device_update_process
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:515,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:517,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:517,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:518,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - self
    - img
    - progress
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 486
    functionDepth: 4
    functionLinenumber: 486
    functionLinenumberEnd: 521
    functionName: fu_goodixtp_gtx8_device_write_image
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - fu_goodixtp_gtx8_device_update_process
    - fu_firmware_get_stream
    - fu_device_sleep
    - fu_chunk_array_index
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_firmware_get_addr
    - FU_DEVICE
    - fu_chunk_array_new_from_stream
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:529,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:530,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:532,1
    - Dst: fu_goodixtp_gtx8_device_write_image
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:533,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:535,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - imgs
    - progress
    - error
    argTypes:
    - FuGoodixtpGtx8Device*
    - GPtrArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 523
    functionDepth: 5
    functionLinenumber: 523
    functionLinenumberEnd: 541
    functionName: fu_goodixtp_gtx8_device_write_images
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_goodixtp_gtx8_device_write_image
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    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:550,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:551,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:553,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:553,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:556,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:557,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:558,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:559,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:560,1
    - Dst: fu_goodixtp_gtx8_device_update_prepare
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:562,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:564,1
    - Dst: fu_goodixtp_gtx8_device_write_images
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:565,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:567,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:570,1
    - Dst: fu_goodixtp_gtx8_device_soft_reset_ic
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:573,1
    - Dst: fu_goodixtp_gtx8_device_ensure_version
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:575,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:577,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:580,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:582,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:586,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c:587,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: 593
      start: 543
    functionDepth: 7
    functionLinenumber: 543
    functionLinenumberEnd: 593
    functionName: fu_goodixtp_gtx8_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_raw
    - fu_firmware_get_version_raw
    - fu_progress_add_step
    - g_set_error
    - fu_progress_add_flag
    - fu_goodixtp_gtx8_device_soft_reset_ic
    - fu_progress_step_done
    - fu_firmware_get_images
    - fu_goodixtp_gtx8_device_update_prepare
    - fu_device_get_version
    - fu_goodixtp_gtx8_device_ensure_version
    - FU_GOODIXTP_GTX8_DEVICE
    - fu_firmware_get_version
    - fu_goodixtp_gtx8_device_write_images
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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: 598
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 598
    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:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGoodixtpGtx8DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 609
    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: 3
    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_memwrite_uint16
    - fu_goodixtp_hid_device_get_report
    - fu_goodixtp_hid_device_set_report
    - fu_memcpy_safe
    - fu_memwrite_uint32
    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: 3
    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:66,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:70,1
    - Dst: fu_goodixtp_brlb_device_read_pkg
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:71,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:72,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:73,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuGoodixtpBrlbDevice*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 79
    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_chunk_array_mutable_new
    - fu_goodixtp_brlb_device_read_pkg
    - g_autoptr
    - g_ptr_array_index
    - 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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:88,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:90,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:94,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:103,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:105,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:105,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:106,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:106,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:107,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:110,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:111,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:113,1
    - Dst: fu_goodixtp_hid_device_set_report
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:116,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:116,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:118,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:120,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:122,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:123,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuGoodixtpBrlbDevice*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 128
    functionName: fu_goodixtp_brlb_device_hid_write
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new
    - FU_GOODIXTP_HID_DEVICE
    - fu_memwrite_uint16
    - fu_chunk_get_data_sz
    - fu_goodixtp_hid_device_set_report
    - g_prefix_error
    - fu_chunk_get_address
    - fu_chunk_get_data
    - fu_memcpy_safe
    - g_autoptr
    - g_ptr_array_index
    - fu_memwrite_uint32
    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:144,1
    - Dst: fu_goodixtp_hid_device_set_report
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:146,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:146,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:150,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: 154
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 154
    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_GOODIXTP_HID_DEVICE
    - fu_memcpy_safe
    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:167,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:168,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:175,1
    - Dst: fu_goodixtp_hid_device_set_patch_pid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:177,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:177,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:178,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:180,1
    - Dst: fu_goodixtp_hid_device_set_patch_vid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:181,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:181,1
    - Dst: fu_goodixtp_hid_device_set_sensor_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:184,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:184,1
    - Dst: fu_goodixtp_brlb_device_hid_read
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:186,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:187,1
    - Dst: fu_goodixtp_hid_device_set_config_ver
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:192,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:192,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:194,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGoodixtpBrlbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 156
    functionDepth: 5
    functionLinenumber: 156
    functionLinenumberEnd: 196
    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_set_patch_pid
    - FU_GOODIXTP_HID_DEVICE
    - fu_memstrsafe
    - fu_device_set_version_raw
    - fu_memread_uint32
    - fu_goodixtp_hid_device_set_config_ver
    - fu_goodixtp_hid_device_set_patch_vid
    - g_prefix_error_literal
    - FU_DEVICE
    - g_strdup_printf
    - fu_goodixtp_hid_device_set_sensor_id
    - 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:201,1
    - Dst: fu_goodixtp_brlb_device_hid_read
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:204,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 198
    functionDepth: 5
    functionLinenumber: 198
    functionLinenumberEnd: 211
    functionName: fu_goodixtp_brlb_device_wait_mini_cb
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - FU_GOODIXTP_BRLB_DEVICE
    - fu_goodixtp_brlb_device_hid_read
    - g_set_error
    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:216,1
    - Dst: memset
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:220,1
    - Dst: fu_goodixtp_brlb_device_hid_write
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:221,1
    - Dst: fu_goodixtp_brlb_device_hid_read
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:223,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:225,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 213
    functionDepth: 5
    functionLinenumber: 213
    functionLinenumberEnd: 231
    functionName: fu_goodixtp_brlb_device_wait_erase_cb
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - FU_GOODIXTP_BRLB_DEVICE
    - g_set_error_literal
    - fu_goodixtp_brlb_device_hid_write
    - memcmp
    - fu_goodixtp_brlb_device_hid_read
    - memset
    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:240,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:241,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:245,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:245,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:246,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:246,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:252,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:255,1
    - Dst: fu_goodixtp_brlb_device_send_cmd
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:259,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:260,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:264,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:264,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:265,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:265,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGoodixtpBrlbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 277
    functionName: fu_goodixtp_brlb_device_update_prepare
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_device_sleep
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - fu_goodixtp_brlb_device_send_cmd
    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:282,1
    - Dst: fu_goodixtp_brlb_device_hid_read
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:285,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:286,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 279
    functionDepth: 5
    functionLinenumber: 279
    functionLinenumberEnd: 294
    functionName: fu_goodixtp_brlb_device_wait_flash_cb
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - FU_GOODIXTP_BRLB_DEVICE
    - fu_goodixtp_brlb_device_hid_read
    - g_prefix_error_literal
    - g_set_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:299,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:305,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:308,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:309,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:311,1
    - Dst: fu_goodixtp_brlb_device_hid_write
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:316,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:321,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:328,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:338,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:339,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:339,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:340,1
    - Dst: fu_goodixtp_brlb_device_send_cmd
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:341,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:342,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:346,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:349,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:355,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 296
    functionDepth: 4
    functionLinenumber: 296
    functionLinenumberEnd: 359
    functionName: fu_goodixtp_brlb_device_load_sub_firmware_cb
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - FU_GOODIXTP_BRLB_DEVICE
    - fu_chunk_get_data_sz
    - fu_memwrite_uint16
    - fu_device_sleep
    - g_prefix_error_literal
    - fu_goodixtp_brlb_device_hid_write
    - fu_device_retry_full
    - fu_chunk_get_address
    - fu_chunk_get_data
    - fu_goodixtp_brlb_device_send_cmd
    - fu_memcpy_safe
    - fu_memread_uint16_safe
    - fu_memwrite_uint32
    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:364,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:364,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:370,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuGoodixtpBrlbDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 376
    functionName: fu_goodixtp_brlb_device_update_process
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_chunk_get_address
    - g_prefix_error
    - fu_device_retry_full
    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:384,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:385,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:388,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGoodixtpBrlbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 378
    functionDepth: 4
    functionLinenumber: 378
    functionLinenumberEnd: 390
    functionName: fu_goodixtp_brlb_device_update_finish
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_goodixtp_brlb_device_send_cmd
    - g_prefix_error_literal
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodixtp_brlb_device_update_finish(FuGoodixtpBrlbDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIXTP_BRLB_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:395,1
    - Dst: fu_goodixtp_brlb_device_ensure_version
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:397,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:398,1
    - Dst: fu_goodixtp_hid_device_get_patch_pid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:402,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:402,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:404,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:411,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:411,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:412,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:412,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:413,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 392
    functionDepth: 7
    functionLinenumber: 392
    functionLinenumberEnd: 415
    functionName: fu_goodixtp_brlb_device_setup
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - FU_GOODIXTP_HID_DEVICE
    - fu_device_build_instance_id
    - FU_GOODIXTP_BRLB_DEVICE
    - fu_goodixtp_brlb_device_ensure_version
    - g_set_error_literal
    - fu_device_add_instance_strsafe
    - g_prefix_error_literal
    - fu_device_get_vid
    - fu_goodixtp_hid_device_get_patch_pid
    - fu_device_add_instance_u16
    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:424,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:425,1
    - Dst: fu_goodixtp_brlb_firmware_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:425,1
    - Dst: fu_goodixtp_brlb_firmware_parse
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:426,1
    - Dst: FU_GOODIXTP_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:427,1
    - Dst: fu_goodixtp_hid_device_get_sensor_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:429,1
    - Dst: FU_GOODIXTP_HID_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:429,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:432,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: 433
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 433
    functionName: fu_goodixtp_brlb_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - fu_goodixtp_brlb_firmware_new
    - FU_GOODIXTP_HID_DEVICE
    - FU_GOODIXTP_BRLB_DEVICE
    - FU_GOODIXTP_FIRMWARE
    - g_steal_pointer
    - fu_goodixtp_hid_device_get_sensor_id
    - g_autoptr
    - fu_goodixtp_brlb_firmware_parse
    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:441,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:442,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:444,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:447,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:448,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:455,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:456,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:456,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:457,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:458,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:461,1
    - Dst: fu_goodixtp_brlb_device_update_process
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:464,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:466,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:466,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:467,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - self
    - img
    - progress
    - error
    argTypes:
    - FuGoodixtpBrlbDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 435
    functionDepth: 4
    functionLinenumber: 435
    functionLinenumberEnd: 470
    functionName: fu_goodixtp_brlb_device_write_image
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_device_sleep
    - fu_chunk_array_index
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_firmware_get_addr
    - FU_DEVICE
    - fu_chunk_array_new_from_stream
    - fu_chunk_array_length
    - fu_goodixtp_brlb_device_update_process
    - g_autoptr
    - fu_progress_set_id
    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:478,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:479,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:481,1
    - Dst: fu_goodixtp_brlb_device_write_image
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:482,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:484,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - self
    - imgs
    - progress
    - error
    argTypes:
    - FuGoodixtpBrlbDevice*
    - GPtrArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 472
    functionDepth: 5
    functionLinenumber: 472
    functionLinenumberEnd: 490
    functionName: fu_goodixtp_brlb_device_write_images
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - fu_goodixtp_brlb_device_write_image
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    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:499,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:500,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:502,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:502,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:505,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:506,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:507,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:508,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:509,1
    - Dst: fu_goodixtp_brlb_device_update_prepare
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:511,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:513,1
    - Dst: fu_goodixtp_brlb_device_write_images
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:514,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:516,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:519,1
    - Dst: fu_goodixtp_brlb_device_update_finish
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:520,1
    - Dst: fu_goodixtp_brlb_device_ensure_version
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:522,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:524,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:527,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:529,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:533,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:534,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: 540
      start: 492
    functionDepth: 6
    functionLinenumber: 492
    functionLinenumberEnd: 540
    functionName: fu_goodixtp_brlb_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_raw
    - fu_firmware_get_version_raw
    - fu_goodixtp_brlb_device_update_finish
    - fu_progress_add_step
    - FU_GOODIXTP_BRLB_DEVICE
    - fu_goodixtp_brlb_device_ensure_version
    - fu_progress_add_flag
    - g_set_error
    - fu_progress_step_done
    - fu_firmware_get_images
    - fu_goodixtp_brlb_device_update_prepare
    - fu_device_get_version
    - fu_firmware_get_version
    - fu_goodixtp_brlb_device_write_images
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:545,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixtpBrlbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 546
    functionName: fu_goodixtp_brlb_device_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_summary
    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:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGoodixtpBrlbDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 556
    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: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    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:33,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:34,1
    - Dst: fu_plugin_set_device_gtype_default
      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_device_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
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:40,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:41,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: fu_goodixtp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_plugin_constructed(GObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 6
    argCount: 1
    argNames:
    - pid
    argTypes:
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 58
    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:67,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:69,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:69,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:69,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:70,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:74,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:74,1
    - Dst: fu_goodixtp_plugin_ic_type_from_pid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:78,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:78,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:80,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:80,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:82,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:84,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:85,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:93,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:93,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:95,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:97,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:98,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:101,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:105,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 60
    functionDepth: 9
    functionLinenumber: 60
    functionLinenumberEnd: 111
    functionName: fu_goodixtp_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_device_get_pid
    - g_set_error
    - fu_goodixtp_plugin_ic_type_from_pid
    - fu_device_locker_new
    - fu_plugin_get_context
    - fu_device_incorporate
    - g_object_new
    - g_autoptr
    - FU_UDEV_DEVICE
    - fu_udev_device_get_subsystem
    - fu_plugin_add_device
    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:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGoodixtpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 119
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.c:28,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.c:31,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.c:39,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 45
    functionName: fu_goodixtp_brlb_config_parse
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_size
    - fu_firmware_set_version_raw
    - g_set_error_literal
    - fu_input_stream_read_u8
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_brlb_config_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/goodix-tp/fu-goodixtp-brlb-config.c:50,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.c:50,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.c:51,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.c:51,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.c:52,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.c:52,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.c:53,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixtpBrlbConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: fu_goodixtp_brlb_config_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_addr
    - FU_FIRMWARE
    - fu_firmware_set_idx
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_brlb_config_init(FuGoodixtpBrlbConfig *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGoodixtpBrlbConfigClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: fu_goodixtp_brlb_config_class_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_brlb_config_class_init(FuGoodixtpBrlbConfigClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.c:66,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: fu_goodixtp_brlb_config_new
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_goodixtp_brlb_config_new(void)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:36,1
    - Dst: fu_goodixtp_brlb_config_new
      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: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:38,1
    - Dst: fu_struct_goodix_tp_cfg_group_parse_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:40,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:45,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:49,1
    - Dst: fu_struct_goodix_tp_cfg_group_get_checksum
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:53,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:54,1
    - Dst: fu_struct_goodix_tp_cfg_group_get_update_flag
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:61,1
    - Dst: fu_struct_goodix_tp_cfg_group_get_cfg_num
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:65,1
    - Dst: fu_struct_goodix_tp_cfg_item_parse_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:67,1
    - Dst: fu_struct_goodix_tp_cfg_item_get_len
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:72,1
    - Dst: fu_struct_goodix_tp_cfg_item_get_id
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:73,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:77,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:81,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:86,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:87,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:90,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:96,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:96,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:98,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:99,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:100,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:101,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 7
    argNames:
    - self
    - stream
    - offset
    - sensor_id
    - cfg_ver
    - update_flag
    - error
    argTypes:
    - FuGoodixtpFirmware*
    - GInputStream*
    - gsize
    - guint8
    - guint8*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 105
    functionName: fu_goodixtp_brlb_firmware_parse_config
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_size
    - fu_struct_goodix_tp_cfg_item_get_len
    - fu_struct_goodix_tp_cfg_group_get_checksum
    - g_debug
    - fu_firmware_add_image
    - g_set_error_literal
    - fu_struct_goodix_tp_cfg_item_parse_stream
    - fu_goodixtp_brlb_config_new
    - fu_struct_goodix_tp_cfg_group_get_cfg_num
    - FU_FIRMWARE
    - fu_struct_goodix_tp_cfg_group_parse_stream
    - fu_struct_goodix_tp_cfg_item_get_id
    - fu_partial_input_stream_new
    - fu_input_stream_read_u8
    - fu_firmware_get_version_raw
    - fu_input_stream_size
    - fu_struct_goodix_tp_cfg_group_get_update_flag
    - fu_firmware_parse_stream
    - fu_size_checked_inc
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodixtp_brlb_firmware_parse_config(FuGoodixtpFirmware
      *self,\n\t\t\t\t       GInputStream *stream,\n\t\t\t\t       gsize offset,\n\t\t\t\t
      \      guint8 sensor_id,\n\t\t\t\t       guint8 *cfg_ver,\n\t\t\t\t       guint8
      *update_flag,\n\t\t\t\t       GError **error)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:126,1
    - Dst: fu_struct_goodix_brlb_hdr_parse_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:128,1
    - Dst: fu_struct_goodix_brlb_hdr_get_firmware_size
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:131,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:132,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:138,1
    - Dst: fu_struct_goodix_brlb_hdr_get_checksum
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:142,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:143,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:151,1
    - Dst: fu_goodixtp_brlb_firmware_parse_config
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:154,1
    - Dst: fu_struct_goodix_brlb_hdr_get_subsys_num
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:165,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:167,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:176,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:176,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:177,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:178,1
    - Dst: fu_struct_goodix_brlb_img_parse_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:180,1
    - Dst: fu_struct_goodix_brlb_img_get_size
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:184,1
    - Dst: fu_struct_goodix_brlb_img_get_kind
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:185,1
    - Dst: fu_struct_goodix_brlb_img_get_addr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:186,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:189,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:191,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:197,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:199,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:204,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:205,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:206,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:209,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:215,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:215,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:217,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:219,1
    - Dst: fu_struct_goodix_brlb_hdr_get_vid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:223,1
    - Dst: fu_struct_goodix_brlb_hdr_get_vid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:224,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:226,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:226,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 73
    argCount: 4
    argNames:
    - self
    - stream
    - sensor_id
    - error
    argTypes:
    - FuGoodixtpFirmware*
    - GInputStream*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 107
    functionDepth: 5
    functionLinenumber: 107
    functionLinenumberEnd: 228
    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_input_stream_read_u16
    - fu_struct_goodix_brlb_hdr_get_subsys_num
    - fu_struct_goodix_brlb_img_get_kind
    - fu_firmware_set_addr
    - fu_struct_goodix_brlb_hdr_get_vid
    - fu_firmware_add_image
    - g_set_error_literal
    - fu_goodixtp_brlb_firmware_parse_config
    - fu_firmware_set_version_raw
    - FU_FIRMWARE
    - fu_struct_goodix_brlb_img_parse_stream
    - fu_firmware_set_idx
    - fu_firmware_new
    - fu_partial_input_stream_new
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - fu_struct_goodix_brlb_hdr_get_checksum
    - fu_struct_goodix_brlb_img_get_addr
    - fu_struct_goodix_brlb_hdr_get_firmware_size
    - fu_struct_goodix_brlb_img_get_size
    - fu_size_checked_inc
    - g_autoptr
    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_add_image_gtype
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:233,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:233,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:234,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:234,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:235,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:235,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:236,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixtpBrlbFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 237
    functionName: fu_goodixtp_brlb_firmware_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_set_size_max
    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: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    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:247,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: fu_goodixtp_brlb_firmware_new
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-firmware.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_goodixtp_brlb_firmware_new(void)'
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:37,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:38,1
    - Dst: fu_struct_goodix_gtx8_hdr_parse_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:43,1
    - Dst: fu_struct_goodix_gtx8_hdr_get_firmware_size
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:46,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:48,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:56,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:59,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:62,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:71,1
    - Dst: fu_struct_goodix_gtx8_hdr_get_checksum
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:75,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:76,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:89,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:98,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:108,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:112,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:120,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:126,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:129,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:140,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:146,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:154,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:155,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:155,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:156,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:157,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:158,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:161,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:162,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:162,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:164,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:166,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:174,1
    - Dst: fu_struct_goodix_gtx8_hdr_get_subsys_num
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:187,1
    - Dst: g_set_error_literal
      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:198,1
    - Dst: fu_struct_goodix_gtx8_img_parse_stream
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:200,1
    - Dst: fu_struct_goodix_gtx8_img_get_size
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:203,1
    - Dst: fu_struct_goodix_gtx8_img_get_kind
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:204,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:205,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:206,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:206,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:207,1
    - Dst: fu_struct_goodix_gtx8_img_get_kind
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:207,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:208,1
    - Dst: fu_struct_goodix_gtx8_img_get_addr
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:208,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:209,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:212,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:213,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:213,1
    - Dst: fu_struct_goodix_gtx8_hdr_get_vid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:220,1
    - Dst: fu_struct_goodix_gtx8_hdr_get_vid
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:221,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:223,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:223,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 119
    argCount: 4
    argNames:
    - self
    - stream
    - sensor_id
    - error
    argTypes:
    - FuGoodixtpFirmware*
    - GInputStream*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 225
    functionName: fu_goodixtp_gtx8_firmware_parse
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c
    functionUses: 1
    functionsReached:
    - fu_struct_goodix_gtx8_img_get_addr
    - fu_struct_goodix_gtx8_img_parse_stream
    - fu_firmware_set_bytes
    - fu_struct_goodix_gtx8_hdr_get_vid
    - fu_struct_goodix_gtx8_hdr_get_firmware_size
    - fu_firmware_set_addr
    - g_debug
    - fu_firmware_add_image
    - g_set_error_literal
    - fu_struct_goodix_gtx8_hdr_parse_stream
    - fu_struct_goodix_gtx8_img_get_size
    - fu_firmware_set_version_raw
    - g_bytes_get_data
    - FU_FIRMWARE
    - fu_struct_goodix_gtx8_hdr_get_subsys_num
    - fu_firmware_set_idx
    - fu_firmware_new
    - fu_memread_uint8_safe
    - fu_bytes_new_offset
    - fu_memread_uint16_safe
    - fu_struct_goodix_gtx8_hdr_get_checksum
    - fu_input_stream_read_bytes
    - g_set_error
    - g_autoptr
    - fu_struct_goodix_gtx8_img_get_kind
    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_add_image_gtype
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:230,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:230,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:231,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixtpGtx8Firmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: fu_goodixtp_gtx8_firmware_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    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: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    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:242,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: fu_goodixtp_gtx8_firmware_new
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-gtx8-firmware.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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: 1463
    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_clear_pointer
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:27,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - patch_pid
    argTypes:
    - FuGoodixtpHidDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: fu_goodixtp_hid_device_set_patch_pid
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 2
    functionsReached:
    - g_strdup_printf
    - g_clear_pointer
    - GET_PRIVATE
    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:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixtpHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: fu_goodixtp_hid_device_get_patch_pid
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 2
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_goodixtp_hid_device_get_patch_pid(FuGoodixtpHidDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:41,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - patch_vid
    argTypes:
    - FuGoodixtpHidDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: fu_goodixtp_hid_device_set_patch_vid
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - GET_PRIVATE
    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:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - sensor_id
    argTypes:
    - FuGoodixtpHidDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    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:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - ver
    argTypes:
    - FuGoodixtpHidDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    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:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixtpHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    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:69,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:70,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:71,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:72,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:73,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: fu_goodixtp_hid_device_to_string
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append
    - FU_GOODIXTP_HID_DEVICE
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    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:86,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:86,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:91,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:95,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuGoodixtpHidDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 77
    functionDepth: 5
    functionLinenumber: 77
    functionLinenumberEnd: 106
    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
    - g_prefix_error_literal
    - FU_HIDRAW_DEVICE
    - 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:114,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:114,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuGoodixtpHidDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 108
    functionDepth: 5
    functionLinenumber: 108
    functionLinenumberEnd: 123
    functionName: fu_goodixtp_hid_device_set_report
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 6
    functionsReached:
    - fu_hidraw_device_set_feature
    - g_prefix_error_literal
    - FU_HIDRAW_DEVICE
    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:128,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:129,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:130,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:131,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:132,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:133,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: fu_goodixtp_hid_device_set_progress
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_goodixtp_hid_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint64
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:140,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: fu_goodixtp_hid_device_convert_version
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint64
    - fu_device_get_version_format
    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:146,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:146,1
    - Dst: fu_device_add_flag
      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_device_add_flag
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:148,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:148,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:149,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:149,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:150,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:150,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:151,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:151,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:152,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:152,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:153,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:153,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:154,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:154,1
    - Dst: fu_device_set_priority
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:155,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:155,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:156,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:156,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:157,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:157,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:158,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixtpHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 143
    functionDepth: 6
    functionLinenumber: 143
    functionLinenumberEnd: 159
    functionName: fu_goodixtp_hid_device_init
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_summary
    - fu_device_set_vendor
    - fu_device_set_priority
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    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:164,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:165,1
    - Dst: g_free
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:166,1
    - Dst: g_free
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:167,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 169
    functionName: fu_goodixtp_hid_device_finalize
    functionSourceFile: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_GOODIXTP_HID_DEVICE
    - G_OBJECT_CLASS
    - GET_PRIVATE
    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:174,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/goodix-tp/fu-goodixtp-hid-device.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGoodixtpHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 181
    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_set_error_literal
    - g_strcmp0
    - 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:
    - fu_device_has_instance_id
    - fwupd_bios_setting_get_name
    - g_debug
    - fu_context_get_bios_setting
    - fwupd_bios_setting_set_read_only
    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_strcmp0
    - g_debug
    - fu_context_get_bios_setting
    - fwupd_bios_setting_get_current_value
    - fu_context_get_bios_setting_pending_reboot
    - fu_device_inhibit
    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
    - g_strcmp0
    - fu_plugin_get_context
    - 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_strcmp0
    - g_debug
    - fwupd_security_attr_add_flag
    - fu_context_get_bios_setting
    - fwupd_security_attr_set_result
    - fu_plugin_security_attr_new
    - fwupd_bios_setting_get_current_value
    - fu_plugin_get_context
    - fu_security_attr_add_bios_target_value
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    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:48,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:49,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:50,1
    - Dst: g_test_log_set_fatal_handler
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:52,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:55,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:56,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:59,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:60,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:61,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:65,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:66,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:68,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_context_load_hwinfo
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:73,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:74,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:75,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:76,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:77,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:78,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:81,1
    - Dst: fu_uefi_capsule_plugin_get_type
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:81,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:82,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:83,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:84,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:87,1
    - Dst: fu_lenovo_thinklmi_plugin_get_type
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:87,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:88,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:89,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:90,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 41
    functionDepth: 10
    functionLinenumber: 41
    functionLinenumberEnd: 92
    functionName: fu_test_self_init
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_reload_bios_settings
    - fu_context_set_path
    - fu_plugin_new_from_gtype
    - fu_plugin_runner_startup
    - g_assert_no_error
    - fu_lenovo_thinklmi_plugin_get_type
    - fu_plugin_get_context
    - g_test_log_set_fatal_handler
    - fu_progress_new
    - fu_uefi_capsule_plugin_get_type
    - fu_context_new_full
    - fu_context_load_quirks
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - fu_context_load_hwinfo
    linkageType: ''
    returnType: void
    signature: void fu_test_self_init(FuTest *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:100,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:101,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:103,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:103,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:105,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:108,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:109,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:110,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:111,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:112,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:112,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:113,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 115
    functionName: fu_test_probe_fake_esrt
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - g_signal_connect
    - g_assert_nonnull
    - g_assert_no_error
    - g_object_ref
    - fu_progress_new
    - fu_device_has_flag
    - G_CALLBACK
    - g_assert_true
    - g_autoptr
    - fu_plugin_runner_coldplug
    - g_signal_handler_disconnect
    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:122,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:123,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:125,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:127,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:129,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:130,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:131,1
    - Dst: fu_test_probe_fake_esrt
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:133,1
    - Dst: fu_plugin_runner_device_register
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:134,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:135,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 117
    functionDepth: 9
    functionLinenumber: 117
    functionLinenumberEnd: 136
    functionName: fu_lenovo_thinklmi_bootorder_locked_func
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_reload_bios_settings
    - fu_context_set_path
    - g_assert_no_error
    - fu_device_has_flag
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - fu_test_probe_fake_esrt
    - fu_plugin_runner_device_register
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_thinklmi_bootorder_locked_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:143,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:144,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:146,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:148,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:150,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:151,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:152,1
    - Dst: fu_test_probe_fake_esrt
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:153,1
    - Dst: fu_plugin_runner_device_register
      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_device_has_flag
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 138
    functionDepth: 9
    functionLinenumber: 138
    functionLinenumberEnd: 156
    functionName: fu_lenovo_thinklmi_bootorder_unlocked_func
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_reload_bios_settings
    - fu_context_set_path
    - g_assert_no_error
    - fu_device_has_flag
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - fu_test_probe_fake_esrt
    - fu_plugin_runner_device_register
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_thinklmi_bootorder_unlocked_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:163,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:164,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:165,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:171,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:173,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:174,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:175,1
    - Dst: fu_test_probe_fake_esrt
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:176,1
    - Dst: fu_plugin_runner_device_register
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:177,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:178,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 158
    functionDepth: 9
    functionLinenumber: 158
    functionLinenumberEnd: 179
    functionName: fu_lenovo_thinklmi_reboot_pending_func
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_reload_bios_settings
    - fu_context_set_path
    - g_assert_no_error
    - fu_device_has_flag
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - fu_test_probe_fake_esrt
    - fu_plugin_runner_device_register
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_thinklmi_reboot_pending_func(gconstpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:185,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:187,1
    - Dst: g_free
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 189
    functionName: fu_test_self_free
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_test_self_free(FuTest *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:199,1
    - Dst: g_new0
      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:201,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:202,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:203,1
    - Dst: fu_test_self_init
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:204,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:205,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:208,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:211,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 215
    functionName: main
    functionSourceFile: /src/fwupd/plugins/lenovo-thinklmi/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_new0
    - g_setenv
    - g_test_init
    - fu_test_self_init
    - g_test_add_data_func
    - g_test_run
    - g_autoptr
    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_igsc_fwdata_device_info_export
      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
    - fu_igsc_fwdata_device_info_export
    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:
    - g_return_val_if_fail
    - fu_igsc_fwdata_device_info4_get_vendor_id
    - fu_igsc_fwdata_device_info4_get_subsys_vendor_id
    - g_set_error
    - FU_IS_IGSC_OPROM_FIRMWARE
    - fu_igsc_fwdata_device_info4_get_subsys_device_id
    - fu_igsc_fwdata_device_info4_get_device_id
    - g_ptr_array_index
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:88,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:91,1
    - Dst: fu_oprom_firmware_get_subsystem
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:96,1
    - Dst: FU_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:96,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:98,1
    - Dst: fu_oprom_firmware_get_subsystem
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:102,1
    - Dst: FU_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:102,1
    - Dst: fu_oprom_firmware_get_machine_type
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:106,1
    - Dst: FU_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:106,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:108,1
    - Dst: fu_oprom_firmware_get_machine_type
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:112,1
    - Dst: FU_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:112,1
    - Dst: fu_oprom_firmware_get_compression_type
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:116,1
    - Dst: FU_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:116,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:118,1
    - Dst: fu_oprom_firmware_get_compression_type
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:122,1
    - Dst: FU_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:122,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:128,1
    - Dst: FU_IS_IFWI_CPD_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:131,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:132,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:138,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:141,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:144,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:146,1
    - Dst: fu_igsc_fwdata_device_info_parse
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:147,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 153
    functionName: fu_igsc_oprom_firmware_parse
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_raw
    - FU_IGSC_OPROM_FIRMWARE
    - FU_IS_IFWI_CPD_FIRMWARE
    - FU_OPROM_FIRMWARE
    - g_set_error
    - fu_oprom_firmware_get_subsystem
    - FU_FIRMWARE_CLASS
    - g_set_error_literal
    - fu_firmware_get_image_by_id
    - fu_firmware_get_images
    - g_ptr_array_index
    - fu_oprom_firmware_get_compression_type
    - g_autoptr
    - fu_igsc_fwdata_device_info_parse
    - fu_oprom_firmware_get_machine_type
    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:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscOpromFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 160
    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:165,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:167,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: fu_igsc_oprom_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IGSC_OPROM_FIRMWARE
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    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:175,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-firmware.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIgscOpromFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 180
    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:26,1
    - Dst: fwupd_codec_string_append_hex
      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
    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_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_proxy
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:38,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:41,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:43,1
    - Dst: fu_device_build_instance_id
      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:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 32
    functionDepth: 7
    functionLinenumber: 32
    functionLinenumberEnd: 56
    functionName: fu_igsc_aux_device_probe
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_str
    - fu_device_build_instance_id
    - fu_device_has_private_flag
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_aux_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_AUX_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:61,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:66,1
    - Dst: fu_igsc_device_get_aux_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:69,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:69,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:74,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:77,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:78,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:80,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 86
    functionName: fu_igsc_aux_device_setup
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c
    functionUses: 0
    functionsReached:
    - FU_IGSC_AUX_DEVICE
    - g_strdup
    - FU_IGSC_DEVICE
    - fu_device_set_version
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - g_strdup_printf
    - fu_igsc_device_get_aux_version
    - fu_device_get_proxy
    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:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:97,1
    - Dst: FU_IGSC_AUX_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:97,1
    - Dst: fu_igsc_aux_firmware_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:97,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:100,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:100,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:104,1
    - Dst: fu_igsc_aux_firmware_match_device
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:107,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:108,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:109,1
    - Dst: fu_igsc_device_get_ssvid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:110,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:110,1
    - Dst: fu_igsc_device_get_ssdid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:111,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:111,1
    - Dst: fu_igsc_aux_firmware_get_major_version
      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_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:121,1
    - Dst: fu_igsc_aux_firmware_get_major_vcn
      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_major_vcn
      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: 19
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 137
    functionName: fu_igsc_aux_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c
    functionUses: 0
    functionsReached:
    - FU_IGSC_AUX_DEVICE
    - FU_IGSC_DEVICE
    - fu_device_get_pid
    - g_set_error
    - fu_firmware_parse_stream
    - fu_igsc_aux_firmware_new
    - FU_FIRMWARE
    - fu_igsc_device_get_ssvid
    - fu_igsc_device_get_ssdid
    - fu_igsc_aux_firmware_get_major_version
    - g_steal_pointer
    - fu_device_get_vid
    - FU_IGSC_AUX_FIRMWARE
    - fu_igsc_aux_firmware_match_device
    - fu_device_get_proxy
    - g_autoptr
    - fu_igsc_aux_firmware_get_major_vcn
    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: 4
    BranchProfiles: []
    Callsites:
    - 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_device_get_proxy
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:159,1
    - Dst: fu_igsc_device_write_blob
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:162,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:162,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: 168
      start: 139
    functionDepth: 5
    functionLinenumber: 139
    functionLinenumberEnd: 168
    functionName: fu_igsc_aux_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c
    functionUses: 0
    functionsReached:
    - FU_IGSC_DEVICE
    - fu_firmware_get_image_by_idx_stream
    - fu_device_get_proxy
    - g_autoptr
    - fu_firmware_get_image_by_idx_bytes
    - fu_igsc_device_write_blob
    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_progress_set_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:173,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:174,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:175,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:176,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:177,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 179
    functionName: fu_igsc_aux_device_set_progress
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_igsc_aux_device_set_progress(FuDevice *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:184,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:184,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:185,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:185,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:186,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:186,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:187,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:187,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:188,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:188,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:189,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c:189,1
    - Dst: fu_device_set_version_format
      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_set_proxy_gtype
      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_protocol
      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_set_logical_id
      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_name
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscAuxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 181
    functionDepth: 6
    functionLinenumber: 181
    functionLinenumberEnd: 195
    functionName: fu_igsc_aux_device_init
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_logical_id
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIgscAuxDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 207
    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:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 213
    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(FuDevice *proxy)'
  - 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:
    - FU_IGSC_OPROM_DEVICE
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_igsc_oprom_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_OPROM_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:35,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:39,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:46,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:49,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:52,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:52,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:53,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:53,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:56,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:59,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:62,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:62,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:63,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:63,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:67,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 32
    functionDepth: 7
    functionLinenumber: 32
    functionLinenumberEnd: 77
    functionName: fu_igsc_oprom_device_probe
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - fu_device_has_private_flag
    - FU_IGSC_OPROM_DEVICE
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_oprom_device_probe(FuDevice *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_OPROM_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:86,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:89,1
    - Dst: fu_igsc_device_get_version_raw
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:92,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:92,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:97,1
    - Dst: fu_struct_igsc_oprom_version_parse
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:100,1
    - Dst: fu_struct_igsc_oprom_version_get_major
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:103,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:104,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:105,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:107,1
    - Dst: fu_struct_igsc_oprom_version_get_minor
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:109,1
    - Dst: fu_struct_igsc_oprom_version_get_hotfix
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:110,1
    - Dst: fu_struct_igsc_oprom_version_get_build
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:111,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 117
    functionName: fu_igsc_oprom_device_setup
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - FU_IGSC_DEVICE
    - fu_struct_igsc_oprom_version_get_minor
    - fu_struct_igsc_oprom_version_get_hotfix
    - fu_struct_igsc_oprom_version_get_build
    - fu_device_set_version
    - fu_struct_igsc_oprom_version_get_major
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - FU_IGSC_OPROM_DEVICE
    - g_strdup_printf
    - fu_struct_igsc_oprom_version_parse
    - fu_igsc_device_get_version_raw
    - fu_device_get_proxy
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_oprom_device_setup(FuDevice *device, GError **error)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_OPROM_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:128,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:129,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:131,1
    - Dst: fu_linear_firmware_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:131,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:134,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:139,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:143,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:152,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:155,1
    - Dst: fu_igsc_oprom_firmware_get_major_version
      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:160,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:163,1
    - Dst: fu_igsc_oprom_firmware_get_major_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:168,1
    - Dst: FU_IGSC_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:168,1
    - Dst: fu_igsc_device_get_oprom_code_devid_enforcement
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:180,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:180,1
    - Dst: fu_igsc_oprom_firmware_match_device
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:181,1
    - Dst: FU_IGSC_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:182,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:183,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:184,1
    - Dst: fu_igsc_device_get_ssvid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:185,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:185,1
    - Dst: fu_igsc_device_get_ssdid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:186,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:186,1
    - Dst: fu_igsc_oprom_firmware_has_allowlist
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:190,1
    - Dst: FU_IGSC_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:191,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:192,1
    - Dst: fu_igsc_oprom_firmware_has_allowlist
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:209,1
    - Dst: FU_IGSC_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:209,1
    - Dst: fu_igsc_oprom_firmware_match_device
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:210,1
    - Dst: FU_IGSC_OPROM_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:211,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:212,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:213,1
    - Dst: fu_igsc_device_get_ssvid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:214,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:214,1
    - Dst: fu_igsc_device_get_ssdid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:215,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:215,1
    - Dst: fu_igsc_device_get_ssvid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:219,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:219,1
    - Dst: fu_igsc_device_get_ssdid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:220,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:220,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:221,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:232,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 233
    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
    - fu_firmware_get_image_by_idx
    - fu_device_get_pid
    - g_object_new
    - fu_igsc_oprom_firmware_get_major_version
    - FU_IGSC_DEVICE
    - g_set_error_literal
    - FU_IGSC_OPROM_DEVICE
    - fu_device_get_proxy
    - fu_igsc_device_get_ssvid
    - fu_device_get_vid
    - fu_igsc_oprom_firmware_match_device
    - fu_firmware_get_stream
    - fu_firmware_parse_stream
    - fu_linear_firmware_new
    - g_set_error
    - fu_igsc_device_get_ssdid
    - g_steal_pointer
    - fu_igsc_oprom_firmware_has_allowlist
    - g_autoptr
    - 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_OPROM_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:242,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:244,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:245,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:246,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:247,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:250,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:254,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:254,1
    - Dst: fu_struct_igsc_fwu_heci_image_metadata_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:259,1
    - Dst: fu_struct_igsc_fwu_heci_image_metadata_set_version_format
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:260,1
    - Dst: fu_struct_igsc_fwu_heci_image_metadata_to_bytes
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:261,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:264,1
    - Dst: fu_igsc_device_write_blob
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:267,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 273
    functionName: fu_igsc_oprom_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c
    functionUses: 0
    functionsReached:
    - FU_IGSC_DEVICE
    - fu_firmware_get_stream
    - fu_struct_igsc_fwu_heci_image_metadata_new
    - fu_struct_igsc_fwu_heci_image_metadata_to_bytes
    - FU_IGSC_OPROM_DEVICE
    - fu_struct_igsc_fwu_heci_image_metadata_set_version_format
    - fu_firmware_get_size
    - fu_device_get_proxy
    - g_autoptr
    - fu_partial_input_stream_new
    - fu_igsc_device_write_blob
    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_progress_set_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:278,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:279,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:280,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:281,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:282,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 284
    functionName: fu_igsc_oprom_device_set_progress
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_igsc_oprom_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:289,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:289,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:290,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:290,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:291,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:291,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:292,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:292,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:293,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:293,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:294,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:294,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:295,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:295,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:296,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:296,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:297,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscOpromDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 286
    functionDepth: 6
    functionLinenumber: 286
    functionLinenumberEnd: 298
    functionName: fu_igsc_oprom_device_init
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - 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:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIgscOpromDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 310
    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:315,1
    - Dst: FU_IGSC_OPROM_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-oprom-device.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - proxy
    - payload_type
    argTypes:
    - FuDevice*
    - FuIgscFwuHeciPayloadType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 318
    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(FuDevice *proxy, FuIgscFwuHeciPayloadType payload_type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:46,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:47,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:48,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:49,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:50,1
    - Dst: fwupd_codec_string_append_bool
      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:55,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 57
    functionName: fu_igsc_device_to_string
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_bool
    - FU_IGSC_DEVICE
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    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:62,1
    - Dst: FU_IS_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    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:69,1
    - Dst: FU_IS_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    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:76,1
    - Dst: FU_IS_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: fu_igsc_device_get_ssdid
    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_ssdid(FuIgscDevice *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:90,1
    - Dst: fu_mei_device_write
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:91,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:91,1
    - Dst: fu_mei_device_read
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:97,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:97,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    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: 106
      start: 80
    functionDepth: 6
    functionLinenumber: 80
    functionLinenumberEnd: 106
    functionName: fu_igsc_device_command
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_dump_raw
    - fu_mei_device_write
    - FU_MEI_DEVICE
    - fu_mei_device_read
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:117,1
    - Dst: fu_igsc_fwu_heci_version_req_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:117,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:118,1
    - Dst: fu_mei_device_connect
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:121,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:121,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:122,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:126,1
    - Dst: fu_igsc_fwu_heci_version_req_set_partition
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:127,1
    - Dst: fu_igsc_device_command
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:128,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:134,1
    - Dst: fu_igsc_fwu_heci_version_res_parse
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:137,1
    - Dst: fu_igsc_heci_check_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:140,1
    - Dst: fu_igsc_fwu_heci_version_res_get_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:140,1
    - Dst: fu_igsc_fwu_heci_version_res_get_partition
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:142,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:143,1
    - Dst: fu_igsc_fwu_heci_version_res_get_partition
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:147,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:151,1
    - Dst: fu_igsc_fwu_heci_version_res_get_version_length
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:157,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - self
    - partition
    - buf
    - bufsz
    - error
    argTypes:
    - FuIgscDevice*
    - FuIgscFwuHeciPartitionVersion
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 108
    functionDepth: 7
    functionLinenumber: 108
    functionLinenumberEnd: 165
    functionName: fu_igsc_device_get_version_raw
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 1
    functionsReached:
    - fu_mei_device_connect
    - fu_igsc_fwu_heci_version_req_set_partition
    - fu_igsc_device_command
    - fu_igsc_fwu_heci_version_res_parse
    - fu_igsc_fwu_heci_version_res_get_partition
    - g_set_error
    - fu_igsc_fwu_heci_version_res_get_version_length
    - fu_igsc_fwu_heci_version_req_new
    - FU_MEI_DEVICE
    - g_prefix_error_literal
    - g_malloc0
    - fu_igsc_fwu_heci_version_res_get_status
    - fu_memcpy_safe
    - g_autoptr
    - fu_igsc_heci_check_status
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:175,1
    - Dst: fu_igsc_fw_data_heci_version_req_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:175,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:176,1
    - Dst: fu_mei_device_connect
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:179,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:179,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:180,1
    - Dst: fu_igsc_device_command
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:184,1
    - Dst: fu_igsc_fw_data_heci_version_res_parse
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:191,1
    - Dst: fu_igsc_heci_check_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:194,1
    - Dst: fu_igsc_fw_data_heci_version_res_get_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:194,1
    - Dst: fu_igsc_fw_data_heci_version_res_get_major_vcn
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:197,1
    - Dst: fu_igsc_fw_data_heci_version_res_get_major_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:198,1
    - Dst: fu_igsc_fw_data_heci_version_res_get_oem_version_fitb_valid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:199,1
    - Dst: fu_igsc_fw_data_heci_version_res_get_oem_version_fitb
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:200,1
    - Dst: fu_igsc_fw_data_heci_version_res_get_oem_version_nvm
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - self
    - oem_version
    - major_version
    - major_vcn
    - error
    argTypes:
    - FuIgscDevice*
    - guint32*
    - guint16*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 167
    functionDepth: 7
    functionLinenumber: 167
    functionLinenumberEnd: 205
    functionName: fu_igsc_device_get_aux_version
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 1
    functionsReached:
    - fu_mei_device_connect
    - fu_igsc_device_command
    - fu_igsc_fw_data_heci_version_res_parse
    - fu_igsc_fw_data_heci_version_res_get_major_version
    - fu_igsc_fw_data_heci_version_res_get_oem_version_fitb_valid
    - FU_MEI_DEVICE
    - g_prefix_error_literal
    - fu_igsc_fw_data_heci_version_res_get_oem_version_fitb
    - fu_igsc_fw_data_heci_version_res_get_oem_version_nvm
    - fu_igsc_fw_data_heci_version_res_get_major_vcn
    - g_autoptr
    - fu_igsc_fw_data_heci_version_req_new
    - fu_igsc_fw_data_heci_version_res_get_status
    - fu_igsc_heci_check_status
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:211,1
    - Dst: fu_igsc_fwu_heci_get_subsystem_ids_req_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:212,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:213,1
    - Dst: fu_mei_device_connect
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:216,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:216,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:217,1
    - Dst: fu_igsc_device_command
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:221,1
    - Dst: fu_igsc_fwu_heci_get_subsystem_ids_res_parse
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:228,1
    - Dst: fu_igsc_heci_check_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:231,1
    - Dst: fu_igsc_fwu_heci_get_subsystem_ids_res_get_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:231,1
    - Dst: fu_igsc_fwu_heci_get_subsystem_ids_res_get_ssvid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:236,1
    - Dst: fu_igsc_fwu_heci_get_subsystem_ids_res_get_ssdid
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIgscDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 207
    functionDepth: 7
    functionLinenumber: 207
    functionLinenumberEnd: 239
    functionName: fu_igsc_device_get_subsystem_ids
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_igsc_fwu_heci_get_subsystem_ids_res_parse
    - fu_mei_device_connect
    - fu_igsc_device_command
    - FU_MEI_DEVICE
    - g_prefix_error_literal
    - fu_igsc_fwu_heci_get_subsystem_ids_res_get_ssdid
    - fu_igsc_fwu_heci_get_subsystem_ids_res_get_ssvid
    - fu_igsc_fwu_heci_get_subsystem_ids_res_get_status
    - g_autoptr
    - fu_igsc_fwu_heci_get_subsystem_ids_req_new
    - fu_igsc_heci_check_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_get_subsystem_ids(FuIgscDevice *self, GError
      **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:246,1
    - Dst: fu_igsc_fwu_heci_get_config_req_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:246,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:247,1
    - Dst: fu_mei_device_connect
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:250,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:250,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:251,1
    - Dst: fu_igsc_device_command
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:255,1
    - Dst: fu_igsc_fwu_heci_get_config_res_parse
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:262,1
    - Dst: fu_igsc_heci_check_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:265,1
    - Dst: fu_igsc_fwu_heci_get_config_res_get_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:265,1
    - Dst: fu_igsc_fwu_heci_get_config_res_get_hw_sku
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:272,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:275,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:278,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:281,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:289,1
    - Dst: fu_igsc_fwu_heci_get_config_res_get_flags
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:293,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIgscDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 241
    functionDepth: 7
    functionLinenumber: 241
    functionLinenumberEnd: 296
    functionName: fu_igsc_device_get_config
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_mei_device_connect
    - fu_igsc_device_command
    - g_debug
    - g_set_error
    - fu_igsc_fwu_heci_get_config_res_get_status
    - FU_MEI_DEVICE
    - g_prefix_error_literal
    - fu_igsc_fwu_heci_get_config_req_new
    - g_autoptr
    - fu_igsc_fwu_heci_get_config_res_parse
    - fu_igsc_fwu_heci_get_config_res_get_flags
    - fu_igsc_heci_check_status
    - fu_igsc_fwu_heci_get_config_res_get_hw_sku
    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:301,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:303,1
    - Dst: fu_struct_igsc_fw_version_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:303,1
    - Dst: fu_mei_device_connect
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:306,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:306,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:307,1
    - Dst: fu_heci_device_arbh_svn_get_info
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:310,1
    - Dst: FU_HECI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:310,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:315,1
    - Dst: fu_igsc_device_get_version_raw
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:320,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:325,1
    - Dst: fu_struct_igsc_fw_version_get_project
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:328,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:329,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:330,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:332,1
    - Dst: fu_struct_igsc_fw_version_get_hotfix
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:333,1
    - Dst: fu_struct_igsc_fw_version_get_build
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:334,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:336,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:339,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:340,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:341,1
    - Dst: fu_igsc_device_get_config
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:342,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:343,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:347,1
    - Dst: fu_igsc_device_get_subsystem_ids
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:351,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:355,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:356,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:360,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:361,1
    - Dst: fu_igsc_aux_device_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:361,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:362,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:362,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:362,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:364,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:365,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:366,1
    - Dst: fu_igsc_oprom_device_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:368,1
    - Dst: fu_igsc_oprom_device_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:370,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:371,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:371,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:371,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:372,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:372,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:372,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 298
    functionDepth: 8
    functionLinenumber: 298
    functionLinenumberEnd: 377
    functionName: fu_igsc_device_setup
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_set_version
    - fu_device_add_private_flag
    - FU_MEI_DEVICE
    - g_strdup_printf
    - fu_heci_device_arbh_svn_get_info
    - fu_igsc_oprom_device_new
    - FU_IGSC_DEVICE
    - fu_struct_igsc_fw_version_get_hotfix
    - g_debug
    - fu_device_add_instance_str
    - g_prefix_error_literal
    - FU_HECI_DEVICE
    - fu_igsc_device_get_version_raw
    - fu_struct_igsc_fw_version_get_build
    - fu_struct_igsc_fw_version_get_project
    - fu_struct_igsc_fw_version_new
    - fu_igsc_device_get_config
    - FU_DEVICE
    - fu_igsc_aux_device_new
    - g_strdup
    - g_strcmp0
    - fu_mei_device_connect
    - fu_device_has_private_flag
    - fu_igsc_device_get_subsystem_ids
    - g_autoptr
    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:387,1
    - Dst: fu_mei_device_get_fw_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:390,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:390,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:392,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:395,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:396,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:397,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: 405
      start: 380
    functionDepth: 6
    functionLinenumber: 380
    functionLinenumberEnd: 405
    functionName: fu_igsc_device_get_fw_status
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_strtoull
    - FU_MEI_DEVICE
    - g_prefix_error_literal
    - g_prefix_error
    - g_strdup_printf
    - fu_mei_device_get_fw_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_get_fw_status(FuIgscDevice *self, guint line,
      guint32 *fw_status, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:410,1
    - Dst: fu_igsc_device_get_fw_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:414,1
    - Dst: fu_udev_device_read_property
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:418,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:418,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:419,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:422,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:422,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:427,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:432,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:433,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:437,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:439,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:442,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:444,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 407
    functionDepth: 7
    functionLinenumber: 407
    functionLinenumberEnd: 452
    functionName: fu_igsc_device_probe
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - FU_IGSC_DEVICE
    - g_strcmp0
    - g_debug
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - fu_device_add_private_flag
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - fu_igsc_device_get_fw_status
    - fu_udev_device_read_sysfs
    - fu_udev_device_read_property
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_probe(FuDevice *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:460,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:465,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:465,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:466,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:470,1
    - Dst: fu_igsc_code_firmware_get_hw_sku
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:476,1
    - Dst: FU_IGSC_CODE_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:476,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:478,1
    - Dst: fu_igsc_code_firmware_get_arb_svn
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:488,1
    - Dst: FU_IGSC_CODE_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:488,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:490,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:500,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 511
    functionName: fu_igsc_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - FU_IGSC_CODE_FIRMWARE
    - FU_IGSC_DEVICE
    - g_strcmp0
    - fu_igsc_code_firmware_get_arb_svn
    - g_set_error
    - fu_igsc_code_firmware_get_hw_sku
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_device_check_firmware(FuDevice *device,\n\t\t\t      FuFirmware
      *firmware,\n\t\t\t      FuFirmwareParseFlags flags,\n\t\t\t      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:517,1
    - Dst: fu_igsc_fwu_heci_end_req_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:517,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:518,1
    - Dst: fu_mei_device_connect
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:521,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:521,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:522,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:529,1
    - Dst: fu_mei_device_write
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:530,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:530,1
    - Dst: fu_igsc_device_command
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:536,1
    - Dst: fu_igsc_fwu_heci_end_res_parse
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:543,1
    - Dst: fu_igsc_heci_check_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:546,1
    - Dst: fu_igsc_fwu_heci_end_res_get_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:546,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - self
    - payload_type
    - error
    argTypes:
    - FuIgscDevice*
    - FuIgscFwuHeciPayloadType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 513
    functionDepth: 7
    functionLinenumber: 513
    functionLinenumberEnd: 547
    functionName: fu_igsc_device_update_end
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_mei_device_connect
    - fu_igsc_device_command
    - fu_igsc_fwu_heci_end_res_get_status
    - FU_MEI_DEVICE
    - g_prefix_error_literal
    - fu_dump_raw
    - fu_igsc_fwu_heci_end_res_parse
    - fu_igsc_fwu_heci_end_req_new
    - g_autoptr
    - fu_mei_device_write
    - fu_igsc_heci_check_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_update_end(FuIgscDevice *self, FuIgscFwuHeciPayloadType
      payload_type, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:553,1
    - Dst: fu_igsc_fwu_heci_data_req_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:553,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:554,1
    - Dst: fu_igsc_fwu_heci_data_req_set_data_length
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:556,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:557,1
    - Dst: fu_igsc_device_command
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:558,1
    - Dst: fu_igsc_fwu_heci_data_res_parse
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:565,1
    - Dst: fu_igsc_heci_check_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:568,1
    - Dst: fu_igsc_fwu_heci_data_res_get_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - self
    - data
    - length
    - error
    argTypes:
    - FuIgscDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 549
    functionDepth: 7
    functionLinenumber: 549
    functionLinenumberEnd: 569
    functionName: fu_igsc_device_update_data
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_igsc_device_command
    - fu_igsc_fwu_heci_data_res_get_status
    - fu_igsc_fwu_heci_data_res_parse
    - fu_igsc_fwu_heci_data_req_new
    - g_byte_array_append
    - g_autoptr
    - fu_igsc_fwu_heci_data_req_set_data_length
    - fu_igsc_heci_check_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_update_data(FuIgscDevice *self, const guint8
      *data, gsize length, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:580,1
    - Dst: fu_igsc_fwu_heci_start_req_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:580,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:581,1
    - Dst: fu_mei_device_connect
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:584,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:584,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:585,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:589,1
    - Dst: fu_igsc_fwu_heci_start_req_set_update_img_length
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:591,1
    - Dst: fu_igsc_fwu_heci_start_req_set_payload_type
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:592,1
    - Dst: fu_igsc_fwu_heci_start_req_set_flags
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:593,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:595,1
    - Dst: fu_igsc_device_command
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:596,1
    - Dst: fu_igsc_fwu_heci_start_res_parse
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:603,1
    - Dst: fu_igsc_heci_check_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:606,1
    - Dst: fu_igsc_fwu_heci_start_res_get_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:606,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - self
    - payload_type
    - fw_info
    - fw
    - error
    argTypes:
    - FuIgscDevice*
    - guint32
    - GBytes*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 571
    functionDepth: 7
    functionLinenumber: 571
    functionLinenumberEnd: 607
    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_mei_device_connect
    - fu_igsc_device_command
    - fu_input_stream_size
    - fu_igsc_fwu_heci_start_res_get_status
    - FU_MEI_DEVICE
    - g_prefix_error_literal
    - fu_igsc_fwu_heci_start_req_new
    - fu_igsc_fwu_heci_start_req_set_payload_type
    - fu_igsc_fwu_heci_start_res_parse
    - g_autoptr
    - fu_igsc_fwu_heci_start_req_set_flags
    - fu_igsc_fwu_heci_start_req_set_update_img_length
    - fu_igsc_heci_check_status
    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: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:612,1
    - Dst: fu_igsc_fwu_heci_no_update_req_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:612,1
    - Dst: fu_mei_device_write
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:613,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIgscDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 609
    functionDepth: 6
    functionLinenumber: 609
    functionLinenumberEnd: 618
    functionName: fu_igsc_device_no_update
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_igsc_fwu_heci_no_update_req_new
    - g_autoptr
    - fu_mei_device_write
    - FU_MEI_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_no_update(FuIgscDevice *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_mei_device_connect
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:627,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:627,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:628,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:632,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:633,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:633,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:634,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:635,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:638,1
    - Dst: fu_igsc_device_update_data
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:641,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:642,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:643,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:645,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:648,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:651,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuIgscDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 620
    functionDepth: 8
    functionLinenumber: 620
    functionLinenumberEnd: 654
    functionName: fu_igsc_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_mei_device_connect
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - FU_MEI_DEVICE
    - g_prefix_error_literal
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_chunk_get_address
    - fu_chunk_get_data
    - fu_igsc_device_update_data
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:660,1
    - Dst: fu_struct_igsc_fw_version_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:660,1
    - Dst: fu_mei_device_disconnect
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:662,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:662,1
    - Dst: fu_igsc_device_get_version_raw
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:663,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:669,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:669,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:671,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIgscDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 657
    functionDepth: 8
    functionLinenumber: 657
    functionLinenumberEnd: 673
    functionName: fu_igsc_device_wait_for_version
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - g_set_error_literal
    - FU_MEI_DEVICE
    - fu_mei_device_disconnect
    - fu_struct_igsc_fw_version_new
    - FU_DEVICE
    - fu_igsc_device_get_version_raw
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_wait_for_version(FuIgscDevice *self, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_mei_device_disconnect
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:678,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:678,1
    - Dst: fu_mei_device_connect
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:679,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 675
    functionDepth: 5
    functionLinenumber: 675
    functionLinenumberEnd: 680
    functionName: fu_igsc_device_reconnect_cb
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_mei_device_connect
    - FU_MEI_DEVICE
    - fu_mei_device_disconnect
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_reconnect_cb(FuDevice *device, gpointer user_data,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:685,1
    - Dst: fu_igsc_device_get_fw_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:688,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:691,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 682
    functionDepth: 7
    functionLinenumber: 682
    functionLinenumberEnd: 700
    functionName: fu_igsc_device_wait_heci_finish_cb
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_igsc_device_get_fw_status
    - FU_IGSC_DEVICE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_device_wait_heci_finish_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:713,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:717,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:718,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:719,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:720,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:721,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:722,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:723,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:724,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:726,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:727,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:728,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:729,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:730,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:731,1
    - Dst: fu_igsc_device_get_fw_status
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:735,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:738,1
    - Dst: fu_igsc_device_update_start
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:741,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:742,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:745,1
    - Dst: fu_mei_device_get_max_msg_length
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:748,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:748,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:750,1
    - Dst: fu_mei_device_get_max_msg_length
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:754,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:754,1
    - Dst: fu_mei_device_get_max_msg_length
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:758,1
    - Dst: FU_MEI_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:758,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:759,1
    - Dst: fu_igsc_device_write_chunks
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:766,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:766,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:768,1
    - Dst: fu_igsc_device_update_end
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:771,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:772,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:775,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:781,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:781,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:781,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:782,1
    - Dst: fu_igsc_device_wait_for_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:786,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:789,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:789,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:795,1
    - Dst: fu_igsc_device_no_update
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:798,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:799,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:802,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:802,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:808,1
    - Dst: fu_igsc_device_wait_for_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:812,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:816,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 70
    argCount: 6
    argNames:
    - self
    - payload_type
    - fw_info
    - fw
    - progress
    - error
    argTypes:
    - FuIgscDevice*
    - FuIgscFwuHeciPayloadType
    - GBytes*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 702
    functionDepth: 9
    functionLinenumber: 702
    functionLinenumberEnd: 820
    functionName: fu_igsc_device_write_blob
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 2
    functionsReached:
    - fu_igsc_device_update_start
    - fu_igsc_device_write_chunks
    - fu_progress_add_flag
    - FU_MEI_DEVICE
    - fu_device_sleep_full
    - fu_igsc_device_wait_for_version
    - g_prefix_error_literal
    - fu_chunk_array_new_from_stream
    - fu_progress_add_step
    - fu_progress_step_done
    - fu_mei_device_get_max_msg_length
    - fu_igsc_device_update_end
    - FU_DEVICE
    - fu_igsc_device_get_fw_status
    - fu_progress_get_child
    - fu_progress_set_id
    - g_set_error
    - fu_device_retry_full
    - fu_igsc_device_no_update
    - g_autoptr
    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:829,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:830,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:831,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:835,1
    - Dst: fu_firmware_get_image_by_idx_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:839,1
    - Dst: fu_igsc_device_write_blob
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:842,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: 852
      start: 822
    functionDepth: 10
    functionLinenumber: 822
    functionLinenumberEnd: 852
    functionName: fu_igsc_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - FU_IGSC_DEVICE
    - fu_firmware_get_image_by_idx_stream
    - g_autoptr
    - fu_firmware_get_image_by_idx_bytes
    - fu_igsc_device_write_blob
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:857,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:858,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:859,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:860,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:861,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 854
    functionDepth: 3
    functionLinenumber: 854
    functionLinenumberEnd: 863
    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 *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:868,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:868,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:869,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:869,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:870,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:870,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:871,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:871,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:872,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:872,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:873,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:873,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:874,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:874,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:875,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:875,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:876,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:876,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:877,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:877,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:878,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:878,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:879,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:879,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:880,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:880,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:881,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:881,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:882,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:882,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:883,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:883,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:884,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 865
    functionDepth: 6
    functionLinenumber: 865
    functionLinenumberEnd: 885
    functionName: fu_igsc_device_init
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:890,1
    - Dst: g_free
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:892,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 895
    functionName: fu_igsc_device_finalize
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - FU_IGSC_DEVICE
    - g_free
    - G_OBJECT_CLASS
    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:900,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c:901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIgscDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 909
    functionName: fu_igsc_device_class_init
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_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:27,1
    - Dst: fu_xmlb_builder_insert_kx
      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_igsc_fwdata_device_info_export
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: fu_igsc_aux_firmware_export
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_IGSC_AUX_FIRMWARE
    - fu_igsc_fwdata_device_info_export
    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:43,1
    - Dst: FU_IS_IGSC_AUX_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:43,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:46,1
    - Dst: fu_igsc_fwdata_device_info4_get_vendor_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:47,1
    - Dst: fu_igsc_fwdata_device_info4_get_device_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:48,1
    - Dst: fu_igsc_fwdata_device_info4_get_subsys_vendor_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:49,1
    - Dst: fu_igsc_fwdata_device_info4_get_subsys_device_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:50,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:55,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: 64
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 64
    functionName: fu_igsc_aux_firmware_match_device
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_igsc_fwdata_device_info4_get_vendor_id
    - fu_igsc_fwdata_device_info4_get_subsys_vendor_id
    - FU_IS_IGSC_AUX_FIRMWARE
    - g_set_error
    - fu_igsc_fwdata_device_info4_get_subsys_device_id
    - fu_igsc_fwdata_device_info4_get_device_id
    - g_ptr_array_index
    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:69,1
    - Dst: FU_IS_IGSC_AUX_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscAuxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    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:76,1
    - Dst: FU_IS_IGSC_AUX_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscAuxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    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:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:84,1
    - Dst: fu_firmware_get_image_by_idx_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:86,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:86,1
    - Dst: fu_struct_igsc_fwdata_version_parse_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:91,1
    - Dst: fu_struct_igsc_fwdata_version_get_oem_manuf_data_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:96,1
    - Dst: fu_struct_igsc_fwdata_version_get_major_vcn
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:97,1
    - Dst: fu_struct_igsc_fwdata_version_get_major_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:98,1
    - Dst: fu_struct_igsc_fwdata_version_get_data_arb_svn
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIgscAuxFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 103
    functionName: fu_igsc_aux_firmware_parse_info
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_igsc_fwdata_version_get_data_arb_svn
    - FU_FIRMWARE
    - fu_struct_igsc_fwdata_version_get_major_version
    - fu_firmware_get_image_by_idx_stream
    - fu_struct_igsc_fwdata_version_get_major_vcn
    - g_autoptr
    - fu_struct_igsc_fwdata_version_parse_stream
    - fu_struct_igsc_fwdata_version_get_oem_manuf_data_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_aux_firmware_parse_info(FuIgscAuxFirmware *self, GError
      **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_AUX_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:111,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:113,1
    - Dst: fu_ifwi_cpd_firmware_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:113,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:114,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:115,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:116,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:119,1
    - Dst: fu_firmware_get_image_by_idx_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:125,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:130,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:135,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:140,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:142,1
    - Dst: fu_igsc_fwdata_device_info_parse
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:143,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:145,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:149,1
    - Dst: fu_igsc_aux_firmware_parse_info
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:157,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:158,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 164
    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_firmware_get_image_by_idx
    - fu_firmware_parse_stream
    - g_set_error_literal
    - FU_FIRMWARE_CLASS
    - g_prefix_error_literal
    - fu_firmware_get_images
    - fu_firmware_get_image_by_idx_stream
    - FU_IGSC_AUX_FIRMWARE
    - fu_igsc_aux_firmware_parse_info
    - g_autoptr
    - fu_firmware_get_idx
    - fu_igsc_fwdata_device_info_parse
    - g_ptr_array_index
    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:169,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:169,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: fu_igsc_aux_firmware_write
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 0
    functionsReached:
    - g_byte_array_new
    - g_autoptr
    - g_steal_pointer
    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:176,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:180,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:183,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:187,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:190,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:194,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:197,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 204
    functionName: fu_igsc_aux_firmware_build
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - FU_IGSC_AUX_FIRMWARE
    - xb_node_query_text
    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:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscAuxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 211
    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:216,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:218,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 221
    functionName: fu_igsc_aux_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IGSC_AUX_FIRMWARE
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    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:226,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIgscAuxFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 233
    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:238,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: fu_igsc_aux_firmware_new
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-aux-firmware.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:33,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:36,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:36,1
    - Dst: fu_udev_device_write_sysfs
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:39,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - val
    - error
    argTypes:
    - FuIgscDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: fu_igsc_plugin_set_pci_power_policy
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_backend_parent_with_subsystem
    - FU_DEVICE
    - fu_udev_device_write_sysfs
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_plugin_set_pci_power_policy(FuIgscDevice *self, const
      gchar *val, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:51,1
    - Dst: FU_IS_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:52,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:53,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:58,1
    - Dst: fu_igsc_plugin_set_pci_power_policy
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:59,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:60,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 46
    functionDepth: 6
    functionLinenumber: 46
    functionLinenumberEnd: 63
    functionName: fu_igsc_plugin_composite_prepare
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c
    functionUses: 0
    functionsReached:
    - FU_IGSC_DEVICE
    - g_debug
    - fu_igsc_plugin_set_pci_power_policy
    - FU_IS_IGSC_DEVICE
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_plugin_composite_prepare(FuPlugin *plugin, GPtrArray
      *devices, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:70,1
    - Dst: FU_IS_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:71,1
    - Dst: FU_IGSC_DEVICE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:72,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:77,1
    - Dst: fu_igsc_plugin_set_pci_power_policy
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:78,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 65
    functionDepth: 6
    functionLinenumber: 65
    functionLinenumberEnd: 82
    functionName: fu_igsc_plugin_composite_cleanup
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c
    functionUses: 0
    functionsReached:
    - FU_IGSC_DEVICE
    - g_debug
    - fu_igsc_plugin_set_pci_power_policy
    - FU_IS_IGSC_DEVICE
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_plugin_composite_cleanup(FuPlugin *plugin, GPtrArray
      *devices, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:87,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:88,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:89,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:90,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:91,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:92,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:93,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:94,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 98
    functionName: fu_igsc_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_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:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIgscPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 107
    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_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:14,1
    - Dst: fu_igsc_fwdata_device_info4_get_vendor_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:14,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:15,1
    - Dst: fu_igsc_fwdata_device_info4_get_device_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:15,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:16,1
    - Dst: fu_igsc_fwdata_device_info4_get_subsys_vendor_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:18,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:19,1
    - Dst: fu_igsc_fwdata_device_info4_get_subsys_device_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - st
    - bn
    argTypes:
    - FuIgscFwdataDeviceInfo4*
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 22
    functionName: fu_igsc_fwdata_device_info_export_one
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c
    functionUses: 0
    functionsReached:
    - fu_igsc_fwdata_device_info4_get_vendor_id
    - fu_igsc_fwdata_device_info4_get_subsys_vendor_id
    - fu_xmlb_builder_insert_kx
    - fu_igsc_fwdata_device_info4_get_subsys_device_id
    - fu_igsc_fwdata_device_info4_get_device_id
    linkageType: ''
    returnType: void
    signature: void fu_igsc_fwdata_device_info_export_one(FuIgscFwdataDeviceInfo4
      *st, XbBuilderNode *bn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:27,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:31,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:34,1
    - Dst: xb_builder_node_insert
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:34,1
    - Dst: fu_igsc_fwdata_device_info_export_one
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - device_infos
    - bn
    argTypes:
    - GPtrArray*
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 37
    functionName: fu_igsc_fwdata_device_info_export
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c
    functionUses: 2
    functionsReached:
    - g_autoptr
    - fu_igsc_fwdata_device_info_export_one
    - xb_builder_node_insert
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_igsc_fwdata_device_info_export(GPtrArray *device_infos, XbBuilderNode
      *bn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:49,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:50,1
    - Dst: fu_igsc_fwdata_device_info4_new
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:50,1
    - Dst: fu_igsc_fwdata_device_info2_parse_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:51,1
    - Dst: fu_igsc_fwdata_device_info4_set_vendor_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:54,1
    - Dst: fu_igsc_fwdata_device_info4_set_device_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:55,1
    - Dst: fu_igsc_fwdata_device_info4_set_subsys_vendor_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:56,1
    - Dst: fu_igsc_fwdata_device_info2_get_subsys_vendor_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:58,1
    - Dst: fu_igsc_fwdata_device_info4_set_subsys_device_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:59,1
    - Dst: fu_igsc_fwdata_device_info2_get_subsys_device_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:61,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:62,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - device_infos
    - stream
    - error
    argTypes:
    - GPtrArray*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 67
    functionName: fu_igsc_fwdata_device_info_parse_device_type
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_size
    - fu_igsc_fwdata_device_info2_parse_stream
    - g_ptr_array_add
    - fu_igsc_fwdata_device_info4_set_device_id
    - fu_igsc_fwdata_device_info4_set_subsys_vendor_id
    - fu_igsc_fwdata_device_info4_set_vendor_id
    - fu_igsc_fwdata_device_info2_get_subsys_device_id
    - g_steal_pointer
    - fu_igsc_fwdata_device_info4_set_subsys_device_id
    - fu_igsc_fwdata_device_info2_get_subsys_vendor_id
    - g_autoptr
    - fu_igsc_fwdata_device_info4_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_fwdata_device_info_parse_device_type(GPtrArray *device_infos,\n\t\t\t\t\t
      \    GInputStream *stream,\n\t\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:76,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:79,1
    - Dst: fu_igsc_fwdata_device_info4_parse_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:80,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:83,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - device_infos
    - stream
    - error
    argTypes:
    - GPtrArray*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 88
    functionName: fu_igsc_fwdata_device_info_parse_device_id_array
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c
    functionUses: 0
    functionsReached:
    - fu_igsc_fwdata_device_info4_parse_stream
    - fu_input_stream_size
    - g_steal_pointer
    - g_ptr_array_add
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_igsc_fwdata_device_info_parse_device_id_array(GPtrArray
      *device_infos,\n\t\t\t\t\t\t GInputStream *stream,\n\t\t\t\t\t\t GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:94,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:97,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:100,1
    - Dst: fu_igsc_fwu_ext_type_to_string
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:102,1
    - Dst: fu_igsc_fwdata_device_info_parse_device_type
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:104,1
    - Dst: fu_igsc_fwdata_device_info_parse_device_id_array
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - device_infos
    - fw
    - error
    argTypes:
    - GPtrArray*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 112
    functionName: fu_igsc_fwdata_device_info_parse
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c
    functionUses: 2
    functionsReached:
    - g_debug
    - fu_firmware_get_stream
    - fu_igsc_fwdata_device_info_parse_device_type
    - fu_igsc_fwu_ext_type_to_string
    - g_autoptr
    - fu_firmware_get_idx
    - fu_igsc_fwdata_device_info_parse_device_id_array
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_fwdata_device_info_parse(GPtrArray *device_infos,
      FuFirmware *fw, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_error_map_entry_to_gerror
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:135,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - status
    - error
    argTypes:
    - FuIgscFwuHeciStatus
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 136
    functionName: fu_igsc_heci_check_status
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c
    functionUses: 7
    functionsReached:
    - fu_error_map_entry_to_gerror
    - G_N_ELEMENTS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_heci_check_status(FuIgscFwuHeciStatus status, GError
      **error)
  - 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
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    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_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:34,1
    - Dst: FU_IS_IFWI_FPT_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscCodeFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:41,1
    - Dst: FU_IS_IFWI_FPT_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscCodeFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: fu_igsc_code_firmware_get_arb_svn
    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_arb_svn(FuIgscCodeFirmware *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:48,1
    - Dst: fu_struct_igsc_fwu_gws_image_info_parse_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:51,1
    - Dst: fu_struct_igsc_fwu_gws_image_info_get_instance_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuIgscCodeFirmware*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 56
    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
    - g_autoptr
    - fu_struct_igsc_fwu_gws_image_info_get_instance_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_igsc_code_firmware_parse_imgi(FuIgscCodeFirmware *self,
      GInputStream *stream, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_IGSC_CODE_FIRMWARE
      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:67,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:70,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:73,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:75,1
    - Dst: fu_firmware_get_image_by_idx_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:79,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:79,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:83,1
    - Dst: fu_struct_igsc_fwu_image_metadata_v1_parse_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:88,1
    - Dst: fu_struct_igsc_fwu_image_metadata_v1_get_version_format
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:91,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:95,1
    - Dst: fu_struct_igsc_fwu_image_metadata_v1_get_version_format
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:96,1
    - Dst: fu_struct_igsc_fwu_image_metadata_v1_get_project
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:98,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:99,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:99,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:100,1
    - Dst: fu_struct_igsc_fwu_image_metadata_v1_get_version_hotfix
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:101,1
    - Dst: fu_struct_igsc_fwu_image_metadata_v1_get_version_build
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:102,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:103,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:103,1
    - Dst: fu_struct_igsc_fwu_image_metadata_v1_get_image_data
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:106,1
    - Dst: fu_struct_igsc_fwu_fw_image_data_get_arb_svn
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:107,1
    - Dst: fu_firmware_get_image_by_idx_stream
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:110,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:110,1
    - Dst: fu_igsc_code_firmware_parse_imgi
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:115,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 120
    functionName: fu_igsc_code_firmware_parse
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c
    functionUses: 0
    functionsReached:
    - FU_IGSC_CODE_FIRMWARE
    - fu_firmware_set_id
    - fu_firmware_set_version
    - fu_struct_igsc_fwu_image_metadata_v1_get_version_build
    - fu_struct_igsc_fwu_image_metadata_v1_get_project
    - FU_FIRMWARE
    - FU_FIRMWARE_CLASS
    - g_prefix_error_literal
    - fu_struct_igsc_fwu_image_metadata_v1_get_image_data
    - g_strdup_printf
    - fu_firmware_get_image_by_idx_stream
    - g_warning
    - fu_struct_igsc_fwu_image_metadata_v1_get_version_format
    - fu_struct_igsc_fwu_fw_image_data_get_arb_svn
    - fu_igsc_code_firmware_parse_imgi
    - fu_struct_igsc_fwu_image_metadata_v1_parse_stream
    - fu_struct_igsc_fwu_image_metadata_v1_get_version_hotfix
    - g_autoptr
    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:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:125,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIgscCodeFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: fu_igsc_code_firmware_init
    functionSourceFile: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIgscCodeFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    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: g_autoptr
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:24,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:25,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:27,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:29,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:30,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:32,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:33,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:34,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:36,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:37,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:38,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:39,1
    - Dst: fwupd_codec_from_json_string
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:40,1
    - Dst: FWUPD_CODEC
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:40,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:41,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:42,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:44,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:45,1
    - Dst: fu_plugin_runner_backend_device_added
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:47,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:48,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:49,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:51,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 16
    functionDepth: 6
    functionLinenumber: 16
    functionLinenumberEnd: 53
    functionName: fu_intel_me_pci_plugin_func
    functionSourceFile: /src/fwupd/plugins/intel-me-pci/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_from_json_string
    - fu_backend_lookup_by_id
    - FWUPD_CODEC
    - fu_plugin_runner_backend_device_added
    - fu_plugin_get_devices
    - g_file_get_contents
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - g_object_new
    - fu_progress_new
    - fu_context_new_full
    - fu_context_load_quirks
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_pci_plugin_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:58,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:59,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:60,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/intel-me-pci/fu-self-test.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: main
    functionSourceFile: /src/fwupd/plugins/intel-me-pci/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:23,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:24,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:28,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:28,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:34,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:35,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:36,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:45,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:46,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:47,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:54,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - self
    - me_device
    - pci_device
    - error
    argTypes:
    - FuIntelMePciPlugin*
    - FuIntelMeDevice*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 56
    functionName: fu_intel_me_pci_plugin_ensure_version
    functionSourceFile: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_set_error
    - FU_DEVICE
    - g_strsplit
    - g_strv_length
    - fu_udev_device_read_sysfs
    - g_auto
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_me_pci_plugin_ensure_version(FuIntelMePciPlugin
      *self,\n\t\t\t\t      FuIntelMeDevice *me_device,\n\t\t\t\t      FuDevice *pci_device,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_ME_PCI_PLUGIN
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:64,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:65,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:70,1
    - Dst: fu_intel_me_device_new
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:70,1
    - Dst: FU_IS_PCI_DEVICE
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:73,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:78,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:78,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:78,1
    - Dst: fu_udev_device_set_device_file
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:79,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:79,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:80,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:80,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:81,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:88,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:90,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:90,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:95,1
    - Dst: fu_struct_intel_me_hfsts_parse
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:98,1
    - Dst: fu_intel_me_device_set_hfsts
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:101,1
    - Dst: fu_intel_me_pci_plugin_ensure_version
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:105,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:109,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:109,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 111
    functionName: fu_intel_me_pci_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_locker_new
    - fu_intel_me_device_new
    - fu_intel_me_pci_plugin_ensure_version
    - fu_plugin_get_context
    - fu_udev_device_add_open_flag
    - fu_struct_intel_me_hfsts_parse
    - FU_INTEL_ME_PCI_PLUGIN
    - fu_udev_device_get_sysfs_path
    - fu_intel_me_device_set_hfsts
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_plugin_add_device
    - FU_IS_PCI_DEVICE
    - fu_udev_device_pread
    - g_prefix_error
    - fu_udev_device_set_device_file
    - G_N_ELEMENTS
    - g_autoptr
    - g_build_filename
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_me_pci_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: g_autoptr
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:116,1
    - Dst: fu_cpu_get_vendor
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:119,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:123,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 128
    functionName: fu_intel_me_pci_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c
    functionUses: 0
    functionsReached:
    - fu_security_attrs_get_by_appstream_id
    - g_autoptr
    - fu_cpu_get_vendor
    - fwupd_security_attr_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_pci_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelMePciPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: fu_intel_me_pci_plugin_init
    functionSourceFile: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_pci_plugin_init(FuIntelMePciPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:138,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:139,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: fu_intel_me_pci_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - FU_PLUGIN
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_pci_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelMePciPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: fu_intel_me_pci_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_intel_me_pci_plugin_class_init(FuIntelMePciPluginClass *klass)
  - 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_udev_subsystem
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-plugin.c:28,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-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: 2
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: fu_hughski_colorhug_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHughskiColorhugPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:52,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:56,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:66,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:78,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:79,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:79,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:88,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:89,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:92,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:93,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:98,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - self
    - cmd
    - ibuf
    - ibufsz
    - error
    argTypes:
    - FuHughskiColorhugDevice*
    - FuHughskiColorhugCmd
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 108
    functionName: fu_hughski_colorhug_device_send
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - g_steal_pointer
    - fu_dump_raw
    - fu_usb_device_interrupt_transfer
    - g_error_matches
    - fu_memcpy_safe
    - FU_USB_DEVICE
    - g_autoptr
    - g_propagate_prefixed_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hughski_colorhug_device_send(FuHughskiColorhugDevice *self,\n\t\t\t\tFuHughskiColorhugCmd
      cmd,\n\t\t\t\tconst guint8 *ibuf,\n\t\t\t\tgsize ibufsz,\n\t\t\t\tGError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:119,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:123,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:132,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:132,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:141,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:142,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:145,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:146,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:150,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:155,1
    - Dst: fu_hughski_colorhug_error_to_string
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:165,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:168,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:174,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:185,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 5
    argNames:
    - self
    - cmd
    - obuf
    - obufsz
    - error
    argTypes:
    - FuHughskiColorhugDevice*
    - FuHughskiColorhugCmd
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 198
    functionName: fu_hughski_colorhug_device_recv
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - g_set_error_literal
    - g_steal_pointer
    - fu_dump_raw
    - fu_usb_device_interrupt_transfer
    - g_error_matches
    - fu_memcpy_safe
    - FU_USB_DEVICE
    - g_autoptr
    - fu_hughski_colorhug_error_to_string
    - g_propagate_prefixed_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hughski_colorhug_device_recv(FuHughskiColorhugDevice *self,\n\t\t\t\tFuHughskiColorhugCmd
      cmd,\n\t\t\t\tguint8 *obuf,\n\t\t\t\tgsize obufsz,\n\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_hughski_colorhug_device_send
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:209,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:210,1
    - Dst: fu_hughski_colorhug_device_recv
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:213,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - self
    - cmd
    - ibuf
    - ibufsz
    - obuf
    - obufsz
    - error
    argTypes:
    - FuHughskiColorhugDevice*
    - FuHughskiColorhugCmd
    - guint8*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 200
    functionDepth: 5
    functionLinenumber: 200
    functionLinenumberEnd: 220
    functionName: fu_hughski_colorhug_device_msg
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_hughski_colorhug_device_send
    - fu_hughski_colorhug_device_recv
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_hughski_colorhug_device_msg(FuHughskiColorhugDevice *self,\n\t\t\t
      \      FuHughskiColorhugCmd cmd,\n\t\t\t       const 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:225,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:226,1
    - Dst: fu_device_event_new
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:226,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:229,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:229,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:230,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:230,1
    - Dst: fu_device_event_set_bytes
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:231,1
    - Dst: fu_device_add_event
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:232,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:232,1
    - Dst: fu_hughski_colorhug_device_recv
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:233,1
    - Dst: fu_hughski_colorhug_device_send
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - fuzzer
    - blob
    - error
    argTypes:
    - FuFuzzer*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 222
    functionDepth: 6
    functionLinenumber: 222
    functionLinenumberEnd: 248
    functionName: fu_hughski_colorhug_device_fuzzer_test_input
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_HUGHSKI_COLORHUG_DEVICE
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_event_set_bytes
    - fu_device_event_new
    - fu_device_add_event
    - fu_hughski_colorhug_device_recv
    - g_autoptr
    - fu_hughski_colorhug_device_send
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hughski_colorhug_device_fuzzer_test_input(FuFuzzer *fuzzer,
      GBytes *blob, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fuzzer
    - blob
    - error
    argTypes:
    - FuFuzzer*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 255
    functionName: fu_hughski_colorhug_device_fuzzer_build_example
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_hughski_colorhug_device_fuzzer_build_example(FuFuzzer *fuzzer, GBytes *blob,
      GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuFuzzerInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 262
    functionName: fu_hughski_colorhug_device_fuzzer_iface_init
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_hughski_colorhug_device_fuzzer_iface_init(FuFuzzerInterface
      *iface)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_HUGHSKI_COLORHUG_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:267,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:268,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:271,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:272,1
    - Dst: fu_hughski_colorhug_device_msg
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:275,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:282,1
    - Dst: fu_progress_sleep_idle
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:291,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 264
    functionDepth: 6
    functionLinenumber: 264
    functionLinenumberEnd: 294
    functionName: fu_hughski_colorhug_device_detach
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - g_set_error
    - FU_HUGHSKI_COLORHUG_DEVICE
    - fu_hughski_colorhug_device_msg
    - fu_device_has_flag
    - fu_progress_sleep_idle
    - g_autoptr
    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:299,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:300,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:303,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:304,1
    - Dst: fu_hughski_colorhug_device_msg
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:307,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:314,1
    - Dst: fu_progress_sleep_idle
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:323,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 296
    functionDepth: 6
    functionLinenumber: 296
    functionLinenumberEnd: 326
    functionName: fu_hughski_colorhug_device_attach
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - g_set_error
    - FU_HUGHSKI_COLORHUG_DEVICE
    - fu_hughski_colorhug_device_msg
    - fu_device_has_flag
    - fu_progress_sleep_idle
    - g_autoptr
    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:334,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:336,1
    - Dst: fu_hughski_colorhug_device_msg
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:337,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - val
    - error
    argTypes:
    - FuHughskiColorhugDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 328
    functionDepth: 6
    functionLinenumber: 328
    functionLinenumberEnd: 352
    functionName: fu_hughski_colorhug_device_set_flash_success
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_hughski_colorhug_device_msg
    - g_debug
    - 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:357,1
    - Dst: fu_hughski_colorhug_device_set_flash_success
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 354
    functionDepth: 7
    functionLinenumber: 354
    functionLinenumberEnd: 359
    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:368,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:370,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:371,1
    - Dst: fu_hughski_colorhug_device_msg
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:372,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - addr
    - sz
    - error
    argTypes:
    - FuHughskiColorhugDevice*
    - guint16
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 361
    functionDepth: 6
    functionLinenumber: 361
    functionLinenumberEnd: 387
    functionName: fu_hughski_colorhug_device_erase
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - g_autoptr
    - fu_hughski_colorhug_device_msg
    - g_set_error
    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:393,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:402,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:403,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:404,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHughskiColorhugDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 389
    functionDepth: 6
    functionLinenumber: 389
    functionLinenumberEnd: 406
    functionName: fu_hughski_colorhug_device_get_version
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_hughski_colorhug_device_msg
    - 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:411,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:414,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 408
    functionDepth: 6
    functionLinenumber: 408
    functionLinenumberEnd: 422
    functionName: fu_hughski_colorhug_device_probe
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_HUGHSKI_COLORHUG_DEVICE
    - fu_device_has_private_flag
    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:427,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:431,1
    - Dst: fu_usb_device_get_custom_index
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:435,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:435,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:442,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:442,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:447,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:447,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:448,1
    - Dst: fu_usb_device_get_custom_index
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:453,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:453,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:460,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:460,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:461,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:465,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:467,1
    - Dst: fu_hughski_colorhug_device_get_version
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:468,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:470,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:471,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:472,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:474,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 424
    functionDepth: 10
    functionLinenumber: 424
    functionLinenumberEnd: 480
    functionName: fu_hughski_colorhug_device_setup
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_id
    - fu_device_set_version
    - fu_usb_device_get_custom_index
    - fu_usb_device_get_string_descriptor
    - g_debug
    - fu_hughski_colorhug_device_get_version
    - FU_HUGHSKI_COLORHUG_DEVICE
    - g_warning
    - fu_version_guess_format
    - fu_device_set_version_format
    - FU_USB_DEVICE
    - g_autoptr
    - FU_DEVICE_CLASS
    - fu_device_get_version_format
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hughski_colorhug_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:489,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:490,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:490,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:491,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:493,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:494,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:497,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:502,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:502,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:503,1
    - Dst: fu_xor8
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:504,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:504,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:504,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:505,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:508,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:509,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:511,1
    - Dst: fu_hughski_colorhug_device_msg
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:514,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:521,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:530,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuHughskiColorhugDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 482
    functionDepth: 6
    functionLinenumber: 482
    functionLinenumberEnd: 535
    functionName: fu_hughski_colorhug_device_write_blocks
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_xor8
    - g_set_error
    - fu_memwrite_uint16
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - fu_hughski_colorhug_device_msg
    - fu_progress_step_done
    - fu_chunk_get_address
    - fu_chunk_get_data
    - fu_memcpy_safe
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:544,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:545,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:545,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:546,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:547,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:550,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:553,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:558,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:558,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:559,1
    - Dst: fu_hughski_colorhug_device_msg
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:560,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:567,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:576,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:576,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:576,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:577,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:583,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:584,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:589,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuHughskiColorhugDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 537
    functionDepth: 6
    functionLinenumber: 537
    functionLinenumberEnd: 594
    functionName: fu_hughski_colorhug_device_verify_blocks
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_memwrite_uint16
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - fu_hughski_colorhug_device_msg
    - fu_progress_step_done
    - fu_chunk_get_address
    - memcmp
    - fu_chunk_get_data
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:603,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:604,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:605,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:608,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:609,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:610,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:611,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:612,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:615,1
    - Dst: fu_hughski_colorhug_device_set_flash_success
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:620,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:622,1
    - Dst: fu_hughski_colorhug_device_erase
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:625,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:627,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:630,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:633,1
    - Dst: fu_hughski_colorhug_device_write_blocks
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:640,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:642,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:645,1
    - Dst: fu_hughski_colorhug_device_verify_blocks
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:648,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:650,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:653,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: 657
      start: 596
    functionDepth: 7
    functionLinenumber: 596
    functionLinenumberEnd: 657
    functionName: fu_hughski_colorhug_device_write_firmware
    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_verify_blocks
    - fu_hughski_colorhug_device_erase
    - fu_progress_add_step
    - fu_firmware_get_stream
    - FU_HUGHSKI_COLORHUG_DEVICE
    - fu_progress_step_done
    - fu_hughski_colorhug_device_write_blocks
    - fu_firmware_get_size
    - fu_chunk_array_new_from_stream
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:662,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:663,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:664,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:665,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:666,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 659
    functionDepth: 3
    functionLinenumber: 659
    functionLinenumberEnd: 668
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:675,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:675,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:676,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:676,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:677,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:677,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:678,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:678,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:679,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:679,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:680,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:680,1
    - Dst: fu_usb_device_set_configuration
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:681,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:681,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:682,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHughskiColorhugDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 670
    functionDepth: 6
    functionLinenumber: 670
    functionLinenumberEnd: 683
    functionName: fu_hughski_colorhug_device_init
    functionSourceFile: /src/fwupd/plugins/hughski-colorhug/fu-hughski-colorhug-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_usb_device_set_configuration
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_device_add_protocol
    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:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHughskiColorhugDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 696
    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:72,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pstore
    - cmd
    - error
    argTypes:
    - FuPathStore*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: fu_uefi_capsule_build_app_basename
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_uefi_bootmgr_get_suffix
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_uefi_capsule_build_app_basename(FuPathStore *pstore, const gchar *cmd, GError
      **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:104,1
    - Dst: fu_path_store_get_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:106,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:110,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:111,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:112,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:113,1
    - Dst: fu_efivars_get_secure_boot
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:115,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:116,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:119,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:126,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:130,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:132,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:134,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - pstore
    - efivars
    - basename
    - error
    argTypes:
    - FuPathStore*
    - FuEfivars*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 141
    functionName: fu_uefi_get_built_app_path
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c
    functionUses: 0
    functionsReached:
    - fu_path_store_get_path
    - g_debug
    - g_set_error
    - fu_efivars_get_secure_boot
    - g_steal_pointer
    - g_file_test
    - g_strdup_printf
    - g_autoptr
    - g_build_filename
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_uefi_get_built_app_path(FuPathStore *pstore,\n\t\t\t   FuEfivars
      *efivars,\n\t\t\t   const gchar *basename,\n\t\t\t   GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_store_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:150,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:158,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:159,1
    - Dst: fu_uefi_read_file_as_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:165,1
    - Dst: fu_uefi_read_file_as_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:166,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:168,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - pstore
    - width
    - height
    - error
    argTypes:
    - FuPathStore*
    - guint32*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 182
    functionName: fu_uefi_get_framebuffer_size
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - g_file_test
    - fu_uefi_read_file_as_uint64
    - fu_path_store_build_filename
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_get_framebuffer_size(FuPathStore *pstore, guint32
      *width, guint32 *height, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:189,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:190,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:192,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:194,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - path
    - attr_name
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 199
    functionName: fu_uefi_read_file_as_uint64
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c
    functionUses: 1
    functionsReached:
    - fu_strtoull
    - g_file_get_contents
    - g_warning
    - g_autoptr
    - g_build_filename
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_uefi_read_file_as_uint64(const gchar *path, const gchar
      *attr_name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:211,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:215,1
    - Dst: g_compute_checksum_for_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:217,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:218,1
    - Dst: g_compute_checksum_for_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:220,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - fn_src
    - fn_dst
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 222
    functionName: fu_uefi_esp_target_verify
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c
    functionUses: 0
    functionsReached:
    - g_file_test
    - g_compute_checksum_for_data
    - g_file_get_contents
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_esp_target_verify(const gchar *fn_src, const gchar
      *fn_dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:227,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:227,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:228,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:228,1
    - Dst: g_file_copy
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:230,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - fn_src
    - fn_dst
    - error
    argTypes:
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 242
    functionName: fu_uefi_esp_target_copy
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-common.c
    functionUses: 0
    functionsReached:
    - g_file_new_for_path
    - g_file_copy
    - g_autoptr
    - g_prefix_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_esp_target_copy(const gchar *fn_src, const gchar *fn_dst,
      GError **error)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:23,1
    - Dst: FU_DEVICE
      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_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:29,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:32,1
    - Dst: fu_efivars_get_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:33,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:39,1
    - Dst: fu_struct_efi_capsule_result_variable_header_parse_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:42,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:44,1
    - Dst: fu_struct_efi_capsule_result_variable_header_get_total_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:49,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:51,1
    - Dst: fu_struct_efi_capsule_result_variable_header_get_total_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:55,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:60,1
    - Dst: fu_struct_efi_capsule_result_variable_header_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:60,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:62,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:62,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:63,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:67,1
    - Dst: fu_struct_efi_capsule_result_variable_header_get_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:73,1
    - Dst: fu_uefi_capsule_device_set_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:75,1
    - Dst: fu_uefi_capsule_device_set_status
      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:85,1
    - Dst: fu_uefi_capsule_device_set_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:94,1
    - Dst: fu_uefi_capsule_device_set_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:100,1
    - Dst: fu_uefi_capsule_device_set_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:104,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 3
    argNames:
    - self
    - idx
    - error
    argTypes:
    - FuUefiCodDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 109
    functionName: fu_uefi_cod_device_get_results_for_idx
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c
    functionUses: 0
    functionsReached:
    - fu_efivars_get_data_bytes
    - g_strcmp0
    - fu_struct_efi_capsule_result_variable_header_get_status
    - g_set_error
    - FU_UEFI_CAPSULE_DEVICE
    - fu_uefi_capsule_device_set_status
    - fu_struct_efi_capsule_result_variable_header_get_total_size
    - fwupd_guid_to_string
    - fu_device_get_context
    - g_prefix_error
    - fu_struct_efi_capsule_result_variable_header_get_guid
    - FU_DEVICE
    - g_strdup_printf
    - fu_context_get_efivars
    - fu_struct_efi_capsule_result_variable_header_parse_bytes
    - fu_uefi_capsule_device_get_guid
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_cod_device_get_results_for_idx(FuUefiCodDevice *self,
      guint idx, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:119,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:119,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:123,1
    - Dst: fu_efivars_get_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:126,1
    - Dst: fu_utf16_to_utf8_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:133,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:136,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:137,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:145,1
    - Dst: strlen
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - name
    - value
    - error
    argTypes:
    - FuUefiCodDevice*
    - gchar*
    - guint*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 155
    functionName: fu_uefi_cod_device_get_variable_idx
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c
    functionUses: 0
    functionsReached:
    - fu_efivars_get_data_bytes
    - g_set_error
    - fu_utf16_to_utf8_bytes
    - fu_strtoull
    - fu_device_get_context
    - FU_DEVICE
    - fu_context_get_efivars
    - strlen
    - g_str_has_prefix
    - g_autoptr
    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:160,1
    - Dst: fu_uefi_cod_device_get_variable_idx
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:167,1
    - Dst: fu_uefi_cod_device_get_results_for_idx
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:168,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:170,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:171,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 178
    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_get_results_for_idx
    - g_steal_pointer
    - g_error_matches
    - fu_uefi_cod_device_get_variable_idx
    - g_propagate_error
    - g_autoptr
    - FU_UEFI_COD_DEVICE
    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:184,1
    - Dst: fu_uefi_capsule_device_get_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:184,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:187,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:189,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:190,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:190,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:196,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsuleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 203
    functionName: fu_uefi_cod_device_get_indexed_filename
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_steal_pointer
    - fu_volume_get_mount_point
    - FU_DEVICE
    - g_strdup_printf
    - fu_uefi_capsule_device_get_esp
    - fu_device_query_file_exists
    - g_build_filename
    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:208,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:213,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:219,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:222,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:222,1
    - Dst: fu_uefi_cod_device_get_indexed_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:224,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:227,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:227,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:229,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:239,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:239,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsuleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 205
    functionDepth: 5
    functionLinenumber: 205
    functionLinenumberEnd: 241
    functionName: fu_uefi_cod_device_get_filename
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_volume_get_mount_point
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_strdup_printf
    - fu_uefi_capsule_device_get_guid
    - fu_uefi_capsule_device_get_esp
    - fu_uefi_cod_device_get_indexed_filename
    - g_build_filename
    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:250,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:251,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:252,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:254,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:255,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:258,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:259,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:267,1
    - Dst: fu_uefi_capsule_device_fixup_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:270,1
    - Dst: fu_uefi_cod_device_get_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:273,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:276,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:277,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:279,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:288,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:292,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:295,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:302,1
    - Dst: fu_memread_uint64_safe
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:304,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:313,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:322,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: 329
      start: 243
    functionDepth: 6
    functionLinenumber: 243
    functionLinenumberEnd: 329
    functionName: fu_uefi_cod_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c
    functionUses: 0
    functionsReached:
    - fu_uefi_cod_device_get_filename
    - g_info
    - fu_firmware_get_bytes
    - g_debug
    - FU_UEFI_CAPSULE_DEVICE
    - g_set_error_literal
    - fu_device_get_context
    - fu_uefi_capsule_device_fixup_firmware
    - fu_device_has_private_flag
    - g_prefix_error_literal
    - fu_uefi_capsule_device_get_guid
    - fu_context_get_efivars
    - fu_memread_uint64_safe
    - fu_bytes_set_contents
    - fu_efivars_get_data
    - g_autoptr
    - fu_efivars_set_data
    - fu_path_mkdir_parent
    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:335,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:336,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:336,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - metadata
    argTypes:
    - FuDevice*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 337
    functionName: fu_uefi_cod_device_report_metadata_pre
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - 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:342,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:342,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:343,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCodDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: fu_uefi_cod_device_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-cod-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_summary
    - 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:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiCodDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 354
    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: 1471
    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_VOLUME
    - g_return_if_fail
    - g_set_object
    - FU_IS_UEFI_CAPSULE_DEVICE
    - GET_PRIVATE
    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:
    - g_strcmp0
    - fu_volume_get_id
    - fu_volume_kind_convert_to_gpt
    - fu_uefi_capsule_device_status_to_string
    - FU_UEFI_CAPSULE_DEVICE
    - fu_volume_get_partition_kind
    - fu_volume_get_mount_point
    - fwupd_codec_string_append
    - fu_uefi_capsule_device_kind_to_string
    - fwupd_codec_string_append_int
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    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_strdup
    - g_hash_table_insert
    - fu_volume_get_partition_kind
    - FU_UEFI_CAPSULE_DEVICE
    - g_steal_pointer
    - fu_volume_get_mount_point
    - GET_PRIVATE
    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_strdup
    - g_hash_table_insert
    - FU_UEFI_CAPSULE_DEVICE
    - g_strdup_printf
    - GET_PRIVATE
    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_uefi_capsule_device_status_to_string
    - g_return_if_fail
    - fu_device_set_update_error
    - FU_DEVICE
    - g_strdup_printf
    - FU_IS_UEFI_CAPSULE_DEVICE
    - fu_device_set_update_state
    - GET_PRIVATE
    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
    - g_return_if_fail
    - GET_PRIVATE
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:246,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - capsule_flags
    argTypes:
    - FuUefiCapsuleDevice*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 258
    functionName: fu_uefi_capsule_device_set_capsule_flags
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_device_set_capsule_flags(FuUefiCapsuleDevice *self,
      guint32 capsule_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:263,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:264,1
    - Dst: FU_IS_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 266
    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:271,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: fu_uefi_capsule_device_build_varname
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - GET_PRIVATE
    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:280,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:280,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:281,1
    - Dst: fu_uefi_capsule_device_build_varname
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:282,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:283,1
    - Dst: fu_uefi_update_info_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:283,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:284,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:286,1
    - Dst: FU_IS_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:286,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:287,1
    - Dst: fu_efivars_get_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:290,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:293,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:293,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsuleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 277
    functionDepth: 5
    functionLinenumber: 277
    functionLinenumberEnd: 300
    functionName: fu_uefi_capsule_device_load_update_info
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_efivars_get_data_bytes
    - FU_FIRMWARE
    - g_steal_pointer
    - fu_device_get_context
    - FU_DEVICE
    - fu_context_get_efivars
    - fu_uefi_capsule_device_build_varname
    - FU_IS_UEFI_CAPSULE_DEVICE
    - fu_firmware_parse_bytes
    - fu_uefi_update_info_new
    - g_autoptr
    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:305,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:305,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:306,1
    - Dst: fu_uefi_capsule_device_build_varname
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:308,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:310,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:312,1
    - Dst: FU_IS_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:312,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:313,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:316,1
    - Dst: fu_struct_efi_update_info_parse
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:324,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:326,1
    - Dst: fu_struct_efi_update_info_set_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:331,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:332,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:333,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:342,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsuleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 348
    functionName: fu_uefi_capsule_device_clear_status
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_device_get_context
    - fu_struct_efi_update_info_parse
    - g_prefix_error_literal
    - FU_DEVICE
    - memcpy
    - fu_context_get_efivars
    - fu_uefi_capsule_device_build_varname
    - FU_IS_UEFI_CAPSULE_DEVICE
    - fu_struct_efi_update_info_set_status
    - fu_efivars_get_data
    - g_autoptr
    - fu_efivars_set_data
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_device_clear_status(FuUefiCapsuleDevice *self,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:353,1
    - Dst: fu_efi_device_path_list_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:353,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:354,1
    - Dst: fu_efi_file_path_device_path_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:354,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:355,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:356,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:360,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:366,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:367,1
    - Dst: strlen
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:375,1
    - Dst: fu_efi_hard_drive_device_path_new_from_volume
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:377,1
    - Dst: fu_efi_file_path_device_path_set_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:380,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:382,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:382,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:382,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:384,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:384,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:384,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:386,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - esp
    - filename
    - error
    argTypes:
    - FuVolume*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 350
    functionDepth: 5
    functionLinenumber: 350
    functionLinenumberEnd: 387
    functionName: fu_uefi_capsule_device_build_dp_buf
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_add_image
    - g_set_error_literal
    - FU_FIRMWARE
    - g_steal_pointer
    - fu_volume_get_mount_point
    - strlen
    - fu_efi_hard_drive_device_path_new_from_volume
    - fu_efi_device_path_list_new
    - g_str_has_prefix
    - g_autoptr
    - fu_efi_file_path_device_path_new
    - fu_efi_file_path_device_path_set_name
    linkageType: ''
    returnType: FuEfiDevicePathList
    signature: 'FuEfiDevicePathList *

      fu_uefi_capsule_device_build_dp_buf(FuVolume *esp, const gchar *filename, GError
      **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:392,1
    - Dst: getpagesize
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:394,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:396,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:398,1
    - Dst: fu_struct_efi_capsule_header_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:398,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:400,1
    - Dst: FU_IS_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:400,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:401,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:407,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:413,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:416,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:417,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:418,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:420,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:421,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:421,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:423,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:427,1
    - Dst: fu_struct_efi_capsule_header_set_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:429,1
    - Dst: fu_struct_efi_capsule_header_set_header_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:430,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:432,1
    - Dst: fu_struct_efi_capsule_header_set_image_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:438,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:440,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:443,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:447,1
    - Dst: fu_struct_efi_capsule_header_set_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:450,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:453,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:454,1
    - Dst: fu_struct_efi_capsule_header_to_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:455,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - self
    - fw
    - error
    argTypes:
    - FuUefiCapsuleDevice*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 456
    functionName: fu_uefi_capsule_device_fixup_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 1
    functionsReached:
    - fwupd_guid_to_string
    - fu_struct_efi_capsule_header_set_guid
    - fu_struct_efi_capsule_header_new
    - g_debug
    - g_set_error_literal
    - fwupd_guid_from_string
    - g_prefix_error_literal
    - fu_struct_efi_capsule_header_set_image_size
    - getpagesize
    - FU_IS_UEFI_CAPSULE_DEVICE
    - GET_PRIVATE
    - g_bytes_ref
    - g_info
    - g_bytes_get_data
    - FU_DEVICE
    - g_byte_array_append
    - g_return_val_if_fail
    - g_strcmp0
    - fu_struct_efi_capsule_header_set_header_size
    - fu_device_has_private_flag
    - fu_struct_efi_capsule_header_to_bytes
    - fu_struct_efi_capsule_header_set_flags
    - g_autoptr
    - 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:465,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:465,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:466,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:467,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:469,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:470,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:471,1
    - Dst: fu_struct_efi_update_info_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:471,1
    - Dst: fu_uefi_capsule_device_build_dp_buf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:474,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:477,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:477,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:482,1
    - Dst: fu_struct_efi_update_info_set_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:484,1
    - Dst: fu_struct_efi_update_info_set_hw_inst
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:485,1
    - Dst: fu_struct_efi_update_info_set_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:486,1
    - Dst: fu_struct_efi_update_info_set_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:487,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:488,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:489,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:498,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: 504
      start: 458
    functionDepth: 6
    functionLinenumber: 458
    functionLinenumberEnd: 504
    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_byte_array_append_bytes
    - FU_FIRMWARE
    - fwupd_guid_from_string
    - fu_device_get_context
    - fu_struct_efi_update_info_set_flags
    - fu_struct_efi_update_info_set_guid
    - FU_DEVICE
    - g_prefix_error
    - fu_context_get_efivars
    - fu_struct_efi_update_info_new
    - fu_struct_efi_update_info_set_status
    - fu_struct_efi_update_info_set_hw_inst
    - g_autoptr
    - fu_efivars_set_data
    - fu_uefi_capsule_device_build_dp_buf
    - GET_PRIVATE
    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:509,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:509,1
    - Dst: fu_context_get_path_store
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:510,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:511,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:516,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:516,1
    - Dst: fu_uefi_capsule_build_app_basename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:519,1
    - Dst: fu_uefi_get_built_app_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:522,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsuleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 506
    functionDepth: 3
    functionLinenumber: 506
    functionLinenumberEnd: 528
    functionName: fu_uefi_capsule_device_check_asset
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_context
    - fu_device_has_private_flag
    - fu_context_get_path_store
    - FU_DEVICE
    - fu_context_get_efivars
    - fu_uefi_capsule_build_app_basename
    - fu_uefi_get_built_app_path
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_device_check_asset(FuUefiCapsuleDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:536,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:537,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:541,1
    - Dst: fu_volume_locker_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 530
    functionDepth: 3
    functionLinenumber: 530
    functionLinenumberEnd: 551
    functionName: fu_uefi_capsule_device_prepare
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_CAPSULE_DEVICE
    - g_set_error_literal
    - fu_volume_locker_new
    - GET_PRIVATE
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:559,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:560,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:564,1
    - Dst: fu_volume_locker_close
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:569,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 553
    functionDepth: 3
    functionLinenumber: 553
    functionLinenumberEnd: 574
    functionName: fu_uefi_capsule_device_cleanup
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_volume_locker_close
    - FU_UEFI_CAPSULE_DEVICE
    - g_set_error_literal
    - g_clear_object
    - GET_PRIVATE
    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:579,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:580,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:584,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:592,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:593,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:602,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:605,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:608,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:609,1
    - Dst: fu_device_set_version_lowest_raw
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:610,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:611,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:616,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:617,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:623,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 576
    functionDepth: 5
    functionLinenumber: 576
    functionLinenumberEnd: 628
    functionName: fu_uefi_capsule_device_probe
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_id
    - fu_device_set_version_raw
    - g_set_error
    - FU_UEFI_CAPSULE_DEVICE
    - g_set_error_literal
    - fu_device_get_version_format
    - fu_device_add_icon
    - fu_device_add_private_flag
    - fwupd_guid_is_valid
    - fu_version_from_uint32
    - fu_device_set_version_lowest
    - fu_device_set_version_lowest_raw
    - GET_PRIVATE
    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:633,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:633,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:634,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:636,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:637,1
    - Dst: fu_efivars_get_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:640,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:646,1
    - Dst: fu_utf16_to_utf8_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:651,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:653,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 630
    functionDepth: 3
    functionLinenumber: 630
    functionLinenumberEnd: 659
    functionName: fu_uefi_capsule_device_capture_efi_debugging
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_efivars_get_data_bytes
    - g_info
    - fu_utf16_to_utf8_bytes
    - fu_device_get_context
    - FU_DEVICE
    - fu_context_get_efivars
    - g_warning
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_device_capture_efi_debugging(FuUefiCapsuleDevice
      *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:664,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:664,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:665,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:667,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:667,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:670,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:679,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:686,1
    - Dst: fu_efivars_delete
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:687,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsuleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 661
    functionDepth: 2
    functionLinenumber: 661
    functionLinenumberEnd: 696
    functionName: fu_uefi_capsule_device_perhaps_enable_debugging
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_efivars_exists
    - fu_device_get_context
    - fu_device_has_private_flag
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_efivars_delete
    - fu_context_get_efivars
    - fu_efivars_set_data
    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:701,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:702,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:705,1
    - Dst: fu_uefi_capsule_device_capture_efi_debugging
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:706,1
    - Dst: fu_uefi_capsule_device_set_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 698
    functionDepth: 7
    functionLinenumber: 698
    functionLinenumberEnd: 711
    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
    - fu_uefi_capsule_device_set_status
    - fu_device_has_private_flag
    - fu_uefi_capsule_device_capture_efi_debugging
    - GET_PRIVATE
    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:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 718
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:739,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:740,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:751,1
    - Dst: va_start
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:758,1
    - Dst: g_build_filename_valist
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:759,1
    - Dst: va_end
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:760,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:764,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:765,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:766,1
    - Dst: g_get_os_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:769,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:771,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:772,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:773,1
    - Dst: g_get_os_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:775,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:777,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:777,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:780,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:781,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:782,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:787,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:794,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - self
    - error
    - filename
    argTypes:
    - FuUefiCapsuleDevice*
    - GError**
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 796
    functionName: fu_uefi_capsule_device_build_efi_path
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - va_end
    - g_set_error
    - g_set_error_literal
    - fu_volume_get_mount_point
    - g_build_filename
    - g_build_filename_valist
    - g_file_test
    - g_get_os_info
    - g_strsplit
    - g_auto
    - va_start
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_uefi_capsule_device_build_efi_path(FuUefiCapsuleDevice
      *self,\n\t\t\t\t      GError **error,\n\t\t\t\t      const gchar *filename,\n\t\t\t\t
      \     ...)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:805,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:806,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:808,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:808,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:812,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:817,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:820,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:820,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:822,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:823,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:826,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:828,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:829,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:831,1
    - Dst: fu_volume_check_free_space
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:835,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:839,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: 840
      start: 798
    functionDepth: 4
    functionLinenumber: 798
    functionLinenumberEnd: 840
    functionName: fu_uefi_capsule_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_info
    - fu_firmware_parse_stream
    - FU_UEFI_CAPSULE_DEVICE
    - g_set_error_literal
    - g_steal_pointer
    - fu_volume_check_free_space
    - fu_device_has_private_flag
    - fu_firmware_new
    - FU_DEVICE
    - fu_firmware_get_size
    - g_autoptr
    - GET_PRIVATE
    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:848,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:849,1
    - Dst: g_value_dup_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:852,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:855,1
    - Dst: fu_uefi_capsule_device_set_capsule_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:858,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:858,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:861,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:864,1
    - Dst: fu_uefi_capsule_device_set_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:867,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:867,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:870,1
    - Dst: g_value_get_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:873,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:876,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: 879
      start: 842
    functionDepth: 7
    functionLinenumber: 842
    functionLinenumberEnd: 879
    functionName: fu_uefi_capsule_device_set_property
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_value_dup_string
    - fu_uefi_capsule_device_set_capsule_flags
    - FU_UEFI_CAPSULE_DEVICE
    - fu_uefi_capsule_device_set_status
    - g_value_get_uint64
    - g_value_get_uint
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    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:884,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:885,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:886,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:887,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:888,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 881
    functionDepth: 3
    functionLinenumber: 881
    functionLinenumberEnd: 890
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:895,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:895,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:896,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:896,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:897,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:897,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:898,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:898,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:899,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:899,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:900,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:900,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:901,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:901,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:902,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:902,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:903,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:903,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:904,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:904,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:905,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:905,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:906,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:906,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:908,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:908,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:910,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:910,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:912,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:912,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:914,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:914,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:916,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:916,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:918,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:918,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:920,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:920,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:922,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:922,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:924,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:924,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:925,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 892
    functionDepth: 6
    functionLinenumber: 892
    functionLinenumberEnd: 926
    functionName: fu_uefi_capsule_device_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_add_protocol
    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:931,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:932,1
    - Dst: g_free
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:934,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:936,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:938,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:940,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 941
    functionName: fu_uefi_capsule_device_finalize
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_CAPSULE_DEVICE
    - g_object_unref
    - G_OBJECT_CLASS
    - g_free
    - GET_PRIVATE
    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:946,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 947
    functionName: fu_uefi_capsule_device_convert_version
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    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:952,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:954,1
    - Dst: g_param_spec_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:975,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:980,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:987,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:994,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:1001,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:1008,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:1015,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:1022,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:1029,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:1036,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:1043,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:1050,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:1057,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:1064,1
    - Dst: g_param_spec_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:1072,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiCapsuleDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 1080
    functionName: fu_uefi_capsule_device_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-device.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_uint
    - g_param_spec_uint64
    - G_OBJECT_CLASS
    - g_param_spec_string
    - FU_DEVICE_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_set_boot_order
    - fu_efivars_get_boot_order
    - g_prefix_error
    - g_array_index
    - g_array_append_val
    - g_autoptr
    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_firmware_get_id
    - fu_uefi_bootmgr_parse_name
    - fu_efivars_get_names
    - g_strcmp0
    - g_debug
    - FU_FIRMWARE
    - g_set_error_literal
    - fu_efivars_get_boot_entry
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_bootmgr_verify_fwupd(FuEfivars *efivars, GError **error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:104,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:104,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:105,1
    - Dst: g_malloc0
      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: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:111,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:114,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:114,1
    - Dst: fu_efivars_get_names
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:119,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: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:127,1
    - Dst: fu_efi_load_option_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:127,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:130,1
    - Dst: fu_uefi_bootmgr_parse_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:131,1
    - Dst: fu_efivars_get_boot_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:138,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:140,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:143,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:143,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:148,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:151,1
    - Dst: FU_FIRMWARE
      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_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:153,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:154,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:158,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:166,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:167,1
    - Dst: fu_efivars_set_boot_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:168,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:169,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:174,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:186,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:193,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:194,1
    - Dst: fu_efivars_set_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:195,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:203,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:209,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:209,1
    - Dst: fu_uefi_bootmgr_add_to_boot_order
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:211,1
    - Dst: fu_efivars_set_boot_next
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:216,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:217,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 79
    argCount: 3
    argNames:
    - capsule_device
    - loadopt
    - error
    argTypes:
    - FuUefiCapsuleDevice*
    - FuEfiLoadOption*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 99
    functionDepth: 5
    functionLinenumber: 99
    functionLinenumberEnd: 221
    functionName: fu_uefi_bootmgr_setup_bootnext_with_loadopt
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_uefi_bootmgr_parse_name
    - fu_efivars_get_names
    - fu_device_get_context
    - g_strdup_printf
    - g_ptr_array_index
    - fu_firmware_get_id
    - g_debug
    - fu_uefi_bootmgr_add_to_boot_order
    - g_prefix_error_literal
    - fu_context_get_efivars
    - fu_firmware_parse_bytes
    - fu_efivars_set_data_bytes
    - FU_FIRMWARE
    - g_malloc0
    - FU_DEVICE
    - g_strcmp0
    - g_set_error
    - fu_efivars_set_boot_next
    - g_steal_pointer
    - g_prefix_error
    - fu_device_has_private_flag
    - fu_efivars_get_boot_data
    - fu_efi_load_option_new
    - fu_bytes_compare
    - fu_efivars_set_boot_data
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_bootmgr_setup_bootnext_with_loadopt(FuUefiCapsuleDevice
      *capsule_device,\n\t\t\t\t\t    FuEfiLoadOption *loadopt,\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:226,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:227,1
    - Dst: fu_pefile_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: fu_csv_firmware_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:230,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:231,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:232,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:233,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:235,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:236,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:237,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:240,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:242,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:244,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:246,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:246,1
    - Dst: fu_efivars_get_data_bytes
      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:255,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:255,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:256,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:256,1
    - Dst: fu_csv_firmware_add_column_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:257,1
    - Dst: FU_CSV_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:257,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:258,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:263,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:276,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:279,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:282,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:283,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:283,1
    - Dst: FU_CSV_ENTRY
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:288,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:288,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:288,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:292,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:293,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:303,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:305,1
    - Dst: fu_csv_entry_get_value_by_column_id_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:310,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:314,1
    - Dst: fu_csv_entry_get_value_by_column_id_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:320,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:324,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:328,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 67
    argCount: 3
    argNames:
    - efivars
    - source_shim
    - error
    argTypes:
    - FuEfivars*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 223
    functionDepth: 5
    functionLinenumber: 223
    functionLinenumberEnd: 341
    functionName: fu_uefi_bootmgr_shim_is_safe
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c
    functionUses: 0
    functionsReached:
    - fu_firmware_parse_file
    - fu_csv_firmware_add_column_id
    - fu_firmware_get_image_by_id
    - fu_csv_firmware_new
    - FU_CSV_ENTRY
    - g_ptr_array_index
    - fu_firmware_get_id
    - fu_efivars_get_data_bytes
    - g_debug
    - g_prefix_error_literal
    - fu_firmware_get_images
    - fu_firmware_parse_bytes
    - g_file_new_for_path
    - g_propagate_error
    - FU_FIRMWARE
    - FU_CSV_FIRMWARE
    - fu_csv_entry_get_value_by_column_id_uint64
    - fu_pefile_firmware_new
    - g_set_error
    - g_steal_pointer
    - g_prefix_error
    - g_error_matches
    - g_autoptr
    - g_propagate_prefixed_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_bootmgr_shim_is_safe(FuEfivars *efivars, const gchar
      *source_shim, GError **error)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:348,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:348,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:349,1
    - Dst: fu_uefi_capsule_device_get_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:350,1
    - Dst: fu_context_get_path_store
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:351,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:357,1
    - Dst: fu_efi_load_option_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:357,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:358,1
    - Dst: fu_uefi_capsule_build_app_basename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:361,1
    - Dst: fu_uefi_get_built_app_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:364,1
    - Dst: fu_uefi_capsule_device_build_efi_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:367,1
    - Dst: fu_uefi_esp_target_verify
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:370,1
    - Dst: fu_uefi_esp_target_copy
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:371,1
    - Dst: fu_efivars_get_secure_boot
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:376,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:377,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:378,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:378,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:381,1
    - Dst: fu_uefi_capsule_build_app_basename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:385,1
    - Dst: fu_uefi_capsule_device_build_efi_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:388,1
    - Dst: fu_uefi_get_built_app_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:396,1
    - Dst: fu_uefi_esp_target_verify
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:398,1
    - Dst: fu_uefi_bootmgr_shim_is_safe
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:399,1
    - Dst: fu_uefi_esp_target_copy
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:401,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:404,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:405,1
    - Dst: fu_uefi_capsule_device_build_dp_buf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:414,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:417,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:417,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:417,1
    - Dst: fu_efi_load_option_set_metadata
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:419,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:423,1
    - Dst: fu_uefi_capsule_device_build_dp_buf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:426,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:429,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:429,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:429,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:434,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:434,1
    - Dst: fu_uefi_bootmgr_setup_bootnext_with_loadopt
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c:435,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 3
    argNames:
    - capsule_device
    - description
    - error
    argTypes:
    - FuUefiCapsuleDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 343
    functionDepth: 6
    functionLinenumber: 343
    functionLinenumberEnd: 436
    functionName: fu_uefi_bootmgr_bootnext
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bootmgr.c
    functionUses: 0
    functionsReached:
    - fu_uefi_bootmgr_shim_is_safe
    - fu_uefi_esp_target_copy
    - fu_device_get_context
    - fu_uefi_esp_target_verify
    - fu_uefi_get_built_app_path
    - fu_uefi_capsule_device_build_efi_path
    - g_debug
    - fu_firmware_add_image
    - fu_context_get_efivars
    - fu_uefi_bootmgr_setup_bootnext_with_loadopt
    - fu_uefi_capsule_device_build_dp_buf
    - FU_FIRMWARE
    - FU_DEVICE
    - fu_efi_load_option_set_metadata
    - fu_firmware_set_id
    - g_set_error
    - fu_efivars_get_secure_boot
    - fu_device_has_private_flag
    - fu_context_get_path_store
    - g_file_test
    - fu_uefi_capsule_build_app_basename
    - fu_uefi_capsule_device_get_esp
    - fu_efi_load_option_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_bootmgr_bootnext(FuUefiCapsuleDevice *capsule_device,\n\t\t\t
      const gchar *description,\n\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsulePlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: fu_uefi_capsule_plugin_get_backend
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FuBackend
    signature: 'FuBackend *

      fu_uefi_capsule_plugin_get_backend(FuUefiCapsulePlugin *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:48,1
    - Dst: fu_backend_add_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:50,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:51,1
    - Dst: fwupd_codec_string_append_int
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:52,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:54,1
    - Dst: fu_uefi_bgrt_get_supported
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - plugin
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: fu_uefi_capsule_plugin_to_string
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_bool
    - FU_UEFI_CAPSULE_PLUGIN
    - fwupd_codec_string_append_int
    - fu_backend_add_string
    - 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:64,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:64,1
    - Dst: g_file_get_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:67,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:70,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:71,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:74,1
    - Dst: fu_memmem_safe
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:77,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:77,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:78,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:83,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:86,1
    - Dst: fu_utf16_to_utf8_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:91,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:93,1
    - Dst: fu_version_ensure_semver
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:96,1
    - Dst: fu_context_add_runtime_version
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 101
    functionName: fu_uefi_capsule_plugin_fwupd_efi_parse_fallback
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_bytes_get_contents
    - fu_bytes_new_offset
    - g_bytes_get_data
    - fu_utf16_to_utf8_bytes
    - fu_plugin_get_context
    - g_prefix_error
    - fu_memmem_safe
    - fu_version_ensure_semver
    - g_bytes_get_size
    - g_file_get_path
    - g_autoptr
    - fu_context_add_runtime_version
    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:108,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:108,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:109,1
    - Dst: fu_context_add_runtime_version
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:110,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:113,1
    - Dst: fu_context_add_runtime_version
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - product
    - version
    argTypes:
    - FuUefiCapsulePlugin*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 117
    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
    - fu_context_add_runtime_version
    - fu_plugin_get_context
    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:122,1
    - Dst: fu_pefile_firmware_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:122,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:123,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:124,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:126,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:128,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:131,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:133,1
    - Dst: FU_IS_COSWID_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:134,1
    - Dst: fu_uefi_capsule_plugin_fwupd_efi_add_sbom
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:136,1
    - Dst: fu_coswid_firmware_get_product
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:138,1
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:138,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 119
    functionDepth: 5
    functionLinenumber: 119
    functionLinenumberEnd: 144
    functionName: fu_uefi_capsule_plugin_fwupd_efi_parse_sbom
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - FU_COSWID_FIRMWARE
    - fu_pefile_firmware_new
    - fu_firmware_parse_file
    - fu_firmware_get_image_by_id
    - fu_firmware_get_images
    - fu_uefi_capsule_plugin_fwupd_efi_add_sbom
    - FU_IS_COSWID_FIRMWARE
    - fu_coswid_firmware_get_product
    - fu_firmware_get_version
    - g_autoptr
    - g_ptr_array_index
    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:149,1
    - Dst: fu_uefi_capsule_plugin_fwupd_efi_parse_sbom
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:152,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:153,1
    - Dst: fu_uefi_capsule_plugin_fwupd_efi_parse_fallback
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 146
    functionDepth: 6
    functionLinenumber: 146
    functionLinenumberEnd: 159
    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_autoptr
    - fu_uefi_capsule_plugin_fwupd_efi_parse_fallback
    - g_debug
    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:168,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:169,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:169,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:170,1
    - Dst: fu_uefi_capsule_plugin_fwupd_efi_parse
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:172,1
    - Dst: fu_context_add_runtime_version
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:173,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:174,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: 177
      start: 161
    functionDepth: 7
    functionLinenumber: 161
    functionLinenumberEnd: 177
    functionName: fu_uefi_capsule_plugin_fwupd_efi_changed_cb
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_uefi_capsule_plugin_fwupd_efi_parse
    - fu_plugin_get_context
    - g_warning
    - FU_UEFI_CAPSULE_PLUGIN
    - g_autoptr
    - fu_context_add_runtime_version
    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:182,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:182,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:183,1
    - Dst: fu_context_get_path_store
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:184,1
    - Dst: fu_uefi_get_built_app_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:188,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:191,1
    - Dst: g_file_monitor_file
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:193,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:196,1
    - Dst: G_FILE_MONITOR
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:196,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:198,1
    - Dst: fu_uefi_capsule_plugin_fwupd_efi_parse
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:200,1
    - Dst: fu_context_add_runtime_version
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 179
    functionDepth: 7
    functionLinenumber: 179
    functionLinenumberEnd: 205
    functionName: fu_uefi_capsule_plugin_fwupd_efi_probe
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - g_signal_connect
    - G_FILE_MONITOR
    - fu_uefi_capsule_plugin_fwupd_efi_parse
    - fu_context_add_runtime_version
    - g_file_monitor_file
    - fu_plugin_get_context
    - fu_context_get_path_store
    - fu_context_get_efivars
    - G_CALLBACK
    - g_file_new_for_path
    - fu_uefi_get_built_app_path
    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:210,1
    - Dst: fu_uefi_capsule_device_clear_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 212
    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
    - fu_uefi_capsule_device_clear_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_plugin_clear_results(FuPlugin *plugin, FuDevice
      *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:217,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:217,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:220,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:223,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:224,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:225,1
    - Dst: fu_efivars_get_secure_boot
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:228,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:229,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:231,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:232,1
    - Dst: fu_security_attr_add_bios_target_value
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:235,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:236,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:237,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:238,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 214
    functionDepth: 4
    functionLinenumber: 214
    functionLinenumberEnd: 244
    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
    - fwupd_security_attr_set_result
    - fu_efivars_get_secure_boot
    - fu_plugin_security_attr_new
    - fu_plugin_get_context
    - fu_security_attr_add_bios_target_value
    - fu_context_get_efivars
    - g_error_matches
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - 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:249,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:249,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:250,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:254,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:255,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:256,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:257,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:258,1
    - Dst: fu_efivars_get_names
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:258,1
    - Dst: g_ptr_array_index
      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_efivars_get_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:269,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:276,1
    - Dst: fu_efi_variable_attrs_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:285,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:286,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:291,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:292,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:293,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:296,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:305,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 306
    functionName: fu_uefi_capsule_plugin_add_security_attrs_bootservices
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_efivars_get_names
    - fu_efivars_get_data
    - g_debug
    - fu_efi_variable_attrs_to_string
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fwupd_security_attr_set_result
    - fu_plugin_get_context
    - fu_context_get_efivars
    - g_warning
    - fwupd_security_attr_set_result_success
    - G_N_ELEMENTS
    - fwupd_security_attr_add_metadata
    - fu_security_attrs_append
    - g_autoptr
    - g_ptr_array_index
    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:311,1
    - Dst: fu_uefi_capsule_plugin_add_security_attrs_bootservices
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 5
    functionLinenumber: 308
    functionLinenumberEnd: 313
    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_bootservices
    - fu_uefi_capsule_plugin_add_security_attrs_secureboot
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:322,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:322,1
    - Dst: g_get_language_names
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:323,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:326,1
    - Dst: fu_zip_firmware_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:326,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:327,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:330,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:337,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:340,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:350,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:351,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:353,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:354,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:356,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:357,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:359,1
    - Dst: g_strjoinv
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:363,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:364,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - self
    - width
    - height
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - guint
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 316
    functionDepth: 5
    functionLinenumber: 316
    functionLinenumberEnd: 371
    functionName: fu_uefi_capsule_plugin_get_splash_data
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - g_bytes_ref
    - fu_context_build_filename
    - g_debug
    - fu_firmware_parse_stream
    - g_set_error
    - fu_firmware_get_image_by_id_bytes
    - g_str_has_suffix
    - fu_plugin_get_context
    - g_strdup_printf
    - fu_zip_firmware_new
    - g_get_language_names
    - g_strjoinv
    - fu_input_stream_from_path
    - g_autoptr
    linkageType: ''
    returnType: GBytes
    signature: "GBytes *\nfu_uefi_capsule_plugin_get_splash_data(FuUefiCapsulePlugin
      *self,\n\t\t\t\t       guint width,\n\t\t\t\t       guint height,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:385,1
    - Dst: fu_bitmap_image_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:385,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:386,1
    - Dst: fu_struct_efi_capsule_header_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:386,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:387,1
    - Dst: fu_struct_efi_ux_capsule_header_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:387,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:388,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:391,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:391,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:396,1
    - Dst: fu_bitmap_image_get_width
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:399,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:402,1
    - Dst: fu_uefi_capsule_device_build_efi_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:403,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:403,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:410,1
    - Dst: fu_output_stream_from_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:412,1
    - Dst: fu_struct_efi_capsule_header_set_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:416,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:418,1
    - Dst: fu_struct_efi_capsule_header_set_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:423,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:424,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:426,1
    - Dst: fu_struct_efi_capsule_header_set_image_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:432,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:433,1
    - Dst: fu_struct_efi_ux_capsule_header_set_x_offset
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:437,1
    - Dst: fu_uefi_bgrt_get_height
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:439,1
    - Dst: fu_struct_efi_ux_capsule_header_set_y_offset
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:440,1
    - Dst: fu_struct_efi_ux_capsule_header_set_y_offset
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:443,1
    - Dst: fu_uefi_bgrt_get_yoffset
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:445,1
    - Dst: fu_uefi_bgrt_get_height
      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:449,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:450,1
    - Dst: fu_sum8_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:451,1
    - Dst: fu_struct_efi_ux_capsule_header_set_checksum
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:452,1
    - Dst: g_output_stream_write
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:455,1
    - Dst: g_output_stream_write
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:458,1
    - Dst: fu_output_stream_write_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:461,1
    - Dst: fu_uefi_capsule_device_write_update_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:465,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:465,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 4
    argNames:
    - self
    - device
    - blob
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - FuDevice*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 373
    functionDepth: 7
    functionLinenumber: 373
    functionLinenumberEnd: 470
    functionName: fu_uefi_capsule_plugin_write_splash_data
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_uefi_bgrt_get_yoffset
    - FU_UEFI_CAPSULE_DEVICE
    - fu_uefi_capsule_device_write_update_info
    - fu_sum8
    - fu_output_stream_from_path
    - g_strdup_printf
    - fu_struct_efi_capsule_header_set_guid
    - fu_bitmap_image_get_width
    - fu_struct_efi_ux_capsule_header_set_y_offset
    - fu_uefi_capsule_device_build_efi_path
    - g_output_stream_write
    - fu_struct_efi_capsule_header_new
    - fu_uefi_bgrt_get_height
    - fwupd_guid_from_string
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_struct_efi_capsule_header_set_image_size
    - fu_firmware_parse_bytes
    - fu_sum8_bytes
    - fu_bitmap_image_new
    - FU_FIRMWARE
    - fu_struct_efi_ux_capsule_header_set_checksum
    - fu_struct_efi_ux_capsule_header_new
    - fu_struct_efi_ux_capsule_header_set_x_offset
    - fu_output_stream_write_bytes
    - fu_struct_efi_capsule_header_set_flags
    - g_bytes_get_size
    - g_autoptr
    - fu_path_mkdir_parent
    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:475,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:475,1
    - Dst: FU_UEFI_CAPSULE_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:476,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:479,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:496,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:497,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:498,1
    - Dst: fu_efivars_delete
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:499,1
    - Dst: fu_uefi_bgrt_get_supported
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:506,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:507,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:513,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:518,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:536,1
    - Dst: fu_uefi_capsule_plugin_get_splash_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:544,1
    - Dst: fu_uefi_capsule_plugin_write_splash_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:552,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 472
    functionDepth: 8
    functionLinenumber: 472
    functionLinenumberEnd: 553
    functionName: fu_uefi_capsule_plugin_update_splash
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - g_info
    - g_debug
    - fu_uefi_capsule_plugin_get_splash_data
    - fu_efivars_exists
    - g_set_error_literal
    - fu_plugin_get_context
    - fu_device_has_private_flag
    - fu_efivars_delete
    - fu_uefi_capsule_plugin_write_splash_data
    - fu_context_get_efivars
    - G_N_ELEMENTS
    - FU_UEFI_CAPSULE_PLUGIN
    - g_autoptr
    - fu_uefi_bgrt_get_supported
    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:566,1
    - Dst: fu_device_get_flashes_left
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:569,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:571,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:572,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:575,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:582,1
    - Dst: _
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:589,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:590,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:593,1
    - Dst: fu_uefi_capsule_plugin_update_splash
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:595,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:596,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:599,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: 600
      start: 556
    functionDepth: 9
    functionLinenumber: 556
    functionLinenumberEnd: 600
    functionName: fu_uefi_capsule_plugin_write_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_device_get_flashes_left
    - g_debug
    - g_set_error
    - g_info
    - _
    - fu_device_get_name
    - fu_uefi_capsule_plugin_update_splash
    - fu_progress_set_status
    - g_autoptr
    - fu_device_write_firmware
    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:607,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:610,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:611,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:617,1
    - Dst: fu_uefi_capsule_device_set_require_esp_free_space
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:619,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:619,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:622,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:623,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:626,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 602
    functionDepth: 3
    functionLinenumber: 602
    functionLinenumberEnd: 628
    functionName: fu_uefi_capsule_plugin_load_config
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - FU_UEFI_CAPSULE_DEVICE
    - fu_plugin_get_config_value_boolean
    - fu_device_add_private_flag
    - g_warning
    - fu_plugin_get_config_value
    - fu_uefi_capsule_device_set_require_esp_free_space
    - g_autoptr
    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:637,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:637,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:638,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:638,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:639,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:639,1
    - Dst: fu_volume_get_partition_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:644,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:646,1
    - Dst: fu_volume_kind_convert_to_gpt
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:646,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:647,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:647,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:648,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:648,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsulePlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 650
    functionName: fu_uefi_capsule_plugin_validate_esp
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - FU_PLUGIN
    - fu_volume_kind_convert_to_gpt
    - fu_volume_get_partition_kind
    - fu_plugin_add_flag
    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:655,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:656,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:657,1
    - Dst: fu_uefi_capsule_backend_device_new_from_dev
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:660,1
    - Dst: FU_UEFI_CAPSULE_BACKEND
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:660,1
    - Dst: fu_uefi_capsule_plugin_load_config
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:662,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:662,1
    - Dst: fu_context_get_default_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:664,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:664,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:666,1
    - Dst: fu_uefi_capsule_plugin_validate_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:667,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:670,1
    - Dst: fu_uefi_capsule_device_set_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:672,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:673,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:675,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:675,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 652
    functionDepth: 5
    functionLinenumber: 652
    functionLinenumberEnd: 676
    functionName: fu_uefi_capsule_plugin_register_proxy_device
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_uninhibit
    - FU_UEFI_CAPSULE_BACKEND
    - fu_context_get_default_esp
    - fu_uefi_capsule_device_set_esp
    - fu_plugin_get_context
    - FU_DEVICE
    - g_warning
    - fu_device_inhibit
    - fu_uefi_capsule_plugin_load_config
    - g_autoptr
    - FU_UEFI_CAPSULE_PLUGIN
    - fu_uefi_capsule_plugin_validate_esp
    - fu_uefi_capsule_backend_device_new_from_dev
    - fu_plugin_add_device
    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:681,1
    - Dst: fu_device_get_guid_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:682,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:683,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:684,1
    - Dst: fu_uefi_capsule_plugin_register_proxy_device
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 678
    functionDepth: 6
    functionLinenumber: 678
    functionLinenumberEnd: 689
    functionName: fu_uefi_capsule_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_uefi_capsule_plugin_register_proxy_device
    - fu_device_to_string
    - fu_device_get_metadata
    - g_warning
    - fu_device_get_guid_default
    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: 705
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 705
    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:713,1
    - Dst: fu_uefi_capsule_plugin_uefi_type_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:713,1
    - Dst: g_string_prepend
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:715,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - plugin
    - device_kind
    argTypes:
    - FuPlugin*
    - FuUefiCapsuleDeviceKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 717
    functionName: fu_uefi_capsule_plugin_get_name_for_type
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_uefi_capsule_plugin_uefi_type_to_string
    - g_string_prepend
    - g_string_new
    - g_string_free
    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:722,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:723,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:725,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:728,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:728,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:730,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:730,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:734,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:735,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:735,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:738,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:739,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:739,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:742,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:743,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:743,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:745,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:746,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:746,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_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:750,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:751,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:751,1
    - Dst: fu_context_has_hwid_flag
      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_acpi_uefi_cod_indexed_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:759,1
    - Dst: FU_ACPI_UEFI
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:759,1
    - Dst: fu_device_add_private_flag
      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_device_get_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:765,1
    - Dst: fu_device_get_name
      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_uefi_capsule_plugin_get_name_for_type
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:768,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:770,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:770,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:772,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:772,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:777,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:777,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:779,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:781,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:781,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:786,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:786,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:788,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:790,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:790,1
    - Dst: fu_context_get_default_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:795,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:795,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:797,1
    - Dst: fu_uefi_capsule_plugin_validate_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:798,1
    - Dst: fu_uefi_capsule_device_set_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:801,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 53
    argCount: 3
    argNames:
    - plugin
    - dev
    - error
    argTypes:
    - FuPlugin*
    - FuUefiCapsuleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 719
    functionDepth: 5
    functionLinenumber: 719
    functionLinenumberEnd: 805
    functionName: fu_uefi_capsule_plugin_coldplug_device
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_acpi_uefi_cod_indexed_filename
    - fu_device_add_private_flag
    - fu_device_get_name
    - fu_device_probe
    - fu_plugin_get_context
    - fu_device_setup
    - fu_device_set_vendor
    - fu_context_get_hwid_value
    - fu_device_get_vendor
    - fu_context_has_hwid_flag
    - FU_DEVICE
    - fu_uefi_capsule_plugin_get_name_for_type
    - fu_device_set_name
    - g_warning
    - FU_ACPI_UEFI
    - FU_UEFI_CAPSULE_PLUGIN
    - fu_uefi_capsule_plugin_validate_esp
    - fu_context_get_default_esp
    - fu_uefi_capsule_device_get_kind
    - fu_uefi_capsule_device_set_esp
    - fu_device_add_request_flag
    - g_autoptr
    - fu_device_build_vendor_id
    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:810,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:810,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:812,1
    - Dst: fu_efivars_get_secure_boot
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:814,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:815,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 807
    functionDepth: 2
    functionLinenumber: 807
    functionLinenumberEnd: 821
    functionName: fu_uefi_capsule_plugin_test_secure_boot
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_efivars_get_secure_boot
    - fu_plugin_get_context
    - fu_context_get_efivars
    - g_autoptr
    - fu_plugin_add_report_metadata
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_plugin_test_secure_boot(FuPlugin *plugin)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:826,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:826,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:828,1
    - Dst: fu_acpi_uefi_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:828,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:829,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:832,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:835,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:836,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:838,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 823
    functionDepth: 5
    functionLinenumber: 823
    functionLinenumberEnd: 839
    functionName: fu_uefi_capsule_plugin_parse_acpi_uefi
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_context_build_filename
    - fu_firmware_parse_file
    - g_steal_pointer
    - fu_plugin_get_context
    - g_file_new_for_path
    - fu_acpi_uefi_new
    - g_autoptr
    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:848,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:848,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:851,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:857,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:862,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:862,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:865,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:871,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 841
    functionDepth: 3
    functionLinenumber: 841
    functionLinenumberEnd: 879
    functionName: fu_uefi_capsule_plugin_ensure_screen_size_config
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_config_value
    - FU_PLUGIN
    - fu_strtoull
    - g_prefix_error_literal
    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:886,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:889,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:889,1
    - Dst: fu_drm_device_get_crtc_x
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:892,1
    - Dst: fu_drm_device_get_crtc_y
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:893,1
    - Dst: fu_drm_device_get_crtc_width
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:894,1
    - Dst: fu_drm_device_get_crtc_height
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:895,1
    - Dst: fu_drm_device_get_crtc_width
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:896,1
    - Dst: fu_drm_device_get_crtc_height
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:897,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - self
    - drm_device
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - FuDrmDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 881
    functionDepth: 2
    functionLinenumber: 881
    functionLinenumberEnd: 902
    functionName: fu_uefi_capsule_plugin_ensure_screen_size_drm
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_locker_new
    - fu_drm_device_get_crtc_x
    - FU_DEVICE
    - fu_drm_device_get_crtc_width
    - fu_drm_device_get_crtc_height
    - fu_drm_device_get_crtc_y
    - g_autoptr
    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:907,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:908,1
    - Dst: fu_context_get_path_store
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:909,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:910,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:911,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:912,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:915,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:916,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:919,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:923,1
    - Dst: fu_uefi_capsule_backend_set_device_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:924,1
    - Dst: FU_UEFI_CAPSULE_BACKEND
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:924,1
    - Dst: fu_backend_setup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:929,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:930,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:931,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:932,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:933,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:935,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:935,1
    - Dst: fu_uefi_capsule_plugin_ensure_screen_size_config
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:940,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:945,1
    - Dst: fu_uefi_get_framebuffer_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:946,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:950,1
    - Dst: fu_efivars_supported
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:954,1
    - Dst: fu_uefi_capsule_plugin_parse_acpi_uefi
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:958,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:960,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 904
    functionDepth: 6
    functionLinenumber: 904
    functionLinenumberEnd: 965
    functionName: fu_uefi_capsule_plugin_startup
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_uefi_get_framebuffer_size
    - fu_backend_setup
    - fu_plugin_add_flag
    - g_debug
    - fu_plugin_get_context
    - fu_context_get_efivars
    - g_propagate_error
    - fu_efivars_supported
    - FU_UEFI_CAPSULE_BACKEND
    - fu_context_has_hwid_flag
    - fu_uefi_capsule_backend_set_device_gtype
    - FU_UEFI_CAPSULE_PLUGIN
    - fu_plugin_add_report_metadata
    - fu_plugin_get_config_value_boolean
    - g_steal_pointer
    - fu_context_get_path_store
    - g_error_matches
    - g_autoptr
    - fu_uefi_capsule_plugin_ensure_screen_size_config
    - fu_uefi_capsule_plugin_parse_acpi_uefi
    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:971,1
    - Dst: fu_uefi_capsule_device_get_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:974,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:974,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:976,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:980,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:985,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:986,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 988
    functionName: fu_uefi_capsule_plugin_unlock
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_set_error
    - FU_UEFI_CAPSULE_DEVICE
    - fu_uefi_capsule_device_get_kind
    - FU_IS_UEFI_CAPSULE_DEVICE
    - fu_device_get_name
    - fu_device_set_version_format
    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:993,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:995,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:999,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1003,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1003,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1007,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1008,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1010,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1013,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - object
    - pspec
    - plugin
    argTypes:
    - GObject*
    - GParamSpec*
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 990
    functionDepth: 5
    functionLinenumber: 990
    functionLinenumberEnd: 1015
    functionName: fu_uefi_capsule_plugin_update_state_notify_cb
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_id_display
    - fu_plugin_get_devices
    - fu_device_get_update_state
    - fu_plugin_get_context
    - fu_context_has_hwid_flag
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_inhibit
    - g_ptr_array_index
    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:1020,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1020,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1021,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1026,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1033,1
    - Dst: fu_memread_uint64_safe
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1036,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1039,1
    - Dst: fu_acpi_uefi_cod_functional
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1049,1
    - Dst: FU_ACPI_UEFI
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1049,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1017
    functionDepth: 4
    functionLinenumber: 1017
    functionLinenumberEnd: 1050
    functionName: fu_uefi_capsule_plugin_check_cod_support
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - g_set_error_literal
    - fu_acpi_uefi_cod_functional
    - fu_plugin_get_context
    - g_prefix_error_literal
    - fu_context_get_efivars
    - fu_memread_uint64_safe
    - FU_ACPI_UEFI
    - fu_efivars_get_data
    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:1055,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1061,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1071
    functionName: fu_uefi_capsule_plugin_bootloader_supports_fwupd
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_context_get_efivars
    - fu_efivars_get_data
    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:1076,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1077,1
    - Dst: fu_uefi_capsule_plugin_bootloader_supports_fwupd
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1079,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1080,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1081,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1084,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1085,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1086,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1087,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1088,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1091,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1092,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1093,1
    - Dst: fu_uefi_capsule_plugin_check_cod_support
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1094,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1095,1
    - Dst: fu_uefi_capsule_backend_set_device_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1097,1
    - Dst: FU_UEFI_CAPSULE_BACKEND
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1098,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1102,1
    - Dst: fu_backend_coldplug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1105,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1105,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1107,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1108,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1110,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1111,1
    - Dst: fu_uefi_capsule_plugin_coldplug_device
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1113,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1114,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1115,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1119,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1119,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1122,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1122,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1123,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1123,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1128,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1128,1
    - Dst: fu_uefi_capsule_device_get_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1133,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1135,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1135,1
    - Dst: fu_uefi_capsule_plugin_load_config
      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: g_signal_connect
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1141,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1141,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1143,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1146,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1146,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1148,1
    - Dst: fu_uefi_capsule_plugin_test_secure_boot
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1151,1
    - Dst: fu_uefi_bgrt_setup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1152,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1153,1
    - Dst: fu_uefi_bgrt_get_supported
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1154,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1155,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1156,1
    - Dst: g_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1158,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1159,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1160,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 57
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1073
    functionDepth: 6
    functionLinenumber: 1073
    functionLinenumberEnd: 1163
    functionName: fu_uefi_capsule_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_private_flag
    - fu_backend_coldplug
    - fu_uefi_capsule_plugin_bootloader_supports_fwupd
    - g_ptr_array_index
    - g_signal_connect
    - g_debug
    - fu_plugin_get_context
    - fu_uefi_capsule_plugin_load_config
    - fu_uefi_capsule_plugin_test_secure_boot
    - fu_backend_get_devices
    - g_propagate_error
    - fu_uefi_bgrt_get_supported
    - fu_uefi_capsule_plugin_coldplug_device
    - g_info
    - fu_progress_add_step
    - FU_UEFI_CAPSULE_BACKEND
    - fu_progress_step_done
    - fu_context_has_hwid_flag
    - fu_uefi_capsule_backend_set_device_gtype
    - FU_DEVICE
    - FU_UEFI_CAPSULE_PLUGIN
    - fu_uefi_bgrt_setup
    - fu_plugin_add_report_metadata
    - fu_progress_get_child
    - fu_plugin_add_device
    - fu_progress_set_id
    - fu_plugin_get_config_value_boolean
    - g_steal_pointer
    - fu_uefi_capsule_device_get_kind
    - g_error_matches
    - G_CALLBACK
    - fu_uefi_capsule_plugin_check_cod_support
    - g_autoptr
    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:1170,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1171,1
    - Dst: fu_volume_locker_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1177,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1180,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1182,1
    - Dst: fu_path_get_files
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1188,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1191,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1193,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1194,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1195,1
    - Dst: g_file_new_for_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1195,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1196,1
    - Dst: g_file_delete
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1197,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1165
    functionDepth: 3
    functionLinenumber: 1165
    functionLinenumberEnd: 1204
    functionName: fu_uefi_capsule_plugin_cleanup_esp
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error_literal
    - g_pattern_match_simple
    - fu_volume_get_mount_point
    - g_file_delete
    - fu_volume_locker_new
    - g_file_new_for_path
    - fu_path_get_files
    - g_autoptr
    - g_build_filename
    - g_ptr_array_index
    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:1209,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1209,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1210,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1213,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1216,1
    - Dst: fu_efivars_get_boot_next
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1220,1
    - Dst: fu_efivars_get_boot_entry
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1222,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1227,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1227,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1228,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1229,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1229,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1229,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1230,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1230,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1230,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1231,1
    - Dst: fu_efivars_delete
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1233,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsulePlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1206
    functionDepth: 3
    functionLinenumber: 1206
    functionLinenumberEnd: 1239
    functionName: fu_uefi_capsule_plugin_cleanup_bootnext
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - g_strcmp0
    - FU_PLUGIN
    - g_debug
    - fu_efivars_exists
    - FU_FIRMWARE
    - fu_plugin_get_context
    - fu_firmware_to_string
    - fu_efivars_get_boot_entry
    - fu_efivars_delete
    - fu_context_get_efivars
    - fu_efivars_get_boot_next
    - g_autoptr
    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:1244,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1245,1
    - Dst: FU_UEFI_CAPSULE_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1246,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1249,1
    - Dst: fu_uefi_capsule_plugin_cleanup_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1253,1
    - Dst: fu_efivars_delete_with_glob
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1257,1
    - Dst: fu_uefi_capsule_plugin_cleanup_bootnext
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1241
    functionDepth: 4
    functionLinenumber: 1241
    functionLinenumberEnd: 1266
    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_cleanup_esp
    - fu_plugin_get_config_value_boolean
    - fu_uefi_capsule_plugin_cleanup_bootnext
    - fu_efivars_delete_with_glob
    - fu_plugin_get_context
    - fu_context_get_efivars
    - FU_UEFI_CAPSULE_PLUGIN
    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:1284,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1285,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - plugin
    - key
    - value
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1268
    functionDepth: 3
    functionLinenumber: 1268
    functionLinenumberEnd: 1293
    functionName: fu_uefi_capsule_plugin_modify_config
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - g_strv_contains
    - fu_plugin_set_config_value
    - g_set_error
    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:1301,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1304,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1305,1
    - Dst: fu_uefi_capsule_plugin_ensure_screen_size_drm
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1306,1
    - Dst: FU_DRM_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1307,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1295
    functionDepth: 3
    functionLinenumber: 1295
    functionLinenumberEnd: 1314
    functionName: fu_uefi_capsule_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - FU_DRM_DEVICE
    - FU_IS_DRM_DEVICE
    - g_warning
    - FU_UEFI_CAPSULE_PLUGIN
    - g_autoptr
    - fu_uefi_capsule_plugin_ensure_screen_size_drm
    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_plugin_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1319,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsulePlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1316
    functionDepth: 1
    functionLinenumber: 1316
    functionLinenumberEnd: 1320
    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_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:1325,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1326,1
    - Dst: fu_context_get_path_store
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1327,1
    - Dst: FU_UEFI_CAPSULE_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1328,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1329,1
    - Dst: fu_uefi_bgrt_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1331,1
    - Dst: fu_uefi_capsule_backend_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1332,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1333,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1334,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1335,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1336,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1337,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1338,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1339,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1340,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1341,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1342,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1342,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1343,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1343,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1344,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1344,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1345,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1348,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1349,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1350,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1351,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1352,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1353,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1354,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1355,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1356,1
    - Dst: fu_uefi_capsule_plugin_fwupd_efi_probe
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1359,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1360,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1322
    functionDepth: 8
    functionLinenumber: 1322
    functionLinenumberEnd: 1364
    functionName: fu_uefi_capsule_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - fu_uefi_capsule_plugin_fwupd_efi_probe
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_add_rule
    - g_debug
    - fu_uefi_bgrt_new
    - fu_uefi_capsule_backend_new
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_context_get_path_store
    - fu_plugin_add_udev_subsystem
    - FU_UEFI_CAPSULE_PLUGIN
    - fu_plugin_add_device_gtype
    - g_autoptr
    - fu_plugin_set_config_default
    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:1369,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1371,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1373,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1375,1
    - Dst: g_file_monitor_cancel
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1377,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1378,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1381,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1383,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1384,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1366
    functionDepth: 0
    functionLinenumber: 1366
    functionLinenumberEnd: 1385
    functionName: fu_uefi_capsule_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - G_OBJECT_CLASS
    - FU_UEFI_CAPSULE_PLUGIN
    - g_file_monitor_cancel
    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:1390,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c:1391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiCapsulePluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1387
    functionDepth: 0
    functionLinenumber: 1387
    functionLinenumberEnd: 1406
    functionName: fu_uefi_capsule_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    - G_OBJECT_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: 5
    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_context_new
    - g_memory_input_stream_new_from_bytes
    - fu_device_prepare_firmware
    - FU_UEFI_CAPSULE_DEVICE
    - fu_bytes_pad
    - fu_uefi_capsule_device_set_esp
    - g_assert_no_error
    - fu_volume_set_filesystem_free
    - g_assert_nonnull
    - fu_progress_new
    - g_object_new
    - fu_volume_new_from_mount_path
    - g_autoptr
    - g_bytes_new_static
    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: 5
    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_context_new
    - g_memory_input_stream_new_from_bytes
    - fu_device_prepare_firmware
    - FU_UEFI_CAPSULE_DEVICE
    - fu_bytes_pad
    - g_assert_error
    - fu_uefi_capsule_device_set_esp
    - fu_volume_set_filesystem_free
    - fu_progress_new
    - g_object_new
    - fu_volume_new_from_mount_path
    - g_autoptr
    - g_assert_null
    - g_bytes_new_static
    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: 5
    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_context_new
    - g_memory_input_stream_new_from_bytes
    - fu_device_prepare_firmware
    - FU_UEFI_CAPSULE_DEVICE
    - fu_bytes_pad
    - fu_device_add_private_flag
    - fu_uefi_capsule_device_set_esp
    - g_assert_no_error
    - fu_volume_set_filesystem_free
    - g_assert_nonnull
    - fu_progress_new
    - g_object_new
    - fu_volume_new_from_mount_path
    - g_autoptr
    - g_bytes_new_static
    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:109,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:109,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:110,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:111,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:114,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:115,1
    - Dst: fu_uefi_bgrt_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:117,1
    - Dst: fu_uefi_bgrt_setup
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:118,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:119,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:120,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:121,1
    - Dst: fu_uefi_bgrt_get_supported
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:121,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:122,1
    - Dst: fu_uefi_bgrt_get_xoffset
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:122,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:123,1
    - Dst: fu_uefi_bgrt_get_yoffset
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:123,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:124,1
    - Dst: fu_uefi_bgrt_get_width
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:124,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:125,1
    - Dst: fu_uefi_bgrt_get_height
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 126
    functionName: fu_uefi_bgrt_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_uefi_bgrt_get_xoffset
    - fu_path_store_set_path
    - fu_uefi_bgrt_new
    - fu_uefi_bgrt_get_yoffset
    - fu_uefi_bgrt_get_width
    - fu_uefi_bgrt_get_height
    - g_assert_no_error
    - g_assert_cmpint
    - fu_uefi_bgrt_get_supported
    - fu_uefi_bgrt_setup
    - g_test_build_filename
    - g_autoptr
    - fu_path_store_new
    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:135,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:135,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:136,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:139,1
    - Dst: fu_path_store_set_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:140,1
    - Dst: fu_uefi_get_framebuffer_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:142,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:143,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:144,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:145,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 147
    functionName: fu_uefi_framebuffer_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_uefi_get_framebuffer_size
    - fu_path_store_set_path
    - g_assert_no_error
    - g_assert_cmpint
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - fu_path_store_new
    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:154,1
    - Dst: fu_bitmap_image_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:154,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:155,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:156,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:158,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:159,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:160,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:161,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:162,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:162,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:167,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:168,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:169,1
    - Dst: fu_bitmap_image_get_width
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:169,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:170,1
    - Dst: fu_bitmap_image_get_height
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 149
    functionDepth: 4
    functionLinenumber: 149
    functionLinenumberEnd: 171
    functionName: fu_uefi_bitmap_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_bitmap_image_new
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - g_autoptr
    - g_assert_true
    - g_test_build_filename
    - fu_input_stream_from_path
    - fu_bitmap_image_get_width
    - fu_bitmap_image_get_height
    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:178,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:179,1
    - Dst: fu_struct_efi_capsule_result_variable_header_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:180,1
    - Dst: fu_struct_efi_capsule_result_variable_header_set_total_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:182,1
    - Dst: fwupd_guid_from_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:185,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:186,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:187,1
    - Dst: fu_struct_efi_capsule_result_variable_header_set_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:188,1
    - Dst: fu_struct_efi_capsule_result_variable_header_set_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:189,1
    - Dst: fu_struct_efi_capsule_result_variable_header_to_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - guidstr
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 191
    functionName: fu_uefi_cod_device_build_efi_result
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_struct_efi_capsule_result_variable_header_set_total_size
    - fu_struct_efi_capsule_result_variable_header_set_status
    - fu_struct_efi_capsule_result_variable_header_to_bytes
    - fwupd_guid_from_string
    - fu_struct_efi_capsule_result_variable_header_new
    - fu_struct_efi_capsule_result_variable_header_set_guid
    - g_assert_no_error
    - g_assert_true
    - g_autoptr
    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:197,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:197,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:198,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:199,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:201,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:203,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:204,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:205,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:206,1
    - Dst: fu_utf8_to_utf16_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:208,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:212,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:213,1
    - Dst: fu_efivars_set_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:214,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:220,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:221,1
    - Dst: fu_utf8_to_utf16_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:223,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:227,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:228,1
    - Dst: fu_efivars_set_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:229,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:235,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:236,1
    - Dst: fu_uefi_cod_device_build_efi_result
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:237,1
    - Dst: fu_efivars_set_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:238,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:244,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:245,1
    - Dst: fu_uefi_cod_device_build_efi_result
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:246,1
    - Dst: fu_efivars_set_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:247,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:253,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:254,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:257,1
    - Dst: fu_device_get_results
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:263,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:264,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:265,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:268,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:269,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:270,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:270,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:271,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:271,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:274,1
    - Dst: fu_uefi_capsule_device_get_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:274,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 193
    functionDepth: 5
    functionLinenumber: 193
    functionLinenumberEnd: 277
    functionName: fu_uefi_cod_device_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_CAPSULE_DEVICE
    - fu_utf8_to_utf16_bytes
    - g_assert_nonnull
    - g_object_new
    - fu_context_new_full
    - fu_device_to_string
    - g_debug
    - fu_device_get_update_state
    - fu_device_get_update_error
    - g_assert_cmpint
    - fu_context_get_efivars
    - fu_efivars_set_data_bytes
    - fu_uefi_cod_device_build_efi_result
    - fu_uefi_capsule_device_get_status
    - g_assert_no_error
    - fu_device_get_results
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_uefi_cod_device_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_temporary_directory_get_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:286,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:288,1
    - Dst: fu_volume_new_from_mount_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:288,1
    - Dst: fu_volume_set_filesystem_free
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:291,1
    - Dst: fu_volume_set_partition_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:292,1
    - Dst: fu_volume_set_partition_uuid
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:293,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:296,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:297,1
    - Dst: g_mkdir_with_parents
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:297,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tmpdir
    argTypes:
    - FuTemporaryDirectory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 301
    functionName: fu_uefi_capsule_fake_esp_new
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_temporary_directory_get_path
    - g_steal_pointer
    - fu_volume_set_filesystem_free
    - g_assert_cmpint
    - g_mkdir_with_parents
    - fu_volume_set_partition_kind
    - fu_volume_new_from_mount_path
    - fu_volume_set_partition_uuid
    - g_autoptr
    - g_build_filename
    linkageType: ''
    returnType: FuVolume
    signature: 'FuVolume *

      fu_uefi_capsule_fake_esp_new(FuTemporaryDirectory *tmpdir)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:311,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:311,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:312,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:313,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:313,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:314,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:315,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:316,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:319,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:324,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:325,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:326,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:327,1
    - Dst: fu_temporary_directory_new
      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_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:332,1
    - Dst: fu_uefi_capsule_fake_esp_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:333,1
    - Dst: fu_context_add_esp_volume
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:334,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:337,1
    - Dst: fu_context_get_config
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:337,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:340,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:341,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:342,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:345,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:346,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:347,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:351,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:352,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:353,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:354,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:355,1
    - Dst: g_assert_no_error
      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:357,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:360,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:361,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:364,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:365,1
    - Dst: fu_uefi_capsule_device_get_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:365,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:368,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:368,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:371,1
    - Dst: fu_uefi_capsule_device_get_hardware_instance
      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_version
      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_version_lowest
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:373,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:374,1
    - Dst: fu_uefi_capsule_device_get_version_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:374,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:375,1
    - Dst: fu_uefi_capsule_device_get_capsule_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:375,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:376,1
    - Dst: fu_uefi_capsule_device_get_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:376,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:379,1
    - Dst: fu_device_has_flag
      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_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:382,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:383,1
    - Dst: fu_uefi_capsule_device_get_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:383,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:386,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:386,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:389,1
    - Dst: fu_uefi_capsule_device_get_version
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:389,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:390,1
    - Dst: fu_uefi_capsule_device_get_version_lowest
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:390,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:391,1
    - Dst: fu_uefi_capsule_device_get_version_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:391,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:392,1
    - Dst: fu_uefi_capsule_device_get_capsule_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:392,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:393,1
    - Dst: fu_uefi_capsule_device_get_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:393,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:396,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:396,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:396,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:399,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:399,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:400,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:400,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 303
    functionDepth: 10
    functionLinenumber: 303
    functionLinenumberEnd: 401
    functionName: fu_uefi_capsule_no_coalesce_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_uefi_capsule_device_get_version
    - fu_context_add_flag
    - g_assert_nonnull
    - fu_uefi_capsule_device_get_guid
    - fu_progress_new
    - g_object_new
    - fu_uefi_capsule_device_get_version_error
    - fu_device_set_update_state
    - fu_context_new_full
    - fu_context_load_quirks
    - fu_context_load_hwinfo
    - g_ptr_array_index
    - fu_plugin_runner_startup
    - fu_plugin_get_devices
    - g_assert_cmpint
    - fu_device_has_flag
    - fu_temporary_directory_new
    - fu_uefi_capsule_device_get_version_lowest
    - fu_plugin_runner_coldplug
    - g_test_skip
    - FU_DEVICE
    - g_assert_false
    - fu_uefi_capsule_fake_esp_new
    - fu_context_get_config
    - fu_uefi_capsule_device_get_status
    - fu_context_set_path
    - fu_uefi_capsule_device_get_capsule_flags
    - fu_uefi_capsule_device_get_hardware_instance
    - fu_context_add_esp_volume
    - fu_uefi_capsule_device_get_kind
    - g_assert_no_error
    - fu_config_set_default
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_no_coalesce_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:406,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:409,1
    - Dst: fu_memwrite_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:411,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:412,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:419,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - indications
    argTypes:
    - FuContext*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 421
    functionName: fu_uefi_capsule_setup_indications
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - fu_context_get_efivars
    - fu_memwrite_uint64
    - g_assert_true
    - g_autoptr
    - fu_efivars_set_data
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_setup_indications(FuContext *ctx, guint64 indications)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:430,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:430,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:431,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:432,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:432,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:433,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:434,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:435,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:438,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:443,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:444,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:445,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:446,1
    - Dst: fu_uefi_capsule_setup_indications
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:449,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:452,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:453,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:454,1
    - Dst: fu_uefi_capsule_fake_esp_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:455,1
    - Dst: fu_context_add_esp_volume
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:456,1
    - Dst: fu_config_set_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:459,1
    - Dst: fu_context_get_config
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:459,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:462,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:463,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:464,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:467,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:468,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:469,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:473,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:474,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:475,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:476,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:477,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:478,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:479,1
    - Dst: fu_uefi_capsule_plugin_get_backend
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:482,1
    - Dst: FU_UEFI_CAPSULE_PLUGIN
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:482,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:483,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:484,1
    - Dst: FU_IS_UEFI_CAPSULE_BACKEND
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:484,1
    - Dst: fu_uefi_capsule_backend_get_device_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:485,1
    - Dst: FU_UEFI_CAPSULE_BACKEND
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:485,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 423
    functionDepth: 10
    functionLinenumber: 423
    functionLinenumberEnd: 487
    functionName: fu_uefi_capsule_no_cod_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_add_flag
    - fu_uefi_capsule_setup_indications
    - g_assert_nonnull
    - fu_uefi_capsule_plugin_get_backend
    - fu_progress_new
    - g_object_new
    - fu_uefi_capsule_backend_get_device_gtype
    - fu_context_new_full
    - fu_context_load_quirks
    - fu_context_load_hwinfo
    - fu_plugin_runner_startup
    - g_assert_cmpint
    - FU_IS_UEFI_CAPSULE_BACKEND
    - fu_temporary_directory_new
    - fu_plugin_runner_coldplug
    - FU_UEFI_CAPSULE_BACKEND
    - g_test_skip
    - fu_uefi_capsule_fake_esp_new
    - FU_UEFI_CAPSULE_PLUGIN
    - fu_context_get_config
    - fu_context_set_path
    - fu_context_add_esp_volume
    - g_assert_no_error
    - fu_config_set_default
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_no_cod_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:494,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:494,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:495,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:496,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:496,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:497,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:498,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:498,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:499,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:500,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:501,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:504,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:505,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:506,1
    - Dst: fu_temporary_directory_new
      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_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:511,1
    - Dst: fu_uefi_capsule_fake_esp_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:512,1
    - Dst: fu_context_add_esp_volume
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:513,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:516,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:517,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:518,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:521,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:522,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:523,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:527,1
    - Dst: fu_plugin_runner_startup
      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:529,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:530,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:531,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:532,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:533,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:536,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:542,1
    - Dst: fu_device_set_flashes_left
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:543,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:544,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:550,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 489
    functionDepth: 10
    functionLinenumber: 489
    functionLinenumberEnd: 552
    functionName: fu_uefi_capsule_no_flashes_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_add_flag
    - fu_device_add_private_flag
    - g_assert_nonnull
    - fu_progress_new
    - g_object_new
    - fu_context_new_full
    - fu_context_load_quirks
    - fu_context_load_hwinfo
    - fu_plugin_runner_startup
    - fu_device_set_flashes_left
    - fu_temporary_directory_new
    - fu_plugin_runner_coldplug
    - fu_firmware_new
    - g_assert_false
    - fu_uefi_capsule_fake_esp_new
    - fu_context_set_path
    - fu_context_add_esp_volume
    - g_assert_error
    - g_assert_no_error
    - fu_plugin_runner_write_firmware
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_no_flashes_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:557,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:558,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - esp
    - filename
    argTypes:
    - FuVolume*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 560
    functionName: fu_uefi_capsule_esp_file_exists
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_file_test
    - g_build_filename
    - fu_volume_get_mount_point
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_esp_file_exists(FuVolume *esp, const gchar
      *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:570,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:570,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:571,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:571,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:572,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:573,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:573,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:574,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:575,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:575,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:576,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:577,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:578,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:579,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:582,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:587,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:588,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:589,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:590,1
    - Dst: g_test_get_dir
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:590,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:591,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:594,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:595,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:596,1
    - Dst: fu_uefi_capsule_fake_esp_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:597,1
    - Dst: fu_context_add_esp_volume
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:598,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:601,1
    - Dst: fu_temporary_directory_get_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:601,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:602,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:603,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:604,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:605,1
    - Dst: fu_efivars_set_secure_boot
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:608,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:608,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:609,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:610,1
    - Dst: fu_efivars_create_boot_entry_for_volume
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:611,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:611,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:617,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:618,1
    - Dst: fu_efivars_set_boot_current
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:619,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:619,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:620,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:621,1
    - Dst: fu_efivars_build_boot_order
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:622,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:622,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:623,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:624,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:627,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:628,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:629,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:632,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:633,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:634,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:638,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:639,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:640,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:641,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:642,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:643,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:644,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:645,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:646,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:649,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:655,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:656,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:657,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:658,1
    - Dst: fu_uefi_capsule_device_set_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:659,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:659,1
    - Dst: fu_device_prepare
      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_write_firmware
      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:669,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:670,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:674,1
    - Dst: fu_uefi_capsule_esp_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:674,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:677,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:677,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:677,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:683,1
    - Dst: fu_uefi_capsule_esp_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:683,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:687,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:687,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:687,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:691,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:691,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:691,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:696,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:697,1
    - Dst: fu_efivars_get_boot_order
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:700,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:700,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:701,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:702,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:703,1
    - Dst: g_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:704,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:705,1
    - Dst: g_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:706,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:707,1
    - Dst: fu_efivars_get_boot_next
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:710,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:710,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_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:713,1
    - Dst: fu_plugin_runner_clear_results
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:716,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:717,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:718,1
    - Dst: fu_plugin_runner_reboot_cleanup
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:721,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:722,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:723,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:726,1
    - Dst: fu_uefi_capsule_esp_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:726,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:729,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:729,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:729,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:732,1
    - Dst: fu_uefi_capsule_esp_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:732,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:735,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:735,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:735,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:740,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:741,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:741,1
    - Dst: fu_device_get_results
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:744,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:745,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 101
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 562
    functionDepth: 10
    functionLinenumber: 562
    functionLinenumberEnd: 747
    functionName: fu_uefi_capsule_nvram_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_context_add_flag
    - FU_UEFI_CAPSULE_DEVICE
    - fu_device_add_private_flag
    - g_assert_nonnull
    - fu_efivars_set_boot_current
    - fu_device_prepare
    - g_array_index
    - fu_progress_new
    - g_object_new
    - fu_context_new_full
    - g_autoptr
    - fu_context_load_quirks
    - fu_context_load_hwinfo
    - fu_temporary_directory_get_path
    - fu_plugin_runner_startup
    - fu_efivars_get_boot_order
    - g_assert_cmpint
    - fu_plugin_runner_clear_results
    - fu_context_get_efivars
    - fu_plugin_runner_reboot_cleanup
    - fu_efivars_set_secure_boot
    - fu_temporary_directory_new
    - fu_firmware_new_from_bytes
    - g_bytes_new_static
    - fu_plugin_runner_coldplug
    - fu_uefi_capsule_esp_file_exists
    - fu_efivars_exists
    - fu_efivars_get_boot_next
    - g_assert_false
    - fu_uefi_capsule_fake_esp_new
    - fu_efivars_build_boot_order
    - fu_context_set_path
    - fu_context_add_esp_volume
    - g_test_get_dir
    - fu_uefi_capsule_device_set_esp
    - g_assert_no_error
    - fu_device_get_results
    - fu_plugin_runner_write_firmware
    - fu_efivars_create_boot_entry_for_volume
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - fu_temporary_directory_build
    - g_file_set_contents
    - fu_plugin_set_config_default
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_nvram_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:754,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:754,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:755,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:755,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:756,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:757,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:757,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:758,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:759,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:759,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:760,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:761,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:762,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:763,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:766,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:767,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:768,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:771,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:772,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:773,1
    - Dst: fu_uefi_capsule_fake_esp_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:774,1
    - Dst: fu_context_add_esp_volume
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:775,1
    - Dst: fu_utf8_to_utf16_byte_array
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:778,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:782,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:783,1
    - Dst: fu_efivars_set_data
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:784,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:784,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:791,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:792,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:795,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:796,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:797,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:800,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:801,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:802,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:806,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:807,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:808,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:809,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:810,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:811,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:812,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:815,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:821,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:822,1
    - Dst: fu_uefi_capsule_device_set_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:823,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:823,1
    - Dst: fu_plugin_runner_write_firmware
      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:832,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:833,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:834,1
    - Dst: fu_uefi_capsule_esp_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:834,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:839,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:840,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:846,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:847,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:848,1
    - Dst: fu_uefi_capsule_esp_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:848,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:851,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:852,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:858,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:859,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:860,1
    - Dst: fu_uefi_capsule_esp_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:861,1
    - Dst: fu_device_get_results
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:864,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:865,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 749
    functionDepth: 10
    functionLinenumber: 749
    functionLinenumberEnd: 867
    functionName: fu_uefi_capsule_cod_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_context_add_flag
    - FU_UEFI_CAPSULE_DEVICE
    - fu_device_add_private_flag
    - g_assert_nonnull
    - fu_progress_new
    - g_object_new
    - fu_context_new_full
    - fu_context_load_quirks
    - fu_context_load_hwinfo
    - fu_plugin_runner_startup
    - fu_context_get_efivars
    - fu_utf8_to_utf16_byte_array
    - fu_temporary_directory_new
    - fu_efivars_set_data
    - fu_firmware_new_from_bytes
    - g_bytes_new_static
    - fu_plugin_runner_coldplug
    - fu_uefi_capsule_esp_file_exists
    - fu_uefi_capsule_fake_esp_new
    - fu_context_set_path
    - fu_context_add_esp_volume
    - fu_uefi_capsule_device_set_esp
    - g_assert_no_error
    - fu_device_get_results
    - fu_plugin_runner_write_firmware
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_cod_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:875,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:875,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:876,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:876,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:877,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:878,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:878,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:879,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:880,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:880,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:881,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:882,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:883,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:886,1
    - Dst: fu_efivars_set_secure_boot
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:891,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:891,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:892,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:893,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:896,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:897,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:898,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:901,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:902,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:903,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:906,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:907,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:908,1
    - Dst: fu_uefi_capsule_fake_esp_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:909,1
    - Dst: fu_context_add_esp_volume
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:910,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:913,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:914,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:915,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:916,1
    - Dst: fu_temporary_directory_get_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:916,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:917,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:919,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:920,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:921,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:922,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:923,1
    - Dst: fu_temporary_directory_get_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:925,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:929,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:930,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:931,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:932,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:933,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:934,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:935,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:938,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:944,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:945,1
    - Dst: fu_uefi_capsule_device_set_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:946,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:946,1
    - Dst: fu_device_prepare
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:949,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:950,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:951,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:952,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:958,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:959,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:960,1
    - Dst: fu_uefi_capsule_esp_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 869
    functionDepth: 10
    functionLinenumber: 869
    functionLinenumberEnd: 963
    functionName: fu_uefi_capsule_grub_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_context_add_flag
    - FU_UEFI_CAPSULE_DEVICE
    - fu_device_add_private_flag
    - g_assert_nonnull
    - fu_temporary_directory_build
    - fu_device_prepare
    - fu_progress_new
    - g_object_new
    - fu_context_new_full
    - fu_context_load_quirks
    - fu_context_load_hwinfo
    - fu_temporary_directory_get_path
    - fu_plugin_runner_startup
    - fu_context_get_efivars
    - fu_efivars_set_secure_boot
    - fu_temporary_directory_new
    - fu_firmware_new_from_bytes
    - g_bytes_new_static
    - fu_plugin_runner_coldplug
    - fu_uefi_capsule_esp_file_exists
    - fu_uefi_capsule_fake_esp_new
    - fu_context_set_path
    - fu_context_add_esp_volume
    - fu_uefi_capsule_device_set_esp
    - g_assert_no_error
    - fu_plugin_runner_write_firmware
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - g_file_set_contents
    linkageType: ''
    returnType: void
    signature: void fu_uefi_capsule_grub_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:970,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:973,1
    - Dst: fu_firmware_roundtrip_from_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:974,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:978,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 965
    functionDepth: 7
    functionLinenumber: 965
    functionLinenumberEnd: 980
    functionName: fu_uefi_update_info_xml_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - fu_firmware_roundtrip_from_filename
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    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:988,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:988,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:989,1
    - Dst: fu_uefi_capsule_backend_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:989,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:990,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:990,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:991,1
    - Dst: fu_uefi_update_info_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:991,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:992,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:993,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:994,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:995,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:996,1
    - Dst: fu_uefi_update_info_set_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:999,1
    - Dst: fu_uefi_update_info_set_capsule_fn
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1000,1
    - Dst: fu_uefi_update_info_set_hw_inst
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1003,1
    - Dst: fu_uefi_update_info_set_capsule_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1004,1
    - Dst: fu_uefi_update_info_set_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1005,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1006,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1006,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1007,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1008,1
    - Dst: fu_efivars_set_data_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1009,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1015,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1016,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1019,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1020,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1021,1
    - Dst: fu_backend_coldplug
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1024,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1025,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1026,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1028,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1029,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1030,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1031,1
    - Dst: fu_uefi_capsule_device_get_kind
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1031,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1034,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1034,1
    - Dst: fu_uefi_capsule_device_load_update_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1037,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1038,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1039,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1040,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1040,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1040,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1041,1
    - Dst: fu_uefi_update_info_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1041,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1044,1
    - Dst: fu_uefi_update_info_get_capsule_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1044,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1045,1
    - Dst: fu_uefi_update_info_get_hw_inst
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1045,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1046,1
    - Dst: fu_uefi_update_info_get_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1046,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1049,1
    - Dst: fu_uefi_update_info_get_capsule_fn
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 982
    functionDepth: 6
    functionLinenumber: 982
    functionLinenumberEnd: 1052
    functionName: fu_uefi_update_info_func
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_context_add_flag
    - fu_uefi_capsule_backend_new
    - g_assert_nonnull
    - fu_uefi_update_info_get_hw_inst
    - fu_backend_coldplug
    - fu_uefi_capsule_device_get_guid
    - fu_progress_new
    - fu_context_new_full
    - fu_uefi_update_info_set_capsule_flags
    - fu_uefi_update_info_get_status
    - g_ptr_array_index
    - fu_uefi_update_info_get_guid
    - g_assert_cmpint
    - fu_context_get_efivars
    - fu_efivars_set_data_bytes
    - fu_backend_get_devices
    - fu_uefi_capsule_device_load_update_info
    - fu_uefi_update_info_set_hw_inst
    - FU_FIRMWARE
    - fu_uefi_update_info_set_status
    - fu_uefi_update_info_get_capsule_flags
    - fu_uefi_update_info_set_guid
    - fu_uefi_update_info_new
    - fu_uefi_update_info_set_capsule_fn
    - fu_firmware_get_version_raw
    - fu_context_set_path
    - fu_uefi_capsule_device_get_kind
    - g_assert_no_error
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - fu_uefi_update_info_get_capsule_fn
    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:1058,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1059,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1061,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1062,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1065,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1066,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1067,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1068,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1069,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1070,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1071,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1072,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1073,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1074,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1075,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1076,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1077,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1078,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1079,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1080,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1081,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1082,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/uefi-capsule/fu-self-test.c:1083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1054
    functionDepth: 0
    functionLinenumber: 1054
    functionLinenumberEnd: 1084
    functionName: main
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_type_ensure
    - g_test_build_filename
    - 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_kx
    - FU_FIRMWARE_CLASS
    - FU_ACPI_UEFI
    - fu_xmlb_builder_insert_kv
    - fu_xmlb_builder_insert_kb
    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_literal
      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_input_stream_read_bytes
    - g_bytes_get_data
    - g_set_error_literal
    - fu_struct_acpi_insyde_quirk_get_flags
    - g_prefix_error_literal
    - fu_memmem_safe
    - fu_struct_acpi_insyde_quirk_get_size
    - strlen
    - fu_struct_acpi_insyde_quirk_parse_stream
    - g_bytes_get_size
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_acpi_uefi_parse_insyde(FuAcpiUefi *self, GInputStream *stream,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_UEFI
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:79,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:81,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:84,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:85,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:92,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:92,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:92,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:93,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:97,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:97,1
    - Dst: fu_acpi_table_get_payload
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:102,1
    - Dst: FU_ACPI_TABLE
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:102,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:105,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:113,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:118,1
    - Dst: fu_acpi_uefi_parse_insyde
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:119,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:120,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 73
    functionDepth: 4
    functionLinenumber: 73
    functionLinenumberEnd: 125
    functionName: fu_acpi_uefi_parse
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_input_stream_read_safe
    - g_strcmp0
    - fu_acpi_uefi_parse_insyde
    - fu_acpi_table_get_payload
    - g_debug
    - g_set_error
    - FU_FIRMWARE
    - FU_FIRMWARE_CLASS
    - FU_ACPI_TABLE
    - fwupd_guid_to_string
    - FU_ACPI_UEFI
    - g_autoptr
    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:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:130,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiUefi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: fu_acpi_uefi_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:136,1
    - Dst: g_free
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:137,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 139
    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:144,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiUefiClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 149
    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:154,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.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_acpi_uefi_new
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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:160,1
    - Dst: FU_IS_ACPI_UEFI
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:160,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAcpiUefi*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: fu_acpi_uefi_cod_functional
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ACPI_UEFI
    - g_set_error_literal
    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:173,1
    - Dst: FU_IS_ACPI_UEFI
      Src: /src/fwupd/plugins/uefi-capsule/fu-acpi-uefi.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiUefi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 177
    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: 6
    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_store_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:36,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:44,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:45,1
    - Dst: fu_uefi_read_file_as_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:51,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:53,1
    - Dst: fu_uefi_read_file_as_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:60,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:62,1
    - Dst: fu_uefi_read_file_as_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:71,1
    - Dst: fu_uefi_read_file_as_uint64
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:72,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:73,1
    - Dst: g_file_new_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:74,1
    - Dst: fu_firmware_parse_file
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:75,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:75,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:79,1
    - Dst: fu_bitmap_image_get_width
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:82,1
    - Dst: fu_bitmap_image_get_height
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiBgrt*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 24
    functionDepth: 5
    functionLinenumber: 24
    functionLinenumberEnd: 87
    functionName: fu_uefi_bgrt_setup
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_firmware_parse_file
    - g_set_error
    - g_set_error_literal
    - FU_FIRMWARE
    - g_prefix_error_literal
    - fu_bitmap_image_get_width
    - g_file_test
    - fu_uefi_read_file_as_uint64
    - g_file_new_build_filename
    - g_autoptr
    - fu_path_store_build_filename
    - fu_bitmap_image_new
    - g_build_filename
    - fu_bitmap_image_get_height
    - FU_IS_UEFI_BGRT
    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:92,1
    - Dst: FU_IS_UEFI_BGRT
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiBgrt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 96
    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:101,1
    - Dst: FU_IS_UEFI_BGRT
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiBgrt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    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:108,1
    - Dst: FU_IS_UEFI_BGRT
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiBgrt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    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:115,1
    - Dst: FU_IS_UEFI_BGRT
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiBgrt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 117
    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:122,1
    - Dst: FU_IS_UEFI_BGRT
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiBgrt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_BGRT
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:129,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:131,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 133
    functionName: fu_uefi_bgrt_finalize
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - G_OBJECT_CLASS
    - FU_UEFI_BGRT
    linkageType: ''
    returnType: void
    signature: void fu_uefi_bgrt_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiBgrtClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: fu_uefi_bgrt_class_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    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: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    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_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:152,1
    - Dst: FU_IS_PATH_STORE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:152,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:154,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:155,1
    - Dst: FU_UEFI_BGRT
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pstore
    argTypes:
    - FuPathStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 157
    functionName: fu_uefi_bgrt_new
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-bgrt.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_UEFI_BGRT
    - g_object_ref
    - g_object_new
    - FU_IS_PATH_STORE
    linkageType: ''
    returnType: FuUefiBgrt
    signature: 'FuUefiBgrt *

      fu_uefi_bgrt_new(FuPathStore *pstore)'
  - 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_return_val_if_fail
    - fu_device_set_logical_id
    - fu_device_set_physical_id
    - FU_UEFI_CAPSULE_BACKEND
    - g_file_get_contents
    - fu_device_add_private_flag
    - g_steal_pointer
    - fu_device_set_backend_id
    - FU_DEVICE
    - g_object_new
    - g_strdelimit
    - fu_uefi_capsule_backend_get_device_gtype
    - fu_uefi_capsule_backend_linux_read
    - g_autoptr
    - g_build_filename
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_backend_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:90,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:90,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: fu_context_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:99,1
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:102,1
    - Dst: g_unix_mount_entry_at
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:103,1
    - Dst: g_unix_mount_at
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:105,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:108,1
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:115,1
    - Dst: g_unix_mount_entry_is_readonly
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:116,1
    - Dst: g_unix_mount_is_readonly
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:118,1
    - Dst: fu_uefi_capsule_backend_get_device_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:122,1
    - Dst: FU_UEFI_CAPSULE_BACKEND
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:122,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuUefiCapsuleBackendLinux*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 137
    functionName: fu_uefi_capsule_backend_linux_check_efivarfs
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c
    functionUses: 0
    functionsReached:
    - g_getenv
    - g_unix_mount_entry_at
    - fu_context_build_filename
    - GLIB_CHECK_VERSION
    - g_set_error
    - FU_UEFI_CAPSULE_BACKEND
    - g_unix_mount_at
    - g_unix_mount_entry_is_readonly
    - g_unix_mount_is_readonly
    - fu_uefi_capsule_backend_get_device_gtype
    - fu_backend_get_context
    - FU_BACKEND
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_backend_linux_check_efivarfs(FuUefiCapsuleBackendLinux
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_BACKEND_LINUX
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:142,1
    - Dst: fu_backend_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:143,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:147,1
    - Dst: fu_uefi_capsule_backend_linux_check_efivarfs
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:150,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:155,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:158,1
    - Dst: g_dir_open
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:159,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:164,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:165,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:166,1
    - Dst: fu_uefi_capsule_backend_linux_device_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:167,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:168,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - backend
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 139
    functionDepth: 4
    functionLinenumber: 139
    functionLinenumberEnd: 173
    functionName: fu_uefi_capsule_backend_linux_coldplug
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c
    functionUses: 0
    functionsReached:
    - fu_backend_device_added
    - fu_context_build_filename
    - fu_uefi_capsule_backend_linux_device_new
    - FU_UEFI_CAPSULE_BACKEND_LINUX
    - fu_uefi_capsule_backend_linux_check_efivarfs
    - FU_DEVICE
    - g_dir_read_name
    - g_dir_open
    - fu_backend_get_context
    - g_autoptr
    - g_build_filename
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_backend_linux_coldplug(FuBackend *backend,
      FuProgress *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_backend_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:181,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:184,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:186,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:189,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:190,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - backend
    - flags
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuBackendSetupFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 204
    functionName: fu_uefi_capsule_backend_linux_setup
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-linux.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - fu_context_build_filename
    - g_set_error_literal
    - g_file_test
    - g_warning
    - fu_backend_get_context
    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: 210
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 210
    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:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiCapsuleBackendLinuxClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 218
    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:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 229
    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: 19
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:22,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:22,1
    - Dst: fu_uefi_capsule_device_get_esp
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:33,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:33,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:37,1
    - Dst: fu_volume_get_mount_point
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:43,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:45,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:53,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:61,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:61,1
    - Dst: g_free
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:66,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:67,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:76,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:76,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:79,1
    - Dst: fu_path_find_program
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:87,1
    - Dst: fu_path_find_program
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:89,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:91,1
    - Dst: fu_path_find_program
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:99,1
    - Dst: fu_path_find_program
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:101,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:103,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:111,1
    - Dst: g_string_replace
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:112,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:113,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:114,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:121,1
    - Dst: g_file_set_contents
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:123,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:124,1
    - Dst: g_spawn_sync
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:131,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:141,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:144,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:147,1
    - Dst: g_spawn_sync
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:152,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:162,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 69
    argCount: 3
    argNames:
    - self
    - app_dst
    - error
    argTypes:
    - FuUefiCapsuleDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 168
    functionName: fu_uefi_grub_device_mkconfig
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c
    functionUses: 0
    functionsReached:
    - g_spawn_sync
    - fu_device_get_context
    - g_free
    - fu_device_query_file_exists
    - g_debug
    - g_set_error_literal
    - fu_path_find_program
    - g_string_new
    - g_getenv
    - g_string_replace
    - fu_volume_get_mount_point
    - fwupd_error_convert
    - FU_DEVICE
    - fu_context_build_filename
    - fu_uefi_capsule_device_get_esp
    - g_string_append_printf
    - g_autoptr
    - g_file_set_contents
    - fu_path_mkdir_parent
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_grub_device_mkconfig(FuUefiCapsuleDevice *self, const
      gchar *app_dst, GError **error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:177,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:178,1
    - Dst: fu_context_get_path_store
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:179,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:180,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:181,1
    - Dst: fu_uefi_capsule_device_build_varname
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:187,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:188,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:189,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:193,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:201,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:206,1
    - Dst: fu_uefi_capsule_device_build_efi_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:207,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:207,1
    - Dst: fu_path_mkdir_parent
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:214,1
    - Dst: fu_uefi_capsule_device_fixup_firmware
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:216,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:219,1
    - Dst: fu_uefi_capsule_device_perhaps_enable_debugging
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:223,1
    - Dst: fu_efivars_exists
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:227,1
    - Dst: fu_efivars_delete
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:228,1
    - Dst: fu_uefi_capsule_device_write_update_info
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:236,1
    - Dst: fu_uefi_capsule_build_app_basename
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:240,1
    - Dst: fu_uefi_get_built_app_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:243,1
    - Dst: fu_uefi_capsule_device_build_efi_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:246,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:246,1
    - Dst: fu_uefi_esp_target_verify
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:254,1
    - Dst: fu_uefi_esp_target_copy
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:255,1
    - Dst: fu_uefi_grub_device_mkconfig
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:260,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 170
    functionDepth: 7
    functionLinenumber: 170
    functionLinenumberEnd: 261
    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
    - fu_uefi_capsule_device_write_update_info
    - fu_uefi_esp_target_copy
    - fu_device_get_context
    - fu_uefi_capsule_device_get_guid
    - g_strdup_printf
    - fu_uefi_esp_target_verify
    - fu_uefi_get_built_app_path
    - fu_uefi_capsule_device_build_efi_path
    - fu_firmware_get_bytes
    - g_set_error_literal
    - fu_efivars_delete
    - fu_uefi_capsule_device_fixup_firmware
    - fu_context_get_efivars
    - fu_bytes_set_contents
    - fu_efivars_exists
    - fu_uefi_capsule_device_perhaps_enable_debugging
    - fu_uefi_grub_device_mkconfig
    - fu_context_get_path_store
    - fu_uefi_capsule_build_app_basename
    - fu_uefi_capsule_device_build_varname
    - g_autoptr
    - fu_path_mkdir_parent
    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:267,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:268,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:268,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - metadata
    argTypes:
    - FuDevice*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 269
    functionName: fu_uefi_grub_device_report_metadata_pre
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - 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:278,1
    - Dst: fu_uefi_capsule_device_check_asset
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:283,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 284
    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:289,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiGrubDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: fu_uefi_grub_device_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-grub-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_summary
    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:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiGrubDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 300
    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: 1498
    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: 3
    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
    - fwupd_codec_string_append
    - g_type_name
    - 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:
    - g_return_val_if_fail
    - fu_device_get_metadata_integer
    - fu_uefi_capsule_device_kind_from_string
    - fu_device_incorporate
    - fu_device_get_metadata
    - FU_DEVICE
    - g_object_new
    - fu_device_get_guid_default
    - GET_PRIVATE
    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
    - fu_xmlb_builder_insert_kx
    - fu_uefi_update_info_status_to_string
    - 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_strdup
    - g_free
    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_strdup
    - g_free
    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:
    - fu_uefi_update_info_set_hw_inst
    - fu_uefi_update_info_set_capsule_fn
    - xb_node_query_text
    - fu_uefi_update_info_status_from_string
    - g_set_error
    - fu_strtoull
    - fu_uefi_update_info_set_guid
    - FU_UEFI_UPDATE_INFO
    - fu_uefi_update_info_set_capsule_flags
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_update_info_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 7
    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:135,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:135,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:138,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 143
    functionName: fu_uefi_update_info_write
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_byte_array_append_bytes
    - fu_firmware_add_image
    - fwupd_guid_from_string
    - FU_FIRMWARE
    - g_steal_pointer
    - fu_struct_efi_update_info_set_flags
    - fu_struct_efi_update_info_set_guid
    - fu_struct_efi_update_info_set_status
    - fu_struct_efi_update_info_new
    - fu_efi_device_path_list_new
    - fu_struct_efi_update_info_set_hw_inst
    - FU_UEFI_UPDATE_INFO
    - g_autoptr
    - fu_efi_file_path_device_path_new
    - fu_efi_file_path_device_path_set_name
    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:151,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:153,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:155,1
    - Dst: fu_struct_efi_update_info_parse_stream
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:157,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:159,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:162,1
    - Dst: fu_struct_efi_update_info_get_version
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:162,1
    - Dst: fu_struct_efi_update_info_get_flags
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:163,1
    - Dst: fu_struct_efi_update_info_get_hw_inst
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:164,1
    - Dst: fu_struct_efi_update_info_get_status
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:165,1
    - Dst: fwupd_guid_to_string
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:166,1
    - Dst: fu_struct_efi_update_info_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:166,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:168,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:171,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:172,1
    - Dst: fu_efi_device_path_list_new
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:172,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:173,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:173,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:178,1
    - Dst: fu_firmware_get_image_by_gtype
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:181,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:181,1
    - Dst: fu_efi_file_path_device_path_get_name
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:187,1
    - Dst: FU_EFI_FILE_PATH_DEVICE_PATH
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:187,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 145
    functionDepth: 4
    functionLinenumber: 145
    functionLinenumberEnd: 192
    functionName: fu_uefi_update_info_parse
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 0
    functionsReached:
    - fu_efi_file_path_device_path_get_name
    - fu_struct_efi_update_info_get_status
    - fwupd_guid_to_string
    - fu_efi_device_path_list_new
    - fu_struct_efi_update_info_get_guid
    - fu_firmware_get_image_by_gtype
    - g_prefix_error_literal
    - FU_UEFI_UPDATE_INFO
    - fu_firmware_set_version_raw
    - fu_struct_efi_update_info_get_hw_inst
    - FU_FIRMWARE
    - FU_EFI_FILE_PATH_DEVICE_PATH
    - g_return_val_if_fail
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - fu_struct_efi_update_info_get_version
    - fu_struct_efi_update_info_parse_stream
    - fu_struct_efi_update_info_get_flags
    - g_autoptr
    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:197,1
    - Dst: FU_IS_UEFI_UPDATE_INFO
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiUpdateInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 199
    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:204,1
    - Dst: FU_IS_UEFI_UPDATE_INFO
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiUpdateInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 206
    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:211,1
    - Dst: FU_IS_UEFI_UPDATE_INFO
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiUpdateInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 213
    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:218,1
    - Dst: FU_IS_UEFI_UPDATE_INFO
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiUpdateInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 220
    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:225,1
    - Dst: FU_IS_UEFI_UPDATE_INFO
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiUpdateInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 227
    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:232,1
    - Dst: g_free
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:233,1
    - Dst: g_free
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:234,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 236
    functionName: fu_uefi_update_info_finalize
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_UPDATE_INFO
    - g_free
    - G_OBJECT_CLASS
    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:241,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiUpdateInfoClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 248
    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:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:253,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiUpdateInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: fu_uefi_update_info_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:260,1
    - Dst: FU_UEFI_UPDATE_INFO
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 262
    functionName: fu_uefi_update_info_new
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-update-info.c
    functionUses: 2
    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_xmlb_builder_insert_kx
    - FU_BITMAP_IMAGE
    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_literal
      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_literal
      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
    - g_prefix_error_literal
    - fu_struct_bitmap_info_header_get_height
    - fu_struct_bitmap_info_header_get_width
    - fu_struct_bitmap_file_header_parse_stream
    - g_autoptr
    - fu_struct_bitmap_file_header_get_size
    - fu_firmware_set_size
    - FU_BITMAP_IMAGE
    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
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:82,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBitmapImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: fu_bitmap_image_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:89,1
    - Dst: FU_BITMAP_IMAGE
      Src: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: fu_bitmap_image_new
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-bitmap-image.c
    functionUses: 3
    functionsReached:
    - g_object_new
    - FU_BITMAP_IMAGE
    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:
    - fu_device_set_logical_id
    - fu_device_set_physical_id
    - g_set_error_literal
    - g_steal_pointer
    - fu_device_set_backend_id
    - FU_DEVICE
    - g_strdup_printf
    - g_object_new
    - fu_uefi_capsule_backend_get_device_gtype
    - uuid_to_string
    - g_autoptr
    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:95,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:97,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:100,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - backend
    - flags
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuBackendSetupFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 109
    functionName: fu_uefi_capsule_backend_freebsd_setup
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c
    functionUses: 0
    functionsReached:
    - fu_version_compare
    - g_set_error
    - fu_kenv_get_string
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_uefi_capsule_backend_freebsd_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: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_UEFI_CAPSULE_BACKEND
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:115,1
    - Dst: g_open
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:122,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:124,1
    - Dst: ioctl
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:132,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c:133,1
    - Dst: g_malloc
      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:142,1
    - Dst: ioctl
      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: 32
    argCount: 3
    argNames:
    - backend
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 178
    functionName: fu_uefi_capsule_backend_freebsd_coldplug
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-capsule-backend-freebsd.c
    functionUses: 0
    functionsReached:
    - fu_backend_device_added
    - g_set_error
    - FU_UEFI_CAPSULE_BACKEND
    - g_set_error_literal
    - g_open
    - FU_DEVICE
    - g_malloc
    - ioctl
    - g_autoptr
    - fu_uefi_capsule_backend_device_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_capsule_backend_freebsd_coldplug(FuBackend *backend,
      FuProgress *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiCapsuleBackendFreebsd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    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:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiCapsuleBackendFreebsdClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 191
    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:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 202
    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_literal
      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_literal
      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:40,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:42,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 20
    functionDepth: 6
    functionLinenumber: 20
    functionLinenumberEnd: 48
    functionName: fu_uefi_nvram_device_get_results
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_context
    - fu_device_has_private_flag
    - g_prefix_error_literal
    - fu_device_set_update_error
    - fu_context_get_efivars
    - fu_uefi_bootmgr_verify_fwupd
    - fu_device_set_update_state
    - g_autoptr
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_nvram_device_get_results(FuDevice *device, GError
      **error)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:57,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:58,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:59,1
    - Dst: fu_uefi_capsule_device_get_guid
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:61,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:62,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:63,1
    - Dst: fu_uefi_capsule_device_build_varname
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:66,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:70,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:78,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:83,1
    - Dst: fu_uefi_capsule_device_build_efi_path
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:84,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:84,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_uefi_bootmgr_bootnext
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:123,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 50
    functionDepth: 7
    functionLinenumber: 50
    functionLinenumberEnd: 128
    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
    - fu_uefi_capsule_device_write_update_info
    - fu_device_get_context
    - fu_uefi_capsule_device_get_guid
    - g_strdup_printf
    - fu_uefi_capsule_device_build_efi_path
    - fu_firmware_get_bytes
    - g_set_error_literal
    - fu_efivars_delete
    - fu_uefi_capsule_device_fixup_firmware
    - fu_context_get_efivars
    - fu_bytes_set_contents
    - fu_efivars_exists
    - fu_uefi_capsule_device_perhaps_enable_debugging
    - fu_device_has_private_flag
    - fu_uefi_capsule_device_build_varname
    - g_autoptr
    - fu_uefi_bootmgr_bootnext
    - fu_path_mkdir_parent
    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:134,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:135,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:135,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - metadata
    argTypes:
    - FuDevice*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: fu_uefi_nvram_device_report_metadata_pre
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - 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:145,1
    - Dst: fu_uefi_capsule_device_check_asset
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:150,1
    - Dst: FU_UEFI_CAPSULE_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 151
    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:156,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiNvramDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: fu_uefi_nvram_device_init
    functionSourceFile: /src/fwupd/plugins/uefi-capsule/fu-uefi-nvram-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_summary
    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:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiNvramDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 168
    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:
    - FU_IOMMU_PLUGIN
    - fwupd_codec_string_append_bool
    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:
    - g_strcmp0
    - FU_IS_UDEV_DEVICE
    - FU_UDEV_DEVICE
    - FU_IOMMU_PLUGIN
    - fu_udev_device_get_subsystem
    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_plugin_get_context
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:46,1
    - Dst: FU_IOMMU_PLUGIN
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:47,1
    - Dst: fu_context_get_path_store
      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: g_autoptr
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:50,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:51,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:54,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:55,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:56,1
    - Dst: fu_kernel_get_cmdline
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:59,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:61,1
    - Dst: fu_kernel_check_cmdline_mutable
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:62,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:63,1
    - Dst: fwupd_security_attr_set_kernel_current_value
      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: g_hash_table_contains
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:66,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:67,1
    - Dst: fwupd_security_attr_set_kernel_target_value
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:68,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:69,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:71,1
    - Dst: fwupd_security_attr_set_kernel_target_value
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:72,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:73,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:78,1
    - Dst: fu_security_attr_add_bios_target_value
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:79,1
    - Dst: fu_security_attr_add_bios_target_value
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:89,1
    - Dst: fwupd_security_attr_set_result
      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:94,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:95,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:100,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 101
    functionName: fu_iommu_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/iommu/fu-iommu-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_hash_table_contains
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_plugin_security_attr_new
    - g_hash_table_lookup
    - fu_plugin_get_context
    - fu_kernel_get_cmdline
    - fu_context_get_path_store
    - fu_security_attr_add_bios_target_value
    - g_warning
    - fwupd_security_attr_set_kernel_target_value
    - fwupd_security_attr_set_result_success
    - fwupd_security_attr_set_kernel_current_value
    - fu_security_attrs_append
    - FU_IOMMU_PLUGIN
    - fu_kernel_check_cmdline_mutable
    - g_autoptr
    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: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    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:111,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:112,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/iommu/fu-iommu-plugin.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 116
    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
    - G_OBJECT_CLASS
    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:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuPlugin*
    - FwupdSecurityAttr*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 122
    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:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - attr
    - error
    argTypes:
    - FuPlugin*
    - FwupdSecurityAttr*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 128
    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:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIommuPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 140
    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:47,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:51,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:53,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:54,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 65
    functionName: fu_dell_plugin_get_system_id
    functionSourceFile: /src/fwupd/plugins/dell/fu-dell-plugin.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - fu_plugin_get_context
    - g_warning
    - fu_context_get_hwid_value
    - g_autoptr
    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:70,1
    - Dst: fu_context_get_chassis_kind
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:71,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:75,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:77,1
    - Dst: fu_context_get_smbios_data
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:80,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:83,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:84,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:84,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:85,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:89,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:93,1
    - Dst: fu_context_get_smbios_data
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:100,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:103,1
    - Dst: fu_struct_dell_smbios_da_parse_bytes
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:105,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:107,1
    - Dst: fu_struct_dell_smbios_da_get_supported_cmds
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:110,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:112,1
    - Dst: fu_struct_dell_smbios_da_get_supported_cmds
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:116,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:121,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:127,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - plugin
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 67
    functionDepth: 4
    functionLinenumber: 67
    functionLinenumberEnd: 129
    functionName: fu_dell_plugin_supported
    functionSourceFile: /src/fwupd/plugins/dell/fu-dell-plugin.c
    functionUses: 0
    functionsReached:
    - fu_struct_dell_smbios_da_parse_bytes
    - fu_context_get_chassis_kind
    - g_set_error
    - g_bytes_get_data
    - g_set_error_literal
    - fu_plugin_get_context
    - g_prefix_error_literal
    - fu_context_get_smbios_data
    - fu_memread_uint8_safe
    - G_N_ELEMENTS
    - g_bytes_get_size
    - fu_struct_dell_smbios_da_get_supported_cmds
    - g_autoptr
    - g_ptr_array_index
    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:135,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:135,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:136,1
    - Dst: fu_device_get_metadata_boolean
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:138,1
    - Dst: fu_dell_plugin_get_system_id
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:142,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:146,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:147,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:148,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:149,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:153,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:153,1
    - Dst: fu_dell_plugin_get_system_id
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:154,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:157,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:158,1
    - Dst: fu_device_set_metadata
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:159,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:162,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:163,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 131
    functionDepth: 6
    functionLinenumber: 131
    functionLinenumberEnd: 166
    functionName: fu_dell_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/dell/fu-dell-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_get_metadata_boolean
    - g_strcmp0
    - fu_device_add_instance_id
    - fu_device_build_vendor_id_u16
    - fu_device_get_plugin
    - g_strdup_printf
    - fu_device_has_flag
    - fu_device_set_metadata
    - fu_device_set_version_format
    - fu_dell_plugin_get_system_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_plugin_device_registered(FuPlugin *plugin, FuDevice *device)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:171,1
    - Dst: fu_dell_plugin_supported
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:174,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:175,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:185,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:188,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 168
    functionDepth: 5
    functionLinenumber: 168
    functionLinenumberEnd: 197
    functionName: fu_dell_plugin_startup
    functionSourceFile: /src/fwupd/plugins/dell/fu-dell-plugin.c
    functionUses: 0
    functionsReached:
    - fu_context_build_filename
    - g_set_error_literal
    - fu_plugin_get_context
    - fu_dell_plugin_supported
    - g_prefix_error_literal
    - g_file_test
    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:203,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:204,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:206,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:208,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:212,1
    - Dst: fu_security_attr_add_bios_target_value
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:213,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:214,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:215,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:217,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:217,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:218,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:219,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 224
    functionName: fu_dell_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/dell/fu-dell-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_debug
    - fwupd_security_attr_add_flag
    - fu_context_get_bios_setting
    - fwupd_security_attr_set_result
    - fu_plugin_security_attr_new
    - fwupd_bios_setting_get_current_value
    - fu_plugin_get_context
    - fu_security_attr_add_bios_target_value
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    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: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    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:234,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:236,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:239,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dell/fu-dell-plugin.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 243
    functionName: fu_dell_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/dell/fu-dell-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - FU_PLUGIN
    - fu_plugin_add_rule
    - G_OBJECT_CLASS
    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:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 253
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-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: 2
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: fu_realtek_mst_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRealtekMstPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    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_dual_bank_mode_to_string
    - FU_REALTEK_MST_DEVICE
    - fu_realtek_mst_device_flash_bank_to_string
    - 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: 5
    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_write
    - FU_I2C_DEVICE
    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: 5
    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_write
    - g_malloc0
    - FU_I2C_DEVICE
    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: 5
    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_write
    - fu_i2c_device_read
    - FU_I2C_DEVICE
    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: 6
    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: 7
    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_read_register
    - fu_realtek_mst_device_set_indirect_address
    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: 7
    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: 6
    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
    - fu_device_sleep
    - fu_realtek_mst_device_read_register
    - FU_DEVICE
    - g_timer_elapsed
    - g_timer_new
    - g_autoptr
    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: 8
    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_literal
      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: 6
    functionLinenumber: 228
    functionLinenumberEnd: 301
    functionName: fu_realtek_mst_device_setup
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_i2c_device_write
    - fu_device_set_version
    - g_set_error
    - fu_device_sleep
    - g_set_error_literal
    - FU_REALTEK_MST_DEVICE
    - g_prefix_error_literal
    - fu_realtek_mst_device_write_register
    - FU_DEVICE
    - g_strdup_printf
    - fu_i2c_device_read
    - FU_I2C_DEVICE
    - fu_i2c_device_set_address
    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: 6
    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:
    - g_return_val_if_fail
    - fu_i2c_device_write
    - g_debug
    - fu_realtek_mst_device_write_register
    - fu_i2c_device_read
    - FU_I2C_DEVICE
    - fu_progress_set_percentage_full
    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: 7
    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
    - fu_realtek_mst_device_poll_register
    - fu_realtek_mst_device_write_register
    - g_debug
    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: 7
    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
    - fu_realtek_mst_device_poll_register
    - fu_realtek_mst_device_write_register
    - g_debug
    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_literal
      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: 7
    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:
    - g_debug
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_realtek_mst_device_write_register
    - g_prefix_error_literal
    - g_prefix_error
    - fu_realtek_mst_device_poll_register
    - fu_chunk_get_data
    - g_bytes_get_size
    - fu_chunk_array_length
    - fu_progress_set_percentage_full
    - g_autoptr
    - fu_realtek_mst_device_write_register_multi
    - fu_chunk_get_address
    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: 9
    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_device_add_flag
    - g_debug
    - FU_REALTEK_MST_DEVICE
    - fu_realtek_mst_device_write_register
    - fu_realtek_mst_device_set_gpio88
    - fu_realtek_mst_device_poll_register
    - fu_realtek_mst_device_write_register_indirect
    - FU_I2C_DEVICE
    - fu_i2c_device_set_address
    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_literal
      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: 8
    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_progress_add_flag
    - FU_REALTEK_MST_DEVICE
    - FU_I2C_DEVICE
    - fu_realtek_mst_device_flash_iface_erase_sector
    - g_debug
    - fu_firmware_get_bytes
    - g_set_error_literal
    - memcmp
    - fu_progress_set_percentage_full
    - fu_realtek_mst_device_flash_iface_write
    - g_bytes_new_static
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_realtek_mst_device_flash_iface_read
    - fu_progress_step_done
    - g_malloc0
    - fu_progress_get_child
    - fu_realtek_mst_device_flash_iface_erase_block
    - fu_i2c_device_set_address
    - fu_progress_set_id
    - g_set_error
    - g_bytes_get_size
    - g_autoptr
    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: 7
    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
    - fu_realtek_mst_device_flash_iface_read
    - g_steal_pointer
    - FU_REALTEK_MST_DEVICE
    - g_malloc0
    - g_bytes_new_take
    - FU_I2C_DEVICE
    - g_autoptr
    - fu_firmware_new_from_bytes
    - fu_i2c_device_set_address
    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: 7
    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_realtek_mst_device_flash_iface_read
    - g_steal_pointer
    - FU_REALTEK_MST_DEVICE
    - g_malloc0
    - g_bytes_new_take
    - FU_I2C_DEVICE
    - fu_progress_set_status
    - fu_i2c_device_set_address
    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: 9
    functionLinenumber: 741
    functionLinenumberEnd: 793
    functionName: fu_realtek_mst_device_attach
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - fu_device_sleep
    - g_set_error_literal
    - FU_REALTEK_MST_DEVICE
    - fu_realtek_mst_device_write_register
    - fu_device_remove_flag
    - fu_realtek_mst_device_read_register
    - fu_i2c_device_set_address
    - FU_I2C_DEVICE
    - g_autoptr
    - fu_realtek_mst_device_set_gpio88
    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:
    - device
    - 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_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_realtek_mst_device_set_progress(FuDevice *device, 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_build_vendor_id_u16
      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_set_summary
      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_add_icon
      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_set_firmware_size
      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_udev_device_add_open_flag
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:823,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRealtekMstDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 807
    functionDepth: 6
    functionLinenumber: 807
    functionLinenumberEnd: 824
    functionName: fu_realtek_mst_device_init
    functionSourceFile: /src/fwupd/plugins/realtek-mst/fu-realtek-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_firmware_size
    - fu_device_build_vendor_id_u16
    - fu_device_add_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_summary
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    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:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRealtekMstDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 839
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: mnl_nlmsg_get_payload
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:26,1
    - Dst: mnl_attr_parse
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:33,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:37,1
    - Dst: mnl_attr_get_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - nlh
    - data
    argTypes:
    - struct nlmsghdr*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 40
    functionName: fu_devlink_plugin_get_serial_number_cb
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-plugin.c
    functionUses: 0
    functionsReached:
    - mnl_nlmsg_get_payload
    - mnl_attr_parse
    - fu_strsafe
    - mnl_attr_get_str
    linkageType: ''
    returnType: gint
    signature: gint fu_devlink_plugin_get_serial_number_cb(const struct nlmsghdr *nlh,
      gpointer data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:49,1
    - Dst: fu_devlink_netlink_gen_socket_open
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:51,1
    - Dst: fu_devlink_netlink_cmd_prepare
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:56,1
    - Dst: mnl_attr_put_strz
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:57,1
    - Dst: mnl_attr_put_strz
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:58,1
    - Dst: fu_devlink_netlink_msg_send_recv
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:61,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - bus_name
    - dev_name
    - serial_number
    - error
    argTypes:
    - gchar*
    - gchar*
    - gchar**
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 72
    functionName: fu_devlink_plugin_get_serial_number
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-plugin.c
    functionUses: 0
    functionsReached:
    - fu_devlink_netlink_cmd_prepare
    - fu_devlink_netlink_msg_send_recv
    - mnl_attr_put_strz
    - g_prefix_error_literal
    - g_autoptr
    - fu_devlink_netlink_gen_socket_open
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_devlink_plugin_get_serial_number(const gchar *bus_name,\n\t\t\t\t
      \   const gchar *dev_name,\n\t\t\t\t    gchar **serial_number,\n\t\t\t\t    GError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:80,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:81,1
    - Dst: mnl_attr_parse
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:86,1
    - Dst: mnl_attr_get_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:90,1
    - Dst: mnl_attr_get_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:92,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:95,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:99,1
    - Dst: fu_devlink_plugin_get_serial_number
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:101,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:105,1
    - Dst: fu_devlink_backend_device_added
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:113,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:119,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:120,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:121,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:126,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:133,1
    - Dst: fu_plugin_cache_add
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:134,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:134,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - self
    - nlh
    argTypes:
    - FuDevlinkPlugin*
    - struct nlmsghdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 135
    functionName: fu_devlink_plugin_device_added_from_netlink
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - g_debug
    - mnl_attr_parse
    - fu_devlink_plugin_get_serial_number
    - g_strdup_printf
    - g_warning
    - mnl_attr_get_str
    - fu_devlink_backend_device_added
    - g_error_matches
    - g_autoptr
    - fu_plugin_cache_add
    linkageType: ''
    returnType: void
    signature: void fu_devlink_plugin_device_added_from_netlink(FuDevlinkPlugin *self,
      const struct nlmsghdr *nlh)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mnl_attr_parse
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:147,1
    - Dst: mnl_attr_get_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:151,1
    - Dst: mnl_attr_get_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:153,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:156,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:160,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:162,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:163,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:163,1
    - Dst: fu_devlink_backend_device_removed
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:166,1
    - Dst: fu_plugin_cache_remove
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:167,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:167,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - nlh
    argTypes:
    - FuDevlinkPlugin*
    - struct nlmsghdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 168
    functionName: fu_devlink_plugin_device_removed_from_netlink
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - g_debug
    - fu_plugin_cache_remove
    - mnl_attr_parse
    - g_strdup_printf
    - fu_plugin_cache_lookup
    - mnl_attr_get_str
    - fu_devlink_backend_device_removed
    linkageType: ''
    returnType: void
    signature: void fu_devlink_plugin_device_removed_from_netlink(FuDevlinkPlugin
      *self, const struct nlmsghdr *nlh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_PLUGIN
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:174,1
    - Dst: mnl_nlmsg_get_payload
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:177,1
    - Dst: fu_devlink_plugin_device_added_from_netlink
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:180,1
    - Dst: fu_devlink_plugin_device_removed_from_netlink
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:183,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - nlh
    - data
    argTypes:
    - struct nlmsghdr*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 171
    functionDepth: 4
    functionLinenumber: 171
    functionLinenumberEnd: 190
    functionName: fu_devlink_plugin_process_message_cb
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-plugin.c
    functionUses: 0
    functionsReached:
    - mnl_nlmsg_get_payload
    - FU_DEVLINK_PLUGIN
    - fu_devlink_plugin_device_added_from_netlink
    - fu_devlink_plugin_device_removed_from_netlink
    linkageType: ''
    returnType: gint
    signature: gint fu_devlink_plugin_process_message_cb(const struct nlmsghdr *nlh,
      gpointer data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_PLUGIN
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:195,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:198,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:201,1
    - Dst: g_io_channel_read_chars
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:206,1
    - Dst: fu_devlink_netlink_gen_socket_get_buf
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:207,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:213,1
    - Dst: fu_devlink_netlink_msg_run
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:218,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - channel
    - condition
    - user_data
    argTypes:
    - GIOChannel*
    - GIOCondition
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 227
    functionName: fu_devlink_plugin_netlink_cb
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-plugin.c
    functionUses: 0
    functionsReached:
    - FU_DEVLINK_PLUGIN
    - fu_devlink_netlink_gen_socket_get_buf
    - g_debug
    - g_warning
    - fu_devlink_netlink_msg_run
    - g_autoptr
    - g_io_channel_read_chars
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_devlink_plugin_netlink_cb(GIOChannel *channel, GIOCondition
      condition, gpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:234,1
    - Dst: fu_devlink_netlink_gen_socket_open
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:237,1
    - Dst: fu_devlink_netlink_mcast_group_subscribe
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:242,1
    - Dst: fu_devlink_netlink_gen_socket_get_fd
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:246,1
    - Dst: g_io_channel_unix_new
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:247,1
    - Dst: g_io_channel_set_encoding
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:248,1
    - Dst: g_io_channel_set_buffered
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:249,1
    - Dst: g_io_add_watch
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:252,1
    - Dst: g_main_context_find_source_by_id
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:256,1
    - Dst: g_source_ref
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevlinkPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 261
    functionName: fu_devlink_plugin_setup_netlink
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-plugin.c
    functionUses: 0
    functionsReached:
    - g_io_channel_unix_new
    - g_main_context_find_source_by_id
    - fu_devlink_netlink_mcast_group_subscribe
    - g_io_add_watch
    - g_io_channel_set_encoding
    - fu_devlink_netlink_gen_socket_get_fd
    - g_io_channel_set_buffered
    - g_source_ref
    - g_autoptr
    - fu_devlink_netlink_gen_socket_open
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_devlink_plugin_setup_netlink(FuDevlinkPlugin *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_PLUGIN
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:267,1
    - Dst: mnl_nlmsg_get_payload
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:270,1
    - Dst: fu_devlink_plugin_device_added_from_netlink
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - nlh
    - data
    argTypes:
    - struct nlmsghdr*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 275
    functionName: fu_devlink_plugin_enumerate_cb
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-plugin.c
    functionUses: 0
    functionsReached:
    - mnl_nlmsg_get_payload
    - FU_DEVLINK_PLUGIN
    - fu_devlink_plugin_device_added_from_netlink
    linkageType: ''
    returnType: gint
    signature: gint fu_devlink_plugin_enumerate_cb(const struct nlmsghdr *nlh, gpointer
      data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_devlink_netlink_cmd_prepare
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:283,1
    - Dst: fu_devlink_netlink_msg_send_recv
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:286,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevlinkPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 296
    functionName: fu_devlink_plugin_enumerate_devices
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-plugin.c
    functionUses: 0
    functionsReached:
    - fu_devlink_netlink_cmd_prepare
    - g_prefix_error_literal
    - fu_devlink_netlink_msg_send_recv
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_devlink_plugin_enumerate_devices(FuDevlinkPlugin *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_PLUGIN
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:301,1
    - Dst: fu_devlink_plugin_setup_netlink
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:304,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 309
    functionName: fu_devlink_plugin_startup
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-plugin.c
    functionUses: 0
    functionsReached:
    - FU_DEVLINK_PLUGIN
    - g_prefix_error_literal
    - fu_devlink_plugin_setup_netlink
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_devlink_plugin_startup(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_PLUGIN
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:314,1
    - Dst: fu_devlink_plugin_enumerate_devices
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:317,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 323
    functionName: fu_devlink_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-plugin.c
    functionUses: 0
    functionsReached:
    - FU_DEVLINK_PLUGIN
    - fu_devlink_plugin_enumerate_devices
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_devlink_plugin_coldplug(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_PLUGIN
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:328,1
    - Dst: g_source_destroy
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:332,1
    - Dst: g_source_unref
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:333,1
    - Dst: fu_devlink_netlink_gen_socket_close
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:336,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:340,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 343
    functionName: fu_devlink_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-plugin.c
    functionUses: 0
    functionsReached:
    - fu_devlink_netlink_gen_socket_close
    - FU_DEVLINK_PLUGIN
    - g_object_unref
    - g_source_destroy
    - G_OBJECT_CLASS
    - g_source_unref
    linkageType: ''
    returnType: void
    signature: void fu_devlink_plugin_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_PLUGIN
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:348,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:349,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:350,1
    - Dst: FU_DEVLINK_BACKEND
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:353,1
    - Dst: fu_devlink_backend_new
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:353,1
    - Dst: fu_context_add_backend
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:354,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:354,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:355,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:356,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 360
    functionName: fu_devlink_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-plugin.c
    functionUses: 0
    functionsReached:
    - FU_DEVLINK_PLUGIN
    - FU_PLUGIN
    - fu_context_add_backend
    - fu_plugin_add_device_gtype
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_context_add_quirk_key
    - FU_DEVLINK_BACKEND
    - FU_BACKEND
    - fu_devlink_backend_new
    linkageType: ''
    returnType: void
    signature: void fu_devlink_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevlinkPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 365
    functionName: fu_devlink_plugin_init
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_devlink_plugin_init(FuDevlinkPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:370,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/devlink/fu-devlink-plugin.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDevlinkPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 377
    functionName: fu_devlink_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_devlink_plugin_class_init(FuDevlinkPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:36,1
    - Dst: g_free
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:37,1
    - Dst: g_free
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:38,1
    - Dst: g_free
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - version_info
    argTypes:
    - FuDevlinkVersionInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: fu_devlink_device_version_info_free
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_devlink_device_version_info_free(FuDevlinkVersionInfo *version_info)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:47,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:49,1
    - Dst: mnl_attr_get_type
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:59,1
    - Dst: mnl_attr_get_type
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:60,1
    - Dst: mnl_attr_get_type
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:61,1
    - Dst: mnl_attr_parse_nested
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:63,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:70,1
    - Dst: mnl_attr_get_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:70,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:71,1
    - Dst: mnl_attr_get_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:71,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:73,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:75,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:76,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:76,1
    - Dst: mnl_attr_get_type
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:83,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:85,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:88,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:91,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:98,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 1
    argNames:
    - nlh
    argTypes:
    - struct nlmsghdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 99
    functionName: fu_devlink_device_populate_attrs_map
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - fu_strsafe
    - g_new0
    - g_hash_table_lookup
    - g_steal_pointer
    - g_hash_table_new_full
    - mnl_attr_parse_nested
    - mnl_attr_get_type
    - mnl_attr_get_str
    - g_autoptr
    linkageType: ''
    returnType: GHashTable
    signature: 'GHashTable *

      fu_devlink_device_populate_attrs_map(const struct nlmsghdr *nlh)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mnl_attr_get_type
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:59,1
    - Dst: mnl_attr_get_type
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:60,1
    - Dst: mnl_attr_get_type
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:61,1
    - Dst: mnl_attr_parse_nested
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:63,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:70,1
    - Dst: mnl_attr_get_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:70,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:71,1
    - Dst: mnl_attr_get_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:71,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:73,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:75,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:76,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:76,1
    - Dst: mnl_attr_get_type
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:83,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:85,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:88,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:91,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 96
    functionName: mnl_attr_for_each
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - fu_strsafe
    - g_new0
    - g_hash_table_lookup
    - mnl_attr_parse_nested
    - mnl_attr_get_type
    - mnl_attr_get_str
    linkageType: ''
    returnType: void
    signature: void mnl_attr_for_each(attr, nlh, sizeof(struct genlmsghdr))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mnl_nlmsg_get_payload
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:110,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:112,1
    - Dst: fu_devlink_device_populate_attrs_map
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:116,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:117,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - nlh
    - data
    argTypes:
    - struct nlmsghdr*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: fu_devlink_device_needs_activation_cb
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - mnl_nlmsg_get_payload
    - g_strcmp0
    - g_hash_table_lookup
    - g_autoptr
    - fu_devlink_device_populate_attrs_map
    linkageType: ''
    returnType: gint
    signature: gint fu_devlink_device_needs_activation_cb(const struct nlmsghdr *nlh,
      gpointer data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_devlink_netlink_cmd_prepare
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:138,1
    - Dst: mnl_attr_put_strz
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:139,1
    - Dst: mnl_attr_put_strz
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:140,1
    - Dst: fu_devlink_netlink_msg_send_recv
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:143,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - component_name
    - needs_activation
    - error
    argTypes:
    - FuDevlinkDevice*
    - gchar*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 154
    functionName: fu_devlink_device_needs_activation
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - fu_devlink_netlink_cmd_prepare
    - fu_devlink_netlink_msg_send_recv
    - g_prefix_error_literal
    - mnl_attr_put_strz
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_devlink_device_needs_activation(FuDevlinkDevice *self,\n\t\t\t\t
      \  const gchar *component_name,\n\t\t\t\t   gboolean *needs_activation,\n\t\t\t\t
      \  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_devlink_device_needs_activation
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:165,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:170,1
    - Dst: fu_devlink_netlink_cmd_prepare
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:173,1
    - Dst: mnl_attr_put_strz
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:174,1
    - Dst: mnl_attr_put_strz
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:175,1
    - Dst: mnl_attr_put_u8
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:176,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:178,1
    - Dst: fu_devlink_netlink_msg_send
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:183,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:184,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - self
    - component_name
    - error
    argTypes:
    - FuDevlinkDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 191
    functionName: fu_devlink_device_ensure_activate
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - fu_devlink_netlink_cmd_prepare
    - mnl_attr_put_strz
    - g_debug
    - fu_devlink_netlink_msg_send
    - g_prefix_error_literal
    - mnl_attr_put_u8
    - fu_devlink_device_needs_activation
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_devlink_device_ensure_activate(FuDevlinkDevice *self,\n\t\t\t\t
      \ const gchar *component_name,\n\t\t\t\t  GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mnl_nlmsg_get_payload
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:218,1
    - Dst: mnl_attr_parse
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:227,1
    - Dst: mnl_attr_get_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:233,1
    - Dst: mnl_attr_get_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:234,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:236,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:237,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:241,1
    - Dst: mnl_attr_get_u64
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:247,1
    - Dst: mnl_attr_get_u64
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:249,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:252,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - nlh
    - data
    argTypes:
    - struct nlmsghdr*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 255
    functionName: fu_devlink_device_flash_mon_cb
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - mnl_nlmsg_get_payload
    - g_strcmp0
    - fu_progress_set_percentage
    - mnl_attr_parse
    - mnl_attr_get_str
    - mnl_attr_get_u64
    - fu_progress_set_percentage_full
    linkageType: ''
    returnType: gint
    signature: gint fu_devlink_device_flash_mon_cb(const struct nlmsghdr *nlh, gpointer
      data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_devlink_netlink_cmd_prepare
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:267,1
    - Dst: mnl_attr_put_strz
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:269,1
    - Dst: mnl_attr_put_strz
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:270,1
    - Dst: mnl_attr_put_strz
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:273,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:274,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:280,1
    - Dst: mnl_attr_put_strz
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:286,1
    - Dst: fu_devlink_netlink_msg_send
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - self
    - component_name
    - filename
    - error
    argTypes:
    - FuDevlinkDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 290
    functionName: fu_devlink_device_flash_send
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - fu_devlink_netlink_msg_send
    - fu_devlink_netlink_cmd_prepare
    - g_debug
    - mnl_attr_put_strz
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_devlink_device_flash_send(FuDevlinkDevice *self,\n\t\t\t
      \    const gchar *component_name,\n\t\t\t     const gchar *filename,\n\t\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:299,1
    - Dst: fu_devlink_device_flash_send
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:302,1
    - Dst: g_main_loop_quit
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:308,1
    - Dst: GINT_TO_POINTER
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 311
    functionName: fu_devlink_device_flash_send_thread
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - GINT_TO_POINTER
    - fu_devlink_device_flash_send
    - g_debug
    - g_main_loop_quit
    linkageType: ''
    returnType: gpointer
    signature: gpointer fu_devlink_device_flash_send_thread(gpointer user_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:322,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:325,1
    - Dst: g_io_channel_read_chars
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:330,1
    - Dst: fu_devlink_netlink_gen_socket_get_buf
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:331,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:337,1
    - Dst: fu_devlink_netlink_msg_run
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:342,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - channel
    - condition
    - user_data
    argTypes:
    - GIOChannel*
    - GIOCondition
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 354
    functionName: fu_devlink_device_flash_mon_netlink_cb
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - fu_devlink_netlink_gen_socket_get_buf
    - g_debug
    - g_warning
    - fu_devlink_netlink_msg_run
    - g_autoptr
    - g_io_channel_read_chars
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_devlink_device_flash_mon_netlink_cb(GIOChannel *channel,\n\t\t\t\t
      \      GIOCondition condition,\n\t\t\t\t       gpointer user_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:367,1
    - Dst: g_main_loop_new
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:367,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:379,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:380,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:381,1
    - Dst: fu_devlink_netlink_gen_socket_open
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:384,1
    - Dst: fu_devlink_netlink_mcast_group_subscribe
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:387,1
    - Dst: fu_devlink_netlink_gen_socket_get_fd
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:392,1
    - Dst: g_io_channel_unix_new
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:393,1
    - Dst: g_io_channel_set_encoding
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:394,1
    - Dst: g_io_channel_set_buffered
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:395,1
    - Dst: g_io_add_watch
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:396,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:401,1
    - Dst: g_thread_new
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:404,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:408,1
    - Dst: g_source_remove
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:412,1
    - Dst: g_main_loop_run
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:417,1
    - Dst: g_source_remove
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:419,1
    - Dst: g_thread_join
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:422,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:423,1
    - Dst: GPOINTER_TO_INT
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:424,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:426,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 5
    argNames:
    - self
    - component_name
    - filename
    - progress
    - error
    argTypes:
    - FuDevlinkDevice*
    - gchar*
    - gchar*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 429
    functionName: fu_devlink_device_flash
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - g_io_channel_unix_new
    - fu_progress_set_percentage
    - g_main_loop_new
    - g_source_remove
    - GPOINTER_TO_INT
    - fu_devlink_netlink_mcast_group_subscribe
    - g_set_error_literal
    - g_steal_pointer
    - g_main_loop_run
    - g_io_add_watch
    - g_io_channel_set_encoding
    - fu_devlink_netlink_gen_socket_get_fd
    - g_io_channel_set_buffered
    - g_thread_new
    - g_autoptr
    - g_thread_join
    - fu_devlink_netlink_gen_socket_open
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_devlink_device_flash(FuDevlinkDevice *self,\n\t\t\tconst
      gchar *component_name,\n\t\t\tconst gchar *filename,\n\t\t\tFuProgress *progress,\n\t\t\tGError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:444,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:447,1
    - Dst: fu_kernel_search_path_locker_get_path
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:452,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:453,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:457,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:458,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:461,1
    - Dst: fu_devlink_device_flash
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:464,1
    - Dst: g_unlink
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:471,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:472,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:474,1
    - Dst: fu_devlink_device_ensure_activate
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:481,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 7
    argNames:
    - self
    - component_name
    - omit_component_name
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevlinkDevice*
    - gchar*
    - gboolean
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 431
    functionDepth: 4
    functionLinenumber: 431
    functionLinenumberEnd: 482
    functionName: fu_devlink_device_write_firmware_component
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - fu_kernel_search_path_locker_get_path
    - fu_devlink_device_flash
    - g_debug
    - fu_firmware_get_bytes
    - g_unlink
    - g_strdup_printf
    - g_warning
    - fu_bytes_set_contents
    - fwupd_strerror
    - g_autoptr
    - g_build_filename
    - fu_devlink_device_ensure_activate
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_devlink_device_write_firmware_component(FuDevlinkDevice
      *self,\n\t\t\t\t\t   const gchar *component_name,\n\t\t\t\t\t   gboolean omit_component_name,\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_get_children
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:487,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:487,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:489,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:490,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:490,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:491,1
    - Dst: FU_DEVLINK_COMPONENT
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FuDevlinkDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 484
    functionDepth: 3
    functionLinenumber: 484
    functionLinenumberEnd: 494
    functionName: fu_devlink_device_get_component_by_logical_id
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_device_get_logical_id
    - fu_device_get_children
    - FU_DEVICE
    - g_object_ref
    - FU_DEVLINK_COMPONENT
    - g_ptr_array_index
    linkageType: ''
    returnType: FuDevlinkComponent
    signature: 'FuDevlinkComponent *

      fu_devlink_device_get_component_by_logical_id(FuDevlinkDevice *self, const gchar
      *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:505,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:513,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:514,1
    - Dst: g_strv_builder_new
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:514,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:518,1
    - Dst: g_ascii_strup
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:525,1
    - Dst: g_strv_builder_add
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:526,1
    - Dst: fu_device_get_instance_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:529,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:529,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:530,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:530,1
    - Dst: fu_devlink_component_add_instance_keys
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:538,1
    - Dst: g_strv_builder_end
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:539,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - component
    - helper
    argTypes:
    - FuDevlinkComponent*
    - FuDevlinkDeviceUpdateComponentHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 541
    functionName: fu_devlink_device_add_component_instance_strs
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_str
    - g_hash_table_lookup
    - g_strv_builder_new
    - g_strv_builder_add
    - fu_devlink_component_add_instance_keys
    - g_ascii_strup
    - FU_DEVICE
    - g_strv_builder_end
    - fu_device_get_instance_str
    - FU_DEVLINK_DEVICE
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: "void fu_devlink_device_add_component_instance_strs(FuDevlinkComponent
      *component,\n\t\t\t\t\t      FuDevlinkDeviceUpdateComponentHelper *helper)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:547,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:551,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:552,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:553,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:557,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:558,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:558,1
    - Dst: fu_devlink_device_get_component_by_logical_id
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:569,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:571,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:571,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:572,1
    - Dst: fu_devlink_component_new
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:577,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:577,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:578,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:578,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:581,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:581,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:582,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:585,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:585,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:586,1
    - Dst: fu_devlink_device_add_component_instance_strs
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:588,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:589,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:589,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:589,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:590,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:590,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:591,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:591,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:592,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:595,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:595,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:595,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:596,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 543
    functionDepth: 9
    functionLinenumber: 543
    functionLinenumberEnd: 597
    functionName: fu_devlink_device_update_component_cb
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_set_version
    - fu_device_incorporate
    - g_strdup_printf
    - fu_device_get_name
    - fu_device_set_version_format
    - fu_device_probe
    - fu_devlink_device_add_component_instance_strs
    - g_debug
    - fu_device_add_instance_id_full
    - FU_DEVLINK_DEVICE
    - fu_devlink_component_new
    - fu_device_set_version_bootloader
    - FU_DEVICE
    - fu_devlink_device_get_component_by_logical_id
    - g_warning
    - g_strcmp0
    - fu_version_guess_format
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_devlink_device_update_component_cb(gpointer key, gpointer value,
      gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:603,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:605,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:605,1
    - Dst: mnl_nlmsg_get_payload
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:606,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:608,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:609,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:609,1
    - Dst: mnl_attr_parse
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:615,1
    - Dst: fu_devlink_device_populate_attrs_map
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:617,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:621,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:622,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:623,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:626,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:627,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:631,1
    - Dst: fu_device_remove_child
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:632,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:632,1
    - Dst: g_hash_table_foreach
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:637,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - nlh
    - data
    argTypes:
    - struct nlmsghdr*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 600
    functionDepth: 3
    functionLinenumber: 600
    functionLinenumberEnd: 640
    functionName: fu_devlink_device_info_cb
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - mnl_nlmsg_get_payload
    - fu_device_get_logical_id
    - g_debug
    - fu_device_get_children
    - g_ptr_array_new
    - g_hash_table_lookup
    - mnl_attr_parse
    - g_ptr_array_add
    - FU_DEVICE
    - fu_device_remove_child
    - g_hash_table_foreach
    - FU_DEVLINK_DEVICE
    - g_autoptr
    - fu_devlink_device_populate_attrs_map
    - g_ptr_array_index
    linkageType: ''
    returnType: gint
    signature: gint fu_devlink_device_info_cb(const struct nlmsghdr *nlh, gpointer
      data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_devlink_netlink_cmd_prepare
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:649,1
    - Dst: mnl_attr_put_strz
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:650,1
    - Dst: mnl_attr_put_strz
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:651,1
    - Dst: fu_devlink_netlink_msg_send_recv
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:654,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevlinkDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 665
    functionName: fu_devlink_device_get_info
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - fu_devlink_netlink_cmd_prepare
    - fu_devlink_netlink_msg_send_recv
    - g_prefix_error_literal
    - mnl_attr_put_strz
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_devlink_device_get_info(FuDevlinkDevice *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:670,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:672,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 667
    functionDepth: 2
    functionLinenumber: 667
    functionLinenumberEnd: 674
    functionName: fu_devlink_device_to_string
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVLINK_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_devlink_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:679,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:685,1
    - Dst: g_ascii_strup
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:692,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:695,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:696,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:699,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:699,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:700,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:700,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:701,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:701,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:702,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:709,1
    - Dst: fu_devlink_device_get_info
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:715,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 676
    functionDepth: 5
    functionLinenumber: 676
    functionLinenumberEnd: 716
    functionName: fu_devlink_device_setup
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - fu_devlink_device_get_info
    - fu_device_get_pid
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_device_get_vid
    - g_strdup_printf
    - fu_device_set_summary
    - fu_device_build_instance_id_full
    - FU_DEVLINK_DEVICE
    - g_ascii_strup
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_devlink_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevlinkDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 722
    functionName: fu_devlink_device_get_bus_name
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_devlink_device_get_bus_name(FuDevlinkDevice *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:727,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - bus_name
    argTypes:
    - FuDevlinkDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 729
    functionName: fu_devlink_device_set_bus_name
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_devlink_device_set_bus_name(FuDevlinkDevice *self, const gchar
      *bus_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:734,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - dev_name
    argTypes:
    - FuDevlinkDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 736
    functionName: fu_devlink_device_set_dev_name
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_devlink_device_set_dev_name(FuDevlinkDevice *self, const gchar
      *dev_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:744,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:747,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:748,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:751,1
    - Dst: fu_devlink_device_set_bus_name
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:752,1
    - Dst: fu_devlink_device_set_dev_name
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:753,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:756,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:756,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:757,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:757,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:759,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:760,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:760,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:763,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - bus_name
    - dev_name
    - serial_number
    argTypes:
    - FuContext*
    - gchar*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 738
    functionDepth: 2
    functionLinenumber: 738
    functionLinenumberEnd: 764
    functionName: fu_devlink_device_new
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_devlink_device_set_dev_name
    - fu_device_set_physical_id
    - g_steal_pointer
    - fu_device_set_serial
    - FU_DEVICE
    - g_strdup_printf
    - g_object_new
    - g_autoptr
    - fu_devlink_device_set_bus_name
    linkageType: ''
    returnType: FuDevice
    signature: "FuDevice *\nfu_devlink_device_new(FuContext *ctx,\n\t\t      const
      gchar *bus_name,\n\t\t      const gchar *dev_name,\n\t\t      const gchar *serial_number)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:769,1
    - Dst: fu_devlink_netlink_gen_socket_open
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 778
    functionName: fu_devlink_device_open
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVLINK_DEVICE
    - fu_devlink_netlink_gen_socket_open
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_devlink_device_open(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:783,1
    - Dst: fu_devlink_netlink_gen_socket_close
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 789
    functionName: fu_devlink_device_close
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - fu_devlink_netlink_gen_socket_close
    - FU_DEVLINK_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_devlink_device_close(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:794,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:794,1
    - Dst: fu_context_get_path_store
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:795,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:797,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:800,1
    - Dst: g_mkdir_with_parents
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:808,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:809,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:814,1
    - Dst: fu_kernel_search_path_locker_new
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:817,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:820,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDevlinkDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 791
    functionDepth: 3
    functionLinenumber: 791
    functionLinenumberEnd: 821
    functionName: fu_devlink_device_search_path_locker_new
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - fu_context_build_filename
    - g_set_error
    - fu_kernel_search_path_locker_new
    - g_steal_pointer
    - fu_device_get_context
    - fu_context_get_path_store
    - FU_DEVICE
    - g_mkdir_with_parents
    - fwupd_strerror
    - g_autoptr
    linkageType: ''
    returnType: FuKernelSearchPathLocker
    signature: 'FuKernelSearchPathLocker *

      fu_devlink_device_search_path_locker_new(FuDevlinkDevice *self, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:829,1
    - Dst: fu_devlink_device_search_path_locker_new
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:832,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 823
    functionDepth: 4
    functionLinenumber: 823
    functionLinenumberEnd: 838
    functionName: fu_devlink_device_prepare
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - fu_devlink_device_search_path_locker_new
    - FU_DEVLINK_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_devlink_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_DEVLINK_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:846,1
    - Dst: g_clear_object
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 852
    functionName: fu_devlink_device_cleanup
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - g_clear_object
    - FU_DEVLINK_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_devlink_device_cleanup(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: FU_DEVLINK_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:857,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:860,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:864,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:866,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - device
    - json_obj
    - flags
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - FwupdCodecFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 854
    functionDepth: 3
    functionLinenumber: 854
    functionLinenumberEnd: 867
    functionName: fu_devlink_device_add_json
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVLINK_DEVICE
    - fwupd_json_object_add_string
    linkageType: ''
    returnType: void
    signature: void fu_devlink_device_add_json(FuDevice *device, FwupdJsonObject *json_obj,
      FwupdCodecFlags flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:872,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:878,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:879,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:882,1
    - Dst: fu_devlink_device_set_bus_name
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:889,1
    - Dst: fu_devlink_device_set_dev_name
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:890,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:892,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:893,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:893,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:894,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:894,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:895,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - device
    - json_obj
    - error
    argTypes:
    - FuDevice*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 869
    functionDepth: 2
    functionLinenumber: 869
    functionLinenumberEnd: 899
    functionName: fu_devlink_device_from_json
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - fu_devlink_device_set_dev_name
    - fu_device_set_physical_id
    - g_set_error_literal
    - fu_device_set_backend_id
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_set_name
    - fwupd_json_object_get_string
    - FU_DEVLINK_DEVICE
    - fu_devlink_device_set_bus_name
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_devlink_device_from_json(FuDevice *device, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:904,1
    - Dst: FU_DEVLINK_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:905,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:907,1
    - Dst: FU_IS_DEVLINK_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:907,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:908,1
    - Dst: FU_IS_DEVLINK_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:908,1
    - Dst: fu_devlink_device_set_bus_name
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:912,1
    - Dst: fu_devlink_device_set_dev_name
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:916,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - device
    - donor_device
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 917
    functionName: fu_devlink_device_incorporate
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - fu_devlink_device_set_dev_name
    - g_return_if_fail
    - FU_IS_DEVLINK_DEVICE
    - FU_DEVLINK_DEVICE
    - fu_devlink_device_set_bus_name
    linkageType: ''
    returnType: void
    signature: void fu_devlink_device_incorporate(FuDevice *device, FuDevice *donor_device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:923,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - fixed_versions
    argTypes:
    - FuDevlinkDevice*
    - gchar**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 925
    functionName: fu_devlink_device_add_fixed_versions
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_devlink_device_add_fixed_versions(FuDevlinkDevice *self, gchar
      **fixed_versions)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:933,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:935,1
    - Dst: fu_devlink_device_add_fixed_versions
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:936,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:936,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 945
    functionName: fu_devlink_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error_literal
    - fu_devlink_device_add_fixed_versions
    - g_strsplit
    - FU_DEVLINK_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_devlink_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: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:950,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:950,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:951,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:951,1
    - Dst: fu_device_add_possible_plugin
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:952,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevlinkDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 947
    functionDepth: 6
    functionLinenumber: 947
    functionLinenumberEnd: 953
    functionName: fu_devlink_device_init
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_add_protocol
    - fu_device_add_flag
    - fu_device_add_possible_plugin
    linkageType: ''
    returnType: void
    signature: void fu_devlink_device_init(FuDevlinkDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:958,1
    - Dst: g_free
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:960,1
    - Dst: g_free
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:961,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:963,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 966
    functionName: fu_devlink_device_finalize
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVLINK_DEVICE
    - g_free
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    linkageType: ''
    returnType: void
    signature: void fu_devlink_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:971,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/devlink/fu-devlink-device.c:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDevlinkDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 986
    functionName: fu_devlink_device_class_init
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_devlink_device_class_init(FuDevlinkDeviceClass *klass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_backend_get_context
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:24,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:29,1
    - Dst: fu_context_get_backend_by_name
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:32,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:34,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:43,1
    - Dst: fu_path_make_absolute
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:44,1
    - Dst: fu_backend_create_device
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:49,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:51,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:61,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:62,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - self
    - bus_name
    - dev_name
    - error
    argTypes:
    - FuDevlinkBackend*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 67
    functionName: fu_devlink_backend_create_pci_parent
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-backend.c
    functionUses: 0
    functionsReached:
    - fu_backend_create_device
    - fu_device_probe
    - g_set_error
    - g_steal_pointer
    - g_prefix_error_literal
    - g_strdup_printf
    - fu_context_get_backend_by_name
    - fu_backend_get_context
    - FU_BACKEND
    - g_autoptr
    - fu_path_make_absolute
    linkageType: ''
    returnType: FuDevice
    signature: "FuDevice *\nfu_devlink_backend_create_pci_parent(FuDevlinkBackend
      *self,\n\t\t\t\t     const gchar *bus_name,\n\t\t\t\t     const gchar *dev_name,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_backend_get_context
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:75,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:75,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:76,1
    - Dst: fu_device_new
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:80,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:83,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:84,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:85,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - self
    - bus_name
    - dev_name
    - error
    argTypes:
    - FuDevlinkBackend*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 88
    functionName: fu_devlink_backend_create_netdevsim_parent
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-backend.c
    functionUses: 0
    functionsReached:
    - fu_device_set_physical_id
    - g_steal_pointer
    - fu_device_set_name
    - g_strdup_printf
    - fu_backend_get_context
    - FU_BACKEND
    - g_autoptr
    - fu_device_new
    linkageType: ''
    returnType: FuDevice
    signature: "FuDevice *\nfu_devlink_backend_create_netdevsim_parent(FuDevlinkBackend
      *self,\n\t\t\t\t\t   const gchar *bus_name,\n\t\t\t\t\t   const gchar *dev_name,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_backend_get_context
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:97,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:97,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:100,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:102,1
    - Dst: FU_IS_DEVLINK_BACKEND
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:102,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:103,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:104,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:105,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:108,1
    - Dst: fu_devlink_backend_create_pci_parent
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:110,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:113,1
    - Dst: fu_devlink_backend_create_netdevsim_parent
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:115,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:119,1
    - Dst: fu_devlink_device_new
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:128,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:130,1
    - Dst: fu_device_set_backend_id
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:139,1
    - Dst: fu_backend_lookup_by_id
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:143,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:143,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:143,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:145,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:149,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:154,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:162,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:162,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:163,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 5
    argNames:
    - self
    - bus_name
    - dev_name
    - serial_number
    - error
    argTypes:
    - FuDevlinkBackend*
    - gchar*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 90
    functionDepth: 9
    functionLinenumber: 90
    functionLinenumberEnd: 164
    functionName: fu_devlink_backend_device_added
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-backend.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - fu_device_get_backend_id
    - g_strcmp0
    - fu_devlink_device_new
    - FU_IS_DEVLINK_BACKEND
    - fu_backend_lookup_by_id
    - fu_backend_device_added
    - g_set_error
    - g_set_error_literal
    - g_steal_pointer
    - fu_device_set_backend_id
    - fu_device_incorporate
    - fu_devlink_backend_create_netdevsim_parent
    - fu_backend_get_context
    - FU_BACKEND
    - g_autoptr
    - fu_devlink_backend_create_pci_parent
    linkageType: ''
    returnType: FuDevice
    signature: "FuDevice *\nfu_devlink_backend_device_added(FuDevlinkBackend *self,\n\t\t\t\tconst
      gchar *bus_name,\n\t\t\t\tconst gchar *dev_name,\n\t\t\t\tconst gchar *serial_number,\n\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:169,1
    - Dst: FU_IS_DEVLINK_BACKEND
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:169,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:170,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:170,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:172,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - devlink_device
    argTypes:
    - FuDevlinkBackend*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: fu_devlink_backend_device_removed
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-backend.c
    functionUses: 1
    functionsReached:
    - FU_IS_DEVLINK_BACKEND
    - FU_IS_DEVICE
    - g_return_if_fail
    - fu_backend_device_removed
    - FU_BACKEND
    linkageType: ''
    returnType: void
    signature: void fu_devlink_backend_device_removed(FuDevlinkBackend *self, FuDevice
      *devlink_device)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevlinkBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: fu_devlink_backend_init
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_devlink_backend_init(FuDevlinkBackend *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDevlinkBackendClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: fu_devlink_backend_class_init
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_devlink_backend_class_init(FuDevlinkBackendClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:188,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/devlink/fu-devlink-backend.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 196
    functionName: fu_devlink_backend_new
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-backend.c
    functionUses: 1
    functionsReached:
    - FU_BACKEND
    - g_object_new
    linkageType: ''
    returnType: FuBackend
    signature: 'FuBackend *

      fu_devlink_backend_new(FuContext *ctx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mnl_nlmsg_put_header
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:26,1
    - Dst: time
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:31,1
    - Dst: mnl_nlmsg_put_extra_header
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:33,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - buf
    - nlmsg_type
    - dump
    - extra_header
    - extra_header_size
    argTypes:
    - gpointer
    - guint32
    - gboolean
    - gpointer
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 37
    functionName: fu_devlink_netlink_msg_prepare
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 0
    functionsReached:
    - mnl_nlmsg_put_header
    - memcpy
    - mnl_nlmsg_put_extra_header
    - time
    linkageType: ''
    returnType: struct nlmsghdr
    signature: "struct nlmsghdr *\nfu_devlink_netlink_msg_prepare(gpointer buf,\n\t\t\t
      \      guint32 nlmsg_type,\n\t\t\t       gboolean dump,\n\t\t\t       gpointer
      extra_header,\n\t\t\t       gsize extra_header_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mnl_attr_get_type
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:44,1
    - Dst: mnl_attr_type_valid
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - attr
    - data
    argTypes:
    - struct nlattr*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: fu_devlink_netlink_nlmsgerr_attr_cb
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 0
    functionsReached:
    - mnl_attr_get_type
    - mnl_attr_type_valid
    linkageType: ''
    returnType: gint
    signature: gint fu_devlink_netlink_nlmsgerr_attr_cb(const struct nlattr *attr,
      gpointer data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mnl_nlmsg_get_payload
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:62,1
    - Dst: mnl_nlmsg_get_payload_len
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:69,1
    - Dst: mnl_attr_parse
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:70,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:74,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:78,1
    - Dst: mnl_attr_get_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - nlh
    - error
    argTypes:
    - struct nlmsghdr*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 81
    functionName: fu_devlink_netlink_error_cb_extack
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 0
    functionsReached:
    - mnl_nlmsg_get_payload
    - g_set_error
    - mnl_attr_parse
    - mnl_attr_get_str
    - fwupd_strerror
    - mnl_nlmsg_get_payload_len
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_devlink_netlink_error_cb_extack(const struct nlmsghdr *nlh,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mnl_nlmsg_get_payload
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:87,1
    - Dst: mnl_nlmsg_get_payload_len
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:90,1
    - Dst: fu_devlink_netlink_error_cb_extack
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:94,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:96,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - nlh
    - data
    argTypes:
    - struct nlmsghdr*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 102
    functionName: fu_devlink_netlink_error_cb
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 0
    functionsReached:
    - mnl_nlmsg_get_payload
    - fu_devlink_netlink_error_cb_extack
    - g_set_error
    - fwupd_strerror
    - mnl_nlmsg_get_payload_len
    linkageType: ''
    returnType: gint
    signature: gint fu_devlink_netlink_error_cb(const struct nlmsghdr *nlh, gpointer
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nlh
    - data
    argTypes:
    - struct nlmsghdr*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: fu_devlink_netlink_noop_cb
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gint
    signature: gint fu_devlink_netlink_noop_cb(const struct nlmsghdr *nlh, gpointer
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nlh
    - data
    argTypes:
    - struct nlmsghdr*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: fu_devlink_netlink_done_cb
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gint
    signature: gint fu_devlink_netlink_done_cb(const struct nlmsghdr *nlh, gpointer
      data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FuDevlinkCbHelper*::user_cb
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nlh
    - data
    argTypes:
    - struct nlmsghdr*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: fu_devlink_netlink_data_cb
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 0
    functionsReached:
    - FuDevlinkCbHelper*::user_cb
    linkageType: ''
    returnType: gint
    signature: gint fu_devlink_netlink_data_cb(const struct nlmsghdr *nlh, gpointer
      data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mnl_socket_get_portid
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:154,1
    - Dst: mnl_cb_run2
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:157,1
    - Dst: MNL_ARRAY_SIZE
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - nlg
    - len
    - seq
    - cb
    - data
    - error
    argTypes:
    - FuDevlinkGenSocket*
    - gsize
    - guint32
    - mnl_cb_t
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 165
    functionName: fu_devlink_netlink_msg_cb_run
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 0
    functionsReached:
    - MNL_ARRAY_SIZE
    - mnl_socket_get_portid
    - mnl_cb_run2
    linkageType: ''
    returnType: gint
    signature: "gint fu_devlink_netlink_msg_cb_run(FuDevlinkGenSocket *nlg,\n\t\t\t
      \     gsize len,\n\t\t\t      guint32 seq,\n\t\t\t      mnl_cb_t cb,\n\t\t\t
      \     gpointer data,\n\t\t\t      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:176,1
    - Dst: fu_devlink_netlink_msg_cb_run
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - nlg
    - len
    - seq
    - cb
    - data
    - error
    argTypes:
    - FuDevlinkGenSocket*
    - gsize
    - guint32
    - mnl_cb_t
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 178
    functionName: fu_devlink_netlink_msg_run
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_devlink_netlink_msg_cb_run
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_devlink_netlink_msg_run(FuDevlinkGenSocket *nlg,\n\t\t\t
      \  gsize len,\n\t\t\t   guint32 seq,\n\t\t\t   mnl_cb_t cb,\n\t\t\t   gpointer
      data,\n\t\t\t   GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mnl_nlmsg_get_payload
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:184,1
    - Dst: g_strv_builder_add
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:190,1
    - Dst: g_strv_builder_add
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:193,1
    - Dst: g_strv_builder_add
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:196,1
    - Dst: g_strv_builder_add
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:199,1
    - Dst: mnl_attr_parse
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:206,1
    - Dst: g_strv_builder_add
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:210,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:212,1
    - Dst: mnl_attr_get_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:212,1
    - Dst: g_strv_builder_add
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:215,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:217,1
    - Dst: mnl_attr_get_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:217,1
    - Dst: g_strv_builder_add
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:220,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:222,1
    - Dst: mnl_attr_get_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:223,1
    - Dst: g_strv_builder_add
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:226,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:228,1
    - Dst: mnl_attr_get_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:229,1
    - Dst: g_strv_builder_add
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:232,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:234,1
    - Dst: mnl_attr_get_u8
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:235,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - nlh
    - data
    argTypes:
    - struct nlmsghdr*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 239
    functionName: fu_devlink_netlink_event_id_msg_cb
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 0
    functionsReached:
    - mnl_nlmsg_get_payload
    - mnl_attr_parse
    - mnl_attr_get_u8
    - g_strv_builder_add
    - g_strdup_printf
    - mnl_attr_get_str
    linkageType: ''
    returnType: gint
    signature: gint fu_devlink_netlink_event_id_msg_cb(const struct nlmsghdr *nlh,
      gpointer data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:244,1
    - Dst: g_strv_builder_new
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:244,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:245,1
    - Dst: mnl_cb_run
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:248,1
    - Dst: g_strv_builder_end
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:255,1
    - Dst: g_strjoinv
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - nlg
    - nlh
    argTypes:
    - FuDevlinkGenSocket*
    - struct nlmsghdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 259
    functionName: fu_devlink_netlink_get_event_id
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 0
    functionsReached:
    - mnl_cb_run
    - g_strv_builder_new
    - g_strjoinv
    - g_strv_builder_end
    - g_auto
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_devlink_netlink_get_event_id(FuDevlinkGenSocket *nlg, struct nlmsghdr *nlh)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fu_devlink_netlink_get_event_id
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:277,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:280,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:286,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:292,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:293,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:294,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:299,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:301,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:309,1
    - Dst: mnl_socket_recvfrom
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:312,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:316,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:320,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:324,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:324,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:326,1
    - Dst: fu_device_event_set_bytes
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:328,1
    - Dst: fu_devlink_netlink_msg_cb_run
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:332,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 5
    argNames:
    - nlg
    - nlh
    - cb
    - data
    - error
    argTypes:
    - FuDevlinkGenSocket*
    - struct nlmsghdr*
    - mnl_cb_t
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 262
    functionDepth: 4
    functionLinenumber: 262
    functionLinenumberEnd: 336
    functionName: fu_devlink_netlink_msg_recv_run
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 0
    functionsReached:
    - mnl_socket_recvfrom
    - g_bytes_new
    - fu_device_load_event
    - fu_devlink_netlink_get_event_id
    - g_bytes_get_data
    - g_set_error
    - fu_device_event_get_bytes
    - memcpy
    - g_strdup_printf
    - fu_device_save_event
    - fu_device_event_set_bytes
    - fu_devlink_netlink_msg_cb_run
    - fwupd_strerror
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_devlink_netlink_msg_recv_run(FuDevlinkGenSocket *nlg,\n\t\t\t\tstruct
      nlmsghdr *nlh,\n\t\t\t\tmnl_cb_t cb,\n\t\t\t\tgpointer data,\n\t\t\t\tGError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:348,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:349,1
    - Dst: mnl_socket_sendto
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:353,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:355,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:359,1
    - Dst: fu_devlink_netlink_msg_recv_run
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - nlg
    - nlh
    - cb
    - data
    - error
    argTypes:
    - FuDevlinkGenSocket*
    - struct nlmsghdr*
    - mnl_cb_t
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 339
    functionDepth: 5
    functionLinenumber: 339
    functionLinenumberEnd: 364
    functionName: fu_devlink_netlink_msg_send_recv
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    - mnl_socket_sendto
    - fu_devlink_netlink_msg_recv_run
    - fwupd_strerror
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_devlink_netlink_msg_send_recv(FuDevlinkGenSocket *nlg,\n\t\t\t\t
      struct nlmsghdr *nlh,\n\t\t\t\t mnl_cb_t cb,\n\t\t\t\t gpointer data,\n\t\t\t\t
      GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:369,1
    - Dst: fu_devlink_netlink_msg_send_recv
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nlg
    - nlh
    - error
    argTypes:
    - FuDevlinkGenSocket*
    - struct nlmsghdr*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 366
    functionDepth: 6
    functionLinenumber: 366
    functionLinenumberEnd: 371
    functionName: fu_devlink_netlink_msg_send
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_devlink_netlink_msg_send_recv
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_devlink_netlink_msg_send(FuDevlinkGenSocket *nlg, struct
      nlmsghdr *nlh, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mnl_attr_get_type
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:378,1
    - Dst: mnl_attr_type_valid
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - attr
    - data
    argTypes:
    - struct nlattr*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 385
    functionName: fu_devlink_netlink_genl_ctrl_attr_cb
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 0
    functionsReached:
    - mnl_attr_get_type
    - mnl_attr_type_valid
    linkageType: ''
    returnType: gint
    signature: gint fu_devlink_netlink_genl_ctrl_attr_cb(const struct nlattr *attr,
      gpointer data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mnl_attr_get_type
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:391,1
    - Dst: mnl_attr_type_valid
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - attr
    - data
    argTypes:
    - struct nlattr*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 398
    functionName: fu_devlink_netlink_genl_mcast_group_attr_cb
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 0
    functionsReached:
    - mnl_attr_get_type
    - mnl_attr_type_valid
    linkageType: ''
    returnType: gint
    signature: gint fu_devlink_netlink_genl_mcast_group_attr_cb(const struct nlattr
      *attr, gpointer data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mnl_nlmsg_get_payload
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:406,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:410,1
    - Dst: mnl_attr_parse
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:412,1
    - Dst: mnl_attr_get_u16
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:415,1
    - Dst: mnl_attr_parse_nested
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:424,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:430,1
    - Dst: mnl_attr_get_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:430,1
    - Dst: mnl_attr_get_u32
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:432,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - nlh
    - data
    argTypes:
    - struct nlmsghdr*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 438
    functionName: fu_devlink_netlink_fu_devlink_netlink_genl_ensure_family_cb
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 0
    functionsReached:
    - mnl_nlmsg_get_payload
    - g_return_val_if_fail
    - g_strcmp0
    - mnl_attr_get_u32
    - mnl_attr_parse
    - mnl_attr_parse_nested
    - mnl_attr_get_str
    - mnl_attr_get_u16
    linkageType: ''
    returnType: gint
    signature: "gint fu_devlink_netlink_fu_devlink_netlink_genl_ensure_family_cb(const
      struct nlmsghdr *nlh,\n\t\t\t\t\t\t\t    gpointer data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mnl_attr_parse_nested
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:424,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:430,1
    - Dst: mnl_attr_get_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:430,1
    - Dst: mnl_attr_get_u32
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:432,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 435
    functionName: mnl_attr_for_each_nested
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 0
    functionsReached:
    - mnl_attr_parse_nested
    - g_strcmp0
    - mnl_attr_get_u32
    - mnl_attr_get_str
    linkageType: ''
    returnType: void
    signature: void mnl_attr_for_each_nested(mcgrp, tb[CTRL_ATTR_MCAST_GROUPS])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:452,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:453,1
    - Dst: fu_devlink_netlink_msg_prepare
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:455,1
    - Dst: mnl_attr_put_strz
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:456,1
    - Dst: fu_devlink_netlink_msg_send_recv
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - nlg
    - family_name
    - error
    argTypes:
    - FuDevlinkGenSocket*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 441
    functionDepth: 6
    functionLinenumber: 441
    functionLinenumberEnd: 463
    functionName: fu_devlink_netlink_genl_ensure_family
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - mnl_attr_put_strz
    - fu_devlink_netlink_msg_prepare
    - fu_devlink_netlink_msg_send_recv
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_devlink_netlink_genl_ensure_family(FuDevlinkGenSocket
      *nlg,\n\t\t\t\t      const gchar *family_name,\n\t\t\t\t      GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:470,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:474,1
    - Dst: FU_IS_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:474,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:477,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:480,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:483,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:484,1
    - Dst: GLIB_CHECK_VERSION
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:487,1
    - Dst: g_unix_open_pipe
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:492,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:493,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:501,1
    - Dst: mnl_socket_open
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:506,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:508,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:512,1
    - Dst: mnl_socket_setsockopt
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:516,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:518,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:522,1
    - Dst: mnl_socket_setsockopt
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:526,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:528,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:532,1
    - Dst: mnl_socket_bind
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:536,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:538,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:542,1
    - Dst: fu_devlink_netlink_genl_ensure_family
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:547,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:548,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:553,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:553,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:557,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 467
    functionDepth: 7
    functionLinenumber: 467
    functionLinenumberEnd: 558
    functionName: fu_devlink_netlink_gen_socket_open
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 4
    functionsReached:
    - fu_context_has_flag
    - mnl_socket_setsockopt
    - fu_device_get_context
    - g_object_ref
    - mnl_socket_bind
    - g_new0
    - fu_devlink_netlink_genl_ensure_family
    - g_prefix_error_literal
    - fu_device_has_flag
    - g_unix_open_pipe
    - g_malloc0
    - GLIB_CHECK_VERSION
    - g_return_val_if_fail
    - g_set_error
    - FU_IS_DEVICE
    - g_steal_pointer
    - mnl_socket_open
    - fwupd_strerror
    - g_autoptr
    linkageType: ''
    returnType: FuDevlinkGenSocket
    signature: 'FuDevlinkGenSocket *

      fu_devlink_netlink_gen_socket_open(FuDevice *device, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mnl_socket_close
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:567,1
    - Dst: g_close
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:570,1
    - Dst: g_close
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:572,1
    - Dst: g_free
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:573,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:575,1
    - Dst: g_free
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:576,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - nlg
    argTypes:
    - FuDevlinkGenSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 577
    functionName: fu_devlink_netlink_gen_socket_close
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 2
    functionsReached:
    - g_object_unref
    - g_close
    - g_free
    - mnl_socket_close
    linkageType: ''
    returnType: void
    signature: void fu_devlink_netlink_gen_socket_close(FuDevlinkGenSocket *nlg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:582,1
    - Dst: mnl_socket_get_fd
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nlg
    argTypes:
    - FuDevlinkGenSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 588
    functionName: fu_devlink_netlink_gen_socket_get_fd
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - mnl_socket_get_fd
    linkageType: ''
    returnType: gint
    signature: gint fu_devlink_netlink_gen_socket_get_fd(FuDevlinkGenSocket *nlg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nlg
    argTypes:
    - FuDevlinkGenSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 595
    functionName: fu_devlink_netlink_gen_socket_get_buf
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_devlink_netlink_gen_socket_get_buf(FuDevlinkGenSocket *nlg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:606,1
    - Dst: fu_devlink_netlink_msg_prepare
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nlg
    - cmd
    - dump
    argTypes:
    - FuDevlinkGenSocket*
    - guint8
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 609
    functionName: fu_devlink_netlink_cmd_prepare
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 6
    functionsReached:
    - g_return_val_if_fail
    - fu_devlink_netlink_msg_prepare
    linkageType: ''
    returnType: struct nlmsghdr
    signature: 'struct nlmsghdr *

      fu_devlink_netlink_cmd_prepare(FuDevlinkGenSocket *nlg, guint8 cmd, gboolean
      dump)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:617,1
    - Dst: mnl_socket_setsockopt
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:623,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:628,1
    - Dst: fwupd_strerror
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - nlg
    - error
    argTypes:
    - FuDevlinkGenSocket*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 638
    functionName: fu_devlink_netlink_mcast_group_subscribe
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fwupd_strerror
    - mnl_socket_setsockopt
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_devlink_netlink_mcast_group_subscribe(FuDevlinkGenSocket
      *nlg, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mnl_attr_get_type
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:645,1
    - Dst: mnl_attr_type_valid
      Src: /src/fwupd/plugins/devlink/fu-devlink-netlink.c:648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - attr
    - data
    argTypes:
    - struct nlattr*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 654
    functionName: fu_devlink_netlink_attr_cb
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    functionUses: 0
    functionsReached:
    - mnl_attr_get_type
    - mnl_attr_type_valid
    linkageType: ''
    returnType: gint
    signature: gint fu_devlink_netlink_attr_cb(const struct nlattr *attr, gpointer
      data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:24,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:27,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:28,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:32,1
    - Dst: fu_io_channel_write_raw
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:36,1
    - Dst: strlen
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - path
    - value
    - error
    argTypes:
    - gchar*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 42
    functionName: fu_devlink_file_write_helper
    functionSourceFile: /src/fwupd/plugins/devlink/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_io_channel_new_file
    - g_set_error
    - fu_io_channel_write_raw
    - g_file_test
    - g_strdup_printf
    - strlen
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_devlink_file_write_helper(const gchar *path, const guint
      value, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_path_store_build_filename
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:52,1
    - Dst: fu_devlink_file_write_helper
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - pstore
    - filename
    - value
    - error
    argTypes:
    - FuPathStore*
    - gchar*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 62
    functionName: fu_devlink_netdevsim_sysfs_write
    functionSourceFile: /src/fwupd/plugins/devlink/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_devlink_file_write_helper
    - fu_path_store_build_filename
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_devlink_netdevsim_sysfs_write(FuPathStore *pstore,\n\t\t\t\t
      const gchar *filename,\n\t\t\t\t const guint value,\n\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:71,1
    - Dst: fu_path_store_build_filename
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:74,1
    - Dst: fu_devlink_file_write_helper
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - pstore
    - device_id
    - filename
    - value
    - error
    argTypes:
    - FuPathStore*
    - guint
    - gchar*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 84
    functionName: fu_devlink_netdevsim_debugfs_write
    functionSourceFile: /src/fwupd/plugins/devlink/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_devlink_file_write_helper
    - g_strdup_printf
    - fu_path_store_build_filename
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_devlink_netdevsim_debugfs_write(FuPathStore *pstore,\n\t\t\t\t
      \  const guint device_id,\n\t\t\t\t   const gchar *filename,\n\t\t\t\t   const
      guint value,\n\t\t\t\t   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:89,1
    - Dst: fu_devlink_netdevsim_sysfs_write
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:93,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:97,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:103,1
    - Dst: g_free
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ndsim
    argTypes:
    - FuDevlinkNetdevsim*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: fu_devlink_netdevsim_cleanup
    functionSourceFile: /src/fwupd/plugins/devlink/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_object_unref
    - g_free
    - fu_devlink_netdevsim_sysfs_write
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_devlink_netdevsim_cleanup(FuDevlinkNetdevsim *ndsim)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:114,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:114,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:115,1
    - Dst: fu_devlink_netdevsim_sysfs_write
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:118,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:122,1
    - Dst: fu_devlink_netdevsim_debugfs_write
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:124,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:129,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:130,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - pstore
    - device_id
    - error
    argTypes:
    - FuPathStore*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 111
    functionDepth: 4
    functionLinenumber: 111
    functionLinenumberEnd: 134
    functionName: fu_devlink_netdevsim_new
    functionSourceFile: /src/fwupd/plugins/devlink/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_debug
    - g_steal_pointer
    - g_clear_error
    - g_object_ref
    - fu_devlink_netdevsim_sysfs_write
    - fu_devlink_netdevsim_debugfs_write
    - g_autoptr
    linkageType: ''
    returnType: FuDevlinkNetdevsim
    signature: 'FuDevlinkNetdevsim *

      fu_devlink_netdevsim_new(FuPathStore *pstore, guint device_id, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:144,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:145,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:146,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:147,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:147,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:148,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:148,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:149,1
    - Dst: fu_path_store_new
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:150,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:150,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:151,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:152,1
    - Dst: fu_path_store_load_defaults
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:155,1
    - Dst: fu_devlink_netdevsim_new
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:158,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:161,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:162,1
    - Dst: fu_devlink_device_new
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:167,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:168,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:171,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:172,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:175,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:177,1
    - Dst: fu_devlink_component_new
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:180,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:181,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:184,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:184,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:187,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:187,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:190,1
    - Dst: strlen
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:190,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:191,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:192,1
    - Dst: fu_device_prepare
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:195,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:195,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:199,1
    - Dst: g_test_message
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:202,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:204,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:204,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:209,1
    - Dst: g_test_message
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:211,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:212,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:212,1
    - Dst: fu_device_cleanup
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:215,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:215,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 139
    functionDepth: 5
    functionLinenumber: 139
    functionLinenumberEnd: 220
    functionName: fu_devlink_plugin_flash_func
    functionSourceFile: /src/fwupd/plugins/devlink/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_devlink_device_new
    - fu_device_add_child
    - fu_device_set_version
    - g_bytes_new
    - fu_firmware_set_version
    - g_assert_cmpuint
    - fu_progress_get_percentage
    - g_assert_nonnull
    - fu_firmware_set_bytes
    - g_strdup_printf
    - fu_progress_new
    - fu_device_prepare
    - fu_device_probe
    - fu_device_cleanup
    - fu_devlink_component_new
    - g_test_message
    - fu_firmware_new
    - FU_DEVICE
    - fu_device_write_firmware
    - fu_device_open
    - fu_devlink_netdevsim_new
    - strlen
    - g_test_skip
    - g_assert_true
    - g_autoptr
    - fu_path_store_load_defaults
    - fu_path_store_new
    linkageType: ''
    returnType: void
    signature: void fu_devlink_plugin_flash_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:225,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:226,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/devlink/fu-self-test.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: main
    functionSourceFile: /src/fwupd/plugins/devlink/fu-self-test.c
    functionUses: 5
    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: FU_DEVLINK_COMPONENT
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:36,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:39,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:39,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:41,1
    - Dst: fu_devlink_device_write_firmware_component
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:44,1
    - Dst: FU_DEVLINK_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:44,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 51
    functionName: fu_devlink_component_write_firmware
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-component.c
    functionUses: 0
    functionsReached:
    - fu_device_get_logical_id
    - fu_devlink_device_write_firmware_component
    - fu_device_has_private_flag
    - FU_DEVLINK_COMPONENT
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_DEVLINK_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_devlink_component_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_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:57,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - keys
    argTypes:
    - FuDevlinkComponent*
    - gchar**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: fu_devlink_component_add_instance_keys
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-component.c
    functionUses: 1
    functionsReached:
    - g_ptr_array_new_with_free_func
    - g_ptr_array_add
    linkageType: ''
    returnType: void
    signature: void fu_devlink_component_add_instance_keys(FuDevlinkComponent *self,
      gchar **keys)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_COMPONENT
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:67,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:68,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:71,1
    - Dst: g_ascii_strup
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:74,1
    - Dst: fu_devlink_device_get_bus_name
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:74,1
    - Dst: FU_DEVLINK_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:74,1
    - Dst: g_strv_builder_new
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:76,1
    - Dst: fu_device_get_instance_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:77,1
    - Dst: fu_device_get_instance_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:78,1
    - Dst: g_strv_builder_add
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:79,1
    - Dst: g_strv_builder_add
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:80,1
    - Dst: g_strv_builder_add
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:82,1
    - Dst: g_strv_builder_end
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:83,1
    - Dst: fu_device_build_instance_id_strv
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:86,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:97,1
    - Dst: g_strv_builder_new
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:97,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:98,1
    - Dst: g_strv_builder_add
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:102,1
    - Dst: g_strv_builder_add
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:104,1
    - Dst: g_strv_builder_end
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:105,1
    - Dst: fu_device_build_instance_id_strv
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:106,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 61
    functionDepth: 6
    functionLinenumber: 61
    functionLinenumberEnd: 110
    functionName: fu_devlink_component_probe
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-component.c
    functionUses: 0
    functionsReached:
    - fu_devlink_device_get_bus_name
    - g_strv_builder_end
    - g_strv_builder_new
    - g_strv_builder_add
    - fu_device_build_instance_id_strv
    - FU_DEVLINK_COMPONENT
    - g_ascii_strup
    - fu_device_get_instance_str
    - fu_device_get_proxy
    - g_auto
    - FU_DEVLINK_DEVICE
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_devlink_component_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:115,1
    - Dst: fu_device_reload
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: fu_devlink_component_reload
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-component.c
    functionUses: 0
    functionsReached:
    - fu_device_reload
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_devlink_component_reload(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:124,1
    - Dst: fu_device_activate
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: fu_devlink_component_activate
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-component.c
    functionUses: 0
    functionsReached:
    - fu_device_activate
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_devlink_component_activate(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:136,1
    - Dst: fu_device_prepare
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 140
    functionName: fu_devlink_component_prepare
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-component.c
    functionUses: 0
    functionsReached:
    - fu_device_prepare
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_devlink_component_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_device_get_proxy
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:148,1
    - Dst: fu_device_cleanup
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 152
    functionName: fu_devlink_component_cleanup
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-component.c
    functionUses: 0
    functionsReached:
    - fu_device_cleanup
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_devlink_component_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/devlink/fu-devlink-component.c:157,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:158,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:159,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:160,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:161,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:162,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 164
    functionName: fu_devlink_component_set_progress
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-component.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_devlink_component_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:169,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:171,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:174,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:175,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:175,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - proxy
    - logical_id
    argTypes:
    - FuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: fu_devlink_component_new
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-component.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_device_add_instance_str
    - g_steal_pointer
    - FU_DEVICE
    - g_object_new
    - g_autoptr
    linkageType: ''
    returnType: FuDevlinkComponent
    signature: 'FuDevlinkComponent *

      fu_devlink_component_new(FuDevice *proxy, const gchar *logical_id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:182,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:182,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:183,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:183,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:184,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:184,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:185,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:185,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:186,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:186,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:187,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:187,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:188,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:188,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:189,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:189,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:190,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:190,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:191,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:191,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:192,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:192,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:193,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:193,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:194,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevlinkComponent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 179
    functionDepth: 6
    functionLinenumber: 179
    functionLinenumberEnd: 196
    functionName: fu_devlink_component_init
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-component.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_devlink_component_init(FuDevlinkComponent *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVLINK_COMPONENT
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:201,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:204,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 207
    functionName: fu_devlink_component_finalize
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-component.c
    functionUses: 0
    functionsReached:
    - FU_DEVLINK_COMPONENT
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    linkageType: ''
    returnType: void
    signature: void fu_devlink_component_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:212,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/devlink/fu-devlink-component.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDevlinkComponentClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 223
    functionName: fu_devlink_component_class_init
    functionSourceFile: /src/fwupd/plugins/devlink/fu-devlink-component.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_devlink_component_class_init(FuDevlinkComponentClass *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: 4
    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_safe
    - fu_mediatek_scaler_version_to_string
    - fu_strsafe
    - fu_firmware_set_version
    - g_info
    - fu_input_stream_read_u32
    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:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c:75,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c:75,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c:76,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMediatekScalerFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: fu_mediatek_scaler_firmware_init
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMediatekScalerFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    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: 2
    BranchProfiles: []
    Callsites:
    - 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:72,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:73,1
    - Dst: fu_xor8
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:76,1
    - Dst: fu_byte_array_append_uint8
      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
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:85,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:85,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:85,1
    - Dst: fu_i2c_device_write
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - self
    - st_req
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - FuStructDdcCmd*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 60
    functionDepth: 5
    functionLinenumber: 60
    functionLinenumberEnd: 89
    functionName: fu_mediatek_scaler_device_ddc_write
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_i2c_device_write
    - fu_xor8
    - fu_device_get_proxy
    - FU_I2C_DEVICE
    - fu_byte_array_append_uint8
    - fu_dump_raw
    - FU_DEVICE
    - g_byte_array_new
    - g_byte_array_append
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mediatek_scaler_device_ddc_write(FuMediatekScalerDevice
      *self,\n\t\t\t\t    FuStructDdcCmd *st_req,\n\t\t\t\t    GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:101,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:101,1
    - Dst: fu_mediatek_scaler_device_ddc_write
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:104,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:108,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:111,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:111,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:111,1
    - Dst: fu_i2c_device_read
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:114,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:118,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:122,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:133,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:145,1
    - Dst: fu_xor8_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:156,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:158,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:161,1
    - Dst: fu_byte_array_append_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:171,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:175,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:176,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - self
    - st_req
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - FuStructDdcCmd*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 91
    functionDepth: 6
    functionLinenumber: 91
    functionLinenumberEnd: 177
    functionName: fu_mediatek_scaler_device_ddc_read
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_xor8_safe
    - fu_mediatek_scaler_device_ddc_write
    - g_set_error
    - fu_device_sleep
    - fu_device_get_proxy
    - g_steal_pointer
    - fu_byte_array_append_safe
    - fu_dump_raw
    - FU_DEVICE
    - g_byte_array_new
    - fu_memread_uint8_safe
    - fu_i2c_device_read
    - FU_I2C_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_mediatek_scaler_device_ddc_read(FuMediatekScalerDevice
      *self,\n\t\t\t\t   FuStructDdcCmd *st_req,\n\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:184,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:184,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:185,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:187,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:188,1
    - Dst: fu_mediatek_scaler_device_ddc_write
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:189,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:190,1
    - Dst: fu_ddcci_priority_to_string
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:194,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:199,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - self
    - priority
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - FuDdcciPriority
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 179
    functionDepth: 6
    functionLinenumber: 179
    functionLinenumberEnd: 201
    functionName: fu_mediatek_scaler_device_set_ddc_priority
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_mediatek_scaler_device_ddc_write
    - g_set_error
    - fu_device_sleep
    - fu_struct_ddc_cmd_new
    - fu_byte_array_append_uint8
    - FU_DEVICE
    - fu_struct_ddc_cmd_set_vcp_code
    - g_autoptr
    - fu_ddcci_priority_to_string
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:207,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:207,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:208,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:209,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:214,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:215,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:216,1
    - Dst: fu_mediatek_scaler_device_ddc_read
      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:219,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:226,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:231,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:240,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:240,1
    - Dst: g_info
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:243,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:244,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:244,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:245,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 203
    functionDepth: 7
    functionLinenumber: 203
    functionLinenumberEnd: 247
    functionName: fu_mediatek_scaler_device_display_is_connected
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_device_file
    - g_info
    - g_set_error
    - fu_mediatek_scaler_device_ddc_read
    - fu_device_get_proxy
    - fu_struct_ddc_cmd_new
    - fu_byte_array_append_uint8
    - FU_DEVICE
    - fu_memread_uint8_safe
    - fu_struct_ddc_cmd_set_vcp_code
    - FU_UDEV_DEVICE
    - g_autoptr
    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:254,1
    - Dst: fu_mediatek_scaler_device_display_is_connected
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 249
    functionDepth: 8
    functionLinenumber: 249
    functionLinenumberEnd: 256
    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_display_is_connected
    - FU_MEDIATEK_SCALER_DEVICE
    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: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:261,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:261,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:262,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:266,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:267,1
    - Dst: fu_mediatek_scaler_device_ddc_read
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:268,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:271,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:273,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:275,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:277,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:279,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 258
    functionDepth: 7
    functionLinenumber: 258
    functionLinenumberEnd: 280
    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_struct_ddc_cmd_new
    - fu_byte_array_append_uint8
    - g_strdup_printf
    - fu_memread_uint8_safe
    - fu_struct_ddc_cmd_set_vcp_code
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_mediatek_scaler_device_get_hardware_version(FuMediatekScalerDevice *self,
      GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:286,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:287,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:287,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:290,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:291,1
    - Dst: fu_mediatek_scaler_device_ddc_read
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:292,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:295,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:302,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 282
    functionDepth: 7
    functionLinenumber: 282
    functionLinenumberEnd: 304
    functionName: fu_mediatek_scaler_device_ensure_firmware_version
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    - fu_device_set_version_raw
    - fu_mediatek_scaler_device_ddc_read
    - fu_struct_ddc_cmd_new
    - fu_byte_array_append_uint8
    - FU_DEVICE
    - fu_struct_ddc_cmd_set_vcp_code
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_ensure_firmware_version(FuMediatekScalerDevice
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_MEDIATEK_SCALER_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:309,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:313,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:317,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:317,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:317,1
    - Dst: fu_i2c_device_set_address
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:320,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:324,1
    - Dst: fu_mediatek_scaler_device_set_ddc_priority
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:325,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 306
    functionDepth: 7
    functionLinenumber: 306
    functionLinenumberEnd: 331
    functionName: fu_mediatek_scaler_device_open
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_raw
    - FU_MEDIATEK_SCALER_DEVICE
    - FU_I2C_DEVICE
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_DEVICE_CLASS
    - fu_mediatek_scaler_device_set_ddc_priority
    - fu_i2c_device_set_address
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_open(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_MEDIATEK_SCALER_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:336,1
    - Dst: FU_I2C_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:340,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:340,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:340,1
    - Dst: fu_i2c_device_set_address
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:343,1
    - Dst: fu_mediatek_scaler_device_set_ddc_priority
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:347,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 333
    functionDepth: 7
    functionLinenumber: 333
    functionLinenumberEnd: 352
    functionName: fu_mediatek_scaler_device_close
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - FU_MEDIATEK_SCALER_DEVICE
    - FU_I2C_DEVICE
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_DEVICE_CLASS
    - fu_mediatek_scaler_device_set_ddc_priority
    - fu_i2c_device_set_address
    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:357,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:357,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:358,1
    - Dst: fu_struct_ddc_cmd_set_opcode
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:361,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:362,1
    - Dst: fu_mediatek_scaler_device_ddc_read
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:363,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:366,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:376,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:385,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 354
    functionDepth: 7
    functionLinenumber: 354
    functionLinenumberEnd: 387
    functionName: fu_mediatek_scaler_device_verify_controller_type
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    - g_set_error
    - fu_mediatek_scaler_device_ddc_read
    - fu_device_sleep
    - fu_struct_ddc_cmd_new
    - FU_DEVICE
    - fu_struct_ddc_cmd_set_opcode
    - fu_struct_ddc_cmd_set_vcp_code
    - g_autoptr
    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:392,1
    - Dst: fu_mediatek_scaler_device_verify_controller_type
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:396,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:397,1
    - Dst: fu_mediatek_scaler_device_display_is_connected
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:402,1
    - Dst: fu_mediatek_scaler_device_set_ddc_priority
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:406,1
    - Dst: fu_mediatek_scaler_device_get_hardware_version
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:410,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:413,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:414,1
    - Dst: fu_mediatek_scaler_device_ensure_firmware_version
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:418,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 389
    functionDepth: 8
    functionLinenumber: 389
    functionLinenumberEnd: 423
    functionName: fu_mediatek_scaler_device_setup
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_mediatek_scaler_device_verify_controller_type
    - FU_MEDIATEK_SCALER_DEVICE
    - fu_mediatek_scaler_device_get_hardware_version
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - g_prefix_error_literal
    - fu_mediatek_scaler_device_display_is_connected
    - fu_mediatek_scaler_device_ensure_firmware_version
    - fu_mediatek_scaler_device_set_ddc_priority
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:428,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:428,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:429,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:430,1
    - Dst: fu_mediatek_scaler_device_ddc_write
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - self
    - fw_sz
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 425
    functionDepth: 6
    functionLinenumber: 425
    functionLinenumberEnd: 432
    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_struct_ddc_cmd_new
    - fu_byte_array_append_uint32
    - fu_struct_ddc_cmd_set_vcp_code
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_set_recv_info(FuMediatekScalerDevice
      *self, gsize fw_sz, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:439,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:439,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:440,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:442,1
    - Dst: fu_mediatek_scaler_device_ddc_read
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:443,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - ack_sz
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 434
    functionDepth: 7
    functionLinenumber: 434
    functionLinenumberEnd: 449
    functionName: fu_mediatek_scaler_device_get_data_ack_size
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    - fu_mediatek_scaler_device_ddc_read
    - fu_struct_ddc_cmd_new
    - fu_struct_ddc_cmd_set_vcp_code
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mediatek_scaler_device_get_data_ack_size(FuMediatekScalerDevice
      *self,\n\t\t\t\t\t    guint32 *ack_sz,\n\t\t\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_MEDIATEK_SCALER_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:454,1
    - Dst: fu_mediatek_scaler_device_set_recv_info
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:459,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:463,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:463,1
    - Dst: fu_mediatek_scaler_device_get_data_ack_size
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:466,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:469,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 451
    functionDepth: 8
    functionLinenumber: 451
    functionLinenumberEnd: 479
    functionName: fu_mediatek_scaler_device_prepare_update_cb
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - FU_MEDIATEK_SCALER_DEVICE
    - g_set_error
    - fu_device_sleep
    - fu_mediatek_scaler_device_get_data_ack_size
    - FU_DEVICE
    - fu_mediatek_scaler_device_set_recv_info
    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:484,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:484,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - fw_sz
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 494
    functionName: fu_mediatek_scaler_device_prepare_update
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_prefix_error_literal
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_prepare_update(FuMediatekScalerDevice
      *self, gsize fw_sz, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:499,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:500,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:500,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:503,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:507,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:508,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:509,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:509,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:511,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:514,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:515,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:516,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:517,1
    - Dst: fu_mediatek_scaler_device_ddc_write
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:518,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:519,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:522,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:522,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 496
    functionDepth: 6
    functionLinenumber: 496
    functionLinenumberEnd: 525
    functionName: fu_mediatek_scaler_device_set_data
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_mediatek_scaler_device_ddc_write
    - fu_chunk_array_new_from_bytes
    - fu_device_sleep
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_struct_ddc_cmd_new
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_struct_ddc_cmd_set_vcp_code
    - fu_chunk_get_bytes
    - fu_chunk_array_length
    - g_autoptr
    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:533,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:533,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:534,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:536,1
    - Dst: fu_mediatek_scaler_device_ddc_read
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:537,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:540,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:542,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - chksum
    - pktcnt
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - guint16*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 527
    functionDepth: 7
    functionLinenumber: 527
    functionLinenumberEnd: 545
    functionName: fu_mediatek_scaler_device_get_staged_data
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    - fu_mediatek_scaler_device_ddc_read
    - fu_struct_ddc_cmd_new
    - fu_struct_ddc_cmd_set_vcp_code
    - g_autoptr
    - fu_memread_uint16_safe
    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:557,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:558,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:564,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:574,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:574,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:574,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:576,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: 586
      start: 547
    functionDepth: 8
    functionLinenumber: 547
    functionLinenumberEnd: 586
    functionName: fu_mediatek_scaler_device_check_sent_info
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_sum16
    - g_set_error
    - fu_chunk_get_data_sz
    - g_prefix_error_literal
    - fu_chunk_get_data
    - fu_mediatek_scaler_device_get_staged_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:591,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:591,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:592,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:593,1
    - Dst: fu_mediatek_scaler_device_ddc_write
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - chksum
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 588
    functionDepth: 6
    functionLinenumber: 588
    functionLinenumberEnd: 595
    functionName: fu_mediatek_scaler_device_run_isp
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint16
    - fu_mediatek_scaler_device_ddc_write
    - fu_struct_ddc_cmd_new
    - fu_struct_ddc_cmd_set_vcp_code
    - 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:604,1
    - Dst: fu_mediatek_scaler_device_run_isp
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:607,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:608,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 597
    functionDepth: 7
    functionLinenumber: 597
    functionLinenumberEnd: 612
    functionName: fu_mediatek_scaler_device_commit_firmware
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_compute_sum16
    - g_prefix_error_literal
    - fu_mediatek_scaler_device_run_isp
    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:617,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:617,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:618,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:621,1
    - Dst: fu_mediatek_scaler_device_ddc_write
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:622,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:623,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:624,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:625,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 614
    functionDepth: 6
    functionLinenumber: 614
    functionLinenumberEnd: 631
    functionName: fu_mediatek_scaler_device_isp_reboot
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_mediatek_scaler_device_ddc_write
    - g_steal_pointer
    - fu_struct_ddc_cmd_new
    - g_error_matches
    - fu_struct_ddc_cmd_set_vcp_code
    - g_autoptr
    - g_propagate_prefixed_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_isp_reboot(FuMediatekScalerDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:638,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:638,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:639,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:641,1
    - Dst: fu_mediatek_scaler_device_ddc_read
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:643,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - isp_status
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 633
    functionDepth: 7
    functionLinenumber: 633
    functionLinenumberEnd: 651
    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_struct_ddc_cmd_new
    - fu_memread_uint8_safe
    - fu_struct_ddc_cmd_set_vcp_code
    - 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:656,1
    - Dst: fu_mediatek_scaler_device_get_isp_status
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:659,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:663,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 653
    functionDepth: 8
    functionLinenumber: 653
    functionLinenumberEnd: 673
    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_get_isp_status
    - FU_MEDIATEK_SCALER_DEVICE
    - 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:678,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:678,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:684,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:691,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:691,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 675
    functionDepth: 3
    functionLinenumber: 675
    functionLinenumberEnd: 700
    functionName: fu_mediatek_scaler_device_verify
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_prefix_error
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_verify(FuMediatekScalerDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:705,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - chk
    argTypes:
    - FuChunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 710
    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:717,1
    - Dst: fu_struct_ddc_cmd_new
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:717,1
    - Dst: fu_struct_ddc_cmd_set_vcp_code
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:718,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:719,1
    - Dst: fu_mediatek_scaler_device_ddc_write
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - sent_sz
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 712
    functionDepth: 6
    functionLinenumber: 712
    functionLinenumberEnd: 721
    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_new
    - fu_byte_array_append_uint32
    - fu_struct_ddc_cmd_set_vcp_code
    - g_autoptr
    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:726,1
    - Dst: fu_mediatek_scaler_device_chunk_data_is_blank
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:730,1
    - Dst: fu_mediatek_scaler_device_set_data_fast_forward
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:732,1
    - Dst: fu_mediatek_scaler_device_set_data
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:736,1
    - Dst: fu_mediatek_scaler_device_check_sent_info
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:741,1
    - Dst: fu_mediatek_scaler_device_set_data_fast_forward
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:743,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:745,1
    - Dst: fu_mediatek_scaler_device_set_data_fast_forward
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:751,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 723
    functionDepth: 9
    functionLinenumber: 723
    functionLinenumberEnd: 752
    functionName: fu_mediatek_scaler_device_write_chunk_cb
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - FU_MEDIATEK_SCALER_DEVICE
    - fu_chunk_get_data_sz
    - fu_mediatek_scaler_device_check_sent_info
    - fu_mediatek_scaler_device_set_data_fast_forward
    - fu_mediatek_scaler_device_set_data
    - fu_mediatek_scaler_device_chunk_data_is_blank
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mediatek_scaler_device_write_chunk_cb(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:761,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:763,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:772,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:773,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:773,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:775,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:777,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:780,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:785,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:790,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:790,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:796,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:801,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:803,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - self
    - stream
    - progress
    - error
    argTypes:
    - FuMediatekScalerDevice*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 754
    functionDepth: 4
    functionLinenumber: 754
    functionLinenumberEnd: 807
    functionName: fu_mediatek_scaler_device_write_firmware_impl
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error_literal
    - fu_progress_step_done
    - fu_device_retry_full
    - FU_DEVICE
    - fu_chunk_array_new_from_stream
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:816,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:818,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:821,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:822,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:823,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:824,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:825,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:826,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:829,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:834,1
    - Dst: fu_mediatek_scaler_device_prepare_update
      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_write_firmware_impl
      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_mediatek_scaler_device_commit_firmware
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:846,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:848,1
    - Dst: fu_mediatek_scaler_device_verify
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:851,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:853,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:856,1
    - Dst: fu_mediatek_scaler_device_isp_reboot
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:858,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:862,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:868,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:874,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: 878
      start: 809
    functionDepth: 8
    functionLinenumber: 809
    functionLinenumberEnd: 878
    functionName: fu_mediatek_scaler_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_mediatek_scaler_device_verify
    - FU_MEDIATEK_SCALER_DEVICE
    - fu_progress_add_step
    - fu_firmware_get_stream
    - fu_input_stream_size
    - fu_mediatek_scaler_device_commit_firmware
    - fu_mediatek_scaler_device_isp_reboot
    - fu_progress_step_done
    - g_prefix_error
    - fu_device_has_private_flag
    - fu_device_retry_full
    - fu_mediatek_scaler_device_write_firmware_impl
    - g_autoptr
    - fu_mediatek_scaler_device_prepare_update
    - fu_progress_set_id
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_mediatek_scaler_version_to_string
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 884
    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 *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:889,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:890,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:891,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:892,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:893,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 886
    functionDepth: 3
    functionLinenumber: 886
    functionLinenumberEnd: 895
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:900,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:900,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:901,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:901,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:902,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:902,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:903,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:903,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:904,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:904,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:905,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:905,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:906,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:906,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:907,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c:907,1
    - Dst: fu_device_add_protocol
      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_name
      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_icon
      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_set_firmware_size_max
      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_set_firmware_gtype
      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_set_proxy_gtype
      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_register_private_flag
      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_set_priority
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMediatekScalerDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 897
    functionDepth: 6
    functionLinenumber: 897
    functionLinenumberEnd: 916
    functionName: fu_mediatek_scaler_device_init
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_firmware_size_max
    - fu_device_add_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_priority
    - fu_device_set_vendor
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMediatekScalerDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 929
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: fu_mediatek_scaler_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/mediatek-scaler/fu-mediatek-scaler-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_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:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMediatekScalerPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    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
    - fu_plugin_add_rule
    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_udev_subsystem
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:29,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: fu_intel_usb4_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:38,1
    - Dst: fu_device_get_instance_ids
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:39,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:41,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:41,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:48,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:50,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:51,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:52,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:55,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 65
    functionName: fu_intel_usb4_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_has_instance_id
    - g_strcmp0
    - fu_plugin_get_devices
    - fu_device_get_plugin
    - fu_device_inhibit
    - g_str_has_prefix
    - fu_device_get_instance_ids
    - g_ptr_array_index
    - fu_device_remove_private_flag
    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:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelUsb4PluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    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: 4
    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:
    - fu_struct_intel_usb4_mbox_get_status
    - g_set_error
    - g_prefix_error
    - fu_struct_intel_usb4_mbox_get_opcode
    - FU_USB_DEVICE
    - g_autoptr
    - fu_struct_intel_usb4_mbox_parse
    - fu_usb_device_control_transfer
    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: 4
    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:
    - FU_USB_DEVICE
    - g_prefix_error
    - fu_usb_device_control_transfer
    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_literal
      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: 5
    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:
    - fu_intel_usb4_device_get_mmio
    - g_prefix_error_literal
    - g_set_error
    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: 5
    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:
    - fu_intel_usb4_device_set_mmio
    - g_set_error
    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:277,1
    - Dst: fu_intel_usb4_device_get_mmio
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:278,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:285,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:286,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:289,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:289,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: 292
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 292
    functionName: fu_intel_usb4_device_operation
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - fu_intel_usb4_device_get_mmio
    - fu_strsafe
    - g_set_error
    - fu_device_sleep
    - g_steal_pointer
    - fu_struct_intel_usb4_mbox_new
    - fu_intel_usb4_device_set_mmio
    - g_prefix_error
    - fu_struct_intel_usb4_mbox_set_status
    - FU_DEVICE
    - fu_struct_intel_usb4_mbox_set_opcode
    - g_autoptr
    - g_propagate_prefixed_error
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:301,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:303,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:307,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:308,1
    - Dst: fu_struct_intel_usb4_metadata_nvm_read_new
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:309,1
    - Dst: fu_struct_intel_usb4_metadata_nvm_read_set_address
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:312,1
    - Dst: NVM_OFFSET_TO_METADATA
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:314,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:314,1
    - Dst: fu_struct_intel_usb4_metadata_nvm_read_set_length
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:315,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:316,1
    - Dst: fu_intel_usb4_device_operation
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:317,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:322,1
    - Dst: fu_intel_usb4_device_mbox_data_read
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:327,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:328,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:329,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:331,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - nvm_addr
    - error
    argTypes:
    - FuIntelUsb4Device*
    - guint8*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 294
    functionDepth: 6
    functionLinenumber: 294
    functionLinenumberEnd: 338
    functionName: fu_intel_usb4_device_nvm_read
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_intel_usb4_device_mbox_data_read
    - fu_chunk_get_data_out
    - g_prefix_error_literal
    - fu_struct_intel_usb4_metadata_nvm_read_set_length
    - fu_struct_intel_usb4_metadata_nvm_read_new
    - fu_intel_usb4_device_operation
    - fu_chunk_array_mutable_new
    - NVM_OFFSET_TO_METADATA
    - fu_struct_intel_usb4_metadata_nvm_read_set_address
    - g_autoptr
    - g_ptr_array_index
    - fu_chunk_get_address
    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:348,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:351,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:358,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:358,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:359,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:363,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:368,1
    - Dst: NVM_OFFSET_TO_METADATA
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:368,1
    - Dst: fu_intel_usb4_device_operation
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:369,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:374,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:379,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:383,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:384,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:384,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:385,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:386,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:387,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:390,1
    - Dst: fu_intel_usb4_device_mbox_data_write
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:395,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:396,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:397,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:399,1
    - Dst: fu_intel_usb4_device_operation
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:403,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:408,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:413,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:417,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: 419
      start: 340
    functionDepth: 6
    functionLinenumber: 340
    functionLinenumberEnd: 419
    functionName: fu_intel_usb4_device_nvm_write
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error_literal
    - fu_progress_step_done
    - fu_intel_usb4_device_operation
    - NVM_OFFSET_TO_METADATA
    - fu_progress_set_status
    - fu_chunk_get_data
    - g_bytes_get_size
    - fu_chunk_array_length
    - fu_progress_set_id
    - g_autoptr
    - fu_intel_usb4_device_mbox_data_write
    - fu_memwrite_uint32
    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:424,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:425,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:425,1
    - Dst: fu_intel_usb4_device_operation
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:429,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:434,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:435,1
    - Dst: fu_device_set_update_state
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 421
    functionDepth: 6
    functionLinenumber: 421
    functionLinenumberEnd: 440
    functionName: fu_intel_usb4_device_activate
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - fu_device_locker_new
    - g_prefix_error_literal
    - fu_intel_usb4_device_operation
    - FU_INTEL_USB4_DEVICE
    - fu_device_set_update_state
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_intel_usb4_device_activate(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_INTEL_USB4_DEVICE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:448,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
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 476
    functionName: fu_intel_usb4_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_intel_thunderbolt_nvm_get_vendor_id
    - FU_INTEL_THUNDERBOLT_NVM
    - g_warning
    - FU_INTEL_USB4_DEVICE
    - fu_intel_thunderbolt_nvm_get_model_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_intel_usb4_device_check_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\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_literal
      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: 21
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 478
    functionDepth: 7
    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:
    - g_return_val_if_fail
    - fu_device_add_flag
    - fu_device_set_version
    - fu_firmware_get_image_by_id_bytes
    - FU_IS_FIRMWARE
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - fu_intel_usb4_device_operation
    - FU_INTEL_USB4_DEVICE
    - fu_intel_usb4_device_nvm_write
    - g_autoptr
    - fu_firmware_get_version
    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_literal
      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_literal
      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: 7
    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_device_add_instance_id
    - g_bytes_new
    - fu_device_set_version
    - fu_intel_thunderbolt_nvm_get_device_id
    - fu_intel_thunderbolt_nvm_get_vendor_id
    - g_prefix_error_literal
    - g_strdup_printf
    - fu_firmware_parse_bytes
    - FU_INTEL_THUNDERBOLT_NVM
    - FU_INTEL_USB4_DEVICE
    - fu_intel_thunderbolt_nvm_get_model_id
    - fu_intel_thunderbolt_nvm_new
    - fu_intel_usb4_device_nvm_read
    - g_autoptr
    - fu_firmware_get_version
    - FU_DEVICE_CLASS
    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:
    - fwupd_codec_string_append_hex
    - FU_INTEL_USB4_DEVICE
    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:
    - device
    - 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 *device, 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
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:588,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIntelUsb4Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 575
    functionDepth: 6
    functionLinenumber: 575
    functionLinenumberEnd: 589
    functionName: fu_intel_usb4_device_init
    functionSourceFile: /src/fwupd/plugins/intel-usb4/fu-intel-usb4-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelUsb4DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 601
    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
    - fwupd_codec_string_append
    - fwupd_codec_string_append_hex
    - FU_CCGX_HPI_DEVICE
    - fu_ccgx_image_type_to_string
    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: 4
    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:
    - FU_CCGX_HPI_DEVICE
    - g_set_error
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_device_control_transfer
    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: 4
    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_autoptr
    - g_set_error
    - fu_usb_device_control_transfer
    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:175,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:176,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:176,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - i2c_config
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - FuCcgxI2cConfig*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 197
    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_autoptr
    - g_set_error
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_get_i2c_config(FuCcgxHpiDevice *self,\n\t\t\t\t
      \ FuCcgxI2cConfig *i2c_config,\n\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:204,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:205,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:205,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - i2c_config
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - FuCcgxI2cConfig*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 226
    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_autoptr
    - g_set_error
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_set_i2c_config(FuCcgxHpiDevice *self,\n\t\t\t\t
      \ FuCcgxI2cConfig *i2c_config,\n\t\t\t\t  GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:232,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:234,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:234,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:242,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:253,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:262,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:269,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - self
    - bytes_pending
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 228
    functionDepth: 4
    functionLinenumber: 228
    functionLinenumberEnd: 277
    functionName: fu_ccgx_hpi_device_wait_for_notify
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_usb_device_interrupt_transfer
    - FU_USB_DEVICE
    - g_autoptr
    - fu_memread_uint16_safe
    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:288,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:289,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:293,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:293,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:306,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:309,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:309,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:317,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:322,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:322,1
    - Dst: fu_ccgx_hpi_device_wait_for_notify
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:323,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:324,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - cfg_bits
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - guint8*
    - gsize
    - FuCcgxI2cDataConfig
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 279
    functionDepth: 5
    functionLinenumber: 279
    functionLinenumberEnd: 328
    functionName: fu_ccgx_hpi_device_i2c_read
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_ccgx_hpi_device_wait_for_notify
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_usb_device_bulk_transfer
    - FU_USB_DEVICE
    - fu_ccgx_hpi_device_check_i2c_status
    - fu_usb_device_control_transfer
    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    FuCcgxI2cDataConfig 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:339,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:340,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:344,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:344,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:358,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:361,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:361,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:369,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:374,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:374,1
    - Dst: fu_ccgx_hpi_device_wait_for_notify
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:375,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:376,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - cfg_bits
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - guint8*
    - gsize
    - FuCcgxI2cDataConfig
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 330
    functionDepth: 5
    functionLinenumber: 330
    functionLinenumberEnd: 380
    functionName: fu_ccgx_hpi_device_i2c_write
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_ccgx_hpi_device_wait_for_notify
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_usb_device_bulk_transfer
    - FU_USB_DEVICE
    - fu_ccgx_hpi_device_check_i2c_status
    - fu_usb_device_control_transfer
    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     FuCcgxI2cDataConfig 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:390,1
    - Dst: fu_ccgx_hpi_device_check_i2c_status
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:392,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:393,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:397,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:397,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:411,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:416,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:416,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - cfg_bits
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - guint8*
    - gsize
    - FuCcgxI2cDataConfig
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 382
    functionDepth: 5
    functionLinenumber: 382
    functionLinenumberEnd: 427
    functionName: fu_ccgx_hpi_device_i2c_write_no_resp
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_ccgx_hpi_device_check_i2c_status
    - g_prefix_error_literal
    - fu_usb_device_bulk_transfer
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_device_control_transfer
    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     FuCcgxI2cDataConfig
      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:433,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:434,1
    - Dst: fu_ccgx_hpi_device_i2c_write
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:438,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:443,1
    - Dst: fu_ccgx_hpi_device_i2c_read
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:446,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:451,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:454,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 429
    functionDepth: 6
    functionLinenumber: 429
    functionLinenumberEnd: 456
    functionName: fu_ccgx_hpi_device_reg_read_cb
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - g_prefix_error_literal
    - g_malloc0
    - FU_DEVICE
    - fu_ccgx_hpi_device_i2c_write
    - FU_CCGX_HPI_DEVICE
    - fu_ccgx_hpi_device_i2c_read
    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:471,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - FuCcgxPdRespReg
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 458
    functionDepth: 4
    functionLinenumber: 458
    functionLinenumberEnd: 476
    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
      \   FuCcgxPdRespReg 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_CCGX_HPI_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:482,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:486,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:488,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:491,1
    - Dst: fu_ccgx_hpi_device_i2c_write
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:492,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:498,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:501,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 478
    functionDepth: 6
    functionLinenumber: 478
    functionLinenumberEnd: 503
    functionName: fu_ccgx_hpi_device_reg_write_cb
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - g_prefix_error_literal
    - memcpy
    - g_malloc0
    - FU_DEVICE
    - fu_ccgx_hpi_device_i2c_write
    - fu_size_checked_inc
    - FU_CCGX_HPI_DEVICE
    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:518,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:518,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: 523
      start: 505
    functionDepth: 4
    functionLinenumber: 505
    functionLinenumberEnd: 523
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:535,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:537,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:540,1
    - Dst: fu_ccgx_hpi_device_i2c_write_no_resp
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:541,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:547,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:550,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:550,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - self
    - addr
    - buf
    - bufsz
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - guint16
    - guint8*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 525
    functionDepth: 6
    functionLinenumber: 525
    functionLinenumberEnd: 552
    functionName: fu_ccgx_hpi_device_reg_write_no_resp
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_hpi_device_i2c_write_no_resp
    - fu_device_sleep
    - g_prefix_error_literal
    - memcpy
    - g_malloc0
    - FU_DEVICE
    - fu_size_checked_inc
    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:560,1
    - Dst: fu_ccgx_hpi_device_reg_write
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:562,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:567,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - self
    - section
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - FuCcgxHpiRegSection
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 554
    functionDepth: 5
    functionLinenumber: 554
    functionLinenumberEnd: 571
    functionName: fu_ccgx_hpi_device_clear_intr
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_hpi_device_reg_write
    - FU_BIT_SET
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_clear_intr(FuCcgxHpiDevice *self, FuCcgxHpiRegSection
      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: 577
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 577
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_ccgx_hpi_device_reg_addr_gen
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:591,1
    - Dst: fu_ccgx_hpi_device_reg_read
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:592,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:593,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:599,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:601,1
    - Dst: fu_ccgx_hpi_device_reg_addr_gen
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:610,1
    - Dst: fu_ccgx_hpi_device_reg_read
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:613,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:618,1
    - Dst: fu_ccgx_hpi_device_reg_read
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:624,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:629,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:635,1
    - Dst: fu_ccgx_hpi_device_reg_read
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:645,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:650,1
    - Dst: fu_ccgx_hpi_device_clear_intr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:657,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - self
    - section
    - event
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - FuCcgxHpiRegSection
    - FuCcgxHpiEvent*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 579
    functionDepth: 6
    functionLinenumber: 579
    functionLinenumberEnd: 658
    functionName: fu_ccgx_hpi_device_read_event_reg
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_ccgx_hpi_device_clear_intr
    - fu_ccgx_hpi_device_reg_addr_gen
    - g_prefix_error_literal
    - memcpy
    - 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
      \ FuCcgxHpiRegSection section,\n\t\t\t\t  FuCcgxHpiEvent *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:671,1
    - Dst: fu_ccgx_hpi_device_reg_read
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:674,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:675,1
    - Dst: fu_ccgx_hpi_device_read_event_reg
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:685,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:689,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 5
    argNames:
    - self
    - section
    - event_array
    - event_count
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - FuCcgxHpiRegSection
    - FuCcgxHpiEvent*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 660
    functionDepth: 7
    functionLinenumber: 660
    functionLinenumberEnd: 699
    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_read
    - fu_ccgx_hpi_device_reg_addr_gen
    - g_prefix_error_literal
    - fu_ccgx_hpi_device_read_event_reg
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_app_read_intr_reg(FuCcgxHpiDevice *self,\n\t\t\t\t
      \    FuCcgxHpiRegSection section,\n\t\t\t\t     FuCcgxHpiEvent *event_array,\n\t\t\t\t
      \    guint8 *event_count,\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:709,1
    - Dst: fu_ccgx_hpi_device_app_read_intr_reg
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:713,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 706
    functionDepth: 8
    functionLinenumber: 706
    functionLinenumberEnd: 726
    functionName: fu_ccgx_hpi_device_wait_for_event_cb
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - FU_CCGX_HPI_DEVICE
    - g_set_error_literal
    - fu_ccgx_hpi_device_app_read_intr_reg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_wait_for_event_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:740,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:740,1
    - Dst: MAX
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:742,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - section
    - event_array
    - timeout_ms
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - FuCcgxHpiRegSection
    - FuCcgxHpiEvent*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 728
    functionDepth: 3
    functionLinenumber: 728
    functionLinenumberEnd: 752
    functionName: fu_ccgx_hpi_device_wait_for_event
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_prefix_error_literal
    - MAX
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_wait_for_event(FuCcgxHpiDevice *self,\n\t\t\t\t
      \ FuCcgxHpiRegSection section,\n\t\t\t\t  FuCcgxHpiEvent *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:762,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - self
    - reg_section
    - event
    - io_timeout
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - FuCcgxHpiRegSection
    - FuCcgxPdResp*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 754
    functionDepth: 4
    functionLinenumber: 754
    functionLinenumberEnd: 768
    functionName: fu_ccgx_hpi_device_get_event
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - fu_ccgx_hpi_device_wait_for_event
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_get_event(FuCcgxHpiDevice *self,\n\t\t\t
      \    FuCcgxHpiRegSection 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:775,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:782,1
    - Dst: fu_ccgx_hpi_device_wait_for_event
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:783,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:788,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:789,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:790,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - io_timeout
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 770
    functionDepth: 8
    functionLinenumber: 770
    functionLinenumberEnd: 797
    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_app_read_intr_reg
    - g_steal_pointer
    - fu_ccgx_hpi_device_wait_for_event
    - g_error_matches
    - g_autoptr
    - g_propagate_prefixed_error
    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:802,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:806,1
    - Dst: fu_ccgx_hpi_device_clear_all_events
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:807,1
    - Dst: fu_ccgx_hpi_device_reg_write
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:810,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:815,1
    - Dst: fu_ccgx_hpi_device_get_event
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:818,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:823,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:827,1
    - Dst: fu_ccgx_pd_resp_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:831,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 799
    functionDepth: 9
    functionLinenumber: 799
    functionLinenumberEnd: 836
    functionName: fu_ccgx_hpi_device_validate_fw_cb
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_ccgx_pd_resp_to_string
    - g_set_error
    - fu_ccgx_hpi_device_reg_write
    - g_prefix_error_literal
    - fu_ccgx_hpi_device_get_event
    - FU_CCGX_HPI_DEVICE
    - fu_ccgx_hpi_device_clear_all_events
    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:841,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - fw_index
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 838
    functionDepth: 4
    functionLinenumber: 838
    functionLinenumberEnd: 846
    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:851,1
    - Dst: fu_ccgx_hpi_device_clear_all_events
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:855,1
    - Dst: fu_ccgx_hpi_device_reg_write
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:857,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:862,1
    - Dst: fu_ccgx_hpi_device_get_event
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:865,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:870,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:874,1
    - Dst: fu_ccgx_pd_resp_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:878,1
    - Dst: fu_device_sleep
      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: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 848
    functionDepth: 9
    functionLinenumber: 848
    functionLinenumberEnd: 886
    functionName: fu_ccgx_hpi_device_enter_flash_mode_cb
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_pd_resp_to_string
    - g_set_error
    - fu_device_sleep
    - fu_ccgx_hpi_device_reg_write
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_ccgx_hpi_device_get_event
    - FU_CCGX_HPI_DEVICE
    - fu_ccgx_hpi_device_clear_all_events
    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:891,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 888
    functionDepth: 4
    functionLinenumber: 888
    functionLinenumberEnd: 896
    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:901,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:908,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:913,1
    - Dst: fu_ccgx_hpi_device_get_event
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:916,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:921,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:925,1
    - Dst: fu_ccgx_pd_resp_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:929,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:935,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:935,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 898
    functionDepth: 9
    functionLinenumber: 898
    functionLinenumberEnd: 937
    functionName: fu_ccgx_hpi_device_leave_flash_mode_cb
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_pd_resp_to_string
    - g_set_error
    - fu_device_sleep
    - fu_ccgx_hpi_device_reg_write
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_ccgx_hpi_device_get_event
    - FU_CCGX_HPI_DEVICE
    - fu_ccgx_hpi_device_clear_all_events
    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:942,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 939
    functionDepth: 4
    functionLinenumber: 939
    functionLinenumberEnd: 947
    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:952,1
    - Dst: fu_ccgx_hpi_device_clear_all_events
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:963,1
    - Dst: fu_ccgx_hpi_device_reg_write
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:969,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:970,1
    - Dst: fu_ccgx_hpi_device_reg_write
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:973,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:978,1
    - Dst: fu_ccgx_hpi_device_get_event
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:983,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:988,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:992,1
    - Dst: fu_ccgx_pd_resp_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:996,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 949
    functionDepth: 9
    functionLinenumber: 949
    functionLinenumberEnd: 1001
    functionName: fu_ccgx_hpi_device_write_flash_cb
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_pd_resp_to_string
    - g_set_error
    - fu_ccgx_hpi_device_reg_write
    - g_prefix_error_literal
    - fu_ccgx_hpi_device_get_event
    - FU_CCGX_HPI_DEVICE
    - fu_ccgx_hpi_device_clear_all_events
    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:1015,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1015,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: 1020
      start: 1003
    functionDepth: 4
    functionLinenumber: 1003
    functionLinenumberEnd: 1020
    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:1025,1
    - Dst: fu_ccgx_hpi_device_clear_all_events
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1037,1
    - Dst: fu_ccgx_hpi_device_reg_write
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1039,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1044,1
    - Dst: fu_ccgx_hpi_device_get_event
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1049,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1054,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1058,1
    - Dst: fu_ccgx_pd_resp_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1062,1
    - Dst: fu_ccgx_hpi_device_reg_read
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1068,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1069,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1022
    functionDepth: 9
    functionLinenumber: 1022
    functionLinenumberEnd: 1073
    functionName: fu_ccgx_hpi_device_read_flash_cb
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_pd_resp_to_string
    - g_set_error
    - fu_ccgx_hpi_device_reg_write
    - g_prefix_error_literal
    - fu_ccgx_hpi_device_reg_read
    - fu_ccgx_hpi_device_get_event
    - FU_CCGX_HPI_DEVICE
    - fu_ccgx_hpi_device_clear_all_events
    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:1087,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1087,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: 1092
      start: 1075
    functionDepth: 4
    functionLinenumber: 1075
    functionLinenumberEnd: 1092
    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:1097,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1103,1
    - Dst: fu_ccgx_hpi_device_clear_all_events
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1108,1
    - Dst: fu_ccgx_hpi_device_reg_write
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1110,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1115,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1120,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1094
    functionDepth: 9
    functionLinenumber: 1094
    functionLinenumberEnd: 1125
    functionName: fu_ccgx_hpi_device_detach
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_ccgx_hpi_device_reg_write
    - fu_device_add_private_flag
    - g_prefix_error_literal
    - fu_device_has_flag
    - FU_CCGX_HPI_DEVICE
    - fu_ccgx_hpi_device_clear_all_events
    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:1130,1
    - Dst: fu_ccgx_hpi_device_clear_all_events
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1135,1
    - Dst: fu_ccgx_hpi_device_reg_write_no_resp
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1137,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1142,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1145,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1127
    functionDepth: 9
    functionLinenumber: 1127
    functionLinenumberEnd: 1148
    functionName: fu_ccgx_hpi_device_attach
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_private_flag
    - g_prefix_error_literal
    - fu_ccgx_hpi_device_reg_write_no_resp
    - FU_CCGX_HPI_DEVICE
    - fu_ccgx_hpi_device_clear_all_events
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_hpi_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_HPI_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1156,1
    - Dst: fu_ccgx_firmware_get_silicon_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1162,1
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1162,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1164,1
    - Dst: fu_ccgx_firmware_get_app_type
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1173,1
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1173,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1175,1
    - Dst: fu_ccgx_firmware_get_fw_mode
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1184,1
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1184,1
    - Dst: fu_ccgx_fw_mode_get_alternate
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1185,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1186,1
    - Dst: fu_ccgx_fw_mode_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1190,1
    - Dst: fu_ccgx_fw_mode_get_alternate
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1190,1
    - Dst: fu_ccgx_fw_mode_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1150
    functionDepth: 1
    functionLinenumber: 1150
    functionLinenumberEnd: 1197
    functionName: fu_ccgx_hpi_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_firmware_get_silicon_id
    - g_set_error
    - fu_ccgx_firmware_get_fw_mode
    - fu_ccgx_fw_mode_get_alternate
    - fu_ccgx_fw_mode_to_string
    - fu_ccgx_firmware_get_app_type
    - FU_CCGX_FIRMWARE
    - FU_CCGX_HPI_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_hpi_device_check_firmware(FuDevice *device,\n\t\t\t\t
      \ FuFirmware *firmware,\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:1210,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1223,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1241,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: 1248
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1248
    functionName: fu_ccgx_hpi_device_get_metadata_offset
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_set_error
    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:1262,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1264,1
    - Dst: fu_ccgx_hpi_device_read_flash
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1265,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1266,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1269,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: 1277
      start: 1251
    functionDepth: 5
    functionLinenumber: 1251
    functionLinenumberEnd: 1277
    functionName: fu_ccgx_hpi_device_load_metadata
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - g_malloc0
    - fu_ccgx_hpi_device_read_flash
    - fu_memcpy_safe
    - fu_ccgx_hpi_device_get_metadata_offset
    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:1291,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1293,1
    - Dst: fu_ccgx_hpi_device_read_flash
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1294,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1295,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1298,1
    - Dst: fu_ccgx_hpi_device_write_flash
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1307,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1308,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: 1312
      start: 1280
    functionDepth: 5
    functionLinenumber: 1280
    functionLinenumberEnd: 1312
    functionName: fu_ccgx_hpi_device_save_metadata
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - g_malloc0
    - fu_ccgx_hpi_device_read_flash
    - fu_memcpy_safe
    - fu_ccgx_hpi_device_write_flash
    - fu_ccgx_hpi_device_get_metadata_offset
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_HPI_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1321,1
    - Dst: fu_ccgx_firmware_get_records
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1322,1
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1322,1
    - Dst: fu_ccgx_fw_mode_get_alternate
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1323,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1324,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1325,1
    - Dst: fu_struct_ccgx_metadata_hdr_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1325,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1328,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1329,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1330,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1331,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1332,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1333,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1336,1
    - Dst: fu_ccgx_hpi_device_load_metadata
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1344,1
    - Dst: fu_struct_ccgx_metadata_hdr_set_metadata_valid
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1346,1
    - Dst: fu_ccgx_hpi_device_save_metadata
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1347,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1349,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1353,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1356,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1357,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1361,1
    - Dst: fu_ccgx_hpi_device_write_flash
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1364,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1366,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1367,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1369,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1374,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1374,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1378,1
    - Dst: fu_ccgx_hpi_device_validate_fw
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1381,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1382,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1385,1
    - Dst: fu_device_locker_close
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1388,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1390,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: 1394
      start: 1314
    functionDepth: 6
    functionLinenumber: 1314
    functionLinenumberEnd: 1394
    functionName: fu_ccgx_hpi_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_ccgx_fw_mode_get_alternate
    - fu_device_locker_close
    - fu_ccgx_hpi_device_save_metadata
    - FU_CCGX_FIRMWARE
    - g_ptr_array_index
    - g_prefix_error_literal
    - fu_progress_set_percentage_full
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_progress_step_done
    - fu_ccgx_hpi_device_write_flash
    - fu_ccgx_hpi_device_load_metadata
    - fu_progress_get_child
    - fu_device_locker_new_full
    - fu_progress_set_id
    - fu_ccgx_hpi_device_validate_fw
    - fu_struct_ccgx_metadata_hdr_new
    - fu_ccgx_firmware_get_records
    - g_set_error
    - g_prefix_error
    - fu_struct_ccgx_metadata_hdr_set_metadata_valid
    - g_bytes_get_size
    - FU_CCGX_HPI_DEVICE
    - g_autoptr
    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:1401,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1406,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1409,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1419,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1419,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1420,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1420,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1427,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1432,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCcgxHpiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1396
    functionDepth: 5
    functionLinenumber: 1396
    functionLinenumberEnd: 1443
    functionName: fu_ccgx_hpi_device_ensure_silicon_id
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_device_build_instance_id_full
    - fu_ccgx_hpi_device_reg_read
    - fu_memread_uint16_safe
    - 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:1448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1445
    functionDepth: 1
    functionLinenumber: 1445
    functionLinenumberEnd: 1449
    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:1454,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1458,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1461,1
    - Dst: fu_ccgx_hpi_device_get_i2c_config
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1465,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1466,1
    - Dst: fu_ccgx_hpi_device_set_i2c_config
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1472,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1473,1
    - Dst: fu_ccgx_hpi_device_reg_read
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1476,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1481,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1487,1
    - Dst: fu_ccgx_fw_mode_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1487,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1488,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1488,1
    - Dst: fu_ccgx_hpi_device_ensure_silicon_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1491,1
    - Dst: fu_ccgx_hpi_device_reg_read
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1502,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1507,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1512,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1521,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1532,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1535,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1536,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1538,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1544,1
    - Dst: fu_device_uninhibit
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1546,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1550,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1551,1
    - Dst: fu_ccgx_hpi_device_get_event
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1554,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1559,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1560,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1560,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1565,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1565,1
    - Dst: fu_ccgx_hpi_device_clear_all_events
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1569,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 63
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1451
    functionDepth: 9
    functionLinenumber: 1451
    functionLinenumberEnd: 1570
    functionName: fu_ccgx_hpi_device_setup
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_logical_id
    - fu_ccgx_hpi_device_set_i2c_config
    - fu_ccgx_hpi_device_get_i2c_config
    - fu_ccgx_hpi_device_get_event
    - fu_ccgx_hpi_device_clear_all_events
    - fu_memread_uint32_safe
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - g_prefix_error_literal
    - fu_device_has_flag
    - fu_device_inhibit
    - g_propagate_error
    - fu_ccgx_hpi_device_reg_read
    - fu_device_set_logical_id
    - fu_device_uninhibit
    - fu_device_set_version_raw
    - fu_device_sleep
    - FU_DEVICE
    - FU_DEVICE_CLASS
    - fu_ccgx_hpi_device_ensure_silicon_id
    - g_steal_pointer
    - fu_ccgx_fw_mode_to_string
    - g_error_matches
    - FU_CCGX_HPI_DEVICE
    - g_autoptr
    - fu_device_add_instance_u16
    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:1578,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1581,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1582,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1587,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1588,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1593,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1594,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1599,1
    - Dst: fu_ccgx_image_type_from_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1600,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1603,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1609,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1572
    functionDepth: 1
    functionLinenumber: 1572
    functionLinenumberEnd: 1611
    functionName: fu_ccgx_hpi_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_strtoull
    - g_set_error_literal
    - fu_ccgx_image_type_from_string
    - FU_CCGX_HPI_DEVICE
    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:1617,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1613
    functionDepth: 2
    functionLinenumber: 1613
    functionLinenumberEnd: 1622
    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:1627,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1628,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1629,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1630,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1631,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1632,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1624
    functionDepth: 3
    functionLinenumber: 1624
    functionLinenumberEnd: 1634
    functionName: fu_ccgx_hpi_device_set_progress
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_hpi_device_set_progress(FuDevice *device, FuProgress *progress)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1646,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1646,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1647,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1647,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1648,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1648,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1649,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1649,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1650,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1650,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1651,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1651,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1652,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1652,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1653,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1653,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1654,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1654,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1655,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1655,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1656,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1656,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1657,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1657,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1660,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1660,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1664,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1664,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1672,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c:1672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxHpiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1636
    functionDepth: 6
    functionLinenumber: 1636
    functionLinenumberEnd: 1673
    functionName: fu_ccgx_hpi_device_init
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_retry_set_delay
    - fu_device_register_private_flag
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - FU_DEVICE
    - fu_device_retry_add_recovery
    - fu_device_set_version_format
    - FU_USB_DEVICE
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:1678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCcgxHpiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1675
    functionDepth: 0
    functionLinenumber: 1675
    functionLinenumberEnd: 1689
    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:16,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:18,1
    - Dst: fu_firmware_roundtrip_from_filename
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:19,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:23,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 11
    functionDepth: 7
    functionLinenumber: 11
    functionLinenumberEnd: 25
    functionName: fu_ccgx_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - fu_firmware_roundtrip_from_filename
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    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:30,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:31,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:32,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:33,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/ccgx/fu-self-test.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: main
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_type_ensure
    - 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:
    - g_return_val_if_fail
    - FU_IS_CCGX_FIRMWARE
    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:
    - g_return_val_if_fail
    - FU_IS_CCGX_FIRMWARE
    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:
    - g_return_val_if_fail
    - FU_IS_CCGX_FIRMWARE
    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:
    - g_return_val_if_fail
    - FU_IS_CCGX_FIRMWARE
    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_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    - FU_CCGX_FIRMWARE
    - fu_ccgx_fw_mode_to_string
    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_bytes_unref
    - g_free
    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: 4
    functionLinenumber: 80
    functionLinenumberEnd: 161
    functionName: fu_ccgx_firmware_add_record
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_strparse_uint16_safe
    - fu_firmware_strparse_uint8_safe
    - g_new0
    - g_set_error
    - g_bytes_new
    - g_steal_pointer
    - g_ptr_array_add
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - g_string_erase
    - g_autoptr
    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: 18
    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:222,1
    - Dst: fu_sum8_bytes
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:223,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:226,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:228,1
    - Dst: fu_struct_ccgx_metadata_hdr_get_fw_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:237,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:238,1
    - Dst: fu_struct_ccgx_metadata_hdr_get_fw_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:243,1
    - Dst: fu_struct_ccgx_metadata_hdr_get_fw_checksum
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:248,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:249,1
    - Dst: fu_struct_ccgx_metadata_hdr_get_fw_checksum
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:254,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:263,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:264,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:266,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:272,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:280,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:280,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:285,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FuCcgxFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 163
    functionDepth: 4
    functionLinenumber: 163
    functionLinenumberEnd: 292
    functionName: fu_ccgx_firmware_parse_md_block
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_raw
    - fu_struct_ccgx_metadata_hdr_get_fw_checksum
    - fu_memread_uint32_safe
    - g_set_error
    - fu_struct_ccgx_metadata_hdr_get_fw_size
    - g_bytes_get_data
    - g_set_error_literal
    - FU_FIRMWARE
    - fu_struct_ccgx_metadata_hdr_parse_bytes
    - fu_struct_ccgx_metadata_hdr_get_metadata_valid
    - g_bytes_get_size
    - fu_sum8_bytes
    - g_autoptr
    - g_ptr_array_index
    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:303,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:307,1
    - Dst: g_strdelimit
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:315,1
    - Dst: strlen
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:316,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:322,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:324,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:331,1
    - Dst: fu_firmware_strparse_uint32_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:337,1
    - Dst: fu_ccgx_firmware_add_record
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:348,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:349,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: 355
      start: 299
    functionDepth: 5
    functionLinenumber: 299
    functionLinenumberEnd: 355
    functionName: fu_ccgx_firmware_tokenize_cb
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_strsafe
    - fu_ccgx_firmware_add_record
    - g_set_error
    - g_set_error_literal
    - g_prefix_error
    - fu_firmware_strparse_uint32_safe
    - g_strdelimit
    - strlen
    - FU_CCGX_FIRMWARE
    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:363,1
    - Dst: fu_strsplit_stream
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:367,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:372,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:373,1
    - Dst: fu_ccgx_firmware_parse_md_block
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:377,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 357
    functionDepth: 5
    functionLinenumber: 357
    functionLinenumberEnd: 384
    functionName: fu_ccgx_firmware_parse
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_addr
    - fu_ccgx_firmware_parse_md_block
    - g_prefix_error_literal
    - fu_strsplit_stream
    - FU_CCGX_FIRMWARE
    - g_ptr_array_index
    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:394,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:394,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:404,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:407,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: 414
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 414
    functionName: fu_ccgx_firmware_write_record
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - g_string_new
    - g_string_append_printf
    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:419,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:423,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:423,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:424,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:424,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:425,1
    - Dst: fu_struct_ccgx_metadata_hdr_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:425,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:426,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:427,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:428,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:428,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:431,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:439,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:442,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:446,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:447,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:450,1
    - Dst: fu_ccgx_firmware_write_record
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:453,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:456,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:457,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:461,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:466,1
    - Dst: fu_struct_ccgx_metadata_hdr_set_fw_checksum
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:467,1
    - Dst: fu_struct_ccgx_metadata_hdr_set_fw_entry
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:468,1
    - Dst: fu_struct_ccgx_metadata_hdr_set_last_boot_row
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:469,1
    - Dst: fu_struct_ccgx_metadata_hdr_set_fw_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:470,1
    - Dst: fu_struct_ccgx_metadata_hdr_set_boot_seq
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:471,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:472,1
    - Dst: fu_ccgx_firmware_write_record
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:481,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:488,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:489,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 416
    functionDepth: 3
    functionLinenumber: 416
    functionLinenumberEnd: 490
    functionName: fu_ccgx_firmware_write
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_ccgx_metadata_hdr_set_fw_entry
    - fu_struct_ccgx_metadata_hdr_set_last_boot_row
    - fu_chunk_get_data_sz
    - FU_CCGX_FIRMWARE
    - fu_ccgx_firmware_write_record
    - g_autoptr
    - fu_struct_ccgx_metadata_hdr_set_boot_seq
    - g_byte_array_new
    - g_string_new
    - g_bytes_get_data
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_chunk_array_length
    - fu_struct_ccgx_metadata_hdr_new
    - fu_firmware_get_bytes_with_patches
    - fu_chunk_array_index
    - g_steal_pointer
    - g_string_append_printf
    - fu_memcpy_safe
    - fu_struct_ccgx_metadata_hdr_set_fw_size
    - fu_chunk_array_new_from_bytes
    - fu_byte_array_set_size
    - fu_struct_ccgx_metadata_hdr_set_fw_checksum
    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:495,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 505
    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:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 511
    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:516,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:517,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:517,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:518,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:518,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:519,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:519,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:520,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 521
    functionName: fu_ccgx_firmware_init
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    - g_ptr_array_new_with_free_func
    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:526,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:527,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 529
    functionName: fu_ccgx_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c
    functionUses: 0
    functionsReached:
    - FU_CCGX_FIRMWARE
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    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:534,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-firmware.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCcgxFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 542
    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: 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: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - self
    - param1
    - param2
    - error
    argTypes:
    - FuCcgxPureHidDevice*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 6
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: fu_ccgx_pure_hid_device_command
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ccgx_pure_hid_command_new
    - fu_struct_ccgx_pure_hid_command_set_cmd
    - fu_hid_device_set_report
    - fu_struct_ccgx_pure_hid_command_set_opt
    - FU_HID_DEVICE
    - g_autoptr
    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:52,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCcgxPureHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 7
    functionLinenumber: 49
    functionLinenumberEnd: 60
    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_literal
    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_literal
      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: 62
    functionDepth: 7
    functionLinenumber: 62
    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_ccgx_pure_hid_device_command
    - g_debug
    - fu_hid_device_set_report
    - g_prefix_error_literal
    - FU_HID_DEVICE
    - 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_device_add_flag
    - fu_device_set_version_raw
    - fu_device_set_version_bootloader
    - fu_hid_device_get_report
    - g_set_error_literal
    - fu_device_set_version_bootloader_raw
    - fu_struct_ccgx_pure_hid_fw_info_get_bl_version
    - fu_struct_ccgx_pure_hid_fw_info_get_image2_version
    - fu_device_remove_flag
    - FU_DEVICE
    - FU_HID_DEVICE
    - fu_struct_ccgx_pure_hid_fw_info_get_silicon_id
    - fu_struct_ccgx_pure_hid_fw_info_get_operating_mode
    - fu_version_from_uint32
    - g_autoptr
    - fu_struct_ccgx_pure_hid_fw_info_parse
    - fu_struct_ccgx_pure_hid_fw_info_get_image1_version
    - fu_device_get_version_format
    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: 8
    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_ccgx_pure_hid_fw_mode_to_string
    - fu_device_set_remove_delay
    - fu_device_add_instance_strup
    - fu_device_build_instance_id
    - fu_device_get_remove_delay
    - FU_DEVICE
    - fu_device_build_instance_id_full
    - FU_CCGX_PURE_HID_DEVICE
    - fu_ccgx_pure_hid_device_magic_unlock
    - FU_DEVICE_CLASS
    - fu_ccgx_pure_hid_device_ensure_fw_info
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ccgx_pure_hid_device_setup(FuDevice *device, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_CCGX_PURE_HID_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:205,1
    - Dst: fu_ccgx_firmware_get_silicon_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:215,1
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:215,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:217,1
    - Dst: fu_ccgx_firmware_get_fw_mode
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:226,1
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:226,1
    - Dst: fu_ccgx_fw_mode_get_alternate
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:227,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:228,1
    - Dst: fu_ccgx_fw_mode_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:232,1
    - Dst: fu_ccgx_fw_mode_get_alternate
      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:234,1
    - Dst: fu_ccgx_firmware_get_records
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:239,1
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:239,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:240,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:243,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:244,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:246,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:262,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:267,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:273,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:274,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:274,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:275,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:281,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:281,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:282,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:289,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:289,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:290,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:295,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 303
    functionName: fu_ccgx_pure_hid_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_ccgx_firmware_get_silicon_id
    - fu_device_get_pid
    - fu_ccgx_firmware_get_records
    - g_debug
    - fu_ccgx_firmware_get_fw_mode
    - g_set_error
    - g_bytes_get_data
    - g_set_error_literal
    - fu_ccgx_fw_mode_get_alternate
    - fu_ccgx_fw_mode_to_string
    - fu_device_get_vid
    - FU_CCGX_FIRMWARE
    - FU_CCGX_PURE_HID_DEVICE
    - g_bytes_get_size
    - fu_memread_uint16_safe
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ccgx_pure_hid_device_check_firmware(FuDevice *device,\n\t\t\t\t
      \      FuFirmware *firmware,\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/ccgx/fu-ccgx-pure-hid-device.c:312,1
    - Dst: fu_struct_ccgx_pure_hid_write_hdr_new
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:312,1
    - Dst: fu_struct_ccgx_pure_hid_write_hdr_set_pd_resp
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:314,1
    - Dst: fu_struct_ccgx_pure_hid_write_hdr_set_addr
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:316,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:317,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:327,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:327,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - self
    - address
    - row
    - row_len
    - error
    argTypes:
    - FuCcgxPureHidDevice*
    - guint16
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 305
    functionDepth: 6
    functionLinenumber: 305
    functionLinenumberEnd: 338
    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_struct_ccgx_pure_hid_write_hdr_set_pd_resp
    - fu_hid_device_set_report
    - fu_struct_ccgx_pure_hid_write_hdr_set_addr
    - g_prefix_error_literal
    - FU_HID_DEVICE
    - fu_memcpy_safe
    - g_autoptr
    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:347,1
    - Dst: fu_ccgx_firmware_get_records
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:349,1
    - Dst: FU_CCGX_FIRMWARE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:349,1
    - Dst: fu_ccgx_pure_hid_device_enter_flashing_mode
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:351,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:357,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:358,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:359,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:362,1
    - Dst: fu_ccgx_pure_hid_device_write_row
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:363,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:365,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:366,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:369,1
    - Dst: fu_ccgx_pure_hid_device_command
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:372,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:376,1
    - Dst: fu_ccgx_pure_hid_device_command
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:380,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:384,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:388,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: 391
      start: 340
    functionDepth: 8
    functionLinenumber: 340
    functionLinenumberEnd: 391
    functionName: fu_ccgx_pure_hid_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_ccgx_pure_hid_device_command
    - fu_ccgx_pure_hid_device_enter_flashing_mode
    - fu_ccgx_firmware_get_records
    - g_bytes_get_data
    - fu_progress_set_steps
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_ccgx_pure_hid_device_write_row
    - FU_CCGX_FIRMWARE
    - FU_CCGX_PURE_HID_DEVICE
    - g_bytes_get_size
    - fu_progress_set_status
    - g_ptr_array_index
    - fu_progress_set_id
    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:396,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:397,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:398,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:399,1
    - Dst: fu_progress_add_step
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 402
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:408,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:408,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:409,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:409,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:410,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:410,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:411,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:411,1
    - Dst: fu_device_set_firmware_gtype
      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_set_version_format
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCcgxPureHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 404
    functionDepth: 6
    functionLinenumber: 404
    functionLinenumberEnd: 414
    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
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:419,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:420,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:421,1
    - Dst: fu_ccgx_pure_hid_fw_mode_to_string
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:424,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 416
    functionDepth: 3
    functionLinenumber: 416
    functionLinenumberEnd: 426
    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:434,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:437,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:438,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:443,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:444,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 452
    functionName: fu_ccgx_pure_hid_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_strcmp0
    - g_set_error_literal
    - 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:457,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 458
    functionName: fu_ccgx_pure_hid_device_convert_version
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-pure-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    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:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCcgxPureHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 471
    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_literal
      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: 6
    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:
    - FU_HID_DEVICE
    - fu_hid_device_set_report
    - g_prefix_error_literal
    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: 4
    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:
    - device
    - 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_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_ccgx_hid_device_set_progress(FuDevice *device, 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_add_flag
    - fu_device_retry_set_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_add_protocol
    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_udev_subsystem
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c:35,1
    - Dst: fu_plugin_add_firmware_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
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c:39,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 43
    functionName: fu_ccgx_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/ccgx/fu-ccgx-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_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:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCcgxPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    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_literal
      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_signature_get_kind
    - fu_device_add_flag
    - fu_device_add_child
    - fu_device_set_physical_id
    - FU_EFI_X509_SIGNATURE
    - fu_device_get_context
    - g_prefix_error_literal
    - fu_efi_signature_list_get_newest
    - FU_EFI_SIGNATURE_LIST
    - fu_progress_new
    - fu_efi_x509_device_new
    - FU_DEVICE
    - fu_device_read_firmware
    - fu_device_set_proxy
    - g_autoptr
    - FU_DEVICE_CLASS
    - g_ptr_array_index
    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: 4
    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_UEFI_DEVICE
    - fu_uefi_device_set_efivar_bytes
    - fu_firmware_get_bytes
    - fu_device_get_physical_id
    - fu_progress_set_status
    - g_autoptr
    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_has_instance_id
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_device_get_children
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    - g_ptr_array_index
    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:
    - device
    - 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_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_uefi_db_device_set_progress(FuDevice *device, 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_set_physical_id
    - fu_device_add_private_flag
    - fu_device_add_icon
    - fu_device_set_required_free
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_firmware_gtype
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-db/fu-uefi-db-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: 1
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: fu_uefi_db_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/uefi-db/fu-uefi-db-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_rule
    - G_OBJECT_CLASS
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiDbPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-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: 1
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: fu_uefi_kek_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_rule
    - G_OBJECT_CLASS
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiKekPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    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: 5
    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_literal
      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
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:54,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:54,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:55,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 19
    functionDepth: 6
    functionLinenumber: 19
    functionLinenumberEnd: 59
    functionName: fu_uefi_kek_device_probe
    functionSourceFile: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_context_has_flag
    - fu_device_add_child
    - fu_device_get_context
    - fu_progress_new
    - fu_device_read_firmware
    - g_ptr_array_index
    - fu_device_set_physical_id
    - fu_device_add_problem
    - g_prefix_error_literal
    - FU_EFI_SIGNATURE_LIST
    - fu_efi_signature_get_kind
    - FU_DEVICE
    - fu_device_set_proxy
    - FU_DEVICE_CLASS
    - FU_EFI_X509_SIGNATURE
    - fu_efi_signature_list_get_newest
    - fu_efi_x509_device_new
    - g_autoptr
    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:68,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:71,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:76,1
    - Dst: fu_uefi_device_set_efivar_bytes
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:77,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:78,1
    - Dst: fu_device_get_physical_id
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:80,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: 92
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 92
    functionName: fu_uefi_kek_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c
    functionUses: 0
    functionsReached:
    - FU_UEFI_DEVICE
    - fu_uefi_device_set_efivar_bytes
    - fu_firmware_get_bytes
    - fu_device_get_physical_id
    - fu_progress_set_status
    - g_autoptr
    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:97,1
    - Dst: fu_progress_add_flag
      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
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:101,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:102,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: fu_uefi_kek_device_set_progress
    functionSourceFile: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_uefi_kek_device_set_progress(FuDevice *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_physical_id
      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_set_name
      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_add_private_flag
      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
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:112,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:112,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:113,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:113,1
    - Dst: fu_device_set_required_free
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:114,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiKekDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: fu_uefi_kek_device_init
    functionSourceFile: /src/fwupd/plugins/uefi-kek/fu-uefi-kek-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_physical_id
    - fu_device_add_private_flag
    - fu_device_add_icon
    - fu_device_set_required_free
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_firmware_gtype
    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:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiKekDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 124
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:19,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:19,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:21,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:21,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:27,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - impl
    - error
    argTypes:
    - FuLenovoAccessoryImpl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 15
    functionDepth: 5
    functionLinenumber: 15
    functionLinenumberEnd: 29
    functionName: fu_lenovo_accessory_hid_read
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_get_feature
    - g_steal_pointer
    - FU_HIDRAW_DEVICE
    - g_byte_array_new
    - g_byte_array_append
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_lenovo_accessory_hid_read(FuLenovoAccessoryImpl *impl, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:34,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:34,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:36,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:37,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:38,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:39,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - impl
    - buf
    - error
    argTypes:
    - FuLenovoAccessoryImpl*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: fu_lenovo_accessory_hid_write
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - g_byte_array_new
    - g_byte_array_append
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_accessory_hid_write(FuLenovoAccessoryImpl *impl,
      GByteArray *buf, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:53,1
    - Dst: fu_lenovo_accessory_hid_read
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:55,1
    - Dst: FU_LENOVO_ACCESSORY_IMPL
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:55,1
    - Dst: fu_struct_lenovo_accessory_cmd_parse
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:59,1
    - Dst: fu_struct_lenovo_accessory_cmd_get_target_status
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:62,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:64,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:68,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 46
    functionDepth: 6
    functionLinenumber: 46
    functionLinenumberEnd: 80
    functionName: fu_lenovo_accessory_hid_poll_cb
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_lenovo_accessory_hid_read
    - g_set_error_literal
    - FU_LENOVO_ACCESSORY_IMPL
    - fu_struct_lenovo_accessory_cmd_get_target_status
    - g_byte_array_append
    - g_autoptr
    - fu_struct_lenovo_accessory_cmd_parse
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_accessory_hid_poll_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:85,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:85,1
    - Dst: fu_lenovo_accessory_hid_write
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:87,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:89,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:89,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - impl
    - buf
    - error
    argTypes:
    - FuLenovoAccessoryImpl*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 82
    functionDepth: 6
    functionLinenumber: 82
    functionLinenumberEnd: 97
    functionName: fu_lenovo_accessory_hid_process
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_device_retry_full
    - FU_DEVICE
    - fu_lenovo_accessory_hid_write
    - g_byte_array_new
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_lenovo_accessory_hid_process(FuLenovoAccessoryImpl *impl, GByteArray *buf,
      GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:33,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:35,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:38,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:39,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:39,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:41,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:42,1
    - Dst: fu_lenovo_accessory_impl_dfu_file
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:45,1
    - Dst: FU_LENOVO_ACCESSORY_IMPL
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:45,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:47,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:48,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:49,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - self
    - file_type
    - stream
    - progress
    - error
    argTypes:
    - FuLenovoAccessoryHidBootloader*
    - FuLenovoDfuFileType
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 26
    functionDepth: 4
    functionLinenumber: 26
    functionLinenumberEnd: 55
    functionName: fu_lenovo_accessory_hid_bootloader_write_files
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c
    functionUses: 0
    functionsReached:
    - fu_lenovo_accessory_impl_dfu_file
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - FU_LENOVO_ACCESSORY_IMPL
    - fu_progress_step_done
    - fu_chunk_get_address
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_accessory_hid_bootloader_write_files(FuLenovoAccessoryHidBootloader
      *self,\n\t\t\t\t\t       FuLenovoDfuFileType file_type,\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: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_lenovo_accessory_impl_dfu_exit
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:60,1
    - Dst: FU_LENOVO_ACCESSORY_IMPL
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:60,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 6
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: fu_lenovo_accessory_hid_bootloader_attach
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_lenovo_accessory_impl_dfu_exit
    - FU_LENOVO_ACCESSORY_IMPL
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_accessory_hid_bootloader_attach(FuDevice *device,
      FuProgress *progress, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:75,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:76,1
    - Dst: fu_hidraw_device_parse_descriptor
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:79,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:79,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:82,1
    - Dst: fu_lenovo_accessory_impl_dfu_attribute
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:97,1
    - Dst: FU_LENOVO_ACCESSORY_IMPL
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:97,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:106,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:107,1
    - Dst: fu_lenovo_accessory_impl_get_fwversion
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:117,1
    - Dst: FU_LENOVO_ACCESSORY_IMPL
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:117,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:123,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:124,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 68
    functionDepth: 6
    functionLinenumber: 68
    functionLinenumberEnd: 129
    functionName: fu_lenovo_accessory_hid_bootloader_setup
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_lenovo_accessory_impl_dfu_attribute
    - fu_device_set_version_bootloader
    - fu_device_add_instance_u16
    - fu_lenovo_accessory_impl_get_fwversion
    - FU_LENOVO_ACCESSORY_IMPL
    - FU_HIDRAW_DEVICE
    - g_strdup_printf
    - fu_device_build_instance_id_full
    - fu_hidraw_device_parse_descriptor
    - g_autoptr
    - fu_hid_descriptor_find_report
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_accessory_hid_bootloader_setup(FuDevice *device,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:140,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:143,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:144,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:145,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:147,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:150,1
    - Dst: fu_input_stream_compute_crc32
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:152,1
    - Dst: fu_lenovo_accessory_impl_dfu_prepare
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:154,1
    - Dst: FU_LENOVO_ACCESSORY_IMPL
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:154,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:161,1
    - Dst: fu_lenovo_accessory_hid_bootloader_write_files
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:163,1
    - Dst: FU_LENOVO_ACCESSORY_HID_BOOTLOADER
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:164,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:167,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 131
    functionDepth: 5
    functionLinenumber: 131
    functionLinenumberEnd: 174
    functionName: fu_lenovo_accessory_hid_bootloader_write_firmware
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c
    functionUses: 0
    functionsReached:
    - fu_lenovo_accessory_hid_bootloader_write_files
    - fu_progress_add_step
    - fu_input_stream_size
    - fu_firmware_get_stream
    - fu_lenovo_accessory_impl_dfu_prepare
    - fu_progress_step_done
    - FU_LENOVO_ACCESSORY_IMPL
    - FU_LENOVO_ACCESSORY_HID_BOOTLOADER
    - g_autoptr
    - fu_progress_get_child
    - fu_input_stream_compute_crc32
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_accessory_hid_bootloader_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_add_flag
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:179,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:179,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:180,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:180,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:181,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:181,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:182,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:182,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:183,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:183,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:184,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:184,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:185,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:185,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:186,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:186,1
    - Dst: fu_device_set_firmware_size_min
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:187,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:187,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:188,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:188,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:189,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLenovoAccessoryHidBootloader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 176
    functionDepth: 6
    functionLinenumber: 176
    functionLinenumberEnd: 190
    functionName: fu_lenovo_accessory_hid_bootloader_init
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_set_firmware_size_min
    - fu_device_add_icon
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_accessory_hid_bootloader_init(FuLenovoAccessoryHidBootloader
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuLenovoAccessoryImplInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: fu_lenovo_accessory_hid_bootloader_impl_iface_init
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_accessory_hid_bootloader_impl_iface_init(FuLenovoAccessoryImplInterface
      *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLenovoAccessoryHidBootloaderClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 207
    functionName: fu_lenovo_accessory_hid_bootloader_class_init
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_accessory_hid_bootloader_class_init(FuLenovoAccessoryHidBootloaderClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuLenovoAccessoryImplInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: fu_lenovo_accessory_impl_default_init
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_accessory_impl_default_init(FuLenovoAccessoryImplInterface
      *iface)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:25,1
    - Dst: FU_IS_LENOVO_ACCESSORY_IMPL
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:25,1
    - Dst: FU_LENOVO_ACCESSORY_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:27,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLenovoAccessoryImpl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 36
    functionName: fu_lenovo_accessory_impl_read
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_LENOVO_ACCESSORY_IMPL
    - FU_LENOVO_ACCESSORY_IMPL_GET_IFACE
    - g_set_error_literal
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_lenovo_accessory_impl_read(FuLenovoAccessoryImpl *self, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:44,1
    - Dst: FU_IS_LENOVO_ACCESSORY_IMPL
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:44,1
    - Dst: FU_LENOVO_ACCESSORY_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:46,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuLenovoAccessoryImpl*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 55
    functionName: fu_lenovo_accessory_impl_write
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_LENOVO_ACCESSORY_IMPL
    - FU_LENOVO_ACCESSORY_IMPL_GET_IFACE
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_accessory_impl_write(FuLenovoAccessoryImpl *self,
      GByteArray *buf, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:62,1
    - Dst: FU_IS_LENOVO_ACCESSORY_IMPL
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:62,1
    - Dst: FU_LENOVO_ACCESSORY_IMPL_GET_IFACE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:64,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuLenovoAccessoryImpl*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: fu_lenovo_accessory_impl_process
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_LENOVO_ACCESSORY_IMPL
    - FU_LENOVO_ACCESSORY_IMPL_GET_IFACE
    - g_set_error_literal
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_lenovo_accessory_impl_process(FuLenovoAccessoryImpl *self, GByteArray *buf,
      GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:83,1
    - Dst: fu_struct_lenovo_accessory_cmd_new
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:84,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_data_size
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:86,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_command_class
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:87,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_command_id
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:90,1
    - Dst: fu_lenovo_accessory_impl_process
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:94,1
    - Dst: fu_struct_lenovo_fw_version_rsp_parse
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:97,1
    - Dst: fu_struct_lenovo_fw_version_rsp_get_major
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:101,1
    - Dst: fu_struct_lenovo_fw_version_rsp_get_minor
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:103,1
    - Dst: fu_struct_lenovo_fw_version_rsp_get_internal
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - self
    - major
    - minor
    - micro
    - error
    argTypes:
    - FuLenovoAccessoryImpl*
    - guint8*
    - guint8*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 107
    functionName: fu_lenovo_accessory_impl_get_fwversion
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c
    functionUses: 1
    functionsReached:
    - fu_struct_lenovo_accessory_cmd_new
    - fu_struct_lenovo_accessory_cmd_set_command_class
    - fu_struct_lenovo_accessory_cmd_set_data_size
    - fu_struct_lenovo_fw_version_rsp_get_major
    - fu_lenovo_accessory_impl_process
    - fu_struct_lenovo_fw_version_rsp_get_minor
    - fu_struct_lenovo_fw_version_rsp_get_internal
    - fu_struct_lenovo_accessory_cmd_set_command_id
    - fu_struct_lenovo_fw_version_rsp_parse
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_accessory_impl_get_fwversion(FuLenovoAccessoryImpl
      *self,\n\t\t\t\t       guint8 *major,\n\t\t\t\t       guint8 *minor,\n\t\t\t\t
      \      guint8 *micro,\n\t\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:113,1
    - Dst: fu_struct_lenovo_accessory_cmd_new
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:113,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:114,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:115,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_data_size
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:117,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_command_class
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:118,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_command_id
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:121,1
    - Dst: fu_lenovo_accessory_impl_process
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:124,1
    - Dst: fu_struct_lenovo_devicemode_rsp_parse
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:127,1
    - Dst: fu_struct_lenovo_devicemode_rsp_get_mode
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - self
    - mode
    - error
    argTypes:
    - FuLenovoAccessoryImpl*
    - FuLenovoDeviceMode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 134
    functionName: fu_lenovo_accessory_impl_get_mode
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c
    functionUses: 0
    functionsReached:
    - fu_struct_lenovo_accessory_cmd_new
    - fu_struct_lenovo_devicemode_rsp_get_mode
    - fu_struct_lenovo_accessory_cmd_set_command_class
    - fu_struct_lenovo_accessory_cmd_set_data_size
    - fu_struct_lenovo_devicemode_rsp_parse
    - fu_lenovo_accessory_impl_process
    - fu_struct_lenovo_accessory_cmd_set_command_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_accessory_impl_get_mode(FuLenovoAccessoryImpl *self,
      FuLenovoDeviceMode *mode, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:142,1
    - Dst: fu_struct_lenovo_accessory_cmd_new
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:143,1
    - Dst: fu_struct_lenovo_devicemode_req_new
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:143,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:144,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_data_size
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:146,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_command_class
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:147,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_command_id
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:150,1
    - Dst: fu_struct_lenovo_devicemode_req_set_cmd
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:153,1
    - Dst: fu_struct_lenovo_devicemode_req_set_mode
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:155,1
    - Dst: fu_lenovo_accessory_impl_write
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:157,1
    - Dst: fu_lenovo_accessory_impl_process
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - self
    - mode
    - error
    argTypes:
    - FuLenovoAccessoryImpl*
    - FuLenovoDeviceMode
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 164
    functionName: fu_lenovo_accessory_impl_set_mode
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c
    functionUses: 0
    functionsReached:
    - fu_struct_lenovo_accessory_cmd_new
    - fu_struct_lenovo_accessory_cmd_set_command_class
    - fu_struct_lenovo_accessory_cmd_set_data_size
    - fu_lenovo_accessory_impl_process
    - fu_struct_lenovo_devicemode_req_new
    - fu_lenovo_accessory_impl_write
    - fu_struct_lenovo_devicemode_req_set_cmd
    - fu_struct_lenovo_accessory_cmd_set_command_id
    - fu_struct_lenovo_devicemode_req_set_mode
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_accessory_impl_set_mode(FuLenovoAccessoryImpl *self,\n\t\t\t\t
      \ FuLenovoDeviceMode mode,\n\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:172,1
    - Dst: fu_struct_lenovo_accessory_cmd_new
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:172,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:173,1
    - Dst: fu_struct_lenovo_dfu_exit_req_new
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:173,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:174,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_data_size
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:176,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_command_class
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:177,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_command_id
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:180,1
    - Dst: fu_struct_lenovo_dfu_exit_req_set_cmd
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:183,1
    - Dst: fu_struct_lenovo_dfu_exit_req_set_exit_code
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:185,1
    - Dst: fu_lenovo_accessory_impl_write
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:193,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - self
    - exit_code
    - error
    argTypes:
    - FuLenovoAccessoryImpl*
    - FuLenovoDfuExitCode
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 198
    functionName: fu_lenovo_accessory_impl_dfu_exit
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c
    functionUses: 1
    functionsReached:
    - fu_struct_lenovo_dfu_exit_req_new
    - fu_struct_lenovo_accessory_cmd_new
    - fu_struct_lenovo_dfu_exit_req_set_cmd
    - g_debug
    - fu_struct_lenovo_accessory_cmd_set_data_size
    - fu_struct_lenovo_accessory_cmd_set_command_class
    - fu_lenovo_accessory_impl_write
    - fu_struct_lenovo_accessory_cmd_set_command_id
    - g_autoptr
    - fu_struct_lenovo_dfu_exit_req_set_exit_code
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_accessory_impl_dfu_exit(FuLenovoAccessoryImpl *self,\n\t\t\t\t
      \ FuLenovoDfuExitCode exit_code,\n\t\t\t\t  GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:210,1
    - Dst: fu_struct_lenovo_accessory_cmd_new
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:210,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:212,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_data_size
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:214,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_command_class
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:215,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_command_id
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:218,1
    - Dst: fu_lenovo_accessory_impl_process
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:221,1
    - Dst: fu_struct_lenovo_dfu_attribute_rsp_parse
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:224,1
    - Dst: fu_struct_lenovo_dfu_attribute_rsp_get_major_ver
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:230,1
    - Dst: fu_struct_lenovo_dfu_attribute_rsp_get_minor_ver
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:232,1
    - Dst: fu_struct_lenovo_dfu_attribute_rsp_get_product_pid
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:234,1
    - Dst: fu_struct_lenovo_dfu_attribute_rsp_get_processor_id
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:236,1
    - Dst: fu_struct_lenovo_dfu_attribute_rsp_get_app_max_size
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:238,1
    - Dst: fu_struct_lenovo_dfu_attribute_rsp_get_page_size
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:240,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 8
    argNames:
    - self
    - major_ver
    - minor_ver
    - product_pid
    - processor_id
    - app_max_size
    - page_size
    - error
    argTypes:
    - FuLenovoAccessoryImpl*
    - guint8*
    - guint8*
    - guint16*
    - guint8*
    - guint32*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 242
    functionName: fu_lenovo_accessory_impl_dfu_attribute
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c
    functionUses: 1
    functionsReached:
    - fu_struct_lenovo_dfu_attribute_rsp_parse
    - fu_struct_lenovo_dfu_attribute_rsp_get_app_max_size
    - fu_struct_lenovo_dfu_attribute_rsp_get_page_size
    - fu_struct_lenovo_accessory_cmd_new
    - fu_struct_lenovo_accessory_cmd_set_command_class
    - fu_struct_lenovo_accessory_cmd_set_data_size
    - fu_struct_lenovo_dfu_attribute_rsp_get_processor_id
    - fu_lenovo_accessory_impl_process
    - fu_struct_lenovo_accessory_cmd_set_command_id
    - fu_struct_lenovo_dfu_attribute_rsp_get_major_ver
    - fu_struct_lenovo_dfu_attribute_rsp_get_minor_ver
    - g_autoptr
    - fu_struct_lenovo_dfu_attribute_rsp_get_product_pid
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_accessory_impl_dfu_attribute(FuLenovoAccessoryImpl
      *self,\n\t\t\t\t       guint8 *major_ver,\n\t\t\t\t       guint8 *minor_ver,\n\t\t\t\t
      \      guint16 *product_pid,\n\t\t\t\t       guint8 *processor_id,\n\t\t\t\t
      \      guint32 *app_max_size,\n\t\t\t\t       guint32 *page_size,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:252,1
    - Dst: fu_struct_lenovo_accessory_cmd_new
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:252,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:253,1
    - Dst: fu_struct_lenovo_dfu_prepare_req_new
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:253,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:254,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_data_size
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:256,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_command_class
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:257,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_command_id
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:260,1
    - Dst: fu_struct_lenovo_dfu_prepare_req_set_cmd
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:263,1
    - Dst: fu_struct_lenovo_dfu_prepare_req_set_file_type
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:265,1
    - Dst: fu_struct_lenovo_dfu_prepare_req_set_start_address
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:266,1
    - Dst: fu_struct_lenovo_dfu_prepare_req_set_end_address
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:267,1
    - Dst: fu_struct_lenovo_dfu_prepare_req_set_crc32
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:268,1
    - Dst: fu_lenovo_accessory_impl_process
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 6
    argNames:
    - self
    - file_type
    - start_address
    - end_address
    - crc32
    - error
    argTypes:
    - FuLenovoAccessoryImpl*
    - FuLenovoDfuFileType
    - guint32
    - guint32
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 275
    functionName: fu_lenovo_accessory_impl_dfu_prepare
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c
    functionUses: 1
    functionsReached:
    - fu_struct_lenovo_accessory_cmd_new
    - fu_struct_lenovo_dfu_prepare_req_set_file_type
    - fu_struct_lenovo_accessory_cmd_set_command_class
    - fu_struct_lenovo_accessory_cmd_set_data_size
    - fu_lenovo_accessory_impl_process
    - fu_struct_lenovo_dfu_prepare_req_set_start_address
    - fu_struct_lenovo_dfu_prepare_req_set_end_address
    - fu_struct_lenovo_accessory_cmd_set_command_id
    - fu_struct_lenovo_dfu_prepare_req_set_cmd
    - fu_struct_lenovo_dfu_prepare_req_new
    - g_autoptr
    - fu_struct_lenovo_dfu_prepare_req_set_crc32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_accessory_impl_dfu_prepare(FuLenovoAccessoryImpl
      *self,\n\t\t\t\t     FuLenovoDfuFileType file_type,\n\t\t\t\t     guint32 start_address,\n\t\t\t\t
      \    guint32 end_address,\n\t\t\t\t     guint32 crc32,\n\t\t\t\t     GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:285,1
    - Dst: fu_struct_lenovo_accessory_cmd_new
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:285,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:286,1
    - Dst: fu_struct_lenovo_dfu_fw_req_new
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:286,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:287,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_data_size
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:289,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_command_class
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:290,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_command_id
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:293,1
    - Dst: fu_struct_lenovo_dfu_fw_req_set_cmd
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:296,1
    - Dst: fu_struct_lenovo_dfu_fw_req_set_file_type
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:298,1
    - Dst: fu_struct_lenovo_dfu_fw_req_set_offset_address
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:299,1
    - Dst: fu_struct_lenovo_dfu_fw_req_set_data
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:300,1
    - Dst: fu_lenovo_accessory_impl_process
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 6
    argNames:
    - self
    - file_type
    - address
    - data
    - datasz
    - error
    argTypes:
    - FuLenovoAccessoryImpl*
    - FuLenovoDfuFileType
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 308
    functionName: fu_lenovo_accessory_impl_dfu_file
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c
    functionUses: 1
    functionsReached:
    - fu_struct_lenovo_accessory_cmd_new
    - fu_struct_lenovo_dfu_fw_req_set_cmd
    - fu_struct_lenovo_accessory_cmd_set_command_class
    - fu_struct_lenovo_accessory_cmd_set_data_size
    - fu_lenovo_accessory_impl_process
    - fu_struct_lenovo_dfu_fw_req_set_data
    - fu_struct_lenovo_dfu_fw_req_set_offset_address
    - fu_struct_lenovo_accessory_cmd_set_command_id
    - g_autoptr
    - fu_struct_lenovo_dfu_fw_req_new
    - fu_struct_lenovo_dfu_fw_req_set_file_type
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_accessory_impl_dfu_file(FuLenovoAccessoryImpl *self,\n\t\t\t\t
      \ FuLenovoDfuFileType file_type,\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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:313,1
    - Dst: fu_struct_lenovo_accessory_cmd_new
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:313,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:314,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:315,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_data_size
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:317,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_command_class
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:318,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_command_id
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:321,1
    - Dst: fu_lenovo_accessory_impl_process
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:325,1
    - Dst: fu_struct_lenovo_dfu_crc_rsp_parse
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:328,1
    - Dst: fu_struct_lenovo_dfu_crc_rsp_get_crc32
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - self
    - crc32
    - error
    argTypes:
    - FuLenovoAccessoryImpl*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 336
    functionName: fu_lenovo_accessory_impl_dfu_crc
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c
    functionUses: 0
    functionsReached:
    - fu_struct_lenovo_accessory_cmd_new
    - fu_struct_lenovo_dfu_crc_rsp_parse
    - fu_struct_lenovo_accessory_cmd_set_command_class
    - fu_struct_lenovo_accessory_cmd_set_data_size
    - fu_lenovo_accessory_impl_process
    - fu_struct_lenovo_dfu_crc_rsp_get_crc32
    - fu_struct_lenovo_accessory_cmd_set_command_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_accessory_impl_dfu_crc(FuLenovoAccessoryImpl *self,
      guint32 *crc32, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:341,1
    - Dst: fu_struct_lenovo_accessory_cmd_new
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:341,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:342,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_command_class
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:344,1
    - Dst: fu_struct_lenovo_accessory_cmd_set_command_id
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:347,1
    - Dst: fu_lenovo_accessory_impl_process
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLenovoAccessoryImpl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 356
    functionName: fu_lenovo_accessory_impl_dfu_entry
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c
    functionUses: 0
    functionsReached:
    - fu_struct_lenovo_accessory_cmd_new
    - fu_struct_lenovo_accessory_cmd_set_command_class
    - fu_lenovo_accessory_impl_process
    - fu_struct_lenovo_accessory_cmd_set_command_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_accessory_impl_dfu_entry(FuLenovoAccessoryImpl *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LENOVO_ACCESSORY_HID_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:34,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:35,1
    - Dst: fu_hidraw_device_parse_descriptor
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:37,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:37,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:40,1
    - Dst: fu_lenovo_accessory_impl_get_fwversion
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:53,1
    - Dst: FU_LENOVO_ACCESSORY_IMPL
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:53,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:59,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 26
    functionDepth: 6
    functionLinenumber: 26
    functionLinenumberEnd: 62
    functionName: fu_lenovo_accessory_hid_device_setup
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_lenovo_accessory_impl_get_fwversion
    - FU_LENOVO_ACCESSORY_IMPL
    - FU_HIDRAW_DEVICE
    - g_strdup_printf
    - FU_LENOVO_ACCESSORY_HID_DEVICE
    - fu_hidraw_device_parse_descriptor
    - g_autoptr
    - fu_hid_descriptor_find_report
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_accessory_hid_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_LENOVO_ACCESSORY_HID_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:67,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:68,1
    - Dst: fu_lenovo_accessory_impl_set_mode
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:69,1
    - Dst: FU_LENOVO_ACCESSORY_IMPL
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:69,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 64
    functionDepth: 6
    functionLinenumber: 64
    functionLinenumberEnd: 75
    functionName: fu_lenovo_accessory_hid_device_detach
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_lenovo_accessory_impl_set_mode
    - FU_LENOVO_ACCESSORY_IMPL
    - FU_LENOVO_ACCESSORY_HID_DEVICE
    - fu_progress_set_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_accessory_hid_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:80,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:81,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:82,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:83,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:84,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: fu_lenovo_accessory_hid_device_set_progress
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_accessory_hid_device_set_progress(FuDevice *device,
      FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuLenovoAccessoryImplInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: fu_lenovo_accessory_hid_device_impl_iface_init
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_accessory_hid_device_impl_iface_init(FuLenovoAccessoryImplInterface
      *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLenovoAccessoryHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: fu_lenovo_accessory_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_accessory_hid_device_class_init(FuLenovoAccessoryHidDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:108,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:109,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:109,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:110,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:110,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:111,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:111,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:112,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:112,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:113,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:113,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:114,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:114,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:115,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:115,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:116,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:116,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:117,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:117,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:118,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLenovoAccessoryHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 105
    functionDepth: 6
    functionLinenumber: 105
    functionLinenumberEnd: 119
    functionName: fu_lenovo_accessory_hid_device_init
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_install_duration
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_accessory_hid_device_init(FuLenovoAccessoryHidDevice
      *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:35,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:37,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:40,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:41,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:41,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:43,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:45,1
    - Dst: fu_lenovo_accessory_impl_dfu_file
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:48,1
    - Dst: FU_LENOVO_ACCESSORY_IMPL
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:48,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:50,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:51,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:52,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - self
    - file_type
    - stream
    - progress
    - error
    argTypes:
    - FuLenovoAccessoryBleDevice*
    - FuLenovoDfuFileType
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 60
    functionName: fu_lenovo_accessory_ble_device_write_files
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_lenovo_accessory_impl_dfu_file
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - FU_LENOVO_ACCESSORY_IMPL
    - fu_progress_step_done
    - fu_chunk_get_address
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_accessory_ble_device_write_files(FuLenovoAccessoryBleDevice
      *self,\n\t\t\t\t\t   FuLenovoDfuFileType file_type,\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: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_LENOVO_ACCESSORY_BLE_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:73,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:76,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:77,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:78,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:80,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:83,1
    - Dst: fu_input_stream_compute_crc32
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:85,1
    - Dst: fu_lenovo_accessory_impl_dfu_entry
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:87,1
    - Dst: FU_LENOVO_ACCESSORY_IMPL
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:87,1
    - Dst: fu_lenovo_accessory_impl_dfu_prepare
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:89,1
    - Dst: FU_LENOVO_ACCESSORY_IMPL
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:89,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:96,1
    - Dst: fu_lenovo_accessory_ble_device_write_files
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:97,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:100,1
    - Dst: fu_lenovo_accessory_impl_dfu_crc
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:103,1
    - Dst: FU_LENOVO_ACCESSORY_IMPL
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:103,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:106,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:110,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:118,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 62
    functionDepth: 5
    functionLinenumber: 62
    functionLinenumberEnd: 122
    functionName: fu_lenovo_accessory_ble_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_firmware_get_stream
    - fu_input_stream_size
    - fu_lenovo_accessory_impl_dfu_prepare
    - g_set_error
    - fu_progress_step_done
    - fu_lenovo_accessory_impl_dfu_entry
    - FU_LENOVO_ACCESSORY_IMPL
    - fu_lenovo_accessory_impl_dfu_crc
    - g_prefix_error
    - FU_LENOVO_ACCESSORY_BLE_DEVICE
    - fu_lenovo_accessory_ble_device_write_files
    - g_autoptr
    - fu_progress_get_child
    - fu_input_stream_compute_crc32
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_lenovo_accessory_ble_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_lenovo_accessory_impl_dfu_exit
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:127,1
    - Dst: FU_LENOVO_ACCESSORY_IMPL
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:127,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:130,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 6
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: fu_lenovo_accessory_ble_device_attach
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_prefix_error_literal
    - fu_lenovo_accessory_impl_dfu_exit
    - FU_LENOVO_ACCESSORY_IMPL
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_accessory_ble_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_lenovo_accessory_impl_get_fwversion
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:145,1
    - Dst: FU_LENOVO_ACCESSORY_IMPL
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:145,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:151,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 154
    functionName: fu_lenovo_accessory_ble_device_setup
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_device_set_version
    - fu_lenovo_accessory_impl_get_fwversion
    - FU_LENOVO_ACCESSORY_IMPL
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_accessory_ble_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:159,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:160,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:161,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:162,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:163,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: fu_lenovo_accessory_ble_device_set_progress
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_accessory_ble_device_set_progress(FuDevice *device,
      FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LENOVO_ACCESSORY_BLE_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:170,1
    - Dst: fu_bluez_device_read
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:171,1
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - impl
    - error
    argTypes:
    - FuLenovoAccessoryImpl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 4
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: fu_lenovo_accessory_ble_device_read
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_bluez_device_read
    - FU_BLUEZ_DEVICE
    - FU_LENOVO_ACCESSORY_BLE_DEVICE
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_lenovo_accessory_ble_device_read(FuLenovoAccessoryImpl *impl, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_LENOVO_ACCESSORY_BLE_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:177,1
    - Dst: fu_bluez_device_write
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:178,1
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - impl
    - buf
    - error
    argTypes:
    - FuLenovoAccessoryImpl*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: fu_lenovo_accessory_ble_device_write
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_bluez_device_write
    - FU_BLUEZ_DEVICE
    - FU_LENOVO_ACCESSORY_BLE_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_accessory_ble_device_write(FuLenovoAccessoryImpl
      *impl, GByteArray *buf, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:187,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:188,1
    - Dst: fu_lenovo_accessory_ble_device_read
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:190,1
    - Dst: FU_LENOVO_ACCESSORY_IMPL
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:190,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:194,1
    - Dst: fu_struct_lenovo_accessory_cmd_parse
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:197,1
    - Dst: fu_struct_lenovo_accessory_cmd_get_target_status
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:200,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:202,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:206,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 181
    functionDepth: 5
    functionLinenumber: 181
    functionLinenumberEnd: 218
    functionName: fu_lenovo_accessory_ble_device_poll_cb
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - FU_LENOVO_ACCESSORY_IMPL
    - fu_lenovo_accessory_ble_device_read
    - fu_struct_lenovo_accessory_cmd_get_target_status
    - g_byte_array_append
    - g_autoptr
    - fu_struct_lenovo_accessory_cmd_parse
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_lenovo_accessory_ble_device_poll_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_LENOVO_ACCESSORY_BLE_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:224,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:224,1
    - Dst: fu_lenovo_accessory_ble_device_write
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:226,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:227,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:230,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:230,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - impl
    - buf
    - error
    argTypes:
    - FuLenovoAccessoryImpl*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 238
    functionName: fu_lenovo_accessory_ble_device_process
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - g_byte_array_new
    - FU_LENOVO_ACCESSORY_BLE_DEVICE
    - fu_lenovo_accessory_ble_device_write
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_lenovo_accessory_ble_device_process(FuLenovoAccessoryImpl *impl, GByteArray
      *buf, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:243,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:243,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:244,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:244,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:245,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:245,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:246,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:246,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:247,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:247,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:248,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:248,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:249,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:249,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:250,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLenovoAccessoryBleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 240
    functionDepth: 6
    functionLinenumber: 240
    functionLinenumberEnd: 251
    functionName: fu_lenovo_accessory_ble_device_init
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - FU_DEVICE
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_accessory_ble_device_init(FuLenovoAccessoryBleDevice
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iface
    argTypes:
    - FuLenovoAccessoryImplInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: fu_lenovo_accessory_ble_device_impl_iface_init
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_accessory_ble_device_impl_iface_init(FuLenovoAccessoryImplInterface
      *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLenovoAccessoryBleDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 269
    functionName: fu_lenovo_accessory_ble_device_class_init
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_accessory_ble_device_class_init(FuLenovoAccessoryBleDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-plugin.c:23,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-plugin.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLenovoAccessoryPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: fu_lenovo_accessory_plugin_init
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_accessory_plugin_init(FuLenovoAccessoryPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-plugin.c:29,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-plugin.c:31,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-plugin.c:32,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-plugin.c:33,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-plugin.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: fu_lenovo_accessory_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_accessory_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-plugin.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLenovoAccessoryPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: fu_lenovo_accessory_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_lenovo_accessory_plugin_class_init(FuLenovoAccessoryPluginClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ILITEK_ITS_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:42,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:43,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:44,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    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_ilitek_its_device_to_string
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append
    - fwupd_codec_string_append_hex
    - FU_ILITEK_ITS_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_ilitek_its_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_ILITEK_ITS_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:57,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:62,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:63,1
    - Dst: fu_udev_device_read
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:65,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:65,1
    - Dst: fu_struct_ilitek_its_hid_res_parse
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:73,1
    - Dst: fu_struct_ilitek_its_hid_res_get_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:76,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:77,1
    - Dst: fu_struct_ilitek_its_hid_res_get_data
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:84,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:86,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:93,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:96,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - device
    - data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 54
    functionDepth: 5
    functionLinenumber: 54
    functionLinenumberEnd: 100
    functionName: fu_ilitek_its_device_read_cb
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_set_error_literal
    - fu_struct_ilitek_its_hid_res_parse
    - fu_dump_raw
    - fu_struct_ilitek_its_hid_res_get_data
    - g_byte_array_append
    - FU_UDEV_DEVICE
    - fu_udev_device_read
    - g_autoptr
    - fu_struct_ilitek_its_hid_res_get_cmd
    - FU_ILITEK_ITS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_device_read_cb(FuDevice *device, gpointer data,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_ilitek_its_hid_cmd_get_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:109,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:114,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:114,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:119,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:123,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:123,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:124,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:124,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - st_cmd
    - rbuf
    - error
    argTypes:
    - FuIlitekItsDevice*
    - FuStructIlitekItsHidCmd*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 102
    functionDepth: 5
    functionLinenumber: 102
    functionLinenumberEnd: 137
    functionName: fu_ilitek_its_device_send_cmd
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_device_sleep
    - g_prefix_error_literal
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_device_retry_full
    - fu_struct_ilitek_its_hid_cmd_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ilitek_its_device_send_cmd(FuIlitekItsDevice *self,\n\t\t\t
      \     FuStructIlitekItsHidCmd *st_cmd,\n\t\t\t      GByteArray *rbuf,\n\t\t\t
      \     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_ilitek_its_hid_cmd_get_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:145,1
    - Dst: fu_ilitek_its_device_send_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:150,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:153,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - st_cmd
    - error
    argTypes:
    - FuIlitekItsDevice*
    - FuStructIlitekItsHidCmd*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 139
    functionDepth: 6
    functionLinenumber: 139
    functionLinenumberEnd: 159
    functionName: fu_ilitek_its_device_send_cmd_then_wake_ack
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_struct_ilitek_its_hid_cmd_get_cmd
    - fu_device_retry_full
    - fu_ilitek_its_device_send_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ilitek_its_device_send_cmd_then_wake_ack(FuIlitekItsDevice
      *self,\n\t\t\t\t\t    FuStructIlitekItsHidCmd *st_cmd,\n\t\t\t\t\t    GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_ilitek_its_long_hid_cmd_get_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:167,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:172,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:172,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:177,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:181,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - st_cmd
    - error
    argTypes:
    - FuIlitekItsDevice*
    - FuStructIlitekItsLongHidCmd*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 161
    functionDepth: 5
    functionLinenumber: 161
    functionLinenumberEnd: 187
    functionName: fu_ilitek_its_device_send_long_cmd_then_wake_ack
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_struct_ilitek_its_long_hid_cmd_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ilitek_its_device_send_long_cmd_then_wake_ack(FuIlitekItsDevice
      *self,\n\t\t\t\t\t\t FuStructIlitekItsLongHidCmd *st_cmd,\n\t\t\t\t\t\t GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:195,1
    - Dst: fu_struct_ilitek_its_hid_cmd_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:195,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_write_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:197,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:198,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:200,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:203,1
    - Dst: fu_ilitek_its_device_send_cmd_then_wake_ack
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - self
    - start
    - end
    - error
    argTypes:
    - FuIlitekItsDevice*
    - guint32
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 189
    functionDepth: 7
    functionLinenumber: 189
    functionLinenumberEnd: 208
    functionName: fu_ilitek_its_device_recalculate_crc
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ilitek_its_hid_cmd_set_cmd
    - fu_struct_ilitek_its_hid_cmd_set_write_len
    - fu_ilitek_its_device_send_cmd_then_wake_ack
    - g_autoptr
    - fu_struct_ilitek_its_hid_cmd_new
    - fu_memwrite_uint24
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ilitek_its_device_recalculate_crc(FuIlitekItsDevice *self,\n\t\t\t\t
      \    guint32 start,\n\t\t\t\t     guint32 end,\n\t\t\t\t     GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:213,1
    - Dst: fu_struct_ilitek_its_hid_cmd_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:213,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:214,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:214,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_write_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:216,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_read_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:217,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:218,1
    - Dst: fu_ilitek_its_device_send_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:221,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - self
    - crc
    - error
    argTypes:
    - FuIlitekItsDevice*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 210
    functionDepth: 6
    functionLinenumber: 210
    functionLinenumberEnd: 225
    functionName: fu_ilitek_its_device_get_block_crc
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ilitek_its_hid_cmd_set_read_len
    - fu_struct_ilitek_its_hid_cmd_set_cmd
    - fu_ilitek_its_device_send_cmd
    - g_byte_array_new
    - fu_struct_ilitek_its_hid_cmd_set_write_len
    - fu_memread_uint16_safe
    - g_autoptr
    - fu_struct_ilitek_its_hid_cmd_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_device_get_block_crc(FuIlitekItsDevice *self,
      guint16 *crc, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:234,1
    - Dst: fu_struct_ilitek_its_hid_cmd_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:234,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_write_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:236,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:237,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:238,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:242,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:245,1
    - Dst: fu_ilitek_its_device_send_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - self
    - in_ap
    - start
    - end
    - error
    argTypes:
    - FuIlitekItsDevice*
    - gboolean
    - guint32
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 227
    functionDepth: 6
    functionLinenumber: 227
    functionLinenumberEnd: 251
    functionName: fu_ilitek_its_device_flash_enable
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ilitek_its_hid_cmd_set_cmd
    - fu_memwrite_uint16
    - fu_ilitek_its_device_send_cmd
    - fu_struct_ilitek_its_hid_cmd_set_write_len
    - g_autoptr
    - fu_struct_ilitek_its_hid_cmd_new
    - fu_memwrite_uint24
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ilitek_its_device_flash_enable(FuIlitekItsDevice *self,\n\t\t\t\t
      \ gboolean in_ap,\n\t\t\t\t  guint32 start,\n\t\t\t\t  guint32 end,\n\t\t\t\t
      \ GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:258,1
    - Dst: fu_struct_ilitek_its_hid_cmd_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:258,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_write_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:260,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:261,1
    - Dst: fu_ilitek_its_device_send_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:265,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:269,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - self
    - mode
    - error
    argTypes:
    - FuIlitekItsDevice*
    - FuIlitekItsCtrlMode
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 253
    functionDepth: 6
    functionLinenumber: 253
    functionLinenumberEnd: 271
    functionName: fu_ilitek_its_device_set_ctrl_mode
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ilitek_its_hid_cmd_set_cmd
    - fu_device_sleep
    - fu_ilitek_its_device_send_cmd
    - FU_DEVICE
    - fu_struct_ilitek_its_hid_cmd_set_write_len
    - g_autoptr
    - fu_struct_ilitek_its_hid_cmd_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ilitek_its_device_set_ctrl_mode(FuIlitekItsDevice *self,\n\t\t\t\t
      \  FuIlitekItsCtrlMode mode,\n\t\t\t\t   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_ilitek_its_device_set_ctrl_mode
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIlitekItsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 7
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: fu_ilitek_its_device_enable_tde
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_ilitek_its_device_set_ctrl_mode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_device_enable_tde(FuIlitekItsDevice *self, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_ilitek_its_device_set_ctrl_mode
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIlitekItsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 279
    functionDepth: 7
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: fu_ilitek_its_device_disable_tde
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_ilitek_its_device_set_ctrl_mode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_device_disable_tde(FuIlitekItsDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:288,1
    - Dst: fu_struct_ilitek_its_hid_cmd_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:288,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:289,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:290,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:290,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:293,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:293,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:295,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:295,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_write_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:301,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_read_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:302,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:303,1
    - Dst: fu_ilitek_its_device_send_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:304,1
    - Dst: fu_struct_ilitek_its_fwid_parse
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:308,1
    - Dst: fu_struct_ilitek_its_fwid_get_fwid
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:311,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - fwid
    - error
    argTypes:
    - FuIlitekItsDevice*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 285
    functionDepth: 6
    functionLinenumber: 285
    functionLinenumberEnd: 313
    functionName: fu_ilitek_its_device_get_fwid
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ilitek_its_hid_cmd_set_read_len
    - fu_struct_ilitek_its_hid_cmd_set_cmd
    - fu_struct_ilitek_its_fwid_get_fwid
    - fu_struct_ilitek_its_fwid_parse
    - fu_ilitek_its_device_send_cmd
    - FU_DEVICE
    - g_byte_array_new
    - fu_device_has_flag
    - fu_struct_ilitek_its_hid_cmd_set_write_len
    - g_autoptr
    - fu_struct_ilitek_its_hid_cmd_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_device_get_fwid(FuIlitekItsDevice *self, guint16
      *fwid, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:318,1
    - Dst: fu_struct_ilitek_its_hid_cmd_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:318,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:319,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:320,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:320,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:323,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:323,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:325,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:325,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_write_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:331,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_read_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:332,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:333,1
    - Dst: fu_ilitek_its_device_send_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:334,1
    - Dst: fu_struct_ilitek_its_sensor_id_parse
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:338,1
    - Dst: fu_struct_ilitek_its_sensor_id_get_sensor_id
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - self
    - sensor_id
    - error
    argTypes:
    - FuIlitekItsDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 315
    functionDepth: 6
    functionLinenumber: 315
    functionLinenumberEnd: 343
    functionName: fu_ilitek_its_device_get_sensor_id
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ilitek_its_hid_cmd_set_read_len
    - fu_struct_ilitek_its_hid_cmd_set_cmd
    - fu_ilitek_its_device_send_cmd
    - FU_DEVICE
    - g_byte_array_new
    - fu_device_has_flag
    - fu_struct_ilitek_its_sensor_id_get_sensor_id
    - fu_struct_ilitek_its_hid_cmd_set_write_len
    - g_autoptr
    - fu_struct_ilitek_its_hid_cmd_new
    - fu_struct_ilitek_its_sensor_id_parse
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_device_get_sensor_id(FuIlitekItsDevice *self,
      guint8 *sensor_id, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:348,1
    - Dst: fu_struct_ilitek_its_hid_cmd_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:348,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:349,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:349,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_write_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:351,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_read_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:352,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:353,1
    - Dst: fu_ilitek_its_device_send_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:355,1
    - Dst: fu_memread_uint24_safe
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIlitekItsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 345
    functionDepth: 6
    functionLinenumber: 345
    functionLinenumberEnd: 363
    functionName: fu_ilitek_its_device_ensure_protocol_version
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ilitek_its_hid_cmd_set_read_len
    - fu_struct_ilitek_its_hid_cmd_set_cmd
    - fu_ilitek_its_device_send_cmd
    - fu_memread_uint24_safe
    - g_byte_array_new
    - fu_struct_ilitek_its_hid_cmd_set_write_len
    - g_autoptr
    - fu_struct_ilitek_its_hid_cmd_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_device_ensure_protocol_version(FuIlitekItsDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:369,1
    - Dst: fu_struct_ilitek_its_hid_cmd_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:369,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:370,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:370,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_write_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:372,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_read_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:373,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:374,1
    - Dst: fu_ilitek_its_device_send_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:376,1
    - Dst: fu_memread_uint64_safe
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:379,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:382,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:382,1
    - Dst: fu_device_set_version_bootloader_raw
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:383,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:383,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:386,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:386,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:388,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIlitekItsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 365
    functionDepth: 6
    functionLinenumber: 365
    functionLinenumberEnd: 393
    functionName: fu_ilitek_its_device_ensure_fw_version
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ilitek_its_hid_cmd_set_read_len
    - fu_struct_ilitek_its_hid_cmd_set_cmd
    - fu_device_set_version_raw
    - fu_device_set_version_bootloader_raw
    - fu_ilitek_its_device_send_cmd
    - FU_DEVICE
    - g_byte_array_new
    - fu_device_has_flag
    - fu_struct_ilitek_its_hid_cmd_set_write_len
    - fu_memread_uint64_safe
    - g_autoptr
    - fu_struct_ilitek_its_hid_cmd_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_device_ensure_fw_version(FuIlitekItsDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:399,1
    - Dst: fu_struct_ilitek_its_hid_cmd_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:399,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:400,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:400,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_write_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:402,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_read_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:403,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:404,1
    - Dst: fu_ilitek_its_device_send_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:405,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:408,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:411,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:411,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:413,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIlitekItsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 395
    functionDepth: 6
    functionLinenumber: 395
    functionLinenumberEnd: 417
    functionName: fu_ilitek_its_device_ensure_ic_mode
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_struct_ilitek_its_hid_cmd_set_read_len
    - fu_struct_ilitek_its_hid_cmd_set_cmd
    - fu_ilitek_its_device_send_cmd
    - FU_DEVICE
    - fu_device_remove_flag
    - g_byte_array_new
    - fu_memread_uint8_safe
    - fu_struct_ilitek_its_hid_cmd_set_write_len
    - g_autoptr
    - fu_struct_ilitek_its_hid_cmd_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_device_ensure_ic_mode(FuIlitekItsDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:423,1
    - Dst: fu_struct_ilitek_its_hid_cmd_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:423,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:424,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:425,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:425,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_write_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:427,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_read_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:428,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:429,1
    - Dst: fu_ilitek_its_device_send_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:430,1
    - Dst: fu_struct_ilitek_its_mcu_version_parse
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:433,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:437,1
    - Dst: fu_struct_ilitek_its_mcu_version_get_ic_name
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:437,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:438,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:439,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIlitekItsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 419
    functionDepth: 6
    functionLinenumber: 419
    functionLinenumberEnd: 443
    functionName: fu_ilitek_its_device_ensure_ic_name_old
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ilitek_its_hid_cmd_set_read_len
    - fu_struct_ilitek_its_hid_cmd_set_cmd
    - fu_ilitek_its_device_send_cmd
    - fu_struct_ilitek_its_mcu_version_parse
    - g_strdup_printf
    - g_byte_array_new
    - fu_device_set_name
    - FU_DEVICE
    - fu_struct_ilitek_its_hid_cmd_set_write_len
    - fu_struct_ilitek_its_mcu_version_get_ic_name
    - g_autoptr
    - fu_struct_ilitek_its_hid_cmd_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_device_ensure_ic_name_old(FuIlitekItsDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:449,1
    - Dst: fu_struct_ilitek_its_hid_cmd_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:449,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:450,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:451,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:451,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:454,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:454,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:456,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:456,1
    - Dst: fu_ilitek_its_device_ensure_ic_name_old
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:458,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_write_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:460,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_read_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:461,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:462,1
    - Dst: fu_ilitek_its_device_send_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:463,1
    - Dst: fu_struct_ilitek_its_mcu_info_parse
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:466,1
    - Dst: fu_struct_ilitek_its_mcu_info_get_ic_name
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:469,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:470,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:471,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:471,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIlitekItsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 445
    functionDepth: 7
    functionLinenumber: 445
    functionLinenumberEnd: 475
    functionName: fu_ilitek_its_device_ensure_ic_name
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ilitek_its_hid_cmd_set_read_len
    - fu_struct_ilitek_its_hid_cmd_set_cmd
    - fu_ilitek_its_device_ensure_ic_name_old
    - fu_ilitek_its_device_send_cmd
    - FU_DEVICE
    - fu_struct_ilitek_its_mcu_info_parse
    - g_byte_array_new
    - fu_device_has_flag
    - fu_struct_ilitek_its_mcu_info_get_ic_name
    - fu_struct_ilitek_its_hid_cmd_set_write_len
    - g_strdup_printf
    - fu_device_set_name
    - g_autoptr
    - fu_struct_ilitek_its_hid_cmd_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_device_ensure_ic_name(FuIlitekItsDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:480,1
    - Dst: fu_io_channel_new_file
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:482,1
    - Dst: fu_io_channel_write_raw
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:485,1
    - Dst: strlen
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fn
    - buf
    - error
    argTypes:
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 491
    functionName: fu_ilitek_its_device_io_channel_write
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_io_channel_new_file
    - g_autoptr
    - fu_io_channel_write_raw
    - strlen
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_device_io_channel_write(const gchar *fn, const
      gchar *buf, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_hidraw_device_get_bus_type
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:496,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:496,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:498,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:498,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:500,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:500,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:502,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:502,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIlitekItsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 493
    functionDepth: 5
    functionLinenumber: 493
    functionLinenumberEnd: 509
    functionName: fu_ilitek_its_device_get_backend_parent
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_get_backend_parent_with_subsystem
    - FU_HIDRAW_DEVICE
    - fu_hidraw_device_get_bus_type
    - FU_DEVICE
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_ilitek_its_device_get_backend_parent(FuIlitekItsDevice *self, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:520,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:521,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:524,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:524,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:527,1
    - Dst: fu_ilitek_its_device_get_backend_parent
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:527,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:532,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:534,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:534,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:535,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:542,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:543,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:545,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:546,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:547,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:548,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:550,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:550,1
    - Dst: fu_ilitek_its_device_io_channel_write
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:551,1
    - Dst: fu_ilitek_its_device_io_channel_write
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuIlitekItsDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 511
    functionDepth: 6
    functionLinenumber: 511
    functionLinenumberEnd: 558
    functionName: fu_ilitek_its_device_rebind_driver
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_get_id_display
    - fu_udev_device_get_sysfs_path
    - g_set_error
    - fu_ilitek_its_device_io_channel_write
    - fu_udev_device_get_driver
    - FU_DEVICE
    - g_strsplit
    - g_strv_length
    - fu_device_has_flag
    - fu_udev_device_get_subsystem
    - fu_ilitek_its_device_get_backend_parent
    - g_auto
    - g_autoptr
    - g_build_filename
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_device_rebind_driver(FuIlitekItsDevice *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:563,1
    - Dst: fu_struct_ilitek_its_hid_cmd_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:563,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:565,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:565,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:567,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:567,1
    - Dst: fu_ilitek_its_device_flash_enable
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:570,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_write_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:577,1
    - Dst: fu_struct_ilitek_its_hid_cmd_set_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:578,1
    - Dst: fu_ilitek_its_device_send_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:581,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:584,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:584,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - self
    - to_bootloader
    - error
    argTypes:
    - FuIlitekItsDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 560
    functionDepth: 7
    functionLinenumber: 560
    functionLinenumberEnd: 588
    functionName: fu_ilitek_its_device_switch_mode
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ilitek_its_hid_cmd_set_cmd
    - fu_device_sleep
    - fu_ilitek_its_device_send_cmd
    - FU_DEVICE
    - fu_device_has_flag
    - fu_struct_ilitek_its_hid_cmd_new
    - fu_struct_ilitek_its_hid_cmd_set_write_len
    - g_autoptr
    - fu_ilitek_its_device_flash_enable
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_device_switch_mode(FuIlitekItsDevice *self,
      gboolean to_bootloader, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_ILITEK_ITS_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:593,1
    - Dst: fu_ilitek_its_device_switch_mode
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:595,1
    - Dst: fu_ilitek_its_device_ensure_ic_mode
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:598,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:603,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:603,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:605,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:605,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:606,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - device
    - data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 590
    functionDepth: 8
    functionLinenumber: 590
    functionLinenumberEnd: 611
    functionName: fu_ilitek_its_device_switch_mode_cb
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - FU_DEVICE
    - fu_device_has_flag
    - fu_ilitek_its_device_ensure_ic_mode
    - fu_ilitek_its_device_switch_mode
    - FU_ILITEK_ITS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_device_switch_mode_cb(FuDevice *device, gpointer
      data, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_ILITEK_ITS_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:616,1
    - Dst: fu_ilitek_its_device_enable_tde
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:620,1
    - Dst: fu_hidraw_device_get_bus_type
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:623,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:623,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:626,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:632,1
    - Dst: fu_ilitek_its_device_switch_mode
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:638,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:640,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:643,1
    - Dst: fu_hidraw_device_get_bus_type
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:647,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:647,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 613
    functionDepth: 8
    functionLinenumber: 613
    functionLinenumberEnd: 653
    functionName: fu_ilitek_its_device_detach
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_set_error
    - g_prefix_error_literal
    - fu_device_retry_full
    - fu_hidraw_device_get_bus_type
    - FU_HIDRAW_DEVICE
    - fu_ilitek_its_device_switch_mode
    - fu_ilitek_its_device_enable_tde
    - FU_ILITEK_ITS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_ILITEK_ITS_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:658,1
    - Dst: fu_hidraw_device_get_bus_type
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:661,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:661,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:664,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:670,1
    - Dst: fu_ilitek_its_device_rebind_driver
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:675,1
    - Dst: fu_ilitek_its_device_switch_mode
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:681,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:683,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:686,1
    - Dst: fu_hidraw_device_get_bus_type
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:690,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:690,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 655
    functionDepth: 8
    functionLinenumber: 655
    functionLinenumberEnd: 696
    functionName: fu_ilitek_its_device_attach
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_set_error
    - g_prefix_error_literal
    - fu_device_retry_full
    - fu_hidraw_device_get_bus_type
    - FU_HIDRAW_DEVICE
    - fu_ilitek_its_device_switch_mode
    - fu_ilitek_its_device_rebind_driver
    - FU_ILITEK_ITS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:702,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:702,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:702,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:703,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:707,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:707,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 713
    functionName: fu_ilitek_its_device_probe
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_DEVICE
    - g_strcmp0
    - fu_udev_device_get_subsystem
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_device_probe(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_drm_device_get_edid
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:720,1
    - Dst: fu_edid_get_pnp_id
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:724,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:727,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:727,1
    - Dst: fu_edid_get_pnp_id
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:727,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:728,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:728,1
    - Dst: fu_edid_get_product_code
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:728,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:729,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:729,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:738,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:738,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - drm_device
    - error
    argTypes:
    - FuIlitekItsDevice*
    - FuDrmDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 715
    functionDepth: 7
    functionLinenumber: 715
    functionLinenumberEnd: 746
    functionName: fu_ilitek_its_device_register_drm_device
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_drm_device_get_edid
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - fu_edid_get_pnp_id
    - FU_DEVICE
    - fu_edid_get_product_code
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ilitek_its_device_register_drm_device(FuIlitekItsDevice
      *self,\n\t\t\t\t\t FuDrmDevice *drm_device,\n\t\t\t\t\t GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_ILITEK_ITS_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:751,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:754,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:756,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:756,1
    - Dst: fu_ilitek_its_device_ensure_ic_mode
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:763,1
    - Dst: fu_ilitek_its_device_ensure_protocol_version
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:765,1
    - Dst: fu_ilitek_its_device_ensure_ic_name
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:768,1
    - Dst: fu_ilitek_its_device_ensure_fw_version
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:770,1
    - Dst: fu_ilitek_its_device_get_fwid
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:773,1
    - Dst: fu_ilitek_its_device_get_sensor_id
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:775,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:778,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:779,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:782,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:783,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:787,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:798,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 748
    functionDepth: 8
    functionLinenumber: 748
    functionLinenumberEnd: 799
    functionName: fu_ilitek_its_device_setup
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_ilitek_its_device_ensure_ic_name
    - fu_ilitek_its_device_get_sensor_id
    - FU_ILITEK_ITS_DEVICE
    - fu_device_add_instance_u8
    - fu_ilitek_its_device_ensure_protocol_version
    - fu_ilitek_its_device_get_fwid
    - fu_device_build_instance_id
    - fu_device_add_instance_u16
    - FU_DEVICE
    - fu_ilitek_its_device_ensure_ic_mode
    - g_autoptr
    - fu_ilitek_its_device_ensure_fw_version
    - FU_DEVICE_CLASS
    - fu_device_locker_new_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_ILITEK_ITS_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:807,1
    - Dst: fu_ilitek_its_firmware_get_ic_name
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:810,1
    - Dst: FU_ILITEK_ITS_FIRMWARE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:810,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:811,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:812,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 823
    functionName: fu_ilitek_its_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error
    - FU_ILITEK_ITS_FIRMWARE
    - fu_device_get_name
    - fu_ilitek_its_firmware_get_ic_name
    - FU_ILITEK_ITS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ilitek_its_device_check_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\n\t\t\t\t    FuFirmwareParseFlags flags,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:835,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:837,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:838,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:840,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:841,1
    - Dst: fu_ilitek_its_block_get_crc
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:843,1
    - Dst: FU_ILITEK_ITS_BLOCK
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:843,1
    - Dst: fu_ilitek_its_device_recalculate_crc
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:844,1
    - Dst: fu_ilitek_its_device_get_block_crc
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:846,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:849,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:861,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:865,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:870,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:871,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:871,1
    - Dst: fu_ilitek_its_device_flash_enable
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:873,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:876,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:877,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:878,1
    - Dst: fu_struct_ilitek_its_long_hid_cmd_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:879,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:880,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:882,1
    - Dst: fu_struct_ilitek_its_long_hid_cmd_set_write_len
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:886,1
    - Dst: fu_struct_ilitek_its_long_hid_cmd_set_cmd
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:889,1
    - Dst: fu_bytes_pad
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:891,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:891,1
    - Dst: fu_struct_ilitek_its_long_hid_cmd_set_data
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:895,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:896,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:897,1
    - Dst: fu_ilitek_its_device_send_long_cmd_then_wake_ack
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:901,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:904,1
    - Dst: fu_ilitek_its_device_get_block_crc
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:907,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:910,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:919,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 5
    argNames:
    - self
    - block_img
    - progress
    - flags
    - error
    argTypes:
    - FuIlitekItsDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 825
    functionDepth: 8
    functionLinenumber: 825
    functionLinenumberEnd: 930
    functionName: fu_ilitek_its_device_write_block
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_ilitek_its_long_hid_cmd_set_cmd
    - fu_ilitek_its_device_send_long_cmd_then_wake_ack
    - fu_struct_ilitek_its_long_hid_cmd_set_data
    - fu_firmware_get_size
    - g_autoptr
    - fu_ilitek_its_device_get_block_crc
    - fu_bytes_pad
    - g_debug
    - fu_firmware_get_bytes
    - fu_progress_set_steps
    - FU_ILITEK_ITS_BLOCK
    - fu_chunk_get_bytes
    - fu_ilitek_its_device_flash_enable
    - fu_firmware_get_idx
    - fu_struct_ilitek_its_long_hid_cmd_new
    - fu_ilitek_its_block_get_crc
    - g_bytes_get_data
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_struct_ilitek_its_long_hid_cmd_set_write_len
    - fu_progress_set_id
    - fu_ilitek_its_device_recalculate_crc
    - g_set_error
    - fu_chunk_array_index
    - fu_firmware_get_addr
    - g_bytes_get_size
    - fu_chunk_array_new_from_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ilitek_its_device_write_block(FuIlitekItsDevice *self,\n\t\t\t\t
      FuFirmware *block_img,\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_ILITEK_ITS_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:939,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:940,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:940,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:943,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:944,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:946,1
    - Dst: fu_ilitek_its_device_write_block
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:947,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:949,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:953,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: 958
      start: 932
    functionDepth: 9
    functionLinenumber: 932
    functionLinenumberEnd: 958
    functionName: fu_ilitek_its_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - FU_ILITEK_ITS_DEVICE
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_firmware_get_images
    - fu_ilitek_its_device_write_block
    - g_autoptr
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ilitek_its_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_ILITEK_ITS_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:966,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:968,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:970,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:976,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 981
    functionName: fu_ilitek_its_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_strcmp0
    - g_set_error_literal
    - FU_ILITEK_ITS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ilitek_its_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/ilitek-its/fu-ilitek-its-device.c:986,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:987,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:988,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:989,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:990,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 983
    functionDepth: 3
    functionLinenumber: 983
    functionLinenumberEnd: 992
    functionName: fu_ilitek_its_device_set_progress
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_ilitek_its_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_ilitek_its_convert_version
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 998
    functionName: fu_ilitek_its_device_convert_version
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_ilitek_its_convert_version
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ilitek_its_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1003,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1003,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1004,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1004,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1005,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1005,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1007,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1007,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1009,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1009,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1010,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1010,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1011,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1011,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1012,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1012,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1013,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1013,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1015,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1015,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1016,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1016,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1017,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIlitekItsDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1000
    functionDepth: 6
    functionLinenumber: 1000
    functionLinenumberEnd: 1018
    functionName: fu_ilitek_its_device_init
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_summary
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    linkageType: ''
    returnType: void
    signature: void fu_ilitek_its_device_init(FuIlitekItsDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ILITEK_ITS_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1023,1
    - Dst: g_free
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1024,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1026
    functionName: fu_ilitek_its_device_finalize
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - G_OBJECT_CLASS
    - FU_ILITEK_ITS_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_ilitek_its_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1031,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c:1032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIlitekItsDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1028
    functionDepth: 0
    functionLinenumber: 1028
    functionLinenumberEnd: 1045
    functionName: fu_ilitek_its_device_class_init
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ilitek_its_device_class_init(FuIlitekItsDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-common.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version_raw
    argTypes:
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 23
    functionName: fu_ilitek_its_convert_version
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-common.c
    functionUses: 1
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ilitek_its_convert_version(guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ILITEK_ITS_FIRMWARE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:27,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:28,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: fu_ilitek_its_firmware_export
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_ILITEK_ITS_FIRMWARE
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_ilitek_its_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:38,1
    - Dst: FU_ILITEK_ITS_FIRMWARE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:39,1
    - Dst: fu_ihex_firmware_get_records
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:40,1
    - Dst: FU_IHEX_FIRMWARE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:47,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:47,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:49,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:57,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:60,1
    - Dst: fu_memread_uint24_safe
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:61,1
    - Dst: g_ptr_array_remove_index
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:68,1
    - Dst: FuFirmwareClass*::parse
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:70,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:73,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:77,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:79,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:80,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:81,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:82,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:82,1
    - Dst: fu_struct_ilitek_its_mm_info_parse_bytes
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:83,1
    - Dst: fu_struct_ilitek_its_mm_info_get_mapping_ver
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:87,1
    - Dst: fu_struct_ilitek_its_mm_info_get_ic_name
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:88,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:89,1
    - Dst: fu_struct_ilitek_its_mm_info_get_protocol_ver
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:91,1
    - Dst: g_free
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:93,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:96,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:100,1
    - Dst: fu_struct_ilitek_its_mm_info_get_block_num
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:103,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:105,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:116,1
    - Dst: fu_ilitek_its_block_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:117,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:119,1
    - Dst: fu_struct_ilitek_its_mm_info_get_blocks
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:121,1
    - Dst: fu_struct_ilitek_its_block_info_get_addr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:122,1
    - Dst: fu_struct_ilitek_its_mm_info_get_end_addr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:123,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:126,1
    - Dst: fu_struct_ilitek_its_mm_info_get_blocks
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:127,1
    - Dst: fu_struct_ilitek_its_block_info_get_addr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:128,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:133,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:142,1
    - Dst: fu_memmem_safe
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:145,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:145,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:146,1
    - Dst: strlen
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:148,1
    - Dst: strlen
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:151,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:153,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:157,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:159,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:164,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:167,1
    - Dst: fu_ilitek_its_block_get_crc
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:171,1
    - Dst: FU_ILITEK_ITS_BLOCK
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:171,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:173,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:174,1
    - Dst: fu_firmware_set_parent
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:175,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:176,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:177,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 88
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 183
    functionName: fu_ilitek_its_firmware_parse
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c
    functionUses: 0
    functionsReached:
    - fu_ilitek_its_block_new
    - g_strdup_printf
    - fu_firmware_set_offset
    - fu_struct_ilitek_its_block_info_get_addr
    - g_free
    - FuFirmwareClass*::parse
    - g_ptr_array_index
    - fu_firmware_set_addr
    - fu_byte_array_append_bytes
    - g_debug
    - fu_firmware_get_bytes
    - fu_firmware_add_image
    - g_set_error_literal
    - fu_struct_ilitek_its_mm_info_get_ic_name
    - fu_memread_uint24_safe
    - g_byte_array_new
    - fu_firmware_parse_bytes
    - FU_ILITEK_ITS_BLOCK
    - g_bytes_ref
    - fu_struct_ilitek_its_mm_info_get_block_num
    - fu_ilitek_its_block_get_crc
    - g_bytes_get_data
    - fu_struct_ilitek_its_mm_info_parse_bytes
    - fu_firmware_set_idx
    - g_byte_array_free_to_bytes
    - fu_bytes_new_offset
    - fu_ihex_firmware_get_records
    - fu_firmware_set_parent
    - FU_IHEX_FIRMWARE
    - g_ptr_array_remove_index
    - fu_struct_ilitek_its_mm_info_get_blocks
    - fu_struct_ilitek_its_mm_info_get_end_addr
    - FU_FIRMWARE_CLASS
    - g_steal_pointer
    - fu_struct_ilitek_its_mm_info_get_mapping_ver
    - fu_struct_ilitek_its_mm_info_get_protocol_ver
    - fu_firmware_get_addr
    - g_set_error
    - fu_memmem_safe
    - g_prefix_error
    - FU_ILITEK_ITS_FIRMWARE
    - strlen
    - g_bytes_get_size
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ilitek_its_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_ilitek_its_convert_version
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: fu_ilitek_its_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c
    functionUses: 0
    functionsReached:
    - fu_ilitek_its_convert_version
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ilitek_its_firmware_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIlitekItsFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: fu_ilitek_its_firmware_get_ic_name
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_ilitek_its_firmware_get_ic_name(FuIlitekItsFirmware *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_ihex_firmware_set_padding_value
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:200,1
    - Dst: FU_IHEX_FIRMWARE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:200,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:201,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:201,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:202,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:202,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:203,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:203,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:204,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIlitekItsFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 205
    functionName: fu_ilitek_its_firmware_init
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - FU_IHEX_FIRMWARE
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_ihex_firmware_set_padding_value
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_ilitek_its_firmware_init(FuIlitekItsFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ILITEK_ITS_FIRMWARE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:210,1
    - Dst: g_free
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:211,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: fu_ilitek_its_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c
    functionUses: 0
    functionsReached:
    - FU_ILITEK_ITS_FIRMWARE
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ilitek_its_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:218,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIlitekItsFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 224
    functionName: fu_ilitek_its_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ilitek_its_firmware_class_init(FuIlitekItsFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ILITEK_ITS_BLOCK
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c:21,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: fu_ilitek_its_block_export
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_ILITEK_ITS_BLOCK
    linkageType: ''
    returnType: void
    signature: void fu_ilitek_its_block_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_ILITEK_ITS_BLOCK
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c:31,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c:33,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c:36,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c:39,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c:45,1
    - Dst: fu_input_stream_compute_crc16
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 56
    functionName: fu_ilitek_its_block_parse
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_size
    - fu_input_stream_compute_crc16
    - g_set_error_literal
    - FU_ILITEK_ITS_BLOCK
    - g_autoptr
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_ilitek_its_block_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:
    - FuIlitekItsBlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: fu_ilitek_its_block_get_crc
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_ilitek_its_block_get_crc(FuIlitekItsBlock *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c:67,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c:67,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c:68,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIlitekItsBlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: fu_ilitek_its_block_init
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_ilitek_its_block_init(FuIlitekItsBlock *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIlitekItsBlockClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: fu_ilitek_its_block_class_init
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ilitek_its_block_class_init(FuIlitekItsBlockClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c:82,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.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_ilitek_its_block_new
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_ilitek_its_block_new(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_ILITEK_ITS_PLUGIN
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:23,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:26,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:27,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:29,1
    - Dst: FU_DRM_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:31,1
    - Dst: fu_ilitek_its_device_register_drm_device
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:33,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:36,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:40,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:40,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 20
    functionDepth: 8
    functionLinenumber: 20
    functionLinenumberEnd: 42
    functionName: fu_ilitek_its_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_devices
    - FU_DRM_DEVICE
    - FU_IS_DRM_DEVICE
    - FU_ILITEK_ITS_PLUGIN
    - fu_ilitek_its_device_register_drm_device
    - g_ptr_array_add
    - g_object_ref
    - g_warning
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_ilitek_its_plugin_device_registered(FuPlugin *plugin, FuDevice
      *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_ILITEK_ITS_PLUGIN
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:47,1
    - Dst: FU_ILITEK_ITS_DEVICE
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:48,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:52,1
    - Dst: fu_ilitek_its_device_register_drm_device
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 44
    functionDepth: 8
    functionLinenumber: 44
    functionLinenumberEnd: 59
    functionName: fu_ilitek_its_plugin_device_created
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c
    functionUses: 0
    functionsReached:
    - fu_ilitek_its_device_register_drm_device
    - FU_ILITEK_ITS_PLUGIN
    - g_ptr_array_index
    - FU_ILITEK_ITS_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ilitek_its_plugin_device_created(FuPlugin *plugin, FuDevice
      *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIlitekItsPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: fu_ilitek_its_plugin_init
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: void
    signature: void fu_ilitek_its_plugin_init(FuIlitekItsPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_ILITEK_ITS_PLUGIN
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:70,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:71,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: fu_ilitek_its_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c
    functionUses: 0
    functionsReached:
    - FU_ILITEK_ITS_PLUGIN
    - G_OBJECT_CLASS
    - g_ptr_array_unref
    linkageType: ''
    returnType: void
    signature: void fu_ilitek_its_plugin_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:78,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:79,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:80,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:81,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 85
    functionName: fu_ilitek_its_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_ilitek_its_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:90,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIlitekItsPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: fu_ilitek_its_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_ilitek_its_plugin_class_init(FuIlitekItsPluginClass *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_device_add_flag
    - g_debug
    - g_steal_pointer
    - fu_usb_device_interrupt_transfer
    - g_error_matches
    - FU_ELAN_KBD_DEBUG_DEVICE
    - 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:
    - device
    - 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_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_elan_kbd_debug_device_set_progress(FuDevice *device, 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_private_flag
      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
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:68,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-debug-device.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElanKbdDebugDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 6
    functionLinenumber: 59
    functionLinenumberEnd: 69
    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_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - fu_device_add_icon
    - fu_device_set_name
    - FU_DEVICE
    - fu_device_add_protocol
    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:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElanKbdDebugDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    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_device_add_flag
    - g_debug
    - fu_hid_device_set_report
    - g_steal_pointer
    - FU_HID_DEVICE
    - g_error_matches
    - FU_ELAN_KBD_RUNTIME
    - g_propagate_error
    - g_autoptr
    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:
    - device
    - 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 *device, 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_private_flag
      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_add_icon
      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_set_firmware_gtype
      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
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:72,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElanKbdRuntime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 60
    functionDepth: 6
    functionLinenumber: 60
    functionLinenumberEnd: 75
    functionName: fu_elan_kbd_runtime_init
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-runtime.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - fu_device_add_icon
    - fu_device_set_name
    - FU_DEVICE
    - fu_device_add_instance_id_full
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElanKbdRuntimeClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    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_DEVICE
    - fu_elan_kbd_dev_status_to_string
    - fwupd_codec_string_append
    - fwupd_codec_string_append_hex
    - fu_elan_kbd_boot_cond1_to_string
    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:
    - fu_elan_kbd_error_to_string
    - fu_struct_elan_kbd_cmd_status_res_get_value
    - g_set_error
    - g_set_error_literal
    - fu_struct_elan_kbd_cmd_status_res_get_error
    - fu_struct_elan_kbd_cmd_status_res_parse
    - g_autoptr
    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: 4
    functionLinenumber: 74
    functionLinenumberEnd: 103
    functionName: fu_elan_kbd_device_cmd
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_dump_raw
    - fu_usb_device_interrupt_transfer
    - g_byte_array_new
    - FU_USB_DEVICE
    - g_autoptr
    - 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: 4
    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_dump_raw
    - fu_usb_device_interrupt_transfer
    - g_byte_array_new
    - fu_memcpy_safe
    - FU_USB_DEVICE
    - g_autoptr
    - 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: 4
    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_dump_raw
    - fu_usb_device_interrupt_transfer
    - g_byte_array_new
    - fu_memcpy_safe
    - FU_USB_DEVICE
    - g_autoptr
    - 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_struct_elan_kbd_software_reset_req_new
    - FU_ELAN_KBD_DEVICE
    - fu_elan_kbd_device_cmd
    - g_autoptr
    - fu_elan_kbd_device_status_check
    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: 5
    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
    - fu_struct_elan_kbd_get_ver_spec_req_new
    - fu_elan_kbd_device_cmd
    - g_autoptr
    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: 5
    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:
    - fu_struct_elan_kbd_get_ver_fw_req_new
    - fu_struct_elan_kbd_get_ver_fw_res_parse
    - fu_device_set_version_bootloader
    - FU_DEVICE
    - g_strdup_printf
    - fu_elan_kbd_device_cmd
    - g_autoptr
    - fu_struct_elan_kbd_get_ver_fw_res_get_value
    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: 5
    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_res_parse
    - fu_struct_elan_kbd_get_status_res_get_value
    - fu_elan_kbd_device_cmd
    - g_autoptr
    - fu_struct_elan_kbd_get_status_req_new
    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: 5
    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_get_value
    - fu_struct_elan_kbd_boot_condition_res_parse
    - fu_elan_kbd_device_cmd
    - fu_struct_elan_kbd_boot_condition_req_new
    - g_autoptr
    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: 5
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: fu_elan_kbd_device_abort
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_elan_kbd_device_status_check
    - fu_struct_elan_kbd_abort_req_new
    - fu_elan_kbd_device_cmd
    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: 6
    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_elan_kbd_device_ensure_ver_spec
    - fu_elan_kbd_device_ensure_boot_cond1
    - FU_ELAN_KBD_DEVICE
    - fu_elan_kbd_device_ensure_dev_status
    - FU_DEVICE_CLASS
    - fu_elan_kbd_device_ensure_ver_fw
    - fu_elan_kbd_device_abort
    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: 5
    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_set_csum
    - fu_elan_kbd_device_cmd
    - g_autoptr
    - fu_struct_elan_kbd_read_rom_finished_req_new
    - fu_elan_kbd_device_status_check
    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: 6
    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_sum16
    - g_steal_pointer
    - fu_progress_set_steps
    - g_prefix_error
    - g_malloc0
    - fu_progress_step_done
    - fu_struct_elan_kbd_read_rom_req_set_addr
    - fu_struct_elan_kbd_read_rom_req_set_len
    - fu_elan_kbd_device_cmd_read_rom_finished
    - g_bytes_new_take
    - fu_elan_kbd_device_cmd
    - fu_struct_elan_kbd_read_rom_req_new
    - g_autoptr
    - fu_elan_kbd_device_read_data
    - fu_elan_kbd_device_status_check
    - fu_progress_set_id
    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: 5
    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
    - fu_elan_kbd_device_cmd
    - g_autoptr
    - fu_elan_kbd_device_status_check
    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: 6
    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_sum16
    - fu_struct_elan_kbd_read_option_req_new
    - g_steal_pointer
    - fu_progress_set_steps
    - g_prefix_error
    - g_malloc0
    - fu_progress_step_done
    - g_bytes_new_take
    - fu_elan_kbd_device_cmd_read_option_finished
    - fu_elan_kbd_device_cmd
    - g_autoptr
    - fu_elan_kbd_device_read_data
    - fu_elan_kbd_device_status_check
    - fu_progress_set_id
    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: 7
    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: 7
    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_literal
      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:439,1
    - Dst: fu_elan_kbd_device_cmd_read_rom
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:442,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:445,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:448,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:451,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:452,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:453,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:455,1
    - Dst: fu_elan_kbd_device_cmd_read_option
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:459,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:459,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:461,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:464,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:465,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:466,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:468,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:471,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 407
    functionDepth: 7
    functionLinenumber: 407
    functionLinenumberEnd: 472
    functionName: fu_elan_kbd_device_read_firmware
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - fu_progress_add_step
    - fu_firmware_add_image
    - fu_elan_kbd_firmware_new
    - FU_ELAN_KBD_DEVICE
    - fu_progress_get_child
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_firmware_set_idx
    - g_steal_pointer
    - fu_firmware_new_from_bytes
    - fu_elan_kbd_device_cmd_read_option
    - g_autoptr
    - fu_elan_kbd_device_cmd_read_rom
    - fu_progress_set_id
    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:477,1
    - Dst: fu_struct_elan_kbd_get_auth_lock_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:478,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:479,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:480,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:482,1
    - Dst: fu_struct_elan_kbd_get_auth_lock_res_parse
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:485,1
    - Dst: fu_struct_elan_kbd_get_auth_lock_res_get_key
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FuElanKbdDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 474
    functionDepth: 5
    functionLinenumber: 474
    functionLinenumberEnd: 490
    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
    - fu_struct_elan_kbd_get_auth_lock_req_new
    - fu_elan_kbd_device_cmd
    - fu_struct_elan_kbd_get_auth_lock_res_get_key
    - g_autoptr
    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:495,1
    - Dst: fu_struct_elan_kbd_set_auth_lock_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:496,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:497,1
    - Dst: fu_struct_elan_kbd_set_auth_lock_req_set_key
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:499,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:500,1
    - Dst: fu_elan_kbd_device_status_check
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - self
    - key
    - error
    argTypes:
    - FuElanKbdDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 492
    functionDepth: 5
    functionLinenumber: 492
    functionLinenumberEnd: 504
    functionName: fu_elan_kbd_device_cmd_set_auth_lock
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_elan_kbd_device_cmd
    - fu_struct_elan_kbd_set_auth_lock_req_new
    - g_autoptr
    - fu_struct_elan_kbd_set_auth_lock_req_set_key
    - fu_elan_kbd_device_status_check
    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:510,1
    - Dst: fu_elan_kbd_device_cmd_set_auth_lock
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElanKbdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 506
    functionDepth: 6
    functionLinenumber: 506
    functionLinenumberEnd: 513
    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_set_auth_lock
    - fu_elan_kbd_device_cmd_get_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:518,1
    - Dst: fu_struct_elan_kbd_entry_iap_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:518,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:519,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:521,1
    - Dst: fu_elan_kbd_device_status_check
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElanKbdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 515
    functionDepth: 5
    functionLinenumber: 515
    functionLinenumberEnd: 525
    functionName: fu_elan_kbd_device_cmd_entry_iap
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_struct_elan_kbd_entry_iap_req_new
    - fu_elan_kbd_device_status_check
    - fu_elan_kbd_device_cmd
    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:530,1
    - Dst: fu_struct_elan_kbd_finished_iap_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:530,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:531,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:533,1
    - Dst: fu_elan_kbd_device_status_check
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuElanKbdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 527
    functionDepth: 5
    functionLinenumber: 527
    functionLinenumberEnd: 537
    functionName: fu_elan_kbd_device_cmd_finished_iap
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_elan_kbd_finished_iap_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_finished_iap(FuElanKbdDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:542,1
    - Dst: fu_struct_elan_kbd_write_rom_finished_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:543,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:544,1
    - Dst: fu_struct_elan_kbd_write_rom_finished_req_set_csum
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:546,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:547,1
    - Dst: fu_elan_kbd_device_status_check
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - csum
    - error
    argTypes:
    - FuElanKbdDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 539
    functionDepth: 5
    functionLinenumber: 539
    functionLinenumberEnd: 551
    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_elan_kbd_device_cmd
    - fu_struct_elan_kbd_write_rom_finished_req_set_csum
    - g_autoptr
    - fu_elan_kbd_device_status_check
    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:561,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:562,1
    - Dst: fu_struct_elan_kbd_write_rom_req_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:562,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:563,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:566,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:567,1
    - Dst: fu_struct_elan_kbd_write_rom_req_set_addr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:570,1
    - Dst: fu_struct_elan_kbd_write_rom_req_set_len
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:571,1
    - Dst: fu_elan_kbd_device_cmd
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:572,1
    - Dst: fu_elan_kbd_device_status_check
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:575,1
    - Dst: fu_elan_kbd_device_write_data
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:578,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:579,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:582,1
    - Dst: fu_elan_kbd_device_cmd_write_rom_finished
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:584,1
    - Dst: fu_sum16_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:584,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: 585
      start: 553
    functionDepth: 6
    functionLinenumber: 553
    functionLinenumberEnd: 585
    functionName: fu_elan_kbd_device_cmd_write_rom
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_sum16_bytes
    - g_bytes_get_data
    - fu_elan_kbd_device_write_data
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_struct_elan_kbd_write_rom_req_set_len
    - fu_struct_elan_kbd_write_rom_req_new
    - fu_elan_kbd_device_cmd
    - g_autoptr
    - fu_struct_elan_kbd_write_rom_req_set_addr
    - fu_elan_kbd_device_cmd_write_rom_finished
    - fu_elan_kbd_device_status_check
    - fu_progress_set_id
    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:594,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:595,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:596,1
    - Dst: fu_progress_set_id
      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_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:602,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:603,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:604,1
    - Dst: fu_elan_kbd_device_cmd_unlock
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:607,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:608,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:611,1
    - Dst: fu_elan_kbd_device_cmd_entry_iap
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:614,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:615,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:618,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:621,1
    - Dst: fu_elan_kbd_device_cmd_write_rom
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:624,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:627,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:629,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:632,1
    - Dst: fu_elan_kbd_device_cmd_finished_iap
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:635,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:636,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:639,1
    - Dst: fu_elan_kbd_device_cmd_read_rom
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:642,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:645,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:648,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:651,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:653,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: 657
      start: 587
    functionDepth: 7
    functionLinenumber: 587
    functionLinenumberEnd: 657
    functionName: fu_elan_kbd_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_elan_kbd_device_cmd_read_rom
    - fu_progress_add_step
    - fu_elan_kbd_device_cmd_write_rom
    - fu_elan_kbd_device_cmd_finished_iap
    - FU_ELAN_KBD_DEVICE
    - fu_progress_get_child
    - fu_progress_step_done
    - fu_elan_kbd_device_cmd_unlock
    - g_prefix_error_literal
    - fu_bytes_compare
    - fu_elan_kbd_device_cmd_entry_iap
    - g_autoptr
    - fu_firmware_get_image_by_idx_bytes
    - fu_progress_set_id
    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:662,1
    - Dst: fu_progress_add_flag
      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
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:666,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:667,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 659
    functionDepth: 3
    functionLinenumber: 659
    functionLinenumberEnd: 669
    functionName: fu_elan_kbd_device_set_progress
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_elan_kbd_device_set_progress(FuDevice *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      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_remove_delay
      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_name
      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_set_firmware_gtype
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:677,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:677,1
    - Dst: fu_device_set_firmware_size_min
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:678,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:678,1
    - Dst: fu_device_set_firmware_size_max
      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_protocol
      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_flag
      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_device_add_flag
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:685,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:685,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:686,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:686,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:687,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:687,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:688,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:688,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:689,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:689,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:690,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElanKbdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 671
    functionDepth: 6
    functionLinenumber: 671
    functionLinenumberEnd: 691
    functionName: fu_elan_kbd_device_init
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_set_firmware_size_min
    - fu_device_set_firmware_size_max
    - fu_device_add_icon
    - fu_usb_device_add_interface
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_version_format
    - FU_USB_DEVICE
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElanKbdDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 704
    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: 10
    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:55,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:61,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:63,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:64,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:68,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:74,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:76,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:77,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 82
    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_idx
    - fu_firmware_new
    - fu_firmware_set_stream
    - g_autoptr
    - 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:87,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:90,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:93,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:98,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:102,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:105,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:109,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:112,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 84
    functionDepth: 5
    functionLinenumber: 84
    functionLinenumberEnd: 116
    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
    - g_byte_array_new
    - g_autoptr
    - fu_firmware_get_image_by_idx_bytes
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_elan_kbd_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:121,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:121,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:122,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuElanKbdFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: fu_elan_kbd_firmware_init
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_size_max
    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:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElanKbdFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 132
    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:137,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: fu_elan_kbd_firmware_new
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-firmware.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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_udev_subsystem
      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_add_device_gtype
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-plugin.c:33,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-plugin.c:34,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-plugin.c:35,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-plugin.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: fu_elan_kbd_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/elan-kbd/fu-elan-kbd-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_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:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuElanKbdPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    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:
    - FU_BIT_SET
    - g_new0
    - g_set_error
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:113,1
    - Dst: gnutls_hash_get_len
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:117,1
    - Dst: gnutls_calloc
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:120,1
    - Dst: gnutls_hash_init
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:121,1
    - Dst: gnutls_hash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:122,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:122,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:122,1
    - Dst: gnutls_hash_deinit
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:123,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:130,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:131,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:138,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:139,1
    - Dst: gnutls_pubkey_init
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:141,1
    - Dst: gnutls_pubkey_import_rsa_raw
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:142,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:144,1
    - Dst: gnutls_strerror
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:148,1
    - Dst: gnutls_pubkey_verify_hash2
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:151,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:153,1
    - Dst: gnutls_strerror
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 4
    argNames:
    - payload
    - pubkey
    - signature
    - error
    argTypes:
    - GBytes*
    - GBytes*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 163
    functionName: fu_synaptics_rmi_verify_sha256_signature
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-common.c
    functionUses: 0
    functionsReached:
    - gnutls_pubkey_init
    - gnutls_hash
    - gnutls_pubkey_verify_hash2
    - gnutls_calloc
    - g_set_error
    - g_bytes_get_data
    - gnutls_strerror
    - g_bytes_get_size
    - g_auto
    - gnutls_hash_init
    - g_autoptr
    - gnutls_hash_deinit
    - gnutls_pubkey_import_rsa_raw
    - gnutls_hash_get_len
    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_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:31,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:31,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:34,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:34,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:35,1
    - Dst: fu_synaptics_rmi_device_disable_irqs
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:40,1
    - Dst: fu_synaptics_rmi_device_write_bus_select
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:42,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:43,1
    - Dst: fu_synaptics_rmi_device_write_bootloader_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:48,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:50,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:51,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:56,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:60,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:60,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 62
    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_disable_irqs
    - g_debug
    - fu_device_sleep
    - fu_synaptics_rmi_device_write_bus_select
    - g_prefix_error_literal
    - fu_byte_array_append_uint8
    - FU_DEVICE
    - fu_synaptics_rmi_device_get_flash
    - g_byte_array_new
    - fu_device_has_flag
    - fu_synaptics_rmi_device_write
    - fu_synaptics_rmi_device_write_bootloader_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_v5_device_detach(FuSynapticsRmiDevice *self,
      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:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:69,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:69,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:72,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:77,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:78,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:83,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:86,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:86,1
    - Dst: fu_synaptics_rmi_device_set_iepmode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:87,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:88,1
    - Dst: fu_synaptics_rmi_device_wait_for_idle
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:92,1
    - Dst: g_prefix_error_literal
      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: 64
    functionDepth: 2
    functionLinenumber: 64
    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_set_iepmode
    - fu_synaptics_rmi_device_enter_iep_mode
    - fu_synaptics_rmi_device_get_function
    - fu_device_sleep
    - g_prefix_error_literal
    - fu_byte_array_append_uint8
    - FU_DEVICE
    - fu_synaptics_rmi_device_get_flash
    - g_byte_array_new
    - fu_synaptics_rmi_device_wait_for_idle
    - fu_synaptics_rmi_device_write
    - g_autoptr
    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:
    - g_prefix_error
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - fu_synaptics_rmi_device_wait_for_idle
    - fu_synaptics_rmi_device_write
    - g_byte_array_append
    - g_autoptr
    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_get_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:140,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:143,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:143,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:144,1
    - Dst: fu_dump_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:146,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:148,1
    - Dst: fu_synaptics_rmi_v5_device_query_status
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:157,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:158,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:161,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:166,1
    - Dst: fu_synaptics_rmi_device_read_packet_register
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:167,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:175,1
    - Dst: g_byte_array_remove_range
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:177,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:187,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:189,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:194,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:203,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:210,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:219,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:227,1
    - Dst: fu_synaptics_rmi_verify_sha256_signature
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:228,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 4
    argNames:
    - self
    - payload
    - signature
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GBytes*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 229
    functionName: fu_synaptics_rmi_v5_device_secure_check
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_enter_iep_mode
    - fu_synaptics_rmi_device_get_sig_size
    - g_byte_array_prepend
    - fu_synaptics_rmi_device_get_function
    - g_debug
    - fu_synaptics_rmi_device_read_packet_register
    - g_set_error
    - g_bytes_new
    - fu_synaptics_rmi_v5_device_query_status
    - fu_synaptics_rmi_verify_sha256_signature
    - g_prefix_error_literal
    - g_byte_array_set_size
    - fu_dump_bytes
    - g_byte_array_new
    - g_byte_array_remove_range
    - fu_dump_full
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_v5_device_secure_check(FuSynapticsRmiDevice
      *self,\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_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:238,1
    - Dst: FU_SYNAPTICS_RMI_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:240,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:243,1
    - Dst: fu_synaptics_rmi_firmware_get_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:243,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:244,1
    - Dst: g_autoptr
      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_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:250,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:253,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:254,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:255,1
    - Dst: fu_progress_add_step
      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_device_has_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:262,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:262,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:263,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:269,1
    - Dst: fu_synaptics_rmi_device_wait_for_idle
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:275,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:280,1
    - Dst: fu_synaptics_rmi_firmware_get_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:283,1
    - Dst: fu_synaptics_rmi_device_get_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:284,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:285,1
    - Dst: fu_synaptics_rmi_firmware_get_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:291,1
    - Dst: fu_synaptics_rmi_device_get_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:292,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:293,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:301,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:306,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:309,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:314,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:317,1
    - Dst: fu_synaptics_rmi_v5_device_secure_check
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:319,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:323,1
    - Dst: fu_synaptics_rmi_device_disable_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:329,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:330,1
    - Dst: fu_synaptics_rmi_device_write_bootloader_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:335,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:336,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:339,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:342,1
    - Dst: fu_synaptics_rmi_v5_device_erase_all
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:343,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:344,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:347,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:350,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:351,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:352,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:357,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:366,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:370,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:374,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:375,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:375,1
    - Dst: fu_synaptics_rmi_v5_device_write_block
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:378,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:381,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:382,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:384,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:386,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:389,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:389,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:391,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:393,1
    - Dst: fu_synaptics_rmi_device_get_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:396,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:397,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:398,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:399,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:403,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:408,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:411,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:412,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:412,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:413,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:414,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:414,1
    - Dst: fu_synaptics_rmi_v5_device_write_block
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:417,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:420,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:421,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:423,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:425,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:428,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:430,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:430,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:432,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:434,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:440,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:445,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:448,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:449,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:449,1
    - Dst: fu_synaptics_rmi_v5_device_write_block
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:452,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:455,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:456,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:458,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:460,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:463,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:463,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:465,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:467,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 133
    argCount: 5
    argNames:
    - self
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 231
    functionDepth: 5
    functionLinenumber: 231
    functionLinenumberEnd: 471
    functionName: fu_synaptics_rmi_v5_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_idx
    - fu_byte_array_append_uint16
    - fu_synaptics_rmi_device_get_function
    - fu_chunk_get_data_sz
    - fu_progress_add_flag
    - FU_SYNAPTICS_RMI_FIRMWARE
    - fu_firmware_get_size
    - fu_synaptics_rmi_device_enter_iep_mode
    - fu_synaptics_rmi_device_get_sig_size
    - fu_chunk_array_new_from_bytes
    - g_set_error_literal
    - fu_firmware_get_image_by_id_bytes
    - fu_progress_set_steps
    - g_prefix_error_literal
    - fu_synaptics_rmi_v5_device_erase_all
    - g_byte_array_new
    - fu_device_has_flag
    - fu_synaptics_rmi_v5_device_secure_check
    - fu_progress_set_status
    - fu_progress_set_percentage_full
    - fu_synaptics_rmi_firmware_get_sig_size
    - fu_synaptics_rmi_device_disable_sleep
    - fu_synaptics_rmi_v5_device_write_block
    - fu_progress_add_step
    - fu_device_sleep
    - fu_progress_step_done
    - FU_DEVICE
    - fu_synaptics_rmi_device_get_flash
    - fu_synaptics_rmi_device_wait_for_idle
    - fu_chunk_get_data
    - fu_bytes_new_offset
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_chunk_array_index
    - g_prefix_error
    - fu_synaptics_rmi_device_write
    - fu_synaptics_rmi_device_write_bootloader_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_v5_device_write_firmware(FuSynapticsRmiDevice
      *self,\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:477,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:479,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: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:484,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:489,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:491,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:498,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:505,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:507,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:510,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:515,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:520,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:521,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:526,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:529,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:535,1
    - Dst: fu_synaptics_rmi_device_set_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:538,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:539,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:539,1
    - Dst: fu_synaptics_rmi_device_set_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:541,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:545,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:552,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:559,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 473
    functionDepth: 6
    functionLinenumber: 473
    functionLinenumberEnd: 568
    functionName: fu_synaptics_rmi_v5_device_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_synaptics_rmi_device_get_function
    - g_prefix_error_literal
    - fu_synaptics_rmi_device_read
    - fu_synaptics_rmi_device_set_sig_size
    - FU_DEVICE
    - fu_synaptics_rmi_device_get_flash
    - fu_memread_uint8_safe
    - g_autoptr
    - fu_memread_uint16_safe
    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:574,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:577,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:580,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:582,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:586,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:586,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:588,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c:588,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 570
    functionDepth: 6
    functionLinenumber: 570
    functionLinenumberEnd: 591
    functionName: fu_synaptics_rmi_v5_device_query_status
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v5-device.c
    functionUses: 1
    functionsReached:
    - fu_device_add_flag
    - fu_synaptics_rmi_device_get_function
    - g_prefix_error_literal
    - fu_synaptics_rmi_device_read
    - fu_device_remove_flag
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_v5_device_query_status(FuSynapticsRmiDevice
      *self, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_HID_DEVICE
      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_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:71,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:71,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:75,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_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:84,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:87,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:90,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:94,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:96,1
    - Dst: fu_udev_device_write_byte_array
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:97,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:97,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:108,1
    - Dst: fu_udev_device_read_byte_array
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:109,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:109,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:118,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:124,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:133,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:137,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:146,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:153,1
    - Dst: fu_byte_array_append_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:161,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:169,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:171,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 4
    argNames:
    - rmi_device
    - addr
    - req_sz
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint16
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 63
    functionDepth: 6
    functionLinenumber: 63
    functionLinenumberEnd: 172
    functionName: fu_synaptics_rmi_hid_device_read
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_write_byte_array
    - fu_byte_array_append_uint16
    - g_debug
    - g_set_error
    - g_set_error_literal
    - g_steal_pointer
    - fu_byte_array_append_safe
    - fu_byte_array_append_uint8
    - FU_SYNAPTICS_RMI_HID_DEVICE
    - g_byte_array_new
    - FU_UDEV_DEVICE
    - fu_dump_full
    - g_autoptr
    - fu_udev_device_read_byte_array
    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:180,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: 181
      start: 174
    functionDepth: 7
    functionLinenumber: 174
    functionLinenumberEnd: 181
    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:190,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:192,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:192,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:197,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:207,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:210,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:213,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:217,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:221,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:222,1
    - Dst: fu_udev_device_write_byte_array
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:224,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:224,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: 230
      start: 183
    functionDepth: 6
    functionLinenumber: 183
    functionLinenumberEnd: 230
    functionName: fu_synaptics_rmi_hid_device_write
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_write_byte_array
    - fu_byte_array_append_uint16
    - g_set_error_literal
    - fu_byte_array_append_uint8
    - FU_SYNAPTICS_RMI_HID_DEVICE
    - g_byte_array_new
    - g_byte_array_append
    - FU_UDEV_DEVICE
    - fu_dump_full
    - g_autoptr
    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:238,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:239,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:239,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:242,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:243,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:244,1
    - Dst: fu_udev_device_read_byte_array
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:247,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:247,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:253,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:255,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:255,1
    - Dst: fu_dump_full
      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:265,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:269,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:279,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:284,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: 289
      start: 232
    functionDepth: 6
    functionLinenumber: 232
    functionLinenumberEnd: 289
    functionName: fu_synaptics_rmi_hid_device_wait_for_attr
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error_literal
    - g_steal_pointer
    - FU_SYNAPTICS_RMI_HID_DEVICE
    - g_error_matches
    - g_timer_elapsed
    - g_timer_new
    - fu_dump_full
    - g_propagate_error
    - g_autoptr
    - fu_udev_device_read_byte_array
    - FU_UDEV_DEVICE
    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:303,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:303,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:303,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:305,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:306,1
    - Dst: HIDIOCSFEATURE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - mode
    - error
    argTypes:
    - FuSynapticsRmiHidDevice*
    - FuSynapticsRmiHidMode
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 297
    functionDepth: 4
    functionLinenumber: 297
    functionLinenumberEnd: 314
    functionName: fu_synaptics_rmi_hid_device_set_mode
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_execute
    - fu_dump_raw
    - fu_udev_device_ioctl_new
    - HIDIOCSFEATURE
    - FU_UDEV_DEVICE
    - g_autoptr
    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:319,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:322,1
    - Dst: fu_synaptics_rmi_hid_device_set_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 316
    functionDepth: 5
    functionLinenumber: 316
    functionLinenumberEnd: 331
    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_DEVICE_CLASS
    - FU_SYNAPTICS_RMI_HID_DEVICE
    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:336,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:337,1
    - Dst: fu_synaptics_rmi_hid_device_set_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:340,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:342,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:343,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:343,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:346,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 333
    functionDepth: 5
    functionLinenumber: 333
    functionLinenumberEnd: 351
    functionName: fu_synaptics_rmi_hid_device_close
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_steal_pointer
    - fu_synaptics_rmi_hid_device_set_mode
    - FU_SYNAPTICS_RMI_HID_DEVICE
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_hid_device_close(FuDevice *device, GError
      **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:356,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:357,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:360,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:360,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:365,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:366,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:366,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:368,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:369,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:369,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:372,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:376,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:376,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:379,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:379,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:380,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:383,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:384,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:388,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:388,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:391,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:392,1
    - Dst: fu_device_get_id_display
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:396,1
    - Dst: FU_DEVICE
      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:401,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:401,1
    - Dst: fu_device_unbind_driver
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:402,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:402,1
    - Dst: fu_device_bind_driver
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:404,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:404,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:405,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:406,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 353
    functionDepth: 6
    functionLinenumber: 353
    functionLinenumberEnd: 412
    functionName: fu_synaptics_rmi_hid_device_rebind_driver
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - fu_device_get_id_display
    - fu_device_add_flag
    - fu_udev_device_get_sysfs_path
    - g_set_error
    - fu_device_get_backend_parent_with_subsystem
    - g_prefix_error_literal
    - fu_udev_device_get_driver
    - FU_DEVICE
    - fu_udev_device_get_subsystem
    - FU_UDEV_DEVICE
    - g_autoptr
    - fu_device_bind_driver
    - fu_device_unbind_driver
    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:417,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:420,1
    - Dst: fu_synaptics_rmi_v5_device_detach
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:424,1
    - Dst: fu_synaptics_rmi_v7_device_detach
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:427,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:430,1
    - Dst: fu_synaptics_rmi_hid_device_rebind_driver
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:437,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 414
    functionDepth: 7
    functionLinenumber: 414
    functionLinenumberEnd: 438
    functionName: fu_synaptics_rmi_hid_device_detach
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_v5_device_detach
    - fu_synaptics_rmi_device_get_function
    - g_set_error
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_synaptics_rmi_hid_device_rebind_driver
    - fu_synaptics_rmi_v7_device_detach
    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:443,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:446,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:447,1
    - Dst: fu_synaptics_rmi_device_reset
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:452,1
    - Dst: fu_synaptics_rmi_hid_device_rebind_driver
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 440
    functionDepth: 7
    functionLinenumber: 440
    functionLinenumberEnd: 457
    functionName: fu_synaptics_rmi_hid_device_attach
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_reset
    - g_debug
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_synaptics_rmi_hid_device_rebind_driver
    - fu_device_has_flag
    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:462,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:462,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:463,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:464,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - page
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 473
    functionName: fu_synaptics_rmi_hid_device_set_page
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - fu_synaptics_rmi_device_write
    - g_autoptr
    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:479,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:481,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:484,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:486,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:492,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:497,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - rmi_device
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 503
    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_get_function
    - g_prefix_error_literal
    - fu_synaptics_rmi_device_read
    - fu_synaptics_rmi_device_write
    - g_autoptr
    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:509,1
    - Dst: fu_synaptics_rmi_v5_device_query_status
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:513,1
    - Dst: fu_synaptics_rmi_v7_device_query_status
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:515,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:516,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - rmi_device
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 505
    functionDepth: 7
    functionLinenumber: 505
    functionLinenumberEnd: 522
    functionName: fu_synaptics_rmi_hid_device_query_status
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_v5_device_query_status
    - g_set_error
    - fu_synaptics_rmi_device_get_function
    - fu_synaptics_rmi_v7_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: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
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:530,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:531,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 524
    functionDepth: 3
    functionLinenumber: 524
    functionLinenumberEnd: 533
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:538,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:538,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:539,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:539,1
    - Dst: fu_synaptics_rmi_device_set_max_page
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:540,1
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:540,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:541,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:541,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:542,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsRmiHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 543
    functionName: fu_synaptics_rmi_hid_device_init
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_remove_delay
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_device_set_name
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_synaptics_rmi_device_set_max_page
    - fu_udev_device_add_open_flag
    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:548,1
    - Dst: FU_SYNAPTICS_RMI_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsRmiHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 562
    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:55,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:55,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:56,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:57,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:60,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:62,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:63,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - self
    - id
    - stream
    - offset
    - bufsz
    - flags
    - error
    argTypes:
    - FuSynapticsRmiFirmware*
    - gchar*
    - GInputStream*
    - gsize
    - gsize
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 64
    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
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - fu_firmware_new
    - g_autoptr
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_firmware_add_image(FuSynapticsRmiFirmware
      *self,\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: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_firmware_add_image
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:76,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:79,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:80,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:80,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:83,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:86,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:88,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:89,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:90,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 8
    argNames:
    - self
    - id
    - stream
    - offset
    - bufsz
    - sig_sz
    - flags
    - error
    argTypes:
    - FuSynapticsRmiFirmware*
    - gchar*
    - GInputStream*
    - gsize
    - gsize
    - gsize
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 66
    functionDepth: 5
    functionLinenumber: 66
    functionLinenumberEnd: 94
    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
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - fu_synaptics_rmi_firmware_add_image
    - fu_firmware_new
    - g_strdup_printf
    - g_autoptr
    - fu_partial_input_stream_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_firmware_add_image_v10(FuSynapticsRmiFirmware
      *self,\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:101,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_kv
      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: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
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:109,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:110,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 113
    functionName: fu_synaptics_rmi_firmware_export
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    - FU_SYNAPTICS_RMI_FIRMWARE
    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: 37
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:130,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:133,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:136,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:138,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:145,1
    - Dst: fu_struct_rmi_container_descriptor_parse_stream
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:146,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:148,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:152,1
    - Dst: fu_struct_rmi_container_descriptor_get_container_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:158,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:160,1
    - Dst: fu_struct_rmi_container_descriptor_get_content_address
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:168,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:170,1
    - Dst: fu_struct_rmi_container_descriptor_get_content_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:178,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:180,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:188,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:194,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:197,1
    - Dst: fu_memread_uint32_safe
      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:206,1
    - Dst: fu_struct_rmi_container_descriptor_parse_stream
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:208,1
    - Dst: fu_struct_rmi_container_descriptor_get_container_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:211,1
    - Dst: fu_struct_rmi_container_descriptor_get_content_address
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:212,1
    - Dst: fu_struct_rmi_container_descriptor_get_content_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:213,1
    - Dst: fu_struct_rmi_container_descriptor_get_signature_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:214,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:215,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:221,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:230,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:241,1
    - Dst: fu_synaptics_rmi_firmware_parse_sbl_container_v10
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:247,1
    - Dst: fu_synaptics_rmi_firmware_add_image_v10
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:258,1
    - Dst: fu_synaptics_rmi_firmware_add_image_v10
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:269,1
    - Dst: fu_synaptics_rmi_firmware_add_image_v10
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:281,1
    - Dst: fu_synaptics_rmi_firmware_add_image_v10
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:292,1
    - Dst: fu_synaptics_rmi_firmware_add_image_v10
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:303,1
    - Dst: fu_synaptics_rmi_firmware_add_image_v10
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:314,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:326,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:334,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:336,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:343,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:350,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:361,1
    - Dst: fu_rmi_container_id_to_string
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:362,1
    - Dst: g_free
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:369,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:370,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 118
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuSynapticsRmiFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 115
    functionDepth: 6
    functionLinenumber: 115
    functionLinenumberEnd: 373
    functionName: fu_synaptics_rmi_firmware_parse_v10
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_firmware_add_image_v10
    - g_free
    - fu_memread_uint32_safe
    - g_debug
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_synaptics_rmi_firmware_parse_sbl_container_v10
    - fu_struct_rmi_container_descriptor_get_signature_size
    - fu_rmi_container_id_to_string
    - fu_struct_rmi_container_descriptor_parse_stream
    - fu_struct_rmi_container_descriptor_get_container_id
    - g_bytes_get_data
    - fu_memread_uint8_safe
    - g_clear_pointer
    - fu_struct_rmi_container_descriptor_get_content_length
    - fu_input_stream_read_bytes
    - g_strndup
    - g_set_error
    - fu_struct_rmi_container_descriptor_get_content_address
    - fu_memcpy_safe
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_firmware_parse_v10(FuSynapticsRmiFirmware
      *self,\n\t\t\t\t    GInputStream *stream,\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/synaptics-rmi/fu-synaptics-rmi-firmware.c:383,1
    - Dst: fu_struct_rmi_img_parse_stream
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:386,1
    - Dst: fu_struct_rmi_img_get_image_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:389,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:395,1
    - Dst: fu_synaptics_rmi_firmware_add_image
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:404,1
    - Dst: fu_synaptics_rmi_firmware_add_image
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:413,1
    - Dst: fu_struct_rmi_img_get_config_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:424,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:427,1
    - Dst: fu_synaptics_rmi_firmware_add_image
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:433,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuSynapticsRmiFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 375
    functionDepth: 5
    functionLinenumber: 375
    functionLinenumberEnd: 443
    functionName: fu_synaptics_rmi_firmware_parse_v0x
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - fu_synaptics_rmi_firmware_add_image
    - fu_struct_rmi_img_get_config_size
    - fu_struct_rmi_img_get_image_size
    - fu_struct_rmi_img_parse_stream
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_firmware_parse_v0x(FuSynapticsRmiFirmware
      *self,\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:451,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:454,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:455,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:458,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:461,1
    - Dst: fu_struct_rmi_img_parse_stream
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:464,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:468,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:475,1
    - Dst: fu_struct_rmi_img_get_checksum
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:483,1
    - Dst: fu_synaptics_rmi_generate_checksum
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:486,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:488,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:499,1
    - Dst: fu_struct_rmi_img_get_io_offset
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:500,1
    - Dst: fu_struct_rmi_img_get_bootloader_version
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:501,1
    - Dst: fu_struct_rmi_img_get_fw_build_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:503,1
    - Dst: fu_struct_rmi_img_get_package_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:504,1
    - Dst: fu_struct_rmi_img_get_product_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:506,1
    - Dst: fu_struct_rmi_img_get_product_info
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:507,1
    - Dst: fu_firmware_set_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:508,1
    - Dst: fu_struct_rmi_img_get_image_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:508,1
    - Dst: fu_struct_rmi_img_get_signature_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:518,1
    - Dst: fu_synaptics_rmi_firmware_parse_v0x
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:519,1
    - Dst: fu_synaptics_rmi_firmware_parse_v10
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:525,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:530,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 445
    functionDepth: 7
    functionLinenumber: 445
    functionLinenumberEnd: 540
    functionName: fu_synaptics_rmi_firmware_parse
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_rmi_img_get_checksum
    - fu_struct_rmi_img_get_io_offset
    - fu_struct_rmi_img_get_signature_size
    - FU_SYNAPTICS_RMI_FIRMWARE
    - fu_struct_rmi_img_get_image_size
    - g_autoptr
    - fu_synaptics_rmi_firmware_parse_v10
    - fu_synaptics_rmi_firmware_parse_v0x
    - fu_struct_rmi_img_get_fw_build_id
    - g_set_error_literal
    - fu_firmware_set_size
    - fu_struct_rmi_img_get_package_id
    - g_bytes_get_data
    - g_clear_pointer
    - fu_input_stream_read_bytes
    - fu_struct_rmi_img_get_product_info
    - g_set_error
    - fu_struct_rmi_img_get_bootloader_version
    - fu_struct_rmi_img_get_product_id
    - fu_struct_rmi_img_parse_stream
    - fu_synaptics_rmi_generate_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: 546
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 546
    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: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:553,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:554,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:554,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:555,1
    - Dst: fu_struct_rmi_img_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:555,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:556,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:559,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:559,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:562,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:565,1
    - Dst: fu_struct_rmi_img_set_bootloader_version
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:568,1
    - Dst: fu_struct_rmi_img_set_product_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:570,1
    - Dst: fu_struct_rmi_img_set_product_info
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:573,1
    - Dst: fu_struct_rmi_img_set_image_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:574,1
    - Dst: fu_struct_rmi_img_set_config_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:575,1
    - Dst: fu_byte_array_append_array
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:576,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:577,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:578,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:579,1
    - Dst: fu_synaptics_rmi_generate_checksum
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:584,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:585,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:588,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 548
    functionDepth: 4
    functionLinenumber: 548
    functionLinenumberEnd: 589
    functionName: fu_synaptics_rmi_firmware_write_v0x
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_rmi_img_set_image_size
    - fu_firmware_write
    - fu_byte_array_set_size
    - fu_struct_rmi_img_set_config_size
    - fu_byte_array_append_array
    - fu_memwrite_uint32
    - FU_FIRMWARE
    - fu_struct_rmi_img_new
    - g_steal_pointer
    - fu_firmware_get_image_by_id
    - g_byte_array_new
    - fu_synaptics_rmi_generate_checksum
    - g_bytes_get_size
    - g_autoptr
    - fu_struct_rmi_img_set_bootloader_version
    - fu_struct_rmi_img_set_product_info
    - fu_struct_rmi_img_set_product_id
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_synaptics_rmi_firmware_write_v0x(FuSynapticsRmiFirmware *self, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:596,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:597,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:597,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:598,1
    - Dst: fu_struct_rmi_container_descriptor_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:599,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:600,1
    - Dst: fu_struct_rmi_container_descriptor_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:600,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:601,1
    - Dst: GUINT32_TO_LE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:606,1
    - Dst: fu_struct_rmi_container_descriptor_set_container_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:608,1
    - Dst: fu_struct_rmi_container_descriptor_set_content_address
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:610,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:613,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:613,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:616,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:619,1
    - Dst: fu_struct_rmi_container_descriptor_set_content_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:620,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:623,1
    - Dst: strlen
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:627,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:628,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:639,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:642,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:645,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:648,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:649,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:652,1
    - Dst: fu_struct_rmi_container_descriptor_set_container_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:657,1
    - Dst: fu_struct_rmi_container_descriptor_set_content_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:658,1
    - Dst: fu_struct_rmi_container_descriptor_set_content_address
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:659,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:662,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:665,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:668,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:671,1
    - Dst: fu_synaptics_rmi_generate_checksum
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:676,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:677,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:680,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 591
    functionDepth: 4
    functionLinenumber: 591
    functionLinenumberEnd: 681
    functionName: fu_synaptics_rmi_firmware_write_v10
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_memwrite_uint16
    - fu_firmware_get_image_by_id
    - fu_struct_rmi_container_descriptor_set_container_id
    - fu_struct_rmi_container_descriptor_set_content_length
    - fu_memwrite_uint32
    - GUINT32_TO_LE
    - g_byte_array_new
    - FU_FIRMWARE
    - fu_struct_rmi_container_descriptor_new
    - g_steal_pointer
    - memcpy
    - strlen
    - g_bytes_get_size
    - fu_memcpy_safe
    - fu_struct_rmi_container_descriptor_set_content_address
    - g_autoptr
    - fu_byte_array_set_size
    - fu_synaptics_rmi_generate_checksum
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_synaptics_rmi_firmware_write_v10(FuSynapticsRmiFirmware *self, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:686,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:691,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:696,1
    - Dst: strlen
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:698,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:700,1
    - Dst: g_free
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:708,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:709,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 714
    functionName: fu_synaptics_rmi_firmware_build
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - xb_node_query_text
    - g_set_error
    - xb_node_query_text_as_uint
    - FU_SYNAPTICS_RMI_FIRMWARE
    - strlen
    - 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:719,1
    - Dst: fu_synaptics_rmi_firmware_write_v0x
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:723,1
    - Dst: fu_synaptics_rmi_firmware_write_v10
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:725,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:728,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 716
    functionDepth: 5
    functionLinenumber: 716
    functionLinenumberEnd: 730
    functionName: fu_synaptics_rmi_firmware_write
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_synaptics_rmi_firmware_write_v10
    - 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:735,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:735,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:736,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:736,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:737,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:737,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:738,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsRmiFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 739
    functionName: fu_synaptics_rmi_firmware_init
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:744,1
    - Dst: g_free
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:745,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 747
    functionName: fu_synaptics_rmi_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_SYNAPTICS_RMI_FIRMWARE
    - 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:752,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsRmiFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 759
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:773,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:775,1
    - Dst: fu_struct_rmi_container_descriptor_parse_stream
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:778,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:780,1
    - Dst: fu_struct_rmi_container_descriptor_get_content_address
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:784,1
    - Dst: fu_struct_rmi_container_descriptor_get_content_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:785,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:787,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:802,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:804,1
    - Dst: fu_struct_rmi_container_descriptor_parse_stream
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:807,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:809,1
    - Dst: fu_struct_rmi_container_descriptor_get_container_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:813,1
    - Dst: fu_struct_rmi_container_descriptor_get_content_address
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:814,1
    - Dst: fu_struct_rmi_container_descriptor_get_content_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:815,1
    - Dst: fu_struct_rmi_container_descriptor_get_signature_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:816,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:818,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:824,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:830,1
    - Dst: fu_synaptics_rmi_firmware_add_image_v10
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:832,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c:840,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 7
    argNames:
    - self
    - stream
    - buf
    - bufsz
    - start_offset
    - flags
    - error
    argTypes:
    - FuSynapticsRmiFirmware*
    - GInputStream*
    - guint8*
    - gsize
    - guint32
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 761
    functionDepth: 6
    functionLinenumber: 761
    functionLinenumberEnd: 848
    functionName: fu_synaptics_rmi_firmware_parse_sbl_container_v10
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    functionUses: 1
    functionsReached:
    - fu_struct_rmi_container_descriptor_get_content_length
    - fu_memread_uint32_safe
    - g_debug
    - g_set_error
    - fu_struct_rmi_container_descriptor_get_container_id
    - fu_struct_rmi_container_descriptor_get_content_address
    - fu_synaptics_rmi_firmware_add_image_v10
    - g_prefix_error_literal
    - fu_struct_rmi_container_descriptor_get_signature_size
    - fu_struct_rmi_container_descriptor_parse_stream
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_firmware_parse_sbl_container_v10(FuSynapticsRmiFirmware
      *self,\n\t\t\t\t\t\t  GInputStream *stream,\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  guint32 start_offset,\n\t\t\t\t\t\t  FuFirmwareParseFlags
      flags,\n\t\t\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:27,1
    - Dst: fu_udev_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:28,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:28,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:35,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:36,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:37,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:37,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:40,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:40,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - pbuf
    - error
    argTypes:
    - FuSynapticsRmiPs2Device*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 23
    functionDepth: 5
    functionLinenumber: 23
    functionLinenumberEnd: 47
    functionName: fu_synaptics_rmi_ps2_device_read_ack
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - g_set_error_literal
    - g_steal_pointer
    - g_propagate_error
    - FU_DEVICE
    - g_warning
    - g_error_matches
    - FU_UDEV_DEVICE
    - fu_udev_device_read
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_ps2_device_read_ack(FuSynapticsRmiPs2Device
      *self, guint8 *pbuf, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:56,1
    - Dst: fu_udev_device_read
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - pbuf
    - timeout
    - error
    argTypes:
    - FuSynapticsRmiPs2Device*
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: fu_synaptics_rmi_ps2_device_read_byte
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_udev_device_read
    - FU_UDEV_DEVICE
    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: g_return_val_if_fail
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:75,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:78,1
    - Dst: fu_udev_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:80,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:80,1
    - Dst: fu_synaptics_rmi_ps2_device_read_ack
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:93,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:95,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:96,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:100,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:107,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:108,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:113,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:114,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:114,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:117,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:118,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:118,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:126,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: 136
      start: 67
    functionDepth: 6
    functionLinenumber: 67
    functionLinenumberEnd: 136
    functionName: fu_synaptics_rmi_ps2_device_write_byte
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_udev_device_write
    - fu_synaptics_rmi_ps2_device_read_ack
    - g_debug
    - fu_device_sleep
    - g_set_error_literal
    - g_steal_pointer
    - FU_DEVICE
    - g_warning
    - FU_UDEV_DEVICE
    - g_autoptr
    - g_propagate_prefixed_error
    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:146,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:155,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:162,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: 172
      start: 138
    functionDepth: 7
    functionLinenumber: 138
    functionLinenumberEnd: 172
    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:184,1
    - Dst: fu_synaptics_rmi_ps2_device_set_resolution_sequence
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:185,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:189,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:192,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:197,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:204,1
    - Dst: fu_synaptics_rmi_ps2_device_read_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:211,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:212,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - self
    - ucArgument
    - buf
    - error
    argTypes:
    - FuSynapticsRmiPs2Device*
    - FuRmiStatusRequest
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 174
    functionDepth: 8
    functionLinenumber: 174
    functionLinenumberEnd: 219
    functionName: fu_synaptics_rmi_ps2_device_status_request
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_ps2_device_write_byte
    - g_debug
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_synaptics_rmi_ps2_device_set_resolution_sequence
    - g_autoptr
    - fu_synaptics_rmi_ps2_device_read_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:230,1
    - Dst: fu_synaptics_rmi_ps2_device_set_resolution_sequence
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:235,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:239,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:244,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:250,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:250,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:253,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: 260
      start: 221
    functionDepth: 8
    functionLinenumber: 221
    functionLinenumberEnd: 260
    functionName: fu_synaptics_rmi_ps2_device_sample_rate
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_ps2_device_write_byte
    - g_steal_pointer
    - g_warning
    - fu_synaptics_rmi_ps2_device_set_resolution_sequence
    - g_propagate_error
    - g_autoptr
    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:268,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:273,1
    - Dst: fu_synaptics_rmi_ps2_device_read_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:276,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - result
    - error
    argTypes:
    - FuSynapticsRmiPs2Device*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 262
    functionDepth: 7
    functionLinenumber: 262
    functionLinenumberEnd: 283
    functionName: fu_synaptics_rmi_ps2_device_detect_synaptics_styk
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_ps2_device_write_byte
    - fu_synaptics_rmi_ps2_device_read_byte
    - g_prefix_error_literal
    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:290,1
    - Dst: fu_synaptics_rmi_ps2_device_status_request
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:295,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:299,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:302,1
    - Dst: fu_synaptics_rmi_ps2_device_detect_synaptics_styk
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:305,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:306,1
    - Dst: fu_synaptics_rmi_device_set_iepmode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:309,1
    - Dst: fu_synaptics_rmi_ps2_device_status_request
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:313,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:318,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - rmi_device
    - build_id
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 285
    functionDepth: 9
    functionLinenumber: 285
    functionLinenumberEnd: 323
    functionName: fu_synaptics_rmi_ps2_device_query_build_id
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_set_iepmode
    - g_debug
    - fu_synaptics_rmi_ps2_device_status_request
    - fu_synaptics_rmi_ps2_device_detect_synaptics_styk
    - g_prefix_error_literal
    - FU_SYNAPTICS_RMI_PS2_DEVICE
    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:330,1
    - Dst: fu_synaptics_rmi_ps2_device_status_request
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:332,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - rmi_device
    - sub_id
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 325
    functionDepth: 9
    functionLinenumber: 325
    functionLinenumberEnd: 343
    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_status_request
    - FU_SYNAPTICS_RMI_PS2_DEVICE
    - g_prefix_error_literal
    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:348,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:351,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:356,1
    - Dst: fu_synaptics_rmi_ps2_device_sample_rate
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:361,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - rmi_device
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 345
    functionDepth: 9
    functionLinenumber: 345
    functionLinenumberEnd: 372
    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
    - fu_synaptics_rmi_ps2_device_write_byte
    - g_prefix_error_literal
    - fu_synaptics_rmi_ps2_device_sample_rate
    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:383,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:385,1
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:385,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:389,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:394,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:397,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:402,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:405,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:406,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:410,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:415,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:418,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:419,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:425,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:425,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: 427
      start: 374
    functionDepth: 7
    functionLinenumber: 374
    functionLinenumberEnd: 427
    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_return_val_if_fail
    - fu_synaptics_rmi_device_enter_iep_mode
    - fu_synaptics_rmi_ps2_device_write_byte
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_device_sleep
    - g_prefix_error_literal
    - g_prefix_error
    - FU_DEVICE
    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:435,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:437,1
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:437,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:442,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:443,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:448,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:453,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:458,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:463,1
    - Dst: fu_synaptics_rmi_ps2_device_read_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:467,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:469,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:471,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:477,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:486,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:486,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - self
    - addr
    - buf
    - error
    argTypes:
    - FuSynapticsRmiPs2Device*
    - guint8
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 429
    functionDepth: 7
    functionLinenumber: 429
    functionLinenumberEnd: 488
    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_return_val_if_fail
    - fu_synaptics_rmi_device_enter_iep_mode
    - fu_synaptics_rmi_ps2_device_write_byte
    - g_debug
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_device_sleep
    - g_steal_pointer
    - g_prefix_error_literal
    - FU_DEVICE
    - g_autoptr
    - fu_synaptics_rmi_ps2_device_read_byte
    - g_propagate_prefixed_error
    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:496,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:496,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:498,1
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:498,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:502,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:507,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:512,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:517,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:522,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: 490
    functionDepth: 7
    functionLinenumber: 490
    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:
    - fu_synaptics_rmi_device_enter_iep_mode
    - fu_synaptics_rmi_ps2_device_write_byte
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_device_sleep
    - g_steal_pointer
    - g_prefix_error_literal
    - g_prefix_error
    - fu_byte_array_append_uint8
    - FU_DEVICE
    - g_byte_array_new
    - g_autoptr
    - fu_synaptics_rmi_ps2_device_read_byte
    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:550,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:551,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - rmi_device
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 539
    functionDepth: 7
    functionLinenumber: 539
    functionLinenumberEnd: 557
    functionName: fu_synaptics_rmi_ps2_device_query_status
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - 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_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:562,1
    - Dst: fu_synaptics_rmi_ps2_device_write_rmi_register
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:563,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - rmi_device
    - page
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 559
    functionDepth: 8
    functionLinenumber: 559
    functionLinenumberEnd: 574
    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:582,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:583,1
    - Dst: fu_synaptics_rmi_device_set_page
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:586,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:587,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:592,1
    - Dst: fu_synaptics_rmi_ps2_device_read_rmi_register
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:595,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:600,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:603,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:606,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:608,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:620,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:621,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:622,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: 623
      start: 576
    functionDepth: 8
    functionLinenumber: 576
    functionLinenumberEnd: 623
    functionName: fu_synaptics_rmi_ps2_device_read
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_ps2_device_read_rmi_register
    - g_debug
    - g_set_error
    - g_steal_pointer
    - g_prefix_error_literal
    - g_prefix_error
    - fu_byte_array_append_uint8
    - fu_synaptics_rmi_device_set_page
    - g_byte_array_new
    - FU_SYNAPTICS_RMI_PS2_DEVICE
    - g_strdup_printf
    - fu_dump_full
    - g_autoptr
    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:631,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:632,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:633,1
    - Dst: fu_synaptics_rmi_device_set_page
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:635,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:636,1
    - Dst: fu_synaptics_rmi_ps2_device_read_rmi_packet_register
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:640,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:642,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:646,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:647,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: 648
      start: 625
    functionDepth: 8
    functionLinenumber: 625
    functionLinenumberEnd: 648
    functionName: fu_synaptics_rmi_ps2_device_read_packet_register
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - g_prefix_error_literal
    - g_prefix_error
    - g_strdup_printf
    - FU_SYNAPTICS_RMI_PS2_DEVICE
    - fu_synaptics_rmi_device_set_page
    - fu_synaptics_rmi_ps2_device_read_rmi_packet_register
    - fu_dump_full
    - 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:657,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:658,1
    - Dst: fu_synaptics_rmi_device_set_page
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:660,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:661,1
    - Dst: fu_synaptics_rmi_ps2_device_write_rmi_register
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:664,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:671,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:674,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: 676
      start: 650
    functionDepth: 8
    functionLinenumber: 650
    functionLinenumberEnd: 676
    functionName: fu_synaptics_rmi_ps2_device_write
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - g_prefix_error
    - g_strdup_printf
    - FU_SYNAPTICS_RMI_PS2_DEVICE
    - fu_synaptics_rmi_device_set_page
    - fu_dump_full
    - fu_synaptics_rmi_ps2_device_write_rmi_register
    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:683,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:683,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:684,1
    - Dst: fu_synaptics_rmi_ps2_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:685,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - rmi_device
    - bus
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 678
    functionDepth: 9
    functionLinenumber: 678
    functionLinenumberEnd: 694
    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_synaptics_rmi_ps2_device_write
    - g_prefix_error
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - g_autoptr
    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:700,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:700,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:700,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:701,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 696
    functionDepth: 6
    functionLinenumber: 696
    functionLinenumberEnd: 706
    functionName: fu_synaptics_rmi_ps2_device_probe
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_strcmp0
    - fu_device_remove_flag
    - fu_udev_device_get_driver
    - FU_UDEV_DEVICE
    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:711,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:715,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:719,1
    - Dst: fu_synaptics_rmi_ps2_device_read_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:723,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:728,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:733,1
    - Dst: fu_synaptics_rmi_ps2_device_read_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:738,1
    - Dst: fu_synaptics_rmi_ps2_device_read_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:739,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:740,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:744,1
    - Dst: fu_synaptics_rmi_ps2_device_write_byte
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:754,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:759,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 708
    functionDepth: 7
    functionLinenumber: 708
    functionLinenumberEnd: 766
    functionName: fu_synaptics_rmi_ps2_device_open
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_ps2_device_write_byte
    - g_set_error
    - g_prefix_error_literal
    - FU_SYNAPTICS_RMI_PS2_DEVICE
    - fu_device_has_flag
    - fu_synaptics_rmi_ps2_device_read_byte
    - FU_DEVICE_CLASS
    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:771,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:775,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:776,1
    - Dst: fu_udev_device_write_sysfs
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:781,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:781,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:786,1
    - Dst: fu_device_close
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:791,1
    - Dst: fu_device_rescan
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:793,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:795,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:798,1
    - Dst: fu_synaptics_rmi_v5_device_detach
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:802,1
    - Dst: fu_synaptics_rmi_v7_device_detach
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:805,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:808,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:817,1
    - Dst: fu_synaptics_rmi_ps2_device_query_status
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:822,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:823,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 768
    functionDepth: 8
    functionLinenumber: 768
    functionLinenumberEnd: 829
    functionName: fu_synaptics_rmi_ps2_device_detach
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_open
    - fu_synaptics_rmi_device_enter_iep_mode
    - fu_synaptics_rmi_v5_device_detach
    - g_debug
    - fu_synaptics_rmi_device_get_function
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_device_rescan
    - g_set_error
    - fu_synaptics_rmi_ps2_device_query_status
    - g_prefix_error_literal
    - fu_udev_device_write_sysfs
    - fu_device_has_flag
    - FU_UDEV_DEVICE
    - fu_device_close
    - fu_synaptics_rmi_v7_device_detach
    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:835,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 838
    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:843,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:846,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:847,1
    - Dst: fu_synaptics_rmi_device_set_iepmode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:852,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:855,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:858,1
    - Dst: fu_synaptics_rmi_device_reset
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:862,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:863,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:866,1
    - Dst: fu_udev_device_write_sysfs
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:869,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:869,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:874,1
    - Dst: fu_device_rescan
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:879,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 840
    functionDepth: 5
    functionLinenumber: 840
    functionLinenumberEnd: 880
    functionName: fu_synaptics_rmi_ps2_device_attach
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_set_iepmode
    - fu_synaptics_rmi_device_enter_iep_mode
    - fu_synaptics_rmi_device_reset
    - g_debug
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_device_rescan
    - fu_device_sleep_full
    - g_prefix_error_literal
    - fu_udev_device_write_sysfs
    - fu_device_has_flag
    - FU_UDEV_DEVICE
    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:885,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:885,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:886,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:886,1
    - Dst: fu_device_set_vendor
      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_build_vendor_id_u16
      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_synaptics_rmi_device_set_max_page
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:889,1
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:889,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:890,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:890,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:891,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsRmiPs2Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 882
    functionDepth: 6
    functionLinenumber: 882
    functionLinenumberEnd: 892
    functionName: fu_synaptics_rmi_ps2_device_init
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_device_build_vendor_id_u16
    - fu_device_set_name
    - FU_DEVICE
    - fu_device_set_vendor
    - FU_UDEV_DEVICE
    - fu_synaptics_rmi_device_set_max_page
    - fu_udev_device_add_open_flag
    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:900,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:900,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: 902
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 902
    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_sleep
    - FU_DEVICE
    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:907,1
    - Dst: FU_SYNAPTICS_RMI_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-ps2-device.c:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsRmiPs2DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 924
    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:16,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:19,1
    - Dst: fu_firmware_roundtrip_from_filename
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:20,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:24,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 11
    functionDepth: 7
    functionLinenumber: 11
    functionLinenumberEnd: 26
    functionName: fu_synaptics_rmi_firmware_0x_func
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - fu_firmware_roundtrip_from_filename
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    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:33,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:36,1
    - Dst: fu_firmware_roundtrip_from_filename
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:37,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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 28
    functionDepth: 7
    functionLinenumber: 28
    functionLinenumberEnd: 43
    functionName: fu_synaptics_rmi_firmware_10_func
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - fu_firmware_roundtrip_from_filename
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    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:48,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:49,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:50,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:51,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c:52,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/synaptics-rmi/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: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: main
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_type_ensure
    - 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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-plugin.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 37
    functionName: fu_synaptics_rmi_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_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:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsRmiPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:24,1
    - Dst: fu_synaptics_rmi_device_set_previous_sbl_version
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:26,1
    - Dst: fu_synaptics_rmi_device_disable_irqs
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:35,1
    - Dst: fu_synaptics_rmi_v7_device_enter_sbl
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:37,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:38,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:42,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:44,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:47,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:49,1
    - Dst: fu_synaptics_rmi_device_set_previous_sbl_version
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:52,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:55,1
    - Dst: fu_synaptics_rmi_device_get_previous_sbl_version
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:56,1
    - Dst: fu_synaptics_rmi_device_get_previous_sbl_version
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:57,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:61,1
    - Dst: fu_struct_synaptics_rmi_v7_enter_bl_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:64,1
    - Dst: fu_struct_synaptics_rmi_v7_enter_bl_set_bootloader_id0
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:65,1
    - Dst: fu_struct_synaptics_rmi_v7_enter_bl_set_bootloader_id1
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:66,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:67,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:72,1
    - Dst: fu_synaptics_rmi_device_wait_for_idle
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:77,1
    - Dst: fu_synaptics_rmi_device_poll_wait
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:84,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:86,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:86,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 88
    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_poll_wait
    - fu_synaptics_rmi_device_disable_irqs
    - fu_synaptics_rmi_device_get_function
    - g_debug
    - fu_device_sleep
    - fu_synaptics_rmi_v7_device_enter_sbl
    - fu_struct_synaptics_rmi_v7_enter_bl_set_bootloader_id1
    - g_prefix_error_literal
    - fu_synaptics_rmi_device_read
    - fu_synaptics_rmi_device_get_previous_sbl_version
    - FU_DEVICE
    - fu_synaptics_rmi_device_set_previous_sbl_version
    - fu_synaptics_rmi_device_get_flash
    - fu_struct_synaptics_rmi_v7_enter_bl_set_bootloader_id0
    - fu_synaptics_rmi_device_write
    - fu_synaptics_rmi_device_wait_for_idle
    - g_autoptr
    - fu_struct_synaptics_rmi_v7_enter_bl_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_v7_device_detach(FuSynapticsRmiDevice *self,
      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:96,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:97,1
    - Dst: fu_struct_synaptics_rmi_v7_erase_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:97,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:100,1
    - Dst: fu_struct_synaptics_rmi_v7_erase_set_partition_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:104,1
    - Dst: fu_struct_synaptics_rmi_v7_erase_set_bootloader_id0
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:105,1
    - Dst: fu_struct_synaptics_rmi_v7_erase_set_bootloader_id1
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:106,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:108,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:109,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:114,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:117,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:117,1
    - Dst: fu_synaptics_rmi_device_wait_for_idle
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:120,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:124,1
    - Dst: fu_synaptics_rmi_device_poll_wait
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:128,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - self
    - partition_id
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - FuRmiPartitionId
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 133
    functionName: fu_synaptics_rmi_v7_device_erase_partition
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_synaptics_rmi_v7_erase_new
    - fu_synaptics_rmi_device_poll_wait
    - fu_struct_synaptics_rmi_v7_erase_set_bootloader_id1
    - fu_synaptics_rmi_device_get_function
    - fu_struct_synaptics_rmi_v7_erase_set_bootloader_id0
    - fu_device_sleep
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_synaptics_rmi_device_get_flash
    - fu_synaptics_rmi_device_wait_for_idle
    - fu_synaptics_rmi_device_write
    - g_autoptr
    - fu_struct_synaptics_rmi_v7_erase_set_partition_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_v7_device_erase_partition(FuSynapticsRmiDevice
      *self,\n\t\t\t\t\t   FuRmiPartitionId 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:139,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:140,1
    - Dst: fu_struct_synaptics_rmi_v7_erase_core_code_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:141,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:144,1
    - Dst: fu_struct_synaptics_rmi_v7_erase_core_code_set_cmd
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:149,1
    - Dst: fu_struct_synaptics_rmi_v7_erase_core_code_set_bootloader_id0
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:153,1
    - Dst: fu_struct_synaptics_rmi_v7_erase_core_code_set_bootloader_id1
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:154,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:159,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:159,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:160,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:165,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:168,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:168,1
    - Dst: fu_synaptics_rmi_device_wait_for_idle
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:171,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:176,1
    - Dst: fu_synaptics_rmi_device_poll_wait
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:180,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:181,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:187,1
    - Dst: fu_struct_synaptics_rmi_v7_erase_core_config_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:188,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:190,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:190,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:191,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:196,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:201,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:201,1
    - Dst: fu_synaptics_rmi_device_wait_for_idle
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:202,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:207,1
    - Dst: fu_synaptics_rmi_device_poll_wait
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:210,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:211,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 216
    functionName: fu_synaptics_rmi_v7_device_erase_all
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_synaptics_rmi_v7_erase_core_config_new
    - fu_synaptics_rmi_device_poll_wait
    - fu_synaptics_rmi_device_get_function
    - fu_device_sleep
    - fu_struct_synaptics_rmi_v7_erase_core_code_set_bootloader_id0
    - fu_struct_synaptics_rmi_v7_erase_core_code_new
    - g_prefix_error_literal
    - fu_struct_synaptics_rmi_v7_erase_core_code_set_bootloader_id1
    - FU_DEVICE
    - fu_synaptics_rmi_device_get_flash
    - fu_synaptics_rmi_device_wait_for_idle
    - fu_synaptics_rmi_device_write
    - g_autoptr
    - fu_struct_synaptics_rmi_v7_erase_core_code_set_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_v7_device_erase_all(FuSynapticsRmiDevice
      *self, 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:224,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:225,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:228,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:232,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:233,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:234,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:234,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:237,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:240,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:240,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:240,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:241,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:246,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:249,1
    - Dst: fu_synaptics_rmi_device_wait_for_idle
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:255,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:259,1
    - Dst: fu_synaptics_rmi_device_poll_wait
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - self
    - address
    - fw
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint32
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 267
    functionName: fu_synaptics_rmi_v7_device_write_blocks
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_poll_wait
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - g_prefix_error
    - fu_synaptics_rmi_device_get_flash
    - g_byte_array_new
    - fu_chunk_get_data
    - fu_synaptics_rmi_device_write
    - fu_synaptics_rmi_device_wait_for_idle
    - g_byte_array_append
    - fu_chunk_array_length
    - g_autoptr
    - fu_chunk_get_address
    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:277,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:279,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:279,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:280,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:281,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:284,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:289,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:290,1
    - Dst: g_info
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:296,1
    - Dst: fu_rmi_partition_id_to_string
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:296,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:298,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:299,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:304,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:309,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:313,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:314,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:315,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:315,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:316,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:316,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:317,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:320,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:324,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:325,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:327,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:332,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:335,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:336,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:341,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:344,1
    - Dst: fu_synaptics_rmi_v7_device_write_blocks
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:345,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 5
    argNames:
    - self
    - firmware
    - id
    - partition_id
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - FuFirmware*
    - gchar*
    - FuRmiPartitionId
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 269
    functionDepth: 5
    functionLinenumber: 269
    functionLinenumberEnd: 352
    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_synaptics_rmi_v7_device_write_blocks
    - fu_byte_array_append_uint16
    - fu_synaptics_rmi_device_get_function
    - g_info
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_index
    - fu_firmware_get_image_by_id_bytes
    - fu_chunk_get_data_sz
    - g_prefix_error_literal
    - fu_byte_array_append_uint8
    - fu_synaptics_rmi_device_get_flash
    - g_byte_array_new
    - g_strdup_printf
    - fu_synaptics_rmi_device_write
    - fu_chunk_get_bytes
    - fu_chunk_array_length
    - g_autoptr
    - fu_rmi_partition_id_to_string
    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:364,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:365,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:365,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:366,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:366,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:367,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:370,1
    - Dst: g_info
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:375,1
    - Dst: fu_rmi_partition_id_to_string
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:375,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:376,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:377,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:382,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:385,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:386,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:391,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:397,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:401,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:402,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:402,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:403,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:404,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:405,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:406,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:406,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:407,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:407,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:410,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:414,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:415,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:417,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:422,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:425,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:426,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:431,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:434,1
    - Dst: fu_synaptics_rmi_v7_device_write_blocks
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:435,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:440,1
    - Dst: fu_synaptics_rmi_v7_device_write_partition_signature
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:442,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:448,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: 450
      start: 354
    functionDepth: 6
    functionLinenumber: 354
    functionLinenumberEnd: 450
    functionName: fu_synaptics_rmi_v7_device_write_partition
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint16
    - fu_synaptics_rmi_device_get_function
    - fu_chunk_get_data_sz
    - g_autoptr
    - fu_rmi_partition_id_to_string
    - fu_synaptics_rmi_v7_device_write_blocks
    - fu_progress_set_steps
    - g_prefix_error_literal
    - g_byte_array_new
    - fu_chunk_get_bytes
    - g_info
    - fu_progress_step_done
    - fu_byte_array_append_uint8
    - fu_synaptics_rmi_device_get_flash
    - fu_chunk_array_length
    - fu_progress_set_id
    - fu_synaptics_rmi_v7_device_write_partition_signature
    - fu_chunk_array_index
    - fu_synaptics_rmi_device_write
    - fu_chunk_array_new_from_bytes
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:455,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:458,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:458,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:459,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:459,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:460,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:460,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:461,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:461,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:462,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:463,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:463,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:467,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:475,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:480,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:481,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:486,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:489,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:490,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:495,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:500,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:503,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:508,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:513,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:514,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:519,1
    - Dst: fu_synaptics_rmi_device_poll_wait
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:522,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:523,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:528,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:530,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:535,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:538,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 539
    functionName: fu_synaptics_rmi_v7_device_get_pubkey
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint16
    - fu_synaptics_rmi_device_poll_wait
    - g_bytes_new
    - fu_synaptics_rmi_device_get_function
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_byte_array_append_uint8
    - fu_synaptics_rmi_device_read
    - fu_synaptics_rmi_device_get_flash
    - g_byte_array_new
    - fu_synaptics_rmi_device_write
    - g_autoptr
    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:546,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:547,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:548,1
    - Dst: fu_synaptics_rmi_v7_device_get_pubkey
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:553,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:555,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:559,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:561,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:562,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:563,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:564,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:567,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:569,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:570,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:573,1
    - Dst: fu_synaptics_rmi_verify_sha256_signature
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:576,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:580,1
    - Dst: g_info
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:583,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - self
    - firmware
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 541
    functionDepth: 5
    functionLinenumber: 541
    functionLinenumberEnd: 586
    functionName: fu_synaptics_rmi_v7_device_secure_check
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - g_info
    - fu_firmware_get_bytes
    - fu_synaptics_rmi_verify_sha256_signature
    - fu_firmware_get_image_by_id_bytes
    - g_str_has_suffix
    - g_prefix_error_literal
    - g_prefix_error
    - fu_firmware_get_images
    - fu_synaptics_rmi_device_get_flash
    - g_strdup_printf
    - g_ptr_array_index
    - g_autoptr
    - fu_synaptics_rmi_v7_device_get_pubkey
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:594,1
    - Dst: fu_synaptics_rmi_device_get_previous_sbl_version
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:598,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:599,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:602,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:607,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:612,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:615,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:620,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:624,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:630,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:635,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:643,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:651,1
    - Dst: fu_synaptics_rmi_v7_device_erase_partition
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:652,1
    - Dst: fu_synaptics_rmi_v7_device_write_partition
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:656,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:665,1
    - Dst: fu_synaptics_rmi_v7_device_enter_sbl
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:668,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:669,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 588
    functionDepth: 7
    functionLinenumber: 588
    functionLinenumberEnd: 675
    functionName: fu_synaptics_rmi_v7_device_write_sbl
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_get_function
    - g_debug
    - fu_firmware_get_image_by_id_bytes
    - fu_synaptics_rmi_v7_device_enter_sbl
    - g_prefix_error_literal
    - fu_synaptics_rmi_device_get_previous_sbl_version
    - fu_synaptics_rmi_device_read
    - fu_synaptics_rmi_device_get_flash
    - fu_synaptics_rmi_v7_device_write_partition
    - fu_synaptics_rmi_v7_device_erase_partition
    - g_autoptr
    - fu_memread_uint16_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_v7_device_write_sbl(FuSynapticsRmiDevice
      *self,\n\t\t\t\t     FuFirmware *firmware,\n\t\t\t\t     FuProgress *progress,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: fu_synaptics_rmi_device_get_flash
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:684,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:685,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:686,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:687,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:688,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:689,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:690,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:693,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:695,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:696,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:697,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:698,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:699,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:700,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:701,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:702,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:703,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:707,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:709,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:710,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:711,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:712,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:713,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:714,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:715,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:716,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:720,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:722,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:723,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:724,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:725,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:726,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:727,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:728,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:729,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:733,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:735,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:736,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:737,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:738,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:739,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:740,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:741,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:742,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:746,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:750,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:750,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:751,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:759,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:762,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:766,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:770,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:771,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:772,1
    - Dst: fu_synaptics_rmi_device_disable_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:775,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:777,1
    - Dst: fu_synaptics_rmi_v7_device_secure_check
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:780,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:782,1
    - Dst: fu_synaptics_rmi_v7_device_write_partition
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:786,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:792,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:796,1
    - Dst: fu_synaptics_rmi_v7_device_erase_partition
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:800,1
    - Dst: fu_synaptics_rmi_v7_device_write_partition
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:804,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:809,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:812,1
    - Dst: fu_synaptics_rmi_v7_device_write_sbl
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:817,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:819,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:822,1
    - Dst: fu_synaptics_rmi_v7_device_erase_all
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:826,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:827,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:830,1
    - Dst: fu_synaptics_rmi_v7_device_write_partition
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:834,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:839,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:842,1
    - Dst: fu_synaptics_rmi_v7_device_write_partition
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:846,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:851,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:854,1
    - Dst: fu_synaptics_rmi_v7_device_write_partition
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:857,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:862,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:865,1
    - Dst: fu_synaptics_rmi_v7_device_write_partition
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:869,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:875,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:879,1
    - Dst: fu_synaptics_rmi_v7_device_write_partition
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:883,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:888,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:892,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 123
    argCount: 5
    argNames:
    - self
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 677
    functionDepth: 8
    functionLinenumber: 677
    functionLinenumberEnd: 896
    functionName: fu_synaptics_rmi_v7_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_disable_sleep
    - fu_synaptics_rmi_v7_device_secure_check
    - fu_progress_add_step
    - fu_progress_add_flag
    - g_set_error_literal
    - fu_firmware_get_image_by_id_bytes
    - fu_progress_step_done
    - fu_synaptics_rmi_v7_device_erase_all
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_synaptics_rmi_device_get_flash
    - fu_device_has_flag
    - fu_synaptics_rmi_v7_device_write_partition
    - fu_synaptics_rmi_v7_device_erase_partition
    - g_autoptr
    - fu_progress_get_child
    - fu_synaptics_rmi_v7_device_write_sbl
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_v7_device_write_firmware(FuSynapticsRmiDevice
      *self,\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:901,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:903,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:903,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:904,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:904,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:905,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:905,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:906,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:906,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:907,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:911,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:916,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:917,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:922,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:925,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:926,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:931,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:936,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:937,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:942,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:947,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:948,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:953,1
    - Dst: fu_synaptics_rmi_device_poll_wait
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:956,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:957,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:963,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:968,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:973,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:981,1
    - Dst: fu_struct_rmi_partition_tbl_parse
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:982,1
    - Dst: fu_struct_rmi_partition_tbl_get_partition_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:985,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:986,1
    - Dst: fu_rmi_partition_id_to_string
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:987,1
    - Dst: fu_struct_rmi_partition_tbl_get_partition_len
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:991,1
    - Dst: fu_struct_rmi_partition_tbl_get_partition_len
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:996,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 898
    functionDepth: 2
    functionLinenumber: 898
    functionLinenumberEnd: 1009
    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_byte_array_append_uint16
    - fu_synaptics_rmi_device_poll_wait
    - fu_synaptics_rmi_device_get_function
    - g_debug
    - g_prefix_error_literal
    - fu_byte_array_append_uint8
    - fu_synaptics_rmi_device_read
    - fu_synaptics_rmi_device_get_flash
    - g_byte_array_new
    - fu_synaptics_rmi_device_write
    - fu_struct_rmi_partition_tbl_parse
    - fu_struct_rmi_partition_tbl_get_partition_id
    - fu_dump_full
    - fu_struct_rmi_partition_tbl_get_partition_len
    - g_autoptr
    - fu_rmi_partition_id_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_v7_device_read_flash_config(FuSynapticsRmiDevice
      *self, 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:1014,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1017,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1018,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1019,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1022,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1026,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1028,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1033,1
    - Dst: fu_struct_synaptics_rmi_v7_f34x_parse
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1037,1
    - Dst: fu_struct_synaptics_rmi_v7_f34x_get_bootloader_id0
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1040,1
    - Dst: fu_struct_synaptics_rmi_v7_f34x_get_bootloader_id1
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1041,1
    - Dst: fu_struct_synaptics_rmi_v7_f34x_get_build_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1042,1
    - Dst: fu_struct_synaptics_rmi_v7_f34x_get_block_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1043,1
    - Dst: fu_struct_synaptics_rmi_v7_f34x_get_config_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1044,1
    - Dst: fu_struct_synaptics_rmi_v7_f34x_get_payload_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1045,1
    - Dst: fu_struct_synaptics_rmi_v7_f34x_get_supported_partitions
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1047,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1053,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1060,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1067,1
    - Dst: fu_synaptics_rmi_v7_device_read_flash_config
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1079,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1011
    functionDepth: 3
    functionLinenumber: 1011
    functionLinenumberEnd: 1080
    functionName: fu_synaptics_rmi_v7_device_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_synaptics_rmi_v7_f34x_get_build_id
    - fu_synaptics_rmi_device_get_function
    - g_set_error
    - fu_synaptics_rmi_v7_device_read_flash_config
    - fu_struct_synaptics_rmi_v7_f34x_get_config_length
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_synaptics_rmi_device_read
    - fu_synaptics_rmi_device_get_flash
    - fu_struct_synaptics_rmi_v7_f34x_parse
    - fu_struct_synaptics_rmi_v7_f34x_get_block_size
    - fu_struct_synaptics_rmi_v7_f34x_get_payload_length
    - fu_struct_synaptics_rmi_v7_f34x_get_supported_partitions
    - g_autoptr
    - fu_struct_synaptics_rmi_v7_f34x_get_bootloader_id1
    - fu_struct_synaptics_rmi_v7_f34x_get_bootloader_id0
    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:1087,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1090,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1093,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1095,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1100,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1100,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1102,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1102,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1105,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1112,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1119,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1126,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1133,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1140,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1147,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1154,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1161,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1168,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1082
    functionDepth: 6
    functionLinenumber: 1082
    functionLinenumberEnd: 1175
    functionName: fu_synaptics_rmi_v7_device_query_status
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 2
    functionsReached:
    - fu_device_add_flag
    - fu_synaptics_rmi_device_get_function
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_synaptics_rmi_device_read
    - fu_device_remove_flag
    - FU_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_v7_device_query_status(FuSynapticsRmiDevice
      *self, 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:1180,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1182,1
    - Dst: fu_struct_synaptics_rmi_v7_enter_sbl_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1182,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1185,1
    - Dst: fu_synaptics_rmi_device_disable_irqs
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1190,1
    - Dst: fu_struct_synaptics_rmi_v7_enter_sbl_set_bootloader_id0
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1194,1
    - Dst: fu_struct_synaptics_rmi_v7_enter_sbl_set_bootloader_id1
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1195,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1196,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1201,1
    - Dst: fu_synaptics_rmi_device_wait_for_idle
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1206,1
    - Dst: fu_synaptics_rmi_device_poll_wait
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1211,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1213,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1213,1
    - Dst: fu_synaptics_rmi_device_scan_pdt
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1216,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1217,1
    - Dst: fu_synaptics_rmi_v7_device_setup
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1221,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c:1222,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1177
    functionDepth: 4
    functionLinenumber: 1177
    functionLinenumberEnd: 1226
    functionName: fu_synaptics_rmi_v7_device_enter_sbl
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-v7-device.c
    functionUses: 2
    functionsReached:
    - fu_synaptics_rmi_device_scan_pdt
    - fu_synaptics_rmi_device_poll_wait
    - fu_synaptics_rmi_device_disable_irqs
    - fu_synaptics_rmi_device_get_function
    - fu_device_sleep
    - fu_synaptics_rmi_v7_device_setup
    - fu_struct_synaptics_rmi_v7_enter_sbl_set_bootloader_id1
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_synaptics_rmi_device_get_flash
    - fu_synaptics_rmi_device_wait_for_idle
    - fu_struct_synaptics_rmi_v7_enter_sbl_set_bootloader_id0
    - fu_synaptics_rmi_device_write
    - fu_struct_synaptics_rmi_v7_enter_sbl_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_v7_device_enter_sbl(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: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 1503
    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:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsRmiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: fu_synaptics_rmi_device_get_flash
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 17
    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:75,1
    - Dst: fwupd_codec_string_append
      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: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
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:82,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:83,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:84,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:85,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - flash
    - idt
    - str
    argTypes:
    - FuSynapticsRmiFlash*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 87
    functionName: fu_synaptics_rmi_device_flash_to_string
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fwupd_codec_string_append_hex
    - 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:92,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:93,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:94,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:95,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:96,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:97,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:98,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:100,1
    - Dst: fu_synaptics_rmi_device_flash_to_string
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 103
    functionName: fu_synaptics_rmi_device_to_string
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_synaptics_rmi_device_flash_to_string
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    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:110,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:112,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:119,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - function_number
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 129
    functionName: fu_synaptics_rmi_device_get_function
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 21
    functionsReached:
    - g_set_error_literal
    - g_set_error
    - g_ptr_array_index
    - GET_PRIVATE
    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:134,1
    - Dst: FuSynapticsRmiDeviceClass*::read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:135,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: 136
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: fu_synaptics_rmi_device_read
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 9
    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:144,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:146,1
    - Dst: FuSynapticsRmiDeviceClass*::read_packet_register
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:152,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: 153
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 153
    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
    - FuSynapticsRmiDeviceClass*::read_packet_register
    - FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
    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:162,1
    - Dst: FuSynapticsRmiDeviceClass*::write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:163,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: 164
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: fu_synaptics_rmi_device_write
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 15
    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:169,1
    - Dst: FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:170,1
    - Dst: FuSynapticsRmiDeviceClass*::set_page
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - page
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 177
    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:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - iepmode
    argTypes:
    - FuSynapticsRmiDevice*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 184
    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:189,1
    - Dst: FuSynapticsRmiDeviceClass*::write_bus_select
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - bus
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 193
    functionName: fu_synaptics_rmi_device_write_bus_select
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 1
    functionsReached:
    - FuSynapticsRmiDeviceClass*::write_bus_select
    - FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_device_write_bus_select(FuSynapticsRmiDevice
      *self, guint8 bus, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:198,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:199,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:199,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:200,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:203,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:204,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:211,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:211,1
    - Dst: g_info
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:212,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:214,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 217
    functionName: fu_synaptics_rmi_device_reset
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 2
    functionsReached:
    - fu_synaptics_rmi_device_get_function
    - g_info
    - fu_device_sleep
    - fu_byte_array_append_uint8
    - FU_DEVICE
    - g_byte_array_new
    - fu_synaptics_rmi_device_write
    - g_autoptr
    - GET_PRIVATE
    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:222,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:226,1
    - Dst: fu_synaptics_rmi_device_set_page
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:242,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:243,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:248,1
    - Dst: fu_synaptics_rmi_function_parse
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:254,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:263,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:263,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:272,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:273,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 288
    functionName: fu_synaptics_rmi_device_scan_pdt
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 1
    functionsReached:
    - g_debug
    - g_steal_pointer
    - g_ptr_array_add
    - g_ptr_array_set_size
    - fu_synaptics_rmi_device_read
    - g_prefix_error
    - fu_synaptics_rmi_device_set_page
    - g_autoptr
    - fu_synaptics_rmi_function_parse
    - g_ptr_array_index
    - GET_PRIVATE
    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:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - sig_size
    argTypes:
    - FuSynapticsRmiDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 295
    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:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsRmiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 302
    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:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - max_page
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 309
    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:315,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:315,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:318,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:319,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:319,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:322,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:324,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:325,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - product_id
    argTypes:
    - FuSynapticsRmiDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 311
    functionDepth: 5
    functionLinenumber: 311
    functionLinenumberEnd: 327
    functionName: fu_synaptics_rmi_device_set_product_id
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_id
    - FU_DEVICE
    - g_strsplit
    - g_strdup_printf
    - g_strv_length
    - g_auto
    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:332,1
    - Dst: FuSynapticsRmiDeviceClass*::query_status
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 334
    functionName: fu_synaptics_rmi_device_query_status
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - FuSynapticsRmiDeviceClass*::query_status
    - FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
    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:341,1
    - Dst: FuSynapticsRmiDeviceClass*::query_build_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - build_id
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 345
    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:352,1
    - Dst: FuSynapticsRmiDeviceClass*::query_product_sub_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - product_sub_id
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 356
    functionName: fu_synaptics_rmi_device_query_product_sub_id
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - FuSynapticsRmiDeviceClass*::query_product_sub_id
    - FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
    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:361,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:362,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:376,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:377,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:378,1
    - Dst: fu_synaptics_rmi_device_scan_pdt
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:384,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:386,1
    - Dst: fu_synaptics_rmi_device_set_page
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:392,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:396,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:401,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:403,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:412,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:414,1
    - Dst: fu_synaptics_rmi_device_query_product_sub_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:417,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:418,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:423,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:426,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:427,1
    - Dst: fu_synaptics_rmi_device_set_product_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:430,1
    - Dst: fu_synaptics_rmi_device_enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:433,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:450,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:451,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:453,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:459,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:460,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:462,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:467,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:469,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:478,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:480,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:482,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:485,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:494,1
    - Dst: fu_synaptics_rmi_device_query_build_id
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:504,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:505,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:510,1
    - Dst: fu_synaptics_rmi_v5_device_setup
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:514,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:515,1
    - Dst: fu_synaptics_rmi_v6_device_setup
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:519,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:520,1
    - Dst: fu_synaptics_rmi_v7_device_setup
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:524,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:525,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:529,1
    - Dst: fu_synaptics_rmi_device_query_status
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:536,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:537,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:542,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:546,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:548,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:550,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:552,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 134
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 358
    functionDepth: 7
    functionLinenumber: 358
    functionLinenumberEnd: 556
    functionName: fu_synaptics_rmi_device_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_device_scan_pdt
    - fu_device_set_version
    - fu_synaptics_rmi_device_get_function
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_synaptics_rmi_device_set_page
    - g_strdup_printf
    - fu_synaptics_rmi_device_enter_iep_mode
    - fu_memread_uint32_safe
    - g_prefix_error_literal
    - fu_synaptics_rmi_device_read
    - fu_synaptics_rmi_v5_device_setup
    - fu_synaptics_rmi_device_query_product_sub_id
    - fu_synaptics_rmi_device_set_product_id
    - GET_PRIVATE
    - fu_device_set_version_bootloader
    - fu_synaptics_rmi_device_query_status
    - fu_synaptics_rmi_v7_device_setup
    - fu_synaptics_rmi_v6_device_setup
    - g_strndup
    - g_set_error
    - fu_synaptics_rmi_device_query_build_id
    - fu_memcpy_safe
    - g_autoptr
    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:564,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:565,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:566,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:567,1
    - Dst: g_info
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:571,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:578,1
    - Dst: fu_synaptics_rmi_firmware_get_sig_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:582,1
    - Dst: FU_SYNAPTICS_RMI_FIRMWARE
      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:583,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:584,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:588,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:592,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:596,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:597,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:601,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 558
    functionDepth: 5
    functionLinenumber: 558
    functionLinenumberEnd: 608
    functionName: fu_synaptics_rmi_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - g_info
    - g_set_error
    - FU_SYNAPTICS_RMI_DEVICE
    - fu_firmware_get_image_by_id_bytes
    - FU_SYNAPTICS_RMI_FIRMWARE
    - g_bytes_get_size
    - g_autoptr
    - fu_synaptics_rmi_firmware_get_sig_size
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_rmi_device_check_firmware(FuDevice *device,\n\t\t\t\t
      \      FuFirmware *firmware,\n\t\t\t\t       FuFirmwareParseFlags flags,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:613,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:614,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:617,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:619,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 633
    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_literal
    - fu_synaptics_rmi_device_read
    - g_autoptr
    - GET_PRIVATE
    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:638,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:642,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:642,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:643,1
    - Dst: fu_synaptics_rmi_device_poll
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:644,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:646,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:650,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:650,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 652
    functionName: fu_synaptics_rmi_device_poll_wait
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 7
    functionsReached:
    - g_debug
    - fu_device_sleep
    - g_steal_pointer
    - g_clear_error
    - FU_DEVICE
    - fu_synaptics_rmi_device_poll
    - g_propagate_error
    - g_autoptr
    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:660,1
    - Dst: FuSynapticsRmiDeviceClass*::wait_for_attr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:661,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: 662
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 662
    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:669,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:670,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:676,1
    - Dst: FuSynapticsRmiDeviceClass*::enter_iep_mode
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:677,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:678,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - flags
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - FuSynapticsRmiDeviceFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 684
    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_literal
    - FuSynapticsRmiDeviceClass*::enter_iep_mode
    - GET_PRIVATE
    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: 13
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:692,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:696,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:697,1
    - Dst: fu_synaptics_rmi_device_get_function
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:700,1
    - Dst: fu_synaptics_rmi_device_wait_for_attr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:705,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:709,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:710,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:711,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:721,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:721,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:728,1
    - Dst: fu_synaptics_rmi_device_read
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:735,1
    - Dst: FU_IS_SYNAPTICS_RMI_PS2_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:744,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:746,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:754,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:764,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 4
    argNames:
    - self
    - timeout_ms
    - flags
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - guint
    - FuSynapticsRmiDeviceWaitForIdleFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 686
    functionDepth: 2
    functionLinenumber: 686
    functionLinenumberEnd: 772
    functionName: fu_synaptics_rmi_device_wait_for_idle
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 8
    functionsReached:
    - fu_synaptics_rmi_device_get_function
    - g_debug
    - fu_device_sleep
    - g_set_error
    - FU_IS_SYNAPTICS_RMI_PS2_DEVICE
    - g_steal_pointer
    - g_set_error_literal
    - fu_synaptics_rmi_device_read
    - FU_DEVICE
    - fu_synaptics_rmi_device_wait_for_attr
    - g_propagate_prefixed_error
    - g_error_matches
    - g_autoptr
    - GET_PRIVATE
    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      FuSynapticsRmiDeviceWaitForIdleFlags
      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:777,1
    - Dst: FuSynapticsRmiDeviceClass*::disable_sleep
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 781
    functionName: fu_synaptics_rmi_device_disable_sleep
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 2
    functionsReached:
    - FuSynapticsRmiDeviceClass*::disable_sleep
    - FU_SYNAPTICS_RMI_DEVICE_GET_CLASS
    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:786,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:788,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:788,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:794,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:797,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 808
    functionName: fu_synaptics_rmi_device_write_bootloader_id
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 2
    functionsReached:
    - g_prefix_error_literal
    - g_byte_array_new
    - fu_synaptics_rmi_device_write
    - g_byte_array_append
    - g_autoptr
    - GET_PRIVATE
    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:813,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:814,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:814,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:816,1
    - Dst: fu_synaptics_rmi_device_write
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:818,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsRmiDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 827
    functionName: fu_synaptics_rmi_device_disable_irqs
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 3
    functionsReached:
    - g_prefix_error_literal
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - fu_synaptics_rmi_device_write
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_device_disable_irqs(FuSynapticsRmiDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:836,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:837,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:841,1
    - Dst: fu_synaptics_rmi_v5_device_write_firmware
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:845,1
    - Dst: fu_synaptics_rmi_v7_device_write_firmware
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:852,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:858,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 829
    functionDepth: 9
    functionLinenumber: 829
    functionLinenumberEnd: 864
    functionName: fu_synaptics_rmi_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_rmi_v7_device_write_firmware
    - g_set_error
    - FU_SYNAPTICS_RMI_DEVICE
    - g_set_error_literal
    - fu_synaptics_rmi_v5_device_write_firmware
    - GET_PRIVATE
    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:869,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:870,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:870,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:871,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:871,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:872,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:872,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:873,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:873,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:874,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:874,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsRmiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 866
    functionDepth: 6
    functionLinenumber: 866
    functionLinenumberEnd: 877
    functionName: fu_synaptics_rmi_device_init
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_DEVICE
    - fu_device_set_version_format
    - g_ptr_array_new_with_free_func
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - GET_PRIVATE
    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:882,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:883,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:884,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 886
    functionName: fu_synaptics_rmi_device_finalize
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_RMI_DEVICE
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:891,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:892,1
    - Dst: FU_SYNAPTICS_RMI_DEVICE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:894,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 898
    functionName: fu_synaptics_rmi_device_replace
    functionSourceFile: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
    functionUses: 0
    functionsReached:
    - FU_SYNAPTICS_RMI_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_synaptics_rmi_device_replace(FuDevice *device, FuDevice *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:903,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsRmiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 911
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - sbl_version
    argTypes:
    - FuSynapticsRmiDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 918
    functionName: fu_synaptics_rmi_device_set_previous_sbl_version
    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_previous_sbl_version(FuSynapticsRmiDevice
      *self, guint16 sbl_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsRmiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 925
    functionName: fu_synaptics_rmi_device_get_previous_sbl_version
    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_previous_sbl_version(FuSynapticsRmiDevice
      *self)
  - 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_literal
      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: 4
    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_synaptics_rmi_device_get_function
    - g_prefix_error_literal
    - fu_synaptics_rmi_device_read
    - fu_synaptics_rmi_device_get_flash
    - fu_memread_uint8_safe
    - g_autoptr
    - fu_memread_uint16_safe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_rmi_v6_device_setup(FuSynapticsRmiDevice *self,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_WCH_CH347_DEVICE
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:39,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-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_wch_ch347_device_to_string
    functionSourceFile: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
    functionUses: 0
    functionsReached:
    - FU_WCH_CH347_DEVICE
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_wch_ch347_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:51,1
    - Dst: fu_struct_wch_ch347_req_new
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:51,1
    - Dst: fu_struct_wch_ch347_req_set_cmd
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:54,1
    - Dst: fu_struct_wch_ch347_req_set_payloadsz
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:55,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:57,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:60,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:61,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:61,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:69,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - self
    - cmd
    - buf
    - bufsz
    - error
    argTypes:
    - FuWchCh347Device*
    - FuWchCh347CmdSpi
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 84
    functionName: fu_wch_ch347_device_write
    functionSourceFile: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_wch_ch347_req_set_cmd
    - g_set_error
    - fu_struct_wch_ch347_req_new
    - g_prefix_error
    - fu_dump_raw
    - fu_usb_device_bulk_transfer
    - g_byte_array_append
    - FU_USB_DEVICE
    - fu_struct_wch_ch347_req_set_payloadsz
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wch_ch347_device_write(FuWchCh347Device *self,\n\t\t\t
      \ FuWchCh347CmdSpi cmd,\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/wch-ch347/fu-wch-ch347-device.c:95,1
    - Dst: fu_struct_wch_ch347_req_new
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:95,1
    - Dst: fu_struct_wch_ch347_req_set_cmd
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:98,1
    - Dst: fu_struct_wch_ch347_req_set_payloadsz
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:99,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:100,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:101,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:103,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:103,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:111,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:114,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:116,1
    - Dst: fu_struct_wch_ch347_req_get_cmd
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:121,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:122,1
    - Dst: fu_struct_wch_ch347_req_get_cmd
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:126,1
    - Dst: fu_struct_wch_ch347_req_get_payloadsz
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:130,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:132,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 5
    argNames:
    - self
    - cmd
    - buf
    - bufsz
    - error
    argTypes:
    - FuWchCh347Device*
    - FuWchCh347CmdSpi
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 150
    functionName: fu_wch_ch347_device_read
    functionSourceFile: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_wch_ch347_req_set_cmd
    - fu_struct_wch_ch347_req_get_payloadsz
    - g_set_error
    - fu_struct_wch_ch347_req_new
    - g_set_error_literal
    - g_prefix_error
    - fu_dump_raw
    - fu_byte_array_append_uint32
    - fu_usb_device_bulk_transfer
    - fu_memcpy_safe
    - fu_struct_wch_ch347_req_get_cmd
    - FU_USB_DEVICE
    - fu_struct_wch_ch347_req_set_payloadsz
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wch_ch347_device_read(FuWchCh347Device *self,\n\t\t\t
      FuWchCh347CmdSpi cmd,\n\t\t\t guint8 *buf,\n\t\t\t gsize bufsz,\n\t\t\t GError
      **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:163,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:163,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:164,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:165,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:169,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:171,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:174,1
    - Dst: fu_wch_ch347_device_write
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:177,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:179,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:180,1
    - Dst: fu_wch_ch347_device_read
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:183,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:194,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:195,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:195,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:197,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:205,1
    - Dst: fu_wch_ch347_device_write
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:206,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:212,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:213,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:214,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:216,1
    - Dst: fu_wch_ch347_device_read
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:217,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:219,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:220,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:223,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 7
    argNames:
    - self
    - wbuf
    - wbufsz
    - rbuf
    - rbufsz
    - progress
    - error
    argTypes:
    - FuWchCh347Device*
    - guint8*
    - gsize
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 152
    functionDepth: 5
    functionLinenumber: 152
    functionLinenumberEnd: 229
    functionName: fu_wch_ch347_device_send_command
    functionSourceFile: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_wch_ch347_device_read
    - fu_progress_set_steps
    - fu_chunk_get_data_out
    - fu_progress_step_done
    - g_byte_array_new
    - fu_chunk_get_data
    - fu_chunk_array_mutable_new
    - fu_byte_array_append_uint32
    - fu_chunk_array_length
    - fu_progress_set_status
    - g_autoptr
    - fu_wch_ch347_device_write
    - g_bytes_new_static
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wch_ch347_device_send_command(FuWchCh347Device *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: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_wch_ch347_device_write
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:243,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:248,1
    - Dst: fu_wch_ch347_device_read
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:251,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWchCh347Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 231
    functionDepth: 5
    functionLinenumber: 231
    functionLinenumberEnd: 258
    functionName: fu_wch_ch347_device_configure_stream
    functionSourceFile: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
    functionUses: 0
    functionsReached:
    - fu_wch_ch347_device_write
    - g_prefix_error_literal
    - fu_wch_ch347_device_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wch_ch347_device_configure_stream(FuWchCh347Device *self,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_wch_ch347_device_write
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - val
    - error
    argTypes:
    - FuWchCh347Device*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 260
    functionDepth: 5
    functionLinenumber: 260
    functionLinenumberEnd: 273
    functionName: fu_wch_ch347_device_chip_select
    functionSourceFile: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
    functionUses: 0
    functionsReached:
    - fu_wch_ch347_device_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wch_ch347_device_chip_select(FuWchCh347Device *self, gboolean
      val, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:278,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:279,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:281,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:289,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 275
    functionDepth: 5
    functionLinenumber: 275
    functionLinenumberEnd: 291
    functionName: fu_wch_ch347_device_probe
    functionSourceFile: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_get_context
    - FU_DEVICE
    - g_object_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wch_ch347_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_WCH_CH347_DEVICE
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:296,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:299,1
    - Dst: fu_wch_ch347_device_configure_stream
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 293
    functionDepth: 6
    functionLinenumber: 293
    functionLinenumberEnd: 308
    functionName: fu_wch_ch347_device_setup
    functionSourceFile: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
    functionUses: 0
    functionsReached:
    - FU_WCH_CH347_DEVICE
    - fu_wch_ch347_device_configure_stream
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wch_ch347_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:314,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:314,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:315,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWchCh347Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 316
    functionName: fu_wch_ch347_device_init
    functionSourceFile: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_name
    - FU_USB_DEVICE
    - FU_DEVICE
    - fu_usb_device_add_interface
    linkageType: ''
    returnType: void
    signature: void fu_wch_ch347_device_init(FuWchCh347Device *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWchCh347DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 325
    functionName: fu_wch_ch347_device_class_init
    functionSourceFile: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wch_ch347_device_class_init(FuWchCh347DeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWchCh347Plugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_wch_ch347_plugin_init
    functionSourceFile: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_wch_ch347_plugin_init(FuWchCh347Plugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-plugin.c:26,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-plugin.c:27,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-plugin.c:28,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-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: 2
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: fu_wch_ch347_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wch_ch347_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-plugin.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWchCh347PluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: fu_wch_ch347_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wch_ch347_plugin_class_init(FuWchCh347PluginClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_WCH_CH347_DEVICE
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c:21,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c:21,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c:21,1
    - Dst: fu_wch_ch347_device_chip_select
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - value
    - error
    argTypes:
    - FuCfiDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 6
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: fu_wch_ch347_cfi_device_chip_select
    functionSourceFile: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_WCH_CH347_DEVICE
    - fu_wch_ch347_device_chip_select
    - FU_DEVICE
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wch_ch347_cfi_device_chip_select(FuCfiDevice *self, gboolean
      value, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_WCH_CH347_DEVICE
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c:36,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c:36,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c:36,1
    - Dst: fu_wch_ch347_device_send_command
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - self
    - wbuf
    - wbufsz
    - rbuf
    - rbufsz
    - progress
    - error
    argTypes:
    - FuCfiDevice*
    - guint8*
    - gsize
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 27
    functionDepth: 6
    functionLinenumber: 27
    functionLinenumberEnd: 40
    functionName: fu_wch_ch347_cfi_device_send_command
    functionSourceFile: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_WCH_CH347_DEVICE
    - fu_wch_ch347_device_send_command
    - FU_DEVICE
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wch_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:
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c:45,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c:45,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c:46,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c:46,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c:47,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWchCh347CfiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: fu_wch_ch347_cfi_device_init
    functionSourceFile: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_add_private_flag
    - fu_device_add_flag
    - fu_device_set_proxy_gtype
    linkageType: ''
    returnType: void
    signature: void fu_wch_ch347_cfi_device_init(FuWchCh347CfiDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_CFI_DEVICE_CLASS
      Src: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWchCh347CfiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: fu_wch_ch347_cfi_device_class_init
    functionSourceFile: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c
    functionUses: 0
    functionsReached:
    - FU_CFI_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wch_ch347_cfi_device_class_init(FuWchCh347CfiDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:23,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:23,1
    - Dst: g_autoptr
      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: fu_progress_new
      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_security_attrs_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: 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_getenv
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:32,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:35,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:40,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:41,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:44,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:45,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:46,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:49,1
    - Dst: fu_tpm_plugin_get_type
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:49,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:50,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:51,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:52,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:53,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:54,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:55,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:58,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:59,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:60,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:61,1
    - Dst: FU_IS_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:61,1
    - Dst: fu_tpm_device_get_checksums
      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: fu_tpm_device_get_checksums
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:67,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:68,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:69,1
    - Dst: fu_plugin_runner_add_security_attrs
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:72,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:73,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:76,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:77,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:78,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:78,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:82,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:85,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:86,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:88,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 16
    functionDepth: 6
    functionLinenumber: 16
    functionLinenumberEnd: 91
    functionName: fu_tpm_device_1_2_func
    functionSourceFile: /src/fwupd/plugins/tpm/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_get_result
    - fu_context_new
    - g_assert_nonnull
    - fu_progress_new
    - fu_security_attrs_get_by_appstream_id
    - fu_context_load_quirks
    - g_ptr_array_index
    - fu_plugin_new_from_gtype
    - fu_plugin_runner_startup
    - fu_plugin_get_devices
    - fu_security_attrs_new
    - fu_tpm_plugin_get_type
    - g_assert_cmpint
    - fu_plugin_runner_coldplug
    - g_getenv
    - FU_IS_TPM_DEVICE
    - fu_tpm_device_get_checksums
    - fu_context_set_path
    - g_assert_no_error
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - fu_plugin_runner_add_security_attrs
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_tpm_device_1_2_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_getenv
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:100,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:102,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:103,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:104,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:105,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:108,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:113,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:114,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:115,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:118,1
    - Dst: fu_tpm_plugin_get_type
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:118,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:119,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:120,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:121,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:123,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:124,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:125,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:128,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:129,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:130,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:131,1
    - Dst: FU_IS_TPM_V2_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:131,1
    - Dst: fu_tpm_device_get_checksums
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:133,1
    - Dst: FU_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:133,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:134,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:135,1
    - Dst: fu_tpm_device_get_checksums
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:136,1
    - Dst: FU_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:136,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:137,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 93
    functionDepth: 6
    functionLinenumber: 93
    functionLinenumberEnd: 139
    functionName: fu_tpm_device_2_0_func
    functionSourceFile: /src/fwupd/plugins/tpm/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_load_quirks
    - g_ptr_array_index
    - fu_plugin_new_from_gtype
    - fu_plugin_runner_startup
    - fu_plugin_get_devices
    - fu_tpm_plugin_get_type
    - g_assert_cmpint
    - fu_plugin_runner_coldplug
    - g_getenv
    - FU_TPM_DEVICE
    - FU_IS_TPM_V2_DEVICE
    - fu_tpm_device_get_checksums
    - g_assert_no_error
    - g_test_skip
    - g_assert_true
    - g_autoptr
    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:147,1
    - Dst: fu_tpm_eventlog_v1_new
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:147,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:148,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:150,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:152,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:153,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:154,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:157,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:158,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:159,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:160,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:160,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:165,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:166,1
    - Dst: fu_tpm_eventlog_calc_checksums
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:168,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:169,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:170,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:171,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:172,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 141
    functionDepth: 5
    functionLinenumber: 141
    functionLinenumberEnd: 174
    functionName: fu_tpm_eventlog_parse_v1_func
    functionSourceFile: /src/fwupd/plugins/tpm/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_bytes_get_contents
    - fu_tpm_eventlog_calc_checksums
    - FU_FIRMWARE
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - g_file_test
    - fu_firmware_parse_bytes
    - g_test_build_filename
    - g_test_skip
    - g_assert_true
    - fu_tpm_eventlog_v1_new
    - g_assert_cmpstr
    - g_autoptr
    - g_ptr_array_index
    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:182,1
    - Dst: fu_tpm_eventlog_v2_new
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:182,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:183,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:184,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:185,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:187,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:188,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:189,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:192,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:193,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:194,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:195,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:195,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:200,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:201,1
    - Dst: fu_tpm_eventlog_calc_checksums
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:203,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:204,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:205,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:206,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:207,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:208,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:209,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 176
    functionDepth: 5
    functionLinenumber: 176
    functionLinenumberEnd: 213
    functionName: fu_tpm_eventlog_parse_v2_func
    functionSourceFile: /src/fwupd/plugins/tpm/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_bytes_get_contents
    - g_assert_true
    - fu_tpm_eventlog_calc_checksums
    - FU_FIRMWARE
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - g_file_test
    - fu_firmware_parse_bytes
    - g_test_skip
    - fu_tpm_eventlog_v2_new
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_tpm_eventlog_parse_v2_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:220,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:220,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:222,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:222,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:223,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:224,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:225,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:226,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:229,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:234,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:235,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:236,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:239,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:240,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:243,1
    - Dst: fu_tpm_plugin_get_type
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:243,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:244,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:245,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:246,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:247,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:248,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:249,1
    - Dst: fu_plugin_runner_add_security_attrs
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:252,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:253,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:256,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:257,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:259,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 215
    functionDepth: 6
    functionLinenumber: 215
    functionLinenumberEnd: 262
    functionName: fu_tpm_empty_pcr_func
    functionSourceFile: /src/fwupd/plugins/tpm/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_get_result
    - fu_context_new
    - g_assert_nonnull
    - fu_progress_new
    - fu_context_load_quirks
    - fu_plugin_new_from_gtype
    - fu_plugin_runner_startup
    - fu_security_attrs_new
    - fu_tpm_plugin_get_type
    - g_assert_cmpint
    - fu_plugin_runner_coldplug
    - g_getenv
    - fu_plugin_runner_add_security_attrs
    - fu_context_set_path
    - g_assert_no_error
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - fu_security_attrs_get_by_appstream_id
    - g_autoptr
    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:267,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:268,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:269,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:270,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:271,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:272,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:273,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/tpm/fu-self-test.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 275
    functionName: main
    functionSourceFile: /src/fwupd/plugins/tpm/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - 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_string_replace
    - g_debug
    - FU_TPM_DEVICE
    - fu_strstrip
    - fu_strtoull
    - g_strsplit
    - g_strv_length
    - _g_string_isxdigit
    - fu_tpm_device_add_checksum
    - g_string_new
    - g_auto
    - g_string_ascii_down
    - g_autoptr
    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:
    - fu_udev_device_get_device_file
    - FU_TPM_V1_DEVICE
    - fu_tpm_v1_device_parse_line
    - g_set_error_literal
    - g_file_get_contents
    - g_strsplit
    - g_auto
    - g_str_has_prefix
    - FU_UDEV_DEVICE
    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:25,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:27,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:30,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: 7
    argCount: 3
    argNames:
    - plugin
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 38
    functionName: fu_tpm_plugin_to_string
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - FU_TPM_PLUGIN
    - fu_device_get_id
    - fwupd_codec_string_append
    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:43,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:44,1
    - Dst: fu_tpm_device_get_checksums
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:52,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:56,1
    - Dst: fu_device_add_checksum
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:57,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 60
    functionName: fu_tpm_plugin_set_bios_pcr0s
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_tpm_device_get_checksums
    - FU_TPM_PLUGIN
    - fu_device_add_checksum
    - g_autoptr
    - g_ptr_array_index
    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:66,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:67,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:68,1
    - Dst: fu_tpm_plugin_set_bios_pcr0s
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 7
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: fu_tpm_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - FU_TPM_PLUGIN
    - fu_tpm_plugin_set_bios_pcr0s
    - g_set_object
    - fu_device_has_private_flag
    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:76,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:77,1
    - Dst: fu_tpm_device_get_family
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:78,1
    - Dst: FU_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:78,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:80,1
    - Dst: FU_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:80,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:82,1
    - Dst: fu_tpm_plugin_set_bios_pcr0s
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:85,1
    - Dst: fu_tpm_device_get_checksums
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:88,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:90,1
    - Dst: fwupd_checksum_guess_kind
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:91,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:93,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:97,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - plugin
    - dev
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 73
    functionDepth: 7
    functionLinenumber: 73
    functionLinenumberEnd: 105
    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_DEVICE
    - fwupd_checksum_guess_kind
    - g_set_object
    - FU_TPM_PLUGIN
    - fu_tpm_plugin_set_bios_pcr0s
    - fu_tpm_device_get_family
    - fu_plugin_add_report_metadata
    - g_autoptr
    - g_ptr_array_index
    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:110,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:111,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:114,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:115,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:116,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:120,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:123,1
    - Dst: fu_tpm_device_get_family
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:123,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:124,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:125,1
    - Dst: fwupd_security_attr_add_guids
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:130,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:130,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:130,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 132
    functionName: fu_tpm_plugin_add_security_attr_version
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fwupd_security_attr_add_guids
    - fu_plugin_security_attr_new
    - FU_TPM_PLUGIN
    - FU_DEVICE
    - fu_device_get_guids
    - fwupd_security_attr_set_result_success
    - fu_tpm_device_get_family
    - fu_security_attrs_append
    - g_autoptr
    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:137,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: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:142,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:149,1
    - Dst: fwupd_security_attr_add_guids
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:150,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:150,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:151,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:152,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:156,1
    - Dst: fu_tpm_eventlog_calc_checksums
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:161,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:163,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:164,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:165,1
    - Dst: fu_tpm_device_get_checksums
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:170,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:172,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:175,1
    - Dst: strlen
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:177,1
    - Dst: strlen
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:177,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:179,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:180,1
    - Dst: fwupd_security_attr_set_result
      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:191,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:196,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 197
    functionName: fu_tpm_plugin_add_security_attr_eventlog
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_tpm_eventlog_calc_checksums
    - fu_tpm_device_get_checksums
    - fwupd_security_attr_add_guids
    - fwupd_security_attr_set_result
    - fwupd_security_attr_add_flag
    - g_debug
    - fu_plugin_security_attr_new
    - FU_TPM_PLUGIN
    - g_warning
    - fu_device_get_guids
    - fwupd_security_attr_set_result_success
    - strlen
    - fu_security_attrs_append
    - g_autoptr
    - g_ptr_array_index
    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:202,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:203,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:210,1
    - Dst: fwupd_security_attr_add_guids
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:211,1
    - Dst: fu_device_get_guids
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:211,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:212,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:213,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:217,1
    - Dst: fu_tpm_device_get_checksums
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:217,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:219,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:230,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:239,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 240
    functionName: fu_tpm_plugin_add_security_attr_empty
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - fu_tpm_device_get_checksums
    - fwupd_security_attr_add_guids
    - fwupd_security_attr_set_result
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - FU_TPM_PLUGIN
    - fu_device_get_guids
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    - g_ptr_array_index
    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:245,1
    - Dst: fu_tpm_plugin_add_security_attr_version
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:247,1
    - Dst: fu_tpm_plugin_add_security_attr_eventlog
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:248,1
    - Dst: fu_tpm_plugin_add_security_attr_empty
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 242
    functionDepth: 4
    functionLinenumber: 242
    functionLinenumberEnd: 250
    functionName: fu_tpm_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_has_flag
    - fu_tpm_plugin_add_security_attr_version
    - fu_tpm_plugin_add_security_attr_eventlog
    - fu_tpm_plugin_add_security_attr_empty
    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:255,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:256,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:257,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:258,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:258,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:258,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:261,1
    - Dst: fu_tpm_eventlog_item_get_kind
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:262,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:265,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:265,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:265,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:269,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:269,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:272,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:272,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:276,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:276,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:280,1
    - Dst: g_base64_encode
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:281,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:281,1
    - Dst: g_bytes_get_size
      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:284,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:285,1
    - Dst: fu_tpm_eventlog_calc_checksums
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:287,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:290,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:291,1
    - Dst: g_string_truncate
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:295,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:296,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 297
    functionName: fu_tpm_plugin_eventlog_report_metadata
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - g_base64_encode
    - g_string_append
    - fu_tpm_eventlog_calc_checksums
    - fu_firmware_get_bytes
    - g_bytes_get_data
    - FU_FIRMWARE
    - fu_firmware_get_images
    - FU_TPM_PLUGIN
    - g_string_free
    - g_string_new
    - fu_firmware_get_checksum
    - g_string_append_printf
    - g_bytes_get_size
    - g_string_truncate
    - g_autoptr
    - fu_tpm_eventlog_item_get_kind
    - g_ptr_array_index
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_tpm_plugin_eventlog_report_metadata(FuPlugin *plugin)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:302,1
    - Dst: FU_TPM_PLUGIN
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:303,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:304,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:305,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:306,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:311,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:321,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:322,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:325,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:328,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:329,1
    - Dst: FU_TPM_EVENTLOG
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:338,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:338,1
    - Dst: fu_tpm_plugin_eventlog_report_metadata
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:341,1
    - Dst: fu_plugin_add_report_metadata
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:342,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - plugin
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 299
    functionDepth: 5
    functionLinenumber: 299
    functionLinenumberEnd: 344
    functionName: fu_tpm_plugin_coldplug_eventlog
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - fu_bytes_get_contents
    - g_memory_input_stream_new_from_bytes
    - fu_context_build_filename
    - g_debug
    - fu_firmware_new_from_gtypes
    - g_steal_pointer
    - fu_plugin_get_context
    - FU_TPM_EVENTLOG
    - FU_TPM_PLUGIN
    - g_file_test
    - fu_plugin_add_report_metadata
    - g_autoptr
    - fu_tpm_plugin_eventlog_report_metadata
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_tpm_plugin_coldplug_eventlog(FuPlugin *plugin, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:349,1
    - Dst: FU_TPM_PLUGIN
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:350,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:351,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:355,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:356,1
    - Dst: fu_tpm_v2_device_new
      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_locker_new
      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_add_device
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:363,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:363,1
    - Dst: fu_tpm_plugin_coldplug_eventlog
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:368,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:369,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:373,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:376,1
    - Dst: fu_tpm_v1_device_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:377,1
    - Dst: g_object_set
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:378,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:379,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:379,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:380,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:380,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:382,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:382,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 346
    functionDepth: 6
    functionLinenumber: 346
    functionLinenumberEnd: 387
    functionName: fu_tpm_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - g_getenv
    - fu_device_set_physical_id
    - fu_context_build_filename
    - fu_tpm_v1_device_new
    - fu_device_locker_new
    - fu_plugin_get_context
    - fu_tpm_v2_device_new
    - FU_TPM_PLUGIN
    - FU_DEVICE
    - g_file_test
    - g_warning
    - fu_tpm_plugin_coldplug_eventlog
    - g_object_set
    - g_autoptr
    - fu_plugin_add_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_tpm_plugin_coldplug(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: 392
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 392
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:397,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:400,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:401,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:402,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:403,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:404,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 394
    functionDepth: 4
    functionLinenumber: 394
    functionLinenumberEnd: 408
    functionName: fu_tpm_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_udev_subsystem
    - g_getenv
    - FU_PLUGIN
    - fu_plugin_add_rule
    - G_OBJECT_CLASS
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_gtype
    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:413,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:415,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:417,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:419,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:420,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 421
    functionName: fu_tpm_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - FU_TPM_PLUGIN
    - g_object_unref
    - G_OBJECT_CLASS
    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:426,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/tpm/fu-tpm-plugin.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTpmPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 436
    functionName: fu_tpm_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    - G_OBJECT_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: 1526
    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:
    - g_strdup
    - FU_IS_TPM_DEVICE
    - g_return_if_fail
    - GET_PRIVATE
    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
    - FU_IS_TPM_DEVICE
    - GET_PRIVATE
    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_strdup
    - FU_IS_TPM_DEVICE
    - g_new0
    - g_debug
    - g_return_if_fail
    - g_ptr_array_add
    - GET_PRIVATE
    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_return_val_if_fail
    - g_strdup
    - FU_IS_TPM_DEVICE
    - g_steal_pointer
    - g_ptr_array_add
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    - GET_PRIVATE
    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
    - fwupd_codec_string_append
    - GET_PRIVATE
    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
    - FU_TPM_DEVICE
    - G_OBJECT_CLASS
    - g_free
    - GET_PRIVATE
    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_add_flag
    - fu_device_add_icon
    - fu_device_set_name
    - FU_DEVICE
    - fu_device_set_version_format
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    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_device_get_physical_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:23,1
    - 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
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 36
    functionName: fu_tpm_v2_device_probe
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_physical_id
    - fu_device_get_physical_id
    - g_strdup_printf
    - fu_udev_device_read_property
    - FU_UDEV_DEVICE
    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:44,1
    - Dst: Esys_GetCapability
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:46,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:56,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:64,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - self
    - query
    - val
    - error
    argTypes:
    - FuTpmV2Device*
    - guint32
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 83
    functionName: fu_tpm_v2_device_get_uint32
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - Esys_GetCapability
    - g_set_error
    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:93,1
    - Dst: GUINT32_FROM_BE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:95,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:96,1
    - Dst: g_ascii_isgraph
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:100,1
    - Dst: fu_strstrip
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - query
    - error
    argTypes:
    - FuTpmV2Device*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 105
    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
    - memcpy
    - GUINT32_FROM_BE
    - g_ascii_isgraph
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_tpm_v2_device_get_string(FuTpmV2Device *self, guint32 query, GError **error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Esys_GetCapability
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:118,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:128,1
    - Dst: Esys_PCR_Read
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:145,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:154,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:162,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:165,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:170,1
    - Dst: fu_tpm_device_add_checksum
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:174,1
    - Dst: FU_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:174,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTpmV2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 180
    functionName: fu_tpm_v2_device_setup_pcrs
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - FU_TPM_DEVICE
    - g_set_error_literal
    - fu_tpm_device_add_checksum
    - g_string_new
    - g_string_append_printf
    - g_autoptr
    - Esys_GetCapability
    - Esys_PCR_Read
    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:189,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:189,1
    - Dst: Esys_GetCapability
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:191,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:201,1
    - Dst: g_string_append
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:211,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:212,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:220,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:220,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:223,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:227,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:227,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTpmV2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 182
    functionDepth: 6
    functionLinenumber: 182
    functionLinenumberEnd: 231
    functionName: fu_tpm_v2_device_ensure_commands
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_string_append
    - g_debug
    - g_set_error_literal
    - FU_DEVICE
    - g_string_new
    - g_string_append_printf
    - g_autoptr
    - Esys_GetCapability
    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:236,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:251,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:252,1
    - Dst: Esys_Startup
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:254,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:256,1
    - Dst: fu_tpm_v2_device_get_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:264,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:266,1
    - Dst: fu_tpm_device_set_family
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:269,1
    - Dst: FU_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:269,1
    - Dst: fu_tpm_v2_device_get_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:270,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:272,1
    - Dst: fu_tpm_v2_device_get_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:275,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:277,1
    - Dst: fu_tpm_v2_device_get_uint32
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:280,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:281,1
    - Dst: fu_tpm_v2_device_get_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:286,1
    - Dst: fu_tpm_v2_device_get_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:287,1
    - Dst: fu_tpm_v2_device_get_string
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:288,1
    - Dst: g_strjoin
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:289,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:292,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:293,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:294,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:295,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:296,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:302,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:303,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:304,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:305,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:308,1
    - Dst: fu_tpm_v2_device_get_uint32
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:311,1
    - Dst: fu_tpm_v2_device_get_uint32
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:313,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:316,1
    - Dst: fu_tpm_v2_device_ensure_commands
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:319,1
    - Dst: fu_tpm_v2_device_setup_pcrs
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:323,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 51
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 233
    functionDepth: 7
    functionLinenumber: 233
    functionLinenumberEnd: 324
    functionName: fu_tpm_v2_device_setup
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - g_setenv
    - FU_TPM_V2_DEVICE
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_device_build_instance_id_full
    - fu_tpm_device_set_family
    - g_getenv
    - fu_tpm_v2_device_setup_pcrs
    - fu_device_set_version_raw
    - FU_TPM_DEVICE
    - Esys_Startup
    - g_strjoin
    - fu_tpm_v2_device_get_uint32
    - fu_tpm_v2_device_ensure_commands
    - fu_tpm_v2_device_get_string
    - fu_device_build_vendor_id
    - fu_device_add_instance_u16
    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:336,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:338,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:340,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:347,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:348,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:348,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:349,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:351,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:354,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:357,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:360,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:361,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:363,1
    - Dst: Esys_FieldUpgradeData
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:367,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:377,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:386,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - self
    - stream
    - progress
    - error
    argTypes:
    - FuTpmV2Device*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 326
    functionDepth: 4
    functionLinenumber: 326
    functionLinenumberEnd: 391
    functionName: fu_tpm_v2_device_upgrade_data
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_input_stream_size
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data
    - Esys_FieldUpgradeData
    - fu_memcpy_safe
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:400,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:403,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:406,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:407,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:408,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:409,1
    - Dst: Esys_FieldUpgradeStart
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:412,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:421,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:429,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:438,1
    - Dst: fu_tpm_v2_device_upgrade_data
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:441,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:441,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: 446
      start: 393
    functionDepth: 5
    functionLinenumber: 393
    functionLinenumberEnd: 446
    functionName: fu_tpm_v2_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - FU_TPM_V2_DEVICE
    - fu_progress_add_step
    - g_set_error
    - Esys_FieldUpgradeStart
    - fu_progress_add_flag
    - g_set_error_literal
    - fu_firmware_get_stream
    - fu_tpm_v2_device_upgrade_data
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:451,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:453,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:454,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:454,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:457,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:459,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:461,1
    - Dst: Esys_FirmwareRead
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:462,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:471,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:479,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:489,1
    - Dst: Esys_Free
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:490,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:494,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 495
    functionName: fu_tpm_v2_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - FU_TPM_V2_DEVICE
    - g_new0
    - g_debug
    - g_set_error
    - g_byte_array_prepend
    - g_bytes_new
    - g_set_error_literal
    - Esys_Free
    - g_byte_array_new
    - fu_device_get_firmware_size_max
    - Esys_FirmwareRead
    - fu_progress_set_status
    - g_autoptr
    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:500,1
    - Dst: Esys_Initialize
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:504,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 515
    functionName: fu_tpm_v2_device_open
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - FU_TPM_V2_DEVICE
    - g_set_error_literal
    - 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:520,1
    - Dst: Esys_Finalize
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 523
    functionName: fu_tpm_v2_device_close
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - FU_TPM_V2_DEVICE
    - Esys_Finalize
    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:528,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 529
    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:534,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:534,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:535,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:535,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:536,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:536,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:537,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:537,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:538,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:538,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:539,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:539,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:540,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTpmV2Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 531
    functionDepth: 6
    functionLinenumber: 531
    functionLinenumberEnd: 541
    functionName: fu_tpm_v2_device_init
    functionSourceFile: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_firmware_size_max
    - fu_device_add_protocol
    - fu_device_add_flag
    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:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTpmV2DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 554
    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:560,1
    - Dst: FU_TPM_DEVICE
      Src: /src/fwupd/plugins/tpm/fu-tpm-v2-device.c:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 562
    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: 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_context_add_quirk_key
      Src: /src/fwupd/plugins/mtd/fu-mtd-plugin.c:44,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/mtd/fu-mtd-plugin.c:45,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/mtd/fu-mtd-plugin.c:46,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/mtd/fu-mtd-plugin.c:47,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/mtd/fu-mtd-plugin.c:48,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/mtd/fu-mtd-plugin.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 37
    functionDepth: 4
    functionLinenumber: 37
    functionLinenumberEnd: 52
    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
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_context_add_quirk_key
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_gtype
    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:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMtdPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    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: []
    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/mtd/fu-mtd-device.c
    functionUses: 1533
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:39,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:40,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:41,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:42,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:43,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:44,1
    - Dst: fu_strjoin
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:46,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    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_mtd_device_to_string
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_strjoin
    - fwupd_codec_string_append
    - FU_MTD_DEVICE
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_mtd_device_to_string(FuDevice *device, guint idt, GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:54,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:56,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: fu_mtd_device_convert_version
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_format
    - g_strdup_printf
    - FU_MTD_DEVICE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_mtd_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:68,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:71,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:71,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:72,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:72,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:72,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:74,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:78,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:78,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:79,1
    - Dst: fu_device_load_event
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:80,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:80,1
    - Dst: fu_device_event_get_bytes
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:83,1
    - Dst: g_memory_input_stream_new_from_bytes
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:86,1
    - Dst: fu_device_save_event
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:91,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:91,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:94,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:94,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:96,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:102,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:104,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:110,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:111,1
    - Dst: fu_device_event_set_bytes
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:114,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:118,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuMtdDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 119
    functionName: fu_mtd_device_read_stream
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - g_strdup
    - fu_udev_device_get_device_file
    - fu_input_stream_read_bytes
    - g_memory_input_stream_new_from_bytes
    - fu_input_stream_from_path
    - fu_device_load_event
    - g_set_error_literal
    - fu_device_event_get_bytes
    - g_steal_pointer
    - fu_device_get_context
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_device_save_event
    - fu_device_has_flag
    - fu_device_event_set_bytes
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: GInputStream
    signature: 'GInputStream *

      fu_mtd_device_read_stream(FuMtdDevice *self, FuProgress *progress, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:124,1
    - Dst: fu_device_get_firmware_gtype
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:126,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:126,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:127,1
    - Dst: fu_mtd_device_read_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:130,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:133,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:139,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 121
    functionDepth: 5
    functionLinenumber: 121
    functionLinenumberEnd: 145
    functionName: fu_mtd_device_read_firmware
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_mtd_device_read_stream
    - fu_firmware_parse_stream
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_device_get_firmware_gtype
    - g_object_new
    - g_autoptr
    - FU_MTD_DEVICE
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_mtd_device_read_firmware(FuDevice *device, FuProgress *progress, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:152,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:153,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:153,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:154,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:156,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:157,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:157,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - firmware
    - error
    argTypes:
    - FuMtdDevice*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 161
    functionName: fu_mtd_device_metadata_ensure_version_from_image
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_raw
    - fu_device_set_version
    - fu_device_set_version_raw
    - FU_DEVICE
    - fu_firmware_get_version
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mtd_device_metadata_ensure_version_from_image(FuMtdDevice
      *self,\n\t\t\t\t\t\t FuFirmware *firmware,\n\t\t\t\t\t\t GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:166,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:167,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:168,1
    - Dst: fu_uswid_firmware_new
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:168,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:169,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:173,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:182,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:184,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:189,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:194,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:196,1
    - Dst: fu_mtd_device_metadata_ensure_version_from_image
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:201,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuMtdDevice*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 163
    functionDepth: 4
    functionLinenumber: 163
    functionLinenumberEnd: 202
    functionName: fu_mtd_device_metadata_load_uswid
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_image_by_idx
    - fu_firmware_parse_stream
    - g_prefix_error_literal
    - g_object_ref
    - fu_mtd_device_metadata_ensure_version_from_image
    - g_autoptr
    - fu_partial_input_stream_new
    - fu_uswid_firmware_new
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_device_metadata_load_uswid(FuMtdDevice *self, GInputStream
      *stream, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:207,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:208,1
    - Dst: fu_fmap_firmware_new
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:208,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:209,1
    - Dst: fu_uswid_firmware_new
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:209,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:210,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:212,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:215,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:221,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:224,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:226,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:230,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:235,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:240,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:242,1
    - Dst: FU_IS_COSWID_FIRMWARE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:243,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:245,1
    - Dst: fu_coswid_firmware_get_persistent_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:245,1
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:245,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:247,1
    - Dst: fu_coswid_firmware_get_device_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:247,1
    - Dst: FU_COSWID_FIRMWARE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:247,1
    - Dst: fu_mtd_device_metadata_ensure_version_from_image
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:249,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:254,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:256,1
    - Dst: fu_mtd_device_metadata_ensure_version_from_image
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:261,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuMtdDevice*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 204
    functionDepth: 4
    functionLinenumber: 204
    functionLinenumberEnd: 262
    functionName: fu_mtd_device_metadata_load_fmap
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_coswid_firmware_get_device_id
    - g_strcmp0
    - FU_COSWID_FIRMWARE
    - fu_firmware_get_image_by_idx
    - fu_firmware_get_image_by_id_stream
    - fu_firmware_parse_stream
    - g_prefix_error_literal
    - fu_firmware_get_images
    - FU_IS_COSWID_FIRMWARE
    - fu_mtd_device_metadata_ensure_version_from_image
    - fu_coswid_firmware_get_persistent_id
    - g_ptr_array_index
    - fu_fmap_firmware_new
    - g_autoptr
    - fu_uswid_firmware_new
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_device_metadata_load_fmap(FuMtdDevice *self, GInputStream
      *stream, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:267,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:268,1
    - Dst: fu_ifd_firmware_new
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:268,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:269,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:271,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:277,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:280,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:282,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:283,1
    - Dst: fu_mtd_ifd_device_new
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:283,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:283,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:287,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:287,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:289,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:290,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:290,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:292,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:292,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:292,1
    - Dst: fu_mtd_device_metadata_load_uswid
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:297,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuMtdDevice*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 264
    functionDepth: 5
    functionLinenumber: 264
    functionLinenumberEnd: 303
    functionName: fu_mtd_device_metadata_load_ifd
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - fu_device_add_child
    - fu_firmware_parse_stream
    - fu_mtd_device_metadata_load_uswid
    - g_prefix_error_literal
    - fu_firmware_get_images
    - FU_DEVICE
    - fu_device_remove_flag
    - fu_device_has_flag
    - fu_mtd_ifd_device_new
    - GET_PRIVATE
    - g_autoptr
    - g_ptr_array_index
    - fu_ifd_firmware_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_device_metadata_load_ifd(FuMtdDevice *self, GInputStream
      *stream, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_firmware_gtype
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:308,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:308,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:309,1
    - Dst: fu_mtd_device_read_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:312,1
    - Dst: fu_mtd_device_metadata_load_fmap
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:318,1
    - Dst: fu_mtd_device_metadata_load_ifd
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:322,1
    - Dst: fu_mtd_device_metadata_load_uswid
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMtdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 305
    functionDepth: 6
    functionLinenumber: 305
    functionLinenumberEnd: 330
    functionName: fu_mtd_device_metadata_load_versions
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_mtd_device_read_stream
    - fu_mtd_device_metadata_load_uswid
    - fu_device_get_firmware_gtype
    - FU_DEVICE
    - g_autoptr
    - fu_mtd_device_metadata_load_fmap
    - fu_mtd_device_metadata_load_ifd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_device_metadata_load_versions(FuMtdDevice *self, GError
      **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:335,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:335,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:339,1
    - Dst: fu_device_get_child_by_logical_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:342,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:342,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:344,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:344,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:347,1
    - Dst: strlen
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:351,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:351,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:355,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:356,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:358,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:359,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:364,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:365,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:366,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:368,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:373,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:374,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:380,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:382,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:384,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:385,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:386,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:391,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMtdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 332
    functionDepth: 4
    functionLinenumber: 332
    functionLinenumberEnd: 396
    functionName: fu_mtd_device_ensure_version_smbios_fallback
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_strtoull
    - g_set_error_literal
    - fu_device_get_child_by_logical_id
    - g_pattern_match_simple
    - fu_device_get_context
    - fu_device_add_private_flag
    - FU_DEVICE
    - g_object_ref
    - g_strdup_printf
    - strlen
    - fu_context_get_hwid_value
    - fu_version_guess_format
    - fu_device_set_version_format
    - g_str_has_prefix
    - g_autoptr
    - fu_device_get_version_format
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_device_ensure_version_smbios_fallback(FuMtdDevice *self,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:401,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:411,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:411,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:414,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:416,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:417,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:420,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:420,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:425,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:426,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:429,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:429,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:432,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:435,1
    - Dst: fu_device_get_child_by_logical_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:436,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:436,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:441,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:443,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:443,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuMtdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 398
    functionDepth: 5
    functionLinenumber: 398
    functionLinenumberEnd: 451
    functionName: fu_mtd_device_ensure_lockout_inhibit
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - g_strcmp0
    - g_debug
    - fu_device_add_problem
    - fu_device_get_backend_parent_with_subsystem
    - g_steal_pointer
    - fu_device_get_child_by_logical_id
    - FU_DEVICE
    - fu_udev_device_read_sysfs
    - g_error_matches
    - G_N_ELEMENTS
    - FU_UDEV_DEVICE
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_device_ensure_lockout_inhibit(FuMtdDevice *self, GError
      **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:456,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:457,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:458,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:459,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:463,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:473,1
    - Dst: fu_device_get_firmware_gtype
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:477,1
    - Dst: fu_mtd_device_metadata_load_versions
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:479,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:480,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:485,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:486,1
    - Dst: fu_mtd_device_ensure_version_smbios_fallback
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:487,1
    - Dst: fu_mtd_device_ensure_lockout_inhibit
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:492,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 453
    functionDepth: 7
    functionLinenumber: 453
    functionLinenumberEnd: 497
    functionName: fu_mtd_device_setup
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - fu_mtd_device_ensure_lockout_inhibit
    - fu_mtd_device_ensure_version_smbios_fallback
    - fu_device_get_firmware_gtype
    - fu_device_has_private_flag
    - fu_mtd_device_metadata_load_versions
    - fu_device_get_version
    - fu_device_get_firmware_size_max
    - FU_MTD_DEVICE
    - g_autoptr
    - GET_PRIVATE
    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:502,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:505,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:506,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:507,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:513,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:513,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 519
    functionName: fu_mtd_device_open
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_steal_pointer
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_device_open(FuDevice *device, GError **error)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:524,1
    - Dst: FU_MTD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:525,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:526,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:532,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:533,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:536,1
    - Dst: fu_udev_device_set_physical_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:540,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:540,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:544,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:544,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:549,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:550,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:556,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:556,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:559,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:563,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:563,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:568,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:568,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:571,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:576,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:579,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:586,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:587,1
    - Dst: fu_pci_device_get_revision
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:589,1
    - Dst: FU_PCI_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:589,1
    - Dst: fu_udev_device_get_driver
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:592,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:592,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:594,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:595,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:604,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:605,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:606,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:607,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:612,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:613,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:616,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:617,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:618,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:621,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:622,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:623,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:624,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:628,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:628,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:634,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:636,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:640,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:640,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:646,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:655,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:656,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:656,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 67
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 521
    functionDepth: 9
    functionLinenumber: 521
    functionLinenumberEnd: 662
    functionName: fu_mtd_device_probe
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_firmware_size_max
    - fu_device_get_context
    - fu_device_incorporate
    - FU_MTD_DEVICE
    - fu_device_probe
    - fu_device_build_instance_id
    - g_set_error_literal
    - fu_device_build_instance_id_full
    - fu_context_get_hwid_value
    - fu_pci_device_get_revision
    - g_propagate_error
    - fu_udev_device_add_open_flag
    - GET_PRIVATE
    - fu_device_set_version_raw
    - fu_strtoull
    - fu_udev_device_set_physical_id
    - fu_device_set_name
    - FU_DEVICE
    - fu_udev_device_read_sysfs
    - FU_UDEV_DEVICE
    - FU_DEVICE_CLASS
    - FU_PCI_DEVICE
    - fu_device_get_backend_parent_with_subsystem
    - fu_device_add_instance_strsafe
    - g_steal_pointer
    - fu_udev_device_get_driver
    - fu_device_get_version
    - g_error_matches
    - g_autoptr
    - fu_device_build_vendor_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_device_probe(FuDevice *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:672,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:673,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:675,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:684,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:685,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:685,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:688,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:690,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:691,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:691,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:691,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:694,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:697,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:698,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:703,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:710,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:718,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:721,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:727,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 5
    argNames:
    - self
    - stream
    - offset
    - progress
    - error
    argTypes:
    - FuMtdDevice*
    - GInputStream*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 664
    functionDepth: 4
    functionLinenumber: 664
    functionLinenumberEnd: 733
    functionName: fu_mtd_device_erase
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_length
    - fu_ioctl_execute
    - g_debug
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - g_set_error_literal
    - fu_progress_set_steps
    - g_prefix_error
    - fu_udev_device_ioctl_new
    - fu_progress_step_done
    - fu_chunk_get_address
    - fu_chunk_array_new_from_stream
    - FU_UDEV_DEVICE
    - GET_PRIVATE
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mtd_device_erase(FuMtdDevice *self,\n\t\t    GInputStream
      *stream,\n\t\t    gsize offset,\n\t\t    FuProgress *progress,\n\t\t    GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:739,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:740,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:740,1
    - Dst: fu_udev_device_seek
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:743,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:743,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:744,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:749,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:750,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:753,1
    - Dst: fu_udev_device_pwrite
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:756,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:756,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:757,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:758,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:759,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:761,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:763,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:766,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuMtdDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 735
    functionDepth: 4
    functionLinenumber: 735
    functionLinenumberEnd: 771
    functionName: fu_mtd_device_write
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_seek
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error_literal
    - g_prefix_error
    - fu_progress_step_done
    - fu_udev_device_pwrite
    - fu_chunk_get_address
    - fu_chunk_get_data
    - FU_UDEV_DEVICE
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:777,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:778,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:778,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:781,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:783,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:784,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:785,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:788,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:791,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:791,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:792,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:792,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:793,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:795,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:797,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:799,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:802,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:803,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:803,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:804,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:805,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:807,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:810,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuMtdDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 773
    functionDepth: 4
    functionLinenumber: 773
    functionLinenumberEnd: 815
    functionName: fu_mtd_device_verify
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error
    - g_malloc0
    - fu_udev_device_pread
    - fu_progress_step_done
    - fu_chunk_get_address
    - fu_bytes_compare
    - fu_chunk_get_bytes
    - FU_UDEV_DEVICE
    - fu_chunk_array_length
    - g_autoptr
    - g_bytes_new_static
    - fu_progress_set_id
    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:824,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:827,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:832,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:833,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:834,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:835,1
    - Dst: fu_mtd_device_write
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:838,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:838,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:840,1
    - Dst: fu_mtd_device_verify
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:843,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:843,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:845,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - self
    - stream
    - offset
    - progress
    - error
    argTypes:
    - FuMtdDevice*
    - GInputStream*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 817
    functionDepth: 5
    functionLinenumber: 817
    functionLinenumberEnd: 849
    functionName: fu_mtd_device_write_verify
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_add_flag
    - fu_mtd_device_verify
    - fu_progress_step_done
    - fu_chunk_array_new_from_stream
    - fu_mtd_device_write
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mtd_device_write_verify(FuMtdDevice *self,\n\t\t\t   GInputStream
      *stream,\n\t\t\t   gsize offset,\n\t\t\t   FuProgress *progress,\n\t\t\t   GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:854,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:855,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:856,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:857,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:860,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:861,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:864,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:867,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:869,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:870,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:870,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:871,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:872,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:873,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:875,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:877,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:880,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:884,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:884,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 851
    functionDepth: 4
    functionLinenumber: 851
    functionLinenumberEnd: 885
    functionName: fu_mtd_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - fu_progress_set_steps
    - g_prefix_error
    - g_malloc0
    - fu_udev_device_pread
    - fu_progress_step_done
    - g_steal_pointer
    - fu_chunk_array_mutable_new
    - fu_chunk_get_address
    - fu_device_get_firmware_size_max
    - g_bytes_new_take
    - FU_MTD_DEVICE
    - fu_progress_set_status
    - g_autoptr
    - FU_UDEV_DEVICE
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_mtd_device_dump_firmware(FuDevice *device, FuProgress *progress, GError **error)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:894,1
    - Dst: fu_mtd_device_write_verify
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:898,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:901,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:902,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:903,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:904,1
    - Dst: fu_mtd_device_erase
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:907,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:907,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:909,1
    - Dst: fu_mtd_device_write_verify
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:912,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:915,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:918,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - self
    - stream
    - offset
    - progress
    - error
    argTypes:
    - FuMtdDevice*
    - GInputStream*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 887
    functionDepth: 6
    functionLinenumber: 887
    functionLinenumberEnd: 922
    functionName: fu_mtd_device_write_stream
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_add_flag
    - fu_progress_step_done
    - fu_mtd_device_erase
    - GET_PRIVATE
    - fu_progress_get_child
    - fu_mtd_device_write_verify
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mtd_device_write_stream(FuMtdDevice *self,\n\t\t\t   GInputStream
      *stream,\n\t\t\t   gsize offset,\n\t\t\t   FuProgress *progress,\n\t\t\t   GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:927,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:929,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:932,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:933,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:934,1
    - Dst: fu_mtd_device_write_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:935,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - img
    - progress
    - error
    argTypes:
    - FuMtdDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 924
    functionDepth: 7
    functionLinenumber: 924
    functionLinenumberEnd: 940
    functionName: fu_mtd_device_write_image
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - g_debug
    - fu_firmware_get_stream
    - fu_mtd_device_write_stream
    - fu_firmware_get_addr
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_device_write_image(FuMtdDevice *self, FuFirmware *img,
      FuProgress *progress, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:948,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:949,1
    - Dst: fu_fmap_firmware_new
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:949,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:952,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:957,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:958,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:959,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:961,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:964,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:969,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:969,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:970,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:975,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:976,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:979,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:979,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:980,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:985,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:986,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:992,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - self
    - stream
    - flags
    - error
    argTypes:
    - FuMtdDevice*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 942
    functionDepth: 4
    functionLinenumber: 942
    functionLinenumberEnd: 993
    functionName: fu_mtd_device_fmap_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_firmware_parse_stream
    - g_steal_pointer
    - fu_firmware_get_offset
    - fu_firmware_get_image_by_id
    - fu_firmware_get_size
    - fu_fmap_firmware_new
    - g_autoptr
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_mtd_device_fmap_prepare_firmware(FuMtdDevice *self,\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: FU_MTD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1002,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1003,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1004,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1004,1
    - Dst: fu_mtd_device_fmap_prepare_firmware
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1008,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1011,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1013,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 995
    functionDepth: 5
    functionLinenumber: 995
    functionLinenumberEnd: 1014
    functionName: fu_mtd_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_parse_stream
    - g_steal_pointer
    - fu_firmware_new
    - fu_mtd_device_fmap_prepare_firmware
    - FU_MTD_DEVICE
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_mtd_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: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1023,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1024,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1026,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1029,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1032,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1034,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1035,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1040,1
    - Dst: fu_mtd_device_write_stream
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1046,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1049,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1050,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1052,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1053,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1055,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1057,1
    - Dst: fu_mtd_device_write_image
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1060,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1060,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1061,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1064,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1016
    functionDepth: 8
    functionLinenumber: 1016
    functionLinenumberEnd: 1069
    functionName: fu_mtd_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - fu_input_stream_size
    - g_set_error
    - fu_mtd_device_write_stream
    - fu_progress_get_child
    - fu_progress_set_steps
    - g_prefix_error
    - fu_firmware_get_image_by_id
    - fu_progress_step_done
    - fu_device_get_firmware_size_max
    - FU_MTD_DEVICE
    - fu_progress_set_id
    - g_autoptr
    - fu_mtd_device_write_image
    - g_ptr_array_index
    - GET_PRIVATE
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1074,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1075,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1078,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1079,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1086,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1087,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1094,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1095,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1102,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1105,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1106,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1106,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1109,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1115,1
    - Dst: fu_strstrip
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1115,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1118,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1128,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1133
    functionName: fu_mtd_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - g_auto
    - g_strcmp0
    - fu_strtoull
    - g_set_error_literal
    - fu_strstrip
    - g_ptr_array_add
    - g_strsplit
    - FU_MTD_DEVICE
    - fu_device_set_firmware_gtype
    - GET_PRIVATE
    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: GET_PRIVATE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1138,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1139,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1140,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1141,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1141,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1142,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1142,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1143,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1143,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1144,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1144,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1145,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1145,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1146,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1146,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1147,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1147,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1148,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1148,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1149,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1149,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1150,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1150,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1151,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1151,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1152,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1152,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1153,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1153,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1155,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1155,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1156,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1156,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1157,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMtdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1135
    functionDepth: 6
    functionLinenumber: 1135
    functionLinenumberEnd: 1158
    functionName: fu_mtd_device_init
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_add_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_summary
    - g_type_ensure
    - FU_UDEV_DEVICE
    - g_ptr_array_new_with_free_func
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_mtd_device_init(FuMtdDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1163,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1164,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1165,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1167,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1160
    functionDepth: 0
    functionLinenumber: 1160
    functionLinenumberEnd: 1169
    functionName: fu_mtd_device_finalize
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - g_object_unref
    - G_OBJECT_CLASS
    - FU_MTD_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_mtd_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1174,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/mtd/fu-mtd-device.c:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMtdDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1187
    functionName: fu_mtd_device_class_init
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mtd_device_class_init(FuMtdDeviceClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_IFD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:22,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:24,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:27,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:27,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:28,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:31,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 33
    functionName: fu_mtd_ifd_device_to_string
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - FU_MTD_IFD_DEVICE
    - fu_firmware_get_addr
    - fu_firmware_get_size
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_mtd_ifd_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:38,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:43,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:43,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:44,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:45,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:48,1
    - Dst: fu_ifd_image_get_access
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:49,1
    - Dst: fu_ifd_access_to_string
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:50,1
    - Dst: fwupd_security_attr_add_metadata
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:51,1
    - Dst: fu_ifd_region_to_string
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:52,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:57,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:58,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - attrs
    argTypes:
    - FuMtdIfdDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 64
    functionName: fu_mtd_ifd_device_add_security_attr_desc
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c
    functionUses: 0
    functionsReached:
    - fu_ifd_region_to_string
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_ifd_image_get_access
    - FU_DEVICE
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - G_N_ELEMENTS
    - fwupd_security_attr_add_metadata
    - fu_security_attrs_append
    - fu_ifd_access_to_string
    - g_autoptr
    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:69,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:73,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:73,1
    - Dst: fu_mtd_ifd_device_add_security_attr_desc
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - device
    - attrs
    argTypes:
    - FuDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 5
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: fu_mtd_ifd_device_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_get_idx
    - FU_MTD_IFD_DEVICE
    - fu_mtd_ifd_device_add_security_attr_desc
    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: 101
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 101
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_IFD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:106,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:109,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:109,1
    - Dst: fu_ifd_image_get_access
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:110,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:111,1
    - Dst: fu_mtd_ifd_device_region_to_name
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:111,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:112,1
    - Dst: fu_ifd_region_to_string
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:112,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:116,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:118,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:121,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:122,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:123,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:128,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:130,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:131,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:132,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:135,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 103
    functionDepth: 7
    functionLinenumber: 103
    functionLinenumberEnd: 140
    functionName: fu_mtd_ifd_device_probe
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_device_set_logical_id
    - fu_device_add_flag
    - fu_ifd_region_to_string
    - fu_mtd_ifd_device_region_to_name
    - fu_device_add_instance_str
    - fu_device_build_instance_id
    - fu_ifd_image_get_access
    - FU_FIRMWARE
    - FU_MTD_IFD_DEVICE
    - fu_device_add_protocol
    - fu_device_set_name
    - g_strdup_printf
    - fu_firmware_get_idx
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_mtd_ifd_device_probe(FuDevice *device, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_IFD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:150,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:151,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:155,1
    - Dst: fu_firmware_new_from_gtypes
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:160,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:168,1
    - Dst: FU_IS_IFD_FIRMWARE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:173,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:174,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:174,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:175,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:178,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:178,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:178,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:179,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:183,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:184,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:184,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:188,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:189,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:189,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:189,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:193,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:193,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:193,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:194,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:198,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:199,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:199,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 142
    functionDepth: 5
    functionLinenumber: 142
    functionLinenumberEnd: 205
    functionName: fu_mtd_ifd_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_addr
    - fu_firmware_get_image_by_idx
    - fu_firmware_new_from_gtypes
    - g_set_error
    - g_set_error_literal
    - FU_FIRMWARE
    - FU_MTD_IFD_DEVICE
    - g_prefix_error_literal
    - g_steal_pointer
    - fu_firmware_get_addr
    - g_object_ref
    - fu_firmware_get_size
    - FU_IS_IFD_FIRMWARE
    - g_autoptr
    - fu_firmware_get_idx
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_mtd_ifd_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_device_get_proxy
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:214,1
    - Dst: fu_mtd_device_write_image
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:217,1
    - Dst: FU_MTD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 207
    functionDepth: 8
    functionLinenumber: 207
    functionLinenumberEnd: 218
    functionName: fu_mtd_ifd_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c
    functionUses: 0
    functionsReached:
    - FU_MTD_DEVICE
    - fu_mtd_device_write_image
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_mtd_ifd_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_add_icon
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:223,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:223,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:224,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:224,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:225,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:225,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:226,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:226,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:227,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuMtdIfdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 6
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: fu_mtd_ifd_device_init
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_icon
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    linkageType: ''
    returnType: void
    signature: void fu_mtd_ifd_device_init(FuMtdIfdDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_MTD_IFD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:233,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:235,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 237
    functionName: fu_mtd_ifd_device_finalize
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - FU_MTD_IFD_DEVICE
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_mtd_ifd_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:242,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuMtdIfdDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 250
    functionName: fu_mtd_ifd_device_class_init
    functionSourceFile: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_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:255,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/mtd/fu-mtd-ifd-device.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - proxy
    - img
    argTypes:
    - FuDevice*
    - FuIfdImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 258
    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 *proxy, FuIfdImage *img)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:23,1
    - Dst: g_free
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: fu_test_free
    functionSourceFile: /src/fwupd/plugins/mtd/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_test_free(FuTest *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:32,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:33,1
    - Dst: fu_path_glob
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:36,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:38,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:43,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:44,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:45,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:47,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:47,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:48,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:54,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:54,1
    - Dst: fu_device_open
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:55,1
    - Dst: FU_MTD_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:57,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - error
    argTypes:
    - FuContext*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 58
    functionName: fu_test_mtd_find_mtdram
    functionSourceFile: /src/fwupd/plugins/mtd/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - fu_device_open
    - g_strcmp0
    - fu_device_get_name
    - g_set_error_literal
    - g_steal_pointer
    - g_prefix_error_literal
    - FU_DEVICE
    - g_object_new
    - g_ptr_array_index
    - g_autoptr
    - fu_device_set_firmware_gtype
    - fu_path_glob
    - FU_MTD_DEVICE
    linkageType: ''
    returnType: FuMtdDevice
    signature: 'FuMtdDevice *

      fu_test_mtd_find_mtdram(FuContext *ctx, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:66,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:66,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:67,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:68,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:70,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:74,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:77,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:78,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:79,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:80,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:81,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:82,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:83,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:84,1
    - Dst: fu_bytes_pad
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:87,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:87,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:88,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:89,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:90,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:92,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:93,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:93,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:98,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:99,1
    - Dst: fu_device_probe_invalidate
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:102,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:102,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:103,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:103,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 3
    argNames:
    - device
    - firmware_gtype
    - filename_xml
    argTypes:
    - FuMtdDevice*
    - GType
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 60
    functionDepth: 5
    functionLinenumber: 60
    functionLinenumberEnd: 105
    functionName: fu_test_mtd_prepare_mtdram_device
    functionSourceFile: /src/fwupd/plugins/mtd/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - g_bytes_new
    - g_assert_nonnull
    - fu_firmware_set_bytes
    - fu_progress_new
    - fu_bytes_pad
    - fu_device_set_firmware_gtype
    - g_debug
    - fu_device_probe_invalidate
    - g_byte_array_new
    - fu_device_get_firmware_size_max
    - FU_DEVICE
    - fu_firmware_new
    - fu_device_write_firmware
    - g_steal_pointer
    - g_assert_no_error
    - fu_firmware_new_from_filename
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_test_mtd_prepare_mtdram_device(FuMtdDevice *device,\n\t\t\t\t
      \ GType firmware_gtype,\n\t\t\t\t  const gchar *filename_xml)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:112,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:113,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:114,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:114,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:115,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:117,1
    - Dst: fu_test_mtd_find_mtdram
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:120,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:122,1
    - Dst: fu_test_mtd_prepare_mtdram_device
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:127,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:128,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:129,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:130,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:131,1
    - Dst: fu_progress_reset
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:134,1
    - Dst: fu_device_dump_firmware
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:135,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:135,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:136,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:137,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:140,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:141,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 107
    functionDepth: 6
    functionLinenumber: 107
    functionLinenumberEnd: 143
    functionName: fu_test_mtd_device_raw_func
    functionSourceFile: /src/fwupd/plugins/mtd/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_firmware_get_bytes
    - fu_progress_reset
    - g_assert_nonnull
    - g_assert_no_error
    - FU_DEVICE
    - fu_progress_new
    - fu_bytes_compare
    - fu_device_dump_firmware
    - g_test_skip
    - fu_test_mtd_prepare_mtdram_device
    - g_autoptr
    - fu_test_mtd_find_mtdram
    linkageType: ''
    returnType: void
    signature: void fu_test_mtd_device_raw_func(gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:151,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:152,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:153,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:154,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:155,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:155,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:156,1
    - Dst: fu_test_mtd_find_mtdram
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:159,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:161,1
    - Dst: fu_test_mtd_prepare_mtdram_device
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:167,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:168,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:171,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:171,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:172,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:173,1
    - Dst: fu_device_get_child_by_logical_id
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:174,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:174,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:175,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:176,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:179,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:179,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:180,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:183,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:184,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:185,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:186,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:191,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 145
    functionDepth: 6
    functionLinenumber: 145
    functionLinenumberEnd: 193
    functionName: fu_test_mtd_device_ifd_func
    functionSourceFile: /src/fwupd/plugins/mtd/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_device_to_string
    - g_debug
    - fu_device_get_child_by_logical_id
    - g_assert_nonnull
    - g_assert_no_error
    - fu_device_setup
    - fu_firmware_get_image_by_id
    - FU_DEVICE
    - fu_progress_new
    - g_test_skip
    - fu_test_mtd_prepare_mtdram_device
    - g_autoptr
    - fu_test_mtd_find_mtdram
    - fu_device_write_firmware
    linkageType: ''
    returnType: void
    signature: void fu_test_mtd_device_ifd_func(gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:200,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:201,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:202,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:202,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:203,1
    - Dst: fu_test_mtd_find_mtdram
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:206,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:208,1
    - Dst: fu_test_mtd_prepare_mtdram_device
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:213,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:216,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:219,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:219,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:220,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:221,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:222,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:222,1
    - Dst: fu_device_set_quirk_kv
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:225,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:225,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:230,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:231,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:232,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:232,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:237,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 195
    functionDepth: 8
    functionLinenumber: 195
    functionLinenumberEnd: 239
    functionName: fu_test_mtd_device_fmap_func
    functionSourceFile: /src/fwupd/plugins/mtd/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - g_assert_nonnull
    - g_assert_no_error
    - fu_device_setup
    - FU_DEVICE
    - fu_device_get_version
    - fu_progress_new
    - g_test_skip
    - fu_test_mtd_prepare_mtdram_device
    - fu_device_set_quirk_kv
    - g_assert_cmpstr
    - g_autoptr
    - fu_test_mtd_find_mtdram
    - fu_device_write_firmware
    linkageType: ''
    returnType: void
    signature: void fu_test_mtd_device_fmap_func(gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:246,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:247,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:248,1
    - Dst: fu_test_mtd_find_mtdram
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:251,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:253,1
    - Dst: fu_test_mtd_prepare_mtdram_device
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:258,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:261,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:264,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:264,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:265,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:266,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:267,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 241
    functionDepth: 6
    functionLinenumber: 241
    functionLinenumberEnd: 268
    functionName: fu_test_mtd_device_uswid_func
    functionSourceFile: /src/fwupd/plugins/mtd/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - g_assert_nonnull
    - g_assert_no_error
    - fu_device_setup
    - FU_DEVICE
    - fu_device_get_version
    - g_test_skip
    - fu_test_mtd_prepare_mtdram_device
    - g_assert_cmpstr
    - g_autoptr
    - fu_test_mtd_find_mtdram
    linkageType: ''
    returnType: void
    signature: void fu_test_mtd_device_uswid_func(gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:275,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:276,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:277,1
    - Dst: fu_test_mtd_find_mtdram
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:280,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:282,1
    - Dst: fu_test_mtd_prepare_mtdram_device
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:287,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:288,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:291,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:291,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:292,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:292,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:293,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:294,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:295,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:295,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:295,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:296,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:296,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 270
    functionDepth: 6
    functionLinenumber: 270
    functionLinenumberEnd: 299
    functionName: fu_test_mtd_device_smbios_func
    functionSourceFile: /src/fwupd/plugins/mtd/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_device_add_private_flag
    - g_assert_nonnull
    - g_assert_no_error
    - fu_device_setup
    - g_assert_cmpint
    - FU_DEVICE
    - fu_device_get_version
    - g_test_skip
    - fu_test_mtd_prepare_mtdram_device
    - g_assert_cmpstr
    - g_autoptr
    - fu_test_mtd_find_mtdram
    - fu_device_get_version_format
    linkageType: ''
    returnType: void
    signature: void fu_test_mtd_device_smbios_func(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:306,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:306,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:307,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:308,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:308,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:310,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:311,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:312,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:315,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:316,1
    - Dst: fu_config_set_basename
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:317,1
    - Dst: fu_context_get_config
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:317,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:318,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:319,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:320,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:321,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:322,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:323,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:325,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:326,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:327,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:328,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:329,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/mtd/fu-self-test.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 301
    functionDepth: 10
    functionLinenumber: 301
    functionLinenumberEnd: 331
    functionName: main
    functionSourceFile: /src/fwupd/plugins/mtd/fu-self-test.c
    functionUses: 5
    functionsReached:
    - fu_context_new
    - g_new0
    - fu_context_set_path
    - fu_config_set_basename
    - g_setenv
    - g_test_init
    - g_assert_no_error
    - fu_progress_new
    - g_test_run
    - g_test_add_data_func
    - fu_context_load_quirks
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - fu_context_load_hwinfo
    - fu_context_get_config
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:20,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:21,1
    - Dst: fu_processor_device_new
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:21,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:22,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:22,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:24,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: fu_cpu_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_context
    - fu_device_setup
    - fu_processor_device_new
    - FU_DEVICE
    - g_autoptr
    - fu_plugin_add_device
    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: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    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:36,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:37,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:38,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:39,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:40,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:41,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:42,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/cpu/fu-cpu-plugin.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: fu_cpu_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/cpu/fu-cpu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_rule
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_context_add_quirk_key
    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:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCpuPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    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:
    - fu_cpu_helper_cet_testfn1
    - sigemptyset
    - sigaction
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:37,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 38
    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:43,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 44
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:53,1
    - Dst: fu_struct_steelseries_version2_res2_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:55,1
    - Dst: fu_struct_steelseries_version2_res2_get_version2
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:60,1
    - Dst: fu_struct_steelseries_version2_res2_get_version1
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:62,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:64,1
    - Dst: strlen
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:70,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:71,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:82,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:90,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - self
    - tunnel
    - buf_res
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 93
    functionName: fu_steelseries_fizz_gen2_get_version2
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - fu_struct_steelseries_version2_res2_get_version1
    - g_strdup_printf
    - strlen
    - fu_struct_steelseries_version2_res2_parse
    - g_autoptr
    - fu_struct_steelseries_version2_res2_get_version2
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_steelseries_fizz_gen2_get_version2(FuSteelseriesFizzImpl
      *self,\n\t\t\t\t      gboolean tunnel,\n\t\t\t\t      GByteArray *buf_res,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:102,1
    - Dst: fu_struct_steelseries_version2_res3_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:104,1
    - Dst: fu_struct_steelseries_version2_res3_get_version2
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:109,1
    - Dst: fu_struct_steelseries_version2_res3_get_version1
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:111,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:113,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - self
    - tunnel
    - buf_res
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 120
    functionName: fu_steelseries_fizz_gen2_get_version3
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - fu_struct_steelseries_version2_res3_get_version1
    - fu_struct_steelseries_version2_res3_get_version2
    - g_set_error_literal
    - g_steal_pointer
    - fu_struct_steelseries_version2_res3_parse
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_steelseries_fizz_gen2_get_version3(FuSteelseriesFizzImpl
      *self,\n\t\t\t\t      gboolean tunnel,\n\t\t\t\t      GByteArray *buf_res,\n\t\t\t\t
      \     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_FIZZ_GEN2
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:126,1
    - Dst: fu_struct_steelseries_fizz_version2_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:128,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:130,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:130,1
    - Dst: fu_steelseries_device_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:132,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:132,1
    - Dst: fu_steelseries_fizz_gen2_get_version3
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:137,1
    - Dst: fu_steelseries_fizz_gen2_get_version2
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - tunnel
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 140
    functionName: fu_steelseries_fizz_gen2_get_version
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - fu_struct_steelseries_fizz_version2_req_new
    - fu_steelseries_device_request
    - FU_STEELSERIES_DEVICE
    - fu_steelseries_device_response
    - fu_steelseries_fizz_gen2_get_version2
    - FU_STEELSERIES_FIZZ_GEN2
    - fu_steelseries_fizz_gen2_get_version3
    - g_autoptr
    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:148,1
    - Dst: fu_struct_steelseries_battery_level2_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:150,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:151,1
    - Dst: fu_steelseries_fizz_gen2_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:153,1
    - Dst: fu_steelseries_fizz_gen2_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:155,1
    - Dst: fu_struct_steelseries_battery_level2_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:159,1
    - Dst: fu_struct_steelseries_battery_level2_res_get_level
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - tunnel
    - level
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 166
    functionName: fu_steelseries_fizz_gen2_get_battery_level
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - fu_struct_steelseries_battery_level2_res_parse
    - fu_struct_steelseries_battery_level2_res_get_level
    - fu_steelseries_fizz_gen2_request
    - fu_steelseries_fizz_gen2_response
    - fu_struct_steelseries_battery_level2_req_new
    - g_autoptr
    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: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    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: 180
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 180
    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:187,1
    - Dst: fu_struct_steelseries_connection_status2_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:188,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:189,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:190,1
    - Dst: fu_steelseries_fizz_gen2_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:192,1
    - Dst: fu_steelseries_fizz_gen2_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:194,1
    - Dst: fu_struct_steelseries_connection_status2_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:197,1
    - Dst: fu_struct_steelseries_connection_status2_res_get_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 216
    functionName: fu_steelseries_fizz_gen2_get_paired_status
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - fu_struct_steelseries_connection_status2_req_new
    - fu_steelseries_fizz_gen2_request
    - fu_steelseries_fizz_gen2_response
    - fu_struct_steelseries_connection_status2_res_get_status
    - fu_struct_steelseries_connection_status2_res_parse
    - g_autoptr
    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:223,1
    - Dst: fu_struct_steelseries_connection_status2_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:224,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:225,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:226,1
    - Dst: fu_steelseries_fizz_gen2_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:228,1
    - Dst: fu_steelseries_fizz_gen2_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:230,1
    - Dst: fu_struct_steelseries_connection_status2_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:233,1
    - Dst: fu_struct_steelseries_connection_status2_res_get_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - FuSteelseriesFizzConnectionStatus*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 248
    functionName: fu_steelseries_fizz_gen2_get_connection_status
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - fu_struct_steelseries_connection_status2_req_new
    - fu_steelseries_fizz_gen2_request
    - fu_steelseries_fizz_gen2_response
    - fu_struct_steelseries_connection_status2_res_get_status
    - fu_struct_steelseries_connection_status2_res_parse
    - g_autoptr
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:257,1
    - Dst: fu_struct_steelseries_serial2_res2_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:259,1
    - Dst: fu_struct_steelseries_serial2_res2_get_serial
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:262,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:264,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - self
    - tunnel
    - buf_res
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 271
    functionName: fu_steelseries_fizz_gen2_get_serial2
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_steal_pointer
    - fu_struct_steelseries_serial2_res2_parse
    - fu_struct_steelseries_serial2_res2_get_serial
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_steelseries_fizz_gen2_get_serial2(FuSteelseriesFizzImpl
      *self,\n\t\t\t\t     gboolean tunnel,\n\t\t\t\t     GByteArray *buf_res,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:280,1
    - Dst: fu_struct_steelseries_serial2_res3_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:282,1
    - Dst: fu_struct_steelseries_serial2_res3_get_serial2
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:287,1
    - Dst: fu_struct_steelseries_serial2_res3_get_serial1
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:289,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:291,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - self
    - tunnel
    - buf_res
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 298
    functionName: fu_steelseries_fizz_gen2_get_serial3
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_steal_pointer
    - fu_struct_steelseries_serial2_res3_get_serial2
    - fu_struct_steelseries_serial2_res3_parse
    - g_autoptr
    - fu_struct_steelseries_serial2_res3_get_serial1
    linkageType: ''
    returnType: gchar
    signature: "gchar *\nfu_steelseries_fizz_gen2_get_serial3(FuSteelseriesFizzImpl
      *self,\n\t\t\t\t     gboolean tunnel,\n\t\t\t\t     GByteArray *buf_res,\n\t\t\t\t
      \    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_FIZZ_GEN2
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:303,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:304,1
    - Dst: fu_struct_steelseries_serial2_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:304,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:305,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:307,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:307,1
    - Dst: fu_steelseries_device_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:309,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:309,1
    - Dst: fu_steelseries_fizz_gen2_get_serial3
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:314,1
    - Dst: fu_steelseries_fizz_gen2_get_serial2
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - tunnel
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 317
    functionName: fu_steelseries_fizz_gen2_get_serial
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_device_response
    - FU_STEELSERIES_DEVICE
    - fu_steelseries_device_request
    - fu_steelseries_fizz_gen2_get_serial2
    - fu_struct_steelseries_serial2_req_new
    - FU_STEELSERIES_FIZZ_GEN2
    - fu_steelseries_fizz_gen2_get_serial3
    - 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:322,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:326,1
    - Dst: fu_device_get_composite_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:326,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:326,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:329,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:332,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:335,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:336,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:337,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:338,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:339,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:340,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:341,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuSteelseriesFizzImpl*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 319
    functionDepth: 4
    functionLinenumber: 319
    functionLinenumberEnd: 357
    functionName: fu_steelseries_fizz_gen2_is_updatable
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - fwupd_request_new
    - g_strcmp0
    - fwupd_request_set_message
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fwupd_request_set_id
    - g_set_error_literal
    - fu_device_get_id
    - g_strdup_printf
    - fu_device_add_request_flag
    - fu_device_get_name
    - fu_device_emit_request
    - fu_device_get_composite_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_gen2_is_updatable(FuSteelseriesFizzImpl
      *self, FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 364
    functionName: fu_steelseries_fizz_gen2_probe
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    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: 379
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 379
    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:387,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:390,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:391,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 400
    functionName: fu_steelseries_fizz_gen2_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_strcmp0
    - FU_STEELSERIES_FIZZ_GEN2
    - g_set_error_literal
    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:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesFizzGen2Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 409
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSteelseriesFizzGen2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 416
    functionName: fu_steelseries_fizz_gen2_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-gen2.c
    functionUses: 0
    functionsReached: []
    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: 3
    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_steelseries_fizz_gen1_response
    - fu_struct_steelseries_fizz_version_req_set_cmd
    - fu_memstrsafe
    - fu_steelseries_fizz_gen1_request
    - FU_DEVICE
    - fu_struct_steelseries_fizz_version_req_new
    - fu_device_set_version_format
    - g_autoptr
    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_steelseries_fizz_gen1_response
    - fu_struct_steelseries_paired_status_res_parse
    - fu_struct_steelseries_paired_status_req_new
    - fu_steelseries_fizz_gen1_request
    - fu_struct_steelseries_paired_status_res_get_status
    - g_autoptr
    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_steelseries_fizz_gen1_response
    - fu_struct_steelseries_connection_status_res_parse
    - fu_steelseries_fizz_gen1_request
    - fu_struct_steelseries_connection_status_res_get_status
    - fu_struct_steelseries_connection_status_req_new
    - 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_steelseries_fizz_gen1_response
    - fu_struct_steelseries_battery_level_res_parse
    - fu_steelseries_fizz_gen1_request
    - fu_struct_steelseries_battery_level_req_new
    - fu_struct_steelseries_battery_level_req_set_cmd
    - g_autoptr
    - fu_struct_steelseries_battery_level_res_get_level
    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_number
      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
    - fu_steelseries_device_set_iface_number
    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_response
    - FU_STEELSERIES_DEVICE
    - fu_steelseries_device_request
    - fu_struct_steelseries_sonic_wireless_status_res_parse
    - fu_struct_steelseries_sonic_wireless_status_req_new
    - fu_struct_steelseries_sonic_wireless_status_res_get_status
    - g_autoptr
    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_response
    - fu_steelseries_device_request
    - FU_STEELSERIES_DEVICE
    - fu_struct_steelseries_sonic_battery_res_parse
    - fu_device_set_battery_level
    - FU_DEVICE
    - g_autoptr
    - fu_struct_steelseries_sonic_battery_req_new
    - fu_struct_steelseries_sonic_battery_res_get_value
    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: 3
    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_steelseries_device_response
    - fu_steelseries_device_request
    - fu_struct_steelseries_sonic_read_from_ram_req_new
    - FU_STEELSERIES_DEVICE
    - fu_struct_steelseries_sonic_read_from_ram_res_parse
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - fu_struct_steelseries_sonic_read_from_ram_req_set_opcode
    - fu_memcpy_safe
    - fu_struct_steelseries_sonic_read_from_ram_res_get_data
    - fu_struct_steelseries_sonic_read_from_ram_req_set_size
    - g_autoptr
    - fu_struct_steelseries_sonic_read_from_ram_req_set_offset
    - fu_chunk_get_address
    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: 3
    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:136,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:144,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:145,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:147,1
    - Dst: fu_steelseries_sonic_read_from_ram_chunk
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:148,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 7
    argNames:
    - self
    - chip
    - address
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicChip
    - guint32
    - guint8*
    - guint16
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 155
    functionName: fu_steelseries_sonic_read_from_ram
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_sonic_read_from_ram_chunk
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_chunk_array_mutable_new
    - g_autoptr
    - g_ptr_array_index
    - fu_progress_set_id
    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:164,1
    - Dst: fu_struct_steelseries_sonic_read_from_flash_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:165,1
    - Dst: fu_struct_steelseries_sonic_read_from_flash_req_set_opcode
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:167,1
    - Dst: fu_struct_steelseries_sonic_read_from_flash_req_set_chipid
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:170,1
    - Dst: fu_struct_steelseries_sonic_read_from_flash_req_set_offset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:172,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:173,1
    - Dst: fu_struct_steelseries_sonic_read_from_flash_req_set_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:174,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:174,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:175,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:175,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:179,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:179,1
    - Dst: fu_steelseries_sonic_read_from_ram
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:181,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:183,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:184,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:185,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: 188
      start: 157
    functionDepth: 5
    functionLinenumber: 157
    functionLinenumberEnd: 188
    functionName: fu_steelseries_sonic_read_from_flash_chunk
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_device_request
    - FU_STEELSERIES_DEVICE
    - fu_struct_steelseries_sonic_read_from_flash_req_new
    - fu_steelseries_sonic_read_from_ram
    - fu_device_sleep
    - fu_chunk_get_data_sz
    - fu_struct_steelseries_sonic_read_from_flash_req_set_chipid
    - fu_chunk_get_data_out
    - fu_struct_steelseries_sonic_read_from_flash_req_set_offset
    - FU_DEVICE
    - fu_struct_steelseries_sonic_read_from_flash_req_set_opcode
    - fu_struct_steelseries_sonic_read_from_flash_req_set_size
    - g_autoptr
    - fu_chunk_get_address
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:199,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:201,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:209,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:210,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:212,1
    - Dst: fu_steelseries_sonic_read_from_flash_chunk
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:213,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:216,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 7
    argNames:
    - self
    - chip
    - address
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicChip
    - guint32
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 190
    functionDepth: 6
    functionLinenumber: 190
    functionLinenumberEnd: 224
    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_set_steps
    - fu_progress_step_done
    - fu_chunk_array_mutable_new
    - g_autoptr
    - fu_steelseries_sonic_read_from_flash_chunk
    - g_ptr_array_index
    - fu_progress_set_id
    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:232,1
    - Dst: fu_struct_steelseries_sonic_write_to_ram_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:233,1
    - Dst: fu_struct_steelseries_sonic_write_to_ram_req_set_opcode
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:234,1
    - Dst: fu_struct_steelseries_sonic_write_to_ram_req_set_offset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:237,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:237,1
    - Dst: fu_struct_steelseries_sonic_write_to_ram_req_set_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:238,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:238,1
    - Dst: fu_struct_steelseries_sonic_write_to_ram_req_set_data
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:239,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:240,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:241,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:244,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:244,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:248,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - chip
    - chk
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicChip
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 250
    functionName: fu_steelseries_sonic_write_to_ram_chunk
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_device_request
    - FU_STEELSERIES_DEVICE
    - fu_struct_steelseries_sonic_write_to_ram_req_set_data
    - fu_struct_steelseries_sonic_write_to_ram_req_set_offset
    - fu_device_sleep
    - fu_chunk_get_data_sz
    - fu_struct_steelseries_sonic_write_to_ram_req_new
    - FU_DEVICE
    - fu_chunk_get_data
    - fu_struct_steelseries_sonic_write_to_ram_req_set_opcode
    - fu_struct_steelseries_sonic_write_to_ram_req_set_size
    - g_autoptr
    - fu_chunk_get_address
    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:260,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:263,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:267,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:268,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:269,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:269,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:270,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:271,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:274,1
    - Dst: fu_steelseries_sonic_write_to_ram_chunk
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:277,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:279,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: 284
      start: 252
    functionDepth: 4
    functionLinenumber: 252
    functionLinenumberEnd: 284
    functionName: fu_steelseries_sonic_write_to_ram
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_bytes
    - fu_steelseries_sonic_write_to_ram_chunk
    - fu_chunk_array_index
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_progress_set_status
    - g_autoptr
    - fu_progress_set_id
    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:293,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:294,1
    - Dst: fu_struct_steelseries_sonic_write_to_flash_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:295,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:297,1
    - Dst: fu_steelseries_sonic_write_to_ram
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:298,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:300,1
    - Dst: fu_struct_steelseries_sonic_write_to_flash_req_set_opcode
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:306,1
    - Dst: fu_struct_steelseries_sonic_write_to_flash_req_set_chipid
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:309,1
    - Dst: fu_struct_steelseries_sonic_write_to_flash_req_set_offset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:311,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:312,1
    - Dst: fu_struct_steelseries_sonic_write_to_flash_req_set_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:313,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:313,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:314,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:314,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:318,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:318,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: 320
      start: 286
    functionDepth: 5
    functionLinenumber: 286
    functionLinenumberEnd: 320
    functionName: fu_steelseries_sonic_write_to_flash_chunk
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_struct_steelseries_sonic_write_to_flash_req_set_opcode
    - fu_steelseries_device_request
    - FU_STEELSERIES_DEVICE
    - fu_struct_steelseries_sonic_write_to_flash_req_set_chipid
    - fu_struct_steelseries_sonic_write_to_flash_req_set_offset
    - fu_steelseries_sonic_write_to_ram
    - fu_device_sleep
    - fu_chunk_get_data_sz
    - fu_struct_steelseries_sonic_write_to_flash_req_set_size
    - fu_struct_steelseries_sonic_write_to_flash_req_new
    - FU_DEVICE
    - fu_chunk_get_bytes
    - g_autoptr
    - fu_chunk_get_address
    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:330,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:332,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:336,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:337,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:338,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:338,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:339,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:340,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:343,1
    - Dst: fu_steelseries_sonic_write_to_flash_chunk
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:346,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:349,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:352,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: 357
      start: 322
    functionDepth: 6
    functionLinenumber: 322
    functionLinenumberEnd: 357
    functionName: fu_steelseries_sonic_write_to_flash
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_index
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_steelseries_sonic_write_to_flash_chunk
    - fu_chunk_array_length
    - fu_progress_set_status
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:365,1
    - Dst: fu_struct_steelseries_sonic_erase_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:366,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:368,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:369,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:370,1
    - Dst: fu_struct_steelseries_sonic_erase_req_set_opcode
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:372,1
    - Dst: fu_struct_steelseries_sonic_erase_req_set_chipid
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:374,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:375,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:375,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:379,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:379,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:379,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - self
    - chip
    - progress
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicChip
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 359
    functionDepth: 5
    functionLinenumber: 359
    functionLinenumberEnd: 384
    functionName: fu_steelseries_sonic_erase
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_struct_steelseries_sonic_erase_req_new
    - fu_steelseries_device_request
    - FU_STEELSERIES_DEVICE
    - fu_struct_steelseries_sonic_erase_req_set_opcode
    - fu_progress_set_steps
    - fu_device_sleep_full
    - fu_progress_step_done
    - fu_struct_steelseries_sonic_erase_req_set_chipid
    - FU_DEVICE
    - fu_progress_set_status
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:392,1
    - Dst: fu_struct_steelseries_sonic_restart_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:393,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:395,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:396,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:397,1
    - Dst: fu_struct_steelseries_sonic_restart_req_set_opcode
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:399,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:402,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:402,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:406,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:406,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - self
    - chip
    - progress
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicChip
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 386
    functionDepth: 5
    functionLinenumber: 386
    functionLinenumberEnd: 411
    functionName: fu_steelseries_sonic_restart
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_device_request
    - FU_STEELSERIES_DEVICE
    - fu_progress_set_steps
    - fu_device_sleep_full
    - fu_progress_step_done
    - FU_DEVICE
    - fu_struct_steelseries_sonic_restart_req_set_opcode
    - g_autoptr
    - fu_progress_set_status
    - fu_struct_steelseries_sonic_restart_req_new
    - fu_progress_set_id
    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:416,1
    - Dst: fu_steelseries_sonic_wireless_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:419,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:420,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:423,1
    - Dst: fu_steelseries_sonic_wireless_status_to_string
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:423,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 434
    functionName: fu_steelseries_sonic_wait_for_connect_cb
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_sonic_wireless_status_to_string
    - g_debug
    - g_set_error_literal
    - fu_steelseries_sonic_wireless_status
    - g_prefix_error_literal
    - FU_STEELSERIES_SONIC
    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:443,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:444,1
    - Dst: fu_steelseries_sonic_wireless_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:447,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:448,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:451,1
    - Dst: fu_steelseries_sonic_wireless_status_to_string
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:451,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:458,1
    - Dst: fu_device_get_name
      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: fwupd_request_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:462,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:463,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:464,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:465,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:466,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:466,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:469,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:469,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:475,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:477,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - self
    - delay
    - progress
    - error
    argTypes:
    - FuSteelseriesSonic*
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 436
    functionDepth: 4
    functionLinenumber: 436
    functionLinenumberEnd: 483
    functionName: fu_steelseries_sonic_wait_for_connect
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fwupd_request_new
    - fu_steelseries_sonic_wireless_status_to_string
    - g_debug
    - fwupd_request_set_kind
    - fwupd_request_set_message
    - fwupd_request_set_id
    - g_set_error_literal
    - fu_steelseries_sonic_wireless_status
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_get_name
    - fu_device_emit_request
    - g_autoptr
    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:488,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:490,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:493,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:494,1
    - Dst: fu_progress_add_step
      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: fu_steelseries_sonic_restart
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:507,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:507,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:508,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:511,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:514,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:516,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:517,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:518,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:519,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:520,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:521,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:522,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:522,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:526,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 485
    functionDepth: 6
    functionLinenumber: 485
    functionLinenumberEnd: 528
    functionName: fu_steelseries_sonic_attach
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fwupd_request_new
    - fwupd_request_set_message
    - fu_progress_add_step
    - fwupd_request_set_kind
    - fwupd_request_set_id
    - fwupd_request_add_flag
    - fu_progress_get_child
    - fu_progress_step_done
    - g_prefix_error
    - FU_DEVICE
    - g_strdup_printf
    - fu_steelseries_sonic_restart
    - fu_device_get_name
    - fu_device_emit_request
    - g_autoptr
    - FU_STEELSERIES_SONIC
    - fu_progress_set_id
    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:536,1
    - Dst: fu_steelseries_sonic_wait_for_connect
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:537,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:538,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:538,1
    - Dst: fu_steelseries_sonic_ensure_battery_state
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:542,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 530
    functionDepth: 8
    functionLinenumber: 530
    functionLinenumberEnd: 549
    functionName: fu_steelseries_sonic_prepare
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_device_get_remove_delay
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_steelseries_sonic_wait_for_connect
    - FU_STEELSERIES_SONIC
    - fu_steelseries_sonic_ensure_battery_state
    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:561,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:562,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:564,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:565,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:569,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:574,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:577,1
    - Dst: fu_bytes_get_data_safe
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:580,1
    - Dst: fu_steelseries_sonic_erase
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:583,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:583,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:584,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:587,1
    - Dst: fu_steelseries_sonic_write_to_flash
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:588,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:592,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:594,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:597,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: 601
      start: 551
    functionDepth: 7
    functionLinenumber: 551
    functionLinenumberEnd: 601
    functionName: fu_steelseries_sonic_write_chip
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_bytes
    - fu_progress_add_step
    - fu_progress_get_child
    - fu_progress_step_done
    - g_prefix_error
    - fu_firmware_get_image_by_id
    - fu_steelseries_sonic_write_to_flash
    - fu_bytes_get_data_safe
    - g_autoptr
    - fu_steelseries_sonic_erase
    - fu_progress_set_id
    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:610,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:613,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:614,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:617,1
    - Dst: fu_steelseries_sonic_read_from_flash
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:618,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:623,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:625,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:628,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:630,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:630,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - self
    - chip
    - progress
    - error
    argTypes:
    - FuSteelseriesSonic*
    - FuSteelseriesSonicChip
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 603
    functionDepth: 7
    functionLinenumber: 603
    functionLinenumberEnd: 632
    functionName: fu_steelseries_sonic_read_chip
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_sonic_read_from_flash
    - g_steal_pointer
    - fu_progress_set_steps
    - g_prefix_error
    - g_malloc0
    - fu_progress_step_done
    - g_bytes_new_take
    - fu_firmware_new_from_bytes
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:641,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:642,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:643,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:644,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:646,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:647,1
    - Dst: fu_firmware_get_image_by_id
      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_steelseries_sonic_read_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:655,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:655,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:657,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:660,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:663,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:664,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:666,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:667,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:670,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: 674
      start: 634
    functionDepth: 8
    functionLinenumber: 634
    functionLinenumberEnd: 674
    functionName: fu_steelseries_sonic_verify_chip
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_bytes
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_progress_step_done
    - g_prefix_error
    - fu_firmware_get_image_by_id
    - fu_dump_raw
    - fu_steelseries_sonic_read_chip
    - fu_bytes_compare
    - g_bytes_get_size
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_SONIC
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:679,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:681,1
    - Dst: fu_zip_firmware_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:681,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:682,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:683,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:684,1
    - Dst: fu_steelseries_sonic_wait_for_connect
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:686,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:687,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:692,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:693,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:694,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:695,1
    - Dst: fu_steelseries_sonic_read_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:700,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:700,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:703,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:704,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:706,1
    - Dst: fu_steelseries_sonic_read_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:711,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:711,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:714,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:715,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:717,1
    - Dst: fu_steelseries_sonic_read_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:722,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:722,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:725,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:726,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:728,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:731,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:732,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 676
    functionDepth: 8
    functionLinenumber: 676
    functionLinenumberEnd: 733
    functionName: fu_steelseries_sonic_read_firmware
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - fu_progress_add_step
    - fu_firmware_add_image
    - fu_device_get_remove_delay
    - fu_progress_get_child
    - fu_progress_step_done
    - g_steal_pointer
    - fu_steelseries_sonic_read_chip
    - fu_zip_firmware_new
    - fu_steelseries_sonic_wait_for_connect
    - g_autoptr
    - FU_STEELSERIES_SONIC
    - fu_progress_set_id
    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:742,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:745,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:746,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:747,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:748,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:749,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:750,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:751,1
    - Dst: fu_steelseries_sonic_write_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:755,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:758,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:762,1
    - Dst: fu_steelseries_sonic_verify_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:763,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:766,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:769,1
    - Dst: fu_steelseries_sonic_write_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:773,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:776,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:780,1
    - Dst: fu_steelseries_sonic_verify_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:781,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:784,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:787,1
    - Dst: fu_steelseries_sonic_write_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:791,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:794,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:798,1
    - Dst: fu_steelseries_sonic_verify_chip
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:799,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:802,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:805,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: 809
      start: 735
    functionDepth: 9
    functionLinenumber: 735
    functionLinenumberEnd: 809
    functionName: fu_steelseries_sonic_write_firmware
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_steelseries_sonic_verify_chip
    - fu_progress_step_done
    - FU_STEELSERIES_SONIC
    - fu_steelseries_sonic_write_chip
    - fu_progress_get_child
    - fu_progress_set_id
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:819,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:821,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:825,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_bytes_get_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:827,1
    - Dst: fu_crc32_safe
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:832,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:833,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:834,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:836,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:843,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:847,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:852,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:857,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - firmware
    - flags
    - error
    argTypes:
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 812
    functionDepth: 5
    functionLinenumber: 812
    functionLinenumberEnd: 861
    functionName: fu_steelseries_sonic_parse_firmware
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_memread_uint32_safe
    - g_debug
    - fu_firmware_get_bytes
    - g_set_error
    - g_bytes_get_data
    - g_bytes_get_size
    - fu_firmware_add_flag
    - g_autoptr
    - fu_crc32_safe
    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:870,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:871,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:872,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:873,1
    - Dst: fu_zip_firmware_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:875,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:876,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:880,1
    - Dst: fu_steelseries_sonic_parse_firmware
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:886,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:890,1
    - Dst: fu_steelseries_sonic_parse_firmware
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:896,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:900,1
    - Dst: fu_steelseries_sonic_parse_firmware
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:906,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:910,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: 911
      start: 863
    functionDepth: 6
    functionLinenumber: 863
    functionLinenumberEnd: 911
    functionName: fu_steelseries_sonic_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_firmware_parse_stream
    - g_steal_pointer
    - fu_firmware_get_image_by_id
    - fu_zip_firmware_new
    - g_autoptr
    - fu_steelseries_sonic_parse_firmware
    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:916,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:917,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:918,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:919,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:920,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 913
    functionDepth: 3
    functionLinenumber: 913
    functionLinenumberEnd: 922
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesSonicClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 935
    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_device_set_version_format
      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
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:941,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:941,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:942,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:942,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:943,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:943,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:944,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:944,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:945,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:945,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:946,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:946,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:947,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:947,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:948,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:948,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:949,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:949,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:950,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:950,1
    - Dst: fu_device_set_battery_threshold
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:951,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSteelseriesSonic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 937
    functionDepth: 7
    functionLinenumber: 937
    functionLinenumberEnd: 952
    functionName: fu_steelseries_sonic_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-sonic.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_set_battery_threshold
    - fu_device_add_private_flag
    - fu_device_set_battery_level
    - FU_DEVICE
    - fu_device_add_request_flag
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_sonic_init(FuSteelseriesSonic *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:27,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:30,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:30,1
    - Dst: fu_steelseries_fizz_impl_get_connection_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:33,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:33,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:36,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:39,1
    - Dst: fu_steelseries_fizz_connection_status_to_string
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:40,1
    - Dst: fu_steelseries_fizz_impl_get_battery_level
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:48,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:48,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:54,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:56,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:63,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:64,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:64,1
    - Dst: fu_steelseries_fizz_impl_get_version
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:68,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:68,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:71,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:73,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:73,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:76,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - self
    - reached
    - error
    argTypes:
    - FuSteelseriesFizzTunnel*
    - gboolean*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 21
    functionDepth: 7
    functionLinenumber: 21
    functionLinenumberEnd: 80
    functionName: fu_steelseries_fizz_tunnel_ping
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_fizz_connection_status_to_string
    - fu_device_set_version
    - g_debug
    - fu_steelseries_fizz_impl_get_battery_level
    - fu_steelseries_fizz_impl_get_version
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_device_set_battery_level
    - g_prefix_error
    - FU_DEVICE
    - fu_device_get_id
    - g_error_matches
    - fu_steelseries_fizz_impl_get_connection_status
    - fu_device_get_proxy
    - g_autoptr
    - FU_STEELSERIES_FIZZ_IMPL
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_tunnel_ping(FuSteelseriesFizzTunnel *self,
      gboolean *reached, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_FIZZ_TUNNEL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:87,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:88,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:88,1
    - Dst: fu_steelseries_fizz_get_connection_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:92,1
    - Dst: FU_STEELSERIES_FIZZ
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:92,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:95,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:98,1
    - Dst: fu_steelseries_fizz_connection_status_to_string
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:99,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:101,1
    - Dst: fu_steelseries_fizz_tunnel_ping
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:109,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 82
    functionDepth: 8
    functionLinenumber: 82
    functionLinenumberEnd: 116
    functionName: fu_steelseries_fizz_tunnel_wait_for_reconnect_cb
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_device_get_parent
    - fu_steelseries_fizz_connection_status_to_string
    - g_debug
    - fu_steelseries_fizz_get_connection_status
    - g_set_error_literal
    - fu_steelseries_fizz_tunnel_ping
    - g_prefix_error_literal
    - FU_STEELSERIES_FIZZ_TUNNEL
    - FU_DEVICE
    - FU_STEELSERIES_FIZZ
    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:123,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - delay
    - error
    argTypes:
    - FuSteelseriesFizzTunnel*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 129
    functionName: fu_steelseries_fizz_tunnel_wait_for_reconnect
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_fizz_tunnel_wait_for_reconnect(FuSteelseriesFizzTunnel
      *self,\n\t\t\t\t\t      guint delay,\n\t\t\t\t\t      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:134,1
    - Dst: fu_steelseries_fizz_impl_is_updatable
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:137,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:137,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:140,1
    - Dst: fu_steelseries_fizz_reset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:144,1
    - Dst: FU_STEELSERIES_FIZZ
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:144,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:150,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 131
    functionDepth: 6
    functionLinenumber: 131
    functionLinenumberEnd: 155
    functionName: fu_steelseries_fizz_tunnel_detach
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_steelseries_fizz_impl_is_updatable
    - fu_device_has_private_flag
    - FU_STEELSERIES_FIZZ
    - fu_device_get_proxy
    - fu_steelseries_fizz_reset
    - FU_STEELSERIES_FIZZ_IMPL
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_tunnel_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_FIZZ_TUNNEL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:160,1
    - Dst: fu_device_get_remove_delay
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:162,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:162,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:163,1
    - Dst: fu_progress_set_id
      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_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:167,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:168,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:170,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:170,1
    - Dst: fu_steelseries_fizz_reset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:173,1
    - Dst: FU_STEELSERIES_FIZZ
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:173,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:177,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:178,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:181,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:181,1
    - Dst: fu_progress_get_child
      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:183,1
    - Dst: fu_steelseries_fizz_tunnel_wait_for_reconnect
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:185,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:186,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:188,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:188,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 157
    functionDepth: 5
    functionLinenumber: 157
    functionLinenumberEnd: 195
    functionName: fu_steelseries_fizz_tunnel_attach
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_device_get_parent
    - g_debug
    - fu_progress_add_step
    - fu_device_get_remove_delay
    - fu_progress_step_done
    - fu_device_sleep_full
    - FU_STEELSERIES_FIZZ_TUNNEL
    - fu_steelseries_fizz_reset
    - FU_DEVICE
    - fu_steelseries_fizz_tunnel_wait_for_reconnect
    - g_prefix_error
    - fu_device_get_id
    - FU_STEELSERIES_FIZZ
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:204,1
    - Dst: fu_usb_device_get_release
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:207,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:207,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:209,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:210,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:211,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:215,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:216,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:216,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:217,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:217,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:218,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:219,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:226,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:227,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 197
    functionDepth: 7
    functionLinenumber: 197
    functionLinenumberEnd: 240
    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_set_version_raw
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - fu_device_add_instance_u16
    - fu_usb_device_get_release
    - fu_device_has_private_flag
    - fu_device_get_vid
    - fu_device_build_instance_id_full
    - fu_device_get_proxy
    - fu_device_set_version_format
    - FU_USB_DEVICE
    - fu_device_get_version_format
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_tunnel_probe(FuDevice *device, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_FIZZ_TUNNEL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:245,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:249,1
    - Dst: fu_steelseries_fizz_tunnel_ping
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:252,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:253,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:254,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:261,1
    - Dst: fu_steelseries_fizz_impl_get_serial
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:264,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:264,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:268,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:270,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 242
    functionDepth: 8
    functionLinenumber: 242
    functionLinenumberEnd: 282
    functionName: fu_steelseries_fizz_tunnel_setup
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - fu_steelseries_fizz_impl_get_serial
    - fu_steelseries_fizz_tunnel_ping
    - FU_STEELSERIES_FIZZ_TUNNEL
    - fu_device_set_serial
    - fu_device_get_id
    - fu_device_get_proxy
    - g_autoptr
    - FU_STEELSERIES_FIZZ_IMPL
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_tunnel_setup(FuDevice *device, GError
      **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_FIZZ_TUNNEL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:287,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:295,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:296,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:298,1
    - Dst: fu_steelseries_fizz_impl_get_fs_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:301,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:301,1
    - Dst: fu_steelseries_fizz_impl_get_file_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:303,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:303,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:310,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:313,1
    - Dst: fu_steelseries_fizz_tunnel_ping
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:317,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:318,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:323,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:330,1
    - Dst: fu_steelseries_fizz_get_crc32_fs
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:332,1
    - Dst: FU_STEELSERIES_FIZZ
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:332,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:339,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:349,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:350,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 284
    functionDepth: 8
    functionLinenumber: 284
    functionLinenumberEnd: 356
    functionName: fu_steelseries_fizz_tunnel_poll
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_get_parent
    - g_debug
    - fu_device_get_name
    - fu_steelseries_fizz_impl_get_fs_id
    - fu_device_locker_new
    - fu_steelseries_fizz_tunnel_ping
    - g_prefix_error_literal
    - FU_STEELSERIES_FIZZ_TUNNEL
    - fu_device_remove_flag
    - fu_steelseries_fizz_get_crc32_fs
    - fu_steelseries_fizz_impl_get_file_id
    - g_warning
    - FU_STEELSERIES_FIZZ
    - fu_device_get_proxy
    - g_autoptr
    - FU_STEELSERIES_FIZZ_IMPL
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_fizz_tunnel_poll(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:370,1
    - Dst: fu_steelseries_fizz_impl_get_fs_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:373,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:373,1
    - Dst: fu_steelseries_fizz_impl_get_file_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:375,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:375,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:381,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:382,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:384,1
    - Dst: fu_steelseries_fizz_write_firmware_fs
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:387,1
    - Dst: FU_STEELSERIES_FIZZ
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:387,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:392,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:396,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 358
    functionDepth: 4
    functionLinenumber: 358
    functionLinenumberEnd: 400
    functionName: fu_steelseries_fizz_tunnel_write_firmware
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_device_get_parent
    - fu_progress_add_step
    - fu_steelseries_fizz_impl_get_fs_id
    - fu_progress_step_done
    - fu_steelseries_fizz_impl_get_file_id
    - fu_steelseries_fizz_write_firmware_fs
    - FU_STEELSERIES_FIZZ
    - fu_device_get_proxy
    - fu_progress_get_child
    - FU_STEELSERIES_FIZZ_IMPL
    - fu_progress_set_id
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:409,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:411,1
    - Dst: fu_steelseries_fizz_impl_get_fs_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:414,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:414,1
    - Dst: fu_steelseries_fizz_impl_get_file_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:416,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:416,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:422,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:423,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:425,1
    - Dst: fu_steelseries_fizz_read_firmware_fs
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:428,1
    - Dst: FU_STEELSERIES_FIZZ
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:428,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:432,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:433,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:437,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:440,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 402
    functionDepth: 4
    functionLinenumber: 402
    functionLinenumberEnd: 441
    functionName: fu_steelseries_fizz_tunnel_read_firmware
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_device_get_parent
    - fu_steelseries_fizz_read_firmware_fs
    - fu_progress_add_step
    - fu_steelseries_fizz_impl_get_fs_id
    - g_steal_pointer
    - fu_progress_step_done
    - fu_steelseries_fizz_impl_get_file_id
    - fu_device_get_firmware_size_max
    - FU_STEELSERIES_FIZZ
    - fu_device_get_proxy
    - g_autoptr
    - fu_progress_get_child
    - FU_STEELSERIES_FIZZ_IMPL
    - fu_progress_set_id
    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:446,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:447,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:448,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:449,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:450,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 443
    functionDepth: 3
    functionLinenumber: 443
    functionLinenumberEnd: 452
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:457,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 458
    functionName: fu_steelseries_fizz_tunnel_convert_version
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16
    - fu_device_get_version_format
    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:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesFizzTunnelClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 474
    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:479,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:479,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:480,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:480,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:481,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:481,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:482,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:482,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:483,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:483,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:485,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:485,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:486,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:486,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:487,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:487,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:488,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:488,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:489,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:489,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:490,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:490,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:491,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:491,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:492,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:492,1
    - Dst: fu_device_set_battery_threshold
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:493,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:493,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:494,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:494,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:495,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSteelseriesFizzTunnel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 476
    functionDepth: 7
    functionLinenumber: 476
    functionLinenumberEnd: 496
    functionName: fu_steelseries_fizz_tunnel_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_logical_id
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_set_battery_threshold
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_set_poll_interval
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:501,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-tunnel.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parent
    argTypes:
    - FuSteelseriesFizz*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 502
    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: fu_dump_raw
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:73,1
    - Dst: fu_steelseries_fizz_cmd_to_string
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:74,1
    - Dst: fu_steelseries_fizz_impl_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:77,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuSteelseriesFizz*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 78
    functionName: fu_steelseries_fizz_request
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_fizz_impl_request
    - fu_steelseries_fizz_cmd_to_string
    - FU_DEVICE
    - fu_device_get_proxy
    - fu_dump_raw
    - FU_STEELSERIES_FIZZ_IMPL
    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:83,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:83,1
    - Dst: fu_steelseries_fizz_impl_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:86,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSteelseriesFizz*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: fu_steelseries_fizz_response
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - FU_STEELSERIES_FIZZ_IMPL
    - fu_steelseries_fizz_impl_response
    - fu_device_get_proxy
    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:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:94,1
    - Dst: fu_steelseries_fizz_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:96,1
    - Dst: fu_steelseries_fizz_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:98,1
    - Dst: fu_struct_steelseries_fizz_generic_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:102,1
    - Dst: fu_struct_steelseries_fizz_generic_res_get_cmd
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:105,1
    - Dst: g_set_error
      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:110,1
    - Dst: fu_steelseries_fizz_command_error_to_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:114,1
    - Dst: fu_struct_steelseries_fizz_generic_res_get_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:116,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuSteelseriesFizz*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 121
    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_error
    - g_steal_pointer
    - fu_steelseries_fizz_request
    - fu_struct_steelseries_fizz_generic_res_parse
    - fu_steelseries_fizz_response
    - fu_steelseries_fizz_command_error_to_error
    - g_autoptr
    - fu_struct_steelseries_fizz_generic_res_get_cmd
    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:133,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:138,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:142,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:143,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:143,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:144,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:145,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:146,1
    - Dst: fu_struct_steelseries_fizz_write_access_file_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:147,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:148,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:151,1
    - Dst: fu_struct_steelseries_fizz_write_access_file_req_set_cmd
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:154,1
    - Dst: fu_struct_steelseries_fizz_write_access_file_req_set_filesystem
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:155,1
    - Dst: fu_struct_steelseries_fizz_write_access_file_req_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:156,1
    - Dst: fu_struct_steelseries_fizz_write_access_file_req_set_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:157,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:159,1
    - Dst: fu_struct_steelseries_fizz_write_access_file_req_set_offset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:160,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:162,1
    - Dst: fu_struct_steelseries_fizz_write_access_file_req_set_data
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:163,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:165,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:166,1
    - Dst: fu_steelseries_fizz_request_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:169,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:172,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: 177
      start: 123
    functionDepth: 5
    functionLinenumber: 123
    functionLinenumberEnd: 177
    functionName: fu_steelseries_fizz_write_fs
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_struct_steelseries_fizz_write_access_file_req_set_id
    - fu_struct_steelseries_fizz_write_access_file_req_set_cmd
    - fu_struct_steelseries_fizz_write_access_file_req_set_size
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_struct_steelseries_fizz_write_access_file_req_set_filesystem
    - fu_progress_set_steps
    - fu_struct_steelseries_fizz_write_access_file_req_set_offset
    - fu_steelseries_fizz_request_response
    - fu_progress_step_done
    - fu_chunk_get_address
    - fu_chunk_get_data
    - fu_struct_steelseries_fizz_write_access_file_req_new
    - fu_chunk_array_length
    - g_autoptr
    - fu_struct_steelseries_fizz_write_access_file_req_set_data
    - fu_progress_set_id
    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:187,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:188,1
    - Dst: fu_struct_steelseries_fizz_erase_file_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:193,1
    - Dst: fu_struct_steelseries_fizz_erase_file_req_set_cmd
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:194,1
    - Dst: fu_struct_steelseries_fizz_erase_file_req_set_filesystem
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:195,1
    - Dst: fu_struct_steelseries_fizz_erase_file_req_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:196,1
    - Dst: fu_steelseries_fizz_request_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:197,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: 199
      start: 179
    functionDepth: 5
    functionLinenumber: 179
    functionLinenumberEnd: 199
    functionName: fu_steelseries_fizz_erase_fs
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_struct_steelseries_fizz_erase_file_req_set_filesystem
    - fu_struct_steelseries_fizz_erase_file_req_set_id
    - fu_steelseries_fizz_request_response
    - fu_struct_steelseries_fizz_erase_file_req_set_cmd
    - fu_struct_steelseries_fizz_erase_file_req_new
    - g_autoptr
    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:208,1
    - Dst: fu_struct_steelseries_fizz_reset_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:213,1
    - Dst: fu_struct_steelseries_fizz_reset_req_set_cmd
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:214,1
    - Dst: fu_struct_steelseries_fizz_reset_req_set_mode
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:215,1
    - Dst: fu_steelseries_fizz_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - tunnel
    - mode
    - error
    argTypes:
    - FuSteelseriesFizz*
    - gboolean
    - FuSteelseriesFizzResetMode
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 217
    functionName: fu_steelseries_fizz_reset
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 2
    functionsReached:
    - fu_struct_steelseries_fizz_reset_req_new
    - fu_steelseries_fizz_request
    - fu_struct_steelseries_fizz_reset_req_set_cmd
    - g_autoptr
    - fu_struct_steelseries_fizz_reset_req_set_mode
    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:229,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:230,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:231,1
    - Dst: fu_struct_steelseries_fizz_file_crc32_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:236,1
    - Dst: fu_struct_steelseries_fizz_file_crc32_req_set_cmd
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:237,1
    - Dst: fu_struct_steelseries_fizz_file_crc32_req_set_filesystem
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:238,1
    - Dst: fu_struct_steelseries_fizz_file_crc32_req_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:239,1
    - Dst: fu_steelseries_fizz_request_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:240,1
    - Dst: fu_struct_steelseries_fizz_file_crc32_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:243,1
    - Dst: fu_struct_steelseries_fizz_file_crc32_res_get_calculated
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:249,1
    - Dst: fu_struct_steelseries_fizz_file_crc32_res_get_stored
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:250,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: 254
      start: 219
    functionDepth: 5
    functionLinenumber: 219
    functionLinenumberEnd: 254
    functionName: fu_steelseries_fizz_get_crc32_fs
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 1
    functionsReached:
    - fu_struct_steelseries_fizz_file_crc32_res_get_calculated
    - fu_struct_steelseries_fizz_file_crc32_req_set_id
    - fu_steelseries_fizz_request_response
    - fu_struct_steelseries_fizz_file_crc32_res_get_stored
    - fu_struct_steelseries_fizz_file_crc32_req_set_filesystem
    - fu_struct_steelseries_fizz_file_crc32_res_parse
    - fu_struct_steelseries_fizz_file_crc32_req_new
    - fu_struct_steelseries_fizz_file_crc32_req_set_cmd
    - g_autoptr
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:267,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:272,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:280,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:281,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:282,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:284,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:287,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:288,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:289,1
    - Dst: fu_struct_steelseries_fizz_read_access_file_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:291,1
    - Dst: fu_struct_steelseries_fizz_read_access_file_req_set_cmd
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:292,1
    - Dst: fu_struct_steelseries_fizz_read_access_file_req_set_filesystem
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:293,1
    - Dst: fu_struct_steelseries_fizz_read_access_file_req_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:294,1
    - Dst: fu_struct_steelseries_fizz_read_access_file_req_set_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:295,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:296,1
    - Dst: fu_struct_steelseries_fizz_read_access_file_req_set_offset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:297,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:299,1
    - Dst: fu_steelseries_fizz_request_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:300,1
    - Dst: fu_struct_steelseries_fizz_read_access_file_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:303,1
    - Dst: fu_struct_steelseries_fizz_read_access_file_res_get_data
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:309,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:310,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:310,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:311,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:316,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:320,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    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: 325
      start: 256
    functionDepth: 5
    functionLinenumber: 256
    functionLinenumberEnd: 325
    functionName: fu_steelseries_fizz_read_fs
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_struct_steelseries_fizz_read_access_file_req_set_id
    - fu_struct_steelseries_fizz_read_access_file_req_set_size
    - fu_chunk_get_data_sz
    - fu_struct_steelseries_fizz_read_access_file_res_parse
    - fu_struct_steelseries_fizz_read_access_file_res_get_data
    - fu_struct_steelseries_fizz_read_access_file_req_set_offset
    - g_ptr_array_index
    - fu_struct_steelseries_fizz_read_access_file_req_set_filesystem
    - fu_chunk_get_data_out
    - fu_progress_set_steps
    - fu_chunk_array_mutable_new
    - fu_progress_set_status
    - fu_struct_steelseries_fizz_read_access_file_req_set_cmd
    - fu_progress_step_done
    - fu_struct_steelseries_fizz_read_access_file_req_new
    - fu_chunk_get_address
    - fu_progress_set_id
    - fu_steelseries_fizz_request_response
    - fu_memcpy_safe
    - g_autoptr
    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:330,1
    - Dst: FU_DEVICE
      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: 4
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuSteelseriesFizz*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 336
    functionName: fu_steelseries_fizz_get_paired_status
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_steelseries_fizz_impl_get_paired_status
    - FU_STEELSERIES_FIZZ_IMPL
    - fu_device_get_proxy
    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: fu_steelseries_fizz_impl_get_connection_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:346,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuSteelseriesFizz*
    - FuSteelseriesFizzConnectionStatus*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 349
    functionName: fu_steelseries_fizz_get_connection_status
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 1
    functionsReached:
    - FU_DEVICE
    - FU_STEELSERIES_FIZZ_IMPL
    - fu_steelseries_fizz_impl_get_connection_status
    - fu_device_get_proxy
    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_has_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:357,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:357,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:361,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:361,1
    - Dst: fu_steelseries_fizz_get_paired_status
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:364,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:365,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:371,1
    - Dst: fu_steelseries_fizz_tunnel_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:372,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:374,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:374,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:377,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:377,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:378,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:378,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:378,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSteelseriesFizz*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 351
    functionDepth: 5
    functionLinenumber: 351
    functionLinenumberEnd: 383
    functionName: fu_steelseries_fizz_ensure_children
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_fizz_get_paired_status
    - fu_steelseries_fizz_tunnel_new
    - fu_device_add_child
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_device_has_flag
    - fu_device_get_proxy
    - fu_device_set_proxy
    - g_autoptr
    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:388,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:389,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:391,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:395,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:396,1
    - Dst: fu_steelseries_fizz_reset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:400,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:406,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:407,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 385
    functionDepth: 6
    functionLinenumber: 385
    functionLinenumberEnd: 411
    functionName: fu_steelseries_fizz_detach
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_locker_new
    - fu_device_has_private_flag
    - fu_steelseries_fizz_reset
    - fu_device_has_flag
    - FU_STEELSERIES_FIZZ
    - g_autoptr
    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:416,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:417,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:418,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:420,1
    - Dst: fu_steelseries_fizz_reset
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:424,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:428,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:430,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 413
    functionDepth: 6
    functionLinenumber: 413
    functionLinenumberEnd: 435
    functionName: fu_steelseries_fizz_attach
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - fu_device_locker_new
    - fu_steelseries_fizz_reset
    - fu_device_remove_flag
    - FU_STEELSERIES_FIZZ
    - g_autoptr
    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:440,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:444,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:447,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:450,1
    - Dst: fu_steelseries_fizz_ensure_children
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:451,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:455,1
    - Dst: fu_steelseries_fizz_impl_get_version
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:459,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:459,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:461,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:464,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:468,1
    - Dst: fu_steelseries_fizz_impl_get_serial
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:470,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:470,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:474,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:475,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 437
    functionDepth: 6
    functionLinenumber: 437
    functionLinenumberEnd: 479
    functionName: fu_steelseries_fizz_setup
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_steelseries_fizz_ensure_children
    - fu_steelseries_fizz_impl_get_version
    - fu_steelseries_fizz_impl_get_serial
    - fu_device_add_private_flag
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - fu_device_set_serial
    - fu_device_has_flag
    - FU_STEELSERIES_FIZZ
    - fu_device_get_proxy
    - g_autoptr
    - FU_STEELSERIES_FIZZ_IMPL
    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:495,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:497,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:499,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:500,1
    - Dst: fu_progress_add_step
      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_firmware_get_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:508,1
    - Dst: fu_bytes_get_data_safe
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:511,1
    - Dst: fu_steelseries_fizz_erase_fs
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:514,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:515,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:518,1
    - Dst: fu_steelseries_fizz_write_fs
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:519,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:524,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:526,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:529,1
    - Dst: fu_steelseries_fizz_get_crc32_fs
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:531,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:538,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:542,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:543,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:543,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:547,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: 551
      start: 481
    functionDepth: 6
    functionLinenumber: 481
    functionLinenumberEnd: 551
    functionName: fu_steelseries_fizz_write_firmware_fs
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 1
    functionsReached:
    - fu_steelseries_fizz_write_fs
    - fu_firmware_get_bytes
    - fu_progress_add_step
    - fu_device_get_name
    - fu_progress_step_done
    - g_prefix_error
    - FU_DEVICE
    - fu_steelseries_fizz_get_crc32_fs
    - fu_steelseries_fizz_erase_fs
    - g_warning
    - fu_bytes_get_data_safe
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:560,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:565,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:567,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:571,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:574,1
    - Dst: fu_steelseries_fizz_impl_get_fs_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:575,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:575,1
    - Dst: fu_steelseries_fizz_impl_get_file_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:580,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:580,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:586,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:587,1
    - Dst: fu_steelseries_fizz_write_firmware_fs
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:589,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:594,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:598,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 553
    functionDepth: 7
    functionLinenumber: 553
    functionLinenumberEnd: 602
    functionName: fu_steelseries_fizz_write_firmware
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_fizz_impl_get_fs_id
    - fu_device_locker_new
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_device_has_private_flag
    - fu_steelseries_fizz_impl_get_file_id
    - fu_steelseries_fizz_write_firmware_fs
    - FU_STEELSERIES_FIZZ
    - fu_device_get_proxy
    - g_autoptr
    - fu_progress_get_child
    - FU_STEELSERIES_FIZZ_IMPL
    - fu_progress_set_id
    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:613,1
    - Dst: fu_steelseries_firmware_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:613,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:614,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:617,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:618,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:620,1
    - Dst: fu_steelseries_fizz_read_fs
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:621,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:627,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:629,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:632,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:634,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:635,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:635,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:636,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:640,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: 641
      start: 604
    functionDepth: 6
    functionLinenumber: 604
    functionLinenumberEnd: 641
    functionName: fu_steelseries_fizz_read_firmware_fs
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 1
    functionsReached:
    - fu_steelseries_firmware_new
    - fu_steelseries_fizz_read_fs
    - fu_progress_add_step
    - g_steal_pointer
    - fu_progress_step_done
    - g_prefix_error
    - g_malloc0
    - fu_dump_raw
    - g_bytes_new_take
    - fu_firmware_parse_bytes
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:646,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:651,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:652,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:654,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:658,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:662,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:663,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:665,1
    - Dst: fu_steelseries_fizz_impl_get_fs_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:666,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:666,1
    - Dst: fu_steelseries_fizz_impl_get_file_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:671,1
    - Dst: FU_STEELSERIES_FIZZ_IMPL
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:671,1
    - Dst: fu_steelseries_fizz_read_firmware_fs
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:677,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:681,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:682,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:686,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:689,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 643
    functionDepth: 7
    functionLinenumber: 643
    functionLinenumberEnd: 690
    functionName: fu_steelseries_fizz_read_firmware
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_fizz_read_firmware_fs
    - fu_progress_add_step
    - fu_steelseries_fizz_impl_get_fs_id
    - fu_device_locker_new
    - fu_progress_step_done
    - g_steal_pointer
    - fu_device_has_private_flag
    - fu_steelseries_fizz_impl_get_file_id
    - fu_device_get_firmware_size_max
    - FU_STEELSERIES_FIZZ
    - fu_device_get_proxy
    - g_autoptr
    - fu_progress_get_child
    - FU_STEELSERIES_FIZZ_IMPL
    - fu_progress_set_id
    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:695,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:696,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:697,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:698,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:699,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 701
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesFizzClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 714
    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:719,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:719,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:720,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:720,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:721,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:721,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:722,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:722,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:723,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:723,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:724,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:724,1
    - Dst: fu_device_add_private_flag
      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_private_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_private_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_protocol
      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_set_remove_delay
      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_set_firmware_gtype
      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_set_proxy_gtype
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:732,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c:732,1
    - Dst: fu_device_set_priority
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSteelseriesFizz*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 716
    functionDepth: 6
    functionLinenumber: 716
    functionLinenumberEnd: 734
    functionName: fu_steelseries_fizz_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_priority
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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_return_val_if_fail
    - g_set_error_literal
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - 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_return_val_if_fail
    - g_set_error_literal
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - 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_return_val_if_fail
    - g_set_error_literal
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - 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_return_val_if_fail
    - g_set_error_literal
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - 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_return_val_if_fail
    - g_set_error_literal
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - 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_return_val_if_fail
    - g_set_error_literal
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - 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_return_val_if_fail
    - g_set_error_literal
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - 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_return_val_if_fail
    - g_set_error_literal
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - 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:
    - g_return_val_if_fail
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - 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_return_val_if_fail
    - g_set_error_literal
    - FU_IS_STEELSERIES_FIZZ_IMPL
    - 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: 4
    functionLinenumber: 18
    functionLinenumberEnd: 74
    functionName: fu_steelseries_firmware_parse
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-firmware.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_input_stream_read_u32
    - fu_input_stream_size
    - g_set_error
    - g_set_error_literal
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - FU_STEELSERIES_FIRMWARE
    - g_autoptr
    - fu_partial_input_stream_new
    - fu_input_stream_compute_crc32
    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_xmlb_builder_insert_kx
    - FU_STEELSERIES_FIRMWARE
    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:
    - FU_FIRMWARE
    - g_object_new
    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_context_add_quirk_key
      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_device_gtype
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:46,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:47,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: fu_steelseries_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_gtype
    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:56,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:56,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:58,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:59,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - serial
    argTypes:
    - FuSteelseriesPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: fu_steelseries_plugin_find_device_by_serial
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - FU_PLUGIN
    - fu_plugin_get_devices
    - fu_device_get_serial
    - g_ptr_array_index
    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:68,1
    - Dst: fu_steelseries_plugin_find_device_by_serial
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:70,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:70,1
    - Dst: fu_device_set_equivalent_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:72,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuSteelseriesPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: fu_steelseries_plugin_device_added_all
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_id
    - fu_device_get_serial
    - fu_device_set_equivalent_id
    - fu_steelseries_plugin_find_device_by_serial
    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:79,1
    - Dst: fu_device_get_children
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:80,1
    - Dst: fu_steelseries_plugin_device_added_all
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:83,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:85,1
    - Dst: fu_steelseries_plugin_device_added_all
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 4
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: fu_steelseries_plugin_device_added
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_children
    - FU_STEELSERIES_PLUGIN
    - fu_steelseries_plugin_device_added_all
    - g_ptr_array_index
    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:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 96
    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_literal
      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: 4
    functionLinenumber: 28
    functionLinenumberEnd: 87
    functionName: fu_steelseries_fizz_hid_command_cb
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c
    functionUses: 0
    functionsReached:
    - fu_struct_steelseries_fizz_hid_response_parse
    - g_set_error
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_dump_raw
    - fu_udev_device_pread
    - fu_udev_device_pwrite
    - fu_struct_steelseries_fizz_hid_response_get_report_id
    - g_error_matches
    - memset
    - g_byte_array_append
    - fu_memcpy_safe
    - FU_UDEV_DEVICE
    - g_autoptr
    - g_propagate_prefixed_error
    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: 3
    functionLinenumber: 89
    functionLinenumberEnd: 110
    functionName: fu_steelseries_fizz_hid_command
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c
    functionUses: 0
    functionsReached:
    - g_steal_pointer
    - fu_device_retry_full
    - FU_DEVICE
    - g_byte_array_new
    - g_autoptr
    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_literal
      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:131,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSteelseriesFizzHid*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 133
    functionName: fu_steelseries_fizz_hid_ensure_version
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c
    functionUses: 0
    functionsReached:
    - fu_strsafe
    - fu_device_set_version
    - g_set_error_literal
    - FU_DEVICE
    - fu_steelseries_fizz_hid_command
    - g_autoptr
    - fu_struct_steelseries_fizz_hid_get_version_req_new
    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:138,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:142,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:147,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:148,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:149,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:150,1
    - Dst: fwupd_request_set_message
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:151,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:152,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 135
    functionDepth: 6
    functionLinenumber: 135
    functionLinenumberEnd: 158
    functionName: fu_steelseries_fizz_hid_detach
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fwupd_request_new
    - fwupd_request_set_message
    - fwupd_request_set_kind
    - fwupd_request_set_id
    - g_strdup_printf
    - fu_device_get_name
    - fu_device_emit_request
    - g_autoptr
    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:163,1
    - Dst: fu_steelseries_fizz_hid_ensure_version
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 160
    functionDepth: 5
    functionLinenumber: 160
    functionLinenumberEnd: 170
    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:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesFizzHidClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 179
    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:184,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:184,1
    - Dst: fu_device_add_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_udev_device_add_open_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:186,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:186,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:187,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:187,1
    - Dst: fu_device_add_request_flag
      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
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:189,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:189,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:190,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:190,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:191,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSteelseriesFizzHid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 181
    functionDepth: 6
    functionLinenumber: 181
    functionLinenumberEnd: 192
    functionName: fu_steelseries_fizz_hid_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-fizz-hid.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_set_physical_id
    - FU_DEVICE
    - fu_device_add_request_flag
    - FU_UDEV_DEVICE
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    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: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:33,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:33,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:46,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:50,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:57,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:57,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:65,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:69,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:76,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:77,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 81
    functionName: fu_steelseries_mouse_setup
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_set_error
    - g_prefix_error_literal
    - fu_usb_device_interrupt_transfer
    - g_strdup_printf
    - FU_DEVICE
    - FU_USB_DEVICE
    - FU_DEVICE_CLASS
    - fu_usb_device_control_transfer
    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:86,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:86,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:87,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSteelseriesMouse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: fu_steelseries_mouse_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-mouse.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_version_format
    - FU_USB_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:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesMouseClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    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: 1547
    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_number
    argTypes:
    - FuSteelseriesDevice*
    - gint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: fu_steelseries_device_set_iface_number
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-device.c
    functionUses: 1
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_device_set_iface_number(FuSteelseriesDevice *self,
      gint iface_number)
  - 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_literal
      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: 4
    functionLinenumber: 29
    functionLinenumberEnd: 69
    functionName: fu_steelseries_device_request
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-device.c
    functionUses: 12
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    - g_prefix_error_literal
    - fu_dump_raw
    - fu_usb_device_control_transfer
    - g_byte_array_new
    - g_byte_array_append
    - FU_USB_DEVICE
    - g_autoptr
    - fu_byte_array_set_size
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_device_request(FuSteelseriesDevice *self, const
      GByteArray *buf, GError **error)
  - BBCount: 4
    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: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:80,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:83,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:84,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:84,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:92,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:95,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:97,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSteelseriesDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 107
    functionName: fu_steelseries_device_response
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-device.c
    functionUses: 7
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_dump_raw
    - fu_usb_device_interrupt_transfer
    - g_byte_array_new
    - FU_USB_DEVICE
    - g_autoptr
    - fu_byte_array_set_size
    - GET_PRIVATE
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_steelseries_device_response(FuSteelseriesDevice *self, GError **error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:116,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - item
    - number
    argTypes:
    - gconstpointer
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 125
    functionName: fu_steelseries_device_find_cmd_iface
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_class
    - fu_usb_interface_get_number
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_device_find_cmd_iface(gconstpointer item, gconstpointer
      number)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:130,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:137,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:138,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:140,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:140,1
    - Dst: g_ptr_array_find_with_equal_func
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:146,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:150,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:157,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:158,1
    - Dst: fu_usb_interface_get_endpoints
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:160,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:163,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:170,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:171,1
    - Dst: fu_usb_endpoint_get_maximum_packet_size
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:172,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:177,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 127
    functionDepth: 9
    functionLinenumber: 127
    functionLinenumberEnd: 181
    functionName: fu_steelseries_device_probe
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_endpoints
    - FU_STEELSERIES_DEVICE
    - fu_usb_interface_get_number
    - fu_usb_endpoint_get_maximum_packet_size
    - fu_usb_device_get_interfaces
    - g_set_error
    - g_set_error_literal
    - fu_usb_device_add_interface
    - fu_usb_endpoint_get_address
    - g_ptr_array_index
    - FU_USB_DEVICE
    - g_autoptr
    - g_ptr_array_find_with_equal_func
    - GET_PRIVATE
    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:186,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:187,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:188,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: fu_steelseries_device_to_string
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-device.c
    functionUses: 0
    functionsReached:
    - FU_STEELSERIES_DEVICE
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_steelseries_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:198,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:201,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:202,1
    - Dst: fu_steelseries_device_set_iface_number
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:205,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:205,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 211
    functionName: fu_steelseries_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-device.c
    functionUses: 0
    functionsReached:
    - FU_STEELSERIES_DEVICE
    - g_strcmp0
    - fu_strtoull
    - g_set_error_literal
    - fu_steelseries_device_set_iface_number
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_steelseries_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: GET_PRIVATE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:216,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:218,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:218,1
    - Dst: fu_steelseries_device_set_iface_number
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:219,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-device.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSteelseriesDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 220
    functionName: fu_steelseries_device_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-device.c
    functionUses: 0
    functionsReached:
    - FU_STEELSERIES_DEVICE
    - fu_device_register_private_flag
    - FU_DEVICE
    - fu_steelseries_device_set_iface_number
    - GET_PRIVATE
    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:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 229
    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_literal
      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: 5
    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_STEELSERIES_DEVICE
    - fu_struct_steelseries_gamepad_erase_req_new
    - fu_device_sleep
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_struct_steelseries_gamepad_erase_req_set_length
    - fu_struct_steelseries_gamepad_erase_req_set_magic3
    - g_autoptr
    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_response
    - fu_steelseries_device_request
    - FU_STEELSERIES_GAMEPAD
    - FU_STEELSERIES_DEVICE
    - fu_struct_steelseries_gamepad_get_versions_res_get_bootloader_version
    - fu_version_from_uint16
    - fu_device_set_version_raw
    - fu_device_add_flag
    - fu_device_set_version_bootloader
    - fu_struct_steelseries_gamepad_get_versions_res_parse
    - fu_struct_steelseries_gamepad_get_versions_req_new
    - FU_DEVICE
    - fu_struct_steelseries_gamepad_get_versions_res_get_runtime_version
    - fu_device_has_flag
    - g_autoptr
    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_device_add_flag
    - fu_steelseries_device_request
    - FU_STEELSERIES_GAMEPAD
    - FU_STEELSERIES_DEVICE
    - g_debug
    - fu_device_has_flag
    - g_autoptr
    - fu_struct_steelseries_gamepad_reset_req_new
    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_device_add_flag
    - fu_steelseries_device_request
    - FU_STEELSERIES_GAMEPAD
    - FU_STEELSERIES_DEVICE
    - g_debug
    - fu_device_has_flag
    - fu_struct_steelseries_gamepad_bootloader_mode_req_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_steelseries_gamepad_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 4
    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_safe
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:142,1
    - Dst: fu_struct_steelseries_gamepad_write_chunk_req_set_checksum
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:149,1
    - Dst: fu_steelseries_device_request
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:152,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:152,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:153,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:153,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:158,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - self
    - chunk
    - checksum
    - error
    argTypes:
    - FuSteelseriesGamepad*
    - FuChunk*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 125
    functionDepth: 5
    functionLinenumber: 125
    functionLinenumberEnd: 160
    functionName: fu_steelseries_gamepad_write_firmware_chunk
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_idx
    - fu_steelseries_device_request
    - FU_STEELSERIES_DEVICE
    - fu_struct_steelseries_gamepad_write_chunk_req_set_checksum
    - fu_struct_steelseries_gamepad_write_chunk_req_set_data
    - fu_chunk_get_data_sz
    - fu_device_sleep
    - fu_struct_steelseries_gamepad_write_chunk_req_set_block_id
    - g_prefix_error
    - FU_DEVICE
    - fu_chunk_get_data
    - fu_struct_steelseries_gamepad_write_chunk_req_new
    - fu_sum16_safe
    - g_autoptr
    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:169,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:170,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:170,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:172,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:173,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:175,1
    - Dst: fu_steelseries_gamepad_write_firmware_chunk
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:178,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:180,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: 184
      start: 162
    functionDepth: 6
    functionLinenumber: 162
    functionLinenumberEnd: 184
    functionName: fu_steelseries_gamepad_write_firmware_chunks
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_steelseries_gamepad_write_firmware_chunk
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:189,1
    - Dst: fu_struct_steelseries_gamepad_write_checksum_req_new
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:190,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:191,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:192,1
    - Dst: fu_struct_steelseries_gamepad_write_checksum_req_set_checksum
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:194,1
    - Dst: fu_steelseries_device_request
      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: g_prefix_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:196,1
    - Dst: fu_steelseries_device_response
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:199,1
    - Dst: FU_STEELSERIES_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:199,1
    - Dst: fu_struct_steelseries_gamepad_write_checksum_res_parse
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:204,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - self
    - checksum
    - error
    argTypes:
    - FuSteelseriesGamepad*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 186
    functionDepth: 5
    functionLinenumber: 186
    functionLinenumberEnd: 214
    functionName: fu_steelseries_gamepad_write_checksum
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
    functionUses: 0
    functionsReached:
    - fu_steelseries_device_response
    - FU_STEELSERIES_DEVICE
    - fu_struct_steelseries_gamepad_write_checksum_req_set_checksum
    - fu_steelseries_device_request
    - g_prefix_error_literal
    - g_autoptr
    - fu_struct_steelseries_gamepad_write_checksum_res_parse
    - 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:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:225,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:226,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:228,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:232,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:236,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:237,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:244,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:245,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:246,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:247,1
    - Dst: fu_steelseries_gamepad_cmd_erase
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:250,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:252,1
    - Dst: fu_steelseries_gamepad_write_firmware_chunks
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:254,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:256,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:260,1
    - Dst: fu_steelseries_gamepad_write_checksum
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:262,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:264,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: 267
      start: 216
    functionDepth: 7
    functionLinenumber: 216
    functionLinenumberEnd: 267
    functionName: fu_steelseries_gamepad_write_firmware
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
    functionUses: 0
    functionsReached:
    - FU_STEELSERIES_GAMEPAD
    - fu_firmware_get_bytes
    - fu_progress_add_step
    - g_set_error_literal
    - fu_progress_step_done
    - fu_steelseries_gamepad_write_checksum
    - fu_steelseries_gamepad_write_firmware_chunks
    - g_autoptr
    - fu_chunk_array_length
    - fu_steelseries_gamepad_cmd_erase
    - fu_chunk_array_new_from_bytes
    - fu_progress_get_child
    - fu_progress_set_id
    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:272,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:273,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:274,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:275,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:276,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 278
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:283,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 284
    functionName: fu_steelseries_gamepad_convert_version
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16
    - fu_device_get_version_format
    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:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSteelseriesGamepadClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 296
    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_device_set_remove_delay
      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_set_version_format
      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_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_private_flag
      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_add_private_flag
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:305,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:305,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:306,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:306,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:308,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSteelseriesGamepad*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 298
    functionDepth: 6
    functionLinenumber: 298
    functionLinenumberEnd: 311
    functionName: fu_steelseries_gamepad_init
    functionSourceFile: /src/fwupd/plugins/steelseries/fu-steelseries-gamepad.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_set_firmware_size_max
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    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_udev_subsystem
      Src: /src/fwupd/plugins/dfu/fu-dfu-plugin.c:31,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dfu/fu-dfu-plugin.c:32,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-plugin.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: fu_dfu_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_gtype
    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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDfuPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    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_steal_pointer
    - g_byte_array_new
    - fu_dfu_target_download_chunk
    - g_error_matches
    - g_autoptr
    - g_propagate_prefixed_error
    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_literal
      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
    - g_prefix_error_literal
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - fu_dfu_target_download_chunk
    - g_autoptr
    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
    - g_prefix_error
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - fu_dfu_target_download_chunk
    - g_autoptr
    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: 18
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      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: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:104,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:104,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:104,1
    - Dst: fu_progress_set_id
      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_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:111,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:112,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:113,1
    - Dst: fu_dfu_target_get_sector_for_addr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:116,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:118,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:125,1
    - Dst: fu_dfu_sector_get_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:125,1
    - Dst: fu_dfu_sector_has_cap
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:126,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:127,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:136,1
    - Dst: fu_dfu_target_stm_set_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:137,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:137,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:139,1
    - Dst: fu_dfu_device_abort
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:142,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:144,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:147,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:150,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:150,1
    - Dst: fu_dfu_target_upload_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:154,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:163,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:164,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:168,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:169,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:170,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:176,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:187,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:187,1
    - Dst: MIN
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:188,1
    - Dst: fu_dfu_device_get_transfer_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:193,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:200,1
    - Dst: fu_dfu_device_abort
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:203,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:205,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:210,1
    - Dst: fu_dfu_utils_bytes_join_array
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:222,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:226,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:230,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:232,1
    - Dst: fu_chunk_set_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:233,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 80
    argCount: 6
    argNames:
    - target
    - address
    - expected_size
    - maximum_size
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint32
    - gsize
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 235
    functionName: fu_dfu_target_stm_upload_element
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
    functionUses: 0
    functionsReached:
    - FU_DFU_DEVICE
    - fu_dfu_device_abort
    - fu_chunk_set_address
    - fu_dfu_target_stm_set_address
    - fu_progress_new
    - g_debug
    - fu_dfu_sector_has_cap
    - fu_device_get_proxy
    - fu_progress_set_percentage_full
    - g_ptr_array_new_with_free_func
    - MIN
    - fu_dfu_utils_bytes_join_array
    - g_bytes_ref
    - fu_progress_add_step
    - fu_progress_step_done
    - FU_DEVICE
    - fu_dfu_sector_get_id
    - fu_bytes_new_offset
    - fu_progress_get_child
    - fu_progress_set_id
    - g_set_error
    - fu_dfu_target_get_sector_for_addr
    - g_ptr_array_add
    - g_prefix_error
    - fu_dfu_device_get_transfer_size
    - g_bytes_get_size
    - fu_dfu_target_upload_chunk
    - fu_size_checked_inc
    - g_autoptr
    - fu_chunk_bytes_new
    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:253,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:253,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:256,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:257,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:258,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:259,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:264,1
    - Dst: fu_dfu_target_check_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - target
    - address
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint32
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 266
    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
    - g_prefix_error
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - fu_dfu_target_download_chunk
    - g_autoptr
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:275,1
    - Dst: g_hash_table_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:275,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:280,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:281,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:281,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:284,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:285,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:289,1
    - Dst: fu_dfu_target_get_sector_for_addr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:296,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:298,1
    - Dst: fu_dfu_sector_has_cap
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:305,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:306,1
    - Dst: fu_dfu_sector_has_cap
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:315,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:316,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:317,1
    - Dst: GINT_TO_POINTER
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:317,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:318,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:319,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:320,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:321,1
    - Dst: fu_dfu_sector_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:322,1
    - Dst: fu_dfu_sector_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:324,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:325,1
    - Dst: fu_dfu_sector_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:331,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 5
    argNames:
    - target
    - chunks
    - sectors_array
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - FuChunkArray*
    - GPtrArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 337
    functionName: fu_dfu_target_stm_download_element1
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
    functionUses: 0
    functionsReached:
    - g_hash_table_insert
    - fu_dfu_sector_get_address
    - g_debug
    - g_set_error
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_dfu_sector_has_cap
    - fu_dfu_target_get_sector_for_addr
    - g_hash_table_lookup
    - GINT_TO_POINTER
    - g_hash_table_new
    - g_ptr_array_add
    - g_set_error_literal
    - fu_dfu_sector_get_size
    - fu_chunk_array_length
    - g_autoptr
    - fu_chunk_get_address
    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:346,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:347,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:350,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:351,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:351,1
    - Dst: fu_dfu_target_stm_erase_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:352,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:353,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:354,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:357,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: 362
      start: 339
    functionDepth: 4
    functionLinenumber: 339
    functionLinenumberEnd: 362
    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
    - g_debug
    - fu_dfu_target_stm_erase_address
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    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:374,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:375,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:375,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:376,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:378,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:379,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:379,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:380,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:383,1
    - Dst: fu_dfu_target_get_sector_for_addr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:388,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:388,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:390,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:394,1
    - Dst: fu_dfu_sector_get_zone
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:399,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:400,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:400,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:401,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:401,1
    - Dst: fu_dfu_target_stm_set_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:402,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:403,1
    - Dst: fu_dfu_sector_get_zone
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:407,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:411,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:412,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:413,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:414,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:417,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:418,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:422,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:424,1
    - Dst: fu_dfu_target_check_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:429,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:433,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: 438
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 438
    functionName: fu_dfu_target_stm_download_element3
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
    functionUses: 0
    functionsReached:
    - fu_dfu_target_stm_set_address
    - fu_progress_new
    - fu_byte_array_append_bytes
    - g_debug
    - fu_progress_set_steps
    - g_byte_array_new
    - fu_chunk_get_bytes
    - fu_progress_step_done
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_chunk_get_address
    - fu_progress_set_id
    - g_set_error
    - fu_chunk_array_index
    - fu_dfu_target_get_sector_for_addr
    - g_prefix_error
    - fu_dfu_target_check_status
    - fu_dfu_sector_get_zone
    - fu_dfu_target_download_chunk
    - g_bytes_get_size
    - g_autoptr
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:448,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:449,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:450,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:450,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:453,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:454,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:455,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:456,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:459,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:459,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:459,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:462,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:463,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:464,1
    - Dst: fu_dfu_device_get_transfer_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:466,1
    - Dst: fu_dfu_target_stm_download_element1
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:467,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:470,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:473,1
    - Dst: fu_dfu_target_stm_download_element2
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:476,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:478,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:481,1
    - Dst: fu_dfu_target_stm_download_element3
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:484,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:487,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c:490,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 5
    argNames:
    - target
    - chk
    - progress
    - flags
    - error
    argTypes:
    - FuDfuTarget*
    - FuChunk*
    - FuProgress*
    - FuDfuTargetTransferFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 440
    functionDepth: 5
    functionLinenumber: 440
    functionLinenumberEnd: 494
    functionName: fu_dfu_target_stm_download_element
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-stm.c
    functionUses: 0
    functionsReached:
    - FU_DFU_DEVICE
    - fu_progress_add_step
    - fu_chunk_array_new_from_bytes
    - g_ptr_array_new
    - fu_dfu_target_stm_download_element3
    - fu_progress_step_done
    - FU_DEVICE
    - fu_dfu_target_stm_download_element2
    - fu_chunk_get_address
    - fu_dfu_device_get_transfer_size
    - fu_device_get_proxy
    - fu_chunk_get_bytes
    - g_autoptr
    - fu_progress_get_child
    - fu_dfu_target_stm_download_element1
    - fu_progress_set_id
    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: 499
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 499
    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:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDfuTargetStmClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 509
    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:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 517
    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: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 1553
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:45,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:46,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:47,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:47,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:48,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuTarget*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: fu_dfu_target_init
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - 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:54,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:55,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:57,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: fu_dfu_target_finalize
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_unref
    - FU_DFU_TARGET
    - G_OBJECT_CLASS
    - GET_PRIVATE
    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:65,1
    - Dst: GET_PRIVATE
      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: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:68,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:70,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:71,1
    - Dst: fu_dfu_sector_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:72,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: fu_dfu_target_to_string
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - FU_DFU_TARGET
    - fu_dfu_sector_to_string
    - fwupd_codec_string_append
    - g_strdup_printf
    - fwupd_codec_string_append_hex
    - g_ptr_array_index
    - GET_PRIVATE
    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:80,1
    - Dst: g_ptr_array_index
      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:84,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:86,1
    - Dst: fu_dfu_sector_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - self
    - addr
    argTypes:
    - FuDfuTarget*
    - guint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 91
    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
    - fu_dfu_sector_get_size
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: FuDfuSector
    signature: 'FuDfuSector *

      fu_dfu_target_get_sector_for_addr(FuDfuTarget *self, guint32 addr)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:101,1
    - Dst: g_ascii_strtoull
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:110,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:112,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:122,1
    - Dst: g_ascii_strtoull
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:131,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:133,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:142,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:142,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:145,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:164,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:197,1
    - Dst: fu_dfu_sector_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:209,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:215,1
    - Dst: fu_dfu_sector_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:218,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:220,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 76
    argCount: 6
    argNames:
    - self
    - dfuse_sector_id
    - addr
    - zone
    - number
    - error
    argTypes:
    - FuDfuTarget*
    - gchar*
    - guint32*
    - guint16
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 233
    functionName: fu_dfu_target_parse_sector
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_dfu_sector_new
    - g_ptr_array_add
    - fu_device_has_private_flag
    - g_ascii_strtoull
    - FU_DEVICE
    - fu_dfu_sector_get_size
    - fu_device_get_proxy
    - GET_PRIVATE
    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:238,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:239,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:246,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:249,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:256,1
    - Dst: fu_dfu_sector_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:257,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:264,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:272,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:275,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:276,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:276,1
    - Dst: g_strchomp
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:276,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:280,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:283,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:284,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:290,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:296,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:303,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:311,1
    - Dst: fu_dfu_target_parse_sector
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:313,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:319,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - self
    - alt_name
    - error
    argTypes:
    - FuDfuTarget*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 327
    functionName: fu_dfu_target_parse_sectors
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_strtoull
    - g_set_error_literal
    - fu_dfu_sector_new
    - g_ptr_array_add
    - g_ptr_array_set_size
    - g_prefix_error_literal
    - g_prefix_error
    - fu_device_set_name
    - g_strsplit
    - FU_DEVICE
    - fu_dfu_target_parse_sector
    - g_auto
    - g_str_has_prefix
    - g_strchomp
    - GET_PRIVATE
    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:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 343
    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: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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuTarget*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 359
    functionName: fu_dfu_target_get_sectors
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DFU_TARGET
    - 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:372,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:373,1
    - Dst: FU_IS_DFU_TARGET
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:373,1
    - Dst: FU_DFU_SECTOR
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:376,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuTarget*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 377
    functionName: fu_dfu_target_get_sector_default
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_DFU_SECTOR
    - FU_IS_DFU_TARGET
    - g_ptr_array_index
    - GET_PRIVATE
    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: 423
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 423
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      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_refresh
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:435,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:435,1
    - Dst: fu_dfu_device_get_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:439,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:439,1
    - Dst: fu_dfu_device_get_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:440,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:440,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:441,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:444,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:451,1
    - Dst: fu_dfu_device_get_download_timeout
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:452,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:452,1
    - Dst: fu_dfu_device_refresh
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:453,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:453,1
    - Dst: fu_dfu_device_get_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:458,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:458,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:459,1
    - Dst: fu_dfu_target_status_to_error_msg
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:462,1
    - Dst: fu_dfu_device_get_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:463,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:463,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDfuTarget*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 468
    functionName: fu_dfu_target_manifest_wait
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - FU_DFU_DEVICE
    - fu_dfu_device_get_state
    - g_debug
    - fu_dfu_device_refresh
    - fu_device_sleep
    - fu_dfu_device_get_download_timeout
    - g_set_error_literal
    - fu_dfu_device_get_status
    - fu_dfu_target_status_to_error_msg
    - FU_DEVICE
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_target_manifest_wait(FuDfuTarget *self, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:475,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:475,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:478,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:478,1
    - Dst: fu_dfu_device_refresh
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:481,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:481,1
    - Dst: fu_dfu_device_get_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:485,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:485,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:486,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:487,1
    - Dst: fu_dfu_device_get_download_timeout
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:487,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:487,1
    - Dst: fu_dfu_device_refresh
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:488,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:488,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:492,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:493,1
    - Dst: fu_dfu_device_get_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:502,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:502,1
    - Dst: fu_dfu_device_get_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:506,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:506,1
    - Dst: fu_dfu_device_get_version
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:507,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:507,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:509,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:516,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:525,1
    - Dst: fu_dfu_target_status_to_error_msg
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:528,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDfuTarget*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 530
    functionName: fu_dfu_target_check_status
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 4
    functionsReached:
    - FU_DFU_DEVICE
    - fu_dfu_device_get_version
    - fu_dfu_device_get_state
    - g_debug
    - fu_dfu_device_refresh
    - fu_device_sleep
    - fu_dfu_device_get_download_timeout
    - g_set_error_literal
    - fu_dfu_device_get_status
    - fu_dfu_target_status_to_error_msg
    - FU_DEVICE
    - g_timer_elapsed
    - fu_device_get_proxy
    - g_timer_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_target_check_status(FuDfuTarget *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:544,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:546,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:548,1
    - Dst: FU_IS_DFU_TARGET
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:548,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:549,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:552,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:552,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:555,1
    - Dst: fu_usb_device_set_interface_alt
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:556,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:557,1
    - Dst: fu_dfu_device_get_interface
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:558,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:558,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:561,1
    - Dst: fu_dfu_device_get_interface
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:566,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDfuTarget*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 573
    functionName: fu_dfu_target_use_alt_setting
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DFU_TARGET
    - fu_dfu_device_get_interface
    - FU_DFU_DEVICE
    - g_set_error
    - fu_usb_device_set_interface_alt
    - FU_DEVICE
    - fu_device_has_flag
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_target_use_alt_setting(FuDfuTarget *self, GError **error)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_TARGET_GET_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:587,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:588,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:591,1
    - Dst: FU_IS_DFU_TARGET
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:591,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:592,1
    - Dst: FuDfuTargetClass*::setup
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:600,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:605,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:605,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:609,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:615,1
    - Dst: strlen
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:616,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:617,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:625,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:625,1
    - Dst: fu_device_set_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_device_set_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:631,1
    - Dst: FU_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:634,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:634,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:637,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:637,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:640,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:640,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:643,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:653,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:653,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:656,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:656,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:657,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:657,1
    - Dst: fu_dfu_target_parse_sectors
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:662,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:663,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:663,1
    - Dst: fu_dfu_sector_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:671,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:677,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:678,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:678,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:679,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDfuTarget*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 584
    functionDepth: 4
    functionLinenumber: 584
    functionLinenumberEnd: 684
    functionName: fu_dfu_target_setup
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - fu_device_get_logical_id
    - fu_device_get_serial
    - FU_IS_DFU_TARGET
    - g_debug
    - fu_device_get_proxy
    - FuDfuTargetClass*::setup
    - GET_PRIVATE
    - fu_device_set_logical_id
    - fu_usb_device_get_string_descriptor
    - fu_dfu_sector_new
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_dfu_target_parse_sectors
    - g_return_val_if_fail
    - FU_DFU_TARGET_GET_CLASS
    - g_set_error
    - g_ptr_array_add
    - fu_device_has_private_flag
    - strlen
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_target_setup(FuDfuTarget *self, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:695,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:699,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:699,1
    - Dst: fu_dfu_device_get_timeout
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:703,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:703,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:706,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:707,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:707,1
    - Dst: fu_dfu_device_get_interface
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:713,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:713,1
    - Dst: fu_dfu_device_error_fixup
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:721,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:721,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:722,1
    - Dst: fu_dfu_device_get_version
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:732,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:732,1
    - Dst: fu_dfu_device_refresh
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:733,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:733,1
    - Dst: fu_dfu_device_get_download_timeout
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:738,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:738,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:739,1
    - Dst: fu_dfu_device_get_download_timeout
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:740,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:740,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:741,1
    - Dst: fu_dfu_device_get_download_timeout
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:742,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:742,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:743,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:743,1
    - Dst: fu_dfu_device_get_download_timeout
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:744,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:744,1
    - Dst: fu_dfu_target_check_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:748,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:749,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:753,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 6
    argNames:
    - self
    - index
    - buf
    - timeout_ms
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint16
    - GByteArray*
    - guint
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 686
    functionDepth: 4
    functionLinenumber: 686
    functionLinenumberEnd: 755
    functionName: fu_dfu_target_download_chunk
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 5
    functionsReached:
    - FU_DFU_DEVICE
    - fu_dfu_device_get_interface
    - g_debug
    - fu_dfu_device_refresh
    - fu_dfu_device_get_download_timeout
    - g_prefix_error_literal
    - g_assert_cmpint
    - fu_device_get_proxy
    - fu_progress_set_status
    - fu_usb_device_control_transfer
    - fu_dfu_device_get_version
    - fu_device_sleep
    - FU_DEVICE
    - fu_dfu_device_get_timeout
    - fu_dfu_device_error_fixup
    - FU_USB_DEVICE
    - fu_dump_raw
    - g_set_error
    - fu_dfu_target_check_status
    - g_autoptr
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:765,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:770,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:770,1
    - Dst: fu_dfu_device_get_transfer_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:774,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:774,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:776,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:777,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:777,1
    - Dst: fu_dfu_device_get_interface
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:783,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:783,1
    - Dst: fu_dfu_device_get_timeout
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:787,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:787,1
    - Dst: fu_dfu_device_error_fixup
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:791,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:791,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:792,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:801,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:803,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - self
    - index
    - buf_sz
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint16
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 757
    functionDepth: 4
    functionLinenumber: 757
    functionLinenumberEnd: 804
    functionName: fu_dfu_target_upload_chunk
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 1
    functionsReached:
    - FU_DFU_DEVICE
    - fu_dfu_device_get_interface
    - g_new0
    - g_set_error
    - fu_dump_raw
    - FU_DEVICE
    - g_bytes_new_take
    - fu_dfu_device_get_transfer_size
    - fu_dfu_device_get_timeout
    - fu_dfu_device_error_fixup
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_device_control_transfer
    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:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - alt_idx
    argTypes:
    - FuDfuTarget*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 811
    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:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - alt_setting
    argTypes:
    - FuDfuTarget*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 818
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_TARGET_GET_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:824,1
    - Dst: fu_dfu_target_setup
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:827,1
    - Dst: FuDfuTargetClass*::attach
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:832,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:835,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:835,1
    - Dst: fu_dfu_device_reset
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:838,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:838,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 820
    functionDepth: 5
    functionLinenumber: 820
    functionLinenumberEnd: 839
    functionName: fu_dfu_target_attach
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - FU_DFU_DEVICE
    - FU_DFU_TARGET_GET_CLASS
    - fu_dfu_target_setup
    - FU_DEVICE
    - fu_dfu_device_reset
    - fu_device_get_proxy
    - FuDfuTargetClass*::attach
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_target_attach(FuDfuTarget *self, FuProgress *progress,
      GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:853,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:854,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:856,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:856,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:856,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:861,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:864,1
    - Dst: fu_dfu_target_upload_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:869,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:878,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:880,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:892,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:893,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:897,1
    - Dst: fu_dfu_device_get_transfer_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:900,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:907,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:919,1
    - Dst: fu_dfu_utils_bytes_join_array
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:922,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:925,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 6
    argNames:
    - self
    - address
    - expected_size
    - maximum_size
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint32
    - gsize
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 841
    functionDepth: 5
    functionLinenumber: 841
    functionLinenumberEnd: 926
    functionName: fu_dfu_target_upload_element_dfu
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - FU_DFU_DEVICE
    - fu_progress_set_percentage
    - g_debug
    - g_set_error
    - g_ptr_array_add
    - fu_progress_set_percentage_full
    - FU_DEVICE
    - fu_dfu_device_get_transfer_size
    - g_bytes_get_size
    - fu_device_get_proxy
    - fu_dfu_target_upload_chunk
    - g_ptr_array_new_with_free_func
    - fu_progress_set_status
    - g_autoptr
    - fu_dfu_utils_bytes_join_array
    - fu_chunk_bytes_new
    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:936,1
    - Dst: FuDfuTargetClass*::upload_element
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:940,1
    - Dst: fu_dfu_target_upload_element_dfu
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:943,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: 949
      start: 928
    functionDepth: 6
    functionLinenumber: 928
    functionLinenumberEnd: 949
    functionName: fu_dfu_target_upload_element
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - fu_dfu_target_upload_element_dfu
    - FuDfuTargetClass*::upload_element
    - FU_DFU_TARGET_GET_CLASS
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:954,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:957,1
    - Dst: fu_dfu_sector_get_zone
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:959,1
    - Dst: fu_dfu_sector_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:963,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:965,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - zone
    argTypes:
    - FuDfuTarget*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 971
    functionName: fu_dfu_target_get_size_of_zone
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - fu_dfu_sector_get_zone
    - g_warning
    - fu_dfu_sector_get_size
    - g_ptr_array_index
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_dfu_target_get_size_of_zone(FuDfuTarget *self, guint16 zone)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:981,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:987,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:989,1
    - Dst: FU_IS_DFU_TARGET
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:989,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:990,1
    - Dst: fu_dfu_target_setup
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:993,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:997,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:997,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1000,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1001,1
    - Dst: fu_dfu_target_use_alt_setting
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1009,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1014,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1022,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1023,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1023,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1023,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1024,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1027,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1028,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1030,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1033,1
    - Dst: fu_dfu_sector_get_zone
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1034,1
    - Dst: fu_dfu_target_get_size_of_zone
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1039,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1043,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1044,1
    - Dst: fu_dfu_target_upload_element
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1046,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1047,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1050,1
    - Dst: fu_firmware_add_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1056,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1057,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1061,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 5
    argNames:
    - self
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDfuTarget*
    - FuFirmware*
    - FuProgress*
    - FuDfuTargetTransferFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 974
    functionDepth: 7
    functionLinenumber: 974
    functionLinenumberEnd: 1062
    functionName: fu_dfu_target_upload
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - fu_device_get_logical_id
    - FU_IS_DFU_TARGET
    - g_ptr_array_index
    - fu_dfu_target_use_alt_setting
    - fu_dfu_sector_get_address
    - g_debug
    - fu_firmware_add_image
    - g_set_error_literal
    - fu_progress_set_steps
    - fu_device_get_proxy
    - GET_PRIVATE
    - fu_firmware_add_chunk
    - fu_progress_step_done
    - fu_firmware_set_idx
    - FU_DEVICE
    - fu_firmware_new
    - fu_dfu_target_upload_element
    - fu_progress_get_child
    - fu_progress_set_id
    - g_return_val_if_fail
    - fu_firmware_set_id
    - fu_dfu_target_setup
    - fu_device_has_private_flag
    - fu_dfu_sector_get_zone
    - fu_dfu_target_get_size_of_zone
    - g_autoptr
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1074,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1076,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1076,1
    - Dst: fu_dfu_device_get_transfer_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1079,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1079,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1082,1
    - Dst: ceil
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1083,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1083,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1085,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1091,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1095,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1095,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1102,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1103,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1106,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1109,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1111,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1112,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1113,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1118,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 5
    argNames:
    - self
    - chk
    - progress
    - flags
    - error
    argTypes:
    - FuDfuTarget*
    - FuChunk*
    - FuProgress*
    - FuDfuTargetTransferFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1064
    functionDepth: 5
    functionLinenumber: 1064
    functionLinenumberEnd: 1123
    functionName: fu_dfu_target_download_element_dfu
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - FU_DFU_DEVICE
    - fu_bytes_new_offset
    - fu_byte_array_append_bytes
    - g_debug
    - g_set_error_literal
    - fu_progress_set_percentage_full
    - g_prefix_error
    - FU_DEVICE
    - ceil
    - fu_dfu_device_get_transfer_size
    - g_byte_array_new
    - fu_dfu_target_download_chunk
    - g_bytes_get_size
    - fu_device_get_proxy
    - fu_chunk_get_bytes
    - fu_progress_set_status
    - g_autoptr
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_TARGET_GET_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1133,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1136,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1136,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1140,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1141,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1142,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1143,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1145,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1146,1
    - Dst: FuDfuTargetClass*::download_element
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1151,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1153,1
    - Dst: fu_dfu_target_download_element_dfu
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1158,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1160,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1165,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1169,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1170,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1171,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1172,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1173,1
    - Dst: fu_dfu_target_upload_element
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1174,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1175,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1176,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1177,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1178,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1182,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1183,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1184,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1187,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 5
    argNames:
    - self
    - chk
    - progress
    - flags
    - error
    argTypes:
    - FuDfuTarget*
    - FuChunk*
    - FuProgress*
    - FuDfuTargetTransferFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1125
    functionDepth: 7
    functionLinenumber: 1125
    functionLinenumberEnd: 1191
    functionName: fu_dfu_target_download_element
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - FuDfuTargetClass*::download_element
    - FU_DFU_TARGET_GET_CLASS
    - fu_progress_add_step
    - fu_dfu_target_download_element_dfu
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_device_has_private_flag
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_chunk_get_address
    - fu_dfu_target_upload_element
    - fu_bytes_compare
    - g_bytes_get_size
    - fu_device_get_proxy
    - fu_chunk_get_bytes
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1213,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1214,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1216,1
    - Dst: FU_IS_DFU_TARGET
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1216,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1217,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1217,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1218,1
    - Dst: fu_dfu_target_setup
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1221,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1225,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1225,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1228,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1229,1
    - Dst: fu_dfu_target_use_alt_setting
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1237,1
    - Dst: fu_firmware_get_chunks
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1241,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1245,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1251,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1252,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1254,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1255,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1255,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1261,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1263,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1264,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1265,1
    - Dst: fu_chunk_set_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1266,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1266,1
    - Dst: fu_dfu_target_download_element
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1270,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1272,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1276,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1279,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1280,1
    - Dst: fu_dfu_target_manifest_wait
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1281,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 5
    argNames:
    - self
    - image
    - progress
    - flags
    - error
    argTypes:
    - FuDfuTarget*
    - FuFirmware*
    - FuProgress*
    - FuDfuTargetTransferFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1205
    functionDepth: 8
    functionLinenumber: 1205
    functionLinenumberEnd: 1286
    functionName: fu_dfu_target_download
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - fu_dfu_target_download_element
    - FU_IS_DFU_TARGET
    - g_ptr_array_index
    - fu_dfu_target_use_alt_setting
    - fu_dfu_sector_get_address
    - g_debug
    - g_set_error_literal
    - fu_dfu_target_manifest_wait
    - FU_IS_FIRMWARE
    - fu_progress_set_steps
    - fu_device_get_proxy
    - fu_firmware_get_chunks
    - GET_PRIVATE
    - fu_progress_step_done
    - FU_DEVICE
    - fu_progress_get_child
    - fu_progress_set_id
    - g_return_val_if_fail
    - fu_chunk_get_address
    - fu_dfu_target_setup
    - fu_device_has_private_flag
    - fu_chunk_set_address
    - g_autoptr
    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:1299,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1300,1
    - Dst: FU_IS_DFU_TARGET
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuTarget*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1296
    functionDepth: 0
    functionLinenumber: 1296
    functionLinenumberEnd: 1302
    functionName: fu_dfu_target_get_alt_setting
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DFU_TARGET
    - 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:1307,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-target.c:1308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDfuTargetClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1304
    functionDepth: 0
    functionLinenumber: 1304
    functionLinenumberEnd: 1311
    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: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 1569
    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:76,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:76,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:79,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:80,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:81,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:82,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - target
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 73
    functionDepth: 5
    functionLinenumber: 73
    functionLinenumberEnd: 87
    functionName: fu_dfu_target_avr_mass_erase
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - fu_dfu_target_download_chunk
    - g_autoptr
    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:92,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:92,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:93,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:94,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:97,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:98,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:99,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:102,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:103,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:104,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:105,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:109,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:111,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:112,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:113,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:116,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:117,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:121,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:124,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:128,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:130,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:131,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:132,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:136,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 3
    argNames:
    - target
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 89
    functionDepth: 5
    functionLinenumber: 89
    functionLinenumberEnd: 142
    functionName: fu_dfu_target_avr_attach
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_progress_finished
    - g_debug
    - fu_progress_add_step
    - g_steal_pointer
    - fu_progress_step_done
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - fu_dfu_target_download_chunk
    - g_error_matches
    - g_propagate_prefixed_error
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_target_avr_attach(FuDfuTarget *target, FuProgress *progress,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:161,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:161,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:164,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:164,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:167,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:168,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:173,1
    - Dst: fu_byte_array_append_uint8
      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:175,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:176,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:177,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:178,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - target
    - memory_unit
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint8
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 154
    functionDepth: 5
    functionLinenumber: 154
    functionLinenumberEnd: 183
    functionName: fu_dfu_target_avr_select_memory_unit
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - fu_byte_array_append_uint8
    - FU_DEVICE
    - g_byte_array_new
    - fu_dfu_target_download_chunk
    - fu_device_get_proxy
    - g_autoptr
    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:201,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:201,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:205,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:215,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:216,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:217,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:218,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:219,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:220,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:221,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: 225
      start: 195
    functionDepth: 5
    functionLinenumber: 195
    functionLinenumberEnd: 225
    functionName: fu_dfu_target_avr_select_memory_page
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - g_prefix_error_literal
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - fu_dfu_target_download_chunk
    - g_autoptr
    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:243,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:243,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:246,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:247,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:248,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:249,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:250,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:251,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:252,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: 256
      start: 237
    functionDepth: 5
    functionLinenumber: 237
    functionLinenumberEnd: 256
    functionName: fu_dfu_target_avr32_select_memory_page
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint16
    - g_debug
    - g_prefix_error_literal
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - fu_dfu_target_download_chunk
    - g_autoptr
    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:276,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:276,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:279,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:280,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:281,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:282,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:283,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:284,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:285,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: 292
      start: 269
    functionDepth: 5
    functionLinenumber: 269
    functionLinenumberEnd: 292
    functionName: fu_dfu_target_avr_read_memory
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint16
    - g_debug
    - g_prefix_error
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - fu_dfu_target_download_chunk
    - g_autoptr
    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:311,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:311,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:314,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:315,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:316,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:317,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:318,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:319,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: 323
      start: 304
    functionDepth: 5
    functionLinenumber: 304
    functionLinenumberEnd: 323
    functionName: fu_dfu_target_avr_read_command
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_prefix_error_literal
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - fu_dfu_target_download_chunk
    - g_autoptr
    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:337,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:340,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:341,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:342,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:343,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:344,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:345,1
    - Dst: fu_dfu_target_avr_select_memory_unit
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:348,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:350,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:353,1
    - Dst: fu_dfu_target_avr32_select_memory_page
      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_avr_read_memory
      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:363,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:366,1
    - Dst: fu_dfu_target_upload_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:369,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: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:375,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - target
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 334
    functionDepth: 6
    functionLinenumber: 334
    functionLinenumberEnd: 376
    functionName: fu_dfu_target_avr32_get_chip_signature
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_add_flag
    - fu_dfu_target_avr_read_memory
    - fu_progress_step_done
    - g_steal_pointer
    - fu_dfu_target_avr_select_memory_unit
    - fu_dfu_target_upload_chunk
    - g_autoptr
    - fu_progress_get_child
    - fu_dfu_target_avr32_select_memory_page
    - fu_progress_set_id
    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:385,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:388,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:389,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:390,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:391,1
    - Dst: fu_dfu_target_avr_read_command
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:394,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:397,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:400,1
    - Dst: fu_dfu_target_upload_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:403,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:406,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:407,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:414,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:417,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:420,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: 421
      start: 378
    functionDepth: 6
    functionLinenumber: 378
    functionLinenumberEnd: 421
    functionName: fu_dfu_target_avr_get_chip_signature_for_addr
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_dfu_target_avr_read_command
    - fu_progress_add_step
    - g_set_error
    - fu_progress_add_flag
    - g_steal_pointer
    - fu_progress_step_done
    - g_bytes_get_size
    - fu_dfu_target_upload_chunk
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:443,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:446,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:447,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:448,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:448,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:450,1
    - Dst: fu_dfu_target_avr_get_chip_signature_for_addr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:451,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:454,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:458,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:458,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:459,1
    - Dst: fu_dfu_utils_bytes_join_array
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - target
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 432
    functionDepth: 7
    functionLinenumber: 432
    functionLinenumberEnd: 462
    functionName: fu_dfu_target_avr_get_chip_signature
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_dfu_target_avr_get_chip_signature_for_addr
    - g_steal_pointer
    - fu_progress_set_steps
    - g_ptr_array_add
    - fu_progress_step_done
    - G_N_ELEMENTS
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - fu_progress_get_child
    - fu_dfu_utils_bytes_join_array
    - fu_progress_set_id
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_dfu_target_avr_get_chip_signature(FuDfuTarget *target, FuProgress *progress,
      GError **error)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_TARGET_AVR
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:468,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:470,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:475,1
    - Dst: fu_progress_new
      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:476,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:483,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:483,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:486,1
    - Dst: fu_dfu_target_avr_get_chip_signature
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:487,1
    - Dst: fu_dfu_target_avr32_get_chip_signature
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:491,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:493,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:499,1
    - Dst: fu_dump_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:500,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:501,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:502,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:507,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:509,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:511,1
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:523,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:524,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:524,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:525,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:525,1
    - Dst: fu_dfu_device_get_chip_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:527,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:529,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:530,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:531,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:538,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:538,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 2
    argNames:
    - target
    - error
    argTypes:
    - FuDfuTarget*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 464
    functionDepth: 8
    functionLinenumber: 464
    functionLinenumberEnd: 541
    functionName: fu_dfu_target_avr_setup
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - FU_DFU_DEVICE
    - g_strdup_printf
    - fu_progress_new
    - g_autoptr
    - FU_DFU_TARGET_AVR
    - fu_memread_uint32_safe
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - g_prefix_error_literal
    - fu_device_get_proxy
    - GET_PRIVATE
    - fu_device_set_logical_id
    - fu_dfu_target_avr32_get_chip_signature
    - g_bytes_get_data
    - FU_DEVICE
    - fu_dump_bytes
    - fu_dfu_device_get_chip_id
    - fu_device_remove_private_flag
    - g_set_error
    - fu_device_has_private_flag
    - fu_dfu_target_avr_get_chip_signature
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_target_avr_setup(FuDfuTarget *target, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:572,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:572,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:577,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:578,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:580,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:581,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:581,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:582,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:582,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:585,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:586,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:586,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:587,1
    - Dst: fu_dfu_target_avr_select_memory_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:588,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:589,1
    - Dst: fu_dfu_target_avr32_select_memory_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:594,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:595,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:600,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:604,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:605,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:606,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:606,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:607,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:608,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:608,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:611,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:612,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:613,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:616,1
    - Dst: fu_dfu_target_download_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:617,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:621,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:623,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:628,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 6
    argNames:
    - target
    - chunks
    - page_last
    - header_sz
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - GPtrArray*
    - guint16*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 543
    functionDepth: 6
    functionLinenumber: 543
    functionLinenumberEnd: 633
    functionName: fu_dfu_target_avr_download_element_chunks
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint16
    - fu_chunk_get_data_sz
    - fu_progress_new
    - fu_dfu_target_avr32_select_memory_page
    - g_ptr_array_index
    - fu_byte_array_append_bytes
    - g_debug
    - fu_progress_set_steps
    - g_byte_array_new
    - fu_device_get_proxy
    - fu_chunk_get_bytes
    - fu_progress_step_done
    - fu_chunk_get_page
    - fu_byte_array_append_uint8
    - FU_DEVICE
    - g_byte_array_append
    - fu_progress_get_child
    - fu_chunk_get_address
    - fu_progress_set_id
    - fu_dfu_target_avr_select_memory_page
    - g_prefix_error
    - fu_device_has_private_flag
    - fu_dfu_target_download_chunk
    - g_autoptr
    - 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: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:649,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:650,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:653,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:654,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:655,1
    - Dst: fu_dfu_target_avr_select_memory_unit
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:658,1
    - Dst: fu_dfu_target_get_alt_setting
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:659,1
    - Dst: fu_dfu_target_avr_mass_erase
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:663,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:665,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:668,1
    - Dst: fu_dfu_target_get_sector_default
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:669,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:671,1
    - Dst: fu_chunk_get_address
      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:678,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:679,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:680,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:683,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:686,1
    - Dst: fu_dfu_sector_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:686,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:687,1
    - Dst: fu_dfu_sector_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:691,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:696,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:696,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:699,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:703,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:704,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:705,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:710,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:713,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:714,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:715,1
    - Dst: fu_dfu_target_avr_download_element_chunks
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:721,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:725,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:728,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 5
    argNames:
    - target
    - chk
    - progress
    - flags
    - error
    argTypes:
    - FuDfuTarget*
    - FuChunk*
    - FuProgress*
    - FuDfuTargetTransferFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 635
    functionDepth: 7
    functionLinenumber: 635
    functionLinenumberEnd: 732
    functionName: fu_dfu_target_avr_download_element
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_dfu_sector_get_size
    - fu_dfu_sector_get_address
    - g_set_error_literal
    - fu_dfu_target_avr_mass_erase
    - fu_dfu_target_avr_select_memory_unit
    - fu_dfu_target_get_alt_setting
    - fu_device_get_proxy
    - fu_chunk_get_bytes
    - fu_chunk_array_new
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_progress_step_done
    - FU_DEVICE
    - g_warning
    - fu_progress_get_child
    - fu_dfu_target_get_sector_default
    - fu_chunk_get_address
    - fu_progress_set_id
    - g_set_error
    - fu_device_has_private_flag
    - g_bytes_get_size
    - fu_dfu_target_avr_download_element_chunks
    - g_autoptr
    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:740,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:743,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:744,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:745,1
    - Dst: fu_dfu_target_avr_read_memory
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:748,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:749,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:750,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:750,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:752,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:755,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:758,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:760,1
    - Dst: fu_dfu_target_upload_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:761,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:762,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:764,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:768,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - target
    - chk
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - FuChunk*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 734
    functionDepth: 6
    functionLinenumber: 734
    functionLinenumberEnd: 772
    functionName: fu_dfu_target_avr_upload_element_chunk
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_idx
    - g_debug
    - fu_progress_add_step
    - fu_chunk_get_data_sz
    - fu_dfu_target_avr_read_memory
    - g_steal_pointer
    - fu_progress_step_done
    - fu_dfu_target_upload_chunk
    - fu_progress_set_id
    - g_autoptr
    - fu_progress_get_child
    - fu_chunk_get_address
    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: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:785,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:786,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:787,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:788,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:791,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:792,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:795,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:795,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:798,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:801,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:804,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:805,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:805,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:806,1
    - Dst: fu_dfu_target_avr_select_memory_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:807,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:808,1
    - Dst: fu_dfu_target_avr32_select_memory_page
      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:814,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:819,1
    - Dst: fu_dfu_target_avr_upload_element_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:822,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:824,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:828,1
    - Dst: fu_bytes_is_empty
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:831,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:832,1
    - Dst: fu_chunk_get_page
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:834,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:837,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:841,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:846,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:847,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:849,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:850,1
    - Dst: fu_dfu_utils_bytes_join_array
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:854,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:857,1
    - Dst: g_bytes_new_from_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:858,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:860,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:863,1
    - Dst: fu_chunk_set_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:864,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:865,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 6
    argNames:
    - target
    - address
    - expected_size
    - chunks
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint32
    - gsize
    - GPtrArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 774
    functionDepth: 7
    functionLinenumber: 774
    functionLinenumberEnd: 866
    functionName: fu_dfu_target_avr_upload_element_chunks
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_set_size
    - fu_progress_new
    - fu_dfu_target_avr32_select_memory_page
    - g_ptr_array_index
    - g_debug
    - fu_progress_set_steps
    - fu_dfu_target_avr_upload_element_chunk
    - fu_device_get_proxy
    - g_ptr_array_new_with_free_func
    - fu_dfu_utils_bytes_join_array
    - g_bytes_ref
    - g_bytes_new_from_bytes
    - fu_progress_step_done
    - fu_chunk_get_page
    - FU_DEVICE
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_dfu_target_avr_select_memory_page
    - g_steal_pointer
    - g_ptr_array_add
    - fu_device_has_private_flag
    - fu_bytes_is_empty
    - g_bytes_get_size
    - fu_chunk_set_address
    - g_autoptr
    - fu_chunk_bytes_new
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:877,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:878,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:881,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:882,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:883,1
    - Dst: fu_dfu_target_avr_select_memory_unit
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:886,1
    - Dst: fu_dfu_target_get_alt_setting
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:887,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:888,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:891,1
    - Dst: fu_dfu_target_get_sector_default
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:894,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:896,1
    - Dst: fu_dfu_sector_get_address
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:902,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:903,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:914,1
    - Dst: fu_dfu_target_avr_upload_element_chunks
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:922,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:926,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:930,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c:933,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 6
    argNames:
    - target
    - address
    - expected_size
    - maximum_size
    - progress
    - error
    argTypes:
    - FuDfuTarget*
    - guint32
    - gsize
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 868
    functionDepth: 8
    functionLinenumber: 868
    functionLinenumberEnd: 934
    functionName: fu_dfu_target_avr_upload_element
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_new
    - fu_dfu_sector_get_address
    - fu_progress_add_step
    - g_set_error_literal
    - g_steal_pointer
    - fu_progress_step_done
    - fu_dfu_target_avr_select_memory_unit
    - fu_dfu_target_get_sector_default
    - fu_dfu_target_get_alt_setting
    - g_autoptr
    - fu_progress_get_child
    - fu_dfu_target_avr_upload_element_chunks
    - fu_progress_set_id
    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: 939
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 939
    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:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDfuTargetAvrClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 950
    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:956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 958
    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: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 1570
    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:77,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:78,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:79,1
    - Dst: fu_dfu_state_to_string
      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_status_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:80,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:81,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:85,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:86,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:89,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: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:99,1
    - Dst: fu_device_add_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:100,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 102
    functionName: fu_dfu_device_to_string
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - FU_DFU_DEVICE
    - fu_dfu_status_to_string
    - fwupd_codec_string_append
    - FU_DEVICE
    - fwupd_codec_string_append_bool
    - fu_dfu_state_to_string
    - fu_device_add_string
    - fwupd_codec_string_append_hex
    - g_ptr_array_index
    - GET_PRIVATE
    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:115,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:116,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: fu_dfu_device_get_transfer_size
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 5
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DFU_DEVICE
    - 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:131,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:132,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: fu_dfu_device_get_version
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DFU_DEVICE
    - 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:147,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:148,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: fu_dfu_device_get_download_timeout
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DFU_DEVICE
    - 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:155,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:156,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:156,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:159,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:159,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:160,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:164,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:164,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - dnload_timeout
    argTypes:
    - FuDfuDevice*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 172
    functionName: fu_dfu_device_set_download_timeout
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_return_if_fail
    - fu_device_has_private_flag
    - FU_DEVICE
    - FU_IS_DFU_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:177,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:179,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:180,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:183,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:184,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:184,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:185,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:186,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:187,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:188,1
    - Dst: g_byte_array_free_to_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:189,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:189,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:191,1
    - Dst: fu_usb_dfu_descriptor_hdr_parse_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:195,1
    - Dst: fu_usb_dfu_descriptor_hdr_get_transfer_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:198,1
    - Dst: fu_usb_dfu_descriptor_hdr_get_dfu_version
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:199,1
    - Dst: fu_usb_dfu_descriptor_hdr_get_attributes
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:200,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:209,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:209,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
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - self
    - iface_data
    - error
    argTypes:
    - FuDfuDevice*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 219
    functionName: fu_dfu_device_parse_iface_data
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - g_bytes_ref
    - fu_usb_dfu_descriptor_hdr_get_dfu_version
    - fu_usb_dfu_descriptor_hdr_get_transfer_size
    - fu_usb_dfu_descriptor_hdr_parse_bytes
    - g_steal_pointer
    - fu_device_add_private_flag
    - fu_byte_array_append_uint8
    - FU_DEVICE
    - g_byte_array_new
    - g_warning
    - g_byte_array_free_to_bytes
    - fu_usb_dfu_descriptor_hdr_get_attributes
    - g_bytes_get_size
    - g_autoptr
    - GET_PRIVATE
    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:225,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:225,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:226,1
    - Dst: fu_dfu_device_set_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:227,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:232,1
    - Dst: fu_dfu_device_set_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:233,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:238,1
    - Dst: fu_dfu_device_set_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:239,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:242,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - iface
    argTypes:
    - FuDfuDevice*
    - FuUsbInterface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 244
    functionName: fu_dfu_device_guess_state_from_iface
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_usb_interface_get_protocol
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_warning
    - 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:249,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:250,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:254,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:262,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:262,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:265,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:268,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:269,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:271,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:274,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:274,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:276,1
    - Dst: fu_usb_interface_get_subclass
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:278,1
    - Dst: fu_firmware_get_image_by_idx_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:283,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:283,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:287,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:288,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:288,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:289,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:289,1
    - Dst: fu_dfu_device_parse_iface_data
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:292,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:293,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:294,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:294,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:295,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:295,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:306,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:311,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:313,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:316,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:322,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:322,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: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:330,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:333,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:335,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:338,1
    - Dst: fu_dfu_target_stm_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:344,1
    - Dst: fu_dfu_target_avr_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:347,1
    - Dst: fu_dfu_target_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:350,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:353,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:353,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:353,1
    - Dst: fu_dfu_target_set_alt_idx
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:354,1
    - Dst: fu_usb_interface_get_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:354,1
    - Dst: fu_dfu_target_set_alt_setting
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:355,1
    - Dst: fu_usb_interface_get_alternate
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:355,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:358,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:359,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:359,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:360,1
    - Dst: fu_dfu_device_guess_state_from_iface
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:361,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:366,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:366,1
    - Dst: fu_device_get_vid
      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_pid
      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_usb_device_get_release
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:369,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:369,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:374,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:374,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:375,1
    - Dst: fu_dfu_device_set_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:376,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:378,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:378,1
    - Dst: fu_device_get_pid
      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_usb_device_get_release
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:380,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:380,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:381,1
    - Dst: FU_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: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:388,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:396,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:396,1
    - Dst: fu_device_remove_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
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 112
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 246
    functionDepth: 9
    functionLinenumber: 246
    functionLinenumberEnd: 400
    functionName: fu_dfu_device_add_targets
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_dfu_target_set_alt_idx
    - fu_device_get_pid
    - fu_usb_device_get_interfaces
    - fu_device_add_private_flag
    - g_ptr_array_set_size
    - fu_usb_device_add_interface
    - fu_dfu_device_guess_state_from_iface
    - g_ptr_array_index
    - fu_dfu_target_avr_new
    - fu_usb_interface_get_number
    - g_debug
    - fu_dfu_target_new
    - g_set_error_literal
    - fu_usb_interface_get_alternate
    - fu_dfu_target_stm_new
    - fu_device_add_protocol
    - GET_PRIVATE
    - g_info
    - FU_FIRMWARE
    - fu_dfu_device_parse_iface_data
    - fu_usb_device_get_release
    - FU_DEVICE
    - fu_device_get_vid
    - g_warning
    - fu_device_set_proxy
    - FU_USB_DEVICE
    - fu_usb_interface_get_subclass
    - fu_device_remove_private_flag
    - fu_usb_interface_get_index
    - g_ptr_array_add
    - fu_device_has_private_flag
    - fu_usb_interface_get_class
    - fu_dfu_target_set_alt_setting
    - fu_dfu_device_set_state
    - g_autoptr
    - fu_firmware_get_image_by_idx_bytes
    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:413,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:414,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 416
    functionName: fu_dfu_device_get_timeout
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DFU_DEVICE
    - 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:429,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:430,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 432
    functionName: fu_dfu_device_get_state
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DFU_DEVICE
    - 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:445,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:446,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 448
    functionName: fu_dfu_device_get_status
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DFU_DEVICE
    - 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:453,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:455,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:455,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:456,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:460,1
    - Dst: fu_dfu_target_get_alt_setting
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:461,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:462,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:466,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - alt_setting
    - error
    argTypes:
    - FuDfuDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 472
    functionName: fu_dfu_device_get_target_by_alt_setting
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    - g_object_ref
    - fu_dfu_target_get_alt_setting
    - FU_IS_DFU_DEVICE
    - g_ptr_array_index
    - GET_PRIVATE
    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:477,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:478,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 480
    functionName: fu_dfu_device_get_chip_id
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DFU_DEVICE
    - 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:485,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:486,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:486,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:487,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - chip_id
    argTypes:
    - FuDfuDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 489
    functionName: fu_dfu_device_set_chip_id
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_debug
    - g_return_if_fail
    - FU_IS_DFU_DEVICE
    - GET_PRIVATE
    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:494,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:501,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:501,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:503,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - FuDfuDevice*
    - FuDfuState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 491
    functionDepth: 6
    functionLinenumber: 491
    functionLinenumberEnd: 505
    functionName: fu_dfu_device_set_state
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 2
    functionsReached:
    - FU_DEVICE
    - fu_device_add_flag
    - 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:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - status
    argTypes:
    - FuDfuDevice*
    - FuDfuStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 514
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:519,1
    - Dst: fu_dfu_device_refresh
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:520,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:526,1
    - Dst: fu_dfu_status_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:526,1
    - Dst: fu_dfu_device_abort
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:527,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:531,1
    - Dst: fu_dfu_status_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:531,1
    - Dst: fu_dfu_device_clear_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:532,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 539
    functionName: fu_dfu_device_refresh_and_clear
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_dfu_device_abort
    - g_debug
    - fu_dfu_device_refresh
    - fu_dfu_status_to_string
    - fu_dfu_device_clear_status
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_refresh_and_clear(FuDfuDevice *self, GError
      **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:554,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:557,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:559,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:559,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:560,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:568,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:568,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:576,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:576,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:579,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:579,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:593,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:594,1
    - Dst: fu_dfu_device_set_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:595,1
    - Dst: fu_dfu_device_set_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:596,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:599,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:607,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:616,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:616,1
    - Dst: fu_dfu_device_get_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:617,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:618,1
    - Dst: fu_dfu_device_set_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:619,1
    - Dst: fu_dfu_device_set_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:621,1
    - Dst: fu_dfu_device_set_status
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:625,1
    - Dst: fu_dfu_device_set_download_timeout
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:626,1
    - Dst: fu_memread_uint24
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:626,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:627,1
    - Dst: fu_dfu_status_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:628,1
    - Dst: fu_dfu_state_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:629,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - self
    - timeout_ms
    - error
    argTypes:
    - FuDfuDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 551
    functionDepth: 7
    functionLinenumber: 551
    functionLinenumberEnd: 632
    functionName: fu_dfu_device_refresh
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 4
    functionsReached:
    - fu_dfu_status_to_string
    - g_debug
    - fu_usb_device_control_transfer
    - GET_PRIVATE
    - fu_dfu_device_set_download_timeout
    - g_info
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_dfu_device_set_status
    - fu_memread_uint24
    - g_return_val_if_fail
    - fu_dfu_device_get_state
    - g_set_error
    - fu_device_has_private_flag
    - fu_dfu_state_to_string
    - g_error_matches
    - fu_dfu_device_set_state
    - g_autoptr
    - FU_IS_DFU_DEVICE
    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:637,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:640,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:642,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:642,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:643,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:645,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:645,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:659,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:660,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:661,1
    - Dst: fu_dfu_device_error_fixup
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:664,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:665,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuDfuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 634
    functionDepth: 4
    functionLinenumber: 634
    functionLinenumberEnd: 674
    functionName: fu_dfu_device_request_detach
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - FU_BIT_SET
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_usb_device_control_transfer
    - g_error_matches
    - fu_dfu_device_error_fixup
    - FU_USB_DEVICE
    - g_autoptr
    - GET_PRIVATE
    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:679,1
    - Dst: fu_dfu_device_refresh_and_clear
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 676
    functionDepth: 2
    functionLinenumber: 676
    functionLinenumberEnd: 681
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:686,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:687,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:689,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:689,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:690,1
    - Dst: fu_dfu_device_refresh_and_clear
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:693,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:695,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:700,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:700,1
    - Dst: fu_dfu_device_request_detach
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:704,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:708,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:708,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:709,1
    - Dst: fu_dfu_device_reset
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:710,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:716,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 683
    functionDepth: 6
    functionLinenumber: 683
    functionLinenumberEnd: 718
    functionName: fu_dfu_device_detach
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_device_add_flag
    - FU_DFU_DEVICE
    - g_info
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_device_has_flag
    - fu_dfu_device_reset
    - fu_dfu_device_refresh_and_clear
    - fu_dfu_device_request_detach
    - FU_IS_DFU_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:732,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:733,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:735,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:735,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:736,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:740,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:740,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:741,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:748,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:748,1
    - Dst: fu_dfu_device_error_fixup
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:762,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:763,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 729
    functionDepth: 4
    functionLinenumber: 729
    functionLinenumberEnd: 772
    functionName: fu_dfu_device_abort
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_set_error
    - g_set_error_literal
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_usb_device_control_transfer
    - fu_dfu_device_error_fixup
    - FU_USB_DEVICE
    - g_autoptr
    - FU_IS_DFU_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_abort(FuDfuDevice *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:777,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:778,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:782,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:782,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:783,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:790,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:790,1
    - Dst: fu_dfu_device_error_fixup
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:804,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 774
    functionDepth: 4
    functionLinenumber: 774
    functionLinenumberEnd: 813
    functionName: fu_dfu_device_clear_status
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 1
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_usb_device_control_transfer
    - fu_dfu_device_error_fixup
    - FU_USB_DEVICE
    - g_autoptr
    - GET_PRIVATE
    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:824,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:825,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 827
    functionName: fu_dfu_device_get_interface
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_DFU_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_dfu_device_get_interface(FuDfuDevice *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:841,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:842,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:844,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:844,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:845,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:848,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:853,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:853,1
    - Dst: fu_dfu_device_set_state
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:854,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:860,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:860,1
    - Dst: fu_usb_device_get_serial_number_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:864,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:864,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:867,1
    - Dst: fu_usb_device_get_string_descriptor_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:868,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:868,1
    - Dst: fu_dump_bytes
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:874,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:875,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:877,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:885,1
    - Dst: fu_dfu_device_set_chip_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:886,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:889,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:892,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:892,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:897,1
    - Dst: fu_dfu_target_setup
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:898,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 838
    functionDepth: 7
    functionLinenumber: 838
    functionLinenumberEnd: 904
    functionName: fu_dfu_device_open
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - FU_DFU_DEVICE
    - g_strdup_printf
    - g_ptr_array_index
    - fu_memstrsafe
    - g_set_error_literal
    - GET_PRIVATE
    - g_bytes_get_data
    - fu_device_set_serial
    - FU_DEVICE
    - fu_dump_bytes
    - FU_USB_DEVICE
    - FU_DEVICE_CLASS
    - g_return_val_if_fail
    - fu_dfu_device_set_chip_id
    - fu_dfu_target_setup
    - fu_usb_device_get_serial_number_index
    - fu_device_has_private_flag
    - fu_usb_device_get_string_descriptor_bytes
    - fu_dfu_device_set_state
    - g_autoptr
    - FU_IS_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:909,1
    - Dst: fu_dfu_device_add_targets
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:912,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:913,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:915,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:915,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:916,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:916,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:921,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:922,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:923,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:923,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:924,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:924,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:929,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:929,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:931,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:932,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 906
    functionDepth: 10
    functionLinenumber: 906
    functionLinenumberEnd: 937
    functionName: fu_dfu_device_probe
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - FU_DFU_DEVICE
    - fu_device_get_pid
    - g_info
    - g_debug
    - fu_device_sleep
    - g_prefix_error
    - fu_device_has_private_flag
    - fu_dfu_device_add_targets
    - FU_DEVICE
    - fu_device_get_vid
    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:942,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:943,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:943,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:945,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:945,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:946,1
    - Dst: fu_usb_device_reset
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:948,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:948,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:949,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:957,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:957,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuDfuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 939
    functionDepth: 3
    functionLinenumber: 939
    functionLinenumberEnd: 959
    functionName: fu_dfu_device_reset
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_debug
    - g_set_error
    - fu_usb_device_reset
    - g_timer_elapsed
    - g_timer_new
    - FU_USB_DEVICE
    - g_autoptr
    - FU_IS_DFU_DEVICE
    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:964,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:965,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:966,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:968,1
    - Dst: FU_IS_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:968,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:969,1
    - Dst: fu_dfu_device_refresh_and_clear
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:972,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:974,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:978,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:978,1
    - Dst: fu_dfu_device_request_detach
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:979,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:981,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:987,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:987,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:989,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:990,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:991,1
    - Dst: fu_dfu_device_get_target_by_alt_setting
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:992,1
    - Dst: fu_dfu_target_upload_chunk
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:995,1
    - Dst: fu_dfu_device_get_target_by_alt_setting
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1001,1
    - Dst: fu_device_has_private_flag
      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:1007,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1007,1
    - Dst: g_info
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1008,1
    - Dst: fu_dfu_target_attach
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1009,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1010,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1015,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1020,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 961
    functionDepth: 6
    functionLinenumber: 961
    functionLinenumberEnd: 1022
    functionName: fu_dfu_device_attach
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_device_add_flag
    - FU_DFU_DEVICE
    - fu_dfu_target_attach
    - g_debug
    - g_info
    - fu_dfu_device_get_target_by_alt_setting
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_device_has_flag
    - fu_dfu_device_refresh_and_clear
    - fu_dfu_target_upload_chunk
    - fu_dfu_device_request_detach
    - g_autoptr
    - FU_IS_DFU_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dfu_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1030,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1032,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1036,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1037,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1037,1
    - Dst: fu_dfuse_firmware_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1043,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1044,1
    - Dst: fu_dfu_firmware_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1046,1
    - Dst: fu_dfu_firmware_set_vid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1048,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1048,1
    - Dst: fu_dfu_firmware_set_pid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1049,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1049,1
    - Dst: fu_dfu_firmware_set_release
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1050,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1050,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1053,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1054,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1059,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1062,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1062,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1062,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1063,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1063,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1063,1
    - Dst: fu_dfu_target_upload
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1066,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1068,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1072,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1079,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - self
    - progress
    - flags
    - error
    argTypes:
    - FuDfuDevice*
    - FuProgress*
    - FuDfuTargetTransferFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1024
    functionDepth: 8
    functionLinenumber: 1024
    functionLinenumberEnd: 1080
    functionName: fu_dfu_device_upload
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_logical_id
    - g_object_ref
    - FU_DFU_FIRMWARE
    - fu_device_get_name
    - g_ptr_array_index
    - g_debug
    - fu_progress_set_steps
    - GET_PRIVATE
    - fu_dfuse_firmware_new
    - fu_dfu_firmware_new
    - fu_progress_step_done
    - FU_DEVICE
    - fu_dfu_firmware_set_vid
    - fu_dfu_target_upload
    - fu_progress_get_child
    - fu_dfu_firmware_set_release
    - fu_progress_set_id
    - g_strcmp0
    - fu_dfu_firmware_set_pid
    - g_autoptr
    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: 1099
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1099
    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:1106,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - chunks
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1110
    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:1119,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1121,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1126,1
    - Dst: fu_dfu_firmware_get_vid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1127,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1127,1
    - Dst: fu_dfu_firmware_get_pid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1128,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1128,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1137,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1146,1
    - Dst: fu_dfu_device_id_compatible
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1156,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1158,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1158,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1159,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1166,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1166,1
    - Dst: fu_dfu_device_id_compatible
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1173,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1175,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1175,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1176,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1183,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1183,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1189,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1191,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1191,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1192,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1194,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1195,1
    - Dst: fu_firmware_get_chunks
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1195,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1198,1
    - Dst: fu_dfu_device_calculate_chunks_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1200,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1204,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1207,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1209,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1210,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1214,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1217,1
    - Dst: fu_dfu_device_get_target_by_alt_setting
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1218,1
    - Dst: fu_dfu_target_setup
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1221,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1223,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1224,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1224,1
    - Dst: FU_IS_DFU_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1229,1
    - Dst: fu_dfu_firmware_get_version
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1230,1
    - Dst: FU_DFU_FIRMWARE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1230,1
    - Dst: fu_dfu_target_download
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1232,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1234,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1239,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 5
    argNames:
    - self
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDfuDevice*
    - FuFirmware*
    - FuProgress*
    - FuDfuTargetTransferFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1112
    functionDepth: 9
    functionLinenumber: 1112
    functionLinenumberEnd: 1247
    functionName: fu_dfu_device_download
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_logical_id
    - fu_device_get_pid
    - fu_dfu_device_calculate_chunks_size
    - fu_dfu_device_get_target_by_alt_setting
    - g_object_ref
    - FU_DFU_FIRMWARE
    - g_ptr_array_index
    - fu_dfu_firmware_get_pid
    - g_debug
    - g_set_error_literal
    - fu_firmware_get_images
    - fu_firmware_get_chunks
    - fu_firmware_get_idx
    - fu_dfu_device_id_compatible
    - GET_PRIVATE
    - fu_dfu_firmware_get_version
    - FU_IS_DFU_FIRMWARE
    - fu_progress_add_step
    - fu_progress_step_done
    - fu_device_get_vid
    - FU_DEVICE
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_dfu_firmware_get_vid
    - g_set_error
    - fu_dfu_target_setup
    - g_ptr_array_add
    - g_autoptr
    - fu_dfu_target_download
    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:1252,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1259,1
    - Dst: fu_dfu_device_refresh
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1263,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1276,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1279,1
    - Dst: fu_dfu_state_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1281,1
    - Dst: fu_dfu_status_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1282,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1249
    functionDepth: 8
    functionLinenumber: 1249
    functionLinenumberEnd: 1285
    functionName: fu_dfu_device_error_fixup
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 5
    functionsReached:
    - fu_dfu_device_refresh
    - fu_dfu_status_to_string
    - g_prefix_error
    - g_prefix_error_literal
    - fu_dfu_state_to_string
    - g_error_matches
    - GET_PRIVATE
    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:1290,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1291,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1294,1
    - Dst: fu_dfu_device_refresh_and_clear
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1295,1
    - Dst: fu_dfu_device_upload
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1297,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1287
    functionDepth: 9
    functionLinenumber: 1287
    functionLinenumberEnd: 1303
    functionName: fu_dfu_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - FU_DFU_DEVICE
    - fu_dfu_device_upload
    - g_debug
    - fu_dfu_device_refresh_and_clear
    - g_autoptr
    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:1312,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: 1321
      start: 1305
    functionDepth: 5
    functionLinenumber: 1305
    functionLinenumberEnd: 1321
    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:1330,1
    - Dst: fu_dfu_device_refresh_and_clear
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1334,1
    - Dst: fu_dfu_device_download
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1342,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: 1343
      start: 1323
    functionDepth: 10
    functionLinenumber: 1323
    functionLinenumberEnd: 1343
    functionName: fu_dfu_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_dfu_device_download
    - FU_DFU_DEVICE
    - 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:1348,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1349,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1352,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1353,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1358,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1359,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1364,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1365,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1370,1
    - Dst: fu_dfu_device_set_chip_id
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1371,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1376,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1381
    functionName: fu_dfu_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - FU_DFU_DEVICE
    - g_strcmp0
    - fu_dfu_device_set_chip_id
    - fu_strtoull
    - g_set_error_literal
    - GET_PRIVATE
    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:1386,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1387,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1388,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1389,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1390,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1383
    functionDepth: 3
    functionLinenumber: 1383
    functionLinenumberEnd: 1392
    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 *device, FuProgress *progress)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DFU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1397,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1398,1
    - Dst: g_ptr_array_set_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1401,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1394
    functionDepth: 0
    functionLinenumber: 1394
    functionLinenumberEnd: 1404
    functionName: fu_dfu_device_dispose
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - FU_DFU_DEVICE
    - g_ptr_array_set_size
    - G_OBJECT_CLASS
    - GET_PRIVATE
    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:1409,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1410,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1412,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1413,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1416
    functionName: fu_dfu_device_finalize
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - FU_DFU_DEVICE
    - g_ptr_array_unref
    - G_OBJECT_CLASS
    - g_free
    - GET_PRIVATE
    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:1421,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDfuDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1418
    functionDepth: 0
    functionLinenumber: 1418
    functionLinenumberEnd: 1436
    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:1441,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1448,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1453,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1453,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1454,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1454,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1455,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1455,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1456,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1456,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1457,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1457,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1458,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1458,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1459,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1459,1
    - Dst: fu_usb_device_set_claim_retry_count
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1460,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1460,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1462,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1462,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1463,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1463,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1464,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1464,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1465,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1465,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1466,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1466,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1467,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1467,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1468,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1468,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1469,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1469,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1470,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1470,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1471,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1471,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1472,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1472,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1473,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1473,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1474,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1474,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1475,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1475,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1476,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1476,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1477,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1477,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1478,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1478,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1479,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1479,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1480,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1480,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1481,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1481,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1482,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1482,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1483,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1483,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1484,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1484,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1485,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-device.c:1485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1438
    functionDepth: 6
    functionLinenumber: 1438
    functionLinenumberEnd: 1486
    functionName: fu_dfu_device_init
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_usb_device_set_claim_retry_count
    - FU_USB_DEVICE
    - g_ptr_array_new_with_free_func
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_dfu_device_init(FuDfuDevice *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-common.c:31,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dfu/fu-dfu-common.c:32,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dfu/fu-dfu-common.c:34,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/dfu/fu-dfu-common.c:40,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/dfu/fu-dfu-common.c:45,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-common.c:49,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/dfu/fu-dfu-common.c:50,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/dfu/fu-dfu-common.c:53,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/dfu/fu-dfu-common.c:62,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/dfu/fu-dfu-common.c:65,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dfu/fu-dfu-common.c:65,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - chunks
    - error
    argTypes:
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 66
    functionName: fu_dfu_utils_bytes_join_array
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-common.c
    functionUses: 4
    functionsReached:
    - g_bytes_get_data
    - g_set_error_literal
    - g_steal_pointer
    - g_malloc0
    - g_bytes_new_take
    - g_bytes_get_size
    - fu_memcpy_safe
    - fu_size_checked_inc
    - g_ptr_array_index
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_dfu_utils_bytes_join_array(GPtrArray *chunks, 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: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-sector.c
    functionUses: 1601
    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:
    - g_object_new
    - GET_PRIVATE
    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
    - FU_IS_DFU_SECTOR
    - GET_PRIVATE
    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
    - FU_IS_DFU_SECTOR
    - GET_PRIVATE
    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
    - FU_IS_DFU_SECTOR
    - GET_PRIVATE
    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
    - FU_IS_DFU_SECTOR
    - GET_PRIVATE
    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
    - FU_IS_DFU_SECTOR
    - GET_PRIVATE
    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_return_val_if_fail
    - fu_dfu_sector_cap_to_string
    - g_string_free
    - FU_IS_DFU_SECTOR
    - g_string_new
    - g_string_append_printf
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dfu_sector_to_string(FuDfuSector *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:24,1
    - Dst: fu_dfu_target_get_sectors
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:25,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:27,1
    - Dst: fu_dfu_sector_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:28,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:29,1
    - Dst: g_string_truncate
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:32,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - target
    argTypes:
    - FuDfuTarget*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 34
    functionName: fu_dfu_target_sectors_to_string
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_dfu_sector_to_string
    - g_string_free
    - g_string_new
    - g_string_append_printf
    - g_string_truncate
    - fu_dfu_target_get_sectors
    - g_ptr_array_index
    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:41,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:41,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:42,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:43,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:44,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:47,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:48,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:48,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:48,1
    - Dst: fu_dfu_target_parse_sectors
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:49,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:50,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:51,1
    - Dst: fu_dfu_target_sectors_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:52,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:53,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:54,1
    - Dst: fu_dfu_target_parse_sectors
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:57,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:58,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:59,1
    - Dst: fu_dfu_target_sectors_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:60,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:61,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:62,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: fu_test_compare_lines
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:69,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: g_free
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:76,1
    - Dst: fu_dfu_target_parse_sectors
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:79,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:80,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:81,1
    - Dst: fu_dfu_target_sectors_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:82,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:83,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:92,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:93,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:94,1
    - Dst: fu_dfu_target_parse_sectors
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:97,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:100,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:101,1
    - Dst: fu_dfu_target_sectors_to_string
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:102,1
    - Dst: fu_test_compare_lines
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:103,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:115,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:116,1
    - Dst: g_free
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:117,1
    - Dst: fu_dfu_target_parse_sectors
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:120,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:121,1
    - Dst: fu_dfu_target_parse_sectors
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:122,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:123,1
    - Dst: fu_dfu_target_parse_sectors
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:124,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 126
    functionName: fu_dfu_target_dfuse_func
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_dfu_target_sectors_to_string
    - fu_context_new
    - g_assert_true
    - fu_test_compare_lines
    - g_assert_no_error
    - FU_DEVICE
    - g_object_new
    - g_assert_false
    - g_free
    - fu_device_set_proxy
    - g_assert_cmpstr
    - g_autoptr
    - fu_dfu_target_parse_sectors
    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:131,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:132,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:133,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:134,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/dfu/fu-dfu-self-test.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: main
    functionSourceFile: /src/fwupd/plugins/dfu/fu-dfu-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_RF_RECEIVER_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:25,1
    - Dst: fu_pixart_rf_ota_fw_state_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-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_pixart_rf_receiver_device_to_string
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_rf_ota_fw_state_to_string
    - FU_PIXART_RF_RECEIVER_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_receiver_device_to_string(FuDevice *device, guint
      idt, GString *str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:36,1
    - Dst: fu_pixart_rf_firmware_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:36,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:38,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:41,1
    - Dst: fu_pixart_rf_firmware_is_hpac
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:42,1
    - Dst: FU_PIXART_RF_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:44,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:46,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:48,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:51,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:53,1
    - Dst: fu_pixart_rf_firmware_is_hpac
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:54,1
    - Dst: FU_PIXART_RF_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:54,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:55,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-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: 4
    functionLinenumber: 29
    functionLinenumberEnd: 63
    functionName: fu_pixart_rf_receiver_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_rf_firmware_is_hpac
    - fu_input_stream_read_u32
    - fu_firmware_parse_stream
    - g_set_error_literal
    - g_steal_pointer
    - fu_device_has_private_flag
    - fu_firmware_set_stream
    - g_autoptr
    - FU_PIXART_RF_FIRMWARE
    - fu_partial_input_stream_new
    - fu_pixart_rf_firmware_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_pixart_rf_receiver_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/pixart-rf/fu-pixart-rf-receiver-device.c:71,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:71,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:72,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:72,1
    - Dst: FU_PIXART_RF_RECEIVER_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:73,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:75,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:76,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:79,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:80,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:81,1
    - Dst: fu_pixart_rf_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:84,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:92,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - device
    - bufsz
    - error
    argTypes:
    - FuPixartRfReceiverDevice*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 65
    functionDepth: 5
    functionLinenumber: 65
    functionLinenumberEnd: 97
    functionName: fu_pixart_rf_receiver_device_fw_ota_init_new
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - g_byte_array_append
    - FU_PIXART_RF_RECEIVER_DEVICE
    - g_autoptr
    - fu_pixart_rf_composite_receiver_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_receiver_device_fw_ota_init_new(FuPixartRfReceiverDevice
      *device,\n\t\t\t\t\t     gsize bufsz,\n\t\t\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_RF_RECEIVER_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:104,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:104,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:105,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:105,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:108,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:109,1
    - Dst: fu_pixart_rf_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:114,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:122,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:122,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:130,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:130,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:132,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:132,1
    - Dst: fu_pixart_rf_ota_fw_state_parse
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuPixartRfReceiverDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 99
    functionDepth: 5
    functionLinenumber: 99
    functionLinenumberEnd: 141
    functionName: fu_pixart_rf_receiver_device_fw_ota_ini_new_check
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_device_sleep
    - fu_hidraw_device_get_feature
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - g_byte_array_new
    - FU_PIXART_RF_RECEIVER_DEVICE
    - fu_pixart_rf_ota_fw_state_parse
    - g_autoptr
    - fu_pixart_rf_composite_receiver_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_receiver_device_fw_ota_ini_new_check(FuPixartRfReceiverDevice
      *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:152,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:155,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:155,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:157,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:157,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:164,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuPixartRfReceiverDevice*
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 143
    functionDepth: 5
    functionLinenumber: 143
    functionLinenumberEnd: 184
    functionName: fu_pixart_rf_receiver_device_get_cmd_response
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_sleep
    - fu_hidraw_device_get_feature
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_memread_uint8_safe
    - memset
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_receiver_device_get_cmd_response(FuPixartRfReceiverDevice
      *self,\n\t\t\t\t\t      guint8 *buf,\n\t\t\t\t\t      guint bufsz,\n\t\t\t\t\t
      \     GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:193,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:193,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:194,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:194,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:197,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:198,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:200,1
    - Dst: fu_pixart_rf_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:206,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:214,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:214,1
    - Dst: fu_pixart_rf_receiver_device_get_cmd_response
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:221,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:224,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - self
    - checksum
    - error
    argTypes:
    - FuPixartRfReceiverDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 186
    functionDepth: 6
    functionLinenumber: 186
    functionLinenumberEnd: 237
    functionName: fu_pixart_rf_receiver_device_check_crc
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint16
    - g_set_error
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - g_byte_array_new
    - fu_memread_uint8_safe
    - fu_pixart_rf_receiver_device_get_cmd_response
    - g_autoptr
    - fu_pixart_rf_composite_receiver_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_receiver_device_check_crc(FuPixartRfReceiverDevice
      *self,\n\t\t\t\t       guint16 checksum,\n\t\t\t\t       GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:246,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:246,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:247,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:247,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:250,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:251,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:253,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:253,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:254,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:254,1
    - Dst: fu_pixart_rf_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:260,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:268,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:268,1
    - Dst: fu_pixart_rf_receiver_device_get_cmd_response
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:275,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:278,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:282,1
    - Dst: fu_pixart_rf_wireless_module_ota_rsp_code_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:286,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuPixartRfReceiverDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 239
    functionDepth: 6
    functionLinenumber: 239
    functionLinenumberEnd: 293
    functionName: fu_pixart_rf_receiver_device_fw_object_create
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - g_set_error
    - fu_chunk_get_data_sz
    - fu_pixart_rf_composite_receiver_cmd
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - fu_memread_uint8_safe
    - fu_pixart_rf_wireless_module_ota_rsp_code_to_string
    - fu_pixart_rf_receiver_device_get_cmd_response
    - g_autoptr
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_receiver_device_fw_object_create(FuPixartRfReceiverDevice
      *self,\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/pixart-rf/fu-pixart-rf-receiver-device.c:300,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:300,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:301,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:301,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:304,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:304,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:305,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:306,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:307,1
    - Dst: fu_pixart_rf_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:313,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:321,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuPixartRfReceiverDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 295
    functionDepth: 5
    functionLinenumber: 295
    functionLinenumberEnd: 326
    functionName: fu_pixart_rf_receiver_device_write_payload
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_chunk_get_data_sz
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - g_byte_array_new
    - fu_chunk_get_data
    - g_byte_array_append
    - g_autoptr
    - fu_pixart_rf_composite_receiver_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_receiver_device_write_payload(FuPixartRfReceiverDevice
      *self,\n\t\t\t\t\t   FuChunk *chk,\n\t\t\t\t\t   GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:334,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:335,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:335,1
    - Dst: fu_pixart_rf_receiver_device_fw_object_create
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:338,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:342,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:343,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:347,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:348,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:351,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:357,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:357,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:357,1
    - Dst: fu_pixart_rf_receiver_device_write_payload
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:358,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:363,1
    - Dst: fu_pixart_rf_receiver_device_check_crc
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:364,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuPixartRfReceiverDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 328
    functionDepth: 7
    functionLinenumber: 328
    functionLinenumberEnd: 373
    functionName: fu_pixart_rf_receiver_device_write_chunk
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_sum16
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_pixart_rf_receiver_device_fw_object_create
    - fu_pixart_rf_receiver_device_check_crc
    - fu_chunk_get_data
    - fu_pixart_rf_receiver_device_write_payload
    - fu_chunk_get_bytes
    - fu_chunk_array_length
    - g_autoptr
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_receiver_device_write_chunk(FuPixartRfReceiverDevice
      *self,\n\t\t\t\t\t FuChunk *chk,\n\t\t\t\t\t GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:385,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:385,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:386,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:386,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:387,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:390,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:391,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:392,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:394,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:399,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:400,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:403,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:404,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:406,1
    - Dst: fu_sum16_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:407,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:410,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:410,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:411,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:412,1
    - Dst: strlen
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:416,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:423,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:424,1
    - Dst: fu_pixart_rf_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:428,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:435,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:438,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:438,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:446,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:446,1
    - Dst: fu_pixart_rf_receiver_device_get_cmd_response
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:448,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:451,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:454,1
    - Dst: fu_pixart_rf_wireless_module_ota_rsp_code_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:458,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:462,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuPixartRfReceiverDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 375
    functionDepth: 6
    functionLinenumber: 375
    functionLinenumberEnd: 466
    functionName: fu_pixart_rf_receiver_device_fw_upgrade
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint16
    - fu_byte_array_append_uint32
    - fu_pixart_rf_wireless_module_ota_rsp_code_to_string
    - fu_pixart_rf_receiver_device_get_cmd_response
    - fu_firmware_get_bytes
    - g_byte_array_new
    - fu_progress_add_step
    - fu_sum16_bytes
    - fu_device_sleep
    - fu_progress_step_done
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_memread_uint8_safe
    - g_byte_array_append
    - fu_dump_raw
    - fu_progress_set_id
    - g_set_error
    - fu_device_has_private_flag
    - strlen
    - g_bytes_get_size
    - fu_memcpy_safe
    - fu_firmware_get_version
    - g_autoptr
    - fu_pixart_rf_composite_receiver_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_receiver_device_fw_upgrade(FuPixartRfReceiverDevice
      *self,\n\t\t\t\t\tFuFirmware *firmware,\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/pixart-rf/fu-pixart-rf-receiver-device.c:471,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:471,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:472,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:472,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:475,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:476,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:477,1
    - Dst: fu_pixart_rf_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:481,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:490,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartRfReceiverDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 468
    functionDepth: 5
    functionLinenumber: 468
    functionLinenumberEnd: 495
    functionName: fu_pixart_rf_receiver_device_reset
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - g_byte_array_new
    - g_autoptr
    - fu_pixart_rf_composite_receiver_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_receiver_device_reset(FuPixartRfReceiverDevice
      *self, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_RF_RECEIVER_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:504,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:505,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:506,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:509,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:510,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:511,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:512,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:513,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:516,1
    - Dst: fu_pixart_rf_receiver_device_fw_ota_init_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:521,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:521,1
    - Dst: fu_pixart_rf_receiver_device_fw_ota_ini_new_check
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:524,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:526,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:528,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:537,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:538,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:541,1
    - Dst: fu_pixart_rf_receiver_device_write_chunk
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:544,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:546,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:546,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:548,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:550,1
    - Dst: fu_pixart_rf_receiver_device_fw_upgrade
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:553,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:555,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:558,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:561,1
    - Dst: fu_pixart_rf_receiver_device_reset
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:564,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:566,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:567,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: 571
      start: 497
    functionDepth: 8
    functionLinenumber: 497
    functionLinenumberEnd: 571
    functionName: fu_pixart_rf_receiver_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_pixart_rf_receiver_device_write_chunk
    - g_autoptr
    - fu_firmware_get_bytes
    - fu_pixart_rf_receiver_device_reset
    - fu_progress_set_percentage_full
    - fu_progress_add_step
    - fu_device_sleep
    - fu_progress_step_done
    - fu_pixart_rf_receiver_device_fw_ota_ini_new_check
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_pixart_rf_receiver_device_fw_ota_init_new
    - fu_chunk_array_index
    - fu_pixart_rf_receiver_device_fw_upgrade
    - g_bytes_get_size
    - FU_PIXART_RF_RECEIVER_DEVICE
    - fu_chunk_array_new_from_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_receiver_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: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:583,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:583,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:584,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:584,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:586,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:587,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:588,1
    - Dst: fu_pixart_rf_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:591,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:598,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:598,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:605,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:605,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:608,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:608,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:615,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:617,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:620,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:630,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:632,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:635,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:645,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:650,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:651,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:651,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:652,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:654,1
    - Dst: fu_pixart_rf_hpac_version_info_parse
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:656,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:658,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 4
    argNames:
    - self
    - model
    - idx
    - error
    argTypes:
    - FuPixartRfReceiverDevice*
    - FuPixartRfOtaFwDevModel*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 573
    functionDepth: 5
    functionLinenumber: 573
    functionLinenumberEnd: 661
    functionName: fu_pixart_rf_receiver_device_get_peripheral_info
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - g_strndup
    - g_debug
    - fu_device_sleep
    - fu_hidraw_device_get_feature
    - fu_pixart_rf_hpac_version_info_parse
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_dump_raw
    - g_byte_array_new
    - fu_memread_uint8_safe
    - fu_device_has_private_flag
    - fu_memcpy_safe
    - g_autoptr
    - fu_memread_uint16_safe
    - fu_pixart_rf_composite_receiver_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_receiver_device_get_peripheral_info(FuPixartRfReceiverDevice
      *self,\n\t\t\t\t\t\t FuPixartRfOtaFwDevModel *model,\n\t\t\t\t\t\t guint idx,\n\t\t\t\t\t\t
      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_RF_RECEIVER_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:668,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:670,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:670,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:671,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:671,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:673,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:674,1
    - Dst: fu_pixart_rf_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:679,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:686,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:686,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:693,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:693,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:696,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:696,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:702,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:703,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - device
    - num_of_models
    - error
    argTypes:
    - FuPixartRfReceiverDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 663
    functionDepth: 5
    functionLinenumber: 663
    functionLinenumberEnd: 708
    functionName: fu_pixart_rf_receiver_device_get_peripheral_num
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_device_sleep
    - fu_hidraw_device_get_feature
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_dump_raw
    - g_byte_array_new
    - fu_memread_uint8_safe
    - FU_PIXART_RF_RECEIVER_DEVICE
    - g_autoptr
    - fu_pixart_rf_composite_receiver_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_receiver_device_get_peripheral_num(FuPixartRfReceiverDevice
      *device,\n\t\t\t\t\t\tguint8 *num_of_models,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_rf_receiver_device_get_peripheral_info
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:721,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:723,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:723,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:724,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:726,1
    - Dst: fu_pixart_rf_hpac_version_info_parse
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:728,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:730,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:734,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:734,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:735,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:735,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:737,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:737,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:738,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:738,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:740,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:740,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:741,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:741,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:742,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:742,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:751,1
    - Dst: fu_pixart_rf_wireless_device_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:752,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:752,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:753,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:754,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:754,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:756,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:756,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:757,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:757,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:759,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:759,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:760,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:760,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:761,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:761,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:769,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:769,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:770,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:770,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:771,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:771,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:772,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:772,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:772,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - device
    - idx
    - error
    argTypes:
    - FuPixartRfReceiverDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 710
    functionDepth: 7
    functionLinenumber: 710
    functionLinenumberEnd: 775
    functionName: fu_pixart_rf_receiver_device_add_peripherals
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - g_strndup
    - fu_device_add_child
    - fu_device_get_pid
    - fu_device_set_version
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - fu_pixart_rf_hpac_version_info_parse
    - fu_pixart_rf_wireless_device_new
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_device_get_vid
    - g_strdup_printf
    - fu_device_set_name
    - fu_memread_uint16_safe
    - g_autoptr
    - fu_pixart_rf_receiver_device_get_peripheral_info
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_receiver_device_add_peripherals(FuPixartRfReceiverDevice
      *device,\n\t\t\t\t\t     guint idx,\n\t\t\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:780,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:780,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:780,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:780,1
    - Dst: g_string_replace
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:781,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:782,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:782,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:783,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartRfReceiverDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 777
    functionDepth: 7
    functionLinenumber: 777
    functionLinenumberEnd: 790
    functionName: fu_pixart_rf_receiver_device_setup_guid
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - g_string_replace
    - fu_device_add_instance_strup
    - fu_device_build_instance_id
    - FU_DEVICE
    - g_string_new
    - fu_device_get_name
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_receiver_device_setup_guid(FuPixartRfReceiverDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_rf_receiver_device_get_peripheral_num
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:798,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:800,1
    - Dst: fu_pixart_rf_receiver_device_add_peripherals
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:802,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuPixartRfReceiverDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 792
    functionDepth: 8
    functionLinenumber: 792
    functionLinenumberEnd: 806
    functionName: fu_pixart_rf_receiver_device_check_peripherals
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_rf_receiver_device_get_peripheral_num
    - fu_pixart_rf_receiver_device_add_peripherals
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_receiver_device_check_peripherals(FuPixartRfReceiverDevice
      *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_RF_RECEIVER_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:811,1
    - Dst: fu_pixart_rf_receiver_device_setup_guid
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:813,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:814,1
    - Dst: fu_pixart_rf_receiver_device_fw_ota_init_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:817,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:818,1
    - Dst: fu_pixart_rf_receiver_device_fw_ota_ini_new_check
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:821,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:822,1
    - Dst: fu_pixart_rf_receiver_device_check_peripherals
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:825,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:826,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 808
    functionDepth: 9
    functionLinenumber: 808
    functionLinenumberEnd: 831
    functionName: fu_pixart_rf_receiver_device_setup
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_rf_receiver_device_fw_ota_init_new
    - fu_pixart_rf_receiver_device_check_peripherals
    - g_prefix_error_literal
    - fu_pixart_rf_receiver_device_setup_guid
    - fu_pixart_rf_receiver_device_fw_ota_ini_new_check
    - FU_PIXART_RF_RECEIVER_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_receiver_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:837,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:840,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:843,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:843,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:849,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:850,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 833
    functionDepth: 5
    functionLinenumber: 833
    functionLinenumberEnd: 859
    functionName: fu_pixart_rf_receiver_device_probe
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_device_get_backend_parent_with_subsystem
    - g_set_error_literal
    - fu_udev_device_read_sysfs
    - FU_UDEV_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_receiver_device_probe(FuDevice *device, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:864,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:865,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:866,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:867,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:868,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 861
    functionDepth: 3
    functionLinenumber: 861
    functionLinenumberEnd: 870
    functionName: fu_pixart_rf_receiver_device_set_progress
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_receiver_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:875,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:875,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:876,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:876,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:877,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:877,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:878,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:878,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:879,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:879,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:880,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:880,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:881,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:881,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:882,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:882,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:883,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:883,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:884,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:884,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:885,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPixartRfReceiverDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 872
    functionDepth: 6
    functionLinenumber: 872
    functionLinenumberEnd: 886
    functionName: fu_pixart_rf_receiver_device_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_build_vendor_id_u16
    - fu_device_add_icon
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_receiver_device_init(FuPixartRfReceiverDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPixartRfReceiverDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 898
    functionName: fu_pixart_rf_receiver_device_class_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_receiver_device_class_init(FuPixartRfReceiverDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_RF_BLE_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:48,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:49,1
    - Dst: fu_pixart_rf_ota_fw_state_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:50,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:51,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:52,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: fu_pixart_rf_ble_device_to_string
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_rf_ota_fw_state_to_string
    - FU_PIXART_RF_BLE_DEVICE
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_ble_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_RF_BLE_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:64,1
    - Dst: fu_pixart_rf_firmware_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:64,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:66,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:69,1
    - Dst: fu_pixart_rf_firmware_is_hpac
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:70,1
    - Dst: FU_PIXART_RF_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:70,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:72,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:74,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:76,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:79,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:82,1
    - Dst: fu_pixart_rf_firmware_is_hpac
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:83,1
    - Dst: FU_PIXART_RF_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:83,1
    - Dst: fu_pixart_rf_firmware_get_model_name
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:87,1
    - Dst: FU_PIXART_RF_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:87,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:90,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:97,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:98,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:108,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:115,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: 116
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 116
    functionName: fu_pixart_rf_ble_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_pixart_rf_firmware_is_hpac
    - fu_input_stream_read_u32
    - fu_firmware_parse_stream
    - g_set_error
    - FU_PIXART_RF_BLE_DEVICE
    - g_set_error_literal
    - g_steal_pointer
    - fu_device_has_private_flag
    - fu_pixart_rf_firmware_get_model_name
    - fu_firmware_set_stream
    - g_autoptr
    - FU_PIXART_RF_FIRMWARE
    - fu_partial_input_stream_new
    - fu_pixart_rf_firmware_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_pixart_rf_ble_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_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:122,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 5
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: fu_pixart_rf_ble_device_set_feature_cb
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - FU_HIDRAW_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_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-pixart-rf-ble-device.c:132,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - req
    - error
    argTypes:
    - FuPixartRfBleDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 4
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: fu_pixart_rf_ble_device_set_feature
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_ble_device_set_feature(FuPixartRfBleDevice *self,
      GByteArray *req, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:145,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:145,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:156,1
    - Dst: memmove
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuPixartRfBleDevice*
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 139
    functionDepth: 5
    functionLinenumber: 139
    functionLinenumberEnd: 163
    functionName: fu_pixart_rf_ble_device_get_feature
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - memmove
    - fu_hidraw_device_get_feature
    - g_debug
    - FU_HIDRAW_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_ble_device_get_feature(FuPixartRfBleDevice *self,\n\t\t\t\t
      \   guint8 *buf,\n\t\t\t\t    guint bufsz,\n\t\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:171,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:172,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:175,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:188,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:188,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:193,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:193,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: 195
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 195
    functionName: fu_pixart_rf_ble_device_search_hid_feature_report_id
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_get_image_by_id
    - FU_HID_REPORT_ITEM
    - fu_hid_report_item_get_value
    - g_autoptr
    - fu_hid_descriptor_find_report
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_ble_device_search_hid_feature_report_id(FuHidDescriptor
      *descriptor,\n\t\t\t\t\t\t     guint16 usage_page,\n\t\t\t\t\t\t     guint8
      *report_id,\n\t\t\t\t\t\t     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:203,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:204,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:207,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:220,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:220,1
    - Dst: fu_hid_report_item_get_value
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:225,1
    - Dst: FU_HID_REPORT_ITEM
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:225,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: 227
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 227
    functionName: fu_pixart_rf_ble_device_search_hid_input_report_id
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_get_image_by_id
    - FU_HID_REPORT_ITEM
    - fu_hid_report_item_get_value
    - g_autoptr
    - fu_hid_descriptor_find_report
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_ble_device_search_hid_input_report_id(FuHidDescriptor
      *descriptor,\n\t\t\t\t\t\t   guint16 usage_page,\n\t\t\t\t\t\t   guint8 *report_id,\n\t\t\t\t\t\t
      \  GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:232,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:233,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:234,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:235,1
    - Dst: fu_hidraw_device_parse_descriptor
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:237,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:237,1
    - Dst: fu_pixart_rf_ble_device_search_hid_feature_report_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:242,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:247,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:249,1
    - Dst: fu_pixart_rf_ble_device_search_hid_feature_report_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:254,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:259,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:261,1
    - Dst: fu_pixart_rf_ble_device_search_hid_input_report_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:266,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:271,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:273,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartRfBleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 229
    functionDepth: 6
    functionLinenumber: 229
    functionLinenumberEnd: 279
    functionName: fu_pixart_rf_ble_device_check_support_report_id
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_rf_ble_device_search_hid_input_report_id
    - g_debug
    - fu_pixart_rf_ble_device_search_hid_feature_report_id
    - FU_HIDRAW_DEVICE
    - fu_hidraw_device_parse_descriptor
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_ble_device_check_support_report_id(FuPixartRfBleDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:284,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:284,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:287,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:288,1
    - Dst: fu_pixart_rf_ble_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartRfBleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 281
    functionDepth: 5
    functionLinenumber: 281
    functionLinenumberEnd: 290
    functionName: fu_pixart_rf_ble_device_fw_ota_check_retransmit
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_rf_ble_device_set_feature
    - g_byte_array_new
    - g_autoptr
    - fu_byte_array_append_uint8
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_ble_device_fw_ota_check_retransmit(FuPixartRfBleDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:298,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:299,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:303,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:308,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:312,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:313,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:319,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:325,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:328,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:331,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:331,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:331,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:336,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuPixartRfBleDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 348
    functionName: fu_pixart_rf_ble_device_check_support_resume
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_sum16
    - g_set_error
    - fu_firmware_get_bytes
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_chunk_get_data
    - g_autoptr
    - fu_chunk_array_length
    - fu_chunk_array_new_from_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_ble_device_check_support_resume(FuPixartRfBleDevice
      *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: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:357,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:357,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:362,1
    - Dst: fu_udev_device_pread
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:363,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:363,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:375,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:384,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:388,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:391,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:404,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 5
    argNames:
    - self
    - port
    - status
    - checksum
    - error
    argTypes:
    - FuPixartRfBleDevice*
    - goffset
    - guint8*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 350
    functionDepth: 4
    functionLinenumber: 350
    functionLinenumberEnd: 415
    functionName: fu_pixart_rf_ble_device_wait_notify
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - fu_udev_device_pread
    - fu_memread_uint8_safe
    - g_timer_elapsed
    - g_timer_new
    - g_autoptr
    - fu_memread_uint16_safe
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_ble_device_wait_notify(FuPixartRfBleDevice *self,\n\t\t\t\t
      \   goffset port,\n\t\t\t\t    guint8 *status,\n\t\t\t\t    guint16 *checksum,\n\t\t\t\t
      \   GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:421,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:421,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:424,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:425,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:426,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:426,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:427,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:427,1
    - Dst: fu_pixart_rf_ble_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:428,1
    - Dst: fu_pixart_rf_ble_device_wait_notify
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:432,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuPixartRfBleDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 417
    functionDepth: 5
    functionLinenumber: 417
    functionLinenumberEnd: 446
    functionName: fu_pixart_rf_ble_device_fw_object_create
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_chunk_get_data_sz
    - fu_pixart_rf_ble_device_set_feature
    - fu_byte_array_append_uint8
    - fu_pixart_rf_ble_device_wait_notify
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - g_autoptr
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_ble_device_fw_object_create(FuPixartRfBleDevice
      *self, FuChunk *chk, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:451,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:451,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:452,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:453,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:453,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:453,1
    - Dst: fu_pixart_rf_ble_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuPixartRfBleDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 448
    functionDepth: 5
    functionLinenumber: 448
    functionLinenumberEnd: 455
    functionName: fu_pixart_rf_ble_device_write_payload
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_pixart_rf_ble_device_set_feature
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - fu_chunk_get_data
    - g_byte_array_append
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_ble_device_write_payload(FuPixartRfBleDevice
      *self, FuChunk *chk, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:463,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:464,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:464,1
    - Dst: fu_pixart_rf_ble_device_fw_object_create
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:467,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:471,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:472,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:475,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:476,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:479,1
    - Dst: fu_pixart_rf_ble_device_write_payload
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:482,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:487,1
    - Dst: fu_pixart_rf_ble_device_wait_notify
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:489,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:496,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:508,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:508,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:508,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:511,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuPixartRfBleDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 457
    functionDepth: 6
    functionLinenumber: 457
    functionLinenumberEnd: 522
    functionName: fu_pixart_rf_ble_device_write_chunk
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_rf_ble_device_fw_object_create
    - fu_sum16
    - fu_chunk_array_new_from_bytes
    - g_set_error
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_pixart_rf_ble_device_write_payload
    - fu_pixart_rf_ble_device_wait_notify
    - fu_chunk_get_data
    - fu_chunk_get_bytes
    - fu_chunk_array_length
    - g_autoptr
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_ble_device_write_chunk(FuPixartRfBleDevice *self,
      FuChunk *chk, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:527,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:527,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:528,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:529,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:531,1
    - Dst: fu_pixart_rf_ble_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:533,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartRfBleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 524
    functionDepth: 5
    functionLinenumber: 524
    functionLinenumberEnd: 540
    functionName: fu_pixart_rf_ble_device_reset
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_rf_ble_device_set_feature
    - g_prefix_error_literal
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_ble_device_reset(FuPixartRfBleDevice *self, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:545,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:545,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:548,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:549,1
    - Dst: fu_pixart_rf_ble_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartRfBleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 542
    functionDepth: 5
    functionLinenumber: 542
    functionLinenumberEnd: 551
    functionName: fu_pixart_rf_ble_device_fw_ota_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_rf_ble_device_set_feature
    - g_byte_array_new
    - g_autoptr
    - fu_byte_array_append_uint8
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_ble_device_fw_ota_init(FuPixartRfBleDevice *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:558,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:558,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:561,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:562,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:563,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:564,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:565,1
    - Dst: fu_pixart_rf_ble_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:566,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:570,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:570,1
    - Dst: fu_pixart_rf_ble_device_get_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:575,1
    - Dst: fu_pixart_rf_ota_fw_state_parse
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:579,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:582,1
    - Dst: fu_pixart_rf_ota_spec_check_result_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:587,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - self
    - bufsz
    - error
    argTypes:
    - FuPixartRfBleDevice*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 553
    functionDepth: 6
    functionLinenumber: 553
    functionLinenumberEnd: 594
    functionName: fu_pixart_rf_ble_device_fw_ota_init_new
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_sleep
    - fu_pixart_rf_ble_device_set_feature
    - fu_byte_array_append_uint8
    - FU_DEVICE
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - g_byte_array_append
    - fu_pixart_rf_ota_fw_state_parse
    - g_autoptr
    - fu_pixart_rf_ota_spec_check_result_to_string
    - fu_pixart_rf_ble_device_get_feature
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_ble_device_fw_ota_init_new(FuPixartRfBleDevice
      *self, gsize bufsz, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:606,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:607,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:607,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:609,1
    - Dst: fu_sum16_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:612,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:613,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:614,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:615,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:615,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:616,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:617,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:617,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:618,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:619,1
    - Dst: strlen
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:623,1
    - Dst: strlen
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:625,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:629,1
    - Dst: fu_pixart_rf_ble_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:632,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:635,1
    - Dst: fu_pixart_rf_ble_device_wait_notify
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:638,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:639,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:643,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:647,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuPixartRfBleDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 596
    functionDepth: 5
    functionLinenumber: 596
    functionLinenumberEnd: 657
    functionName: fu_pixart_rf_ble_device_fw_upgrade
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_uint16
    - fu_byte_array_append_uint32
    - fu_firmware_get_bytes
    - fu_pixart_rf_ble_device_set_feature
    - fu_pixart_rf_ble_device_wait_notify
    - g_byte_array_new
    - fu_sum16_bytes
    - fu_byte_array_append_uint8
    - FU_DEVICE
    - g_byte_array_append
    - fu_dump_raw
    - g_set_error
    - g_prefix_error
    - fu_device_has_private_flag
    - strlen
    - g_bytes_get_size
    - fu_memcpy_safe
    - fu_firmware_get_version
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_ble_device_fw_upgrade(FuPixartRfBleDevice *self,\n\t\t\t\t
      \  FuFirmware *firmware,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   GError
      **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_RF_BLE_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:666,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:667,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:668,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:669,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:672,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:673,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:674,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:675,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:676,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:677,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:680,1
    - Dst: fu_pixart_rf_ble_device_fw_ota_check_retransmit
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:685,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:686,1
    - Dst: fu_pixart_rf_ble_device_fw_ota_init
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:690,1
    - Dst: fu_pixart_rf_ble_device_fw_ota_init_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:692,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:692,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:694,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:697,1
    - Dst: fu_pixart_rf_ble_device_check_support_resume
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:701,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:703,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:705,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:709,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:712,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:713,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:716,1
    - Dst: fu_pixart_rf_ble_device_write_chunk
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:719,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:721,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:721,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:723,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:725,1
    - Dst: fu_pixart_rf_ble_device_fw_upgrade
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:728,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:730,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:733,1
    - Dst: fu_pixart_rf_ble_device_reset
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:736,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:738,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:739,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: 743
      start: 659
    functionDepth: 7
    functionLinenumber: 659
    functionLinenumberEnd: 743
    functionName: fu_pixart_rf_ble_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_pixart_rf_ble_device_fw_ota_init_new
    - g_autoptr
    - fu_pixart_rf_ble_device_reset
    - g_debug
    - fu_firmware_get_bytes
    - FU_PIXART_RF_BLE_DEVICE
    - g_prefix_error_literal
    - fu_pixart_rf_ble_device_write_chunk
    - fu_progress_set_percentage_full
    - fu_progress_add_step
    - fu_progress_step_done
    - fu_pixart_rf_ble_device_check_support_resume
    - fu_pixart_rf_ble_device_fw_upgrade
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_pixart_rf_ble_device_fw_ota_init
    - fu_progress_set_id
    - fu_chunk_array_index
    - fu_pixart_rf_ble_device_fw_ota_check_retransmit
    - g_bytes_get_size
    - fu_chunk_array_new_from_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_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: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:753,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:753,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:755,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:756,1
    - Dst: fu_pixart_rf_ble_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:757,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:761,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:761,1
    - Dst: fu_pixart_rf_ble_device_get_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:766,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:771,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:774,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:782,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:782,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:783,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:787,1
    - Dst: fu_pixart_rf_hpac_version_info_parse
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:795,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:797,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:797,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:800,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartRfBleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 745
    functionDepth: 6
    functionLinenumber: 745
    functionLinenumberEnd: 805
    functionName: fu_pixart_rf_ble_device_fw_get_info
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_memstrsafe
    - g_set_error
    - fu_device_sleep
    - fu_pixart_rf_ble_device_set_feature
    - fu_pixart_rf_hpac_version_info_parse
    - fu_byte_array_append_uint8
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_byte_array_new
    - fu_memread_uint8_safe
    - g_autoptr
    - fu_memread_uint16_safe
    - fu_pixart_rf_ble_device_get_feature
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_ble_device_fw_get_info(FuPixartRfBleDevice *self,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:813,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:813,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:815,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:816,1
    - Dst: fu_pixart_rf_ble_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:818,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:822,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:822,1
    - Dst: fu_pixart_rf_ble_device_get_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:825,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:827,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:835,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:844,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:846,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartRfBleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 807
    functionDepth: 6
    functionLinenumber: 807
    functionLinenumberEnd: 850
    functionName: fu_pixart_rf_ble_device_get_model_info
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - g_clear_pointer
    - g_strndup
    - fu_device_sleep
    - fu_pixart_rf_ble_device_set_feature
    - fu_byte_array_append_uint8
    - FU_DEVICE
    - g_byte_array_new
    - fu_memread_uint8_safe
    - fu_memcpy_safe
    - g_autoptr
    - fu_pixart_rf_ble_device_get_feature
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_ble_device_get_model_info(FuPixartRfBleDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:855,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:856,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:857,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:860,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:860,1
    - Dst: g_string_ascii_up
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:861,1
    - Dst: g_string_replace
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:862,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:865,1
    - Dst: g_string_ascii_up
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:866,1
    - Dst: g_string_replace
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:867,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:870,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:870,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:870,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:871,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:871,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:871,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:872,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:873,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:874,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:876,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartRfBleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 852
    functionDepth: 7
    functionLinenumber: 852
    functionLinenumberEnd: 879
    functionName: fu_pixart_rf_ble_device_setup_guid
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_pid
    - g_string_replace
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - g_string_ascii_up
    - FU_DEVICE
    - fu_device_get_vid
    - g_string_new
    - fu_device_get_name
    - g_autoptr
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_ble_device_setup_guid(FuPixartRfBleDevice *self,
      GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_RF_BLE_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:884,1
    - Dst: fu_pixart_rf_ble_device_check_support_report_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:886,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:887,1
    - Dst: fu_pixart_rf_ble_device_fw_ota_check_retransmit
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:890,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:891,1
    - Dst: fu_pixart_rf_ble_device_fw_ota_init
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:894,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:895,1
    - Dst: fu_pixart_rf_ble_device_fw_get_info
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:898,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:899,1
    - Dst: fu_pixart_rf_ble_device_get_model_info
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:902,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:903,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:908,1
    - Dst: fu_pixart_rf_ble_device_setup_guid
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:911,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:912,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 881
    functionDepth: 8
    functionLinenumber: 881
    functionLinenumberEnd: 917
    functionName: fu_pixart_rf_ble_device_setup
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_rf_ble_device_get_model_info
    - FU_PIXART_RF_BLE_DEVICE
    - g_prefix_error_literal
    - fu_pixart_rf_ble_device_check_support_report_id
    - fu_pixart_rf_ble_device_fw_get_info
    - fu_pixart_rf_ble_device_fw_ota_check_retransmit
    - fu_pixart_rf_ble_device_setup_guid
    - FU_DEVICE_CLASS
    - fu_pixart_rf_ble_device_fw_ota_init
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_ble_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:922,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:923,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:924,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:925,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:926,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 919
    functionDepth: 3
    functionLinenumber: 919
    functionLinenumberEnd: 928
    functionName: fu_pixart_rf_ble_device_set_progress
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_ble_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:933,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:933,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:934,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:934,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:935,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:935,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:936,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:936,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:937,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:937,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:938,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:938,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:939,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:939,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:940,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:940,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:944,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:944,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:945,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPixartRfBleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 930
    functionDepth: 6
    functionLinenumber: 930
    functionLinenumberEnd: 946
    functionName: fu_pixart_rf_ble_device_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_retry_set_delay
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_build_vendor_id_u16
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_ble_device_init(FuPixartRfBleDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_RF_BLE_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:951,1
    - Dst: g_free
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:952,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 954
    functionName: fu_pixart_rf_ble_device_finalize
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_RF_BLE_DEVICE
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_ble_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:959,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c:960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPixartRfBleDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 967
    functionName: fu_pixart_rf_ble_device_class_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_ble_device_class_init(FuPixartRfBleDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPixartRfPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: fu_pixart_rf_plugin_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_plugin_init(FuPixartRfPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-plugin.c:29,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-plugin.c:30,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-plugin.c:31,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-plugin.c:32,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-plugin.c:33,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-plugin.c:34,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-plugin.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: fu_pixart_rf_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-plugin.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPixartRfPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: fu_pixart_rf_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_plugin_class_init(FuPixartRfPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:16,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:18,1
    - Dst: fu_firmware_roundtrip_from_filename
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:19,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:23,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 11
    functionDepth: 7
    functionLinenumber: 11
    functionLinenumberEnd: 25
    functionName: fu_pixart_rf_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - fu_firmware_roundtrip_from_filename
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_firmware_xml_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:30,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:31,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:32,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:33,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/pixart-rf/fu-self-test.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: main
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_type_ensure
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:31,1
    - Dst: FU_IS_PIXART_RF_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPixartRfFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: fu_pixart_rf_firmware_get_model_name
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PIXART_RF_FIRMWARE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_pixart_rf_firmware_get_model_name(FuPixartRfFirmware *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_RF_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:38,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-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_pixart_rf_firmware_export
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_RF_FIRMWARE
    - fu_xmlb_builder_insert_kv
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_RF_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:49,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:53,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:56,1
    - Dst: fu_input_stream_read_u64
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:62,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:68,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:75,1
    - Dst: fu_input_stream_read_u64
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:81,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:87,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:91,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 104
    functionName: fu_pixart_rf_firmware_validate
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_input_stream_size
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_input_stream_read_u64
    - FU_PIXART_RF_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_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_PIXART_RF_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:112,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:121,1
    - Dst: fu_pixart_rf_firmware_is_hpac
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:123,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:125,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:131,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:138,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:143,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:149,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:156,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:161,1
    - Dst: fu_pixart_rf_firmware_is_hpac
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:164,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:165,1
    - Dst: fu_pixart_rf_hpac_version_info_parse
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:174,1
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:179,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:181,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:182,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:185,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:193,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:196,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 200
    functionName: fu_pixart_rf_firmware_parse
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_safe
    - fu_firmware_set_version_raw
    - fu_input_stream_read_u16
    - g_strndup
    - fu_pixart_rf_firmware_is_hpac
    - fu_firmware_set_version
    - fu_input_stream_size
    - fu_pixart_rf_hpac_version_info_parse
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_version_from_uint32
    - fu_memcpy_safe
    - fu_dump_raw
    - FU_PIXART_RF_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_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_PIXART_RF_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:205,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:209,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 215
    functionName: fu_pixart_rf_firmware_build
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - xb_node_query_text
    - FU_PIXART_RF_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_firmware_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_RF_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:220,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:222,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:224,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:237,1
    - Dst: fu_pixart_rf_firmware_is_hpac
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:241,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:242,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:242,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:243,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:244,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:247,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:247,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:248,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:251,1
    - Dst: g_ascii_isdigit
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:265,1
    - Dst: g_ascii_isdigit
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:265,1
    - Dst: g_ascii_isdigit
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:266,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:267,1
    - Dst: MIN
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:276,1
    - Dst: strlen
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:276,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:277,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:285,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:290,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:291,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 292
    functionName: fu_pixart_rf_firmware_write
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_raw
    - fu_byte_array_append_bytes
    - fu_firmware_get_bytes_with_patches
    - fu_pixart_rf_firmware_is_hpac
    - g_byte_array_sized_new
    - g_set_error
    - g_steal_pointer
    - g_ascii_isdigit
    - g_prefix_error_literal
    - strlen
    - MIN
    - g_bytes_get_size
    - fu_memcpy_safe
    - g_byte_array_append
    - g_autoptr
    - FU_PIXART_RF_FIRMWARE
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_pixart_rf_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:297,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPixartRfFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: fu_pixart_rf_firmware_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_firmware_init(FuPixartRfFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_RF_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:303,1
    - Dst: g_free
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:304,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 306
    functionName: fu_pixart_rf_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_RF_FIRMWARE
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_firmware_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:311,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPixartRfFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 319
    functionName: fu_pixart_rf_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_firmware_class_init(FuPixartRfFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:324,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: fu_pixart_rf_firmware_new
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c
    functionUses: 2
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_pixart_rf_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPixartRfFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: fu_pixart_rf_firmware_is_hpac
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_firmware_is_hpac(FuPixartRfFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_RF_WIRELESS_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:31,1
    - Dst: fu_pixart_rf_ota_fw_state_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:32,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:33,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:34,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: fu_pixart_rf_wireless_device_to_string
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_RF_WIRELESS_DEVICE
    - fu_pixart_rf_ota_fw_state_to_string
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_wireless_device_to_string(FuDevice *device, guint
      idt, GString *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_RF_WIRELESS_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:45,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:47,1
    - Dst: fu_pixart_rf_firmware_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:47,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:49,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:52,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:52,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:55,1
    - Dst: fu_pixart_rf_firmware_is_hpac
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:56,1
    - Dst: FU_PIXART_RF_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:56,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:58,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:60,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:62,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:65,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:67,1
    - Dst: fu_pixart_rf_firmware_is_hpac
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:68,1
    - Dst: FU_PIXART_RF_FIRMWARE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:68,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:69,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:76,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: 77
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 77
    functionName: fu_pixart_rf_wireless_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_rf_firmware_is_hpac
    - fu_input_stream_read_u32
    - fu_firmware_parse_stream
    - g_set_error_literal
    - g_steal_pointer
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_PIXART_RF_WIRELESS_DEVICE
    - fu_firmware_set_stream
    - g_autoptr
    - FU_PIXART_RF_FIRMWARE
    - fu_partial_input_stream_new
    - fu_pixart_rf_firmware_new
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_pixart_rf_wireless_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: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:89,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:89,1
    - Dst: memset
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:95,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:98,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:98,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:100,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:100,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:106,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:115,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:125,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:129,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuPixartRfWirelessDevice*
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 79
    functionDepth: 5
    functionLinenumber: 79
    functionLinenumberEnd: 133
    functionName: fu_pixart_rf_wireless_device_get_cmd_response
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - fu_device_sleep
    - fu_hidraw_device_get_feature
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_memread_uint8_safe
    - memset
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_wireless_device_get_cmd_response(FuPixartRfWirelessDevice
      *self,\n\t\t\t\t\t      guint8 *buf,\n\t\t\t\t\t      guint bufsz,\n\t\t\t\t\t
      \     GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:144,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:144,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:145,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:145,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:148,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:149,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:151,1
    - Dst: fu_pixart_rf_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:156,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:163,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:163,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:166,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:166,1
    - Dst: fu_pixart_rf_wireless_device_get_cmd_response
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:172,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:175,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:177,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:179,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:187,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:196,1
    - Dst: fu_pixart_rf_wireless_module_ota_rsp_code_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:200,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - self
    - checksum
    - error
    argTypes:
    - FuPixartRfWirelessDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 135
    functionDepth: 6
    functionLinenumber: 135
    functionLinenumberEnd: 206
    functionName: fu_pixart_rf_wireless_device_check_crc
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint16
    - g_set_error
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_dump_raw
    - g_byte_array_new
    - fu_pixart_rf_wireless_device_get_cmd_response
    - fu_memread_uint8_safe
    - fu_pixart_rf_wireless_module_ota_rsp_code_to_string
    - fu_device_get_proxy
    - g_autoptr
    - fu_memread_uint16_safe
    - fu_pixart_rf_composite_receiver_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_wireless_device_check_crc(FuPixartRfWirelessDevice
      *self,\n\t\t\t\t       guint16 checksum,\n\t\t\t\t       GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:216,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:216,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:217,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:217,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:220,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:221,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:223,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:223,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:224,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:224,1
    - Dst: fu_pixart_rf_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:230,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:238,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:238,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:241,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:241,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:249,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:249,1
    - Dst: fu_pixart_rf_wireless_device_get_cmd_response
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:251,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:253,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:256,1
    - Dst: fu_pixart_rf_wireless_module_ota_rsp_code_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuPixartRfWirelessDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 208
    functionDepth: 6
    functionLinenumber: 208
    functionLinenumberEnd: 267
    functionName: fu_pixart_rf_wireless_device_fw_object_create
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - g_set_error
    - fu_device_sleep
    - fu_chunk_get_data_sz
    - fu_pixart_rf_composite_receiver_cmd
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - fu_pixart_rf_wireless_device_get_cmd_response
    - fu_memread_uint8_safe
    - fu_pixart_rf_wireless_module_ota_rsp_code_to_string
    - fu_device_get_proxy
    - g_autoptr
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_wireless_device_fw_object_create(FuPixartRfWirelessDevice
      *self,\n\t\t\t\t\t      FuChunk *chk,\n\t\t\t\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:275,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:275,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:276,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:276,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:279,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:279,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:280,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:281,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:282,1
    - Dst: fu_pixart_rf_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:288,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:295,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:295,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:298,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:298,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:306,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuPixartRfWirelessDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 269
    functionDepth: 5
    functionLinenumber: 269
    functionLinenumberEnd: 310
    functionName: fu_pixart_rf_wireless_device_write_payload
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_device_sleep
    - fu_chunk_get_data_sz
    - fu_device_get_proxy
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - g_byte_array_new
    - fu_chunk_get_data
    - g_byte_array_append
    - g_autoptr
    - fu_pixart_rf_composite_receiver_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_wireless_device_write_payload(FuPixartRfWirelessDevice
      *self,\n\t\t\t\t\t   FuChunk *chk,\n\t\t\t\t\t   GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:318,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:319,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:319,1
    - Dst: fu_pixart_rf_wireless_device_fw_object_create
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:322,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:326,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:327,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:331,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:332,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:335,1
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:341,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:341,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:341,1
    - Dst: fu_pixart_rf_wireless_device_write_payload
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:342,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:348,1
    - Dst: fu_pixart_rf_wireless_device_check_crc
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:349,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - self
    - chk
    - error
    argTypes:
    - FuPixartRfWirelessDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 312
    functionDepth: 7
    functionLinenumber: 312
    functionLinenumberEnd: 359
    functionName: fu_pixart_rf_wireless_device_write_chunk
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_sum16
    - fu_pixart_rf_wireless_device_fw_object_create
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_pixart_rf_wireless_device_write_payload
    - fu_chunk_get_data
    - fu_pixart_rf_wireless_device_check_crc
    - fu_chunk_get_bytes
    - fu_chunk_array_length
    - g_autoptr
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_wireless_device_write_chunk(FuPixartRfWirelessDevice
      *self,\n\t\t\t\t\t FuChunk *chk,\n\t\t\t\t\t GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:365,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:365,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:366,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:366,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:368,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:369,1
    - Dst: fu_pixart_rf_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:375,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:383,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:383,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:386,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartRfWirelessDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 361
    functionDepth: 5
    functionLinenumber: 361
    functionLinenumberEnd: 391
    functionName: fu_pixart_rf_wireless_device_fw_ota_preceding
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - g_byte_array_new
    - fu_device_get_proxy
    - g_autoptr
    - fu_pixart_rf_composite_receiver_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_wireless_device_fw_ota_preceding(FuPixartRfWirelessDevice
      *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:402,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:402,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:403,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:403,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:405,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:406,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:409,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:410,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:411,1
    - Dst: fu_pixart_rf_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:415,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:423,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:423,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:426,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:426,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:434,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:434,1
    - Dst: fu_pixart_rf_wireless_device_get_cmd_response
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:436,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:438,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:441,1
    - Dst: fu_pixart_rf_wireless_module_ota_rsp_code_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:445,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - self
    - bufsz
    - error
    argTypes:
    - FuPixartRfWirelessDevice*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 393
    functionDepth: 6
    functionLinenumber: 393
    functionLinenumberEnd: 452
    functionName: fu_pixart_rf_wireless_device_fw_ota_init_new
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - g_set_error
    - fu_device_sleep
    - fu_device_get_proxy
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - fu_pixart_rf_wireless_device_get_cmd_response
    - fu_memread_uint8_safe
    - fu_pixart_rf_wireless_module_ota_rsp_code_to_string
    - g_byte_array_append
    - g_autoptr
    - fu_pixart_rf_composite_receiver_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_wireless_device_fw_ota_init_new(FuPixartRfWirelessDevice
      *self,\n\t\t\t\t\t     gsize bufsz,\n\t\t\t\t\t     GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:460,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:460,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:461,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:461,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:464,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:465,1
    - Dst: fu_pixart_rf_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:472,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:479,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:479,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:482,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:482,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:490,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:490,1
    - Dst: fu_pixart_rf_wireless_device_get_cmd_response
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:492,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:494,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:497,1
    - Dst: fu_pixart_rf_wireless_module_ota_rsp_code_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:501,1
    - Dst: fu_pixart_rf_ota_fw_state_parse
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:507,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartRfWirelessDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 454
    functionDepth: 6
    functionLinenumber: 454
    functionLinenumberEnd: 508
    functionName: fu_pixart_rf_wireless_device_fw_ota_ini_new_check
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - g_set_error
    - fu_device_sleep
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - g_byte_array_new
    - fu_pixart_rf_wireless_device_get_cmd_response
    - fu_memread_uint8_safe
    - fu_pixart_rf_wireless_module_ota_rsp_code_to_string
    - fu_device_get_proxy
    - fu_pixart_rf_ota_fw_state_parse
    - g_autoptr
    - fu_pixart_rf_composite_receiver_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_wireless_device_fw_ota_ini_new_check(FuPixartRfWirelessDevice
      *self, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:521,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:521,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:522,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:522,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:523,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:526,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:527,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:528,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:530,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:535,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:536,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:539,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:540,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:542,1
    - Dst: fu_sum16_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:543,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:546,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:546,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:549,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:549,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:550,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:551,1
    - Dst: strlen
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:555,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:562,1
    - Dst: fu_pixart_rf_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:566,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:573,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:576,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:576,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:584,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:584,1
    - Dst: fu_pixart_rf_wireless_device_get_cmd_response
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:586,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:588,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:591,1
    - Dst: fu_pixart_rf_wireless_module_ota_rsp_code_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:595,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:600,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuPixartRfWirelessDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 510
    functionDepth: 6
    functionLinenumber: 510
    functionLinenumberEnd: 602
    functionName: fu_pixart_rf_wireless_device_fw_upgrade
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint16
    - fu_byte_array_append_uint32
    - fu_pixart_rf_wireless_module_ota_rsp_code_to_string
    - fu_firmware_get_bytes
    - g_byte_array_new
    - fu_device_get_proxy
    - fu_progress_add_step
    - fu_sum16_bytes
    - fu_device_sleep
    - fu_progress_step_done
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_memread_uint8_safe
    - g_byte_array_append
    - fu_progress_set_id
    - g_set_error
    - fu_device_has_private_flag
    - fu_pixart_rf_wireless_device_get_cmd_response
    - strlen
    - g_bytes_get_size
    - fu_memcpy_safe
    - fu_firmware_get_version
    - g_autoptr
    - fu_pixart_rf_composite_receiver_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_wireless_device_fw_upgrade(FuPixartRfWirelessDevice
      *self,\n\t\t\t\t\tFuFirmware *firmware,\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/pixart-rf/fu-pixart-rf-wireless-device.c:608,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:608,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:609,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:609,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:612,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:613,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:616,1
    - Dst: fu_pixart_rf_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:622,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:631,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:631,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:634,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:634,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:643,1
    - Dst: fu_pixart_rf_composite_receiver_cmd
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:644,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:652,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:652,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartRfWirelessDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 604
    functionDepth: 5
    functionLinenumber: 604
    functionLinenumberEnd: 657
    functionName: fu_pixart_rf_wireless_device_reset
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - g_byte_array_set_size
    - g_byte_array_new
    - fu_device_get_proxy
    - g_autoptr
    - fu_pixart_rf_composite_receiver_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_rf_wireless_device_reset(FuPixartRfWirelessDevice
      *self, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_RF_WIRELESS_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:666,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:668,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:669,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:672,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:673,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:674,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:675,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:676,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:679,1
    - Dst: fu_pixart_rf_wireless_device_fw_ota_preceding
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:684,1
    - Dst: fu_pixart_rf_wireless_device_fw_ota_init_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:687,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:687,1
    - Dst: fu_pixart_rf_wireless_device_fw_ota_ini_new_check
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:689,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:691,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:693,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:702,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:703,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:706,1
    - Dst: fu_pixart_rf_wireless_device_write_chunk
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:709,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:711,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:711,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:713,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:715,1
    - Dst: fu_pixart_rf_wireless_device_fw_upgrade
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:718,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:720,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:723,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:726,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:726,1
    - Dst: fu_pixart_rf_wireless_device_reset
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:727,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:730,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:730,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:733,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:734,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: 738
      start: 659
    functionDepth: 8
    functionLinenumber: 659
    functionLinenumberEnd: 738
    functionName: fu_pixart_rf_wireless_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_pixart_rf_wireless_device_fw_ota_init_new
    - fu_pixart_rf_wireless_device_write_chunk
    - fu_pixart_rf_wireless_device_reset
    - g_autoptr
    - FU_PIXART_RF_WIRELESS_DEVICE
    - fu_firmware_get_bytes
    - fu_pixart_rf_wireless_device_fw_ota_preceding
    - fu_device_get_proxy
    - fu_progress_set_percentage_full
    - fu_progress_add_step
    - fu_device_sleep
    - fu_pixart_rf_wireless_device_fw_upgrade
    - fu_progress_step_done
    - FU_DEVICE
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_chunk_array_index
    - fu_pixart_rf_wireless_device_fw_ota_ini_new_check
    - g_bytes_get_size
    - fu_chunk_array_new_from_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_wireless_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/pixart-rf/fu-pixart-rf-wireless-device.c:743,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:744,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:745,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:746,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:747,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 740
    functionDepth: 3
    functionLinenumber: 740
    functionLinenumberEnd: 749
    functionName: fu_pixart_rf_wireless_device_set_progress
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_wireless_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:754,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:754,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:755,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:755,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:756,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:756,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:757,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:757,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:758,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:758,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:759,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:759,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:760,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:760,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:761,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:761,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:762,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:762,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:763,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPixartRfWirelessDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 751
    functionDepth: 6
    functionLinenumber: 751
    functionLinenumberEnd: 764
    functionName: fu_pixart_rf_wireless_device_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_build_vendor_id_u16
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_wireless_device_init(FuPixartRfWirelessDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPixartRfWirelessDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 774
    functionName: fu_pixart_rf_wireless_device_class_init
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_wireless_device_class_init(FuPixartRfWirelessDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c:780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - proxy
    - model
    argTypes:
    - FuDevice*
    - FuPixartRfOtaFwDevModel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 789
    functionName: fu_pixart_rf_wireless_device_new
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuPixartRfWirelessDevice
    signature: 'FuPixartRfWirelessDevice *

      fu_pixart_rf_wireless_device_new(FuDevice *proxy, FuPixartRfOtaFwDevModel *model)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:16,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:17,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:18,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:19,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:20,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:21,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:22,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:26,1
    - Dst: fu_pixart_rf_ota_spec_check_result_to_string
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - fwstate
    - idt
    - str
    argTypes:
    - FuPixartRfOtaFwState*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 13
    functionDepth: 3
    functionLinenumber: 13
    functionLinenumberEnd: 31
    functionName: fu_pixart_rf_ota_fw_state_to_string
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c
    functionUses: 3
    functionsReached:
    - fwupd_codec_string_append_hex
    - fu_pixart_rf_ota_spec_check_result_to_string
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_pixart_rf_ota_fw_state_to_string(FuPixartRfOtaFwState *fwstate,
      guint idt, GString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:40,1
    - Dst: fu_struct_pixart_rf_ota_fw_state_parse
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:42,1
    - Dst: fu_struct_pixart_rf_ota_fw_state_get_status
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:45,1
    - Dst: fu_struct_pixart_rf_ota_fw_state_get_new_flow
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:46,1
    - Dst: fu_struct_pixart_rf_ota_fw_state_get_offset
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:47,1
    - Dst: fu_struct_pixart_rf_ota_fw_state_get_checksum
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:48,1
    - Dst: fu_struct_pixart_rf_ota_fw_state_get_max_object_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:49,1
    - Dst: fu_struct_pixart_rf_ota_fw_state_get_mtu_size
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:50,1
    - Dst: fu_struct_pixart_rf_ota_fw_state_get_prn_threshold
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:51,1
    - Dst: fu_struct_pixart_rf_ota_fw_state_get_spec_check_result
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 5
    argNames:
    - fwstate
    - buf
    - bufsz
    - offset
    - error
    argTypes:
    - FuPixartRfOtaFwState*
    - guint8*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 56
    functionName: fu_pixart_rf_ota_fw_state_parse
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c
    functionUses: 3
    functionsReached:
    - fu_struct_pixart_rf_ota_fw_state_get_offset
    - fu_struct_pixart_rf_ota_fw_state_get_mtu_size
    - fu_struct_pixart_rf_ota_fw_state_get_prn_threshold
    - fu_struct_pixart_rf_ota_fw_state_get_spec_check_result
    - fu_struct_pixart_rf_ota_fw_state_get_new_flow
    - fu_struct_pixart_rf_ota_fw_state_get_max_object_size
    - fu_struct_pixart_rf_ota_fw_state_parse
    - fu_struct_pixart_rf_ota_fw_state_get_checksum
    - g_autoptr
    - fu_struct_pixart_rf_ota_fw_state_get_status
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_ota_fw_state_parse(FuPixartRfOtaFwState *fwstate,\n\t\t\t\tconst
      guint8 *buf,\n\t\t\t\tgsize bufsz,\n\t\t\t\tgsize offset,\n\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:73,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:78,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:79,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:83,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:86,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:87,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:92,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:93,1
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:96,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:97,1
    - Dst: g_byte_array_prepend
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:100,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: 102
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 102
    functionName: fu_pixart_rf_composite_receiver_cmd
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c
    functionUses: 17
    functionsReached:
    - g_set_error_literal
    - g_byte_array_prepend
    - fu_byte_array_append_uint8
    - fu_sum8
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_rf_composite_receiver_cmd(guint8 opcode,\n\t\t\t\t
      \   guint8 sn,\n\t\t\t\t    guint8 target,\n\t\t\t\t    GByteArray *wireless_mod_cmd,\n\t\t\t\t
      \   GByteArray *ota_cmd,\n\t\t\t\t    GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hpac_ver
    argTypes:
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: fu_pixart_rf_hpac_version_info_parse
    functionSourceFile: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c
    functionUses: 4
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_pixart_rf_hpac_version_info_parse(const guint16 hpac_ver)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:29,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:29,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:32,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:34,1
    - Dst: fu_plugin_remove_device
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:35,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: 37
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 37
    functionName: fu_synaptics_mst_plugin_write_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_remove_device
    - fu_device_locker_new
    - fu_device_has_private_flag
    - g_autoptr
    - fu_device_write_firmware
    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: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    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:47,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:48,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:49,1
    - Dst: fu_plugin_add_udev_subsystem
      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_device_gtype
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:52,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:53,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 57
    functionName: fu_synaptics_mst_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_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:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsMstPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    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:29,1
    - Dst: FU_IS_SYNAPTICS_MST_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsMstFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    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:36,1
    - Dst: FU_IS_SYNAPTICS_MST_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - family
    argTypes:
    - FuSynapticsMstFirmware*
    - FuSynapticsMstFamily
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    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:45,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:46,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:47,1
    - Dst: fu_synaptics_mst_family_to_string
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    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_synaptics_mst_firmware_export
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - fu_synaptics_mst_family_to_string
    - fu_xmlb_builder_insert_kv
    - FU_SYNAPTICS_MST_FIRMWARE
    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:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:58,1
    - Dst: fu_struct_synaptics_firmware_config_parse_stream
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:59,1
    - Dst: fu_struct_synaptics_firmware_config_get_magic1
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:64,1
    - Dst: fu_struct_synaptics_firmware_config_get_magic2
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:65,1
    - Dst: fu_struct_synaptics_firmware_config_get_version
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:66,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - self
    - stream
    - offset
    - error
    argTypes:
    - FuSynapticsMstFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 75
    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_get_version
    - fu_struct_synaptics_firmware_config_get_magic1
    - g_set_error_literal
    - fu_struct_synaptics_firmware_config_parse_stream
    - G_N_ELEMENTS
    - g_autoptr
    - fu_struct_synaptics_firmware_config_get_magic2
    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:83,1
    - Dst: fu_synaptics_mst_firmware_detect_family
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:88,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:106,1
    - Dst: fu_synaptics_mst_family_to_string
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:110,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:113,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 118
    functionName: fu_synaptics_mst_firmware_parse
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u16
    - g_set_error
    - FU_SYNAPTICS_MST_FIRMWARE
    - fu_synaptics_mst_family_to_string
    - fu_synaptics_mst_firmware_detect_family
    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:123,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:124,1
    - Dst: g_byte_array_new
      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_set_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:142,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:149,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:150,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:153,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:159,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:162,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 166
    functionName: fu_synaptics_mst_firmware_write
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - fu_firmware_get_bytes_with_patches
    - fu_memwrite_uint16_safe
    - g_set_error_literal
    - g_steal_pointer
    - FU_SYNAPTICS_MST_FIRMWARE
    - g_byte_array_new
    - g_autoptr
    - fu_firmware_get_idx
    - 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:171,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:175,1
    - Dst: xb_node_query_text_as_uint
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 184
    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:190,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c:190,1
    - Dst: fu_firmware_set_size_max
      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: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsMstFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: fu_synaptics_mst_firmware_init
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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: g_ptr_array_add
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:24,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - plugin
    - device
    - user_data
    argTypes:
    - FuPlugin*
    - FuDevice*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    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: fu_plugin_get_context
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:33,1
    - Dst: fu_progress_new
      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_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:35,1
    - Dst: g_dir_open
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:35,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:36,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:37,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:39,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:40,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:41,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:42,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:43,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:44,1
    - Dst: g_dir_read_name
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:46,1
    - Dst: g_build_filename
      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: 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: FU_DEVICE
      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_add_device
      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: 31
    argCount: 2
    argNames:
    - plugin
    - path
    argTypes:
    - FuPlugin*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 27
    functionDepth: 10
    functionLinenumber: 27
    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_context_load_quirks
    - fu_device_add_private_flag
    - g_assert_nonnull
    - g_assert_no_error
    - fu_plugin_get_context
    - fu_device_locker_new
    - FU_DEVICE
    - fu_plugin_add_device
    - fu_progress_new
    - g_object_new
    - g_dir_read_name
    - g_dir_open
    - g_assert_true
    - g_str_has_prefix
    - g_autoptr
    - g_build_filename
    - fu_context_load_hwinfo
    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_set_path
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:94,1
    - Dst: g_test_get_dir
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:94,1
    - Dst: fu_context_load_quirks
      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_context_load_hwinfo
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:99,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:100,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:101,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:103,1
    - Dst: fu_synaptics_mst_plugin_get_type
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:103,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:104,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:104,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:106,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:108,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:109,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:110,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:113,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:114,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:116,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:117,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:118,1
    - Dst: fu_test_add_fake_devices_from_dir
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:121,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 81
    functionDepth: 11
    functionLinenumber: 81
    functionLinenumberEnd: 123
    functionName: fu_plugin_synaptics_mst_none_func
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_progress_new
    - fu_context_load_quirks
    - fu_context_load_hwinfo
    - g_signal_connect
    - fu_plugin_new_from_gtype
    - fu_synaptics_mst_plugin_get_type
    - fu_plugin_runner_startup
    - g_assert_cmpint
    - g_ptr_array_new_with_free_func
    - fu_test_add_fake_devices_from_dir
    - FU_PLUGIN
    - fu_context_set_path
    - g_test_get_dir
    - g_assert_no_error
    - g_file_test
    - g_error_matches
    - G_CALLBACK
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    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:131,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:132,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:132,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:133,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:134,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:135,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:136,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:140,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:141,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:143,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:144,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:145,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:147,1
    - Dst: fu_synaptics_mst_plugin_get_type
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:147,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:148,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:148,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:150,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:153,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:154,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:155,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:158,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:159,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:161,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:162,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:163,1
    - Dst: fu_test_add_fake_devices_from_dir
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:166,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:168,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:169,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:170,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 126
    functionDepth: 11
    functionLinenumber: 126
    functionLinenumberEnd: 173
    functionName: fu_plugin_synaptics_mst_tb16_func
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_progress_new
    - fu_context_load_quirks
    - g_ptr_array_index
    - g_signal_connect
    - fu_plugin_new_from_gtype
    - fu_synaptics_mst_plugin_get_type
    - fu_device_to_string
    - fu_plugin_runner_startup
    - g_debug
    - g_assert_cmpint
    - g_ptr_array_new_with_free_func
    - fu_test_add_fake_devices_from_dir
    - FU_PLUGIN
    - fu_context_set_path
    - g_assert_no_error
    - g_file_test
    - g_error_matches
    - G_CALLBACK
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    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:180,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:182,1
    - Dst: fu_firmware_roundtrip_from_filename
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:183,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:187,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 175
    functionDepth: 7
    functionLinenumber: 175
    functionLinenumberEnd: 189
    functionName: fu_synaptics_mst_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - fu_firmware_roundtrip_from_filename
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    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:194,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:195,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:196,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:197,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:198,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:199,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/synaptics-mst/fu-self-test.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 202
    functionName: main
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add_func
    - 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: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    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:86,1
    - Dst: g_free
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:88,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: fu_synaptics_mst_device_finalize
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_SYNAPTICS_MST_DEVICE
    - G_OBJECT_CLASS
    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:98,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:99,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:99,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:100,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:100,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:102,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - udev_device
    - pspec
    - user_data
    argTypes:
    - FuUdevDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: fu_synaptics_mst_device_udev_device_notify_cb
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_device_has_private_flag
    - FU_DEVICE
    - FU_SYNAPTICS_MST_DEVICE
    - FU_UDEV_DEVICE
    - fu_udev_device_add_open_flag
    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:110,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:110,1
    - Dst: fu_device_set_vendor
      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_build_vendor_id_u16
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:112,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:112,1
    - Dst: fu_device_set_summary
      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_add_icon
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:114,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:114,1
    - Dst: fu_device_set_version_format
      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_set_firmware_gtype
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:116,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:116,1
    - Dst: fu_device_register_private_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_register_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:119,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:119,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:121,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:121,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:123,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:123,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:124,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:124,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:125,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:125,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:128,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:128,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSynapticsMstDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 106
    functionDepth: 6
    functionLinenumber: 106
    functionLinenumberEnd: 132
    functionName: fu_synaptics_mst_device_init
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - g_signal_connect
    - fu_device_build_vendor_id_u16
    - fu_device_add_icon
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_set_vendor
    - fu_device_add_request_flag
    - G_CALLBACK
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:137,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:138,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:139,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:140,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 142
    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:175,1
    - Dst: fu_synaptics_mst_updc_rc_to_string
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:179,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - rc
    - error
    argTypes:
    - FuSynapticsMstUpdcRc
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 182
    functionName: fu_synaptics_mst_device_rc_to_error
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_mst_updc_rc_to_string
    - g_set_error
    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:194,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:198,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:198,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:204,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 218
    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:
    - g_set_error_literal
    - fu_dpaux_device_read
    - g_prefix_error_literal
    - FU_DPAUX_DEVICE
    - 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:231,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:231,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:237,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:242,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:242,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:248,1
    - Dst: fu_synaptics_mst_device_rc_to_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:252,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:253,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - rc_cmd
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - FuSynapticsMstUpdcCmd
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 258
    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_dpaux_device_write
    - fu_synaptics_mst_device_rc_to_error
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - FU_DPAUX_DEVICE
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:268,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:270,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:276,1
    - Dst: fu_synaptics_mst_updc_cmd_to_string
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:277,1
    - Dst: fu_synaptics_mst_device_rc_send_command_and_wait
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:279,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:284,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:287,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:288,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:289,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:292,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:292,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:294,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:295,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:298,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:303,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:303,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:304,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:304,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:310,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:315,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:315,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:316,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:316,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:322,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:327,1
    - Dst: fu_synaptics_mst_updc_cmd_to_string
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:328,1
    - Dst: fu_synaptics_mst_device_rc_send_command_and_wait
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:330,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 6
    argNames:
    - self
    - rc_cmd
    - offset
    - buf
    - bufsz
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - FuSynapticsMstUpdcCmd
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 260
    functionDepth: 4
    functionLinenumber: 260
    functionLinenumberEnd: 336
    functionName: fu_synaptics_mst_device_rc_set_command
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint32
    - fu_synaptics_mst_updc_cmd_to_string
    - fu_chunk_array_new
    - fu_dpaux_device_write
    - g_debug
    - fu_chunk_get_data_sz
    - g_prefix_error_literal
    - fu_synaptics_mst_device_rc_send_command_and_wait
    - FU_DPAUX_DEVICE
    - fu_chunk_get_data
    - g_autoptr
    - g_ptr_array_index
    - 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: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:346,1
    - Dst: fu_chunk_array_mutable_new
      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:354,1
    - Dst: fu_synaptics_mst_updc_cmd_to_string
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:355,1
    - Dst: fu_synaptics_mst_device_rc_send_command_and_wait
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:357,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:362,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:365,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:366,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:367,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:370,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:370,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:371,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:371,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:377,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:382,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:382,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:383,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:383,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:389,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:394,1
    - Dst: fu_synaptics_mst_updc_cmd_to_string
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:395,1
    - Dst: fu_synaptics_mst_device_rc_send_command_and_wait
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:397,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:401,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:401,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:403,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:404,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:407,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 6
    argNames:
    - self
    - rc_cmd
    - offset
    - buf
    - bufsz
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - FuSynapticsMstUpdcCmd
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 338
    functionDepth: 4
    functionLinenumber: 338
    functionLinenumberEnd: 414
    functionName: fu_synaptics_mst_device_rc_get_command
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint32
    - fu_synaptics_mst_updc_cmd_to_string
    - fu_dpaux_device_write
    - g_debug
    - fu_chunk_get_data_sz
    - fu_dpaux_device_read
    - fu_chunk_get_data_out
    - g_prefix_error_literal
    - fu_synaptics_mst_device_rc_send_command_and_wait
    - fu_chunk_array_mutable_new
    - FU_DPAUX_DEVICE
    - g_autoptr
    - g_ptr_array_index
    - 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:419,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:422,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:422,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:426,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:433,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:435,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:436,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 416
    functionDepth: 5
    functionLinenumber: 416
    functionLinenumberEnd: 441
    functionName: fu_synaptics_mst_device_disable_rc
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_mst_device_rc_set_command
    - g_steal_pointer
    - fu_device_has_private_flag
    - FU_DEVICE
    - g_error_matches
    - g_autoptr
    - g_propagate_prefixed_error
    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:449,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:449,1
    - Dst: fu_synaptics_mst_device_disable_rc
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:453,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:454,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:457,1
    - Dst: strlen
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:461,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:463,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 443
    functionDepth: 6
    functionLinenumber: 443
    functionLinenumberEnd: 467
    functionName: fu_synaptics_mst_device_enable_rc
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_mst_device_rc_set_command
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - FU_DEVICE
    - strlen
    - 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:484,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:484,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:490,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:496,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:497,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:497,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:503,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:508,1
    - Dst: fu_dpaux_device_write
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:509,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:509,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:515,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:521,1
    - Dst: fu_synaptics_mst_device_rc_send_command_and_wait
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:522,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:526,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:526,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:532,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: 539
      start: 469
    functionDepth: 4
    functionLinenumber: 469
    functionLinenumberEnd: 539
    functionName: fu_synaptics_mst_device_rc_special_get_command
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_dpaux_device_write
    - g_debug
    - fu_dpaux_device_read
    - g_prefix_error_literal
    - fu_synaptics_mst_device_rc_send_command_and_wait
    - FU_DPAUX_DEVICE
    - fu_memwrite_uint32
    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:549,1
    - Dst: fu_synaptics_mst_device_rc_special_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:551,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:560,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:564,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: 566
      start: 541
    functionDepth: 5
    functionLinenumber: 541
    functionLinenumberEnd: 566
    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
    - g_prefix_error_literal
    - fu_synaptics_mst_device_rc_special_get_command
    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:577,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:578,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:584,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: 589
      start: 568
    functionDepth: 5
    functionLinenumber: 568
    functionLinenumberEnd: 589
    functionName: fu_synaptics_mst_device_set_flash_sector_erase
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - fu_synaptics_mst_device_rc_set_command
    - g_prefix_error
    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:603,1
    - Dst: g_bytes_unref
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:605,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:607,1
    - Dst: g_free
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - helper
    argTypes:
    - FuSynapticsMstDeviceHelper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 609
    functionName: fu_synaptics_mst_device_helper_free
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_bytes_unref
    - g_free
    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:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 617
    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:624,1
    - Dst: fu_synaptics_mst_device_set_flash_sector_erase
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:630,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:634,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:639,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:640,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:640,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:643,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:644,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:644,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:645,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:646,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:647,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:650,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:653,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:656,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:657,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:658,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:660,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:663,1
    - Dst: fu_synaptics_mst_device_get_flash_checksum
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:667,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:676,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 621
    functionDepth: 6
    functionLinenumber: 621
    functionLinenumberEnd: 687
    functionName: fu_synaptics_mst_device_update_esm_cb
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_debug
    - fu_progress_set_steps
    - fu_synaptics_mst_device_set_flash_sector_erase
    - fu_device_sleep
    - fu_progress_step_done
    - fu_synaptics_mst_device_get_flash_checksum
    - FU_DEVICE
    - fu_chunk_get_data
    - g_warning
    - fu_chunk_array_length
    - fu_chunk_get_address
    - fu_progress_set_id
    - g_set_error
    - fu_synaptics_mst_device_rc_set_command
    - fu_chunk_array_index
    - g_prefix_error
    - FU_SYNAPTICS_MST_DEVICE
    - g_autoptr
    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:696,1
    - Dst: fu_synaptics_mst_device_helper_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:696,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:699,1
    - Dst: fu_sum32_bytes
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:702,1
    - Dst: fu_synaptics_mst_device_get_flash_checksum
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:703,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:711,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:714,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:716,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:717,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:721,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:721,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 689
    functionDepth: 6
    functionLinenumber: 689
    functionLinenumberEnd: 726
    functionName: fu_synaptics_mst_device_update_esm
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_sum32_bytes
    - g_debug
    - fu_synaptics_mst_device_helper_new
    - fu_chunk_array_new_from_bytes
    - fu_synaptics_mst_device_get_flash_checksum
    - fu_device_retry
    - FU_DEVICE
    - g_object_ref
    - fu_bytes_new_offset
    - g_autoptr
    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:733,1
    - Dst: fu_synaptics_mst_device_set_flash_sector_erase
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:737,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:739,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:740,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:740,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:742,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:742,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:743,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:744,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:745,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:748,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:751,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:754,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:755,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:756,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:758,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:759,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:762,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:765,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:766,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:767,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:769,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:771,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:775,1
    - Dst: fu_synaptics_mst_device_get_flash_checksum
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:779,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:781,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:786,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 728
    functionDepth: 6
    functionLinenumber: 728
    functionLinenumberEnd: 797
    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_get_data_sz
    - g_debug
    - fu_progress_set_steps
    - fu_synaptics_mst_device_set_flash_sector_erase
    - fu_device_sleep
    - fu_progress_step_done
    - fu_synaptics_mst_device_get_flash_checksum
    - FU_DEVICE
    - fu_chunk_get_data
    - g_warning
    - fu_chunk_array_length
    - fu_chunk_get_address
    - g_set_error
    - fu_synaptics_mst_device_rc_set_command
    - fu_chunk_array_index
    - g_prefix_error
    - FU_SYNAPTICS_MST_DEVICE
    - g_bytes_get_size
    - g_autoptr
    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:805,1
    - Dst: fu_synaptics_mst_device_helper_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:805,1
    - Dst: g_bytes_ref
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:806,1
    - Dst: fu_sum32_bytes
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:807,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:808,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:809,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:813,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 799
    functionDepth: 4
    functionLinenumber: 799
    functionLinenumberEnd: 818
    functionName: fu_synaptics_mst_device_update_tesla_leaf_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_sum32_bytes
    - g_bytes_ref
    - fu_synaptics_mst_device_helper_new
    - fu_chunk_array_new_from_bytes
    - FU_DEVICE
    - g_object_ref
    - fu_device_retry
    - g_autoptr
    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:826,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:832,1
    - Dst: BIT
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:835,1
    - Dst: BIT
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:835,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 820
    functionDepth: 5
    functionLinenumber: 820
    functionLinenumberEnd: 840
    functionName: fu_synaptics_mst_device_get_active_bank_panamera
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - BIT
    - g_prefix_error_literal
    - fu_synaptics_mst_device_rc_get_command
    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:847,1
    - Dst: fu_synaptics_mst_device_set_flash_sector_erase
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:853,1
    - Dst: fu_synaptics_mst_device_set_flash_sector_erase
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:858,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:863,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:864,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:864,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:867,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:867,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:868,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:869,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:870,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:873,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:876,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:879,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:880,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:881,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:883,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:885,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:888,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:889,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:890,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:892,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:896,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:902,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:902,1
    - Dst: fu_synaptics_mst_device_rc_special_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:903,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:908,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:912,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:915,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:918,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 842
    functionDepth: 6
    functionLinenumber: 842
    functionLinenumberEnd: 929
    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_get_data_sz
    - fu_memread_uint32
    - fu_synaptics_mst_device_rc_special_get_command
    - g_debug
    - fu_progress_set_steps
    - g_prefix_error_literal
    - fu_synaptics_mst_device_set_flash_sector_erase
    - fu_device_sleep
    - fu_progress_step_done
    - FU_DEVICE
    - fu_chunk_get_data
    - g_warning
    - fu_chunk_array_length
    - fu_chunk_get_address
    - g_set_error
    - fu_synaptics_mst_device_rc_set_command
    - fu_chunk_array_index
    - FU_SYNAPTICS_MST_DEVICE
    - g_bytes_get_size
    - g_autoptr
    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:936,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:940,1
    - Dst: g_date_time_new_now_utc
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:940,1
    - Dst: g_date_time_get_month
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:943,1
    - Dst: g_date_time_get_day_of_month
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:944,1
    - Dst: g_date_time_get_year
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:945,1
    - Dst: fu_crc8
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:948,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:949,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:958,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:965,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:968,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:968,1
    - Dst: fu_synaptics_mst_device_rc_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:969,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:976,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:979,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:980,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 931
    functionDepth: 5
    functionLinenumber: 931
    functionLinenumberEnd: 989
    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_month
    - g_debug
    - fu_synaptics_mst_device_rc_set_command
    - g_date_time_new_now_utc
    - fu_device_sleep
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_synaptics_mst_device_rc_get_command
    - g_date_time_get_year
    - fu_crc8
    - FU_DEVICE
    - memcmp
    - g_date_time_get_day_of_month
    - FU_SYNAPTICS_MST_DEVICE
    - g_autoptr
    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:996,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1005,1
    - Dst: fu_synaptics_mst_device_set_flash_sector_erase
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1006,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1014,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1021,1
    - Dst: fu_synaptics_mst_device_rc_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1024,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1031,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1035,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 991
    functionDepth: 6
    functionLinenumber: 991
    functionLinenumberEnd: 1046
    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_debug
    - g_set_error
    - fu_synaptics_mst_device_rc_set_command
    - g_prefix_error_literal
    - fu_synaptics_mst_device_rc_get_command
    - FU_SYNAPTICS_MST_DEVICE
    - fu_synaptics_mst_device_set_flash_sector_erase
    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:1056,1
    - Dst: fu_synaptics_mst_device_helper_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1056,1
    - Dst: fu_synaptics_mst_device_get_active_bank_panamera
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1059,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1063,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1066,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1066,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1067,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1074,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1084,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1086,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1088,1
    - Dst: fu_crc16_bytes
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1091,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1092,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1093,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1097,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1097,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1106,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1106,1
    - Dst: fu_synaptics_mst_device_rc_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1114,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1121,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1125,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1125,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1048
    functionDepth: 6
    functionLinenumber: 1048
    functionLinenumberEnd: 1130
    functionName: fu_synaptics_mst_device_update_panamera_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    - g_debug
    - fu_synaptics_mst_device_helper_new
    - g_set_error
    - fu_synaptics_mst_device_get_active_bank_panamera
    - g_bytes_get_data
    - fu_crc16_bytes
    - fu_chunk_array_new_from_bytes
    - g_prefix_error_literal
    - fu_synaptics_mst_device_rc_get_command
    - fu_device_retry_full
    - FU_DEVICE
    - g_object_ref
    - fu_device_retry
    - g_bytes_get_size
    - fu_bytes_new_offset
    - g_autoptr
    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:1142,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1148,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1153,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1153,1
    - Dst: fu_synaptics_mst_device_rc_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1156,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1162,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1167,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1173,1
    - Dst: fu_synaptics_mst_device_rc_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1178,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1184,1
    - Dst: BIT
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1188,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1189,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1132
    functionDepth: 5
    functionLinenumber: 1132
    functionLinenumberEnd: 1200
    functionName: fu_synaptics_mst_device_panamera_prepare_write
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_mst_device_rc_set_command
    - fu_device_sleep
    - g_prefix_error_literal
    - fu_synaptics_mst_device_rc_get_command
    - BIT
    - FU_DEVICE
    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:1205,1
    - Dst: fu_synaptics_mst_device_set_flash_sector_erase
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1210,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1212,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1213,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1213,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1215,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1215,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1216,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1217,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1218,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1221,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1224,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1227,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1228,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1229,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1231,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1232,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1235,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1238,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1239,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1240,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1242,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1244,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1248,1
    - Dst: fu_synaptics_mst_device_rc_special_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1256,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1261,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1265,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1268,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1270,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1202
    functionDepth: 6
    functionLinenumber: 1202
    functionLinenumberEnd: 1281
    functionName: fu_synaptics_mst_device_update_firmware_cb
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_memread_uint32
    - fu_synaptics_mst_device_rc_special_get_command
    - g_debug
    - fu_progress_set_steps
    - g_prefix_error_literal
    - fu_synaptics_mst_device_set_flash_sector_erase
    - fu_device_sleep
    - fu_progress_step_done
    - FU_DEVICE
    - fu_chunk_get_data
    - g_warning
    - fu_chunk_array_length
    - fu_chunk_get_address
    - g_set_error
    - fu_synaptics_mst_device_rc_set_command
    - fu_chunk_array_index
    - g_prefix_error
    - FU_SYNAPTICS_MST_DEVICE
    - g_bytes_get_size
    - g_autoptr
    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:1289,1
    - Dst: fu_synaptics_mst_device_helper_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1289,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1306,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1313,1
    - Dst: fu_crc16_bytes
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1316,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1317,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1318,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1322,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1322,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1329,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1335,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1283
    functionDepth: 5
    functionLinenumber: 1283
    functionLinenumberEnd: 1340
    functionName: fu_synaptics_mst_device_update_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_mst_device_helper_new
    - fu_crc16_bytes
    - fu_chunk_array_new_from_bytes
    - g_set_error_literal
    - fu_synaptics_mst_device_rc_set_command
    - g_prefix_error_literal
    - fu_device_retry
    - FU_DEVICE
    - g_object_ref
    - fu_bytes_new_offset
    - g_autoptr
    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:1347,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1363,1
    - Dst: fu_synaptics_mst_device_rc_set_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1370,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1376,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1342
    functionDepth: 5
    functionLinenumber: 1342
    functionLinenumberEnd: 1379
    functionName: fu_synaptics_mst_device_restart
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_mst_device_rc_set_command
    - g_set_error_literal
    - g_autoptr
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_mst_device_restart(FuSynapticsMstDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1387,1
    - Dst: fu_synaptics_mst_firmware_set_family
      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: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1394,1
    - Dst: fu_synaptics_mst_firmware_get_board_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1396,1
    - Dst: FU_SYNAPTICS_MST_FIRMWARE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1396,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1381
    functionDepth: 2
    functionLinenumber: 1381
    functionLinenumberEnd: 1410
    functionName: fu_synaptics_mst_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_synaptics_mst_firmware_set_family
    - g_set_error
    - fu_synaptics_mst_firmware_get_board_id
    - fu_device_has_private_flag
    - FU_SYNAPTICS_MST_FIRMWARE
    - FU_SYNAPTICS_MST_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_synaptics_mst_device_check_firmware(FuDevice *device,\n\t\t\t\t
      \      FuFirmware *firmware,\n\t\t\t\t       FuFirmwareParseFlags flags,\n\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:1416,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1418,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1418,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1419,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1420,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1421,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1422,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1412
    functionDepth: 6
    functionLinenumber: 1412
    functionLinenumberEnd: 1429
    functionName: fu_synaptics_mst_device_attach
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fwupd_request_new
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fwupd_request_set_id
    - fu_device_has_private_flag
    - fu_device_emit_request
    - g_autoptr
    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:1438,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1439,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1440,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1443,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1444,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1445,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1446,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1448,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1453,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1455,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1459,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1460,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1460,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1462,1
    - Dst: fu_synaptics_mst_device_update_tesla_leaf_firmware
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1475,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1479,1
    - Dst: fu_synaptics_mst_device_panamera_prepare_write
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1484,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1485,1
    - Dst: fu_synaptics_mst_device_update_esm
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1488,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1489,1
    - Dst: fu_synaptics_mst_device_update_panamera_firmware
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1492,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1493,1
    - Dst: fu_synaptics_mst_device_update_firmware
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1500,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1501,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1506,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1512,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1515,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1515,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1516,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: 1518
      start: 1431
    functionDepth: 7
    functionLinenumber: 1431
    functionLinenumberEnd: 1518
    functionName: fu_synaptics_mst_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_synaptics_mst_device_update_panamera_firmware
    - fu_progress_add_flag
    - fu_device_sleep_full
    - fu_synaptics_mst_device_panamera_prepare_write
    - fu_synaptics_mst_device_update_tesla_leaf_firmware
    - fu_device_set_remove_delay
    - fu_firmware_get_bytes
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_synaptics_mst_device_update_firmware
    - fu_progress_add_step
    - fu_progress_step_done
    - FU_DEVICE
    - fu_progress_get_child
    - fu_synaptics_mst_device_update_esm
    - fu_device_locker_new_full
    - fu_progress_set_id
    - fu_device_has_private_flag
    - FU_SYNAPTICS_MST_DEVICE
    - g_autoptr
    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:1527,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1527,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1533,1
    - Dst: fu_udev_device_get_device_file
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1533,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1533,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1534,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1536,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1536,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1537,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1537,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1540,1
    - Dst: open
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1547,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1549,1
    - Dst: read
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1556,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1557,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1564,1
    - Dst: fu_synaptics_mst_device_rc_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1570,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1576,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1579,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1601,1
    - Dst: fu_synaptics_mst_device_rc_get_command
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1608,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1615,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1618,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSynapticsMstDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1520
    functionDepth: 5
    functionLinenumber: 1520
    functionLinenumberEnd: 1628
    functionName: fu_synaptics_mst_device_ensure_board_id
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_device_file
    - fu_device_get_logical_id
    - g_set_error
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - fu_synaptics_mst_device_rc_get_command
    - FU_DEVICE
    - g_strdup_printf
    - g_path_get_dirname
    - fu_memread_uint16
    - fu_memread_uint16_safe
    - FU_UDEV_DEVICE
    - fu_device_query_file_exists
    - read
    - open
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_synaptics_mst_device_ensure_board_id(FuSynapticsMstDevice
      *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 14
    argCount: 1
    argNames:
    - chip_id
    argTypes:
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1630
    functionDepth: 0
    functionLinenumber: 1630
    functionLinenumberEnd: 1646
    functionName: fu_synaptics_mst_device_family_from_chip_id
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FuSynapticsMstFamily
    signature: FuSynapticsMstFamily fu_synaptics_mst_device_family_from_chip_id(guint16
      chip_id)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: FU_SYNAPTICS_MST_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1651,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1662,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1663,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1666,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1666,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1672,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1676,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1684,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1689,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1689,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1690,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1696,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1696,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1701,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1701,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1707,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1711,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1712,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1712,1
    - Dst: fu_dpaux_device_read
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1715,1
    - Dst: FU_DPAUX_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1715,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1721,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1724,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1726,1
    - Dst: fu_synaptics_mst_device_family_from_chip_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1732,1
    - Dst: fu_device_add_flag
      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_add_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1744,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1744,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1747,1
    - Dst: fu_synaptics_mst_device_get_active_bank_panamera
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1753,1
    - Dst: fu_synaptics_mst_device_ensure_board_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1758,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1761,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1762,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1762,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: fu_device_has_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1769,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1771,1
    - Dst: fu_synaptics_mst_family_to_string
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1775,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1776,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1777,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1778,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1780,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_auto
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1785,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1786,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1790,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1791,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1791,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1792,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1796,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1796,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1800,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1814,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1820,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1821,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1821,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1822,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1823,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1823,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1824,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1825,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1825,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1829,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 101
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1832
      start: 1648
    functionDepth: 6
    functionLinenumber: 1648
    functionLinenumberEnd: 1832
    functionName: fu_synaptics_mst_device_setup
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - fu_device_add_private_flag
    - fu_device_get_context
    - g_strdup_printf
    - fu_device_get_name
    - g_auto
    - fu_device_add_instance_id
    - fu_device_set_remove_delay
    - fu_synaptics_mst_device_get_active_bank_panamera
    - g_set_error_literal
    - g_prefix_error_literal
    - g_strsplit
    - fu_synaptics_mst_device_ensure_board_id
    - FU_DPAUX_DEVICE
    - fu_context_get_hwid_value
    - fu_device_add_instance_id_full
    - g_propagate_error
    - FU_DEVICE
    - fu_device_set_name
    - g_warning
    - fu_device_locker_new_full
    - g_strcmp0
    - fu_synaptics_mst_device_family_from_chip_id
    - g_set_error
    - fu_dpaux_device_read
    - g_steal_pointer
    - fu_device_has_private_flag
    - fu_synaptics_mst_family_to_string
    - FU_SYNAPTICS_MST_DEVICE
    - fu_memread_uint16
    - g_autoptr
    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:1840,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1841,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1842,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1834
    functionDepth: 0
    functionLinenumber: 1834
    functionLinenumberEnd: 1850
    functionName: fu_synaptics_mst_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_set_error_literal
    - 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:1855,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1856,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1857,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1858,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1859,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1852
    functionDepth: 3
    functionLinenumber: 1852
    functionLinenumberEnd: 1861
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1866,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-device.c:1867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSynapticsMstDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1863
    functionDepth: 0
    functionLinenumber: 1863
    functionLinenumberEnd: 1876
    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: 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_add_udev_subsystem
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-plugin.c:30,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-plugin.c:31,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-plugin.c:32,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-plugin.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: fu_qsi_dock_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_set_device_gtype_default
    - 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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQsiDockPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    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_proxy
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:40,1
    - Dst: fu_device_prepare_firmware
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: fu_qsi_dock_child_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c
    functionUses: 0
    functionsReached:
    - fu_device_prepare_firmware
    - fu_device_get_proxy
    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:54,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:55,1
    - Dst: fu_qsi_dock_mcu_device_write_firmware_with_idx
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:58,1
    - Dst: FU_QSI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 64
    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_write_firmware_with_idx
    - FU_QSI_DOCK_CHILD_DEVICE
    - FU_QSI_DOCK_MCU_DEVICE
    - fu_device_get_proxy
    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:69,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:69,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:70,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:70,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:71,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-child-device.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQsiDockChildDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 72
    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
    - fu_device_set_proxy_gtype
    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:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQsiDockChildDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    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:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    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(FuDevice *proxy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:38,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:38,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: 45
      start: 28
    functionDepth: 6
    functionLinenumber: 28
    functionLinenumberEnd: 45
    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
    - fu_hid_device_set_report
    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:52,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:52,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - self
    - outbuf
    - outbufsz
    - error
    argTypes:
    - FuQsiDockMcuDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 47
    functionDepth: 6
    functionLinenumber: 47
    functionLinenumberEnd: 73
    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_HID_DEVICE
    - fu_memcpy_safe
    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:85,1
    - Dst: fu_qsi_dock_mcu_device_rx
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:87,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: 88
      start: 75
    functionDepth: 7
    functionLinenumber: 75
    functionLinenumberEnd: 88
    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:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQsiDockMcuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 90
    functionDepth: 8
    functionLinenumber: 90
    functionLinenumberEnd: 109
    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_autoptr
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:129,1
    - Dst: fu_qsi_dock_child_device_new
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:131,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:131,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:132,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:135,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:139,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:143,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:148,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:151,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:155,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:156,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:158,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:159,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:161,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:165,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:165,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:165,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:166,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:166,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:166,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:167,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:168,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:170,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:171,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:172,1
    - Dst: fu_qsi_dock_child_device_set_chip_idx
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:173,1
    - Dst: FU_QSI_DOCK_CHILD_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:173,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:175,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:175,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQsiDockMcuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 111
    functionDepth: 7
    functionLinenumber: 111
    functionLinenumberEnd: 180
    functionName: fu_qsi_dock_mcu_device_enumerate_children
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_get_pid
    - fu_device_set_version
    - g_strdup_printf
    - fu_device_get_name
    - fu_qsi_dock_child_device_set_chip_idx
    - fu_device_set_version_format
    - g_debug
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - fu_device_set_logical_id
    - FU_DEVICE
    - fu_device_set_name
    - fu_qsi_dock_child_device_new
    - g_warning
    - fu_device_get_vid
    - g_strcmp0
    - FU_QSI_DOCK_CHILD_DEVICE
    - g_autoptr
    - fu_device_add_instance_u16
    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:185,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:188,1
    - Dst: fu_qsi_dock_mcu_device_get_status
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:192,1
    - Dst: fu_qsi_dock_mcu_device_enumerate_children
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 182
    functionDepth: 9
    functionLinenumber: 182
    functionLinenumberEnd: 199
    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_get_status
    - FU_DEVICE_CLASS
    - FU_QSI_DOCK_MCU_DEVICE
    - fu_qsi_dock_mcu_device_enumerate_children
    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:214,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:215,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:218,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:229,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:240,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:240,1
    - Dst: memset
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:248,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:249,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:249,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - self
    - checksum
    - length
    - error
    argTypes:
    - FuQsiDockMcuDevice*
    - guint32
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 201
    functionDepth: 6
    functionLinenumber: 201
    functionLinenumberEnd: 268
    functionName: fu_qsi_dock_mcu_device_checksum
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - fu_hid_device_get_report
    - fu_hid_device_set_report
    - g_set_error_literal
    - FU_HID_DEVICE
    - memset
    - fu_memcpy_safe
    - fu_memwrite_uint32
    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:277,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:278,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:278,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:280,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:284,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:285,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:285,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:286,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:287,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:295,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:298,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:301,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:304,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:305,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:307,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:310,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:310,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:320,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:323,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:324,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:326,1
    - Dst: fu_sum32
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:329,1
    - Dst: memset
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:332,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:333,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:333,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:344,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:351,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: 356
      start: 270
    functionDepth: 6
    functionLinenumber: 270
    functionLinenumberEnd: 356
    functionName: fu_qsi_dock_mcu_device_write_chunk
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_sum32
    - fu_chunk_array_new_from_bytes
    - g_set_error
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_hid_device_set_report
    - fu_progress_set_steps
    - fu_hid_device_get_report
    - fu_progress_step_done
    - FU_HID_DEVICE
    - fu_chunk_get_data
    - memset
    - fu_memcpy_safe
    - fu_chunk_get_bytes
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:365,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:366,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:366,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:367,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:368,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:371,1
    - Dst: fu_qsi_dock_mcu_device_write_chunk
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:374,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:377,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:379,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:382,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: 386
      start: 358
    functionDepth: 7
    functionLinenumber: 358
    functionLinenumberEnd: 386
    functionName: fu_qsi_dock_mcu_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_get_child
    - fu_qsi_dock_mcu_device_write_chunk
    - fu_progress_set_id
    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:393,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:399,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:399,1
    - Dst: memset
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:407,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:408,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 388
    functionDepth: 6
    functionLinenumber: 388
    functionLinenumberEnd: 419
    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_hid_device_set_report
    - FU_HID_DEVICE
    - memset
    - FU_QSI_DOCK_MCU_DEVICE
    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:434,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:435,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:438,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:447,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:458,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:458,1
    - Dst: memset
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:466,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:467,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:467,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: 478
      start: 421
    functionDepth: 6
    functionLinenumber: 421
    functionLinenumberEnd: 478
    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
    - memset
    - fu_memcpy_safe
    - fu_memwrite_uint32
    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:489,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:490,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:491,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:494,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:495,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:496,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:497,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:500,1
    - Dst: fu_bytes_align
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:503,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:506,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:506,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:511,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:514,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:515,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:516,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:521,1
    - Dst: fu_qsi_dock_mcu_device_write_chunks
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:525,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:528,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:531,1
    - Dst: fu_qsi_dock_mcu_device_checksum
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:534,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:534,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:536,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: 540
      start: 480
    functionDepth: 8
    functionLinenumber: 480
    functionLinenumberEnd: 540
    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_qsi_dock_mcu_device_write_chunks
    - fu_firmware_get_bytes
    - fu_progress_add_step
    - fu_chunk_array_new_from_bytes
    - fu_progress_add_flag
    - fu_bytes_align
    - fu_progress_step_done
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_qsi_dock_mcu_device_checksum
    - g_bytes_get_size
    - fu_device_retry
    - g_autoptr
    - fu_progress_get_child
    - fu_qsi_dock_mcu_device_wait_for_spi_erase_ready_cb
    - fu_progress_set_id
    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:549,1
    - Dst: FU_QSI_DOCK_MCU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:549,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: 555
      start: 542
    functionDepth: 9
    functionLinenumber: 542
    functionLinenumberEnd: 555
    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:560,1
    - Dst: fu_qsi_dock_mcu_device_get_status
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 557
    functionDepth: 9
    functionLinenumber: 557
    functionLinenumberEnd: 567
    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_get_status
    - FU_QSI_DOCK_MCU_DEVICE
    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:572,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:573,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:574,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:575,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:576,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:577,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 569
    functionDepth: 3
    functionLinenumber: 569
    functionLinenumberEnd: 579
    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_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_qsi_dock_mcu_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      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_flag
      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
    - Dst: fu_hid_device_add_flag
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:586,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:586,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:587,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:587,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:588,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:588,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:589,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:589,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:590,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQsiDockMcuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 581
    functionDepth: 6
    functionLinenumber: 581
    functionLinenumberEnd: 591
    functionName: fu_qsi_dock_mcu_device_init
    functionSourceFile: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_hid_device_add_flag
    - FU_HID_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQsiDockMcuDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 602
    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:
    - fu_device_add_instance_str
    - g_set_error_literal
    - g_get_os_info
    - fu_device_build_instance_id_full
    - fu_device_build_vendor_id
    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_literal
      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: 8
    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_pefile_firmware_new
    - fu_context_get_esp_files
    - fu_firmware_get_filename
    - fu_firmware_parse_stream
    - fu_uefi_sbat_firmware_new
    - g_steal_pointer
    - fu_device_get_context
    - g_prefix_error_literal
    - g_prefix_error
    - g_ptr_array_index
    - fu_firmware_check_compatible
    - g_autoptr
    - fu_firmware_get_image_by_id_stream
    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: 13
    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_new
      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: fu_path_verify_safe
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:170,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:172,1
    - Dst: g_path_get_dirname
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:173,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:174,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:177,1
    - Dst: fu_bytes_set_contents
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:180,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:182,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:183,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 102
    functionDepth: 6
    functionLinenumber: 102
    functionLinenumberEnd: 187
    functionName: fu_uefi_sbat_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c
    functionUses: 0
    functionsReached:
    - fu_efi_file_path_device_path_get_name
    - fu_device_get_context
    - fu_efivars_get_boot_entry
    - g_build_filename
    - FU_EFI_HARD_DRIVE_DEVICE_PATH
    - fu_firmware_get_image_by_gtype
    - g_debug
    - fu_firmware_get_bytes
    - fu_path_verify_safe
    - fu_context_get_efivars
    - g_path_get_dirname
    - fu_bytes_set_contents
    - fu_progress_add_step
    - FU_FIRMWARE
    - fu_progress_step_done
    - fu_volume_get_mount_point
    - fu_volume_locker_new
    - FU_EFI_FILE_PATH_DEVICE_PATH
    - fu_progress_set_id
    - fu_volume_get_id
    - g_set_error
    - g_autoptr
    - fu_context_get_esp_volume_by_hard_drive_device_path
    - fu_efivars_get_boot_current
    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: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
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:196,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 198
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_name
      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_set_summary
      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_set_version_format
      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_protocol
      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_icon
      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_add_flag
      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_add_flag
      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
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:211,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:211,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:212,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiSbatDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 200
    functionDepth: 6
    functionLinenumber: 200
    functionLinenumberEnd: 213
    functionName: fu_uefi_sbat_device_init
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_logical_id
    - fu_device_set_physical_id
    - fu_device_add_icon
    - fu_device_set_name
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiSbatDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 223
    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:228,1
    - Dst: fu_uefi_sbat_firmware_new
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:228,1
    - Dst: g_autoptr
      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:231,1
    - Dst: FU_IS_CONTEXT
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:231,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:232,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:233,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:236,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:238,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:239,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:239,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:239,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - blob
    - error
    argTypes:
    - FuContext*
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 225
    functionDepth: 5
    functionLinenumber: 225
    functionLinenumberEnd: 243
    functionName: fu_uefi_sbat_device_new
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_device_set_version
    - fu_uefi_sbat_firmware_new
    - FU_IS_CONTEXT
    - g_steal_pointer
    - FU_DEVICE
    - fu_firmware_parse_bytes
    - g_object_new
    - fu_firmware_get_version
    - g_autoptr
    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:
    - fu_firmware_get_id
    - fu_firmware_get_version_raw
    - g_strcmp0
    - fu_firmware_set_version
    - g_debug
    - fu_strjoin
    - FU_FIRMWARE
    - FU_FIRMWARE_CLASS
    - g_set_error_literal
    - g_ptr_array_add
    - fu_firmware_get_images
    - g_strdup_printf
    - g_strstr_len
    - g_autoptr
    - g_ptr_array_new_with_free_func
    - g_ptr_array_index
    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_return_val_if_fail
    - g_ptr_array_index
    - fu_firmware_get_id
    - fu_firmware_get_version_raw
    - g_debug
    - fu_firmware_get_filename
    - g_set_error
    - fu_firmware_get_image_by_id
    - fu_firmware_get_images
    - FU_IS_PEFILE_FIRMWARE
    - g_autoptr
    - FU_IS_UEFI_SBAT_FIRMWARE
    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:
    - FU_FIRMWARE
    - g_object_new
    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:
    - fu_efivars_get_secure_boot
    - fu_context_get_efivars
    - g_set_error_literal
    - fu_plugin_get_context
    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_DEVICE
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:60,1
    - Dst: fu_plugin_add_device
      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: 6
    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_efivars_get_data_bytes
    - fu_device_locker_new
    - fu_uefi_sbat_device_new
    - fu_plugin_get_context
    - FU_DEVICE
    - fu_context_get_efivars
    - g_autoptr
    - fu_plugin_add_device
    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: 8
    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:
    - fu_context_get_esp_files
    - fu_firmware_get_filename
    - g_debug
    - fu_plugin_get_context
    - g_file_delete
    - g_file_query_exists
    - g_file_new_for_path
    - g_autoptr
    - g_ptr_array_index
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: fu_uefi_sbat_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/uefi-sbat/fu-uefi-sbat-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_set_device_gtype_default
    - G_OBJECT_CLASS
    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:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiSbatPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 113
    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_add_udev_subsystem
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-plugin.c:30,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-plugin.c:31,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-plugin.c:32,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-plugin.c:33,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-plugin.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: fu_ti_tps6598x_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_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:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTiTps6598xPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    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:25,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:26,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:27,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:28,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:29,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 32
    functionName: fu_ti_tps6598x_pd_device_probe
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_add_instance_u8
    - FU_TI_TPS6598X_PD_DEVICE
    - fu_device_set_name
    - g_strdup_printf
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_pd_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:38,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:41,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:41,1
    - Dst: fu_ti_tps6598x_device_read_target_register
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:44,1
    - Dst: FU_TI_TPS6598X_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:44,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:51,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:56,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTiTps6598xPdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 58
    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_set_version
    - FU_TI_TPS6598X_DEVICE
    - fu_ti_tps6598x_device_read_target_register
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_get_proxy
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_pd_device_ensure_version(FuTiTps6598xPdDevice
      *self, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:65,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:67,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:67,1
    - Dst: fu_ti_tps6598x_device_read_target_register
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:70,1
    - Dst: FU_TI_TPS6598X_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:70,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:77,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:80,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:80,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:81,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:84,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:84,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:85,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:88,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:88,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTiTps6598xPdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 92
    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_TI_TPS6598X_DEVICE
    - fu_ti_tps6598x_device_read_target_register
    - FU_DEVICE
    - fu_device_get_proxy
    - g_autoptr
    - fu_memread_uint16_safe
    - 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:97,1
    - Dst: fu_ti_tps6598x_pd_device_ensure_version
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:100,1
    - Dst: fu_ti_tps6598x_pd_device_ensure_tx_identity
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:102,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:106,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:106,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 94
    functionDepth: 7
    functionLinenumber: 94
    functionLinenumberEnd: 116
    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_ensure_tx_identity
    - fu_device_build_instance_id
    - FU_TI_TPS6598X_PD_DEVICE
    - fu_ti_tps6598x_pd_device_ensure_version
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_pd_device_setup(FuDevice *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_TI_TPS6598X_PD_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:121,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:125,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:132,1
    - Dst: fu_ti_tps6598x_device_read_target_register
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:134,1
    - Dst: FU_TI_TPS6598X_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:134,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:140,1
    - Dst: fu_ti_tps6598x_byte_array_is_nonzero
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:146,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:148,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:150,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:151,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - device
    - metadata
    argTypes:
    - FuDevice*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 153
    functionName: fu_ti_tps6598x_pd_device_report_metadata_pre
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c
    functionUses: 0
    functionsReached:
    - g_getenv
    - g_hash_table_insert
    - g_debug
    - FU_TI_TPS6598X_PD_DEVICE
    - FU_TI_TPS6598X_DEVICE
    - fu_ti_tps6598x_device_read_target_register
    - fu_ti_tps6598x_byte_array_is_nonzero
    - g_strdup_printf
    - fu_byte_array_to_string
    - fu_device_get_proxy
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_ti_tps6598x_pd_device_report_metadata_pre(FuDevice *device,
      GHashTable *metadata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:158,1
    - Dst: fu_device_attach_full
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: fu_ti_tps6598x_pd_device_attach
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_attach_full
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ti_tps6598x_pd_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:171,1
    - Dst: fu_ti_tps6598x_device_write_firmware
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 175
    functionName: fu_ti_tps6598x_pd_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_ti_tps6598x_device_write_firmware
    - fu_device_get_proxy
    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:180,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:181,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:182,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:183,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:184,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 186
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:191,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:191,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:192,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:192,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:193,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:193,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:194,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:194,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:195,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:195,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:196,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:196,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:197,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:197,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:198,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:198,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:199,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:199,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:200,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTiTps6598xPdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 188
    functionDepth: 6
    functionLinenumber: 188
    functionLinenumberEnd: 201
    functionName: fu_ti_tps6598x_pd_device_init
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTiTps6598xPdDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 213
    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:219,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - proxy
    - target
    argTypes:
    - FuDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 222
    functionName: fu_ti_tps6598x_pd_device_new
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - 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: 15
    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_size_checked_inc
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:48,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:49,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:52,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:57,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:60,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:62,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:63,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:65,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:66,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:72,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:75,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:77,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:78,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:80,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:81,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:87,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:95,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:98,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:100,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:108,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:109,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:110,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:113,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 114
    functionName: fu_ti_tps6598x_firmware_parse
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_safe
    - fu_firmware_set_id
    - fu_firmware_set_version
    - fu_firmware_add_image
    - fu_input_stream_size
    - fu_firmware_parse_stream
    - g_set_error
    - g_prefix_error_literal
    - fu_firmware_new
    - g_strdup_printf
    - fu_size_checked_inc
    - g_autoptr
    - 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:119,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:119,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:122,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:125,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:130,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:133,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:136,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:139,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:142,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:145,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 116
    functionDepth: 5
    functionLinenumber: 116
    functionLinenumberEnd: 149
    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
    - fu_firmware_get_image_by_id_bytes
    - g_steal_pointer
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - g_autoptr
    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:154,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:154,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:155,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:155,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:156,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTiTps6598xFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: fu_ti_tps6598x_firmware_init
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTiTps6598xFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 166
    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:
    - FU_TI_TPS6598X_DEVICE
    - fwupd_codec_string_append
    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_literal
      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: 4
    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_literal
    - fu_dump_raw
    - g_strdup_printf
    - g_byte_array_new
    - FU_USB_DEVICE
    - g_autoptr
    - fu_byte_array_set_size
    - fu_usb_device_control_transfer
    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: 5
    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
    - g_steal_pointer
    - g_byte_array_remove_index
    - g_autoptr
    - fu_ti_tps6598x_device_usbep_read_raw
    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: 5
    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:124,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:133,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:140,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:140,1
    - Dst: fu_chunk_get_data_out
      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:148,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:153,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:156,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:157,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - self
    - addr
    - buf
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - guint16
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 114
    functionDepth: 4
    functionLinenumber: 114
    functionLinenumberEnd: 169
    functionName: fu_ti_tps6598x_device_usbep_write
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - g_prefix_error_literal
    - fu_dump_raw
    - g_strdup_printf
    - fu_chunk_array_mutable_new
    - FU_USB_DEVICE
    - g_autoptr
    - g_ptr_array_index
    - fu_usb_device_control_transfer
    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:175,1
    - Dst: fu_ti_tps6598x_device_usbep_read
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:176,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:178,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - bufsz
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 172
    functionDepth: 6
    functionLinenumber: 172
    functionLinenumberEnd: 184
    functionName: fu_ti_tps6598x_device_read_data
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_ti_tps6598x_device_usbep_read
    - g_autoptr
    - g_prefix_error
    - g_steal_pointer
    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:190,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 187
    functionDepth: 5
    functionLinenumber: 187
    functionLinenumberEnd: 197
    functionName: fu_ti_tps6598x_device_write_data
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_ti_tps6598x_device_usbep_write
    - g_prefix_error
    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:205,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:205,1
    - Dst: strlen
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:208,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:209,1
    - Dst: fu_ti_tps6598x_device_write_data
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:216,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:220,1
    - Dst: fu_ti_tps6598x_device_usbep_write
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - self
    - cmd
    - data
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - gchar*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 199
    functionDepth: 6
    functionLinenumber: 199
    functionLinenumberEnd: 222
    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
    - g_set_error_literal
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - strlen
    - fu_ti_tps6598x_device_write_data
    - g_autoptr
    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:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 7
    functionLinenumber: 224
    functionLinenumberEnd: 228
    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:233,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:234,1
    - Dst: fu_ti_tps6598x_device_usbep_read
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:237,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-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: 254
      start: 230
    functionDepth: 6
    functionLinenumber: 230
    functionLinenumberEnd: 254
    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
    - fu_ti_tps6598x_device_usbep_read
    - g_autoptr
    - g_set_error
    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:263,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - count
    - delay
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - guint
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 269
    functionName: fu_ti_tps6598x_device_wait_for_command
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_retry_full
    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:274,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:274,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:275,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:276,1
    - Dst: fu_ti_tps6598x_device_write_4cc
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:277,1
    - Dst: fu_ti_tps6598x_device_wait_for_command
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - slaveNum
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 271
    functionDepth: 7
    functionLinenumber: 271
    functionLinenumberEnd: 280
    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
    - g_byte_array_new
    - fu_ti_tps6598x_device_write_4cc
    - g_autoptr
    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:286,1
    - Dst: fu_ti_tps6598x_device_target_reboot
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:288,1
    - Dst: fu_ti_tps6598x_device_reset_hard
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 282
    functionDepth: 8
    functionLinenumber: 282
    functionLinenumberEnd: 291
    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_reset_hard
    - fu_ti_tps6598x_device_target_reboot
    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:298,1
    - Dst: fu_ti_tps6598x_device_write_4cc
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:300,1
    - Dst: fu_ti_tps6598x_device_wait_for_command
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:302,1
    - Dst: fu_ti_tps6598x_device_read_data
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:304,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:309,1
    - Dst: fu_ti_tps6598x_sfwi_to_string
      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:319,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:320,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 294
    functionDepth: 7
    functionLinenumber: 294
    functionLinenumberEnd: 323
    functionName: fu_ti_tps6598x_device_sfwi
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - fu_ti_tps6598x_device_wait_for_command
    - fu_ti_tps6598x_device_write_4cc
    - fu_ti_tps6598x_sfwi_to_string
    - g_autoptr
    - fu_ti_tps6598x_device_read_data
    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:330,1
    - Dst: fu_ti_tps6598x_device_write_4cc
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:332,1
    - Dst: fu_ti_tps6598x_device_wait_for_command
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:334,1
    - Dst: fu_ti_tps6598x_device_read_data
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:336,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:341,1
    - Dst: fu_ti_tps6598x_sfwd_to_string
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:345,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:351,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - data
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 326
    functionDepth: 7
    functionLinenumber: 326
    functionLinenumberEnd: 353
    functionName: fu_ti_tps6598x_device_sfwd
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_ti_tps6598x_sfwd_to_string
    - g_debug
    - g_set_error
    - fu_ti_tps6598x_device_wait_for_command
    - fu_ti_tps6598x_device_write_4cc
    - g_autoptr
    - fu_ti_tps6598x_device_read_data
    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:360,1
    - Dst: fu_ti_tps6598x_device_write_4cc
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:362,1
    - Dst: fu_ti_tps6598x_device_wait_for_command
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:364,1
    - Dst: fu_ti_tps6598x_device_read_data
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:366,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:371,1
    - Dst: fu_ti_tps6598x_sfws_to_string
      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:381,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:382,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:383,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:384,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:385,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - self
    - data
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 356
    functionDepth: 7
    functionLinenumber: 356
    functionLinenumberEnd: 388
    functionName: fu_ti_tps6598x_device_sfws
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - fu_ti_tps6598x_device_wait_for_command
    - fu_ti_tps6598x_device_write_4cc
    - fu_ti_tps6598x_sfws_to_string
    - g_autoptr
    - fu_ti_tps6598x_device_read_data
    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:397,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:398,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:398,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:400,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:401,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:402,1
    - Dst: fu_ti_tps6598x_device_write_4cc
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:403,1
    - Dst: fu_ti_tps6598x_device_wait_for_command
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:405,1
    - Dst: fu_ti_tps6598x_device_read_data
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:407,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:413,1
    - Dst: g_byte_array_remove_index
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:420,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:423,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: 424
      start: 390
    functionDepth: 7
    functionLinenumber: 390
    functionLinenumberEnd: 424
    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
    - fu_ti_tps6598x_device_wait_for_command
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - g_byte_array_remove_index
    - g_byte_array_new
    - fu_ti_tps6598x_device_write_4cc
    - g_autoptr
    - fu_ti_tps6598x_device_read_data
    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:430,1
    - Dst: fu_ti_tps6598x_device_usbep_read
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:433,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:436,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:437,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 426
    functionDepth: 6
    functionLinenumber: 426
    functionLinenumberEnd: 439
    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
    - FU_DEVICE
    - g_strdup_printf
    - fu_ti_tps6598x_device_usbep_read
    - 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:445,1
    - Dst: fu_ti_tps6598x_device_usbep_read
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:447,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:452,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:455,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:456,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:456,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:459,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:460,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:460,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:465,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 441
    functionDepth: 6
    functionLinenumber: 441
    functionLinenumberEnd: 471
    functionName: fu_ti_tps6598x_device_ensure_mode
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_strcmp0
    - fu_memstrsafe
    - g_set_error
    - fu_device_remove_flag
    - FU_DEVICE
    - fu_ti_tps6598x_device_usbep_read
    - g_autoptr
    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:476,1
    - Dst: fu_ti_tps6598x_device_usbep_read
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:477,1
    - Dst: g_free
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:480,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 473
    functionDepth: 6
    functionLinenumber: 473
    functionLinenumberEnd: 483
    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
    - fu_ti_tps6598x_device_usbep_read
    - g_autoptr
    - g_free
    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:488,1
    - Dst: fu_ti_tps6598x_device_usbep_read
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:489,1
    - Dst: g_free
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:492,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 485
    functionDepth: 6
    functionLinenumber: 485
    functionLinenumberEnd: 495
    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
    - fu_ti_tps6598x_device_usbep_read
    - g_autoptr
    - g_free
    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:500,1
    - Dst: fu_usb_device_get_class
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:503,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:503,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:504,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:512,1
    - Dst: fu_ti_tps6598x_device_ensure_version
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:516,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:517,1
    - Dst: fu_ti_tps6598x_device_ensure_mode
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:520,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:521,1
    - Dst: fu_ti_tps6598x_device_ensure_uid
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:524,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:525,1
    - Dst: fu_ti_tps6598x_device_ensure_ouid
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:528,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:529,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:535,1
    - Dst: fu_ti_tps6598x_pd_device_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:535,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:536,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 497
    functionDepth: 7
    functionLinenumber: 497
    functionLinenumberEnd: 541
    functionName: fu_ti_tps6598x_device_setup
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_ti_tps6598x_device_ensure_uid
    - fu_device_add_child
    - fu_ti_tps6598x_device_ensure_ouid
    - FU_TI_TPS6598X_DEVICE
    - fu_ti_tps6598x_pd_device_new
    - g_set_error_literal
    - fu_ti_tps6598x_device_ensure_version
    - g_prefix_error_literal
    - fu_usb_device_get_class
    - fu_ti_tps6598x_device_ensure_mode
    - FU_USB_DEVICE
    - g_autoptr
    - FU_DEVICE_CLASS
    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:546,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:548,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:549,1
    - Dst: fu_ti_tps6598x_device_usbep_read_raw
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:551,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:553,1
    - Dst: fu_ti_tps6598x_byte_array_is_nonzero
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:556,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:558,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:559,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:560,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - device
    - metadata
    argTypes:
    - FuDevice*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 543
    functionDepth: 5
    functionLinenumber: 543
    functionLinenumberEnd: 562
    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
    - g_debug
    - FU_TI_TPS6598X_DEVICE
    - fu_ti_tps6598x_byte_array_is_nonzero
    - g_strdup_printf
    - fu_byte_array_to_string
    - g_autoptr
    - fu_ti_tps6598x_device_usbep_read_raw
    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:571,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:572,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:572,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:573,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:574,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:575,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:575,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:578,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:583,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:583,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:583,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:584,1
    - Dst: fu_ti_tps6598x_device_sfwd
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:585,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:586,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 564
    functionDepth: 8
    functionLinenumber: 564
    functionLinenumberEnd: 596
    functionName: fu_ti_tps6598x_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_ti_tps6598x_device_sfwd
    - fu_byte_array_align_up
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - g_byte_array_new
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:605,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:606,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:606,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:607,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:608,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:609,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:609,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:612,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:617,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:617,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:617,1
    - Dst: fu_byte_array_align_up
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:618,1
    - Dst: fu_ti_tps6598x_device_sfws
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:619,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:620,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuTiTps6598xDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 598
    functionDepth: 8
    functionLinenumber: 598
    functionLinenumberEnd: 630
    functionName: fu_ti_tps6598x_device_write_sfws_chunks
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_align_up
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - g_byte_array_new
    - fu_chunk_get_data
    - fu_ti_tps6598x_device_sfws
    - g_byte_array_append
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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:635,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:636,1
    - Dst: fu_ti_tps6598x_device_maybe_reboot
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:639,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:640,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:641,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:641,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:644,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 632
    functionDepth: 9
    functionLinenumber: 632
    functionLinenumberEnd: 650
    functionName: fu_ti_tps6598x_device_attach
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - FU_TI_TPS6598X_DEVICE
    - g_steal_pointer
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    - fu_ti_tps6598x_device_maybe_reboot
    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:659,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:660,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:661,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:662,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:663,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:664,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:665,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:668,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:669,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:670,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:671,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:672,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:676,1
    - Dst: fu_ti_tps6598x_device_sfwi
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:681,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:683,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:686,1
    - Dst: fu_ti_tps6598x_device_write_chunks
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:693,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:695,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:697,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:700,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:703,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:706,1
    - Dst: fu_ti_tps6598x_device_write_sfws_chunks
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:713,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:715,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:717,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:720,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:723,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:726,1
    - Dst: fu_ti_tps6598x_device_write_sfws_chunks
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:733,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:735,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:737,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:740,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: 744
      start: 652
    functionDepth: 9
    functionLinenumber: 652
    functionLinenumberEnd: 744
    functionName: fu_ti_tps6598x_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 1
    functionsReached:
    - fu_progress_add_step
    - FU_TI_TPS6598X_DEVICE
    - fu_progress_step_done
    - fu_ti_tps6598x_device_write_chunks
    - g_prefix_error_literal
    - fu_ti_tps6598x_device_sfwi
    - fu_chunk_array_new_from_stream
    - fu_ti_tps6598x_device_write_sfws_chunks
    - g_autoptr
    - fu_progress_get_child
    - fu_firmware_get_image_by_id_stream
    - fu_progress_set_id
    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:749,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:750,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:751,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:752,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:753,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 746
    functionDepth: 3
    functionLinenumber: 746
    functionLinenumberEnd: 755
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      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_set_version_format
      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_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_add_flag
      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_add_flag
      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_device_add_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:765,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:765,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:766,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:766,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:767,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:767,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:768,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:768,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:769,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:769,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:770,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:770,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:771,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTiTps6598xDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 757
    functionDepth: 6
    functionLinenumber: 757
    functionLinenumberEnd: 772
    functionName: fu_ti_tps6598x_device_init
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - FU_DEVICE
    - fu_device_set_version_format
    - FU_USB_DEVICE
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:777,1
    - Dst: g_free
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:778,1
    - Dst: g_free
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:779,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 781
    functionName: fu_ti_tps6598x_device_finalize
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - FU_TI_TPS6598X_DEVICE
    - g_free
    - G_OBJECT_CLASS
    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:786,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuTiTps6598xDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 795
    functionName: fu_ti_tps6598x_device_class_init
    functionSourceFile: /src/fwupd/plugins/ti-tps6598x/fu-ti-tps6598x-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_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: 7
    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:35,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:35,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:35,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:39,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: 44
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 44
    functionName: fu_legion_hid2_sipo_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c
    functionUses: 0
    functionsReached:
    - FU_LEGION_HID2_DEVICE
    - g_set_error_literal
    - FU_LEGION_HID2_SIPO_DEVICE
    - FU_DEVICE
    - fu_device_get_proxy
    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:49,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: fu_legion_hid2_sipo_device_convert_version
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    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:55,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-sipo-device.c:55,1
    - Dst: fu_device_add_private_flag
      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_protocol
      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_flag
      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_set_version_format
      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_logical_id
      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_vendor
      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_proxy_gtype
      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: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLegionHid2SipoDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 6
    functionLinenumber: 52
    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_add_flag
    - fu_device_set_logical_id
    - fu_device_add_instance_strsafe
    - fu_device_add_private_flag
    - fu_device_set_name
    - FU_DEVICE
    - fu_device_set_vendor
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    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: 7
    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:35,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:35,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:35,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:39,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: 44
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 44
    functionName: fu_legion_hid2_bl_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c
    functionUses: 0
    functionsReached:
    - FU_LEGION_HID2_DEVICE
    - g_set_error_literal
    - FU_LEGION_HID2_BL_DEVICE
    - FU_DEVICE
    - fu_device_get_proxy
    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:49,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: fu_legion_hid2_bl_device_convert_version
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    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:55,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-bl-device.c:55,1
    - Dst: fu_device_add_private_flag
      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_protocol
      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_flag
      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_set_version_format
      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_logical_id
      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_vendor
      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_proxy_gtype
      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: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLegionHid2BlDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 6
    functionLinenumber: 52
    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_add_flag
    - fu_device_set_logical_id
    - fu_device_add_instance_strsafe
    - fu_device_add_private_flag
    - fu_device_set_name
    - FU_DEVICE
    - fu_device_set_vendor
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-plugin.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 40
    functionName: fu_legion_hid2_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_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:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLegionHid2PluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:26,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:27,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:30,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:31,1
    - Dst: fu_struct_legion_hid2_header_parse_stream
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:33,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:38,1
    - Dst: fu_struct_legion_hid2_header_get_sig_add
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:39,1
    - Dst: fu_struct_legion_hid2_header_get_sig_len
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:40,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:44,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:46,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:47,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:51,1
    - Dst: fu_struct_legion_hid2_header_get_data_add
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:52,1
    - Dst: fu_struct_legion_hid2_header_get_data_len
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:53,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:57,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:59,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:60,1
    - Dst: fu_struct_legion_hid2_version_parse_stream
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:63,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:66,1
    - Dst: fu_struct_legion_hid2_version_get_version
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:67,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 70
    functionName: fu_legion_hid2_firmware_parse
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_raw
    - fu_struct_legion_hid2_header_get_data_add
    - fu_firmware_set_id
    - fu_firmware_add_image
    - fu_firmware_parse_stream
    - fu_struct_legion_hid2_version_get_version
    - fu_struct_legion_hid2_header_get_sig_len
    - fu_firmware_new
    - fu_struct_legion_hid2_header_get_sig_add
    - fu_struct_legion_hid2_header_get_data_len
    - fu_struct_legion_hid2_version_parse_stream
    - fu_struct_legion_hid2_header_parse_stream
    - g_autoptr
    - 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:
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:75,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:75,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:76,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:76,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:77,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLegionHid2Firmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: fu_legion_hid2_firmware_init
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_legion_hid2_firmware_init(FuLegionHid2Firmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:83,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: fu_legion_hid2_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_version_format
    - fu_version_from_uint32
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_legion_hid2_firmware_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-firmware.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLegionHid2FirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    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: 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_literal
      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_literal
      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: 5
    functionLinenumber: 23
    functionLinenumberEnd: 54
    functionName: fu_legion_hid2_device_transfer
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
    functionUses: 0
    functionsReached:
    - FU_UDEV_DEVICE
    - fu_udev_device_read
    - fu_udev_device_write
    - g_prefix_error_literal
    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: 1
    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_version_from_uint32
    - fu_device_get_version_format
    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: 6
    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_struct_legion_get_version_new
    - fu_device_set_version_raw
    - fu_struct_legion_version_get_version
    - fu_legion_hid2_device_transfer
    - FU_DEVICE
    - fu_struct_legion_version_new
    - g_autoptr
    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: 6
    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_legion_hid2_bl_device_new
    - fu_struct_legion_get_pl_test_result_get_content
    - fu_struct_legion_get_pl_test_result_new
    - fu_device_add_child
    - g_debug
    - fu_struct_legion_get_pl_test_new
    - g_info
    - fu_device_set_version_raw
    - fu_legion_hid2_device_transfer
    - FU_DEVICE
    - fu_legion_hid2_sipo_device_new
    - g_autoptr
    - fu_struct_legion_get_pl_test_set_index
    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:159,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:160,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:160,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLegionHid2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 119
    functionDepth: 5
    functionLinenumber: 119
    functionLinenumberEnd: 163
    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_strcmp0
    - fu_device_add_child
    - fu_device_set_version_raw
    - g_set_error
    - fu_device_get_backend_parent_with_subsystem
    - fu_strtoull
    - FU_DEVICE
    - fu_udev_device_read_property
    - fu_legion_hid2_sipo_device_new
    - FU_UDEV_DEVICE
    - g_autoptr
    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:168,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:171,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:171,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:172,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:172,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:173,1
    - Dst: fu_device_get_version_raw
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:184,1
    - Dst: fu_legion_hid2_device_ensure_version
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLegionHid2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 165
    functionDepth: 7
    functionLinenumber: 165
    functionLinenumberEnd: 192
    functionName: fu_legion_hid2_device_setup_version
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_version_raw
    - fu_device_get_pid
    - fu_legion_hid2_device_ensure_version
    - FU_DEVICE
    - fu_device_get_vid
    - fu_device_build_instance_id_full
    - 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:197,1
    - 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: fu_hidraw_device_parse_descriptor
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:201,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:201,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:204,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:216,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:216,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLegionHid2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 194
    functionDepth: 6
    functionLinenumber: 194
    functionLinenumberEnd: 226
    functionName: fu_legion_hid2_device_validate_descriptor
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_set_error_literal
    - fu_firmware_get_images
    - FU_HIDRAW_DEVICE
    - fu_hidraw_device_parse_descriptor
    - g_autoptr
    - fu_hid_descriptor_find_report
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_legion_hid2_device_validate_descriptor(FuLegionHid2Device
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LEGION_HID2_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:231,1
    - 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: 228
    functionDepth: 8
    functionLinenumber: 228
    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
    - g_debug
    - fu_legion_hid2_device_setup_touchpad
    - fu_legion_hid2_device_validate_descriptor
    - fu_legion_hid2_device_setup_version
    - g_autoptr
    - fu_legion_hid2_device_setup_touchpad_direct
    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:253,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:254,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:255,1
    - Dst: fu_struct_legion_start_iap_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:257,1
    - Dst: fu_struct_legion_iap_result_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:258,1
    - Dst: fu_legion_hid2_device_transfer
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:260,1
    - Dst: FU_LEGION_HID2_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:260,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:264,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:265,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:266,1
    - Dst: g_propagate_error
      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:268,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 250
    functionDepth: 6
    functionLinenumber: 250
    functionLinenumberEnd: 276
    functionName: fu_legion_hid2_device_detach
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
    functionUses: 0
    functionsReached:
    - FU_LEGION_HID2_DEVICE
    - fu_device_add_flag
    - fu_struct_legion_iap_result_new
    - g_debug
    - g_steal_pointer
    - fu_struct_legion_start_iap_new
    - fu_legion_hid2_device_transfer
    - g_error_matches
    - g_propagate_error
    - g_autoptr
    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:281,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:281,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:282,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:282,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:283,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:283,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:284,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:284,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:285,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:285,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:286,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:286,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:287,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:287,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:288,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:288,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:289,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLegionHid2Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 278
    functionDepth: 6
    functionLinenumber: 278
    functionLinenumberEnd: 290
    functionName: fu_legion_hid2_device_init
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    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:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLegionHid2DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 299
    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_literal
      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_literal
      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: 5
    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:
    - FU_UDEV_DEVICE
    - fu_udev_device_read
    - fu_udev_device_write
    - g_prefix_error_literal
    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:58,1
    - Dst: fu_struct_legion_iap_tlv_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:58,1
    - Dst: fu_struct_legion_iap_tlv_get_tag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:63,1
    - Dst: fu_legion_hid2_iap_device_transfer
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:68,1
    - Dst: fu_struct_legion_iap_tlv_get_tag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:71,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:73,1
    - Dst: fu_struct_legion_iap_tlv_get_value
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:80,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:82,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - st_req
    - error
    argTypes:
    - FuLegionHid2IapDevice*
    - FuStructLegionIapTlv*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 53
    functionDepth: 6
    functionLinenumber: 53
    functionLinenumberEnd: 91
    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
    - fu_struct_legion_iap_tlv_new
    - fu_struct_legion_iap_tlv_get_tag
    - fu_struct_legion_iap_tlv_get_value
    - g_steal_pointer
    - fu_legion_hid2_iap_device_transfer
    - g_autoptr
    linkageType: ''
    returnType: FuStructLegionIapTlv
    signature: "FuStructLegionIapTlv *\nfu_legion_hid2_iap_device_tlv(FuLegionHid2IapDevice
      *self,\n\t\t\t      FuStructLegionIapTlv *st_req,\n\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - 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:96,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:97,1
    - Dst: g_autoptr
      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:102,1
    - Dst: FU_LEGION_HID2_IAP_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:102,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:104,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 7
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: fu_legion_hid2_iap_device_attach
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - fu_struct_legion_iap_tlv_new
    - fu_legion_hid2_iap_device_tlv
    - FU_LEGION_HID2_IAP_DEVICE
    - g_autoptr
    - 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:114,1
    - Dst: fu_struct_legion_iap_tlv_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:114,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:115,1
    - Dst: fu_struct_legion_iap_tlv_set_tag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:117,1
    - Dst: fu_legion_hid2_iap_device_tlv
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:119,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLegionHid2IapDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 111
    functionDepth: 7
    functionLinenumber: 111
    functionLinenumberEnd: 126
    functionName: fu_legion_hid2_iap_device_unlock_flash
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_legion_iap_tlv_new
    - fu_legion_hid2_iap_device_tlv
    - g_prefix_error_literal
    - g_autoptr
    - 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: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_literal
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLegionHid2IapDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 128
    functionDepth: 7
    functionLinenumber: 128
    functionLinenumberEnd: 143
    functionName: fu_legion_hid2_iap_device_verify_signature
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_legion_iap_tlv_new
    - fu_legion_hid2_iap_device_tlv
    - g_prefix_error_literal
    - g_autoptr
    - 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: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_literal
      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: 7
    functionLinenumber: 145
    functionLinenumberEnd: 160
    functionName: fu_legion_hid2_iap_device_verify_code
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_legion_iap_tlv_new
    - fu_legion_hid2_iap_device_tlv
    - g_prefix_error_literal
    - g_autoptr
    - 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:169,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:170,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:170,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:171,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:172,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:173,1
    - Dst: fu_struct_legion_iap_tlv_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:173,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:174,1
    - Dst: fu_struct_legion_iap_tlv_set_tag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:176,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:178,1
    - Dst: fu_struct_legion_iap_tlv_set_value
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:182,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:183,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:184,1
    - Dst: fu_struct_legion_iap_tlv_set_length
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:188,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:188,1
    - Dst: fu_legion_hid2_iap_device_tlv
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:190,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:192,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:196,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: 201
      start: 162
    functionDepth: 7
    functionLinenumber: 162
    functionLinenumberEnd: 201
    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_struct_legion_iap_tlv_set_length
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_struct_legion_iap_tlv_new
    - fu_progress_set_steps
    - fu_legion_hid2_iap_device_tlv
    - g_prefix_error_literal
    - fu_progress_step_done
    - fu_chunk_get_data
    - fu_struct_legion_iap_tlv_set_value
    - fu_chunk_array_length
    - g_autoptr
    - fu_struct_legion_iap_tlv_set_tag
    - fu_progress_set_id
    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:206,1
    - Dst: fu_struct_legion_iap_tlv_new
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:206,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:207,1
    - Dst: fu_struct_legion_iap_tlv_set_tag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:210,1
    - Dst: fu_legion_hid2_iap_device_tlv
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:212,1
    - Dst: FU_LEGION_HID2_IAP_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:212,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:214,1
    - Dst: fu_struct_legion_iap_tlv_get_value
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:217,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 203
    functionDepth: 7
    functionLinenumber: 203
    functionLinenumberEnd: 228
    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_struct_legion_iap_tlv_new
    - fu_legion_hid2_iap_device_tlv
    - FU_LEGION_HID2_IAP_DEVICE
    - g_prefix_error_literal
    - fu_struct_legion_iap_tlv_get_value
    - g_autoptr
    - 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:236,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:237,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:239,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:243,1
    - Dst: fu_legion_hid2_iap_device_write_data_chunks
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuLegionHid2IapDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 230
    functionDepth: 8
    functionLinenumber: 230
    functionLinenumberEnd: 255
    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
    - g_autoptr
    - fu_firmware_get_image_by_id_stream
    - fu_legion_hid2_iap_device_write_data_chunks
    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:263,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:264,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:266,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:270,1
    - Dst: fu_legion_hid2_iap_device_write_data_chunks
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuLegionHid2IapDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 257
    functionDepth: 8
    functionLinenumber: 257
    functionLinenumberEnd: 282
    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
    - g_autoptr
    - fu_firmware_get_image_by_id_stream
    - fu_legion_hid2_iap_device_write_data_chunks
    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:291,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:293,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:294,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:295,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:296,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:297,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:298,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:299,1
    - Dst: fu_legion_hid2_iap_device_unlock_flash
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:301,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:303,1
    - Dst: fu_legion_hid2_iap_device_write_data
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:305,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:307,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:310,1
    - Dst: fu_legion_hid2_iap_device_write_sig
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:312,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:314,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:317,1
    - Dst: fu_legion_hid2_iap_device_verify_signature
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:319,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:321,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:323,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:330,1
    - Dst: fu_legion_hid2_iap_device_verify_code
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:332,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:334,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: 339
      start: 284
    functionDepth: 9
    functionLinenumber: 284
    functionLinenumberEnd: 339
    functionName: fu_legion_hid2_iap_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - fu_legion_hid2_iap_device_verify_signature
    - fu_progress_add_step
    - fu_legion_hid2_iap_device_write_data
    - FU_LEGION_HID2_IAP_DEVICE
    - fu_progress_step_done
    - fu_device_retry_full
    - fu_legion_hid2_iap_device_write_sig
    - fu_legion_hid2_iap_device_verify_code
    - fu_legion_hid2_iap_device_unlock_flash
    - fu_progress_get_child
    - fu_progress_set_id
    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:344,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:345,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:346,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:347,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:348,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 350
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:355,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:355,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:356,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:356,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:357,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:357,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:358,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:358,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:359,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:359,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:360,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:360,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:361,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:361,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:362,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:362,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:363,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:363,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:364,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLegionHid2IapDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 352
    functionDepth: 6
    functionLinenumber: 352
    functionLinenumberEnd: 365
    functionName: fu_legion_hid2_iap_device_init
    functionSourceFile: /src/fwupd/plugins/legion-hid2/fu-legion-hid2-iap-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    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:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLegionHid2IapDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 374
    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: 19
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 58
    functionName: fu_asus_hid_firmware_parse
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_asus_hid_desc_get_version
    - fu_firmware_set_id
    - fu_struct_asus_hid_desc_get_product
    - fu_struct_asus_hid_desc_get_fga
    - fu_firmware_parse_stream
    - fu_firmware_add_image
    - fu_firmware_new
    - FU_ASUS_HID_FIRMWARE
    - g_autoptr
    - fu_struct_asus_hid_desc_parse_stream
    - fu_partial_input_stream_new
    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:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:63,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:63,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:64,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:64,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:65,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAsusHidFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: fu_asus_hid_firmware_init
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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: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_free
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:74,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 76
    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:81,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-firmware.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAsusHidFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:39,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:39,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:39,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:43,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:48,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:53,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - self
    - req
    - res
    - report
    - error
    argTypes:
    - FuAsusHidChildDevice*
    - GByteArray*
    - GByteArray*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 64
    functionName: fu_asus_hid_child_device_transfer_feature
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_hidraw_device_get_feature
    - g_prefix_error_literal
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_device_get_proxy
    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:70,1
    - Dst: fu_struct_asus_man_command_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:70,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:71,1
    - Dst: fu_struct_asus_man_result_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:71,1
    - Dst: fu_asus_hid_child_device_transfer_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:73,1
    - Dst: fu_struct_asus_man_result_get_data
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:80,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:84,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAsusHidChildDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 66
    functionDepth: 6
    functionLinenumber: 66
    functionLinenumberEnd: 94
    functionName: fu_asus_hid_child_device_ensure_manufacturer
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_asus_hid_child_device_transfer_feature
    - fu_struct_asus_man_command_new
    - g_set_error
    - fu_struct_asus_man_result_new
    - fu_struct_asus_man_result_get_data
    - g_autoptr
    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:99,1
    - Dst: fu_struct_asus_hid_command_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:100,1
    - Dst: fu_struct_asus_hid_fw_info_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:101,1
    - Dst: fu_struct_asus_hid_command_set_cmd
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:105,1
    - Dst: fu_struct_asus_hid_command_set_cmd
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:107,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:109,1
    - Dst: fu_struct_asus_hid_command_set_length
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:116,1
    - Dst: fu_asus_hid_child_device_transfer_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:118,1
    - Dst: fu_struct_asus_hid_fw_info_get_description
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:125,1
    - Dst: fu_struct_asus_hid_desc_get_version
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:126,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:127,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:127,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:129,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:129,1
    - Dst: fu_struct_asus_hid_desc_get_product
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:130,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:131,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:131,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:132,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:132,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:140,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAsusHidChildDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 96
    functionDepth: 7
    functionLinenumber: 96
    functionLinenumberEnd: 144
    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_logical_id
    - fu_struct_asus_hid_desc_get_version
    - fu_device_get_logical_id
    - fu_device_set_version
    - fu_struct_asus_hid_desc_get_product
    - fu_asus_hid_child_device_transfer_feature
    - fu_device_build_instance_id
    - g_set_error_literal
    - fu_struct_asus_hid_fw_info_get_description
    - fu_device_add_instance_strsafe
    - fu_struct_asus_hid_command_set_cmd
    - fu_struct_asus_hid_fw_info_new
    - fu_struct_asus_hid_command_set_length
    - FU_DEVICE
    - fu_struct_asus_hid_command_new
    - g_autoptr
    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:149,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:153,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:153,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:157,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:158,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:158,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:160,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:161,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:163,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:163,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:164,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:164,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:171,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:171,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:172,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:172,1
    - Dst: fu_asus_hid_child_device_ensure_manufacturer
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:176,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:177,1
    - Dst: fu_asus_hid_child_device_ensure_version
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:180,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 146
    functionDepth: 8
    functionLinenumber: 146
    functionLinenumberEnd: 186
    functionName: fu_asus_hid_child_device_setup
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - FU_ASUS_HID_CHILD_DEVICE
    - fu_device_set_version
    - fu_device_build_instance_id
    - fu_device_add_instance_strsafe
    - g_prefix_error_literal
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_set_name
    - fu_device_has_flag
    - fu_asus_hid_child_device_ensure_manufacturer
    - fu_asus_hid_child_device_ensure_version
    - fu_device_get_proxy
    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:191,1
    - Dst: fu_asus_hid_child_device_ensure_version
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 8
    functionLinenumber: 188
    functionLinenumberEnd: 194
    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:199,1
    - Dst: fu_device_attach
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    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
    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: fu_device_detach
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: fu_asus_hid_child_device_detach
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
    functionUses: 0
    functionsReached:
    - fu_device_detach
    - fu_device_get_proxy
    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:217,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:217,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:218,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:218,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:219,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:219,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:220,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:220,1
    - 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_set_version_format
      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_set_proxy_gtype
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAsusHidChildDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 6
    functionLinenumber: 214
    functionLinenumberEnd: 224
    functionName: fu_asus_hid_child_device_init
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAsusHidChildDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 235
    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:240,1
    - Dst: FU_ASUS_HID_CHILD_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - proxy
    - idx
    argTypes:
    - FuDevice*
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 246
    functionName: fu_asus_hid_child_device_new
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-child-device.c
    functionUses: 0
    functionsReached:
    - g_object_new
    - FU_ASUS_HID_CHILD_DEVICE
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-plugin.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 37
    functionName: fu_asus_hid_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_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:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAsusHidPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    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_literal
      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_literal
      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: 5
    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_set_feature
    - fu_hidraw_device_get_feature
    - g_prefix_error_literal
    - FU_HIDRAW_DEVICE
    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_literal
      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: 6
    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:
    - fu_asus_hid_device_transfer_feature
    - g_prefix_error_literal
    - fu_struct_asus_hid_command_set_cmd
    - fu_struct_asus_hid_command_new
    - g_autoptr
    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: 3
    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:
    - fu_device_get_id
    - fu_device_set_proxy
    - g_debug
    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:
    - self
    - error
    argTypes:
    - FuAsusHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 82
    functionDepth: 6
    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_parse_descriptor
    - g_autoptr
    - fu_hid_descriptor_find_report
    - FU_HIDRAW_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_asus_hid_device_validate_descriptor(FuAsusHidDevice *self,
      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
    - g_autoptr
    - FU_ASUS_HID_DEVICE
    - fu_asus_hid_child_device_new
    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: 7
    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_asus_hid_device_init_seq
    - fu_asus_hid_device_validate_descriptor
    - fu_device_has_flag
    - 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_literal
      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:
    - fu_device_add_flag
    - fu_asus_hid_device_transfer_feature
    - fu_struct_asus_flash_reset_new
    - g_prefix_error_literal
    - fu_device_has_flag
    - g_autoptr
    - FU_ASUS_HID_DEVICE
    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_hid_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_pre_update_command_set_cmd
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:172,1
    - Dst: fu_struct_asus_hid_pre_update_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_pre_update_command_set_cmd
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:182,1
    - Dst: fu_struct_asus_hid_pre_update_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_pre_update_command_set_cmd
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:193,1
    - Dst: fu_struct_asus_hid_pre_update_command_set_length
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:194,1
    - Dst: fu_struct_asus_hid_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_pre_update_command_set_cmd
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:208,1
    - Dst: fu_struct_asus_hid_pre_update_command_set_length
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:209,1
    - Dst: fu_struct_asus_hid_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_pre_update_command_set_cmd
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:225,1
    - Dst: fu_struct_asus_hid_pre_update_command_set_length
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:226,1
    - Dst: fu_struct_asus_hid_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_pre_update_command_set_cmd
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:241,1
    - Dst: fu_struct_asus_hid_pre_update_command_set_length
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:242,1
    - Dst: fu_struct_asus_hid_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_device_add_flag
    - fu_struct_asus_hid_pre_update_command_set_cmd
    - fu_asus_hid_device_transfer_feature
    - fu_struct_asus_hid_pre_update_command_set_data
    - fu_struct_asus_hid_pre_update_command_set_length
    - fu_device_has_flag
    - fu_struct_asus_hid_result_new
    - fu_struct_asus_hid_pre_update_command_new
    - g_autoptr
    - FU_ASUS_HID_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_asus_hid_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 5
    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_literal
      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:285,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:286,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:288,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:291,1
    - Dst: fu_struct_asus_read_flash_command_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:292,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:293,1
    - Dst: fu_struct_asus_read_flash_command_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:294,1
    - Dst: fu_struct_asus_read_flash_command_set_offset
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:296,1
    - Dst: fu_struct_asus_read_flash_command_set_datasz
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:297,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:297,1
    - Dst: fu_asus_hid_device_transfer_feature
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:299,1
    - Dst: fu_struct_asus_read_flash_command_get_data
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:305,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:306,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:306,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:307,1
    - Dst: fu_struct_asus_read_flash_command_get_datasz
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:312,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:315,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:316,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:318,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 260
    functionDepth: 6
    functionLinenumber: 260
    functionLinenumberEnd: 319
    functionName: fu_asus_hid_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - fu_asus_hid_device_transfer_feature
    - fu_struct_asus_read_flash_command_set_datasz
    - fu_chunk_get_data_sz
    - fu_struct_asus_read_flash_command_set_offset
    - FU_ASUS_HID_DEVICE
    - g_ptr_array_index
    - g_set_error_literal
    - fu_chunk_get_data_out
    - fu_progress_set_steps
    - g_byte_array_new
    - fu_device_has_flag
    - fu_device_get_firmware_size_max
    - fu_chunk_array_mutable_new
    - fu_struct_asus_read_flash_command_new
    - fu_progress_set_status
    - fu_progress_step_done
    - fu_progress_set_id
    - fu_struct_asus_read_flash_command_get_data
    - fu_struct_asus_read_flash_command_get_datasz
    - fu_memcpy_safe
    - g_autoptr
    - 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:327,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:329,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:332,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 344
    functionName: fu_asus_hid_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_strcmp0
    - g_set_error_literal
    - 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:349,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:352,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:352,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 357
    functionName: fu_asus_hid_device_dispose
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_signal_handler_disconnect
    - FU_ASUS_HID_DEVICE
    - G_OBJECT_CLASS
    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:364,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:364,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:365,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:365,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:366,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:366,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAsusHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 359
    functionDepth: 6
    functionLinenumber: 359
    functionLinenumberEnd: 370
    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_set_remove_delay
    - g_signal_connect
    - FU_DEVICE
    - 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:375,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAsusHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 384
    functionName: fu_asus_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/asus-hid/fu-asus-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_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_plugin_get_devices
    - fu_drm_device_get_state
    - FU_PLUGIN
    - g_ptr_array_index
    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_PLUGIN
    - fu_linux_display_plugin_get_display_state
    - fu_context_set_display_state
    - fu_plugin_has_flag
    - fu_plugin_get_context
    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_device_remove_flag
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:63,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:64,1
    - Dst: fu_linux_display_plugin_ensure_display_state
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 68
    functionName: fu_linux_display_plugin_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c
    functionUses: 0
    functionsReached:
    - fu_linux_display_plugin_ensure_display_state
    - fu_drm_device_get_edid
    - FU_IS_DRM_DEVICE
    - FU_DRM_DEVICE
    - fu_device_setup
    - FU_LINUX_DISPLAY_PLUGIN
    - fu_device_remove_flag
    - fu_plugin_add_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:73,1
    - Dst: fu_linux_display_plugin_ensure_display_state
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 76
    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:83,1
    - Dst: fu_linux_display_plugin_ensure_display_state
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 4
    functionLinenumber: 78
    functionLinenumberEnd: 86
    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:93,1
    - Dst: FU_IS_DRM_DEVICE
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:94,1
    - Dst: fu_linux_display_plugin_ensure_display_state
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: fu_linux_display_plugin_plugin_backend_device_changed
    functionSourceFile: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c
    functionUses: 0
    functionsReached:
    - fu_linux_display_plugin_ensure_display_state
    - FU_IS_DRM_DEVICE
    - 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: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    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:108,1
    - Dst: fu_plugin_add_device_udev_subsystem
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:109,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/linux-display/fu-linux-display-plugin.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 113
    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
    - G_OBJECT_CLASS
    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:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLinuxDisplayPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 126
    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:22,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:24,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:26,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:29,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:30,1
    - Dst: fu_context_set_battery_level
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:31,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:36,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:38,1
    - Dst: fu_context_set_battery_level
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:39,1
    - Dst: fu_context_set_battery_level
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:42,1
    - Dst: fwupd_variant_get_double
      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:45,1
    - Dst: fwupd_variant_get_uint32
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:46,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:47,1
    - Dst: fu_context_set_battery_level
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:48,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 50
    functionName: fu_upower_plugin_rescan_devices
    functionSourceFile: /src/fwupd/plugins/upower/fu-upower-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_variant_get_double
    - fu_context_set_battery_level
    - FU_UPOWER_PLUGIN
    - fwupd_variant_get_uint32
    - fu_plugin_get_context
    - g_warning
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    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:55,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:56,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:58,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:61,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:62,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:64,1
    - Dst: fu_context_set_lid_state
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:65,1
    - Dst: fwupd_variant_get_boolean
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:68,1
    - Dst: fu_context_set_lid_state
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:69,1
    - Dst: fwupd_variant_get_boolean
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:72,1
    - Dst: fu_context_set_lid_state
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:73,1
    - Dst: fu_context_set_lid_state
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 77
    functionName: fu_upower_plugin_update_lid
    functionSourceFile: /src/fwupd/plugins/upower/fu-upower-plugin.c
    functionUses: 0
    functionsReached:
    - FU_UPOWER_PLUGIN
    - fu_plugin_get_context
    - fu_context_set_lid_state
    - g_warning
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    - fwupd_variant_get_boolean
    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:82,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:84,1
    - Dst: g_dbus_proxy_get_cached_property
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:86,1
    - Dst: fu_context_set_power_state
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:88,1
    - Dst: fwupd_variant_get_boolean
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:91,1
    - Dst: fu_context_set_power_state
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:92,1
    - Dst: fu_context_set_power_state
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 95
    functionName: fu_upower_plugin_update_battery
    functionSourceFile: /src/fwupd/plugins/upower/fu-upower-plugin.c
    functionUses: 0
    functionsReached:
    - FU_UPOWER_PLUGIN
    - fu_plugin_get_context
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    - fwupd_variant_get_boolean
    - fu_context_set_power_state
    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:100,1
    - Dst: fu_upower_plugin_update_battery
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 102
    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:110,1
    - Dst: fu_upower_plugin_rescan_devices
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:111,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: 112
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 112
    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:117,1
    - Dst: g_dbus_proxy_new_for_bus_sync
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:120,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:129,1
    - Dst: g_dbus_proxy_new_for_bus_sync
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:132,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:141,1
    - Dst: g_dbus_proxy_get_name_owner
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:144,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:146,1
    - Dst: g_dbus_proxy_get_name
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:150,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:153,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:153,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:155,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:157,1
    - Dst: G_DBUS_PROXY
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:157,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:159,1
    - Dst: fu_upower_plugin_rescan_devices
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:162,1
    - Dst: fu_upower_plugin_rescan_manager
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 167
    functionName: fu_upower_plugin_startup
    functionSourceFile: /src/fwupd/plugins/upower/fu-upower-plugin.c
    functionUses: 0
    functionsReached:
    - g_signal_connect
    - FU_UPOWER_PLUGIN
    - g_set_error
    - g_dbus_proxy_get_name
    - fu_upower_plugin_rescan_devices
    - g_prefix_error_literal
    - g_dbus_proxy_new_for_bus_sync
    - G_CALLBACK
    - G_DBUS_PROXY
    - fu_upower_plugin_rescan_manager
    - g_dbus_proxy_get_name_owner
    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: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    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:177,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:179,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:181,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 183
    functionName: fu_upower_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/upower/fu-upower-plugin.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - FU_UPOWER_PLUGIN
    - 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:188,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/upower/fu-upower-plugin.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUpowerPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 193
    functionName: fu_upower_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/upower/fu-upower-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_upower_plugin_class_init(FuUpowerPluginClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:43,1
    - Dst: fu_struct_goodix_moc_pkg_header_new
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:43,1
    - Dst: fu_struct_goodix_moc_pkg_header_set_cmd0
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:46,1
    - Dst: fu_struct_goodix_moc_pkg_header_set_cmd1
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:47,1
    - Dst: fu_struct_goodix_moc_pkg_header_set_pkg_flag
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:48,1
    - Dst: fu_struct_goodix_moc_pkg_header_set_seq
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:49,1
    - Dst: fu_struct_goodix_moc_pkg_header_set_len
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:50,1
    - Dst: fu_crc8
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:51,1
    - Dst: fu_struct_goodix_moc_pkg_header_set_crc8
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:54,1
    - Dst: fu_struct_goodix_moc_pkg_header_set_rev_crc8
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:55,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:56,1
    - Dst: fu_crc32
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:57,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:58,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:61,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:61,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:69,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:72,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:80,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:80,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:88,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 6
    argNames:
    - self
    - cmd0
    - cmd1
    - type
    - req
    - error
    argTypes:
    - FuGoodixMocDevice*
    - FuGoodixMocCmd
    - guint8
    - FuGoodixMocPkgType
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 98
    functionName: fu_goodix_moc_device_cmd_send
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_goodix_moc_pkg_header_set_cmd0
    - fu_struct_goodix_moc_pkg_header_set_seq
    - fu_struct_goodix_moc_pkg_header_set_rev_crc8
    - fu_crc32
    - fu_struct_goodix_moc_pkg_header_new
    - fu_dump_full
    - g_set_error_literal
    - fu_struct_goodix_moc_pkg_header_set_pkg_flag
    - g_prefix_error_literal
    - fu_crc8
    - fu_struct_goodix_moc_pkg_header_set_len
    - fu_byte_array_append_uint32
    - fu_struct_goodix_moc_pkg_header_set_crc8
    - fu_usb_device_bulk_transfer
    - g_byte_array_append
    - FU_USB_DEVICE
    - fu_struct_goodix_moc_pkg_header_set_cmd1
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodix_moc_device_cmd_send(FuGoodixMocDevice *self,\n\t\t\t
      \     FuGoodixMocCmd cmd0,\n\t\t\t      guint8 cmd1,\n\t\t\t      FuGoodixMocPkgType
      type,\n\t\t\t      GByteArray *req,\n\t\t\t      GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:103,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:103,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:116,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:116,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:117,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:119,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:120,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:120,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:128,1
    - Dst: fu_dump_full
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:135,1
    - Dst: fu_struct_goodix_moc_pkg_header_parse
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:142,1
    - Dst: fu_struct_goodix_moc_pkg_header_get_cmd0
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:147,1
    - Dst: fu_struct_goodix_moc_pkg_header_get_len
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:148,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:150,1
    - Dst: fu_crc32_safe
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:158,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:166,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:174,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:184,1
    - Dst: fu_byte_array_append_safe
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:185,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:200,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:208,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 3
    argNames:
    - self
    - data_reply
    - error
    argTypes:
    - FuGoodixMocDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 100
    functionDepth: 5
    functionLinenumber: 100
    functionLinenumberEnd: 209
    functionName: fu_goodix_moc_device_cmd_recv
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    - fu_struct_goodix_moc_pkg_header_parse
    - g_set_error
    - g_set_error_literal
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_byte_array_append_safe
    - g_byte_array_set_size
    - fu_struct_goodix_moc_pkg_header_get_len
    - g_byte_array_new
    - fu_usb_device_bulk_transfer
    - fu_struct_goodix_moc_pkg_header_get_cmd0
    - fu_dump_full
    - FU_USB_DEVICE
    - g_autoptr
    - fu_crc32_safe
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_goodix_moc_device_cmd_recv(FuGoodixMocDevice *self, gboolean data_reply,
      GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIX_MOC_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:220,1
    - Dst: fu_goodix_moc_device_cmd_send
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:221,1
    - Dst: fu_goodix_moc_device_cmd_recv
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - device
    - cmd0
    - cmd1
    - type
    - req
    - data_reply
    - error
    argTypes:
    - FuGoodixMocDevice*
    - FuGoodixMocCmd
    - guint8
    - FuGoodixMocPkgType
    - GByteArray*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 211
    functionDepth: 6
    functionLinenumber: 211
    functionLinenumberEnd: 224
    functionName: fu_goodix_moc_device_cmd_xfer
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_goodix_moc_device_cmd_send
    - fu_goodix_moc_device_cmd_recv
    - FU_GOODIX_MOC_DEVICE
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_goodix_moc_device_cmd_xfer(FuGoodixMocDevice *device,\n\t\t\t
      \     FuGoodixMocCmd cmd0,\n\t\t\t      guint8 cmd1,\n\t\t\t      FuGoodixMocPkgType
      type,\n\t\t\t      GByteArray *req,\n\t\t\t      gboolean data_reply,\n\t\t\t
      \     GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:230,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:230,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:231,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:232,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:234,1
    - Dst: fu_goodix_moc_device_cmd_xfer
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:235,1
    - Dst: fu_struct_goodix_moc_pkg_version_rsp_parse
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:244,1
    - Dst: fu_struct_goodix_moc_pkg_version_rsp_get_fwversion
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:247,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:248,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGoodixMocDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 226
    functionDepth: 7
    functionLinenumber: 226
    functionLinenumberEnd: 250
    functionName: fu_goodix_moc_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_struct_goodix_moc_pkg_version_rsp_parse
    - fu_byte_array_append_uint8
    - FU_DEVICE
    - g_byte_array_new
    - fu_goodix_moc_device_cmd_xfer
    - fu_struct_goodix_moc_pkg_version_rsp_get_fwversion
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodix_moc_device_ensure_version(FuGoodixMocDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:255,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:256,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:256,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:257,1
    - Dst: fu_goodix_moc_device_cmd_xfer
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:260,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:268,1
    - Dst: fu_struct_goodix_moc_pkg_rsp_parse
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:273,1
    - Dst: fu_struct_goodix_moc_pkg_rsp_get_result
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:276,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:277,1
    - Dst: fu_struct_goodix_moc_pkg_rsp_get_result
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuGoodixMocDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 252
    functionDepth: 7
    functionLinenumber: 252
    functionLinenumberEnd: 285
    functionName: fu_goodix_moc_device_update_init
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_goodix_moc_pkg_rsp_get_result
    - g_set_error
    - fu_struct_goodix_moc_pkg_rsp_parse
    - g_prefix_error_literal
    - g_byte_array_new
    - fu_goodix_moc_device_cmd_xfer
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodix_moc_device_update_init(FuGoodixMocDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIX_MOC_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:290,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:291,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:291,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:292,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:293,1
    - Dst: fu_goodix_moc_device_cmd_xfer
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:296,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:304,1
    - Dst: fu_struct_goodix_moc_pkg_rsp_parse
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:309,1
    - Dst: fu_struct_goodix_moc_pkg_rsp_get_result
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:312,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:313,1
    - Dst: fu_struct_goodix_moc_pkg_rsp_get_result
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:317,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 287
    functionDepth: 7
    functionLinenumber: 287
    functionLinenumberEnd: 322
    functionName: fu_goodix_moc_device_attach
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_struct_goodix_moc_pkg_rsp_get_result
    - g_set_error
    - fu_struct_goodix_moc_pkg_rsp_parse
    - g_prefix_error_literal
    - g_byte_array_new
    - fu_goodix_moc_device_cmd_xfer
    - g_autoptr
    - FU_GOODIX_MOC_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodix_moc_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIX_MOC_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:327,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:330,1
    - Dst: fu_goodix_moc_device_ensure_version
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:334,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 324
    functionDepth: 8
    functionLinenumber: 324
    functionLinenumberEnd: 341
    functionName: fu_goodix_moc_device_setup
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - fu_goodix_moc_device_ensure_version
    - FU_DEVICE_CLASS
    - FU_GOODIX_MOC_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_goodix_moc_device_setup(FuDevice *device, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_GOODIX_MOC_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:350,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:353,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:354,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:355,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:358,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:359,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:360,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:361,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:364,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:369,1
    - Dst: fu_goodix_moc_device_update_init
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:375,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:376,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:383,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:386,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:387,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:388,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:388,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:389,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:390,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:391,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:394,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:397,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:397,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:397,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:400,1
    - Dst: fu_goodix_moc_device_cmd_xfer
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:404,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:412,1
    - Dst: fu_struct_goodix_moc_pkg_rsp_parse
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:421,1
    - Dst: fu_struct_goodix_moc_pkg_rsp_get_result
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:424,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:426,1
    - Dst: fu_struct_goodix_moc_pkg_rsp_get_result
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:430,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:435,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:435,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:437,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:439,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 51
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 343
    functionDepth: 8
    functionLinenumber: 343
    functionLinenumberEnd: 443
    functionName: fu_goodix_moc_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_goodix_moc_device_update_init
    - fu_chunk_get_data_sz
    - fu_progress_add_flag
    - g_autoptr
    - fu_firmware_get_bytes
    - fu_struct_goodix_moc_pkg_rsp_parse
    - g_byte_array_new
    - fu_goodix_moc_device_cmd_xfer
    - fu_progress_set_percentage_full
    - fu_progress_add_step
    - fu_progress_step_done
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_chunk_array_length
    - fu_progress_get_child
    - FU_GOODIX_MOC_DEVICE
    - fu_progress_set_id
    - fu_struct_goodix_moc_pkg_rsp_get_result
    - g_set_error
    - fu_chunk_array_index
    - fu_chunk_array_new_from_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_goodix_moc_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-goodix-moc-device.c:448,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:449,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:450,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:451,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:452,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:453,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 455
    functionName: fu_goodix_moc_device_set_progress
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_goodix_moc_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:460,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:460,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:461,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:461,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:462,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:462,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:463,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:463,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:464,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:464,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:465,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:465,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:466,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:466,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:467,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:467,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:468,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:468,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:469,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:469,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:470,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:470,1
    - Dst: fu_device_set_firmware_size_min
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:471,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:471,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:472,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:472,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:473,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuGoodixMocDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 457
    functionDepth: 6
    functionLinenumber: 457
    functionLinenumberEnd: 474
    functionName: fu_goodix_moc_device_init
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_set_firmware_size_min
    - fu_device_set_firmware_size_max
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_summary
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - FU_USB_DEVICE
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_goodix_moc_device_init(FuGoodixMocDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGoodixMocDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 484
    functionName: fu_goodix_moc_device_class_init
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_goodix_moc_device_class_init(FuGoodixMocDeviceClass *klass)
  - 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_goodix_moc_plugin_init
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_goodix_moc_plugin_init(FuGoodixMocPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-plugin.c:27,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-plugin.c:29,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-plugin.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: fu_goodix_moc_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_goodix_moc_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-plugin.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuGoodixMocPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: fu_goodix_moc_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_goodix_moc_plugin_class_init(FuGoodixMocPluginClass *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: 1
    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_version_from_uint32_hex
    - fu_firmware_get_version_format
    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_xmlb_builder_insert_kx
    - FU_DELL_KESTREL_RTSHUB_FIRMWARE
    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: 4
    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: 5
    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_firmware_set_version_raw
    - fu_input_stream_read_u16
    - fu_dell_kestrel_rtshub_firmware_set_offset
    - FU_DELL_KESTREL_RTSHUB_FIRMWARE
    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_add_flag
      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
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c:101,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c:101,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c:102,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub-firmware.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelRtshubFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 103
    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
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelRtshubFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 112
    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: 1
    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_version_from_uint16_hex
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_dell_kestrel_ilan_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:32,1
    - Dst: fu_dell_kestrel_ec_get_dock_type
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:35,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:35,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:38,1
    - Dst: fu_dell_kestrel_ec_devicetype_to_str
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:38,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:39,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:40,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:43,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:44,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:45,1
    - Dst: fu_dell_kestrel_ec_get_ilan_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:48,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:48,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 23
    functionDepth: 7
    functionLinenumber: 23
    functionLinenumberEnd: 51
    functionName: fu_dell_kestrel_ilan_setup
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_add_instance_u8
    - fu_device_set_version_raw
    - fu_device_build_instance_id
    - fu_dell_kestrel_ec_get_dock_type
    - fu_dell_kestrel_ec_devicetype_to_str
    - fu_device_set_name
    - g_strdup_printf
    - fu_dell_kestrel_ec_get_ilan_version
    - fu_device_get_proxy
    - FU_DELL_KESTREL_EC
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ilan_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:60,1
    - Dst: fu_dell_kestrel_hid_device_write_firmware
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:63,1
    - Dst: FU_DELL_KESTREL_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 69
    functionName: fu_dell_kestrel_ilan_write
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c
    functionUses: 0
    functionsReached:
    - fu_dell_kestrel_hid_device_write_firmware
    - FU_DELL_KESTREL_HID_DEVICE
    - fu_device_get_proxy
    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:74,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:75,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:76,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:77,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:78,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 80
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      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_vendor_id
      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_icon
      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_summary
      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
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:89,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:89,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:90,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:90,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:91,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:91,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:92,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:92,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:93,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:93,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:94,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:94,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:95,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:95,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:96,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelIlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 82
    functionDepth: 6
    functionLinenumber: 82
    functionLinenumberEnd: 97
    functionName: fu_dell_kestrel_ilan_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_icon
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_set_proxy_gtype
    - fu_device_add_vendor_id
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelIlanClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 107
    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:112,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:114,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:115,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: fu_dell_kestrel_ilan_new
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ilan.c
    functionUses: 0
    functionsReached:
    - fu_device_set_proxy
    - g_object_new
    - fu_device_get_context
    - FU_DEVICE
    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_add_device
      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_device_locker_new
    - g_autoptr
    - fu_plugin_add_device
    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_literal
      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_literal
      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_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:107,1
    - Dst: fu_dell_kestrel_rtshub_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:110,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:110,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:112,1
    - Dst: fu_device_locker_new
      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: fu_device_add_child
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:124,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:124,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:129,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 136
    functionName: fu_dell_kestrel_plugin_add_device
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_device_get_pid
    - fu_dell_kestrel_rtshub_new
    - fu_device_locker_new
    - g_strdup_printf
    - fu_dell_kestrel_ec_get_dock_type
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_plugin_cache_lookup
    - fu_dell_kestrel_rmm_fix_version
    - fu_plugin_cache_add
    - fu_device_get_vid
    - FU_DEVICE
    - FU_USB_DEVICE
    - FU_DELL_KESTREL_EC
    - g_set_error
    - fu_plugin_get_config_value_boolean
    - fu_dell_kestrel_rmm_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_plugin_add_device(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:157,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:158,1
    - Dst: fu_dell_kestrel_plugin_add_device
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:160,1
    - Dst: fu_plugin_cache_remove
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - plugin
    - ec_device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 138
    functionDepth: 6
    functionLinenumber: 138
    functionLinenumberEnd: 167
    functionName: fu_dell_kestrel_plugin_ec_add_cached_devices
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_dell_kestrel_plugin_add_device
    - fu_plugin_cache_remove
    - 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:178,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:182,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:183,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:188,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:189,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:191,1
    - Dst: fu_dell_kestrel_ec_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:193,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:193,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:195,1
    - Dst: fu_dell_kestrel_plugin_create_node
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:202,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:202,1
    - Dst: fu_dell_kestrel_plugin_ec_add_cached_devices
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:204,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:205,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:210,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:211,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:213,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:213,1
    - Dst: fu_dell_kestrel_plugin_add_device
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:220,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - plugin
    - device
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 169
    functionDepth: 7
    functionLinenumber: 169
    functionLinenumberEnd: 224
    functionName: fu_dell_kestrel_plugin_backend_device_added
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - fu_dell_kestrel_plugin_create_node
    - fu_device_get_pid
    - fu_dell_kestrel_plugin_add_device
    - g_debug
    - fu_plugin_get_config_value_boolean
    - g_set_error_literal
    - g_steal_pointer
    - fu_device_get_vid
    - FU_DEVICE
    - g_error_matches
    - FU_IS_USB_DEVICE
    - g_propagate_error
    - FU_USB_DEVICE
    - g_autoptr
    - fu_dell_kestrel_ec_new
    - fu_dell_kestrel_plugin_ec_add_cached_devices
    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:229,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:230,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:239,1
    - Dst: fu_dell_kestrel_ec_is_dev_present
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:244,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:244,1
    - Dst: fu_dell_kestrel_ec_devicetype_to_str
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:248,1
    - Dst: fu_dell_kestrel_ec_is_dev_present
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:252,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:252,1
    - Dst: fu_dell_kestrel_ec_devicetype_to_str
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:256,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:260,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:263,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:266,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:267,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 269
    functionName: fu_dell_kestrel_plugin_config_mst_dev
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_dell_kestrel_ec_devicetype_to_str
    - fu_dell_kestrel_ec_is_dev_present
    - fu_device_has_private_flag
    - fu_device_set_name
    - fu_plugin_cache_lookup
    - g_warning
    - FU_DELL_KESTREL_EC
    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:274,1
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:275,1
    - Dst: fu_plugin_cache_lookup
      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:278,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:279,1
    - Dst: fu_plugin_cache_remove
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:280,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:283,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:284,1
    - Dst: fu_plugin_cache_remove
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 271
    functionDepth: 5
    functionLinenumber: 271
    functionLinenumberEnd: 287
    functionName: fu_dell_kestrel_plugin_config_parentship
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_cache_lookup
    - fu_device_get_parent
    - fu_device_add_child
    - fu_plugin_cache_remove
    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:293,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:294,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:296,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:296,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:298,1
    - Dst: fu_plugin_get_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:299,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:300,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:304,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:305,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:306,1
    - Dst: fu_plugin_cache_add
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:307,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:311,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:315,1
    - Dst: fu_device_get_pid
      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_IS_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:320,1
    - Dst: fu_plugin_cache_add
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:321,1
    - Dst: fu_dell_kestrel_plugin_config_mst_dev
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:324,1
    - Dst: fu_dell_kestrel_plugin_config_parentship
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:327,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 289
    functionDepth: 6
    functionLinenumber: 289
    functionLinenumberEnd: 328
    functionName: fu_dell_kestrel_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_device_get_pid
    - fu_plugin_get_name
    - fu_device_has_guid
    - fu_device_add_private_flag
    - fu_device_get_plugin
    - fu_device_remove_flag
    - fu_device_get_vid
    - g_strdup_printf
    - fu_device_inhibit
    - FU_IS_DELL_KESTREL_EC
    - fu_dell_kestrel_plugin_config_parentship
    - FU_IS_USB_DEVICE
    - fu_plugin_cache_add
    - fu_dell_kestrel_plugin_config_mst_dev
    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:334,1
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:335,1
    - Dst: FU_IS_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - devices
    argTypes:
    - GPtrArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 344
    functionName: fu_dell_kestrel_plugin_get_ec_from_devices
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_get_parent
    - FU_IS_DELL_KESTREL_EC
    - g_ptr_array_index
    linkageType: ''
    returnType: FuDevice
    signature: 'FuDevice *

      fu_dell_kestrel_plugin_get_ec_from_devices(GPtrArray *devices)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:350,1
    - Dst: fu_dell_kestrel_plugin_get_ec_from_devices
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:353,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:358,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:363,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:366,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:368,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:369,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:369,1
    - Dst: fu_device_activate
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:370,1
    - Dst: fu_dell_kestrel_ec_own_dock
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:377,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:377,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 346
    functionDepth: 3
    functionLinenumber: 346
    functionLinenumberEnd: 381
    functionName: fu_dell_kestrel_plugin_composite_cleanup
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_activate
    - fu_plugin_get_config_value_boolean
    - fu_device_locker_new
    - fu_dell_kestrel_plugin_get_ec_from_devices
    - fu_device_has_flag
    - fu_progress_new
    - fu_dell_kestrel_ec_own_dock
    - g_autoptr
    - FU_DELL_KESTREL_EC
    - g_ptr_array_index
    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:387,1
    - Dst: fu_dell_kestrel_plugin_get_ec_from_devices
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:390,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:395,1
    - Dst: fu_dell_kestrel_ec_is_dock_ready_for_update
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:400,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:400,1
    - Dst: fu_dell_kestrel_ec_own_dock
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:404,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:404,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:408,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:409,1
    - Dst: fu_dell_kestrel_ec_run_passive_update
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:410,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:410,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 417
    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_is_dock_ready_for_update
    - fu_dell_kestrel_ec_run_passive_update
    - fu_plugin_get_config_value_boolean
    - fu_device_locker_new
    - fu_dell_kestrel_plugin_get_ec_from_devices
    - fu_device_has_flag
    - fu_dell_kestrel_ec_own_dock
    - g_autoptr
    - FU_DELL_KESTREL_EC
    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:426,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:427,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - plugin
    - key
    - value
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 435
    functionName: fu_dell_kestrel_plugin_modify_config
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - g_strv_contains
    - fu_plugin_set_config_value
    - g_set_error
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:441,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:447,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:448,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:449,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:450,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:450,1
    - Dst: FU_IS_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:453,1
    - Dst: FU_IS_USB_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:456,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:457,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:458,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:459,1
    - Dst: fu_plugin_cache_remove
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:460,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:462,1
    - Dst: fu_plugin_cache_remove
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:463,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - plugin
    - device
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 437
    functionDepth: 5
    functionLinenumber: 437
    functionLinenumberEnd: 466
    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_parent
    - fu_device_get_pid
    - g_debug
    - FU_IS_USB_DEVICE
    - fu_plugin_cache_remove
    - fu_plugin_get_config_value_boolean
    - fu_device_remove_flag
    - fu_device_get_vid
    - g_strdup_printf
    - fu_device_has_flag
    - FU_IS_DELL_KESTREL_EC
    - G_N_ELEMENTS
    - fu_device_get_name
    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:471,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 472
    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:477,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:479,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:482,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:483,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:484,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:485,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:486,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:487,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:488,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:489,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:492,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:495,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 474
    functionDepth: 3
    functionLinenumber: 474
    functionLinenumberEnd: 499
    functionName: fu_dell_kestrel_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - fu_plugin_set_config_default
    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:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 512
    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: 1
    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: 2
    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:38,1
    - Dst: fu_dell_kestrel_ec_get_dock_type
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:41,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:41,1
    - Dst: fu_dell_kestrel_ec_get_dock_sku
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:42,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:42,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:45,1
    - Dst: fu_dell_kestrel_ec_devicetype_to_str
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:46,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:47,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:48,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:51,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:52,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:53,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:54,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:55,1
    - Dst: fu_dell_kestrel_ec_get_pd_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:65,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:65,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 27
    functionDepth: 7
    functionLinenumber: 27
    functionLinenumberEnd: 71
    functionName: fu_dell_kestrel_pd_setup
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_device_set_logical_id
    - fu_dell_kestrel_ec_get_pd_version
    - fu_device_add_instance_u8
    - fu_device_set_version_raw
    - fu_device_build_instance_id
    - fu_dell_kestrel_ec_get_dock_type
    - fu_dell_kestrel_ec_devicetype_to_str
    - fu_dell_kestrel_ec_get_dock_sku
    - fu_device_set_name
    - fu_device_get_proxy
    - FU_DELL_KESTREL_EC
    - FU_DELL_KESTREL_PD
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_pd_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_KESTREL_PD
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:80,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:81,1
    - Dst: fu_dell_kestrel_hid_device_write_firmware
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:84,1
    - Dst: FU_DELL_KESTREL_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 90
    functionName: fu_dell_kestrel_pd_write
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c
    functionUses: 0
    functionsReached:
    - fu_dell_kestrel_hid_device_write_firmware
    - FU_DELL_KESTREL_PD
    - FU_DELL_KESTREL_HID_DEVICE
    - fu_device_get_proxy
    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:95,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:96,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:97,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:98,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:99,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 101
    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 *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      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_add_vendor_id
      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
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:108,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:109,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:109,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:110,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:110,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:111,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:111,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:112,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:112,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:113,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:113,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:114,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:114,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:115,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:115,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:116,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelPd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 103
    functionDepth: 6
    functionLinenumber: 103
    functionLinenumberEnd: 117
    functionName: fu_dell_kestrel_pd_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_set_proxy_gtype
    - fu_device_add_vendor_id
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelPdClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 127
    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:134,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:136,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:140,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - proxy
    - subtype
    - instance
    argTypes:
    - FuDevice*
    - FuDellKestrelEcDevSubtype
    - FuDellKestrelEcDevInstance
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 142
    functionName: fu_dell_kestrel_pd_new
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-pd.c
    functionUses: 0
    functionsReached:
    - fu_device_set_proxy
    - g_object_new
    - fu_device_get_context
    - FU_DEVICE
    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:
    - FU_DELL_KESTREL_RTSHUB
    - fwupd_codec_string_append_bool
    - fwupd_codec_string_append_hex
    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: 6
    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_struct_rtshub_hid_cmd_buf_set_ext
    - fu_struct_rtshub_hid_cmd_buf_new
    - fu_hid_device_set_report
    - g_prefix_error
    - fu_struct_rtshub_hid_cmd_buf_set_regaddr
    - FU_HID_DEVICE
    - fu_struct_rtshub_hid_cmd_buf_set_bufferlen
    - fu_struct_rtshub_hid_cmd_buf_set_cmd
    - g_autoptr
    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_literal
      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: 6
    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_struct_rtshub_hid_cmd_buf_set_ext
    - fu_struct_rtshub_hid_cmd_buf_new
    - fu_hid_device_set_report
    - g_prefix_error_literal
    - fu_struct_rtshub_hid_cmd_buf_set_regaddr
    - FU_HID_DEVICE
    - fu_struct_rtshub_hid_cmd_buf_set_bufferlen
    - fu_struct_rtshub_hid_cmd_buf_set_cmd
    - g_autoptr
    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: 6
    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_struct_rtshub_hid_cmd_buf_set_ext
    - fu_struct_rtshub_hid_cmd_buf_new
    - fu_hid_device_get_report
    - fu_hid_device_set_report
    - g_set_error_literal
    - fu_device_sleep_full
    - fu_struct_rtshub_hid_cmd_buf_set_regaddr
    - FU_DEVICE
    - FU_HID_DEVICE
    - fu_struct_rtshub_hid_cmd_buf_set_bufferlen
    - fu_struct_rtshub_hid_cmd_buf_set_cmd
    - g_autoptr
    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_literal
      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: 6
    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_struct_rtshub_hid_cmd_buf_set_ext
    - fu_struct_rtshub_hid_cmd_buf_new
    - g_debug
    - fu_hid_device_set_report
    - g_prefix_error_literal
    - FU_DEVICE
    - FU_HID_DEVICE
    - fu_device_get_name
    - fu_struct_rtshub_hid_cmd_buf_set_cmd
    - g_autoptr
    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: 6
    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:
    - g_return_val_if_fail
    - fu_struct_rtshub_hid_cmd_buf_set_ext
    - fu_struct_rtshub_hid_cmd_buf_new
    - fu_struct_rtshub_hid_cmd_buf_set_data
    - fu_hid_device_set_report
    - g_prefix_error
    - fu_struct_rtshub_hid_cmd_buf_set_regaddr
    - FU_HID_DEVICE
    - fu_struct_rtshub_hid_cmd_buf_set_bufferlen
    - fu_struct_rtshub_hid_cmd_buf_set_cmd
    - g_autoptr
    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: g_autoptr
      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: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:185,1
    - Dst: fu_progress_add_step
      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_dell_kestrel_rtshub_set_clock_mode
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:191,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:195,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:199,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:200,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:201,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:202,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:204,1
    - Dst: fu_dell_kestrel_rtshub_erase_spare_bank
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:213,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:215,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:218,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:219,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:222,1
    - Dst: fu_dell_kestrel_rtshub_write_flash
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:227,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:228,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:229,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:230,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:235,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:235,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:237,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:239,1
    - Dst: fu_dell_kestrel_rtshub_verify_update_fw
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:242,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:242,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:244,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:247,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:249,1
    - Dst: fu_dell_kestrel_rtshub_reset_device
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:250,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:251,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:254,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: 260
      start: 173
    functionDepth: 7
    functionLinenumber: 173
    functionLinenumberEnd: 260
    functionName: fu_dell_kestrel_rtshub_write_firmware
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_get_pid
    - fu_dell_kestrel_rtshub_write_flash
    - fu_chunk_get_data_sz
    - fu_device_get_name
    - fu_dell_kestrel_rtshub_erase_spare_bank
    - g_debug
    - g_prefix_error_literal
    - fu_chunk_array_new_from_stream
    - fu_device_has_flag
    - fu_progress_set_percentage_full
    - fu_dell_kestrel_rtshub_set_clock_mode
    - fu_dell_kestrel_rtshub_reset_device
    - fu_progress_add_step
    - fu_progress_step_done
    - fu_chunk_get_data
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_dell_kestrel_rtshub_verify_update_fw
    - fu_chunk_get_address
    - fu_progress_set_id
    - FU_DELL_KESTREL_RTSHUB
    - fu_firmware_get_stream
    - fu_chunk_array_index
    - fu_device_get_version
    - fu_firmware_get_version
    - g_autoptr
    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: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:266,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:266,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:268,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_ext
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:269,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_regaddr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:270,1
    - Dst: fu_struct_rtshub_hid_cmd_buf_set_bufferlen
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:271,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:273,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:273,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:281,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:281,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:291,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:292,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelRtshub*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 262
    functionDepth: 6
    functionLinenumber: 262
    functionLinenumberEnd: 301
    functionName: fu_dell_kestrel_rtshub_get_status
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - fu_struct_rtshub_hid_cmd_buf_set_ext
    - fu_device_set_version
    - fu_struct_rtshub_hid_cmd_buf_new
    - fu_hid_device_get_report
    - fu_hid_device_set_report
    - fu_struct_rtshub_hid_cmd_buf_set_regaddr
    - FU_DEVICE
    - FU_HID_DEVICE
    - g_strdup_printf
    - fu_struct_rtshub_hid_cmd_buf_set_bufferlen
    - fu_struct_rtshub_hid_cmd_buf_set_cmd
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_rtshub_get_status(FuDellKestrelRtshub *self,
      GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_DELL_KESTREL_RTSHUB
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:306,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:309,1
    - Dst: fu_dell_kestrel_rtshub_get_status
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:312,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:316,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 303
    functionDepth: 7
    functionLinenumber: 303
    functionLinenumberEnd: 322
    functionName: fu_dell_kestrel_rtshub_setup
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_DELL_KESTREL_RTSHUB
    - fu_device_set_update_error
    - fu_dell_kestrel_rtshub_get_status
    - FU_DEVICE_CLASS
    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:328,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:331,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:332,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:337,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:342,1
    - Dst: fu_device_set_name
      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:347,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:350,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:353,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:357,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:362,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:362,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:363,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:366,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 324
    functionDepth: 7
    functionLinenumber: 324
    functionLinenumberEnd: 369
    functionName: fu_dell_kestrel_rtshub_probe
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - FU_DELL_KESTREL_RTSHUB
    - fu_device_get_pid
    - fu_device_add_instance_u8
    - g_set_error
    - fu_device_build_instance_id
    - fu_device_get_vid
    - fu_device_set_name
    - g_strdup_printf
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_rtshub_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:374,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:375,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:376,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:377,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:378,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:379,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 381
    functionName: fu_dell_kestrel_rtshub_set_progress
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_dell_kestrel_rtshub_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:386,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:386,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:387,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:387,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:388,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:388,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:389,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:389,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:390,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:390,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:391,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:391,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:392,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:392,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:393,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:393,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:394,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:394,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:395,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelRtshub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 383
    functionDepth: 6
    functionLinenumber: 383
    functionLinenumberEnd: 396
    functionName: fu_dell_kestrel_rtshub_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_retry_set_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - 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:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelRtshubClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 407
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:412,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:414,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:414,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:414,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:418,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - dock_type
    - uod
    argTypes:
    - FuUsbDevice*
    - FuDellDockBaseType
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 409
    functionDepth: 9
    functionLinenumber: 409
    functionLinenumberEnd: 420
    functionName: fu_dell_kestrel_rtshub_new
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rtshub.c
    functionUses: 1
    functionsReached:
    - FU_DEVICE
    - g_object_new
    - fu_device_add_flag
    - fu_device_incorporate
    linkageType: ''
    returnType: FuDellKestrelRtshub
    signature: 'FuDellKestrelRtshub *

      fu_dell_kestrel_rtshub_new(FuUsbDevice *device, FuDellDockBaseType dock_type,
      gboolean uod)'
  - 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: 1
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:33,1
    - Dst: fu_dell_kestrel_ec_get_dock_type
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:36,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:36,1
    - Dst: fu_dell_kestrel_ec_get_dock_sku
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:37,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:37,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:40,1
    - Dst: fu_dell_kestrel_ec_devicetype_to_str
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:40,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:41,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:42,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:45,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:46,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:47,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:48,1
    - Dst: fu_dell_kestrel_ec_get_wtpd_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:51,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:51,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 23
    functionDepth: 7
    functionLinenumber: 23
    functionLinenumberEnd: 55
    functionName: fu_dell_kestrel_wtpd_setup
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_add_instance_u8
    - fu_device_set_version_raw
    - fu_device_build_instance_id
    - fu_dell_kestrel_ec_get_dock_type
    - fu_dell_kestrel_ec_devicetype_to_str
    - fu_dell_kestrel_ec_get_dock_sku
    - fu_device_set_name
    - g_strdup_printf
    - fu_dell_kestrel_ec_get_wtpd_version
    - fu_device_get_proxy
    - FU_DELL_KESTREL_EC
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_wtpd_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:64,1
    - Dst: fu_dell_kestrel_hid_device_write_firmware
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:67,1
    - Dst: FU_DELL_KESTREL_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: fu_dell_kestrel_wtpd_write
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c
    functionUses: 0
    functionsReached:
    - fu_dell_kestrel_hid_device_write_firmware
    - FU_DELL_KESTREL_HID_DEVICE
    - fu_device_get_proxy
    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:78,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:79,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:80,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:81,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:82,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 84
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      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_vendor_id
      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
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:91,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:91,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:92,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:92,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:93,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:93,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:94,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:94,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:95,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:95,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:96,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:96,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:97,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:97,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:98,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:98,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:99,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelWtpd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 6
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: fu_dell_kestrel_wtpd_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_set_proxy_gtype
    - fu_device_add_vendor_id
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelWtpdClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 110
    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:115,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:117,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:118,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: fu_dell_kestrel_wtpd_new
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-wtpd.c
    functionUses: 0
    functionsReached:
    - fu_device_set_proxy
    - g_object_new
    - fu_device_get_context
    - FU_DEVICE
    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: 6
    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
    - fu_hid_device_set_report
    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:58,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:60,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:65,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:67,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:68,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:69,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:72,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:72,1
    - Dst: fu_struct_dell_kestrel_hid_fw_update_pkg_to_bytes
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:74,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: 75
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 75
    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_struct_dell_kestrel_hid_fw_update_pkg_set_dev_identifier
    - fu_byte_array_append_bytes
    - fu_struct_dell_kestrel_hid_fw_update_pkg_set_cmd
    - fu_struct_dell_kestrel_hid_fw_update_pkg_set_chunk_sz
    - fu_chunk_get_data_sz
    - fu_struct_dell_kestrel_hid_fw_update_pkg_set_sub_cmd
    - fu_struct_dell_kestrel_hid_fw_update_pkg_set_ext
    - fu_struct_dell_kestrel_hid_fw_update_pkg_set_dev_type
    - fu_struct_dell_kestrel_hid_fw_update_pkg_to_bytes
    - g_autoptr
    - fu_chunk_get_bytes
    - fu_struct_dell_kestrel_hid_fw_update_pkg_set_fw_sz
    - fu_struct_dell_kestrel_hid_fw_update_pkg_new
    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:81,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 77
    functionDepth: 6
    functionLinenumber: 77
    functionLinenumberEnd: 88
    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
    - fu_hid_device_set_report
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_hid_device_hid_set_report_cb(FuDevice *device,
      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:95,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuDellKestrelHidDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 4
    functionLinenumber: 90
    functionLinenumberEnd: 100
    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  GByteArray *buf,\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:106,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 6
    functionLinenumber: 102
    functionLinenumberEnd: 113
    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 *device,
      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:120,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - inbuffer
    - error
    argTypes:
    - FuDellKestrelHidDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 126
    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
    - fu_device_retry_full
    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:133,1
    - Dst: fu_struct_dell_kestrel_hid_cmd_buffer_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:133,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:135,1
    - Dst: fu_struct_dell_kestrel_hid_cmd_buffer_set_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:137,1
    - Dst: fu_struct_dell_kestrel_hid_cmd_buffer_set_ext
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:138,1
    - Dst: fu_struct_dell_kestrel_hid_cmd_buffer_set_dwregaddr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:139,1
    - Dst: fu_struct_dell_kestrel_hid_cmd_buffer_set_bufferlen
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:140,1
    - Dst: fu_struct_dell_kestrel_hid_cmd_buffer_set_databytes
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:141,1
    - Dst: fu_dell_kestrel_hid_device_hid_set_report
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - self
    - cmd_buf
    - error
    argTypes:
    - FuDellKestrelHidDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 128
    functionDepth: 5
    functionLinenumber: 128
    functionLinenumberEnd: 147
    functionName: fu_dell_kestrel_hid_device_i2c_write
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_struct_dell_kestrel_hid_cmd_buffer_set_dwregaddr
    - 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_ext
    - fu_struct_dell_kestrel_hid_cmd_buffer_set_cmd
    - fu_struct_dell_kestrel_hid_cmd_buffer_set_databytes
    - g_autoptr
    - fu_struct_dell_kestrel_hid_cmd_buffer_new
    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:156,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: 13
    argCount: 5
    argNames:
    - self
    - cmd
    - res
    - delayms
    - error
    argTypes:
    - FuDellKestrelHidDevice*
    - FuDellKestrelEcCmd
    - GByteArray*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 149
    functionDepth: 5
    functionLinenumber: 149
    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_dwregaddr
    - fu_struct_dell_kestrel_hid_cmd_buffer_set_bufferlen
    - fu_dell_kestrel_hid_device_hid_set_report
    - fu_device_sleep
    - fu_struct_dell_kestrel_hid_cmd_buffer_set_ext
    - FU_DEVICE
    - fu_dell_kestrel_hid_device_get_report
    - fu_struct_dell_kestrel_hid_cmd_buffer_set_cmd
    - fu_memcpy_safe
    - g_autoptr
    - fu_struct_dell_kestrel_hid_cmd_buffer_new
    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_dell_kestrel_ec_is_chunk_supported
    - FU_DELL_KESTREL_EC
    - FU_IS_DELL_KESTREL_EC
    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: 8
    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:255,1
    - Dst: g_error_matches
      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_error_matches
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:258,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:261,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:262,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:268,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:269,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:271,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:271,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:277,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:278,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:278,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:280,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:282,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:283,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:283,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:286,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    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: 289
      start: 206
    functionDepth: 7
    functionLinenumber: 206
    functionLinenumberEnd: 289
    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_get_data_sz
    - fu_device_get_name
    - g_debug
    - fu_progress_set_steps
    - g_byte_array_new
    - fu_dell_kestrel_hid_device_write
    - fu_device_get_version_format
    - fu_device_sleep
    - fu_progress_step_done
    - FU_DEVICE
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_chunk_array_length
    - fu_progress_set_id
    - fu_chunk_array_index
    - g_steal_pointer
    - fu_version_compare
    - fu_device_get_version
    - g_error_matches
    - g_autoptr
    - fu_byte_array_set_size
    - g_propagate_prefixed_error
    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:298,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:298,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - resp
    - error
    argTypes:
    - FuDellKestrelHidDevice*
    - FuDellKestrelHidEcChunkResponse*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 291
    functionDepth: 6
    functionLinenumber: 291
    functionLinenumberEnd: 308
    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:319,1
    - Dst: fu_dell_kestrel_hid_device_get_chunk_delaytime
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:320,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:321,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:322,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:325,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:330,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:332,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:333,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:334,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:334,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:335,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:335,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:336,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:340,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:346,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:347,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:347,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:350,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:353,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:354,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:355,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:357,1
    - Dst: fu_dell_kestrel_hid_device_fwup_pkg_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:362,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:365,1
    - Dst: fu_dell_kestrel_hid_device_write_firmware_pages
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:371,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:374,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:377,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:382,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:383,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:383,1
    - Dst: fu_dell_kestrel_hid_device_verify_chunk_result
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:386,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:390,1
    - Dst: fu_dell_kestrel_hid_ec_chunk_response_to_string
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:393,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:397,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:400,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:403,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:407,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:407,1
    - Dst: fu_dell_kestrel_hid_ec_chunk_response_to_string
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c:409,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: 416
      start: 310
    functionDepth: 8
    functionLinenumber: 310
    functionLinenumberEnd: 416
    functionName: fu_dell_kestrel_hid_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-hid-device.c
    functionUses: 3
    functionsReached:
    - fu_dell_kestrel_hid_device_verify_chunk_result
    - fu_dell_kestrel_hid_device_get_chunk_size
    - fu_device_get_name
    - g_autoptr
    - fu_progress_finished
    - g_debug
    - fu_firmware_get_bytes
    - fu_dell_kestrel_hid_ec_chunk_response_to_string
    - fu_progress_set_steps
    - fu_dell_kestrel_hid_device_fwup_pkg_new
    - fu_dell_kestrel_hid_device_get_chunk_delaytime
    - fu_device_sleep
    - fu_progress_step_done
    - FU_DEVICE
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_progress_set_id
    - g_set_error
    - fu_chunk_array_index
    - fu_device_get_version
    - g_bytes_get_size
    - fu_firmware_get_version
    - fu_dell_kestrel_hid_device_write_firmware_pages
    - fu_chunk_array_new_from_bytes
    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: 421
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 421
    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: 426
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 426
    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: 6
    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:33,1
    - Dst: fu_struct_dell_kestrel_dock_info_header_get_total_devices
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:34,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:36,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:41,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:42,1
    - Dst: fu_struct_dell_kestrel_dock_info_get_devices
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:44,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:45,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:48,1
    - Dst: fu_struct_dell_kestrel_dock_info_ec_addr_map_get_subtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:52,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: 11
    EdgeCount: 11
    ICount: 26
    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:
    - g_debug
    - fu_struct_dell_kestrel_dock_info_ec_addr_map_get_subtype
    - fu_struct_dell_kestrel_dock_info_ec_query_entry_get_ec_addr_map
    - g_steal_pointer
    - fu_struct_dell_kestrel_dock_info_header_get_total_devices
    - fu_struct_dell_kestrel_dock_info_get_header
    - fu_struct_dell_kestrel_dock_info_ec_addr_map_get_instance
    - fu_struct_dell_kestrel_dock_info_get_devices
    - fu_struct_dell_kestrel_dock_info_ec_addr_map_get_device_type
    - g_autoptr
    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_literal
      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: 6
    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_i2c_read
    - g_prefix_error_literal
    - FU_DELL_KESTREL_HID_DEVICE
    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_literal
      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: 6
    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_i2c_write
    - g_prefix_error_literal
    - FU_DELL_KESTREL_HID_DEVICE
    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: 7
    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_locker_new
    - g_autoptr
    - FU_DEVICE
    - fu_device_add_child
    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_DEVICE
    - fu_dell_kestrel_ec_create_node
    - g_autoptr
    - fu_dell_kestrel_package_new
    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_dell_kestrel_ec_create_node
    - FU_DEVICE
    - 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:262,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:264,1
    - Dst: fu_dell_kestrel_dpmux_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:266,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:266,1
    - Dst: fu_dell_kestrel_ec_create_node
      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_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:272,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:274,1
    - Dst: fu_dell_kestrel_wtpd_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:276,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:276,1
    - Dst: fu_dell_kestrel_ec_create_node
      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_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:282,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:284,1
    - Dst: fu_dell_kestrel_ilan_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:286,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:286,1
    - Dst: fu_dell_kestrel_ec_create_node
      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_struct_dell_kestrel_dock_data_get_board_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:291,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:292,1
    - Dst: FU_DEVICE
      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:294,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:294,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 226
    functionDepth: 7
    functionLinenumber: 226
    functionLinenumberEnd: 298
    functionName: fu_dell_kestrel_ec_probe_subcomponents
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_dell_kestrel_ilan_new
    - fu_device_set_firmware_size
    - fu_dell_kestrel_wtpd_new
    - fu_dell_kestrel_ec_create_node
    - fu_dell_kestrel_dpmux_new
    - fu_dell_kestrel_ec_probe_package
    - FU_DEVICE
    - fu_dell_kestrel_ec_dev_entry
    - fu_struct_dell_kestrel_dock_data_get_board_id
    - g_autoptr
    - fu_dell_kestrel_ec_probe_pd
    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:303,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:308,1
    - Dst: fu_device_add_instance_u8
      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
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:317,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:317,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:318,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 300
    functionDepth: 7
    functionLinenumber: 300
    functionLinenumberEnd: 327
    functionName: fu_dell_kestrel_ec_dock_type_extract
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_u8
    - fu_device_build_instance_id
    - fu_dell_kestrel_ec_get_dock_type
    - g_set_error_literal
    - FU_DEVICE
    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:334,1
    - Dst: g_byte_array_new_take
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:334,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:334,1
    - Dst: fu_dell_kestrel_ec_read
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:337,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:338,1
    - Dst: fu_dell_kestrel_ec_dock_type_extract
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 329
    functionDepth: 8
    functionLinenumber: 329
    functionLinenumberEnd: 346
    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_dock_type_extract
    - g_byte_array_new_take
    - g_prefix_error_literal
    - g_malloc0
    - g_autoptr
    - fu_dell_kestrel_ec_read
    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:352,1
    - Dst: fu_struct_dell_kestrel_dock_info_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:352,1
    - Dst: fu_dell_kestrel_ec_read
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:355,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:356,1
    - Dst: fu_struct_dell_kestrel_dock_info_parse
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 348
    functionDepth: 7
    functionLinenumber: 348
    functionLinenumberEnd: 362
    functionName: fu_dell_kestrel_ec_dock_info_cmd
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - fu_struct_dell_kestrel_dock_info_new
    - fu_struct_dell_kestrel_dock_info_parse
    - g_autoptr
    - fu_dell_kestrel_ec_read
    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:372,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:373,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:373,1
    - Dst: fu_struct_dell_kestrel_dock_data_get_service_tag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:376,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:378,1
    - Dst: fu_struct_dell_kestrel_dock_data_get_module_serial
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:380,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:381,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 384
    functionName: fu_dell_kestrel_ec_dock_data_extract
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_struct_dell_kestrel_dock_data_get_module_serial
    - fu_device_set_serial
    - fu_device_set_name
    - g_strdup_printf
    - FU_DEVICE
    - fu_struct_dell_kestrel_dock_data_get_service_tag
    - fu_struct_dell_kestrel_dock_data_get_marketing_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:390,1
    - Dst: fu_struct_dell_kestrel_dock_data_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:390,1
    - Dst: fu_dell_kestrel_ec_read
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:393,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:394,1
    - Dst: fu_struct_dell_kestrel_dock_data_unref
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:399,1
    - Dst: fu_struct_dell_kestrel_dock_data_parse
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:401,1
    - Dst: fu_dell_kestrel_ec_dock_data_extract
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:404,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 386
    functionDepth: 7
    functionLinenumber: 386
    functionLinenumberEnd: 407
    functionName: fu_dell_kestrel_ec_dock_data_cmd
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_struct_dell_kestrel_dock_data_unref
    - fu_struct_dell_kestrel_dock_data_new
    - g_prefix_error_literal
    - fu_dell_kestrel_ec_dock_data_extract
    - fu_struct_dell_kestrel_dock_data_parse
    - g_autoptr
    - fu_dell_kestrel_ec_read
    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_dock_data_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:415,1
    - Dst: fu_struct_dell_kestrel_dock_data_get_dock_status
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:418,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 409
    functionDepth: 8
    functionLinenumber: 409
    functionLinenumberEnd: 429
    functionName: fu_dell_kestrel_ec_is_dock_ready_for_update
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 1
    functionsReached:
    - fu_struct_dell_kestrel_dock_data_get_dock_status
    - fu_dell_kestrel_ec_dock_data_cmd
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_is_dock_ready_for_update(FuDellKestrelEc
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:434,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:435,1
    - Dst: fu_device_get_version_format
      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:438,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:439,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 431
    functionDepth: 4
    functionLinenumber: 431
    functionLinenumberEnd: 445
    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
    - fu_device_get_version
    - fu_version_compare
    - fu_device_get_version_format
    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:451,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:452,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:453,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_set_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:456,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_set_data_sz
      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:460,1
    - Dst: fu_dell_kestrel_ec_is_new_ownership_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:461,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:463,1
    - Dst: fu_dell_kestrel_ec_is_new_ownership_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:464,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_set_data
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:466,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:472,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:472,1
    - Dst: fu_dell_kestrel_ec_write
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:473,1
    - Dst: g_error_matches
      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:475,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:477,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:478,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:484,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - self
    - lock
    - error
    argTypes:
    - FuDellKestrelEc*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 447
    functionDepth: 7
    functionLinenumber: 447
    functionLinenumberEnd: 487
    functionName: fu_dell_kestrel_ec_own_dock
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 2
    functionsReached:
    - g_strdup
    - g_debug
    - fu_device_sleep
    - g_steal_pointer
    - FU_DEVICE
    - fu_struct_dell_kestrel_ec_databytes_set_cmd
    - fu_dell_kestrel_ec_write
    - fu_struct_dell_kestrel_ec_databytes_set_data_sz
    - fu_struct_dell_kestrel_ec_databytes_new
    - fu_struct_dell_kestrel_ec_databytes_set_data
    - fu_dell_kestrel_ec_is_new_ownership_cmd
    - g_error_matches
    - g_autoptr
    - g_propagate_prefixed_error
    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:493,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:494,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_set_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:498,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_set_data_sz
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:499,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_set_data
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:500,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:507,1
    - Dst: fu_dell_kestrel_ec_write
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:508,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:509,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:512,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 489
    functionDepth: 7
    functionLinenumber: 489
    functionLinenumberEnd: 515
    functionName: fu_dell_kestrel_ec_run_passive_update
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 1
    functionsReached:
    - g_debug
    - fu_device_sleep
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_struct_dell_kestrel_ec_databytes_set_cmd
    - fu_dell_kestrel_ec_write
    - fu_struct_dell_kestrel_ec_databytes_set_data_sz
    - fu_struct_dell_kestrel_ec_databytes_new
    - fu_struct_dell_kestrel_ec_databytes_set_data
    - g_autoptr
    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:521,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:524,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:532,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:543,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuDellKestrelEc*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 549
    functionName: fu_dell_kestrel_ec_ensure_dock_sku
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_dell_kestrel_ec_dev_entry
    - g_autoptr
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_ec_ensure_dock_sku(FuDellKestrelEc *self,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:557,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:559,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:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - subtype
    - instance
    argTypes:
    - FuDellKestrelEc*
    - FuDellKestrelEcDevSubtype
    - FuDellKestrelEcDevInstance
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 562
    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:568,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:570,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:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 573
    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:579,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:581,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:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 584
    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:590,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:592,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:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 595
    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:601,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:603,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:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 606
    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:612,1
    - Dst: fu_dell_kestrel_ec_dev_entry
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:614,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:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 617
    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: 2
    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:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 625
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:630,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:631,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:632,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:636,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:640,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:649,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_set_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:657,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_set_data_sz
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:658,1
    - Dst: fu_struct_dell_kestrel_ec_databytes_set_data
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:659,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:662,1
    - Dst: fu_dell_kestrel_ec_write
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:664,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:665,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuDellKestrelEc*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 627
    functionDepth: 7
    functionLinenumber: 627
    functionLinenumberEnd: 669
    functionName: fu_dell_kestrel_ec_commit_package
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_input_stream_size
    - g_prefix_error_literal
    - fu_dump_raw
    - fu_input_stream_read_byte_array
    - fu_struct_dell_kestrel_ec_databytes_set_cmd
    - fu_dell_kestrel_ec_write
    - fu_struct_dell_kestrel_ec_databytes_set_data_sz
    - fu_struct_dell_kestrel_ec_databytes_new
    - fu_struct_dell_kestrel_ec_databytes_set_data
    - g_autoptr
    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:678,1
    - Dst: fu_dell_kestrel_hid_device_write_firmware
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:679,1
    - Dst: FU_DELL_KESTREL_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:679,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: 685
      start: 671
    functionDepth: 9
    functionLinenumber: 671
    functionLinenumberEnd: 685
    functionName: fu_dell_kestrel_ec_write_firmware
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - FU_DELL_KESTREL_EC
    - fu_dell_kestrel_hid_device_write_firmware
    - FU_DELL_KESTREL_HID_DEVICE
    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:690,1
    - Dst: fu_dell_kestrel_ec_dock_data_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:693,1
    - Dst: fu_dell_kestrel_ec_dock_info_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:697,1
    - Dst: fu_dell_kestrel_ec_ensure_dock_sku
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:701,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 687
    functionDepth: 8
    functionLinenumber: 687
    functionLinenumberEnd: 705
    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
    - fu_dell_kestrel_ec_ensure_dock_sku
    - fu_dell_kestrel_ec_dock_data_cmd
    - fu_dell_kestrel_ec_dock_info_cmd
    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:710,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:713,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:713,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:719,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 707
    functionDepth: 3
    functionLinenumber: 707
    functionLinenumberEnd: 723
    functionName: fu_dell_kestrel_ec_reload
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - FU_DELL_KESTREL_EC
    - g_prefix_error_literal
    - fu_device_retry_full
    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:728,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:732,1
    - Dst: fu_dell_kestrel_ec_dock_type_cmd
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:736,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:740,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:746,1
    - Dst: fu_dell_kestrel_ec_get_ec_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:751,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:752,1
    - Dst: fu_dell_kestrel_ec_probe_subcomponents
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:755,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:758,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 725
    functionDepth: 9
    functionLinenumber: 725
    functionLinenumberEnd: 760
    functionName: fu_dell_kestrel_ec_setup
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_raw
    - fu_dell_kestrel_ec_probe_subcomponents
    - g_debug
    - g_prefix_error_literal
    - fu_device_retry_full
    - fu_dell_kestrel_ec_get_ec_version
    - fu_dell_kestrel_ec_dock_type_cmd
    - FU_DELL_KESTREL_EC
    - FU_DEVICE_CLASS
    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:765,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 766
    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:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 773
    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:778,1
    - Dst: fu_struct_dell_kestrel_dock_data_unref
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:780,1
    - Dst: fu_struct_dell_kestrel_dock_info_unref
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:782,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:783,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 784
    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_info_unref
    - FU_DELL_KESTREL_EC
    - fu_struct_dell_kestrel_dock_data_unref
    - G_OBJECT_CLASS
    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:789,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:790,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:791,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:792,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:793,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 786
    functionDepth: 3
    functionLinenumber: 786
    functionLinenumberEnd: 795
    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 *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      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_vendor_id
      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_icon
      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_set_summary
      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_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_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_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_add_flag
      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
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:808,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:808,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:809,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:809,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:810,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:810,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:811,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:811,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:812,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:812,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:813,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelEc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 797
    functionDepth: 6
    functionLinenumber: 797
    functionLinenumberEnd: 814
    functionName: fu_dell_kestrel_ec_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_icon
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_add_vendor_id
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:819,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelEcClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 828
    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:834,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:834,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:836,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:837,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:837,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:838,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:840,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:840,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:842,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c:842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - usb_device
    - uod
    argTypes:
    - FuUsbDevice*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 830
    functionDepth: 9
    functionLinenumber: 830
    functionLinenumberEnd: 844
    functionName: fu_dell_kestrel_ec_new
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-ec.c
    functionUses: 1
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_add_flag
    - fu_device_get_context
    - fu_device_incorporate
    - FU_DEVICE
    - g_object_new
    linkageType: ''
    returnType: FuDellKestrelEc
    signature: 'FuDellKestrelEc *

      fu_dell_kestrel_ec_new(FuUsbDevice *usb_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: 1
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:33,1
    - Dst: fu_dell_kestrel_ec_get_dock_sku
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:36,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:36,1
    - Dst: fu_dell_kestrel_ec_get_dock_type
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:37,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:37,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:40,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:41,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:42,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:43,1
    - Dst: fu_dell_kestrel_ec_get_package_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:46,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:46,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 25
    functionDepth: 7
    functionLinenumber: 25
    functionLinenumberEnd: 50
    functionName: fu_dell_kestrel_package_setup
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_u8
    - fu_device_set_version_raw
    - fu_device_add_instance_strup
    - fu_device_build_instance_id
    - fu_dell_kestrel_ec_get_dock_type
    - fu_dell_kestrel_ec_get_dock_sku
    - fu_dell_kestrel_ec_get_package_version
    - fu_device_get_proxy
    - FU_DELL_KESTREL_EC
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_package_setup(FuDevice *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:61,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:64,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:65,1
    - Dst: FU_IS_FIRMWARE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:65,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:68,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:73,1
    - Dst: fu_version_from_uint32_hex
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:78,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:78,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:79,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:80,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:81,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:85,1
    - Dst: fu_dell_kestrel_ec_commit_package
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:88,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:88,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 52
    functionDepth: 8
    functionLinenumber: 52
    functionLinenumberEnd: 95
    functionName: fu_dell_kestrel_package_write
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_version_from_uint32_hex
    - g_debug
    - fu_firmware_get_stream
    - fu_device_get_name
    - fu_device_get_proxy
    - fu_dell_kestrel_ec_commit_package
    - fu_device_set_version
    - FU_IS_FIRMWARE
    - fu_device_get_version
    - g_autoptr
    - fu_input_stream_read_u32
    - FU_DELL_KESTREL_EC
    - fu_device_get_version_format
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:100,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:105,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:106,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:106,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:108,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:109,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:110,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 97
    functionDepth: 4
    functionLinenumber: 97
    functionLinenumberEnd: 114
    functionName: fu_dell_kestrel_package_attach
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c
    functionUses: 0
    functionsReached:
    - fwupd_request_new
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fwupd_request_set_id
    - fu_device_has_flag
    - fu_device_get_proxy
    - fu_device_emit_request
    - g_autoptr
    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:119,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:120,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:121,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:122,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:123,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 125
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:130,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:130,1
    - Dst: fu_device_add_vendor_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:131,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:131,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:132,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:132,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:133,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:133,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:134,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:134,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:135,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:135,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:136,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:136,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:137,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:137,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:138,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:138,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:139,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:139,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:140,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:140,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:141,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelPackage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 127
    functionDepth: 6
    functionLinenumber: 127
    functionLinenumberEnd: 142
    functionName: fu_dell_kestrel_package_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_summary
    - fu_device_set_proxy_gtype
    - fu_device_add_request_flag
    - fu_device_add_vendor_id
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelPackageClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 153
    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:158,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:160,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:161,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:161,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:162,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: fu_dell_kestrel_package_new
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-package.c
    functionUses: 1
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_get_context
    - FU_DEVICE
    - g_object_new
    - fu_device_set_proxy
    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: 1
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:33,1
    - Dst: fu_dell_kestrel_ec_get_dock_type
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:36,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:36,1
    - Dst: fu_dell_kestrel_ec_get_dock_sku
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:37,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:37,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:40,1
    - Dst: fu_dell_kestrel_ec_devicetype_to_str
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:40,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:41,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:42,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:45,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:46,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:47,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:48,1
    - Dst: fu_dell_kestrel_ec_get_dpmux_version
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:51,1
    - Dst: FU_DELL_KESTREL_EC
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:51,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 23
    functionDepth: 7
    functionLinenumber: 23
    functionLinenumberEnd: 55
    functionName: fu_dell_kestrel_dpmux_setup
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_add_instance_u8
    - fu_device_set_version_raw
    - fu_device_build_instance_id
    - fu_dell_kestrel_ec_get_dock_type
    - fu_dell_kestrel_ec_devicetype_to_str
    - fu_dell_kestrel_ec_get_dock_sku
    - fu_device_set_name
    - g_strdup_printf
    - fu_device_get_proxy
    - fu_dell_kestrel_ec_get_dpmux_version
    - FU_DELL_KESTREL_EC
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_dell_kestrel_dpmux_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:64,1
    - Dst: fu_dell_kestrel_hid_device_write_firmware
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:67,1
    - Dst: FU_DELL_KESTREL_HID_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 9
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: fu_dell_kestrel_dpmux_write
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c
    functionUses: 0
    functionsReached:
    - fu_dell_kestrel_hid_device_write_firmware
    - FU_DELL_KESTREL_HID_DEVICE
    - fu_device_get_proxy
    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:78,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:79,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:80,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:81,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:82,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 84
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      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_vendor_id
      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_icon
      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
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:92,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:92,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:93,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:93,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:94,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:94,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:95,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:95,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:96,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:96,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:97,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:97,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:98,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:98,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:99,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:99,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:100,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDellKestrelDpmux*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 86
    functionDepth: 6
    functionLinenumber: 86
    functionLinenumberEnd: 101
    functionName: fu_dell_kestrel_dpmux_init
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_icon
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_set_proxy_gtype
    - fu_device_add_vendor_id
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuDellKestrelDpmuxClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 111
    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:116,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:118,1
    - Dst: fu_device_set_proxy
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:119,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: fu_dell_kestrel_dpmux_new
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-dpmux.c
    functionUses: 1
    functionsReached:
    - fu_device_set_proxy
    - g_object_new
    - fu_device_get_context
    - FU_DEVICE
    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: 1
    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: 2
    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_device_reload
    - fu_device_get_parent
    - fu_dell_kestrel_ec_get_rmm_version
    - fu_device_set_version_raw
    - fu_device_locker_new
    - FU_DEVICE
    - FU_IS_DELL_KESTREL_EC
    - g_autoptr
    - FU_DELL_KESTREL_EC
    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_literal
      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: 3
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: fu_dell_kestrel_rmm_setup
    functionSourceFile: /src/fwupd/plugins/dell-kestrel/fu-dell-kestrel-rmm.c
    functionUses: 0
    functionsReached:
    - FU_DELL_KESTREL_RMM
    - fu_dell_kestrel_rmm_fix_version
    - FU_DEVICE_CLASS
    - g_prefix_error_literal
    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: 9
    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_write_firmware
    - FU_DELL_KESTREL_HID_DEVICE
    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:
    - device
    - 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 *device, 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_add_flag
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_add_vendor_id
    - fu_device_set_version_format
    - fu_device_add_protocol
    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
    - g_object_new
    - fu_device_incorporate
    linkageType: ''
    returnType: FuDellKestrelRmm
    signature: 'FuDellKestrelRmm *

      fu_dell_kestrel_rmm_new(FuUsbDevice *device)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:21,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: fu_context_build_filename
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:30,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:33,1
    - Dst: fu_acpi_facp_new
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:36,1
    - Dst: fu_acpi_facp_get_pm_profile
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:39,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:44,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 47
    functionName: fu_acpi_facp_plugin_startup
    functionSourceFile: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c
    functionUses: 0
    functionsReached:
    - fu_bytes_get_contents
    - fu_context_build_filename
    - fu_context_add_flag
    - fu_plugin_get_context
    - fu_acpi_facp_new
    - fu_acpi_facp_get_pm_profile
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_acpi_facp_plugin_startup(FuPlugin *plugin, FuProgress *progress,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:52,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:54,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:55,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:56,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:57,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:60,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:61,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:62,1
    - Dst: fu_context_build_filename
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:65,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:67,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:68,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:71,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:73,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:74,1
    - Dst: fu_acpi_facp_new
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:77,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:79,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:80,1
    - Dst: fu_security_attr_add_bios_target_value
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:85,1
    - Dst: fu_acpi_facp_get_s2i
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:87,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:90,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:91,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:93,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:96,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:97,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:98,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 104
    functionName: fu_acpi_facp_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/acpi-facp/fu-acpi-facp-plugin.c
    functionUses: 0
    functionsReached:
    - fu_acpi_facp_get_s2i
    - fu_context_has_flag
    - fu_bytes_get_contents
    - fu_context_build_filename
    - g_debug
    - fwupd_security_attr_set_result
    - fwupd_security_attr_add_flag
    - fu_plugin_security_attr_new
    - fu_plugin_get_context
    - fu_security_attr_add_bios_target_value
    - fu_acpi_facp_new
    - g_warning
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    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: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    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:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiFacpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 117
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c:26,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c:30,1
    - Dst: fu_memread_uint8_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:36,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c:39,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - blob
    - error
    argTypes:
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 44
    functionName: fu_acpi_facp_new
    functionSourceFile: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c
    functionUses: 2
    functionsReached:
    - fu_memread_uint32_safe
    - g_debug
    - g_bytes_get_data
    - g_object_new
    - fu_memread_uint8_safe
    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:49,1
    - Dst: FU_IS_ACPI_FACP
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiFacp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    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:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c:56,1
    - Dst: FU_IS_ACPI_FACP
      Src: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiFacp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: fu_acpi_facp_get_pm_profile
    functionSourceFile: /src/fwupd/plugins/acpi-facp/fu-acpi-facp.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_ACPI_FACP
    linkageType: ''
    returnType: FuAcpiFadtPmProfile
    signature: FuAcpiFadtPmProfile fu_acpi_facp_get_pm_profile(FuAcpiFacp *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiFacpClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    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: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    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
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:33,1
    - Dst: fu_acpi_facp_get_pm_profile
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 13
    functionDepth: 5
    functionLinenumber: 13
    functionLinenumberEnd: 34
    functionName: fu_acpi_facp_s2i_disabled_func
    functionSourceFile: /src/fwupd/plugins/acpi-facp/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_acpi_facp_get_s2i
    - fu_bytes_get_contents
    - g_assert_cmpuint
    - g_assert_nonnull
    - g_assert_no_error
    - g_file_test
    - fu_acpi_facp_new
    - g_assert_false
    - fu_acpi_facp_get_pm_profile
    - g_test_skip
    - g_test_build_filename
    - g_autoptr
    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:40,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:41,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:42,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:44,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:45,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:46,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:49,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:50,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:51,1
    - Dst: fu_acpi_facp_new
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:52,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:53,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:54,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:55,1
    - Dst: fu_acpi_facp_get_s2i
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:55,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:56,1
    - Dst: fu_acpi_facp_get_pm_profile
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 36
    functionDepth: 5
    functionLinenumber: 36
    functionLinenumberEnd: 57
    functionName: fu_acpi_facp_s2i_enabled_func
    functionSourceFile: /src/fwupd/plugins/acpi-facp/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_acpi_facp_get_s2i
    - fu_bytes_get_contents
    - g_assert_cmpuint
    - g_assert_nonnull
    - g_assert_no_error
    - g_file_test
    - fu_acpi_facp_new
    - fu_acpi_facp_get_pm_profile
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_acpi_facp_s2i_enabled_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:63,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:64,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:65,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:67,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:68,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:69,1
    - Dst: fu_bytes_get_contents
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:72,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:73,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:74,1
    - Dst: fu_acpi_facp_new
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:75,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:76,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:77,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:78,1
    - Dst: fu_acpi_facp_get_s2i
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:78,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:79,1
    - Dst: fu_acpi_facp_get_pm_profile
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 82
    functionName: fu_acpi_facp_server_func
    functionSourceFile: /src/fwupd/plugins/acpi-facp/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_acpi_facp_get_s2i
    - fu_bytes_get_contents
    - g_assert_cmpuint
    - g_assert_nonnull
    - g_assert_no_error
    - g_file_test
    - fu_acpi_facp_new
    - g_assert_false
    - fu_acpi_facp_get_pm_profile
    - g_test_skip
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_acpi_facp_server_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:87,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:88,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:89,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:90,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:91,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/acpi-facp/fu-self-test.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: main
    functionSourceFile: /src/fwupd/plugins/acpi-facp/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:30,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:30,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:37,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:42,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:42,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - self
    - req
    - res
    - error
    argTypes:
    - FuAverHidDevice*
    - GByteArray*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 26
    functionDepth: 6
    functionLinenumber: 26
    functionLinenumberEnd: 54
    functionName: fu_aver_hid_device_transfer
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_HID_DEVICE
    - fu_hid_device_set_report
    - fu_hid_device_get_report
    - g_prefix_error_literal
    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:59,1
    - Dst: fu_struct_aver_hid_req_isp_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:59,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:60,1
    - Dst: fu_struct_aver_hid_res_isp_status_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:60,1
    - Dst: fu_struct_aver_hid_req_isp_set_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:62,1
    - Dst: fu_aver_hid_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:63,1
    - Dst: fu_struct_aver_hid_res_isp_status_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:65,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:70,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:71,1
    - Dst: fu_aver_hid_status_to_string
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:75,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAverHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 56
    functionDepth: 7
    functionLinenumber: 56
    functionLinenumberEnd: 80
    functionName: fu_aver_hid_device_ensure_status
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_aver_hid_res_isp_status_validate
    - fu_aver_hid_status_to_string
    - fu_struct_aver_hid_res_isp_status_new
    - fu_aver_hid_device_transfer
    - g_autoptr
    - fu_struct_aver_hid_req_isp_set_custom_isp_cmd
    - fu_struct_aver_hid_res_isp_status_get_status
    - fu_struct_aver_hid_req_isp_new
    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:86,1
    - Dst: fu_struct_aver_hid_req_device_version_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:88,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:106,1
    - Dst: fu_struct_aver_hid_res_device_version_get_ver
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:106,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:108,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAverHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 82
    functionDepth: 7
    functionLinenumber: 82
    functionLinenumberEnd: 110
    functionName: fu_aver_hid_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_aver_hid_res_device_version_validate
    - fu_strsafe
    - fu_device_set_version
    - g_debug
    - fu_struct_aver_hid_res_device_version_new
    - g_steal_pointer
    - FU_DEVICE
    - fu_aver_hid_device_transfer
    - g_error_matches
    - fu_struct_aver_hid_req_device_version_new
    - g_propagate_error
    - g_autoptr
    - fu_struct_aver_hid_res_device_version_get_ver
    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:115,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:118,1
    - Dst: fu_aver_hid_device_ensure_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:122,1
    - Dst: fu_aver_hid_device_ensure_version
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 112
    functionDepth: 8
    functionLinenumber: 112
    functionLinenumberEnd: 131
    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_DEVICE_CLASS
    - fu_aver_hid_device_ensure_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_aver_hid_device_setup(FuDevice *device, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:140,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:141,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:141,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:143,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:144,1
    - Dst: fu_struct_aver_hid_req_isp_file_dnload_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:145,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:146,1
    - Dst: fu_struct_aver_hid_res_isp_status_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:147,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:150,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:155,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:155,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:156,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:160,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:164,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:167,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:168,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:170,1
    - Dst: fu_chunk_array_length
      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_byte_array_set_size
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:177,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:177,1
    - Dst: fu_aver_hid_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:178,1
    - Dst: fu_struct_aver_hid_res_isp_status_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:180,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:187,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:189,1
    - Dst: fu_aver_hid_status_to_string
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:193,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:194,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:199,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuAverHidDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 133
    functionDepth: 7
    functionLinenumber: 133
    functionLinenumberEnd: 204
    functionName: fu_aver_hid_device_isp_file_dnload
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_struct_aver_hid_req_isp_file_dnload_set_custom_isp_cmd
    - fu_struct_aver_hid_req_isp_file_dnload_new
    - fu_progress_set_steps
    - fu_aver_hid_status_to_string
    - fu_aver_hid_device_transfer
    - fu_struct_aver_hid_res_isp_status_get_status
    - fu_progress_step_done
    - FU_DEVICE
    - fu_struct_aver_hid_res_isp_status_new
    - fu_chunk_get_data
    - fu_chunk_array_length
    - fu_progress_set_id
    - g_set_error
    - fu_chunk_array_index
    - fu_struct_aver_hid_res_isp_status_validate
    - fu_device_has_private_flag
    - fu_memcpy_safe
    - g_autoptr
    - 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:209,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:210,1
    - Dst: fu_struct_aver_hid_req_isp_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:210,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:211,1
    - Dst: fu_struct_aver_hid_res_isp_status_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:211,1
    - Dst: fu_struct_aver_hid_req_isp_set_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:213,1
    - Dst: fu_aver_hid_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:214,1
    - Dst: fu_struct_aver_hid_res_isp_status_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:216,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:221,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:222,1
    - Dst: fu_aver_hid_status_to_string
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:226,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 206
    functionDepth: 7
    functionLinenumber: 206
    functionLinenumberEnd: 231
    functionName: fu_aver_hid_device_wait_for_ready_cb
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_aver_hid_res_isp_status_validate
    - FU_AVER_HID_DEVICE
    - fu_aver_hid_status_to_string
    - fu_struct_aver_hid_res_isp_status_new
    - fu_aver_hid_device_transfer
    - g_autoptr
    - fu_struct_aver_hid_req_isp_set_custom_isp_cmd
    - fu_struct_aver_hid_res_isp_status_get_status
    - fu_struct_aver_hid_req_isp_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:239,1
    - Dst: fu_struct_aver_hid_req_isp_file_start_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:240,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:241,1
    - Dst: fu_struct_aver_hid_res_isp_status_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:241,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:243,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:243,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: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:248,1
    - Dst: fu_struct_aver_hid_req_isp_file_start_set_file_name
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:252,1
    - Dst: fu_struct_aver_hid_req_isp_file_start_set_file_size
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:254,1
    - Dst: fu_aver_hid_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:255,1
    - Dst: fu_struct_aver_hid_res_isp_status_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - self
    - sz
    - name
    - error
    argTypes:
    - FuAverHidDevice*
    - gsize
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 233
    functionDepth: 7
    functionLinenumber: 233
    functionLinenumberEnd: 263
    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_req_isp_file_start_new
    - fu_struct_aver_hid_res_isp_status_validate
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_struct_aver_hid_res_isp_status_new
    - fu_aver_hid_device_transfer
    - fu_struct_aver_hid_req_isp_file_start_set_file_name
    - fu_struct_aver_hid_req_isp_file_start_set_custom_isp_cmd
    - g_autoptr
    - fu_struct_aver_hid_req_isp_file_start_set_file_size
    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:268,1
    - Dst: fu_struct_aver_hid_req_isp_file_end_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:268,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:269,1
    - Dst: fu_struct_aver_hid_res_isp_status_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:269,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:271,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:271,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:272,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:276,1
    - Dst: fu_struct_aver_hid_req_isp_file_end_set_file_name
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:280,1
    - Dst: fu_struct_aver_hid_req_isp_file_end_set_end_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:282,1
    - Dst: fu_struct_aver_hid_req_isp_file_end_set_file_size
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:283,1
    - Dst: fu_aver_hid_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:284,1
    - Dst: fu_struct_aver_hid_res_isp_status_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:286,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - self
    - sz
    - name
    - error
    argTypes:
    - FuAverHidDevice*
    - gsize
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 265
    functionDepth: 7
    functionLinenumber: 265
    functionLinenumberEnd: 292
    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_req_isp_file_end_set_custom_isp_cmd
    - fu_struct_aver_hid_req_isp_file_end_set_file_size
    - fu_struct_aver_hid_res_isp_status_validate
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_struct_aver_hid_res_isp_status_new
    - fu_struct_aver_hid_req_isp_file_end_set_file_name
    - fu_aver_hid_device_transfer
    - fu_struct_aver_hid_req_isp_file_end_new
    - g_autoptr
    - fu_struct_aver_hid_req_isp_file_end_set_end_flag
    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:297,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:298,1
    - Dst: fu_struct_aver_hid_req_isp_file_end_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:298,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:299,1
    - Dst: fu_struct_aver_hid_res_isp_status_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:299,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:301,1
    - Dst: fu_aver_hid_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:303,1
    - Dst: g_info
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:306,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: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
    - Dst: g_set_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:309,1
    - Dst: fu_aver_hid_status_to_string
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:313,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 294
    functionDepth: 7
    functionLinenumber: 294
    functionLinenumberEnd: 318
    functionName: fu_aver_hid_device_wait_for_untar_cb
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_aver_hid_req_isp_file_end_set_custom_isp_cmd
    - g_info
    - g_set_error
    - fu_aver_hid_status_to_string
    - fu_struct_aver_hid_res_isp_status_new
    - fu_aver_hid_device_transfer
    - fu_struct_aver_hid_req_isp_file_end_new
    - g_autoptr
    - FU_AVER_HID_DEVICE
    - fu_struct_aver_hid_res_isp_status_get_status
    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:323,1
    - Dst: fu_struct_aver_hid_req_isp_start_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:323,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:324,1
    - Dst: fu_struct_aver_hid_res_isp_status_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:324,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:326,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:326,1
    - Dst: fu_struct_aver_hid_req_isp_start_set_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:327,1
    - Dst: fu_struct_aver_hid_req_isp_start_set_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:331,1
    - Dst: fu_aver_hid_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:335,1
    - Dst: fu_struct_aver_hid_res_isp_status_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAverHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 320
    functionDepth: 7
    functionLinenumber: 320
    functionLinenumberEnd: 343
    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_device_has_private_flag
    - FU_DEVICE
    - fu_struct_aver_hid_res_isp_status_new
    - fu_struct_aver_hid_req_isp_start_new
    - fu_aver_hid_device_transfer
    - fu_struct_aver_hid_req_isp_start_set_custom_isp_cmd
    - g_autoptr
    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:348,1
    - Dst: fu_struct_aver_hid_req_isp_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:348,1
    - Dst: fu_struct_aver_hid_req_isp_set_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:349,1
    - Dst: fu_aver_hid_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAverHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 345
    functionDepth: 7
    functionLinenumber: 345
    functionLinenumberEnd: 352
    functionName: fu_aver_hid_device_isp_reboot
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_aver_hid_device_transfer
    - g_autoptr
    - fu_struct_aver_hid_req_isp_set_custom_isp_cmd
    - fu_struct_aver_hid_req_isp_new
    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:357,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:358,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:359,1
    - Dst: fu_struct_aver_hid_req_isp_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:359,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:360,1
    - Dst: fu_struct_aver_hid_res_isp_status_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:360,1
    - Dst: fu_struct_aver_hid_req_isp_set_custom_isp_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:362,1
    - Dst: fu_aver_hid_device_transfer
      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:365,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_progress
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:366,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:368,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:369,1
    - Dst: fu_aver_hid_status_to_string
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:373,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:374,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:377,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:378,1
    - Dst: fu_aver_hid_status_to_string
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:382,1
    - Dst: fu_struct_aver_hid_res_isp_status_get_status
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:383,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 354
    functionDepth: 7
    functionLinenumber: 354
    functionLinenumberEnd: 387
    functionName: fu_aver_hid_device_wait_for_reboot_cb
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_percentage
    - FU_PROGRESS
    - g_set_error
    - fu_aver_hid_status_to_string
    - fu_struct_aver_hid_res_isp_status_new
    - fu_aver_hid_device_transfer
    - fu_struct_aver_hid_res_isp_status_get_progress
    - fu_struct_aver_hid_req_isp_set_custom_isp_cmd
    - g_autoptr
    - FU_AVER_HID_DEVICE
    - fu_struct_aver_hid_res_isp_status_get_status
    - fu_struct_aver_hid_req_isp_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:396,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:398,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:399,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:402,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:403,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:404,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:405,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:406,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:407,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:408,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:411,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:414,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:418,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:425,1
    - Dst: fu_aver_hid_device_isp_file_start
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:428,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:430,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:433,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:436,1
    - Dst: fu_aver_hid_device_isp_file_dnload
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:444,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:446,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:449,1
    - Dst: fu_aver_hid_device_isp_file_end
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:452,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:454,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:459,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:463,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:466,1
    - Dst: fu_aver_hid_device_isp_start
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:469,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:471,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:474,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:478,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:482,1
    - Dst: fu_aver_hid_device_isp_reboot
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:485,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:487,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:487,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 389
    functionDepth: 8
    functionLinenumber: 389
    functionLinenumberEnd: 491
    functionName: fu_aver_hid_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_progress_add_step
    - fu_firmware_get_stream
    - fu_input_stream_size
    - fu_firmware_get_filename
    - fu_aver_hid_device_isp_file_start
    - fu_progress_step_done
    - fu_aver_hid_device_isp_file_dnload
    - fu_progress_get_child
    - fu_device_retry_full
    - fu_aver_hid_device_isp_file_end
    - fu_aver_hid_device_isp_start
    - fu_aver_hid_device_isp_reboot
    - fu_chunk_array_new_from_stream
    - FU_DEVICE
    - g_autoptr
    - FU_AVER_HID_DEVICE
    - fu_progress_set_id
    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:496,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:497,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:498,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:499,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:500,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 493
    functionDepth: 3
    functionLinenumber: 493
    functionLinenumberEnd: 502
    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 *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      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_add_protocol
      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_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:509,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:509,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:510,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:510,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:511,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:511,1
    - Dst: fu_device_add_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
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:513,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:513,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:514,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:514,1
    - Dst: fu_device_set_poll_interval
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:515,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:515,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:516,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:516,1
    - Dst: fu_usb_device_set_claim_retry_count
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:517,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:517,1
    - Dst: fu_hid_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:518,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:518,1
    - Dst: fu_hid_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:519,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:519,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:520,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAverHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 504
    functionDepth: 6
    functionLinenumber: 504
    functionLinenumberEnd: 521
    functionName: fu_aver_hid_device_init
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_hid_device_add_flag
    - FU_HID_DEVICE
    - fu_device_set_poll_interval
    - fu_usb_device_set_claim_retry_count
    - fu_device_set_version_format
    - FU_USB_DEVICE
    - fu_device_add_protocol
    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:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAverHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 530
    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:22,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-plugin.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAverHidPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 23
    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:28,1
    - Dst: fu_plugin_add_udev_subsystem
      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: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/aver-hid/fu-aver-hid-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: fu_aver_hid_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-hid-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAverHidPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    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:30,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:30,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:37,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:42,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:42,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - self
    - req
    - res
    - error
    argTypes:
    - FuAverSafeispDevice*
    - GByteArray*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 23
    functionDepth: 6
    functionLinenumber: 23
    functionLinenumberEnd: 54
    functionName: fu_aver_safeisp_device_transfer
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    functionUses: 0
    functionsReached:
    - FU_HID_DEVICE
    - fu_hid_device_set_report
    - fu_hid_device_get_report
    - g_prefix_error_literal
    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:60,1
    - Dst: fu_struct_aver_safeisp_req_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:61,1
    - Dst: fu_struct_aver_safeisp_res_device_version_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:62,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:64,1
    - Dst: fu_aver_safeisp_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:65,1
    - Dst: fu_struct_aver_safeisp_res_device_version_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:67,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:72,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: 56
    functionDepth: 7
    functionLinenumber: 56
    functionLinenumberEnd: 77
    functionName: fu_aver_safeisp_device_ensure_version
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    functionUses: 0
    functionsReached:
    - fu_strsafe
    - fu_device_set_version
    - fu_struct_aver_safeisp_req_set_custom_cmd
    - fu_aver_safeisp_device_transfer
    - FU_DEVICE
    - fu_struct_aver_safeisp_res_device_version_validate
    - fu_struct_aver_safeisp_req_new
    - fu_struct_aver_safeisp_res_device_version_new
    - g_autoptr
    - fu_struct_aver_safeisp_res_device_version_get_ver
    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: 8
    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: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuAverSafeispDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 95
    functionDepth: 7
    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_new
    - fu_struct_aver_safeisp_req_set_custom_cmd
    - fu_struct_aver_safeisp_res_validate
    - fu_aver_safeisp_device_transfer
    - fu_struct_aver_safeisp_req_new
    - fu_struct_aver_safeisp_res_get_custom_cmd
    - g_autoptr
    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:122,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm1
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:123,1
    - Dst: fu_aver_safeisp_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:124,1
    - Dst: fu_struct_aver_safeisp_res_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - self
    - partition
    - size
    - error
    argTypes:
    - FuAverSafeispDevice*
    - FuAverSafeIspPartition
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 111
    functionDepth: 7
    functionLinenumber: 111
    functionLinenumberEnd: 129
    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_req_set_custom_parm1
    - fu_struct_aver_safeisp_res_new
    - fu_struct_aver_safeisp_req_set_custom_cmd
    - fu_struct_aver_safeisp_res_validate
    - fu_aver_safeisp_device_transfer
    - fu_struct_aver_safeisp_req_new
    - fu_struct_aver_safeisp_req_set_custom_parm0
    - g_autoptr
    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:137,1
    - Dst: fu_struct_aver_safeisp_req_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:137,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:138,1
    - Dst: fu_struct_aver_safeisp_res_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:138,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:140,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm0
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:141,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm1
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:142,1
    - Dst: fu_aver_safeisp_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:143,1
    - Dst: fu_struct_aver_safeisp_res_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - self
    - param0
    - param1
    - error
    argTypes:
    - FuAverSafeispDevice*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 131
    functionDepth: 7
    functionLinenumber: 131
    functionLinenumberEnd: 148
    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_req_set_custom_parm1
    - fu_struct_aver_safeisp_res_new
    - fu_struct_aver_safeisp_req_set_custom_cmd
    - fu_struct_aver_safeisp_res_validate
    - fu_aver_safeisp_device_transfer
    - fu_struct_aver_safeisp_req_new
    - fu_struct_aver_safeisp_req_set_custom_parm0
    - g_autoptr
    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:158,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:159,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:159,1
    - Dst: fu_chunk_array_length
      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: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:162,1
    - Dst: fu_struct_aver_safeisp_req_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:162,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:163,1
    - Dst: fu_struct_aver_safeisp_res_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:163,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:166,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:172,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:176,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:180,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm0
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:188,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:188,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm1
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:189,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:189,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:191,1
    - Dst: fu_chunk_get_data
      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:195,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:197,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:202,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:203,1
    - Dst: fu_byte_array_set_size
      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_struct_aver_safeisp_req_set_custom_parm1
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:205,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:206,1
    - Dst: fu_aver_safeisp_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:208,1
    - Dst: fu_struct_aver_safeisp_res_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:210,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:217,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: 222
      start: 150
    functionDepth: 7
    functionLinenumber: 150
    functionLinenumberEnd: 222
    functionName: fu_aver_safeisp_device_upload
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_struct_aver_safeisp_req_set_custom_cmd
    - fu_struct_aver_safeisp_res_validate
    - fu_progress_set_steps
    - fu_struct_aver_safeisp_res_new
    - fu_progress_step_done
    - fu_chunk_get_data
    - fu_struct_aver_safeisp_req_new
    - fu_chunk_array_length
    - fu_chunk_get_address
    - fu_progress_set_id
    - fu_struct_aver_safeisp_req_set_custom_parm1
    - g_set_error
    - fu_chunk_array_index
    - fu_aver_safeisp_device_transfer
    - fu_memcpy_safe
    - fu_struct_aver_safeisp_req_set_custom_parm0
    - g_autoptr
    - 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:230,1
    - Dst: fu_struct_aver_safeisp_req_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:230,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:231,1
    - Dst: fu_struct_aver_safeisp_res_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:231,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:233,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm0
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:236,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm1
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:237,1
    - Dst: fu_aver_safeisp_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:238,1
    - Dst: fu_struct_aver_safeisp_res_validate
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:240,1
    - Dst: fu_struct_aver_safeisp_res_get_custom_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - self
    - param0
    - param1
    - error
    argTypes:
    - FuAverSafeispDevice*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 224
    functionDepth: 7
    functionLinenumber: 224
    functionLinenumberEnd: 245
    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_set_custom_parm1
    - fu_struct_aver_safeisp_res_new
    - fu_struct_aver_safeisp_req_set_custom_cmd
    - fu_struct_aver_safeisp_res_validate
    - fu_aver_safeisp_device_transfer
    - fu_struct_aver_safeisp_req_new
    - fu_struct_aver_safeisp_res_get_custom_cmd
    - fu_struct_aver_safeisp_req_set_custom_parm0
    - g_autoptr
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:250,1
    - Dst: fu_struct_aver_safeisp_req_new
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:250,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_cmd
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:251,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm0
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:252,1
    - Dst: fu_struct_aver_safeisp_req_set_custom_parm1
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:253,1
    - Dst: fu_aver_safeisp_device_transfer
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - self
    - param0
    - param1
    - error
    argTypes:
    - FuAverSafeispDevice*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 247
    functionDepth: 7
    functionLinenumber: 247
    functionLinenumberEnd: 255
    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_parm1
    - fu_struct_aver_safeisp_req_set_custom_cmd
    - fu_aver_safeisp_device_transfer
    - fu_struct_aver_safeisp_req_new
    - fu_struct_aver_safeisp_req_set_custom_parm0
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_aver_safeisp_device_update(FuAverSafeispDevice *self, gsize
      param0, gsize param1, GError **error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FU_AVER_SAFEISP_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:264,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: g_autoptr
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:274,1
    - Dst: fu_progress_set_id
      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_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:283,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:286,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:291,1
    - Dst: fu_firmware_get_image_by_id_bytes
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:294,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:299,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:301,1
    - Dst: fu_sum32
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:309,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:312,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:314,1
    - Dst: fu_sum32
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:322,1
    - Dst: fu_aver_safeisp_device_support
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:325,1
    - Dst: fu_aver_safeisp_device_upload_prepare
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:329,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:331,1
    - Dst: fu_aver_safeisp_device_erase_flash
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:334,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:338,1
    - Dst: fu_aver_safeisp_device_upload
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:342,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:344,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:348,1
    - Dst: fu_aver_safeisp_device_upload_checksum
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:351,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:353,1
    - Dst: fu_aver_safeisp_device_upload_prepare
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:356,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:358,1
    - Dst: fu_aver_safeisp_device_erase_flash
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:361,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:365,1
    - Dst: fu_aver_safeisp_device_upload
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:369,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:371,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:375,1
    - Dst: fu_aver_safeisp_device_upload_checksum
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:378,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:380,1
    - Dst: fu_aver_safeisp_device_update
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:383,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:386,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:386,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 63
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 257
    functionDepth: 8
    functionLinenumber: 257
    functionLinenumberEnd: 390
    functionName: fu_aver_safeisp_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_aver_safeisp_device_upload_checksum
    - fu_aver_safeisp_device_erase_flash
    - fu_sum32
    - g_autoptr
    - fu_firmware_get_image_by_id_bytes
    - fu_aver_safeisp_device_upload
    - fu_aver_safeisp_device_update
    - FU_AVER_SAFEISP_DEVICE
    - fu_aver_safeisp_device_upload_prepare
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_progress_step_done
    - fu_aver_safeisp_device_support
    - FU_DEVICE
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_firmware_get_stream
    - g_set_error
    - fu_chunk_array_new_from_bytes
    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:395,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:396,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:397,1
    - Dst: fu_progress_add_step
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 401
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:406,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:406,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:407,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:407,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:408,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:408,1
    - Dst: fu_device_add_flag
      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_flag
      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_add_flag
      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_private_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_set_remove_delay
      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_hid_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:415,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:415,1
    - Dst: fu_hid_device_add_flag
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:416,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAverSafeispDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 403
    functionDepth: 6
    functionLinenumber: 403
    functionLinenumberEnd: 417
    functionName: fu_aver_safeisp_device_init
    functionSourceFile: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_hid_device_add_flag
    - FU_HID_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAverSafeispDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 426
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBlestechTpPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_blestech_tp_plugin_init
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_blestech_tp_plugin_init(FuBlestechTpPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-plugin.c:27,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-plugin.c:29,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-plugin.c:30,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: fu_blestech_tp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_blestech_tp_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-plugin.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBlestechTpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: fu_blestech_tp_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_blestech_tp_plugin_class_init(FuBlestechTpPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_sum16
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c:28,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: 31
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: fu_blestech_tp_firmware_compute_checksum_cb
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_sum16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_blestech_tp_firmware_compute_checksum_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_return_val_if_fail
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c:36,1
    - Dst: FU_IS_BLESTECH_TP_FIRMWARE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBlestechTpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: fu_blestech_tp_firmware_get_checksum
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_BLESTECH_TP_FIRMWARE
    linkageType: ''
    returnType: guint16
    signature: guint16 fu_blestech_tp_firmware_get_checksum(FuBlestechTpFirmware *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLESTECH_TP_FIRMWARE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c:46,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c:49,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c:55,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c:55,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 66
    functionName: fu_blestech_tp_firmware_parse
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_raw
    - fu_input_stream_read_u16
    - FU_BLESTECH_TP_FIRMWARE
    - FU_FIRMWARE
    - fu_input_stream_chunkify
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_blestech_tp_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_BLESTECH_TP_FIRMWARE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c:71,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    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_blestech_tp_firmware_export
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_BLESTECH_TP_FIRMWARE
    - fu_xmlb_builder_insert_kx
    linkageType: ''
    returnType: void
    signature: void fu_blestech_tp_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c:79,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c:79,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c:80,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBlestechTpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: fu_blestech_tp_firmware_init
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_blestech_tp_firmware_init(FuBlestechTpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBlestechTpFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: fu_blestech_tp_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_blestech_tp_firmware_class_init(FuBlestechTpFirmwareClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:38,1
    - Dst: fu_blestech_tp_set_hdr_new
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:38,1
    - Dst: fu_blestech_tp_set_hdr_set_report_id
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:42,1
    - Dst: fu_blestech_tp_set_hdr_set_pack_len
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:43,1
    - Dst: fu_blestech_tp_set_hdr_set_write_len
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:45,1
    - Dst: fu_blestech_tp_set_hdr_set_read_len
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:46,1
    - Dst: fu_blestech_tp_set_hdr_set_data
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:47,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:51,1
    - Dst: fu_xor8_safe
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:57,1
    - Dst: fu_blestech_tp_set_hdr_set_checksum
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:64,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:65,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - self
    - wbuf
    - rbufsz
    - error
    argTypes:
    - FuBlestechTpHidDevice*
    - GByteArray*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 70
    functionName: fu_blestech_tp_hid_device_write
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_xor8_safe
    - fu_blestech_tp_set_hdr_set_data
    - fu_hidraw_device_set_feature
    - fu_blestech_tp_set_hdr_set_checksum
    - fu_blestech_tp_set_hdr_new
    - fu_blestech_tp_set_hdr_set_report_id
    - fu_blestech_tp_set_hdr_set_write_len
    - fu_blestech_tp_set_hdr_set_pack_len
    - FU_HIDRAW_DEVICE
    - fu_blestech_tp_set_hdr_set_read_len
    - fu_memread_uint8_safe
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_blestech_tp_hid_device_write(FuBlestechTpHidDevice *self,\n\t\t\t\tGByteArray
      *wbuf,\n\t\t\t\tgsize rbufsz,\n\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:79,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:79,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - rbuf
    - rbufsz
    - error
    argTypes:
    - FuBlestechTpHidDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 72
    functionDepth: 5
    functionLinenumber: 72
    functionLinenumberEnd: 86
    functionName: fu_blestech_tp_hid_device_read
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_get_feature
    - fu_memcpy_safe
    - FU_HIDRAW_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_blestech_tp_hid_device_read(FuBlestechTpHidDevice *self,\n\t\t\t
      \      guint8 *rbuf,\n\t\t\t       gsize rbufsz,\n\t\t\t       GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:92,1
    - Dst: fu_blestech_tp_get_fw_ver_req_new
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:92,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:93,1
    - Dst: fu_blestech_tp_hid_device_write
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:95,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:96,1
    - Dst: fu_blestech_tp_hid_device_read
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:99,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:100,1
    - Dst: fu_blestech_tp_get_fw_ver_res_parse
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:103,1
    - Dst: fu_blestech_tp_get_fw_ver_res_get_val
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - self
    - fw_ver
    - error
    argTypes:
    - FuBlestechTpHidDevice*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 88
    functionDepth: 6
    functionLinenumber: 88
    functionLinenumberEnd: 110
    functionName: fu_blestech_tp_hid_device_get_version
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_blestech_tp_get_fw_ver_res_parse
    - fu_blestech_tp_hid_device_read
    - fu_blestech_tp_get_fw_ver_res_get_val
    - g_prefix_error_literal
    - fu_blestech_tp_get_fw_ver_req_new
    - g_autoptr
    - fu_blestech_tp_hid_device_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_blestech_tp_hid_device_get_version(FuBlestechTpHidDevice
      *self, guint16 *fw_ver, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:116,1
    - Dst: fu_blestech_tp_update_start_req_new
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:116,1
    - Dst: fu_blestech_tp_hid_device_write
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:118,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:120,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:120,1
    - Dst: fu_blestech_tp_hid_device_read
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBlestechTpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 112
    functionDepth: 6
    functionLinenumber: 112
    functionLinenumberEnd: 128
    functionName: fu_blestech_tp_hid_device_update_start
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_blestech_tp_update_start_req_new
    - fu_device_sleep
    - fu_blestech_tp_hid_device_read
    - FU_DEVICE
    - g_autoptr
    - fu_blestech_tp_hid_device_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_blestech_tp_hid_device_update_start(FuBlestechTpHidDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:134,1
    - Dst: fu_blestech_tp_switch_boot_req_new
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:134,1
    - Dst: fu_blestech_tp_hid_device_write
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:136,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:138,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:138,1
    - Dst: fu_blestech_tp_hid_device_get_version
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:141,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBlestechTpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 130
    functionDepth: 7
    functionLinenumber: 130
    functionLinenumberEnd: 154
    functionName: fu_blestech_tp_hid_device_switch_boot
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_blestech_tp_switch_boot_req_new
    - g_set_error
    - fu_device_sleep
    - FU_DEVICE
    - fu_blestech_tp_hid_device_get_version
    - g_autoptr
    - fu_blestech_tp_hid_device_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_blestech_tp_hid_device_switch_boot(FuBlestechTpHidDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:164,1
    - Dst: fu_blestech_tp_program_page_end_req_new
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:165,1
    - Dst: fu_blestech_tp_program_page_end_req_set_page
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:167,1
    - Dst: fu_blestech_tp_hid_device_write
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:168,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:170,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:170,1
    - Dst: fu_blestech_tp_hid_device_read
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:171,1
    - Dst: fu_blestech_tp_program_page_end_res_parse
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:175,1
    - Dst: fu_blestech_tp_program_page_end_res_get_checksum
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:178,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - self
    - page
    - checksum
    - error
    argTypes:
    - FuBlestechTpHidDevice*
    - guint16
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 156
    functionDepth: 6
    functionLinenumber: 156
    functionLinenumberEnd: 191
    functionName: fu_blestech_tp_hid_device_program_page_end
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_blestech_tp_program_page_end_req_set_page
    - g_set_error
    - fu_device_sleep
    - fu_blestech_tp_hid_device_read
    - FU_DEVICE
    - fu_blestech_tp_program_page_end_res_get_checksum
    - fu_blestech_tp_program_page_end_res_parse
    - fu_blestech_tp_program_page_end_req_new
    - g_autoptr
    - fu_blestech_tp_hid_device_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_blestech_tp_hid_device_program_page_end(FuBlestechTpHidDevice
      *self,\n\t\t\t\t\t   guint16 page,\n\t\t\t\t\t   guint8 checksum,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:196,1
    - Dst: fu_blestech_tp_program_page_req_new
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:196,1
    - Dst: fu_blestech_tp_program_page_req_set_data
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:198,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:199,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:200,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:203,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:203,1
    - Dst: fu_blestech_tp_hid_device_write
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - page
    - error
    argTypes:
    - FuBlestechTpHidDevice*
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 193
    functionDepth: 6
    functionLinenumber: 193
    functionLinenumberEnd: 205
    functionName: fu_blestech_tp_hid_device_program_page
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_blestech_tp_program_page_req_set_data
    - fu_chunk_get_data_sz
    - g_byte_array_set_size
    - fu_chunk_get_data
    - g_autoptr
    - fu_blestech_tp_program_page_req_new
    - fu_blestech_tp_hid_device_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_blestech_tp_hid_device_program_page(FuBlestechTpHidDevice
      *self, FuChunk *page, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLESTECH_TP_HID_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:210,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:213,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:216,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:216,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:217,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:225,1
    - Dst: fu_blestech_tp_hid_device_program_page
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:226,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:227,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:229,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:232,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:232,1
    - Dst: fu_xor8
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:236,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:236,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:236,1
    - Dst: fu_blestech_tp_hid_device_program_page_end
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:237,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 207
    functionDepth: 7
    functionLinenumber: 207
    functionLinenumberEnd: 241
    functionName: fu_blestech_tp_hid_device_program_page_cb
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_idx
    - fu_chunk_array_new
    - fu_xor8
    - fu_device_sleep
    - fu_chunk_get_data_sz
    - g_prefix_error
    - fu_blestech_tp_hid_device_program_page
    - FU_DEVICE
    - fu_blestech_tp_hid_device_program_page_end
    - fu_chunk_get_data
    - g_autoptr
    - FU_BLESTECH_TP_HID_DEVICE
    - g_ptr_array_index
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_blestech_tp_hid_device_program_page_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:249,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:251,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:254,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - chunks
    - chk_idx
    - error
    argTypes:
    - FuBlestechTpHidDevice*
    - FuChunkArray*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 260
    functionName: fu_blestech_tp_hid_device_program_chunk
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_chunk_array_index
    - g_autoptr
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_blestech_tp_hid_device_program_chunk(FuBlestechTpHidDevice
      *self,\n\t\t\t\t\tFuChunkArray *chunks,\n\t\t\t\t\tguint chk_idx,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:269,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:270,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:272,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:275,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:276,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:284,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:285,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:293,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:294,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:294,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:295,1
    - Dst: fu_blestech_tp_hid_device_program_chunk
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:299,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:300,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:303,1
    - Dst: fu_blestech_tp_hid_device_program_chunk
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:306,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:310,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:315,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuBlestechTpHidDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 262
    functionDepth: 4
    functionLinenumber: 262
    functionLinenumberEnd: 319
    functionName: fu_blestech_tp_hid_device_program
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_stream
    - g_set_error_literal
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_firmware_get_addr
    - fu_chunk_array_new_from_stream
    - fu_chunk_array_length
    - g_autoptr
    - fu_blestech_tp_hid_device_program_chunk
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_blestech_tp_hid_device_program(FuBlestechTpHidDevice *self,\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: g_autoptr
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:328,1
    - Dst: fu_blestech_tp_program_checksum_req_new
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:329,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:330,1
    - Dst: fu_blestech_tp_program_checksum_req_set_val
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:333,1
    - Dst: fu_blestech_tp_hid_device_write
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:334,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:336,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:336,1
    - Dst: fu_blestech_tp_hid_device_read
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:337,1
    - Dst: fu_blestech_tp_program_checksum_res_parse
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:341,1
    - Dst: fu_blestech_tp_program_checksum_res_get_val
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:344,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - self
    - checksum
    - error
    argTypes:
    - FuBlestechTpHidDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 321
    functionDepth: 6
    functionLinenumber: 321
    functionLinenumberEnd: 357
    functionName: fu_blestech_tp_hid_device_program_checksum
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_blestech_tp_program_checksum_res_parse
    - fu_blestech_tp_program_checksum_req_new
    - g_set_error
    - fu_device_sleep
    - fu_blestech_tp_hid_device_read
    - fu_blestech_tp_program_checksum_req_set_val
    - FU_DEVICE
    - fu_blestech_tp_program_checksum_res_get_val
    - g_autoptr
    - fu_blestech_tp_hid_device_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_blestech_tp_hid_device_program_checksum(FuBlestechTpHidDevice
      *self,\n\t\t\t\t\t   guint16 checksum,\n\t\t\t\t\t   GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:362,1
    - Dst: fu_blestech_tp_program_end_req_new
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:362,1
    - Dst: fu_blestech_tp_hid_device_write
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:364,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:368,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuBlestechTpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 359
    functionDepth: 6
    functionLinenumber: 359
    functionLinenumberEnd: 370
    functionName: fu_blestech_tp_hid_device_program_end
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_blestech_tp_program_end_req_new
    - FU_DEVICE
    - g_autoptr
    - fu_blestech_tp_hid_device_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_blestech_tp_hid_device_program_end(FuBlestechTpHidDevice
      *self, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLESTECH_TP_HID_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:379,1
    - Dst: fu_blestech_tp_firmware_get_checksum
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:380,1
    - Dst: FU_BLESTECH_TP_FIRMWARE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:380,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:383,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:384,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:385,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:386,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:387,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:388,1
    - Dst: fu_blestech_tp_hid_device_switch_boot
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:391,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:392,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:395,1
    - Dst: fu_blestech_tp_hid_device_update_start
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:398,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:399,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:402,1
    - Dst: fu_blestech_tp_hid_device_program
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:405,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:407,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:409,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:412,1
    - Dst: fu_blestech_tp_hid_device_program_checksum
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:415,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:416,1
    - Dst: fu_blestech_tp_hid_device_program_end
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:419,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:420,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:423,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 372
    functionDepth: 8
    functionLinenumber: 372
    functionLinenumberEnd: 427
    functionName: fu_blestech_tp_hid_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - FU_BLESTECH_TP_FIRMWARE
    - fu_blestech_tp_firmware_get_checksum
    - fu_progress_add_flag
    - fu_progress_get_child
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_blestech_tp_hid_device_program
    - fu_blestech_tp_hid_device_program_end
    - fu_blestech_tp_hid_device_switch_boot
    - fu_blestech_tp_hid_device_program_checksum
    - fu_blestech_tp_hid_device_update_start
    - FU_BLESTECH_TP_HID_DEVICE
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_blestech_tp_hid_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/blestech-tp/fu-blestech-tp-hid-device.c:432,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:433,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:434,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:435,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:436,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:437,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 439
    functionName: fu_blestech_tp_hid_device_set_progress
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_blestech_tp_hid_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:444,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 445
    functionName: fu_blestech_tp_hid_device_convert_version
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_blestech_tp_hid_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BLESTECH_TP_HID_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:450,1
    - Dst: fu_blestech_tp_hid_device_get_version
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:453,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 447
    functionDepth: 7
    functionLinenumber: 447
    functionLinenumberEnd: 459
    functionName: fu_blestech_tp_hid_device_setup
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_BLESTECH_TP_HID_DEVICE
    - fu_device_set_version_raw
    - fu_blestech_tp_hid_device_get_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_blestech_tp_hid_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:464,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:464,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:465,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:465,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:466,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:466,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:467,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:467,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:468,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:468,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:469,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:469,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:470,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:470,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:471,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:471,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:472,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:472,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:473,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:473,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:474,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:474,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:475,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:475,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:476,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuBlestechTpHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 461
    functionDepth: 6
    functionLinenumber: 461
    functionLinenumberEnd: 477
    functionName: fu_blestech_tp_hid_device_init
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_firmware_size
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_set_vendor
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    linkageType: ''
    returnType: void
    signature: void fu_blestech_tp_hid_device_init(FuBlestechTpHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuBlestechTpHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 488
    functionName: fu_blestech_tp_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_blestech_tp_hid_device_class_init(FuBlestechTpHidDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFrameworkQmkPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fu_framework_qmk_plugin_init
    functionSourceFile: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_framework_qmk_plugin_init(FuFrameworkQmkPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-plugin.c:26,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-plugin.c:27,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-plugin.c:28,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-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: 2
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: fu_framework_qmk_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - fu_plugin_add_udev_subsystem
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_framework_qmk_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-plugin.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFrameworkQmkPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: fu_framework_qmk_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_framework_qmk_plugin_class_init(FuFrameworkQmkPluginClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FRAMEWORK_QMK_DEVICE
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:25,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:26,1
    - Dst: fu_struct_framework_qmk_reset_request_new
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:27,1
    - Dst: fu_hidraw_device_set_report
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:29,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:29,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:34,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 22
    functionDepth: 6
    functionLinenumber: 22
    functionLinenumberEnd: 41
    functionName: fu_framework_qmk_device_detach
    functionSourceFile: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_report
    - fu_device_add_flag
    - g_prefix_error_literal
    - FU_HIDRAW_DEVICE
    - FU_FRAMEWORK_QMK_DEVICE
    - fu_struct_framework_qmk_reset_request_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_framework_qmk_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:46,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:47,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:48,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:49,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:50,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: fu_framework_qmk_device_set_progress
    functionSourceFile: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_framework_qmk_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:57,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:57,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:58,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:58,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:59,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:59,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:60,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:60,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:61,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:61,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:62,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:62,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:63,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:63,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:64,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:64,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:65,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:65,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:66,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:66,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:68,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:68,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:69,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:69,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:70,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFrameworkQmkDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 54
    functionDepth: 6
    functionLinenumber: 54
    functionLinenumberEnd: 71
    functionName: fu_framework_qmk_device_init
    functionSourceFile: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_retry_set_delay
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - fu_device_add_private_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_udev_device_add_open_flag
    linkageType: ''
    returnType: void
    signature: void fu_framework_qmk_device_init(FuFrameworkQmkDevice *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:76,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:77,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:78,1
    - Dst: fu_hidraw_device_parse_descriptor
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:81,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:81,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:83,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:86,1
    - Dst: fu_device_get_backend_parent_with_subsystem
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:100,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:102,1
    - Dst: fu_device_probe
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:105,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:106,1
    - Dst: fu_usb_device_get_release
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:109,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:109,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 73
    functionDepth: 6
    functionLinenumber: 73
    functionLinenumberEnd: 114
    functionName: fu_framework_qmk_device_setup
    functionSourceFile: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c
    functionUses: 0
    functionsReached:
    - fu_device_probe
    - fu_device_set_version_raw
    - fu_device_get_backend_parent_with_subsystem
    - g_prefix_error_literal
    - fu_usb_device_get_release
    - FU_HIDRAW_DEVICE
    - FU_USB_DEVICE
    - fu_hidraw_device_parse_descriptor
    - g_autoptr
    - fu_hid_descriptor_find_report
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_framework_qmk_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:119,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: fu_framework_qmk_device_convert_version
    functionSourceFile: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_framework_qmk_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFrameworkQmkDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: fu_framework_qmk_device_class_init
    functionSourceFile: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_framework_qmk_device_class_init(FuFrameworkQmkDeviceClass *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: 3
    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
    - fu_heci_device_read_file
    - FU_HECI_DEVICE
    - FU_DEVICE
    - fu_byte_array_to_string
    - fu_device_add_checksum
    - g_str_has_prefix
    - g_autoptr
    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_literal
      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: 5
    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_mei_device_connect
    - g_set_error_literal
    - FU_MEI_DEVICE
    - g_prefix_error_literal
    - fu_device_get_checksums
    - fu_intel_mkhi_device_add_checksum_for_filename
    - FU_INTEL_MKHI_DEVICE
    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_set_logical_id
    - fu_device_add_flag
    - fu_device_register_private_flag
    - g_signal_connect
    - fu_device_add_private_flag
    - fu_device_add_icon
    - fu_device_set_name
    - FU_DEVICE
    - FWUPD_DEVICE
    - G_CALLBACK
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-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: 2
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: fu_intel_mkhi_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/intel-mkhi/fu-intel-mkhi-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIntelMkhiPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    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
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c:34,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: fu_pci_psp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_rule
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_pci_psp_plugin_constructed(GObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c:43,1
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c:43,1
    - Dst: fu_plugin_cache_add
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - plugin
    - dev
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: fu_pci_psp_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_plugin_cache_add
    - fu_device_get_plugin
    linkageType: ''
    returnType: void
    signature: void fu_pci_psp_plugin_device_registered(FuPlugin *plugin, FuDevice
      *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_cache_lookup
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c:50,1
    - Dst: fu_pci_psp_device_set_cpu
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c:53,1
    - Dst: FU_PCI_PSP_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c:53,1
    - Dst: FU_PROCESSOR_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: fu_pci_psp_plugin_device_added
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_cache_lookup
    - fu_pci_psp_device_set_cpu
    - FU_PROCESSOR_DEVICE
    - FU_PCI_PSP_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_pci_psp_plugin_device_added(FuPlugin *plugin, FuDevice *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-plugin.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPciPspPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:31,1
    - Dst: FU_IS_PCI_PSP_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:31,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:32,1
    - Dst: FU_IS_PROCESSOR_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:32,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - cpu_device
    argTypes:
    - FuPciPspDevice*
    - FuProcessorDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: fu_pci_psp_device_set_cpu
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 1
    functionsReached:
    - FU_IS_PCI_PSP_DEVICE
    - FU_IS_PROCESSOR_DEVICE
    - g_return_if_fail
    - g_set_object
    linkageType: ''
    returnType: void
    signature: void fu_pci_psp_device_set_cpu(FuPciPspDevice *self, FuProcessorDevice
      *cpu_device)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_auto
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:40,1
    - Dst: fu_device_get_smbios_string
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:44,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:44,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:50,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:53,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:54,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:55,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:62,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:64,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPciPspDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 36
    functionDepth: 5
    functionLinenumber: 36
    functionLinenumberEnd: 66
    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_prefix_error_literal
    - FU_DEVICE
    - g_strsplit
    - g_strv_length
    - fu_device_get_smbios_string
    - g_strdup_printf
    - fu_device_set_summary
    - g_auto
    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:71,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:75,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:76,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_bootloader
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:86,1
    - Dst: fu_udev_device_read_sysfs
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:88,1
    - Dst: FU_UDEV_DEVICE
      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:93,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:95,1
    - Dst: fu_pci_psp_device_ensure_agesa_version
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:97,1
    - Dst: g_info
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 68
    functionDepth: 6
    functionLinenumber: 68
    functionLinenumberEnd: 101
    functionName: fu_pci_psp_device_probe
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_info
    - fu_device_set_version_bootloader
    - fu_pci_psp_device_ensure_agesa_version
    - fu_udev_device_read_sysfs
    - FU_PCI_PSP_DEVICE
    - FU_UDEV_DEVICE
    - g_autoptr
    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:111,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:115,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:116,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:117,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:120,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: 124
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 124
    functionName: fu_pci_psp_device_get_attr
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - fu_strtoull
    - g_file_get_contents
    - g_prefix_error
    - g_build_filename
    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: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:129,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:136,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - attrs
    argTypes:
    - FuPciPspDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 141
    functionName: fu_pci_psp_device_set_valid_data
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - fu_security_attrs_get_by_appstream_id
    - g_autoptr
    - fwupd_security_attr_add_flag
    linkageType: ''
    returnType: void
    signature: void fu_pci_psp_device_set_valid_data(FuPciPspDevice *self, FuSecurityAttrs
      *attrs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:148,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:150,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:152,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:152,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:153,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:154,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:155,1
    - Dst: fwupd_security_attr_remove_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:156,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - attrs
    - appstream_id
    argTypes:
    - FuPciPspDevice*
    - FuSecurityAttrs*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 143
    functionDepth: 4
    functionLinenumber: 143
    functionLinenumberEnd: 159
    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_has_flag
    - g_debug
    - g_steal_pointer
    - FU_DEVICE
    - fu_device_security_attr_new
    - fwupd_security_attr_remove_flag
    - fu_security_attrs_append
    - fu_security_attrs_get_by_appstream_id
    - g_autoptr
    linkageType: ''
    returnType: FwupdSecurityAttr
    signature: "FwupdSecurityAttr *\nfu_pci_psp_device_get_security_attr(FuPciPspDevice
      *self,\n\t\t\t\t    FuSecurityAttrs *attrs,\n\t\t\t\t    const gchar *appstream_id)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:166,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:169,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:169,1
    - Dst: fu_processor_device_get_entrysign_psp_ver
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:175,1
    - Dst: fu_device_security_attr_new
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:180,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:180,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:181,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:182,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:185,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:185,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:185,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:189,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:193,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:194,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:194,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:196,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:201,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - self
    - attrs
    argTypes:
    - FuPciPspDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 161
    functionDepth: 4
    functionLinenumber: 161
    functionLinenumberEnd: 202
    functionName: fu_pci_psp_device_add_security_attrs_entry_sign
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_add_flag
    - g_debug
    - fwupd_security_attr_set_result
    - fu_version_compare
    - FU_DEVICE
    - fu_device_get_version
    - fu_processor_device_get_entrysign_psp_ver
    - fu_device_security_attr_new
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_pci_psp_device_add_security_attrs_entry_sign(FuPciPspDevice
      *self, FuSecurityAttrs *attrs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:209,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:210,1
    - Dst: fu_pci_psp_device_get_security_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:214,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:215,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:216,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:219,1
    - Dst: fu_pci_psp_device_get_attr
      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:222,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:223,1
    - Dst: fu_pci_psp_device_set_valid_data
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:227,1
    - Dst: fu_security_attr_add_bios_target_value
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:230,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:233,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:234,1
    - Dst: fwupd_security_attr_add_obsolete
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:238,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - self
    - path
    - attrs
    argTypes:
    - FuPciPspDevice*
    - gchar*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 204
    functionDepth: 5
    functionLinenumber: 204
    functionLinenumberEnd: 240
    functionName: fu_pci_psp_device_add_security_attrs_tsme
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_has_flag
    - g_debug
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_security_attr_add_bios_target_value
    - fu_pci_psp_device_get_security_attr
    - fwupd_security_attr_set_result_success
    - fu_pci_psp_device_set_valid_data
    - fwupd_security_attr_add_obsolete
    - g_autoptr
    - fu_pci_psp_device_get_attr
    linkageType: ''
    returnType: void
    signature: "void fu_pci_psp_device_add_security_attrs_tsme(FuPciPspDevice *self,\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:247,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:248,1
    - Dst: fu_pci_psp_device_get_security_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:252,1
    - Dst: fwupd_security_attr_has_flag
      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:254,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:257,1
    - Dst: fu_pci_psp_device_get_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:259,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:260,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:261,1
    - Dst: fu_pci_psp_device_set_valid_data
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:265,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:268,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:269,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:270,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - self
    - path
    - attrs
    argTypes:
    - FuPciPspDevice*
    - gchar*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 242
    functionDepth: 5
    functionLinenumber: 242
    functionLinenumberEnd: 276
    functionName: fu_pci_psp_device_add_security_attrs_fused_part
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_has_flag
    - g_debug
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_pci_psp_device_get_security_attr
    - fwupd_security_attr_set_result_success
    - fu_pci_psp_device_set_valid_data
    - g_autoptr
    - fu_pci_psp_device_get_attr
    linkageType: ''
    returnType: void
    signature: "void fu_pci_psp_device_add_security_attrs_fused_part(FuPciPspDevice
      *self,\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:283,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:284,1
    - Dst: fu_pci_psp_device_get_security_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:287,1
    - Dst: fwupd_security_attr_has_flag
      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:291,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:294,1
    - Dst: fu_pci_psp_device_get_attr
      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:297,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:298,1
    - Dst: fu_pci_psp_device_set_valid_data
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:302,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:305,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:306,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:307,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - self
    - path
    - attrs
    argTypes:
    - FuPciPspDevice*
    - gchar*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 278
    functionDepth: 5
    functionLinenumber: 278
    functionLinenumberEnd: 313
    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:
    - fwupd_security_attr_has_flag
    - g_debug
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_pci_psp_device_get_security_attr
    - fwupd_security_attr_set_result_success
    - fu_pci_psp_device_set_valid_data
    - g_autoptr
    - fu_pci_psp_device_get_attr
    linkageType: ''
    returnType: void
    signature: "void fu_pci_psp_device_add_security_attrs_debug_locked_part(FuPciPspDevice
      *self,\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:320,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:321,1
    - Dst: fu_pci_psp_device_get_security_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:324,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:327,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:328,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:331,1
    - Dst: fu_pci_psp_device_get_attr
      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:334,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:335,1
    - Dst: fu_pci_psp_device_set_valid_data
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:339,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:342,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:343,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:344,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:345,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - self
    - path
    - attrs
    argTypes:
    - FuPciPspDevice*
    - gchar*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 315
    functionDepth: 5
    functionLinenumber: 315
    functionLinenumberEnd: 350
    functionName: fu_pci_psp_device_add_security_attrs_rollback_protection
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_has_flag
    - g_debug
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_pci_psp_device_get_security_attr
    - fwupd_security_attr_set_result_success
    - fu_pci_psp_device_set_valid_data
    - g_autoptr
    - fu_pci_psp_device_get_attr
    linkageType: ''
    returnType: void
    signature: "void fu_pci_psp_device_add_security_attrs_rollback_protection(FuPciPspDevice
      *self,\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:357,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:358,1
    - Dst: fu_pci_psp_device_get_security_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:362,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:365,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:366,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:369,1
    - Dst: fu_pci_psp_device_get_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:371,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:372,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:373,1
    - Dst: fu_pci_psp_device_set_valid_data
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:377,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:380,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:381,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:382,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - self
    - path
    - attrs
    argTypes:
    - FuPciPspDevice*
    - gchar*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 352
    functionDepth: 5
    functionLinenumber: 352
    functionLinenumberEnd: 388
    functionName: fu_pci_psp_device_add_security_attrs_rom_armor
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_has_flag
    - g_debug
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_pci_psp_device_get_security_attr
    - fwupd_security_attr_set_result_success
    - fu_pci_psp_device_set_valid_data
    - g_autoptr
    - fu_pci_psp_device_get_attr
    linkageType: ''
    returnType: void
    signature: "void fu_pci_psp_device_add_security_attrs_rom_armor(FuPciPspDevice
      *self,\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:395,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:396,1
    - Dst: fu_pci_psp_device_get_security_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:400,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:403,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:404,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:407,1
    - Dst: fu_pci_psp_device_get_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:409,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:410,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:411,1
    - Dst: fu_pci_psp_device_set_valid_data
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:415,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:418,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:419,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - self
    - path
    - attrs
    argTypes:
    - FuPciPspDevice*
    - gchar*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 390
    functionDepth: 5
    functionLinenumber: 390
    functionLinenumberEnd: 425
    functionName: fu_pci_psp_device_add_security_attrs_platform_secure_boot
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_has_flag
    - g_debug
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_pci_psp_device_get_security_attr
    - fwupd_security_attr_set_result_success
    - fu_pci_psp_device_set_valid_data
    - g_autoptr
    - fu_pci_psp_device_get_attr
    linkageType: ''
    returnType: void
    signature: "void fu_pci_psp_device_add_security_attrs_platform_secure_boot(FuPciPspDevice
      *self,\n\t\t\t\t\t\t\t  const gchar *path,\n\t\t\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:432,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:433,1
    - Dst: fu_pci_psp_device_get_security_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:438,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:441,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:442,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:446,1
    - Dst: fu_pci_psp_device_get_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:448,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:449,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:450,1
    - Dst: fu_pci_psp_device_set_valid_data
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:454,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:457,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:458,1
    - Dst: fu_pci_psp_device_get_attr
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:462,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:467,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:472,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:473,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:478,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - self
    - path
    - attrs
    argTypes:
    - FuPciPspDevice*
    - gchar*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 427
    functionDepth: 5
    functionLinenumber: 427
    functionLinenumberEnd: 479
    functionName: fu_pci_psp_device_add_security_attrs_rpmc
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_has_flag
    - g_debug
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_pci_psp_device_get_security_attr
    - fwupd_security_attr_set_result_success
    - fu_pci_psp_device_set_valid_data
    - g_autoptr
    - fu_pci_psp_device_get_attr
    linkageType: ''
    returnType: void
    signature: "void fu_pci_psp_device_add_security_attrs_rpmc(FuPciPspDevice *self,\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:484,1
    - Dst: fu_udev_device_get_sysfs_path
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:488,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:488,1
    - Dst: fu_pci_psp_device_add_security_attrs_tsme
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:495,1
    - Dst: fu_pci_psp_device_add_security_attrs_fused_part
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:496,1
    - Dst: fu_pci_psp_device_add_security_attrs_debug_locked_part
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:497,1
    - Dst: fu_pci_psp_device_add_security_attrs_rollback_protection
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:498,1
    - Dst: fu_pci_psp_device_add_security_attrs_platform_secure_boot
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:499,1
    - Dst: fu_pci_psp_device_add_security_attrs_rpmc
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:500,1
    - Dst: fu_pci_psp_device_add_security_attrs_rom_armor
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:501,1
    - Dst: fu_pci_psp_device_add_security_attrs_entry_sign
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - device
    - attrs
    argTypes:
    - FuDevice*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 481
    functionDepth: 6
    functionLinenumber: 481
    functionLinenumberEnd: 503
    functionName: fu_pci_psp_device_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_get_sysfs_path
    - fu_pci_psp_device_add_security_attrs_entry_sign
    - fu_pci_psp_device_add_security_attrs_fused_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
    - FU_UDEV_DEVICE
    - fu_pci_psp_device_add_security_attrs_debug_locked_part
    - fu_pci_psp_device_add_security_attrs_tsme
    - fu_pci_psp_device_add_security_attrs_platform_secure_boot
    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:508,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:508,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:509,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:509,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:510,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:510,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:511,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:511,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:512,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:512,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:513,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:513,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:514,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPciPspDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 505
    functionDepth: 6
    functionLinenumber: 505
    functionLinenumberEnd: 515
    functionName: fu_pci_psp_device_init
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_physical_id
    - fu_device_add_icon
    - fu_device_add_private_flag
    - fu_device_set_name
    - FU_DEVICE
    - fu_device_set_vendor
    - fu_device_set_version_format
    linkageType: ''
    returnType: void
    signature: void fu_pci_psp_device_init(FuPciPspDevice *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PCI_PSP_DEVICE
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:520,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:522,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 524
    functionName: fu_pci_psp_device_finalize
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - G_OBJECT_CLASS
    - FU_PCI_PSP_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_pci_psp_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:529,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPciPspDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 534
    functionName: fu_pci_psp_device_class_init
    functionSourceFile: /src/fwupd/plugins/pci-psp/fu-pci-psp-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pci_psp_device_class_init(FuPciPspDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 1608
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:33,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:34,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:36,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:37,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:38,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-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: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: fu_pixart_tp_device_to_string
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append_bool
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:57,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:57,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - bank
    - addr
    - val
    - error
    argTypes:
    - FuPixartTpDevice*
    - FuPixartTpSystemBank
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 72
    functionName: fu_pixart_tp_device_register_write
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - g_prefix_error
    - FU_HIDRAW_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_device_register_write(FuPixartTpDevice *self,\n\t\t\t\t
      \  FuPixartTpSystemBank bank,\n\t\t\t\t   guint8 addr,\n\t\t\t\t   guint8 val,\n\t\t\t\t
      \  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:84,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - self
    - bank
    - addr
    - val
    - error
    argTypes:
    - FuPixartTpDevice*
    - FuPixartTpSystemBank
    - guint8
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 74
    functionDepth: 6
    functionLinenumber: 74
    functionLinenumberEnd: 96
    functionName: fu_pixart_tp_device_register_write_uint16
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - fu_pixart_tp_device_register_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_device_register_write_uint16(FuPixartTpDevice
      *self,\n\t\t\t\t\t  FuPixartTpSystemBank bank,\n\t\t\t\t\t  guint8 addr,\n\t\t\t\t\t
      \ guint16 val,\n\t\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:108,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - self
    - bank
    - addr
    - val
    - error
    argTypes:
    - FuPixartTpDevice*
    - FuPixartTpSystemBank
    - guint8
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 98
    functionDepth: 6
    functionLinenumber: 98
    functionLinenumberEnd: 120
    functionName: fu_pixart_tp_device_register_write_uint24
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_device_register_write
    - fu_memwrite_uint24
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_device_register_write_uint24(FuPixartTpDevice
      *self,\n\t\t\t\t\t  FuPixartTpSystemBank bank,\n\t\t\t\t\t  guint8 addr,\n\t\t\t\t\t
      \ guint32 val,\n\t\t\t\t\t  GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:132,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - self
    - bank
    - addr
    - val
    - error
    argTypes:
    - FuPixartTpDevice*
    - FuPixartTpSystemBank
    - guint8
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 122
    functionDepth: 6
    functionLinenumber: 122
    functionLinenumberEnd: 144
    functionName: fu_pixart_tp_device_register_write_uint32
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_device_register_write
    - fu_memwrite_uint32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_device_register_write_uint32(FuPixartTpDevice
      *self,\n\t\t\t\t\t  FuPixartTpSystemBank bank,\n\t\t\t\t\t  guint8 addr,\n\t\t\t\t\t
      \ guint32 val,\n\t\t\t\t\t  GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:156,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:156,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:161,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:168,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:168,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:170,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:170,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - self
    - bank
    - addr
    - out_val
    - error
    argTypes:
    - FuPixartTpDevice*
    - FuPixartTpSystemBank
    - guint8
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 146
    functionDepth: 5
    functionLinenumber: 146
    functionLinenumberEnd: 185
    functionName: fu_pixart_tp_device_register_read
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_device_sleep
    - fu_hidraw_device_get_feature
    - g_prefix_error
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_device_register_read(FuPixartTpDevice *self,\n\t\t\t\t
      \ FuPixartTpSystemBank bank,\n\t\t\t\t  guint8 addr,\n\t\t\t\t  guint8 *out_val,\n\t\t\t\t
      \ GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:194,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:194,1
    - Dst: fu_pixart_tp_device_register_read
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:198,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:203,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:206,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - self
    - bank
    - addr
    - len
    - error
    argTypes:
    - FuPixartTpDevice*
    - FuPixartTpSystemBank
    - guint8
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 187
    functionDepth: 6
    functionLinenumber: 187
    functionLinenumberEnd: 210
    functionName: fu_pixart_tp_device_register_read_array
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - g_byte_array_sized_new
    - fu_pixart_tp_device_register_read
    - g_steal_pointer
    - g_prefix_error
    - g_byte_array_append
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_pixart_tp_device_register_read_array(FuPixartTpDevice
      *self,\n\t\t\t\t\tFuPixartTpSystemBank bank,\n\t\t\t\t\tguint8 addr,\n\t\t\t\t\tgsize
      len,\n\t\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:221,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:221,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - bank
    - addr
    - val
    - error
    argTypes:
    - FuPixartTpDevice*
    - FuPixartTpUserBank
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 212
    functionDepth: 5
    functionLinenumber: 212
    functionLinenumberEnd: 236
    functionName: fu_pixart_tp_device_register_user_write
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - g_prefix_error
    - FU_HIDRAW_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_device_register_user_write(FuPixartTpDevice
      *self,\n\t\t\t\t\tFuPixartTpUserBank bank,\n\t\t\t\t\tguint8 addr,\n\t\t\t\t\tguint8
      val,\n\t\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:248,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:248,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:253,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:260,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:260,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:262,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:262,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - self
    - bank
    - addr
    - out_val
    - error
    argTypes:
    - FuPixartTpDevice*
    - FuPixartTpUserBank
    - guint8
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 238
    functionDepth: 5
    functionLinenumber: 238
    functionLinenumberEnd: 277
    functionName: fu_pixart_tp_device_register_user_read
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_device_sleep
    - fu_hidraw_device_get_feature
    - g_prefix_error
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_device_register_user_read(FuPixartTpDevice *self,\n\t\t\t\t
      \      FuPixartTpUserBank bank,\n\t\t\t\t       guint8 addr,\n\t\t\t\t       guint8
      *out_val,\n\t\t\t\t       GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:286,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:286,1
    - Dst: fu_pixart_tp_device_register_user_read
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:291,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:296,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:299,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - self
    - bank
    - addr
    - len
    - error
    argTypes:
    - FuPixartTpDevice*
    - FuPixartTpUserBank
    - guint8
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 279
    functionDepth: 6
    functionLinenumber: 279
    functionLinenumberEnd: 303
    functionName: fu_pixart_tp_device_register_user_read_array
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - g_byte_array_sized_new
    - g_steal_pointer
    - g_prefix_error
    - fu_pixart_tp_device_register_user_read
    - g_byte_array_append
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_pixart_tp_device_register_user_read_array(FuPixartTpDevice
      *self,\n\t\t\t\t\t     FuPixartTpUserBank bank,\n\t\t\t\t\t     guint8 addr,\n\t\t\t\t\t
      \    gsize len,\n\t\t\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:311,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:314,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:320,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:322,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:322,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:329,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:337,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:342,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:342,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuPixartTpDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 305
    functionDepth: 5
    functionLinenumber: 305
    functionLinenumberEnd: 354
    functionName: fu_pixart_tp_device_register_burst_write
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_chunk_array_new
    - g_bytes_get_data
    - g_prefix_error_literal
    - FU_HIDRAW_DEVICE
    - fu_memcpy_safe
    - fu_chunk_get_bytes
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_device_register_burst_write(FuPixartTpDevice
      *self,\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: 4
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:367,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:374,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:374,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:379,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:384,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:392,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:397,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - self
    - buf
    - bufsz
    - error
    argTypes:
    - FuPixartTpDevice*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 356
    functionDepth: 5
    functionLinenumber: 356
    functionLinenumberEnd: 403
    functionName: fu_pixart_tp_device_register_burst_read
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_get_feature
    - g_prefix_error_literal
    - FU_HIDRAW_DEVICE
    - fu_memcpy_safe
    - fu_size_checked_inc
    - MIN
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_device_register_burst_read(FuPixartTpDevice
      *self,\n\t\t\t\t\tguint8 *buf,\n\t\t\t\t\tgsize bufsz,\n\t\t\t\t\tGError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:408,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:414,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:414,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:416,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:424,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - mode
    - error
    argTypes:
    - FuPixartTpDevice*
    - FuPixartTpResetMode
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 405
    functionDepth: 6
    functionLinenumber: 405
    functionLinenumberEnd: 427
    functionName: fu_pixart_tp_device_reset
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_pixart_tp_device_register_write
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_device_reset(FuPixartTpDevice *self, FuPixartTpResetMode
      mode, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:432,1
    - Dst: fu_pixart_tp_device_register_read
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:435,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 429
    functionDepth: 6
    functionLinenumber: 429
    functionLinenumberEnd: 453
    functionName: fu_pixart_tp_device_flash_execute_wait_cb
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - fu_pixart_tp_device_register_read
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_device_flash_execute_wait_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:465,1
    - Dst: fu_pixart_tp_device_register_write_uint32
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:473,1
    - Dst: fu_pixart_tp_device_register_write_uint16
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:481,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:489,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:497,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:497,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:503,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - self
    - inst_cmd
    - ccr_cmd
    - data_cnt
    - error
    argTypes:
    - FuPixartTpDevice*
    - guint8
    - guint32
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 455
    functionDepth: 7
    functionLinenumber: 455
    functionLinenumberEnd: 509
    functionName: fu_pixart_tp_device_flash_execute
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_device_register_write_uint32
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - fu_pixart_tp_device_register_write_uint16
    - fu_pixart_tp_device_register_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_device_flash_execute(FuPixartTpDevice *self,\n\t\t\t\t
      \ guint8 inst_cmd,\n\t\t\t\t  guint32 ccr_cmd,\n\t\t\t\t  guint16 data_cnt,\n\t\t\t\t
      \ GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:514,1
    - Dst: fu_pixart_tp_device_flash_execute
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:518,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:526,1
    - Dst: fu_pixart_tp_device_register_read
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:529,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 511
    functionDepth: 8
    functionLinenumber: 511
    functionLinenumberEnd: 547
    functionName: fu_pixart_tp_device_flash_write_enable_wait_cb
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_pixart_tp_device_flash_execute
    - g_set_error_literal
    - fu_pixart_tp_device_register_read
    - FU_PIXART_TP_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_device_flash_write_enable_wait_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_device_flash_execute
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:555,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:563,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:563,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:569,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:570,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartTpDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 549
    functionDepth: 8
    functionLinenumber: 549
    functionLinenumberEnd: 576
    functionName: fu_pixart_tp_device_flash_write_enable
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_pixart_tp_device_flash_execute
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_device_flash_write_enable(FuPixartTpDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:581,1
    - Dst: fu_pixart_tp_device_flash_execute
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:585,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:593,1
    - Dst: fu_pixart_tp_device_register_read
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:596,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:605,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 578
    functionDepth: 8
    functionLinenumber: 578
    functionLinenumberEnd: 611
    functionName: fu_pixart_tp_device_flash_wait_busy_cb
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_pixart_tp_device_flash_execute
    - g_set_error_literal
    - fu_pixart_tp_device_register_read
    - FU_PIXART_TP_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_device_flash_wait_busy_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:618,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:618,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartTpDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 613
    functionDepth: 3
    functionLinenumber: 613
    functionLinenumberEnd: 630
    functionName: fu_pixart_tp_device_flash_wait_busy
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_prefix_error_literal
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_device_flash_wait_busy(FuPixartTpDevice *self,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:639,1
    - Dst: fu_pixart_tp_device_flash_wait_busy
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:648,1
    - Dst: fu_pixart_tp_device_flash_write_enable
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:650,1
    - Dst: fu_pixart_tp_device_register_write_uint32
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:654,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:661,1
    - Dst: fu_pixart_tp_device_flash_execute
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:664,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - self
    - sector
    - error
    argTypes:
    - FuPixartTpDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 632
    functionDepth: 9
    functionLinenumber: 632
    functionLinenumberEnd: 673
    functionName: fu_pixart_tp_device_flash_erase_sector
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_device_flash_write_enable
    - g_debug
    - g_set_error
    - fu_pixart_tp_device_flash_execute
    - fu_pixart_tp_device_flash_wait_busy
    - fu_pixart_tp_device_register_write_uint32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_device_flash_erase_sector(FuPixartTpDevice *self,
      guint sector, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_device_flash_wait_busy
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:685,1
    - Dst: fu_pixart_tp_device_flash_write_enable
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:687,1
    - Dst: fu_pixart_tp_device_register_write_uint16
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:691,1
    - Dst: fu_pixart_tp_device_register_write_uint32
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:699,1
    - Dst: fu_pixart_tp_device_flash_execute
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:707,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - self
    - sector
    - page
    - error
    argTypes:
    - FuPixartTpDevice*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 675
    functionDepth: 9
    functionLinenumber: 675
    functionLinenumberEnd: 717
    functionName: fu_pixart_tp_device_flash_program_256b_to_flash
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_device_flash_write_enable
    - fu_pixart_tp_device_flash_execute
    - fu_pixart_tp_device_flash_wait_busy
    - fu_pixart_tp_device_register_write_uint32
    - fu_pixart_tp_device_register_write_uint16
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_device_flash_program_256b_to_flash(FuPixartTpDevice
      *self,\n\t\t\t\t\t\tguint8 sector,\n\t\t\t\t\t\tguint8 page,\n\t\t\t\t\t\tGError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:724,1
    - Dst: fu_pixart_tp_device_register_write_uint16
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:736,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:743,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:751,1
    - Dst: fu_pixart_tp_device_register_burst_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:758,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:762,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:767,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - self
    - data
    - error
    argTypes:
    - FuPixartTpDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 721
    functionDepth: 7
    functionLinenumber: 721
    functionLinenumberEnd: 776
    functionName: fu_pixart_tp_device_write_sram_256b
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - fu_pixart_tp_device_register_burst_write
    - fu_pixart_tp_device_register_write_uint16
    - fu_pixart_tp_device_register_write
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_device_write_sram_256b(FuPixartTpDevice *self,
      const guint8 *data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_firmware_find_section_by_type
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:786,1
    - Dst: fu_pixart_tp_section_get_target_flash_start
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:791,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:792,1
    - Dst: fu_pixart_tp_device_flash_erase_sector
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:794,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - firmware
    - error
    argTypes:
    - FuPixartTpDevice*
    - FuPixartTpFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 778
    functionDepth: 10
    functionLinenumber: 778
    functionLinenumberEnd: 803
    functionName: fu_pixart_tp_device_firmware_clear
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_device_flash_erase_sector
    - g_debug
    - fu_pixart_tp_section_get_target_flash_start
    - g_prefix_error_literal
    - fu_pixart_tp_firmware_find_section_by_type
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_device_firmware_clear(FuPixartTpDevice *self,\n\t\t\t\t
      \  FuPixartTpFirmware *firmware,\n\t\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:808,1
    - Dst: fu_pixart_tp_device_register_user_read
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:811,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:820,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 805
    functionDepth: 6
    functionLinenumber: 805
    functionLinenumberEnd: 829
    functionName: fu_pixart_tp_device_crc_firmware_wait_cb
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - g_set_error_literal
    - fu_pixart_tp_device_register_user_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_device_crc_firmware_wait_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:834,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:837,1
    - Dst: fu_pixart_tp_device_register_read
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:844,1
    - Dst: fu_pixart_tp_device_register_user_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:855,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:863,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:863,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:869,1
    - Dst: fu_pixart_tp_device_register_user_read_array
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:874,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:883,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:886,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - self
    - crc
    - error
    argTypes:
    - FuPixartTpDevice*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 831
    functionDepth: 7
    functionLinenumber: 831
    functionLinenumberEnd: 889
    functionName: fu_pixart_tp_device_crc_firmware
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    - g_debug
    - fu_pixart_tp_device_register_user_write
    - fu_pixart_tp_device_register_read
    - fu_pixart_tp_device_register_user_read_array
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_device_crc_firmware(FuPixartTpDevice *self, guint32
      *crc, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:894,1
    - Dst: fu_pixart_tp_device_register_user_read
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:897,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:906,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 891
    functionDepth: 6
    functionLinenumber: 891
    functionLinenumberEnd: 915
    functionName: fu_pixart_tp_device_crc_parameter_wait_cb
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - g_set_error_literal
    - fu_pixart_tp_device_register_user_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_device_crc_parameter_wait_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:920,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:923,1
    - Dst: fu_pixart_tp_device_register_read
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:930,1
    - Dst: fu_pixart_tp_device_register_user_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:941,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:949,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:949,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:955,1
    - Dst: fu_pixart_tp_device_register_user_read_array
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:960,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:969,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:972,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - self
    - crc
    - error
    argTypes:
    - FuPixartTpDevice*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 917
    functionDepth: 7
    functionLinenumber: 917
    functionLinenumberEnd: 975
    functionName: fu_pixart_tp_device_crc_parameter
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    - g_debug
    - fu_pixart_tp_device_register_user_write
    - fu_pixart_tp_device_register_read
    - fu_pixart_tp_device_register_user_read_array
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_device_crc_parameter(FuPixartTpDevice *self,
      guint32 *crc, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:984,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:984,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:985,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:985,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:988,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:989,1
    - Dst: fu_pixart_tp_device_write_sram_256b
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:992,1
    - Dst: fu_pixart_tp_device_flash_program_256b_to_flash
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:994,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - self
    - sector
    - page
    - chk
    - error
    argTypes:
    - FuPixartTpDevice*
    - guint8
    - guint8
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 977
    functionDepth: 10
    functionLinenumber: 977
    functionLinenumberEnd: 999
    functionName: fu_pixart_tp_device_write_page
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - g_byte_array_new
    - fu_pixart_tp_device_write_sram_256b
    - fu_chunk_get_bytes
    - g_autoptr
    - fu_byte_array_set_size
    - fu_pixart_tp_device_flash_program_256b_to_flash
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_device_write_page(FuPixartTpDevice *self,\n\t\t\t
      \      guint8 sector,\n\t\t\t       guint8 page,\n\t\t\t       FuChunk *chk,\n\t\t\t
      \      GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1007,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1008,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1009,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1009,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1012,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1013,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1014,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1020,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1021,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1023,1
    - Dst: fu_pixart_tp_device_write_page
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1026,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1028,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1036,1
    - Dst: fu_pixart_tp_device_write_page
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1039,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1040,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - self
    - start_sector
    - chk_sector
    - error
    argTypes:
    - FuPixartTpDevice*
    - guint8
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1001
    functionDepth: 11
    functionLinenumber: 1001
    functionLinenumberEnd: 1048
    functionName: fu_pixart_tp_device_write_sector
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_idx
    - fu_chunk_array_new_from_bytes
    - fu_chunk_array_index
    - g_set_error_literal
    - fu_chunk_get_bytes
    - fu_chunk_array_length
    - fu_pixart_tp_device_write_page
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_device_write_sector(FuPixartTpDevice *self,\n\t\t\t\t
      guint8 start_sector,\n\t\t\t\t FuChunk *chk_sector,\n\t\t\t\t GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_section_get_target_flash_start
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1057,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1059,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1060,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1063,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1063,1
    - Dst: fu_pixart_tp_section_get_update_type
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1067,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1071,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1080,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1080,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1083,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1092,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1096,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1097,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1097,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1100,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1109,1
    - Dst: fu_pixart_tp_device_flash_erase_sector
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1110,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1111,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1114,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1119,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1120,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1121,1
    - Dst: fu_pixart_tp_device_write_sector
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1124,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1125,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1128,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 4
    argNames:
    - self
    - section
    - progress
    - error
    argTypes:
    - FuPixartTpDevice*
    - FuPixartTpSection*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1050
    functionDepth: 12
    functionLinenumber: 1050
    functionLinenumberEnd: 1133
    functionName: fu_pixart_tp_device_write_section
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_device_flash_erase_sector
    - fu_pixart_tp_section_get_update_type
    - g_set_error
    - fu_firmware_get_stream
    - fu_chunk_array_index
    - FU_FIRMWARE
    - fu_pixart_tp_section_get_target_flash_start
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_firmware_get_size
    - fu_chunk_array_new_from_stream
    - fu_pixart_tp_device_register_write
    - fu_pixart_tp_device_write_sector
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_device_write_section(FuPixartTpDevice *self,\n\t\t\t\t
      \ FuPixartTpSection *section,\n\t\t\t\t  FuProgress *progress,\n\t\t\t\t  GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1142,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1143,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1146,1
    - Dst: fu_pixart_tp_section_get_update_type
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1147,1
    - Dst: fu_pixart_tp_section_has_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1150,1
    - Dst: fu_pixart_tp_section_has_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1151,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1153,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1161,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1162,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1166,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1166,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1167,1
    - Dst: fu_pixart_tp_device_write_section
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1171,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1173,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1176,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - self
    - sections
    - progress
    - error
    argTypes:
    - FuPixartTpDevice*
    - GPtrArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1135
    functionDepth: 13
    functionLinenumber: 1135
    functionLinenumberEnd: 1181
    functionName: fu_pixart_tp_device_write_sections
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_section_get_update_type
    - g_debug
    - fu_pixart_tp_section_has_flag
    - FU_FIRMWARE
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_pixart_tp_device_write_section
    - fu_firmware_get_size
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_device_write_sections(FuPixartTpDevice *self,\n\t\t\t\t
      \  GPtrArray *sections,\n\t\t\t\t   FuProgress *progress,\n\t\t\t\t   GError
      **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1193,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1194,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1195,1
    - Dst: fu_pixart_tp_device_reset
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1198,1
    - Dst: fu_pixart_tp_device_crc_firmware
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1202,1
    - Dst: fu_pixart_tp_firmware_find_section_by_type
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1204,1
    - Dst: fu_pixart_tp_section_get_crc
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1209,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1210,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1211,1
    - Dst: fu_pixart_tp_device_firmware_clear
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1215,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1216,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1221,1
    - Dst: fu_pixart_tp_device_crc_parameter
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1224,1
    - Dst: fu_pixart_tp_firmware_find_section_by_type
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1226,1
    - Dst: fu_pixart_tp_section_get_crc
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1231,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1232,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1233,1
    - Dst: fu_pixart_tp_device_firmware_clear
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1237,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1238,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1243,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuPixartTpDevice*
    - FuPixartTpFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1183
    functionDepth: 11
    functionLinenumber: 1183
    functionLinenumberEnd: 1247
    functionName: fu_pixart_tp_device_verify_crc
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_device_crc_parameter
    - fu_pixart_tp_device_firmware_clear
    - fu_progress_add_step
    - g_set_error_literal
    - fu_progress_step_done
    - fu_pixart_tp_device_reset
    - g_warning
    - g_autoptr
    - fu_pixart_tp_firmware_find_section_by_type
    - fu_pixart_tp_device_crc_firmware
    - fu_pixart_tp_section_get_crc
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_device_verify_crc(FuPixartTpDevice *self,\n\t\t\t
      \      FuPixartTpFirmware *firmware,\n\t\t\t       FuProgress *progress,\n\t\t\t
      \      GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1252,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1253,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1256,1
    - Dst: fu_pixart_tp_device_register_read_array
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1259,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1268,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1277,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1278,1
    - Dst: fu_pixart_tp_device_register_user_read
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1286,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1295,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1296,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1298,1
    - Dst: g_clear_pointer
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1302,1
    - Dst: fu_pixart_tp_device_register_user_read_array
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1303,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1312,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1316,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1249
    functionDepth: 7
    functionLinenumber: 1249
    functionLinenumberEnd: 1318
    functionName: fu_pixart_tp_device_setup
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - fu_device_set_version_raw
    - fu_pixart_tp_device_register_user_read_array
    - fu_device_add_instance_u16
    - fu_pixart_tp_device_register_user_read
    - fu_device_remove_flag
    - FU_PIXART_TP_DEVICE
    - fu_device_build_instance_id_full
    - g_autoptr
    - fu_memread_uint16_safe
    - g_clear_pointer
    - fu_pixart_tp_device_register_read_array
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_device_setup(FuDevice *device, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1327,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1329,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1332,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1333,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1334,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1337,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1339,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1352,1
    - Dst: fu_pixart_tp_section_has_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1356,1
    - Dst: fu_pixart_tp_section_has_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1357,1
    - Dst: fu_pixart_tp_section_get_update_type
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1360,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1364,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1364,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1371,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1377,1
    - Dst: fu_pixart_tp_device_firmware_clear
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1380,1
    - Dst: FU_PIXART_TP_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1380,1
    - Dst: fu_pixart_tp_device_write_sections
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1384,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1386,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1389,1
    - Dst: fu_pixart_tp_device_verify_crc
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1392,1
    - Dst: FU_PIXART_TP_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1393,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1394,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1397,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1320
    functionDepth: 14
    functionLinenumber: 1320
    functionLinenumberEnd: 1401
    functionName: fu_pixart_tp_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_section_get_update_type
    - g_debug
    - fu_progress_add_step
    - fu_pixart_tp_section_has_flag
    - fu_pixart_tp_device_firmware_clear
    - g_set_error_literal
    - FU_FIRMWARE
    - fu_pixart_tp_device_write_sections
    - fu_progress_step_done
    - fu_firmware_get_images
    - FU_PIXART_TP_DEVICE
    - fu_firmware_get_size
    - FU_PIXART_TP_FIRMWARE
    - g_autoptr
    - fu_progress_get_child
    - fu_pixart_tp_device_verify_crc
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_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: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1409,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1410,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1413,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1414,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1419,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1420,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1425,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1426,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1431,1
    - Dst: fu_strtobool
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1432,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1435,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1403
    functionDepth: 1
    functionLinenumber: 1403
    functionLinenumberEnd: 1441
    functionName: fu_pixart_tp_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error
    - fu_strtoull
    - FU_PIXART_TP_DEVICE
    - fu_strtobool
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_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: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1446,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1449,1
    - Dst: fu_pixart_tp_device_reset
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1452,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1443
    functionDepth: 7
    functionLinenumber: 1443
    functionLinenumberEnd: 1458
    functionName: fu_pixart_tp_device_attach
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - fu_pixart_tp_device_reset
    - fu_device_has_flag
    - fu_device_remove_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_device_attach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1463,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1466,1
    - Dst: fu_pixart_tp_device_reset
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1469,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1460
    functionDepth: 7
    functionLinenumber: 1460
    functionLinenumberEnd: 1475
    functionName: fu_pixart_tp_device_detach
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - fu_pixart_tp_device_reset
    - fu_device_has_flag
    - fu_device_add_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1480,1
    - Dst: fu_pixart_tp_device_setup
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1483,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1477
    functionDepth: 8
    functionLinenumber: 1477
    functionLinenumberEnd: 1488
    functionName: fu_pixart_tp_device_reload
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_device_setup
    - g_autoptr
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_device_reload(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1496,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1499,1
    - Dst: fu_pixart_tp_device_reset
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1500,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1490
    functionDepth: 7
    functionLinenumber: 1490
    functionLinenumberEnd: 1507
    functionName: fu_pixart_tp_device_cleanup
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - fu_pixart_tp_device_reset
    - fu_device_has_flag
    - fu_device_remove_flag
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_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/pixart-tp/fu-pixart-tp-device.c:1512,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1513,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1514,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1515,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1516,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1509
    functionDepth: 3
    functionLinenumber: 1509
    functionLinenumberEnd: 1518
    functionName: fu_pixart_tp_device_set_progress
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1523,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1524,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1527,1
    - Dst: fu_pixart_tp_haptic_device_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1527,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1528,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1520
    functionDepth: 5
    functionLinenumber: 1520
    functionLinenumberEnd: 1533
    functionName: fu_pixart_tp_device_probe
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_pixart_tp_haptic_device_new
    - FU_PIXART_TP_DEVICE
    - FU_DEVICE
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_device_probe(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1535
    functionDepth: 0
    functionLinenumber: 1535
    functionLinenumberEnd: 1539
    functionName: fu_pixart_tp_device_convert_version
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_pixart_tp_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1544,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1546,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1546,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1547,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1547,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1548,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1548,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1549,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1549,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1550,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1550,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1551,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1551,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1552,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1552,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1553,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1553,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1554,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPixartTpDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1541
    functionDepth: 6
    functionLinenumber: 1541
    functionLinenumberEnd: 1559
    functionName: fu_pixart_tp_device_init
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_device_init(FuPixartTpDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c:1564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPixartTpDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1561
    functionDepth: 0
    functionLinenumber: 1561
    functionLinenumberEnd: 1576
    functionName: fu_pixart_tp_device_class_init
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_device_class_init(FuPixartTpDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.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_pixart_tp_section_new
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuPixartTpSection
    signature: 'FuPixartTpSection *

      fu_pixart_tp_section_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:33,1
    - Dst: FU_IS_PIXART_TP_SECTION
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPixartTpSection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: fu_pixart_tp_section_get_update_type
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c
    functionUses: 3
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PIXART_TP_SECTION
    linkageType: ''
    returnType: FuPixartTpUpdateType
    signature: FuPixartTpUpdateType fu_pixart_tp_section_get_update_type(FuPixartTpSection
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:40,1
    - Dst: FU_IS_PIXART_TP_SECTION
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - FuPixartTpSection*
    - FuPixartTpFirmwareFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: fu_pixart_tp_section_has_flag
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PIXART_TP_SECTION
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_section_has_flag(FuPixartTpSection *self, FuPixartTpFirmwareFlags
      flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:47,1
    - Dst: FU_IS_PIXART_TP_SECTION
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPixartTpSection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: fu_pixart_tp_section_get_target_flash_start
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PIXART_TP_SECTION
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_pixart_tp_section_get_target_flash_start(FuPixartTpSection
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:54,1
    - Dst: FU_IS_PIXART_TP_SECTION
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPixartTpSection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: fu_pixart_tp_section_get_crc
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_PIXART_TP_SECTION
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_pixart_tp_section_get_crc(FuPixartTpSection *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:61,1
    - Dst: FU_IS_PIXART_TP_SECTION
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:61,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPixartTpSection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: fu_pixart_tp_section_get_reserved
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - g_byte_array_ref
    - FU_IS_PIXART_TP_SECTION
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_pixart_tp_section_get_reserved(FuPixartTpSection *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:69,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:70,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPixartTpSection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: fu_pixart_tp_section_init
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    - g_byte_array_sized_new
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_section_init(FuPixartTpSection *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_SECTION
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:76,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:78,1
    - Dst: fu_pixart_tp_update_type_to_string
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:80,1
    - Dst: fu_pixart_tp_firmware_flags_to_string
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:82,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:83,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:85,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:86,1
    - Dst: fu_byte_array_to_string
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:88,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 91
    functionName: fu_pixart_tp_section_export
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_SECTION
    - fu_xmlb_builder_insert_kx
    - fu_pixart_tp_update_type_to_string
    - fu_byte_array_to_string
    - fu_xmlb_builder_insert_kv
    - fu_pixart_tp_firmware_flags_to_string
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_section_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_SECTION
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:96,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:101,1
    - Dst: fu_pixart_tp_update_type_from_string
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:103,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:104,1
    - Dst: fu_pixart_tp_firmware_flags_from_string
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:106,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:107,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:109,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:113,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:115,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:119,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:122,1
    - Dst: fu_byte_array_from_string
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:123,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 130
    functionName: fu_pixart_tp_section_build
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - FU_PIXART_TP_SECTION
    - fu_strtoull
    - g_byte_array_unref
    - fu_pixart_tp_update_type_from_string
    - fu_pixart_tp_firmware_flags_from_string
    - fu_byte_array_from_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_section_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_SECTION
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:139,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:144,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:146,1
    - Dst: FU_IS_PIXART_TP_SECTION
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:146,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:147,1
    - Dst: G_IS_INPUT_STREAM
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:147,1
    - Dst: fu_struct_pixart_tp_firmware_section_hdr_parse_stream
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:149,1
    - Dst: fu_struct_pixart_tp_firmware_section_hdr_get_update_type
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:154,1
    - Dst: fu_struct_pixart_tp_firmware_section_hdr_get_update_info
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:155,1
    - Dst: fu_struct_pixart_tp_firmware_section_hdr_get_target_flash_start
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:157,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:158,1
    - Dst: fu_struct_pixart_tp_firmware_section_hdr_get_internal_file_start
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:160,1
    - Dst: fu_struct_pixart_tp_firmware_section_hdr_get_section_length
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:161,1
    - Dst: fu_struct_pixart_tp_firmware_section_hdr_get_section_crc
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:162,1
    - Dst: fu_struct_pixart_tp_firmware_section_hdr_get_shared
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:165,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:166,1
    - Dst: fu_struct_pixart_tp_firmware_section_hdr_get_extname
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:169,1
    - Dst: fu_firmware_set_filename
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:171,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:171,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:175,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:176,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:177,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:182,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:182,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - firmware
    - stream
    - offset
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 188
    functionName: fu_pixart_tp_section_parse
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c
    functionUses: 0
    functionsReached:
    - fu_struct_pixart_tp_firmware_section_hdr_get_extname
    - fu_struct_pixart_tp_firmware_section_hdr_get_internal_file_start
    - fu_firmware_set_offset
    - fu_struct_pixart_tp_firmware_section_hdr_get_update_type
    - fu_firmware_set_stream
    - fu_firmware_get_offset
    - fu_struct_pixart_tp_firmware_section_hdr_get_shared
    - fu_struct_pixart_tp_firmware_section_hdr_parse_stream
    - FU_IS_PIXART_TP_SECTION
    - FU_FIRMWARE
    - fu_struct_pixart_tp_firmware_section_hdr_get_section_length
    - fu_struct_pixart_tp_firmware_section_hdr_get_update_info
    - g_byte_array_append
    - fu_partial_input_stream_new
    - g_return_val_if_fail
    - FU_PIXART_TP_SECTION
    - fu_firmware_set_filename
    - G_IS_INPUT_STREAM
    - fu_struct_pixart_tp_firmware_section_hdr_get_target_flash_start
    - g_autoptr
    - fu_struct_pixart_tp_firmware_section_hdr_get_section_crc
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_section_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: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_SECTION
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:193,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:194,1
    - Dst: fu_struct_pixart_tp_firmware_section_hdr_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:195,1
    - Dst: fu_struct_pixart_tp_firmware_section_hdr_set_update_type
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:197,1
    - Dst: fu_struct_pixart_tp_firmware_section_hdr_set_update_info
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:198,1
    - Dst: fu_struct_pixart_tp_firmware_section_hdr_set_target_flash_start
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:199,1
    - Dst: fu_struct_pixart_tp_firmware_section_hdr_set_internal_file_start
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:201,1
    - Dst: fu_firmware_get_offset
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:203,1
    - Dst: fu_struct_pixart_tp_firmware_section_hdr_set_section_length
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:204,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:205,1
    - Dst: fu_struct_pixart_tp_firmware_section_hdr_set_section_crc
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:206,1
    - Dst: fu_struct_pixart_tp_firmware_section_hdr_set_shared
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:208,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:214,1
    - Dst: fu_struct_pixart_tp_firmware_section_hdr_set_extname
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:215,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:217,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 224
    functionName: fu_pixart_tp_section_write
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c
    functionUses: 0
    functionsReached:
    - fu_struct_pixart_tp_firmware_section_hdr_set_section_length
    - fu_struct_pixart_tp_firmware_section_hdr_set_internal_file_start
    - FU_PIXART_TP_SECTION
    - fu_struct_pixart_tp_firmware_section_hdr_set_target_flash_start
    - fu_firmware_get_filename
    - fu_struct_pixart_tp_firmware_section_hdr_new
    - g_steal_pointer
    - fu_firmware_get_offset
    - fu_struct_pixart_tp_firmware_section_hdr_set_extname
    - fu_struct_pixart_tp_firmware_section_hdr_set_shared
    - fu_struct_pixart_tp_firmware_section_hdr_set_update_type
    - fu_firmware_get_size
    - fu_struct_pixart_tp_firmware_section_hdr_set_section_crc
    - g_autoptr
    - fu_struct_pixart_tp_firmware_section_hdr_set_update_info
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_pixart_tp_section_write(FuFirmware *firmware, GError **error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_SECTION
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:229,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:231,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 233
    functionName: fu_pixart_tp_section_finalize
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c
    functionUses: 0
    functionsReached:
    - g_byte_array_unref
    - FU_PIXART_TP_SECTION
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_section_finalize(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:238,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPixartTpSectionClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 246
    functionName: fu_pixart_tp_section_class_init
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_section_class_init(FuPixartTpSectionClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-self-test.c:16,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/pixart-tp/fu-self-test.c:18,1
    - Dst: fu_firmware_roundtrip_from_filename
      Src: /src/fwupd/plugins/pixart-tp/fu-self-test.c:19,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/pixart-tp/fu-self-test.c:23,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/pixart-tp/fu-self-test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 11
    functionDepth: 7
    functionLinenumber: 11
    functionLinenumberEnd: 25
    functionName: fu_pixart_tp_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - fu_firmware_roundtrip_from_filename
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_firmware_xml_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/pixart-tp/fu-self-test.c:30,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/pixart-tp/fu-self-test.c:31,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/pixart-tp/fu-self-test.c:32,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/pixart-tp/fu-self-test.c:33,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/pixart-tp/fu-self-test.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: main
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_type_ensure
    - 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:
    - FuPixartTpPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: fu_pixart_tp_plugin_init
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_plugin_init(FuPixartTpPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plugin.c:30,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plugin.c:31,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plugin.c:33,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plugin.c:34,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plugin.c:35,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plugin.c:36,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plugin.c:38,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plugin.c:39,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plugin.c:40,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plugin.c:41,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plugin.c:42,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plugin.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 46
    functionName: fu_pixart_tp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plugin.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPixartTpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: fu_pixart_tp_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_plugin_class_init(FuPixartTpPluginClass *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:28,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - command
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - FuPixartTpSfcCommandPlp239
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 6
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: fu_pixart_tp_plp239_device_set_flash_command
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - fu_pixart_tp_device_register_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_set_flash_command(FuPixartTpPlp239Device
      *self,\n\t\t\t\t\t     FuPixartTpSfcCommandPlp239 command,\n\t\t\t\t\t     GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_device_register_read
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:45,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - FuPixartTpFlashControllerStatusPlp239*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: fu_pixart_tp_plp239_device_get_flash_controller_status
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - fu_pixart_tp_device_register_read
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_get_flash_controller_status(\n
      \   FuPixartTpPlp239Device *self,\n    FuPixartTpFlashControllerStatusPlp239
      *status,\n    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_device_register_write_uint16
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:60,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 7
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: fu_pixart_tp_plp239_device_reset_sram_offset
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - fu_pixart_tp_device_register_write_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_plp239_device_reset_sram_offset(FuPixartTpPlp239Device
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_plp239_device_set_flash_command
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:75,1
    - Dst: fu_pixart_tp_plp239_device_get_flash_controller_status
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:80,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 70
    functionDepth: 7
    functionLinenumber: 70
    functionLinenumberEnd: 93
    functionName: fu_pixart_tp_plp239_device_flash_command_finish
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_pixart_tp_plp239_device_set_flash_command
    - fu_pixart_tp_plp239_device_get_flash_controller_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_plp239_device_flash_command_finish(FuPixartTpPlp239Device
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:99,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 6
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: fu_pixart_tp_plp239_device_lock_low_level_protection
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - fu_pixart_tp_device_register_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_plp239_device_lock_low_level_protection(FuPixartTpPlp239Device
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:110,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 106
    functionDepth: 6
    functionLinenumber: 106
    functionLinenumberEnd: 116
    functionName: fu_pixart_tp_plp239_device_unlock_low_level_protection
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - fu_pixart_tp_device_register_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_plp239_device_unlock_low_level_protection(FuPixartTpPlp239Device
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:125,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:126,1
    - Dst: fu_pixart_tp_plp239_device_get_flash_controller_status
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:133,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 118
    functionDepth: 7
    functionLinenumber: 118
    functionLinenumberEnd: 145
    functionName: fu_pixart_tp_plp239_device_unlock_level_zero_protection
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - g_set_error_literal
    - fu_pixart_tp_plp239_device_get_flash_controller_status
    - fu_pixart_tp_device_register_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_unlock_level_zero_protection(FuPixartTpPlp239Device
      *self,\n\t\t\t\t\t\t\tGError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:153,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:154,1
    - Dst: fu_pixart_tp_plp239_device_get_flash_controller_status
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:161,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 147
    functionDepth: 7
    functionLinenumber: 147
    functionLinenumberEnd: 174
    functionName: fu_pixart_tp_plp239_device_unlock_level_one_protection
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - g_set_error_literal
    - fu_pixart_tp_plp239_device_get_flash_controller_status
    - fu_pixart_tp_device_register_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_plp239_device_unlock_level_one_protection(FuPixartTpPlp239Device
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:183,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:183,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:191,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - self
    - sector
    - sector_length
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 176
    functionDepth: 6
    functionLinenumber: 176
    functionLinenumberEnd: 199
    functionName: fu_pixart_tp_plp239_device_set_flash_sector_address
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - fu_pixart_tp_device_register_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_set_flash_sector_address(FuPixartTpPlp239Device
      *self,\n\t\t\t\t\t\t    guint8 sector,\n\t\t\t\t\t\t    guint8 sector_length,\n\t\t\t\t\t\t
      \   GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:205,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 201
    functionDepth: 6
    functionLinenumber: 201
    functionLinenumberEnd: 210
    functionName: fu_pixart_tp_plp239_device_disable_cpu_access
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - fu_pixart_tp_device_register_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_plp239_device_disable_cpu_access(FuPixartTpPlp239Device
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:221,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - enable
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 212
    functionDepth: 6
    functionLinenumber: 212
    functionLinenumberEnd: 226
    functionName: fu_pixart_tp_plp239_device_enable_watchdog
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - fu_pixart_tp_device_register_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_enable_watchdog(FuPixartTpPlp239Device
      *self,\n\t\t\t\t\t   gboolean enable,\n\t\t\t\t\t   GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_PLP239_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:231,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:236,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:236,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:244,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:244,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:250,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:250,1
    - Dst: fu_pixart_tp_device_register_read
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:259,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:259,1
    - Dst: fu_pixart_tp_device_register_read
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:265,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:265,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:274,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 228
    functionDepth: 6
    functionLinenumber: 228
    functionLinenumberEnd: 279
    functionName: fu_pixart_tp_plp239_device_disable_cpu_cb
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_pixart_tp_device_register_read
    - FU_PIXART_TP_PLP239_DEVICE
    - FU_PIXART_TP_DEVICE
    - fu_pixart_tp_device_register_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_plp239_device_disable_cpu_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:286,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:286,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:292,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:293,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:301,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:301,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - enable
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 281
    functionDepth: 6
    functionLinenumber: 281
    functionLinenumberEnd: 312
    functionName: fu_pixart_tp_plp239_device_enable_cpu
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_PIXART_TP_DEVICE
    - FU_DEVICE
    - fu_pixart_tp_device_register_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_plp239_device_enable_cpu(FuPixartTpPlp239Device
      *self, gboolean enable, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_PLP239_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:317,1
    - Dst: fu_pixart_tp_device_register_read
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:323,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:323,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 314
    functionDepth: 6
    functionLinenumber: 314
    functionLinenumberEnd: 336
    functionName: fu_pixart_tp_plp239_device_check_nav_ready_cb
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - fu_pixart_tp_device_register_read
    - g_set_error_literal
    - FU_PIXART_TP_PLP239_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_plp239_device_check_nav_ready_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:342,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:345,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:345,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:351,1
    - Dst: fu_pixart_tp_device_register_read
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:357,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:357,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:367,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:371,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:378,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:385,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:389,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 338
    functionDepth: 6
    functionLinenumber: 338
    functionLinenumberEnd: 391
    functionName: fu_pixart_tp_plp239_device_check_device_boot_status
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_pixart_tp_device_register_read
    - g_set_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - FU_PIXART_TP_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_plp239_device_check_device_boot_status(FuPixartTpPlp239Device
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:397,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 393
    functionDepth: 6
    functionLinenumber: 393
    functionLinenumberEnd: 402
    functionName: fu_pixart_tp_plp239_device_clear_hid_firmware_ready
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - fu_pixart_tp_device_register_write
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_plp239_device_clear_hid_firmware_ready(FuPixartTpPlp239Device
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:410,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:410,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:418,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:419,1
    - Dst: fu_pixart_tp_device_register_write_uint16
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:427,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:428,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:436,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - self
    - quad_mode
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 404
    functionDepth: 7
    functionLinenumber: 404
    functionLinenumberEnd: 442
    functionName: fu_pixart_tp_plp239_device_flash_rstqio_step
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_DEVICE
    - fu_pixart_tp_device_register_write_uint16
    - fu_pixart_tp_device_register_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_flash_rstqio_step(FuPixartTpPlp239Device
      *self,\n\t\t\t\t\t     guint8 quad_mode,\n\t\t\t\t\t     GError **error)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:452,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:452,1
    - Dst: fu_pixart_tp_device_register_write_uint16
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:460,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:461,1
    - Dst: fu_pixart_tp_device_register_write_uint24
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:469,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:469,1
    - Dst: fu_pixart_tp_device_register_write_uint24
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:477,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:477,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:485,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:485,1
    - Dst: fu_pixart_tp_plp239_device_flash_rstqio_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:494,1
    - Dst: fu_pixart_tp_plp239_device_flash_rstqio_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:496,1
    - Dst: fu_pixart_tp_plp239_device_flash_rstqio_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:500,1
    - Dst: fu_pixart_tp_plp239_device_flash_rstqio_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:502,1
    - Dst: fu_pixart_tp_plp239_device_flash_rstqio_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:504,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:510,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:510,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:518,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:518,1
    - Dst: fu_pixart_tp_device_register_write_uint16
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:526,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:527,1
    - Dst: fu_pixart_tp_device_register_write_uint32
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:535,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:536,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:544,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:545,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:553,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:554,1
    - Dst: fu_pixart_tp_device_register_write_uint16
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:562,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:563,1
    - Dst: fu_pixart_tp_device_register_write_uint24
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:571,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:571,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:579,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:579,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 444
    functionDepth: 8
    functionLinenumber: 444
    functionLinenumberEnd: 584
    functionName: fu_pixart_tp_plp239_device_release_flash_quad_enhance_mode
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_plp239_device_flash_rstqio_step
    - fu_pixart_tp_device_register_write_uint32
    - FU_PIXART_TP_DEVICE
    - fu_pixart_tp_device_register_write_uint24
    - fu_pixart_tp_device_register_write_uint16
    - fu_pixart_tp_device_register_write
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_release_flash_quad_enhance_mode(FuPixartTpPlp239Device
      *self,\n\t\t\t\t\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_PLP239_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:591,1
    - Dst: fu_pixart_tp_plp239_device_get_flash_controller_status
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:594,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 586
    functionDepth: 7
    functionLinenumber: 586
    functionLinenumberEnd: 605
    functionName: fu_pixart_tp_plp239_device_wait_hardware_done_cb
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_pixart_tp_plp239_device_get_flash_controller_status
    - FU_PIXART_TP_PLP239_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_wait_hardware_done_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: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:612,1
    - Dst: fu_pixart_tp_device_register_read_array
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:616,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:616,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:625,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - crc
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 607
    functionDepth: 7
    functionLinenumber: 607
    functionLinenumberEnd: 631
    functionName: fu_pixart_tp_plp239_device_get_crc_firmware
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    - g_debug
    - FU_PIXART_TP_DEVICE
    - g_autoptr
    - fu_pixart_tp_device_register_read_array
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_get_crc_firmware(FuPixartTpPlp239Device
      *self,\n\t\t\t\t\t    guint32 *crc,\n\t\t\t\t\t    GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:638,1
    - Dst: fu_pixart_tp_device_register_read_array
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:642,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:642,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:651,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - crc
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 633
    functionDepth: 7
    functionLinenumber: 633
    functionLinenumberEnd: 657
    functionName: fu_pixart_tp_plp239_device_get_crc_parameter
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    - g_debug
    - FU_PIXART_TP_DEVICE
    - g_autoptr
    - fu_pixart_tp_device_register_read_array
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_get_crc_parameter(FuPixartTpPlp239Device
      *self,\n\t\t\t\t\t     guint32 *crc,\n\t\t\t\t\t     GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:665,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:670,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:671,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:678,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:678,1
    - Dst: fu_pixart_tp_device_register_read_array
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:682,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:682,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:691,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:694,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - crc
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 659
    functionDepth: 7
    functionLinenumber: 659
    functionLinenumberEnd: 697
    functionName: fu_pixart_tp_plp239_device_get_crc_hid_descriptor
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    - g_debug
    - fu_device_sleep
    - FU_PIXART_TP_DEVICE
    - FU_DEVICE
    - fu_pixart_tp_device_register_write
    - g_autoptr
    - fu_pixart_tp_device_register_read_array
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_get_crc_hid_descriptor(FuPixartTpPlp239Device
      *self,\n\t\t\t\t\t\t  guint32 *crc,\n\t\t\t\t\t\t  GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_plp239_device_reset_sram_offset
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:707,1
    - Dst: fu_pixart_tp_plp239_device_unlock_level_zero_protection
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:711,1
    - Dst: fu_pixart_tp_plp239_device_unlock_level_one_protection
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:715,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:719,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:719,1
    - Dst: fu_pixart_tp_plp239_device_set_flash_sector_address
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:727,1
    - Dst: fu_pixart_tp_plp239_device_set_flash_command
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:735,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:741,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:741,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:747,1
    - Dst: fu_pixart_tp_plp239_device_flash_command_finish
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:754,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - self
    - sector
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 699
    functionDepth: 8
    functionLinenumber: 699
    functionLinenumberEnd: 759
    functionName: fu_pixart_tp_plp239_device_flash_program_4096b_to_flash
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_plp239_device_reset_sram_offset
    - fu_pixart_tp_plp239_device_unlock_level_one_protection
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_PIXART_TP_DEVICE
    - FU_DEVICE
    - fu_pixart_tp_plp239_device_unlock_level_zero_protection
    - fu_pixart_tp_plp239_device_set_flash_command
    - fu_pixart_tp_plp239_device_flash_command_finish
    - fu_pixart_tp_device_register_write
    - fu_pixart_tp_plp239_device_set_flash_sector_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_flash_program_4096b_to_flash(FuPixartTpPlp239Device
      *self,\n\t\t\t\t\t\t\tguint8 sector,\n\t\t\t\t\t\t\tGError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_plp239_device_unlock_level_zero_protection
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:766,1
    - Dst: fu_pixart_tp_plp239_device_set_flash_sector_address
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:770,1
    - Dst: fu_pixart_tp_plp239_device_set_flash_command
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:778,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:784,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:784,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:790,1
    - Dst: fu_pixart_tp_plp239_device_flash_command_finish
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:797,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - self
    - sector
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 761
    functionDepth: 8
    functionLinenumber: 761
    functionLinenumberEnd: 802
    functionName: fu_pixart_tp_plp239_device_flash_dump_4096b_from_flash_to_sram
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - fu_pixart_tp_plp239_device_unlock_level_zero_protection
    - fu_pixart_tp_plp239_device_set_flash_command
    - fu_pixart_tp_plp239_device_flash_command_finish
    - fu_pixart_tp_plp239_device_set_flash_sector_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_flash_dump_4096b_from_flash_to_sram(FuPixartTpPlp239Device
      *self,\n\t\t\t\t\t\t\t       guint8 sector,\n\t\t\t\t\t\t\t       GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_plp239_device_unlock_level_zero_protection
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:812,1
    - Dst: fu_pixart_tp_plp239_device_set_flash_command
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:815,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:825,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:825,1
    - Dst: fu_pixart_tp_device_register_burst_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:833,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:833,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:837,1
    - Dst: fu_pixart_tp_plp239_device_get_flash_controller_status
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:841,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:845,1
    - Dst: fu_pixart_tp_plp239_device_flash_command_finish
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:850,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - data
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 804
    functionDepth: 8
    functionLinenumber: 804
    functionLinenumberEnd: 855
    functionName: fu_pixart_tp_plp239_device_write_sram_4096b
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_pixart_tp_device_register_burst_write
    - FU_PIXART_TP_DEVICE
    - fu_pixart_tp_plp239_device_unlock_level_zero_protection
    - fu_pixart_tp_plp239_device_set_flash_command
    - fu_pixart_tp_plp239_device_flash_command_finish
    - fu_pixart_tp_device_register_write
    - fu_pixart_tp_plp239_device_get_flash_controller_status
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_write_sram_4096b(FuPixartTpPlp239Device
      *self,\n\t\t\t\t\t    const guint8 *data,\n\t\t\t\t\t    GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_plp239_device_unlock_level_zero_protection
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:866,1
    - Dst: fu_pixart_tp_plp239_device_set_flash_command
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:869,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:879,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:879,1
    - Dst: fu_pixart_tp_device_register_burst_read
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:887,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:887,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:891,1
    - Dst: fu_pixart_tp_plp239_device_get_flash_controller_status
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:895,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:899,1
    - Dst: fu_pixart_tp_plp239_device_flash_command_finish
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:904,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - data
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 857
    functionDepth: 8
    functionLinenumber: 857
    functionLinenumberEnd: 909
    functionName: fu_pixart_tp_plp239_device_read_sram_4096b
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_prefix_error_literal
    - FU_PIXART_TP_DEVICE
    - fu_pixart_tp_device_register_burst_read
    - fu_pixart_tp_plp239_device_unlock_level_zero_protection
    - fu_pixart_tp_plp239_device_set_flash_command
    - fu_pixart_tp_plp239_device_flash_command_finish
    - fu_pixart_tp_device_register_write
    - fu_pixart_tp_plp239_device_get_flash_controller_status
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_read_sram_4096b(FuPixartTpPlp239Device
      *self,\n\t\t\t\t\t   guint8 *data,\n\t\t\t\t\t   GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:917,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:917,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:918,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:918,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:921,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:922,1
    - Dst: fu_pixart_tp_plp239_device_write_sram_4096b
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:925,1
    - Dst: fu_pixart_tp_plp239_device_flash_program_4096b_to_flash
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:929,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - self
    - sector
    - chk
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - guint8
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 911
    functionDepth: 9
    functionLinenumber: 911
    functionLinenumberEnd: 934
    functionName: fu_pixart_tp_plp239_device_write_sector
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - fu_pixart_tp_plp239_device_flash_program_4096b_to_flash
    - g_byte_array_new
    - fu_pixart_tp_plp239_device_write_sram_4096b
    - fu_chunk_get_bytes
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_write_sector(FuPixartTpPlp239Device
      *self,\n\t\t\t\t\tguint8 sector,\n\t\t\t\t\tFuChunk *chk,\n\t\t\t\t\tGError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_plp239_device_flash_dump_4096b_from_flash_to_sram
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:943,1
    - Dst: fu_pixart_tp_plp239_device_read_sram_4096b
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - self
    - sector
    - data
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - guint8
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 936
    functionDepth: 9
    functionLinenumber: 936
    functionLinenumberEnd: 952
    functionName: fu_pixart_tp_plp239_device_read_sector
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_plp239_device_flash_dump_4096b_from_flash_to_sram
    - fu_pixart_tp_plp239_device_read_sram_4096b
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_read_sector(FuPixartTpPlp239Device
      *self,\n\t\t\t\t       guint8 sector,\n\t\t\t\t       guint8 *data,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_plp239_device_lock_low_level_protection
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:960,1
    - Dst: fu_pixart_tp_plp239_device_disable_cpu_access
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:963,1
    - Dst: fu_pixart_tp_plp239_device_enable_watchdog
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:966,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:970,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:970,1
    - Dst: fu_pixart_tp_device_register_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:976,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:976,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:983,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:983,1
    - Dst: fu_pixart_tp_plp239_device_enable_cpu
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:984,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:987,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:987,1
    - Dst: fu_pixart_tp_plp239_device_check_device_boot_status
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:988,1
    - Dst: fu_pixart_tp_plp239_device_clear_hid_firmware_ready
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:992,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:995,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:995,1
    - Dst: fu_pixart_tp_plp239_device_enable_watchdog
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:997,1
    - Dst: fu_pixart_tp_plp239_device_enable_cpu
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:999,1
    - Dst: fu_pixart_tp_plp239_device_unlock_low_level_protection
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1001,1
    - Dst: fu_pixart_tp_plp239_device_disable_cpu_access
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1003,1
    - Dst: fu_pixart_tp_plp239_device_release_flash_quad_enhance_mode
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1005,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 3
    argNames:
    - self
    - mode
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - FuPixartTpResetMode
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 954
    functionDepth: 9
    functionLinenumber: 954
    functionLinenumberEnd: 1010
    functionName: fu_pixart_tp_plp239_device_reset
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_plp239_device_unlock_low_level_protection
    - fu_pixart_tp_plp239_device_enable_watchdog
    - fu_pixart_tp_plp239_device_disable_cpu_access
    - fu_device_sleep
    - fu_pixart_tp_plp239_device_enable_cpu
    - fu_pixart_tp_plp239_device_check_device_boot_status
    - fu_pixart_tp_plp239_device_release_flash_quad_enhance_mode
    - FU_PIXART_TP_DEVICE
    - FU_DEVICE
    - fu_pixart_tp_device_register_write
    - fu_pixart_tp_plp239_device_lock_low_level_protection
    - fu_pixart_tp_plp239_device_clear_hid_firmware_ready
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_reset(FuPixartTpPlp239Device *self,\n\t\t\t\t
      FuPixartTpResetMode mode,\n\t\t\t\t GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1019,1
    - Dst: fu_pixart_tp_plp239_device_unlock_level_zero_protection
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1027,1
    - Dst: fu_pixart_tp_plp239_device_unlock_level_one_protection
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1029,1
    - Dst: fu_pixart_tp_plp239_device_set_flash_sector_address
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1033,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1040,1
    - Dst: fu_pixart_tp_plp239_device_set_flash_command
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1043,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1049,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1049,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1055,1
    - Dst: fu_pixart_tp_plp239_device_flash_command_finish
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1061,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - erase_sector
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1012
    functionDepth: 8
    functionLinenumber: 1012
    functionLinenumberEnd: 1066
    functionName: fu_pixart_tp_plp239_device_flash_erase_sector
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - fu_pixart_tp_plp239_device_unlock_level_one_protection
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - fu_pixart_tp_plp239_device_unlock_level_zero_protection
    - fu_pixart_tp_plp239_device_set_flash_command
    - fu_pixart_tp_plp239_device_flash_command_finish
    - fu_pixart_tp_plp239_device_set_flash_sector_address
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_flash_erase_sector(FuPixartTpPlp239Device
      *self,\n\t\t\t\t\t      guint erase_sector,\n\t\t\t\t\t      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1078,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1078,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1080,1
    - Dst: fu_pixart_tp_plp239_device_read_sector
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1083,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1084,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1092,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1105,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - self
    - sector
    - chk
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - guint8
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1068
    functionDepth: 10
    functionLinenumber: 1068
    functionLinenumberEnd: 1114
    functionName: fu_pixart_tp_plp239_device_verify_extend_flash
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_bytes_get_data
    - g_prefix_error
    - fu_pixart_tp_plp239_device_read_sector
    - fu_chunk_get_bytes
    - g_autoptr
    - fu_memcmp_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_verify_extend_flash(FuPixartTpPlp239Device
      *self,\n\t\t\t\t\t       guint8 sector,\n\t\t\t\t\t       FuChunk *chk,\n\t\t\t\t\t
      \      GError **error)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_section_get_target_flash_start
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1127,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1132,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1135,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1135,1
    - Dst: fu_pixart_tp_section_get_update_type
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1138,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1143,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1152,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1152,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1155,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1163,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1168,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1169,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1173,1
    - Dst: fu_pixart_tp_plp239_device_flash_erase_sector
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1187,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1188,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1191,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1196,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1198,1
    - Dst: fu_pixart_tp_plp239_device_write_sector
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1203,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1207,1
    - Dst: fu_pixart_tp_plp239_device_verify_extend_flash
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1217,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1224,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1229,1
    - Dst: fu_pixart_tp_plp239_device_flash_erase_sector
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1232,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1233,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1236,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1239,1
    - Dst: fu_pixart_tp_plp239_device_write_sector
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1243,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1244,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1247,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 4
    argNames:
    - self
    - section
    - progress
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - FuPixartTpSection*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1116
    functionDepth: 11
    functionLinenumber: 1116
    functionLinenumberEnd: 1251
    functionName: fu_pixart_tp_plp239_device_write_section
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_plp239_device_verify_extend_flash
    - fu_pixart_tp_section_get_update_type
    - g_set_error
    - fu_firmware_get_stream
    - fu_chunk_array_index
    - FU_FIRMWARE
    - fu_pixart_tp_section_get_target_flash_start
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_pixart_tp_plp239_device_write_sector
    - g_prefix_error_literal
    - fu_pixart_tp_plp239_device_flash_erase_sector
    - fu_firmware_get_size
    - fu_chunk_array_new_from_stream
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_write_section(FuPixartTpPlp239Device
      *self,\n\t\t\t\t\t FuPixartTpSection *section,\n\t\t\t\t\t FuProgress *progress,\n\t\t\t\t\t
      GError **error)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1263,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1264,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1265,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1266,1
    - Dst: fu_pixart_tp_plp239_device_reset
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1270,1
    - Dst: fu_pixart_tp_plp239_device_get_crc_firmware
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1274,1
    - Dst: fu_pixart_tp_firmware_find_section_by_type
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1276,1
    - Dst: fu_pixart_tp_section_get_crc
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1281,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1282,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1288,1
    - Dst: fu_pixart_tp_plp239_device_get_crc_parameter
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1291,1
    - Dst: fu_pixart_tp_firmware_find_section_by_type
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1293,1
    - Dst: fu_pixart_tp_section_get_crc
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1298,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1299,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1305,1
    - Dst: fu_pixart_tp_plp239_device_get_crc_hid_descriptor
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1308,1
    - Dst: fu_pixart_tp_firmware_find_section_by_type
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1311,1
    - Dst: fu_pixart_tp_section_get_crc
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1316,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1317,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1323,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - FuPixartTpFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1253
    functionDepth: 10
    functionLinenumber: 1253
    functionLinenumberEnd: 1327
    functionName: fu_pixart_tp_plp239_device_verify_crc
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_plp239_device_get_crc_parameter
    - fu_progress_add_step
    - g_set_error_literal
    - fu_progress_step_done
    - fu_pixart_tp_plp239_device_get_crc_hid_descriptor
    - fu_pixart_tp_plp239_device_get_crc_firmware
    - fu_pixart_tp_plp239_device_reset
    - fu_pixart_tp_firmware_find_section_by_type
    - fu_pixart_tp_section_get_crc
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_verify_crc(FuPixartTpPlp239Device
      *self,\n\t\t\t\t      FuPixartTpFirmware *firmware,\n\t\t\t\t      FuProgress
      *progress,\n\t\t\t\t      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_PLP239_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1332,1
    - Dst: fu_pixart_tp_device_register_read
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1338,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1338,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1343,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1349,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1350,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1352,1
    - Dst: fu_pixart_tp_device_register_read
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1356,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1356,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1361,1
    - Dst: fu_pixart_tp_device_register_read
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1364,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1364,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1369,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1374,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1329
    functionDepth: 6
    functionLinenumber: 1329
    functionLinenumberEnd: 1376
    functionName: fu_pixart_tp_plp239_device_setup
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - fu_device_set_version_raw
    - fu_pixart_tp_device_register_read
    - g_prefix_error_literal
    - FU_PIXART_TP_PLP239_DEVICE
    - fu_device_remove_flag
    - FU_PIXART_TP_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_plp239_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1385,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1386,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1389,1
    - Dst: fu_pixart_tp_section_get_update_type
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1390,1
    - Dst: fu_pixart_tp_section_has_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1393,1
    - Dst: fu_pixart_tp_section_has_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1394,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1396,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1401,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1402,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1406,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1406,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1407,1
    - Dst: fu_pixart_tp_plp239_device_write_section
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1411,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1413,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1417,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - self
    - sections
    - progress
    - error
    argTypes:
    - FuPixartTpPlp239Device*
    - GPtrArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1378
    functionDepth: 12
    functionLinenumber: 1378
    functionLinenumberEnd: 1422
    functionName: fu_pixart_tp_plp239_device_write_sections
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_section_get_update_type
    - fu_pixart_tp_plp239_device_write_section
    - g_debug
    - fu_pixart_tp_section_has_flag
    - FU_FIRMWARE
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_firmware_get_size
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_device_write_sections(FuPixartTpPlp239Device
      *self,\n\t\t\t\t\t  GPtrArray *sections,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_PLP239_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1431,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1432,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1437,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1438,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1439,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1442,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1444,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1457,1
    - Dst: fu_pixart_tp_section_has_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1461,1
    - Dst: fu_pixart_tp_section_has_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1462,1
    - Dst: fu_pixart_tp_section_get_update_type
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1465,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1469,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1469,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1476,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1482,1
    - Dst: fu_pixart_tp_firmware_find_section_by_type
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1485,1
    - Dst: FU_PIXART_TP_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1485,1
    - Dst: fu_pixart_tp_section_get_target_flash_start
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1489,1
    - Dst: fu_pixart_tp_plp239_device_flash_erase_sector
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1490,1
    - Dst: fu_pixart_tp_plp239_device_write_sections
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1498,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1500,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1503,1
    - Dst: fu_pixart_tp_plp239_device_verify_crc
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1506,1
    - Dst: FU_PIXART_TP_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1507,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1508,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1511,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1424
    functionDepth: 13
    functionLinenumber: 1424
    functionLinenumberEnd: 1515
    functionName: fu_pixart_tp_plp239_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_plp239_device_verify_crc
    - fu_pixart_tp_section_get_update_type
    - fu_firmware_get_size
    - g_ptr_array_index
    - g_debug
    - fu_pixart_tp_section_has_flag
    - g_set_error_literal
    - fu_pixart_tp_section_get_target_flash_start
    - fu_firmware_get_images
    - fu_pixart_tp_plp239_device_write_sections
    - fu_progress_add_step
    - FU_FIRMWARE
    - fu_progress_step_done
    - fu_pixart_tp_plp239_device_flash_erase_sector
    - FU_PIXART_TP_FIRMWARE
    - fu_progress_get_child
    - fu_progress_set_id
    - FU_PIXART_TP_PLP239_DEVICE
    - fu_pixart_tp_firmware_find_section_by_type
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_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: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_PLP239_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1520,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1523,1
    - Dst: fu_pixart_tp_plp239_device_reset
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1526,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1517
    functionDepth: 10
    functionLinenumber: 1517
    functionLinenumberEnd: 1532
    functionName: fu_pixart_tp_plp239_device_attach
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_plp239_device_reset
    - fu_device_has_flag
    - FU_PIXART_TP_PLP239_DEVICE
    - fu_device_remove_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_plp239_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_PLP239_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1537,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1540,1
    - Dst: fu_pixart_tp_plp239_device_reset
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1543,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1534
    functionDepth: 10
    functionLinenumber: 1534
    functionLinenumberEnd: 1549
    functionName: fu_pixart_tp_plp239_device_detach
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_plp239_device_reset
    - fu_device_has_flag
    - fu_device_add_flag
    - FU_PIXART_TP_PLP239_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_plp239_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_PLP239_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1557,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1560,1
    - Dst: fu_pixart_tp_plp239_device_reset
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1561,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1551
    functionDepth: 10
    functionLinenumber: 1551
    functionLinenumberEnd: 1570
    functionName: fu_pixart_tp_plp239_device_cleanup
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_plp239_device_reset
    - fu_device_has_flag
    - FU_PIXART_TP_PLP239_DEVICE
    - fu_device_remove_flag
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_plp239_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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1575,1
    - Dst: fu_pixart_tp_plp239_device_setup
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1578,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1572
    functionDepth: 7
    functionLinenumber: 1572
    functionLinenumberEnd: 1583
    functionName: fu_pixart_tp_plp239_device_reload
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - g_debug
    - fu_pixart_tp_plp239_device_setup
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_plp239_device_reload(FuDevice *device, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c:1588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPixartTpPlp239DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1585
    functionDepth: 0
    functionLinenumber: 1585
    functionLinenumberEnd: 1595
    functionName: fu_pixart_tp_plp239_device_class_init
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_plp239_device_class_init(FuPixartTpPlp239DeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPixartTpPlp239Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1600
    functionName: fu_pixart_tp_plp239_device_init
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_plp239_device_init(FuPixartTpPlp239Device *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_pixart_tp_firmware_hdr_validate_stream
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: fu_pixart_tp_firmware_validate
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_pixart_tp_firmware_hdr_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_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_PIXART_TP_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:37,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:42,1
    - Dst: fu_struct_pixart_tp_firmware_hdr_parse_stream
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:45,1
    - Dst: fu_struct_pixart_tp_firmware_hdr_get_header_ver
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:49,1
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:50,1
    - Dst: fu_struct_pixart_tp_firmware_hdr_get_file_ver
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:51,1
    - Dst: fu_struct_pixart_tp_firmware_hdr_get_ic_part_id
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:52,1
    - Dst: fu_struct_pixart_tp_firmware_hdr_get_num_sections
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:53,1
    - Dst: fu_struct_pixart_tp_firmware_hdr_get_flash_sectors
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:54,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:60,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:62,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:70,1
    - Dst: fu_input_stream_compute_crc32
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:77,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:96,1
    - Dst: fu_pixart_tp_section_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:96,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:99,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:99,1
    - Dst: fu_pixart_tp_section_get_update_type
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:101,1
    - Dst: fu_pixart_tp_section_has_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:103,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:105,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:112,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:112,1
    - Dst: fu_pixart_tp_section_has_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:115,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:117,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:124,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:124,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:127,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:127,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:130,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:130,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:137,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:144,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 153
    functionName: fu_pixart_tp_firmware_parse
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_section_get_update_type
    - fu_pixart_tp_section_new
    - fu_struct_pixart_tp_firmware_hdr_parse_stream
    - g_autoptr
    - fu_input_stream_compute_crc32
    - fu_input_stream_read_u32
    - fu_pixart_tp_section_has_flag
    - fu_firmware_add_image
    - g_set_error_literal
    - fu_struct_pixart_tp_firmware_hdr_get_flash_sectors
    - fu_struct_pixart_tp_firmware_hdr_get_file_ver
    - fu_firmware_set_version_raw
    - fu_struct_pixart_tp_firmware_hdr_get_ic_part_id
    - FU_FIRMWARE
    - FU_PIXART_TP_FIRMWARE
    - fu_partial_input_stream_new
    - fu_firmware_set_id
    - g_set_error
    - fu_firmware_parse_stream
    - fu_struct_pixart_tp_firmware_hdr_get_header_ver
    - fu_struct_pixart_tp_firmware_hdr_get_num_sections
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_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/pixart-tp/fu-pixart-tp-firmware.c:158,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: fu_pixart_tp_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16
    - fu_firmware_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_pixart_tp_firmware_convert_version(FuFirmware *firmware, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:165,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:166,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:167,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 169
    functionName: fu_pixart_tp_firmware_export
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_PIXART_TP_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:174,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:177,1
    - Dst: fu_struct_pixart_tp_firmware_hdr_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:177,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:178,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:178,1
    - Dst: fu_struct_pixart_tp_firmware_hdr_set_header_ver
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:180,1
    - Dst: fu_struct_pixart_tp_firmware_hdr_set_file_ver
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:181,1
    - Dst: fu_firmware_get_version_raw
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:181,1
    - Dst: fu_struct_pixart_tp_firmware_hdr_set_ic_part_id
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:182,1
    - Dst: fu_struct_pixart_tp_firmware_hdr_set_flash_sectors
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:183,1
    - Dst: fu_struct_pixart_tp_firmware_hdr_set_num_sections
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:186,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:188,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:189,1
    - Dst: fu_firmware_set_offset
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:191,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:192,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:195,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:196,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:198,1
    - Dst: fu_crc32_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:201,1
    - Dst: fu_memwrite_uint32_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:209,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:220,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:222,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:225,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:229,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 171
    functionDepth: 5
    functionLinenumber: 171
    functionLinenumberEnd: 230
    functionName: fu_pixart_tp_firmware_write
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - fu_struct_pixart_tp_firmware_hdr_set_flash_sectors
    - fu_struct_pixart_tp_firmware_hdr_set_file_ver
    - fu_firmware_set_offset
    - fu_firmware_get_size
    - g_ptr_array_index
    - fu_byte_array_append_bytes
    - fu_firmware_get_bytes
    - fu_struct_pixart_tp_firmware_hdr_set_header_ver
    - fu_firmware_get_images
    - fu_struct_pixart_tp_firmware_hdr_new
    - fu_memwrite_uint32_safe
    - fu_struct_pixart_tp_firmware_hdr_set_num_sections
    - FU_PIXART_TP_FIRMWARE
    - fu_firmware_get_version_raw
    - g_steal_pointer
    - fu_struct_pixart_tp_firmware_hdr_set_ic_part_id
    - g_autoptr
    - fu_crc32_safe
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_pixart_tp_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:235,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:240,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:242,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:246,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:248,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:252,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:254,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - firmware
    - n
    - error
    argTypes:
    - FuFirmware*
    - XbNode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 261
    functionName: fu_pixart_tp_firmware_build
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - xb_node_query_text
    - FU_PIXART_TP_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_firmware_build(FuFirmware *firmware, XbNode *n,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:268,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:268,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:268,1
    - Dst: FU_PIXART_TP_SECTION
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:270,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:270,1
    - Dst: fu_pixart_tp_section_get_update_type
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:271,1
    - Dst: fu_pixart_tp_section_has_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:272,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - self
    - update_type
    - error
    argTypes:
    - FuPixartTpFirmware*
    - FuPixartTpUpdateType
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 281
    functionName: fu_pixart_tp_firmware_find_section_by_type
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c
    functionUses: 4
    functionsReached:
    - fu_pixart_tp_section_get_update_type
    - FU_PIXART_TP_SECTION
    - fu_pixart_tp_section_has_flag
    - g_set_error
    - FU_FIRMWARE
    - fu_firmware_get_images
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: FuPixartTpSection
    signature: "FuPixartTpSection *\nfu_pixart_tp_firmware_find_section_by_type(FuPixartTpFirmware
      *self,\n\t\t\t\t\t   FuPixartTpUpdateType update_type,\n\t\t\t\t\t   GError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:286,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:286,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:287,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:287,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:288,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:288,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:289,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:289,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:290,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPixartTpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 291
    functionName: fu_pixart_tp_firmware_init
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_format
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_firmware_init(FuPixartTpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPixartTpFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 303
    functionName: fu_pixart_tp_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_firmware_class_init(FuPixartTpFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c:308,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.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_pixart_tp_firmware_new
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_pixart_tp_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:32,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:33,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: fu_pixart_tp_haptic_device_to_string
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_PIXART_TP_HAPTIC_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_haptic_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:60,1
    - Dst: fu_struct_pixart_tp_tf_write_simple_cmd_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:61,1
    - Dst: fu_struct_pixart_tp_tf_write_simple_cmd_set_addr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:63,1
    - Dst: fu_struct_pixart_tp_tf_write_simple_cmd_set_len
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:64,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:65,1
    - Dst: fu_crc8_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:67,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:75,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:76,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:77,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:78,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:78,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:81,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - self
    - addr
    - cmd
    - error
    argTypes:
    - FuPixartTpHapticDevice*
    - guint16
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 51
    functionDepth: 5
    functionLinenumber: 51
    functionLinenumberEnd: 86
    functionName: fu_pixart_tp_haptic_device_tf_write_rmi_cmd
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_crc8_safe
    - fu_device_get_proxy
    - fu_struct_pixart_tp_tf_write_simple_cmd_set_len
    - fu_struct_pixart_tp_tf_write_simple_cmd_new
    - fu_byte_array_append_uint8
    - FU_DEVICE
    - fu_struct_pixart_tp_tf_write_simple_cmd_set_addr
    - FU_HIDRAW_DEVICE
    - g_byte_array_append
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_haptic_device_tf_write_rmi_cmd(FuPixartTpHapticDevice
      *self,\n\t\t\t\t\t    guint16 addr,\n\t\t\t\t\t    guint8 cmd,\n\t\t\t\t\t    GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:100,1
    - Dst: fu_struct_pixart_tp_tf_write_packet_cmd_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:101,1
    - Dst: fu_struct_pixart_tp_tf_write_packet_cmd_set_addr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:104,1
    - Dst: fu_struct_pixart_tp_tf_write_packet_cmd_set_datalen
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:105,1
    - Dst: fu_struct_pixart_tp_tf_write_packet_cmd_set_packet_total
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:108,1
    - Dst: fu_struct_pixart_tp_tf_write_packet_cmd_set_packet_index
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:109,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:112,1
    - Dst: fu_crc8_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:114,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:122,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:123,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:124,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:125,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:125,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:128,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 7
    argNames:
    - self
    - addr
    - packet_total
    - packet_index
    - in_buf
    - in_bufsz
    - error
    argTypes:
    - FuPixartTpHapticDevice*
    - guint16
    - gsize
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 88
    functionDepth: 5
    functionLinenumber: 88
    functionLinenumberEnd: 133
    functionName: fu_pixart_tp_haptic_device_tf_write_rmi_with_packet
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_struct_pixart_tp_tf_write_packet_cmd_set_addr
    - fu_struct_pixart_tp_tf_write_packet_cmd_set_datalen
    - fu_crc8_safe
    - fu_device_get_proxy
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_struct_pixart_tp_tf_write_packet_cmd_new
    - g_byte_array_append
    - fu_struct_pixart_tp_tf_write_packet_cmd_set_packet_index
    - g_autoptr
    - fu_byte_array_set_size
    - fu_struct_pixart_tp_tf_write_packet_cmd_set_packet_total
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_haptic_device_tf_write_rmi_with_packet(FuPixartTpHapticDevice
      *self,\n\t\t\t\t\t\t    guint16 addr,\n\t\t\t\t\t\t    gsize packet_total,\n\t\t\t\t\t\t
      \   gsize packet_index,\n\t\t\t\t\t\t    const guint8 *in_buf,\n\t\t\t\t\t\t
      \   gsize in_bufsz,\n\t\t\t\t\t\t    GError **error)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:150,1
    - Dst: fu_struct_pixart_tp_tf_read_cmd_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:150,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:151,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:152,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:152,1
    - Dst: fu_struct_pixart_tp_tf_read_cmd_set_addr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:155,1
    - Dst: fu_struct_pixart_tp_tf_read_cmd_set_datalen
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:156,1
    - Dst: fu_struct_pixart_tp_tf_read_cmd_set_reply_len
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:157,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:161,1
    - Dst: fu_crc8_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:164,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:172,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:173,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:174,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:176,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:176,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:179,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:179,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:186,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:186,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:189,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:198,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:198,1
    - Dst: fu_struct_pixart_tp_tf_reply_hdr_parse
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:206,1
    - Dst: fu_struct_pixart_tp_tf_reply_hdr_get_preamble
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:210,1
    - Dst: fu_struct_pixart_tp_tf_reply_hdr_get_target_addr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:212,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:214,1
    - Dst: fu_struct_pixart_tp_tf_reply_hdr_get_preamble
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:218,1
    - Dst: fu_struct_pixart_tp_tf_reply_hdr_get_target_addr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:219,1
    - Dst: fu_struct_pixart_tp_tf_reply_hdr_get_func
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:224,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:226,1
    - Dst: fu_struct_pixart_tp_tf_reply_hdr_get_func
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:230,1
    - Dst: fu_struct_pixart_tp_tf_reply_hdr_get_datalen
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:235,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:236,1
    - Dst: fu_crc8_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:238,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:247,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:255,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:258,1
    - Dst: fu_byte_array_append_safe
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:267,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:274,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 6
    argNames:
    - self
    - addr
    - in_buf
    - in_bufsz
    - reply_len
    - error
    argTypes:
    - FuPixartTpHapticDevice*
    - guint16
    - guint8*
    - gsize
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 275
    functionName: fu_pixart_tp_haptic_device_tf_read_rmi
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_feature
    - fu_struct_pixart_tp_tf_reply_hdr_get_func
    - g_autoptr
    - fu_struct_pixart_tp_tf_reply_hdr_get_datalen
    - fu_struct_pixart_tp_tf_read_cmd_set_reply_len
    - g_byte_array_new
    - fu_struct_pixart_tp_tf_reply_hdr_get_preamble
    - fu_device_get_proxy
    - fu_struct_pixart_tp_tf_reply_hdr_get_target_addr
    - fu_device_sleep
    - fu_byte_array_append_safe
    - fu_byte_array_append_uint8
    - FU_HIDRAW_DEVICE
    - FU_DEVICE
    - fu_memread_uint8_safe
    - fu_struct_pixart_tp_tf_read_cmd_set_datalen
    - g_byte_array_append
    - fu_struct_pixart_tp_tf_read_cmd_set_addr
    - g_set_error
    - fu_crc8_safe
    - fu_hidraw_device_get_feature
    - g_steal_pointer
    - fu_struct_pixart_tp_tf_reply_hdr_parse
    - fu_memcpy_safe
    - fu_struct_pixart_tp_tf_read_cmd_new
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_pixart_tp_haptic_device_tf_read_rmi(FuPixartTpHapticDevice
      *self,\n\t\t\t\t       guint16 addr,\n\t\t\t\t       const guint8 *in_buf,\n\t\t\t\t
      \      gsize in_bufsz,\n\t\t\t\t       guint16 reply_len,\n\t\t\t\t       GError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:282,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:284,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:285,1
    - Dst: fu_pixart_tp_haptic_device_tf_read_rmi
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:287,1
    - Dst: fu_struct_pixart_tp_tf_version_payload_parse
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:295,1
    - Dst: fu_struct_pixart_tp_tf_version_payload_get_major
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:299,1
    - Dst: fu_struct_pixart_tp_tf_version_payload_get_minor
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:300,1
    - Dst: fu_struct_pixart_tp_tf_version_payload_get_patch
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 277
    functionDepth: 6
    functionLinenumber: 277
    functionLinenumberEnd: 303
    functionName: fu_pixart_tp_haptic_device_tf_read_firmware_version_cb
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_HAPTIC_DEVICE
    - fu_struct_pixart_tp_tf_version_payload_get_minor
    - fu_struct_pixart_tp_tf_version_payload_parse
    - fu_struct_pixart_tp_tf_version_payload_get_major
    - fu_pixart_tp_haptic_device_tf_read_rmi
    - g_autoptr
    - fu_struct_pixart_tp_tf_version_payload_get_patch
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_haptic_device_tf_read_firmware_version_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_PIXART_TP_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:308,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:309,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:310,1
    - Dst: fu_pixart_tp_haptic_device_tf_read_rmi
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:312,1
    - Dst: fu_struct_pixart_tp_tf_download_status_payload_parse
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:323,1
    - Dst: fu_struct_pixart_tp_tf_download_status_payload_get_status
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:328,1
    - Dst: fu_struct_pixart_tp_tf_download_status_payload_get_packet_number
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 305
    functionDepth: 6
    functionLinenumber: 305
    functionLinenumberEnd: 331
    functionName: fu_pixart_tp_haptic_device_tf_ensure_status_cb
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_HAPTIC_DEVICE
    - fu_struct_pixart_tp_tf_download_status_payload_get_status
    - fu_struct_pixart_tp_tf_download_status_payload_get_packet_number
    - fu_pixart_tp_haptic_device_tf_read_rmi
    - g_autoptr
    - fu_struct_pixart_tp_tf_download_status_payload_parse
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_haptic_device_tf_ensure_status_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:336,1
    - Dst: fu_pixart_tp_haptic_device_tf_write_rmi_with_packet
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 6
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: fu_pixart_tp_haptic_device_tf_write_packet_cb
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_HAPTIC_DEVICE
    - fu_pixart_tp_haptic_device_tf_write_rmi_with_packet
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_haptic_device_tf_write_packet_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:359,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:359,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 6
    argNames:
    - self
    - mode
    - major
    - minor
    - patch
    - error
    argTypes:
    - FuPixartTpHapticDevice*
    - FuPixartTpTfFwMode
    - guint8*
    - guint8*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 377
    functionName: fu_pixart_tp_haptic_device_tf_read_firmware_version
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_prefix_error_literal
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_haptic_device_tf_read_firmware_version(FuPixartTpHapticDevice
      *self,\n\t\t\t\t\t\t    FuPixartTpTfFwMode mode,\n\t\t\t\t\t\t    guint8 *major,\n\t\t\t\t\t\t
      \   guint8 *minor,\n\t\t\t\t\t\t    guint8 *patch,\n\t\t\t\t\t\t    GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:382,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:382,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartTpHapticDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 394
    functionName: fu_pixart_tp_haptic_device_tf_ensure_status
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - g_prefix_error_literal
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_haptic_device_tf_ensure_status(FuPixartTpHapticDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_pixart_tp_haptic_device_tf_write_rmi_cmd
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuPixartTpHapticDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 396
    functionDepth: 6
    functionLinenumber: 396
    functionLinenumberEnd: 403
    functionName: fu_pixart_tp_haptic_device_tf_exit_upgrade_mode
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_haptic_device_tf_write_rmi_cmd
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_haptic_device_tf_exit_upgrade_mode(FuPixartTpHapticDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:414,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:415,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:416,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:418,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - chk
    - num_chunks
    - retry_interval
    - error
    argTypes:
    - FuPixartTpHapticDevice*
    - FuChunk*
    - guint
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 405
    functionDepth: 3
    functionLinenumber: 405
    functionLinenumberEnd: 424
    functionName: fu_pixart_tp_haptic_device_tf_write_packet
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_idx
    - fu_chunk_get_data_sz
    - fu_device_retry_full
    - FU_DEVICE
    - fu_chunk_get_data
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_haptic_device_tf_write_packet(FuPixartTpHapticDevice
      *self,\n\t\t\t\t\t   FuChunk *chk,\n\t\t\t\t\t   guint num_chunks,\n\t\t\t\t\t
      \  guint32 retry_interval,\n\t\t\t\t\t   GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:436,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:438,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:443,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:444,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:446,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:448,1
    - Dst: fu_pixart_tp_haptic_device_tf_write_packet
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:451,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:460,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:460,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:461,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - self
    - chunks
    - send_interval
    - progress
    - error
    argTypes:
    - FuPixartTpHapticDevice*
    - FuChunkArray*
    - guint32
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 426
    functionDepth: 4
    functionLinenumber: 426
    functionLinenumberEnd: 466
    functionName: fu_pixart_tp_haptic_device_tf_write_packets
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_device_sleep
    - fu_chunk_array_index
    - fu_progress_set_steps
    - fu_progress_step_done
    - FU_DEVICE
    - fu_pixart_tp_haptic_device_tf_write_packet
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_haptic_device_tf_write_packets(FuPixartTpHapticDevice
      *self,\n\t\t\t\t\t    FuChunkArray *chunks,\n\t\t\t\t\t    guint32 send_interval,\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/pixart-tp/fu-pixart-tp-haptic-device.c:475,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:478,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:479,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:480,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:481,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:482,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:483,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:484,1
    - Dst: fu_pixart_tp_haptic_device_tf_write_rmi_cmd
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:487,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:491,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:497,1
    - Dst: fu_pixart_tp_haptic_device_tf_write_rmi_cmd
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:500,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:504,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:510,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:510,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:511,1
    - Dst: fu_pixart_tp_haptic_device_tf_write_rmi_cmd
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:514,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:518,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:524,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:524,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:525,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:528,1
    - Dst: fu_pixart_tp_haptic_device_tf_write_packets
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:532,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:535,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:538,1
    - Dst: fu_pixart_tp_haptic_device_tf_ensure_status
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:541,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:543,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:544,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:550,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:553,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:553,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:554,1
    - Dst: fu_pixart_tp_haptic_device_tf_exit_upgrade_mode
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:557,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:558,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:559,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:559,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:560,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 5
    argNames:
    - self
    - send_interval
    - blob
    - progress
    - error
    argTypes:
    - FuPixartTpHapticDevice*
    - guint32
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 468
    functionDepth: 7
    functionLinenumber: 468
    functionLinenumberEnd: 564
    functionName: fu_pixart_tp_haptic_device_tf_write_firmware
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_progress_add_step
    - fu_device_sleep
    - fu_chunk_array_new_from_bytes
    - g_set_error_literal
    - fu_pixart_tp_haptic_device_tf_ensure_status
    - fu_progress_step_done
    - g_set_error
    - fu_pixart_tp_haptic_device_tf_write_rmi_cmd
    - fu_pixart_tp_haptic_device_tf_exit_upgrade_mode
    - FU_DEVICE
    - fu_pixart_tp_haptic_device_tf_write_packets
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_haptic_device_tf_write_firmware(FuPixartTpHapticDevice
      *self,\n\t\t\t\t\t     guint32 send_interval,\n\t\t\t\t\t     GBytes *blob,\n\t\t\t\t\t
      \    FuProgress *progress,\n\t\t\t\t\t     GError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:575,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:575,1
    - Dst: fu_pixart_tp_device_register_user_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:587,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:587,1
    - Dst: fu_pixart_tp_device_register_user_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:595,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:595,1
    - Dst: fu_pixart_tp_haptic_device_tf_exit_upgrade_mode
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:602,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:603,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:605,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:606,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:613,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:615,1
    - Dst: fu_pixart_tp_haptic_device_tf_write_firmware
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:624,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - self
    - send_interval
    - blob
    - progress
    - error
    argTypes:
    - FuPixartTpHapticDevice*
    - guint32
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 566
    functionDepth: 8
    functionLinenumber: 566
    functionLinenumberEnd: 629
    functionName: fu_pixart_tp_haptic_device_tf_write_firmware_process
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_haptic_device_tf_write_firmware
    - g_debug
    - g_bytes_get_data
    - fu_pixart_tp_device_register_user_write
    - g_set_error_literal
    - fu_pixart_tp_haptic_device_tf_exit_upgrade_mode
    - FU_DEVICE
    - FU_PIXART_TP_DEVICE
    - g_bytes_get_size
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_haptic_device_tf_write_firmware_process(FuPixartTpHapticDevice
      *self,\n\t\t\t\t\t\t     guint32 send_interval,\n\t\t\t\t\t\t     GBytes *blob,\n\t\t\t\t\t\t
      \    FuProgress *progress,\n\t\t\t\t\t\t     GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 631
    functionDepth: 7
    functionLinenumber: 631
    functionLinenumberEnd: 641
    functionName: fu_pixart_tp_haptic_device_probe
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_device_build_instance_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_haptic_device_probe(FuDevice *device, GError
      **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:646,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:651,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:652,1
    - Dst: fu_pixart_tp_haptic_device_tf_exit_upgrade_mode
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:655,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:656,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:660,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:660,1
    - Dst: fu_pixart_tp_haptic_device_tf_read_firmware_version
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:664,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:670,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:671,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:677,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:678,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:683,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:684,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 643
    functionDepth: 7
    functionLinenumber: 643
    functionLinenumberEnd: 686
    functionName: fu_pixart_tp_haptic_device_setup
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_HAPTIC_DEVICE
    - fu_device_set_version
    - g_debug
    - fu_device_sleep
    - fu_pixart_tp_haptic_device_tf_exit_upgrade_mode
    - FU_DEVICE
    - g_strdup_printf
    - g_autoptr
    - fu_pixart_tp_haptic_device_tf_read_firmware_version
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_haptic_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:695,1
    - Dst: fu_pixart_tp_firmware_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:695,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:698,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:702,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: 703
      start: 688
    functionDepth: 4
    functionLinenumber: 688
    functionLinenumberEnd: 703
    functionName: fu_pixart_tp_haptic_device_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_pixart_tp_firmware_new
    - fu_firmware_parse_stream
    - g_autoptr
    - fu_firmware_get_image_by_id
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_pixart_tp_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: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:712,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:714,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:715,1
    - Dst: fu_pixart_tp_section_get_reserved
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:718,1
    - Dst: FU_PIXART_TP_SECTION
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:718,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:720,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:728,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:731,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:732,1
    - Dst: fu_pixart_tp_haptic_device_tf_write_firmware_process
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:741,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 705
    functionDepth: 9
    functionLinenumber: 705
    functionLinenumberEnd: 751
    functionName: fu_pixart_tp_haptic_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_HAPTIC_DEVICE
    - FU_PIXART_TP_SECTION
    - fu_pixart_tp_section_get_reserved
    - fu_firmware_get_bytes
    - g_set_error_literal
    - fu_pixart_tp_haptic_device_tf_write_firmware_process
    - g_bytes_get_size
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_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: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:758,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:761,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:762,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 772
    functionName: fu_pixart_tp_haptic_device_detach
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_device_has_flag
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_haptic_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:777,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:778,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:779,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:780,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:781,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 774
    functionDepth: 3
    functionLinenumber: 774
    functionLinenumberEnd: 783
    functionName: fu_pixart_tp_haptic_device_set_progress
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_haptic_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_PIXART_TP_HAPTIC_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:791,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:793,1
    - Dst: fu_pixart_tp_haptic_device_tf_exit_upgrade_mode
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:796,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:797,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:799,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:803,1
    - Dst: fu_pixart_tp_device_register_user_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:806,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:806,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:811,1
    - Dst: fu_pixart_tp_device_register_user_write
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:817,1
    - Dst: FU_PIXART_TP_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:817,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:822,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 785
    functionDepth: 7
    functionLinenumber: 785
    functionLinenumberEnd: 829
    functionName: fu_pixart_tp_haptic_device_cleanup
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - FU_PIXART_TP_HAPTIC_DEVICE
    - g_debug
    - fu_pixart_tp_device_register_user_write
    - fu_pixart_tp_haptic_device_tf_exit_upgrade_mode
    - g_clear_error
    - FU_PIXART_TP_DEVICE
    - fu_device_get_proxy
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_pixart_tp_haptic_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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:834,1
    - Dst: fu_pixart_tp_haptic_device_setup
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:837,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 831
    functionDepth: 8
    functionLinenumber: 831
    functionLinenumberEnd: 842
    functionName: fu_pixart_tp_haptic_device_reload
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_pixart_tp_haptic_device_setup
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_pixart_tp_haptic_device_reload(FuDevice *device, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuPixartTpHapticDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 857
    functionName: fu_pixart_tp_haptic_device_class_init
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_haptic_device_class_init(FuPixartTpHapticDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:862,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:862,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:863,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:863,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:864,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:864,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:865,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:865,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:866,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:866,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:867,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:867,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:868,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:868,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:869,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:869,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:870,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:870,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:871,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:871,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:872,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:872,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:873,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuPixartTpHapticDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 859
    functionDepth: 6
    functionLinenumber: 859
    functionLinenumberEnd: 874
    functionName: fu_pixart_tp_haptic_device_init
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_logical_id
    - fu_device_add_instance_str
    - fu_device_add_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_summary
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_pixart_tp_haptic_device_init(FuPixartTpHapticDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 880
    functionName: fu_pixart_tp_haptic_device_new
    functionSourceFile: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuPixartTpHapticDevice
    signature: 'FuPixartTpHapticDevice *

      fu_pixart_tp_haptic_device_new(FuDevice *proxy)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:49,1
    - Dst: fwupd_codec_string_append_hex
      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
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:53,1
    - Dst: fu_logitech_bulkcontroller_device_state_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:56,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:57,1
    - Dst: fu_logitech_bulkcontroller_update_state_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:61,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:63,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 69
    functionName: fu_logitech_bulkcontroller_device_to_string
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_bulkcontroller_update_state_to_string
    - fwupd_codec_string_append
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - fwupd_codec_string_append_hex
    - fu_logitech_bulkcontroller_device_state_to_string
    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:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:75,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:77,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:77,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:81,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:82,1
    - Dst: fu_usb_interface_get_protocol
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:83,1
    - Dst: fu_usb_interface_get_subclass
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:84,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:85,1
    - Dst: fu_usb_interface_get_endpoints
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:86,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:87,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:91,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:94,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:97,1
    - Dst: fu_usb_interface_get_subclass
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:101,1
    - Dst: fu_usb_interface_get_endpoints
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:102,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:103,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:107,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:110,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:113,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:118,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:118,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
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 71
    functionDepth: 9
    functionLinenumber: 71
    functionLinenumberEnd: 121
    functionName: fu_logitech_bulkcontroller_device_probe
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_endpoints
    - fu_usb_interface_get_number
    - fu_usb_device_get_interfaces
    - fu_usb_interface_get_protocol
    - fu_usb_device_add_interface
    - fu_usb_interface_get_class
    - fu_usb_endpoint_get_address
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_interface_get_subclass
    - g_ptr_array_index
    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_byte_array_new
    - g_new0
    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:156,1
    - Dst: fu_struct_logitech_bulkcontroller_send_sync_req_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:157,1
    - Dst: fu_struct_logitech_bulkcontroller_send_sync_req_set_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:164,1
    - Dst: fu_struct_logitech_bulkcontroller_send_sync_req_set_sequence_id
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:165,1
    - Dst: fu_struct_logitech_bulkcontroller_send_sync_req_set_payload_length
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:167,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:169,1
    - Dst: fu_struct_logitech_bulkcontroller_send_sync_req_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:171,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:172,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:174,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:174,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - self
    - cmd
    - buf
    - timeout
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - FuLogitechBulkcontrollerCmd
    - GByteArray*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 149
    functionDepth: 4
    functionLinenumber: 149
    functionLinenumberEnd: 188
    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_payload_length
    - fu_struct_logitech_bulkcontroller_send_sync_req_set_cmd
    - g_prefix_error_literal
    - fu_struct_logitech_bulkcontroller_send_sync_req_new
    - fu_struct_logitech_bulkcontroller_send_sync_req_to_string
    - fu_usb_device_bulk_transfer
    - g_byte_array_append
    - FU_USB_DEVICE
    - g_autoptr
    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\tguint timeout,\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:196,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:196,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:197,1
    - Dst: fu_logitech_bulkcontroller_device_sync_send_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:198,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:203,1
    - Dst: fu_logitech_bulkcontroller_cmd_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - cmd
    - timeout
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - FuLogitechBulkcontrollerCmd
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 190
    functionDepth: 5
    functionLinenumber: 190
    functionLinenumberEnd: 209
    functionName: fu_logitech_bulkcontroller_device_sync_send_ack
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - fu_logitech_bulkcontroller_cmd_to_string
    - fu_logitech_bulkcontroller_device_sync_send_cmd
    - g_autoptr
    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\tguint timeout,\n\t\t\t\t\t\tGError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:217,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:218,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:219,1
    - Dst: fu_logitech_bulkcontroller_device_response_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:220,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:222,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:222,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:230,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:233,1
    - Dst: MIN
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:233,1
    - Dst: fu_struct_logitech_bulkcontroller_send_sync_res_parse
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:235,1
    - Dst: fu_struct_logitech_bulkcontroller_send_sync_res_get_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:241,1
    - Dst: fu_struct_logitech_bulkcontroller_send_sync_res_get_sequence_id
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:242,1
    - Dst: fu_byte_array_append_safe
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:243,1
    - Dst: fu_struct_logitech_bulkcontroller_send_sync_res_get_payload_length
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:248,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:254,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - self
    - timeout
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 211
    functionDepth: 4
    functionLinenumber: 211
    functionLinenumberEnd: 261
    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_get_payload_length
    - fu_logitech_bulkcontroller_device_response_new
    - fu_struct_logitech_bulkcontroller_send_sync_res_get_sequence_id
    - g_set_error_literal
    - g_steal_pointer
    - g_prefix_error_literal
    - g_malloc0
    - fu_dump_raw
    - fu_byte_array_append_safe
    - fu_usb_device_bulk_transfer
    - fu_struct_logitech_bulkcontroller_send_sync_res_parse
    - MIN
    - fu_struct_logitech_bulkcontroller_send_sync_res_get_cmd
    - FU_USB_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: FuLogitechBulkcontrollerResponse
    signature: "FuLogitechBulkcontrollerResponse *\nfu_logitech_bulkcontroller_device_sync_wait_any(FuLogitechBulkcontrollerDevice
      *self,\n\t\t\t\t\t\tguint timeout,\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:270,1
    - Dst: fu_logitech_bulkcontroller_device_sync_wait_any
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:272,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:276,1
    - Dst: fu_logitech_bulkcontroller_cmd_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:280,1
    - Dst: fu_logitech_bulkcontroller_cmd_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:281,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:287,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - self
    - cmd
    - sequence_id
    - timeout
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - FuLogitechBulkcontrollerCmd
    - guint32
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 263
    functionDepth: 5
    functionLinenumber: 263
    functionLinenumberEnd: 298
    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
    - g_steal_pointer
    - fu_logitech_bulkcontroller_cmd_to_string
    - g_autoptr
    - fu_logitech_bulkcontroller_device_sync_wait_any
    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\tguint
      timeout,\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:305,1
    - Dst: fu_logitech_bulkcontroller_device_sync_wait_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 300
    functionDepth: 6
    functionLinenumber: 300
    functionLinenumberEnd: 318
    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
    - fu_logitech_bulkcontroller_device_sync_wait_cmd
    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:330,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - self
    - cmd
    - sequence_id
    - timeout
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - FuLogitechBulkcontrollerCmd
    - guint32
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 320
    functionDepth: 4
    functionLinenumber: 320
    functionLinenumberEnd: 337
    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      guint timeout,\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:348,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:356,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:359,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:360,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:366,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:369,1
    - Dst: fu_logitech_bulkcontroller_cmd_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:370,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:373,1
    - Dst: fu_logitech_bulkcontroller_cmd_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:377,1
    - Dst: fu_logitech_bulkcontroller_cmd_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - buf
    - cmd
    - error
    argTypes:
    - GByteArray*
    - FuLogitechBulkcontrollerCmd
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 384
    functionName: fu_logitech_bulkcontroller_device_sync_check_ack_cmd
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - fu_strtoull
    - g_prefix_error_literal
    - fu_logitech_bulkcontroller_cmd_to_string
    - fu_memcpy_safe
    - fu_dump_raw
    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:391,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:393,1
    - Dst: fu_logitech_bulkcontroller_device_sync_wait_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:395,1
    - Dst: fu_logitech_bulkcontroller_device_sync_check_ack_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 386
    functionDepth: 6
    functionLinenumber: 386
    functionLinenumberEnd: 407
    functionName: fu_logitech_bulkcontroller_device_sync_wait_ack_cb
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - fu_logitech_bulkcontroller_device_sync_check_ack_cmd
    - g_autoptr
    - fu_logitech_bulkcontroller_device_sync_wait_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:417,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - cmd
    - timeout
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - FuLogitechBulkcontrollerCmd
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 423
    functionName: fu_logitech_bulkcontroller_device_sync_wait_ack
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_retry_full
    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\tguint timeout,\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:433,1
    - Dst: fu_logitech_bulkcontroller_device_sync_check_ack_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - response
    - cmd
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - FuLogitechBulkcontrollerResponse*
    - FuLogitechBulkcontrollerCmd
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 425
    functionDepth: 4
    functionLinenumber: 425
    functionLinenumberEnd: 442
    functionName: fu_logitech_bulkcontroller_device_sync_check_ack
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_bulkcontroller_device_sync_check_ack_cmd
    - g_set_error
    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:449,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:450,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:451,1
    - Dst: fu_logitech_bulkcontroller_device_sync_send_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:454,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:460,1
    - Dst: fu_logitech_bulkcontroller_device_sync_wait_ack
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:465,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:470,1
    - Dst: fu_logitech_bulkcontroller_device_sync_send_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:475,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:481,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:487,1
    - Dst: fu_logitech_bulkcontroller_device_sync_wait_any
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:489,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:493,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:498,1
    - Dst: fu_logitech_bulkcontroller_device_sync_check_ack
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:504,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:509,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:512,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:515,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:521,1
    - Dst: fu_logitech_bulkcontroller_device_sync_send_ack
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:526,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:531,1
    - Dst: fu_logitech_bulkcontroller_device_sync_wait_cmd_retry
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:536,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:543,1
    - Dst: fu_logitech_bulkcontroller_device_sync_send_ack
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:548,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:553,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:558,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 3
    argNames:
    - self
    - req
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 444
    functionDepth: 6
    functionLinenumber: 444
    functionLinenumberEnd: 559
    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
    - g_set_error_literal
    - g_steal_pointer
    - g_prefix_error_literal
    - fu_logitech_bulkcontroller_device_sync_send_cmd
    - fu_logitech_bulkcontroller_device_sync_wait_ack
    - fu_logitech_bulkcontroller_device_sync_wait_cmd_retry
    - g_autoptr
    - fu_logitech_bulkcontroller_device_sync_check_ack
    - fu_logitech_bulkcontroller_device_sync_wait_any
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:569,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:570,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:571,1
    - Dst: fu_struct_logitech_bulkcontroller_update_req_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:572,1
    - Dst: fu_struct_logitech_bulkcontroller_update_req_set_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:574,1
    - Dst: fu_struct_logitech_bulkcontroller_update_req_set_payload_length
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:576,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:578,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:579,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:582,1
    - Dst: MIN
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:582,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:583,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:583,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:591,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:592,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:597,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:597,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:605,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:608,1
    - Dst: MIN
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:608,1
    - Dst: fu_struct_logitech_bulkcontroller_update_res_parse
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:610,1
    - Dst: fu_struct_logitech_bulkcontroller_update_res_get_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:616,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:618,1
    - Dst: fu_logitech_bulkcontroller_cmd_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:622,1
    - Dst: fu_struct_logitech_bulkcontroller_update_res_get_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:623,1
    - Dst: fu_struct_logitech_bulkcontroller_update_res_get_cmd_req
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:626,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:627,1
    - Dst: fu_logitech_bulkcontroller_cmd_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:631,1
    - Dst: fu_logitech_bulkcontroller_cmd_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:632,1
    - Dst: fu_struct_logitech_bulkcontroller_update_res_get_cmd_req
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:633,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 5
    argNames:
    - self
    - cmd
    - buf
    - timeout
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - guint32
    - GBytes*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 561
    functionDepth: 4
    functionLinenumber: 561
    functionLinenumberEnd: 637
    functionName: fu_logitech_bulkcontroller_device_upd_send_cmd
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - fu_struct_logitech_bulkcontroller_update_res_get_cmd_req
    - g_set_error
    - g_prefix_error_literal
    - g_malloc0
    - fu_struct_logitech_bulkcontroller_update_req_set_payload_length
    - fu_dump_raw
    - fwupd_error_convert
    - fu_struct_logitech_bulkcontroller_update_res_parse
    - fu_usb_device_bulk_transfer
    - fu_struct_logitech_bulkcontroller_update_req_new
    - MIN
    - g_bytes_get_size
    - g_autoptr
    - fu_logitech_bulkcontroller_cmd_to_string
    - FU_USB_DEVICE
    - fu_struct_logitech_bulkcontroller_update_req_set_cmd
    - fu_struct_logitech_bulkcontroller_update_res_get_cmd
    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: 652
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 652
    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: 12
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_children
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:659,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:659,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:660,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:667,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:670,1
    - Dst: fwupd_json_object_get_integer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:674,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:677,1
    - Dst: fu_logitech_bulkcontroller_device_state_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:681,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:687,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:692,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:696,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:697,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:697,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:698,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:699,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:705,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:706,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:707,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:708,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:711,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:712,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:713,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:714,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:716,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:717,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:720,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:721,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:723,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:723,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 3
    argNames:
    - self
    - json_device
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 654
    functionDepth: 7
    functionLinenumber: 654
    functionLinenumberEnd: 727
    functionName: fu_logitech_bulkcontroller_device_ensure_child
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_logical_id
    - fu_device_add_child
    - fu_device_set_version
    - fwupd_json_object_get_integer
    - fu_device_get_children
    - fu_device_add_instance_strup
    - fu_device_add_private_flag
    - g_object_new
    - g_ptr_array_index
    - g_debug
    - fu_device_build_instance_id
    - fu_device_set_vendor
    - fu_logitech_bulkcontroller_device_state_to_string
    - fu_device_set_logical_id
    - fu_device_set_serial
    - FU_DEVICE
    - fu_device_set_name
    - fwupd_json_object_get_string
    - g_strcmp0
    - g_set_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_ensure_child(FuLogitechBulkcontrollerDevice
      *self,\n\t\t\t\t\t       FwupdJsonObject *json_device,\n\t\t\t\t\t       GError
      **error)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:736,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:737,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:738,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:739,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:740,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:741,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:741,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:744,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:745,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:746,1
    - Dst: fwupd_json_parser_load_from_data
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:750,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:753,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:756,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:759,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:762,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:766,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:768,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:768,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:769,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:771,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:771,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:772,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:774,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:774,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:778,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:787,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:798,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:808,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:809,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:810,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:812,1
    - Dst: fu_logitech_bulkcontroller_device_ensure_child
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:815,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:816,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 3
    argNames:
    - self
    - json
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 729
    functionDepth: 8
    functionLinenumber: 729
    functionLinenumberEnd: 821
    functionName: fu_logitech_bulkcontroller_device_json_parser
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - fu_device_set_version
    - fwupd_json_parser_set_max_quoted
    - fwupd_json_array_get_object
    - fwupd_json_parser_set_max_items
    - fwupd_json_array_get_size
    - fwupd_json_object_get_array
    - fu_device_add_instance_id_full
    - fwupd_json_object_get_object
    - fu_device_set_name
    - FU_DEVICE
    - g_warning
    - fwupd_json_parser_new
    - fu_logitech_bulkcontroller_device_ensure_child
    - fwupd_json_object_get_string
    - fwupd_json_node_get_object
    - fwupd_json_parser_load_from_data
    - g_autoptr
    - fwupd_json_object_get_integer_with_default
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_logitech_bulkcontroller_device_json_parser(FuLogitechBulkcontrollerDevice
      *self,\n\t\t\t\t\t      const gchar *json,\n\t\t\t\t\t      GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:829,1
    - Dst: fu_protobuf_new_from_data
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:829,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:830,1
    - Dst: fu_protobuf_get_embedded
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:834,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:836,1
    - Dst: fu_protobuf_get_embedded
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:836,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:841,1
    - Dst: fu_protobuf_get_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:846,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:851,1
    - Dst: fu_protobuf_get_embedded
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:860,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:862,1
    - Dst: fu_protobuf_get_embedded
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:863,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:867,1
    - Dst: fu_protobuf_get_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:871,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:875,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:882,1
    - Dst: fu_logitech_bulkcontroller_device_json_parser
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:889,1
    - Dst: g_string_assign
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:893,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 823
    functionDepth: 9
    functionLinenumber: 823
    functionLinenumberEnd: 895
    functionName: fu_logitech_bulkcontroller_device_parse_info
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_protobuf_get_string
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_logitech_bulkcontroller_device_json_parser
    - fu_protobuf_get_embedded
    - fu_protobuf_new_from_data
    - g_string_assign
    - g_autoptr
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:900,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:900,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:903,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:903,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:904,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:904,1
    - Dst: fu_protobuf_add_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:905,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:908,1
    - Dst: g_get_real_time
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:908,1
    - Dst: g_uuid_string_random
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:909,1
    - Dst: fu_protobuf_add_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:910,1
    - Dst: fu_protobuf_add_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:911,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:915,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 897
    functionDepth: 3
    functionLinenumber: 897
    functionLinenumberEnd: 916
    functionName: fu_logitech_bulkcontroller_device_build_header
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_protobuf_new
    - g_uuid_string_random
    - g_steal_pointer
    - g_get_real_time
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_has_flag
    - g_autoptr
    - fu_protobuf_add_string
    linkageType: ''
    returnType: FuProtobuf
    signature: 'FuProtobuf *

      fu_logitech_bulkcontroller_device_build_header(FuLogitechBulkcontrollerDevice
      *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:922,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:922,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:923,1
    - Dst: fu_logitech_bulkcontroller_device_build_header
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:923,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:924,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:924,1
    - Dst: fu_protobuf_add_empty
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:925,1
    - Dst: fu_protobuf_add_embedded
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:926,1
    - Dst: fu_protobuf_add_embedded
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:927,1
    - Dst: fu_protobuf_write
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 918
    functionDepth: 4
    functionLinenumber: 918
    functionLinenumberEnd: 929
    functionName: fu_logitech_bulkcontroller_device_build_get_device_info_request
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_bulkcontroller_device_build_header
    - fu_protobuf_new
    - fu_protobuf_add_embedded
    - fu_protobuf_write
    - fu_protobuf_add_empty
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_logitech_bulkcontroller_device_build_get_device_info_request(\n
      \   FuLogitechBulkcontrollerDevice *self)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:936,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:937,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:948,1
    - Dst: fu_logitech_bulkcontroller_device_build_get_device_info_request
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:949,1
    - Dst: fu_logitech_bulkcontroller_device_sync_write
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:950,1
    - Dst: fu_logitech_bulkcontroller_device_sync_wait_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:955,1
    - Dst: fu_logitech_bulkcontroller_device_parse_info
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:964,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 931
    functionDepth: 10
    functionLinenumber: 931
    functionLinenumberEnd: 965
    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_build_get_device_info_request
    - fu_logitech_bulkcontroller_device_sync_write
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - g_autoptr
    - fu_logitech_bulkcontroller_device_sync_wait_cmd
    - 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:972,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - send_req
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 967
    functionDepth: 4
    functionLinenumber: 967
    functionLinenumberEnd: 977
    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:984,1
    - Dst: fu_logitech_bulkcontroller_device_upd_send_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 979
    functionDepth: 5
    functionLinenumber: 979
    functionLinenumberEnd: 990
    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
    - fu_logitech_bulkcontroller_device_upd_send_cmd
    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:998,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1000,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1008,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1009,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1009,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1010,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1011,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1012,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1015,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1018,1
    - Dst: fu_logitech_bulkcontroller_device_upd_send_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1019,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1025,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1028,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - self
    - stream
    - progress
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 992
    functionDepth: 5
    functionLinenumber: 992
    functionLinenumberEnd: 1031
    functionName: fu_logitech_bulkcontroller_device_write_fw
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_logitech_bulkcontroller_device_upd_send_cmd
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_bytes
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1036,1
    - Dst: FU_PROGRESS
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1037,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1038,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1039,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1040,1
    - Dst: fu_logitech_bulkcontroller_device_sync_wait_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1053,1
    - Dst: fu_logitech_bulkcontroller_device_sync_send_ack
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1064,1
    - Dst: fu_logitech_bulkcontroller_device_sync_wait_cmd_retry
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1073,1
    - Dst: fu_logitech_bulkcontroller_device_sync_send_ack
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1084,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1093,1
    - Dst: fu_logitech_bulkcontroller_device_build_get_device_info_request
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1094,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1095,1
    - Dst: fu_logitech_bulkcontroller_device_sync_write
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1096,1
    - Dst: fu_logitech_bulkcontroller_device_parse_info
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1100,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1103,1
    - Dst: fu_logitech_bulkcontroller_update_state_to_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1104,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1109,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1119,1
    - Dst: fu_logitech_bulkcontroller_device_update_state_to_status
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1121,1
    - Dst: fu_progress_get_percentage
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1130,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1131,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1134,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1033
    functionDepth: 10
    functionLinenumber: 1033
    functionLinenumberEnd: 1136
    functionName: fu_logitech_bulkcontroller_device_verify_cb
    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_build_get_device_info_request
    - fu_progress_get_percentage
    - FU_PROGRESS
    - g_debug
    - fu_progress_set_percentage
    - fu_logitech_bulkcontroller_device_update_state_to_status
    - g_set_error_literal
    - fu_logitech_bulkcontroller_update_state_to_string
    - fu_logitech_bulkcontroller_device_sync_write
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - fu_logitech_bulkcontroller_device_sync_wait_cmd_retry
    - fu_progress_set_status
    - g_autoptr
    - fu_logitech_bulkcontroller_device_sync_wait_cmd
    - 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: 13
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1145,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1149,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1150,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1150,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1151,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1151,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1152,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1153,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1154,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1157,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1158,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1159,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1160,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1161,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1162,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1163,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1166,1
    - Dst: fu_firmware_get_checksum
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1171,1
    - Dst: fu_byte_array_from_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1172,1
    - Dst: g_base64_encode
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1175,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1176,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1179,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1184,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1191,1
    - Dst: fu_byte_array_append_uint64
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1193,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1194,1
    - Dst: fu_logitech_bulkcontroller_device_upd_send_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1195,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1201,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1204,1
    - Dst: fu_logitech_bulkcontroller_device_write_fw
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1207,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1209,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1211,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1214,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1218,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1219,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1220,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1223,1
    - Dst: strlen
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1223,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1224,1
    - Dst: fu_logitech_bulkcontroller_device_upd_send_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1225,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1231,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1234,1
    - Dst: fu_logitech_bulkcontroller_device_upd_send_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1237,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1242,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1245,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1260,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1265,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1269,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1273,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1279,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1282,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1286,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1287,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1291,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1291,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1293,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 76
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1138
    functionDepth: 6
    functionLinenumber: 1138
    functionLinenumberEnd: 1296
    functionName: fu_logitech_bulkcontroller_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_bytes_new
    - fu_logitech_bulkcontroller_device_upd_send_cmd
    - fu_logitech_bulkcontroller_device_write_fw
    - fu_byte_array_append_uint32
    - fu_device_set_remove_delay
    - g_debug
    - g_set_error_literal
    - g_prefix_error_literal
    - g_byte_array_new
    - fu_progress_add_step
    - fu_progress_step_done
    - FU_DEVICE
    - g_byte_array_append
    - fu_device_retry
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_device_remove_private_flag
    - fu_firmware_get_stream
    - fu_input_stream_size
    - fu_byte_array_append_uint64
    - fu_device_has_private_flag
    - fu_device_retry_full
    - strlen
    - fu_byte_array_from_string
    - fu_firmware_get_checksum
    - g_autoptr
    - g_base64_encode
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1303,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1303,1
    - Dst: fu_context_get_path_store
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1304,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1306,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1306,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1307,1
    - Dst: fu_logitech_bulkcontroller_device_build_header
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1307,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1308,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1308,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1309,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1309,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1312,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1312,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1313,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1313,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1314,1
    - Dst: fu_common_get_olson_timezone_id
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1316,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1322,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1322,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1323,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1323,1
    - Dst: fu_protobuf_add_uint64
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1324,1
    - Dst: g_get_real_time
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1326,1
    - Dst: fu_protobuf_add_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1328,1
    - Dst: fu_protobuf_add_embedded
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1331,1
    - Dst: fu_protobuf_add_embedded
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1334,1
    - Dst: fu_protobuf_add_embedded
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1335,1
    - Dst: fu_protobuf_write
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1336,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1298
    functionDepth: 4
    functionLinenumber: 1298
    functionLinenumberEnd: 1337
    functionName: fu_logitech_bulkcontroller_device_build_set_device_time_request
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_protobuf_add_uint64
    - fu_protobuf_new
    - fu_logitech_bulkcontroller_device_build_header
    - fu_protobuf_add_embedded
    - fu_device_get_context
    - g_get_real_time
    - fu_context_get_path_store
    - FU_DEVICE
    - fu_protobuf_write
    - fu_device_has_flag
    - fu_common_get_olson_timezone_id
    - g_autoptr
    - fu_protobuf_add_string
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_logitech_bulkcontroller_device_build_set_device_time_request(\n
      \   FuLogitechBulkcontrollerDevice *self,\n    GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1342,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1344,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1345,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1346,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1347,1
    - Dst: fu_logitech_bulkcontroller_device_build_set_device_time_request
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1350,1
    - Dst: fu_logitech_bulkcontroller_device_sync_write
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1353,1
    - Dst: fu_protobuf_new_from_data
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1357,1
    - Dst: fu_protobuf_get_embedded
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1359,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1363,1
    - Dst: fu_protobuf_get_boolean
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1366,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1370,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1374,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1339
    functionDepth: 7
    functionLinenumber: 1339
    functionLinenumberEnd: 1383
    functionName: fu_logitech_bulkcontroller_device_send_time_cb
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_bulkcontroller_device_build_set_device_time_request
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_protobuf_get_boolean
    - fu_protobuf_get_embedded
    - fu_protobuf_new_from_data
    - fu_logitech_bulkcontroller_device_sync_write
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_logitech_bulkcontroller_device_send_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:1388,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1385
    functionDepth: 4
    functionLinenumber: 1385
    functionLinenumberEnd: 1393
    functionName: fu_logitech_bulkcontroller_device_send_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_send_time(FuLogitechBulkcontrollerDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1399,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1399,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1400,1
    - Dst: fu_logitech_bulkcontroller_device_build_header
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1400,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1401,1
    - Dst: fu_protobuf_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1401,1
    - Dst: fu_protobuf_add_empty
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1403,1
    - Dst: fu_protobuf_add_embedded
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1405,1
    - Dst: fu_protobuf_add_embedded
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1406,1
    - Dst: fu_protobuf_write
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1395
    functionDepth: 4
    functionLinenumber: 1395
    functionLinenumberEnd: 1408
    functionName: fu_logitech_bulkcontroller_device_build_transition_to_device_mode_request
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_bulkcontroller_device_build_header
    - fu_protobuf_new
    - fu_protobuf_add_embedded
    - fu_protobuf_write
    - fu_protobuf_add_empty
    - g_autoptr
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_logitech_bulkcontroller_device_build_transition_to_device_mode_request(\n
      \   FuLogitechBulkcontrollerDevice *self)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_LOGITECH_BULKCONTROLLER_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1415,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1417,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1418,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1419,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1420,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1421,1
    - Dst: fu_logitech_bulkcontroller_device_build_transition_to_device_mode_request
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1423,1
    - Dst: fu_logitech_bulkcontroller_device_sync_write
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1424,1
    - Dst: fu_protobuf_new_from_data
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1427,1
    - Dst: fu_protobuf_get_embedded
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1429,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1431,1
    - Dst: fu_protobuf_get_embedded
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1434,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1439,1
    - Dst: fu_protobuf_get_boolean
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1444,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1449,1
    - Dst: fu_protobuf_get_string
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1455,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1460,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1467,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1410
    functionDepth: 7
    functionLinenumber: 1410
    functionLinenumberEnd: 1477
    functionName: fu_logitech_bulkcontroller_device_transition_to_device_mode_cb
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_protobuf_get_string
    - g_set_error
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_protobuf_get_boolean
    - fu_protobuf_get_embedded
    - fu_protobuf_new_from_data
    - fu_logitech_bulkcontroller_device_sync_write
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - fu_logitech_bulkcontroller_device_build_transition_to_device_mode_request
    - g_autoptr
    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:1483,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1479
    functionDepth: 4
    functionLinenumber: 1479
    functionLinenumberEnd: 1488
    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:1495,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1497,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1498,1
    - Dst: fu_usb_device_bulk_transfer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1500,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1500,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1508,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1509,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1512,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1512,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1490
    functionDepth: 4
    functionLinenumber: 1490
    functionLinenumberEnd: 1522
    functionName: fu_logitech_bulkcontroller_device_clear_queue_cb
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error_literal
    - g_steal_pointer
    - g_malloc0
    - g_propagate_error
    - fu_usb_device_bulk_transfer
    - g_error_matches
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - 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:1527,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1528,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1524
    functionDepth: 4
    functionLinenumber: 1524
    functionLinenumberEnd: 1533
    functionName: fu_logitech_bulkcontroller_device_clear_queue
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - g_debug
    - FU_DEVICE
    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:1539,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1540,1
    - Dst: fu_logitech_bulkcontroller_device_sync_send_cmd
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1542,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1548,1
    - Dst: fu_logitech_bulkcontroller_device_sync_wait_cmd_retry
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1551,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1535
    functionDepth: 5
    functionLinenumber: 1535
    functionLinenumberEnd: 1565
    functionName: fu_logitech_bulkcontroller_device_check_buffer_size
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_prefix_error_literal
    - fu_logitech_bulkcontroller_device_sync_send_cmd
    - fu_logitech_bulkcontroller_device_sync_wait_cmd_retry
    - 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:1570,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1573,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1575,1
    - Dst: fu_device_remove_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1576,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1581,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1583,1
    - Dst: fu_logitech_bulkcontroller_device_clear_queue
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1588,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1589,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1594,1
    - Dst: fu_logitech_bulkcontroller_device_check_buffer_size
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1596,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1597,1
    - Dst: fu_logitech_bulkcontroller_device_transition_to_device_mode
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1603,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1604,1
    - Dst: fu_logitech_bulkcontroller_device_send_time
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1609,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1610,1
    - Dst: fu_logitech_bulkcontroller_device_ensure_info
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1615,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1616,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1567
    functionDepth: 6
    functionLinenumber: 1567
    functionLinenumberEnd: 1622
    functionName: fu_logitech_bulkcontroller_device_setup
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_logitech_bulkcontroller_device_ensure_info
    - fu_device_sleep
    - fu_logitech_bulkcontroller_device_send_time
    - fu_logitech_bulkcontroller_device_transition_to_device_mode
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - fu_logitech_bulkcontroller_device_clear_queue
    - fu_logitech_bulkcontroller_device_check_buffer_size
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - FU_DEVICE_CLASS
    - fu_device_remove_private_flag
    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:1627,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1628,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1629,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1630,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1631,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1624
    functionDepth: 3
    functionLinenumber: 1624
    functionLinenumberEnd: 1633
    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 *device,
      FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1639,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1640,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1640,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1641,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1641,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1642,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1642,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1643,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1643,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1644,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1644,1
    - Dst: fu_usb_device_set_claim_retry_count
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1645,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1645,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1646,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1646,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1647,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1647,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1649,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1649,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1651,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1651,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1655,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1655,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1656,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechBulkcontrollerDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1635
    functionDepth: 6
    functionLinenumber: 1635
    functionLinenumberEnd: 1660
    functionName: fu_logitech_bulkcontroller_device_init
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_retry_set_delay
    - fu_device_register_private_flag
    - fu_device_add_private_flag
    - FU_DEVICE
    - g_string_new
    - fu_usb_device_set_claim_retry_count
    - fu_device_retry_add_recovery
    - fu_device_set_version_format
    - FU_USB_DEVICE
    - fu_device_add_protocol
    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:1665,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1666,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1662
    functionDepth: 0
    functionLinenumber: 1662
    functionLinenumberEnd: 1668
    functionName: fu_logitech_bulkcontroller_device_finalize
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - FU_LOGITECH_BULKCONTROLLER_DEVICE
    - G_OBJECT_CLASS
    - g_string_free
    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:1673,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c:1674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechBulkcontrollerDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1670
    functionDepth: 0
    functionLinenumber: 1670
    functionLinenumberEnd: 1681
    functionName: fu_logitech_bulkcontroller_device_class_init
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_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:
    - fwupd_codec_string_append_bool
    - FU_LOGITECH_BULKCONTROLLER_PLUGIN
    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_device_locker_new
    - g_autoptr
    - FU_LOGITECH_BULKCONTROLLER_PLUGIN
    - fu_device_write_firmware
    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_device_add_private_flag
    - FU_LOGITECH_BULKCONTROLLER_PLUGIN
    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_add_udev_subsystem
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c:68,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c:69,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c:70,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: fu_logitech_bulkcontroller_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_set_device_gtype_default
    - 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:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechBulkcontrollerPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:25,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:32,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 35
    functionName: fu_logitech_bulkcontroller_child_write_firmware
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_write_firmware
    - fu_device_get_proxy
    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: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
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:43,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:44,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 46
    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 *device,
      FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      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_set_version_format
      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_set_proxy_gtype
      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
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:54,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:54,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:55,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:55,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:56,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:56,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:57,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuLogitechBulkcontrollerChild*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: fu_logitech_bulkcontroller_child_init
    functionSourceFile: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-child.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuLogitechBulkcontrollerChildClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    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: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:24,1
    - Dst: fu_context_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:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - plugin
    argTypes:
    - FuPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 33
    functionName: fu_uefi_esrt_plugin_check_esrt
    functionSourceFile: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c
    functionUses: 0
    functionsReached:
    - g_file_test
    - fu_plugin_get_context
    - fu_context_build_filename
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_uefi_esrt_plugin_check_esrt(FuPlugin *plugin)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:38,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:39,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:40,1
    - Dst: fu_efivars_supported
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:42,1
    - Dst: fu_plugin_security_attr_new
      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: fu_security_attr_add_bios_target_value
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:47,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:48,1
    - Dst: fu_uefi_esrt_plugin_check_esrt
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:50,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:51,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:53,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 56
    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
    - fwupd_security_attr_set_result
    - fu_plugin_security_attr_new
    - fu_plugin_get_context
    - fu_security_attr_add_bios_target_value
    - fu_uefi_esrt_plugin_check_esrt
    - fu_context_get_efivars
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    - fu_efivars_supported
    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:61,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuUefiEsrtPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: fu_uefi_esrt_plugin_init
    functionSourceFile: /src/fwupd/plugins/uefi-esrt/fu-uefi-esrt-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_rule
    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:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuUefiEsrtPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_error_map_entry_to_gerror
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-i2c-common.c:23,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-i2c-common.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - status
    - error
    argTypes:
    - FuVliUsbhubI2cStatus
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 12
    functionDepth: 2
    functionLinenumber: 12
    functionLinenumberEnd: 24
    functionName: fu_vli_usbhub_i2c_check_status
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-i2c-common.c
    functionUses: 0
    functionsReached:
    - fu_error_map_entry_to_gerror
    - G_N_ELEMENTS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_i2c_check_status(FuVliUsbhubI2cStatus status,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:48,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:49,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:50,1
    - Dst: fu_struct_vli_usbhub_hdr_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:52,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:53,1
    - Dst: fu_struct_vli_usbhub_hdr_get_dev_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:54,1
    - Dst: fu_struct_vli_usbhub_hdr_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:56,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: fu_vli_usbhub_device_to_string
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - fu_struct_vli_usbhub_hdr_get_dev_id
    - fwupd_codec_string_append
    - fwupd_codec_string_append_bool
    - fu_struct_vli_usbhub_hdr_to_string
    - fwupd_codec_string_append_hex
    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:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - GByteArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 66
    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:71,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:71,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 68
    functionDepth: 4
    functionLinenumber: 68
    functionLinenumberEnd: 88
    functionName: fu_vli_usbhub_device_vdr_unlock_813
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_prefix_error_literal
    - fu_usb_device_control_transfer
    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:93,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:93,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - addr
    - buf
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - guint16
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 90
    functionDepth: 4
    functionLinenumber: 90
    functionLinenumberEnd: 110
    functionName: fu_vli_usbhub_device_read_reg
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_prefix_error
    - fu_usb_device_control_transfer
    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:115,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:115,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - addr
    - value
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - guint16
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 132
    functionName: fu_vli_usbhub_device_write_reg
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_prefix_error
    - fu_usb_device_control_transfer
    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:138,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:138,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:143,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuVliDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 134
    functionDepth: 4
    functionLinenumber: 134
    functionLinenumberEnd: 156
    functionName: fu_vli_usbhub_device_spi_read_status
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_vli_device_get_cfi_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:168,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:168,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:175,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:175,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: 188
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 188
    functionName: fu_vli_usbhub_device_spi_read_data
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_vli_device_get_cfi_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:194,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:194,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:199,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:199,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:216,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuVliDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 218
    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_device_sleep
    - fu_cfi_device_get_cmd
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    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:224,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:224,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:229,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:229,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 246
    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
    - fu_cfi_device_get_cmd
    - g_prefix_error_literal
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    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:252,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:252,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:257,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 248
    functionDepth: 4
    functionLinenumber: 248
    functionLinenumberEnd: 273
    functionName: fu_vli_usbhub_device_spi_chip_erase
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_vli_device_get_cfi_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:281,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:281,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:288,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 301
    functionName: fu_vli_usbhub_device_spi_sector_erase
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_vli_device_get_cfi_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:315,1
    - Dst: fu_vli_device_get_cfi_device
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:315,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:322,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:325,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:325,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:342,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:342,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: 344
      start: 303
    functionDepth: 4
    functionLinenumber: 303
    functionLinenumberEnd: 344
    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_device_sleep
    - fu_cfi_device_get_cmd
    - FU_DEVICE
    - fu_memdup_safe
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    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:353,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:354,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:357,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:358,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:358,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:359,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:360,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:361,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:362,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:364,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:367,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:368,1
    - Dst: fwupd_request_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:368,1
    - Dst: fwupd_request_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:369,1
    - Dst: fwupd_request_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:370,1
    - Dst: fwupd_request_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:371,1
    - Dst: fu_device_emit_request
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:372,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:374,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:379,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:379,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:380,1
    - Dst: g_info
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:384,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:384,1
    - Dst: fu_vli_usbhub_device_read_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_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:390,1
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:390,1
    - Dst: fu_vli_usbhub_device_read_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_vli_usbhub_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:402,1
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:402,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:409,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:409,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:409,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:422,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:423,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:424,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:425,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:426,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:428,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:429,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:437,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 350
    functionDepth: 6
    functionLinenumber: 350
    functionLinenumberEnd: 439
    functionName: fu_vli_usbhub_device_attach
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fwupd_request_set_kind
    - fwupd_request_add_flag
    - fu_vli_device_get_kind
    - fu_vli_usbhub_device_read_reg
    - g_debug
    - fu_usb_device_control_transfer
    - FU_VLI_DEVICE
    - fwupd_request_new
    - FU_VLI_USBHUB_DEVICE
    - g_info
    - fu_device_get_proxy_with_fallback
    - fwupd_request_set_id
    - fu_device_emit_request
    - FU_USB_DEVICE
    - fu_vli_usbhub_device_write_reg
    - g_steal_pointer
    - fu_device_has_private_flag
    - fu_device_get_id
    - g_error_matches
    - g_autoptr
    - g_propagate_prefixed_error
    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:449,1
    - Dst: fu_vli_usbhub_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:452,1
    - Dst: fu_vli_usbhub_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:456,1
    - Dst: fu_vli_usbhub_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:459,1
    - Dst: fu_vli_usbhub_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:463,1
    - Dst: fu_vli_usbhub_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:466,1
    - Dst: fu_vli_usbhub_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:470,1
    - Dst: fu_vli_usbhub_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:473,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 442
    functionDepth: 5
    functionLinenumber: 442
    functionLinenumberEnd: 476
    functionName: fu_vli_usbhub_device_disable_u1u2
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_usbhub_device_write_reg
    - fu_vli_usbhub_device_read_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:489,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:489,1
    - Dst: fu_vli_usbhub_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:491,1
    - Dst: g_prefix_error_literal
      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_literal
      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_literal
      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_literal
      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_literal
      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_literal
      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_literal
      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_usbhub_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:526,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:527,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:530,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:533,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:533,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: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:570,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:570,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:574,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:582,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:582,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:585,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:585,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:589,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:589,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:591,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:591,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: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:595,1
    - Dst: FU_VLI_DEVICE
      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:598,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:598,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:600,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:608,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:608,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:610,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:610,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:612,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:612,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:614,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:614,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:616,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:616,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:623,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:623,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: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:630,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:630,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:632,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:632,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:634,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 134
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 478
    functionDepth: 5
    functionLinenumber: 478
    functionLinenumberEnd: 643
    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_debug
    - g_set_error_literal
    - g_prefix_error_literal
    - 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:648,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:649,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:649,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:652,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:653,1
    - Dst: fu_device_set_priority
      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:658,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:659,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:661,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:665,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:666,1
    - Dst: fu_device_add_request_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:667,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:667,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 672
    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_has_private_flag
    - FU_DEVICE
    - fu_device_set_priority
    - fu_device_set_summary
    - fu_device_add_request_flag
    - fu_usb_device_get_spec
    - FU_USB_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_probe(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:677,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:678,1
    - Dst: fu_vli_usbhub_pd_device_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:681,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:681,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:682,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:682,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:683,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:684,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:686,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:690,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:690,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 674
    functionDepth: 5
    functionLinenumber: 674
    functionLinenumberEnd: 692
    functionName: fu_vli_usbhub_device_pd_setup
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_debug
    - fu_device_setup
    - fu_vli_usbhub_pd_device_new
    - FU_DEVICE
    - g_warning
    - g_error_matches
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_pd_setup(FuVliUsbhubDevice *self, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:697,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:698,1
    - Dst: fu_vli_usbhub_msp430_device_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:701,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:701,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:702,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:702,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:703,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:704,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:706,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:710,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:710,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 694
    functionDepth: 5
    functionLinenumber: 694
    functionLinenumberEnd: 712
    functionName: fu_vli_usbhub_device_msp430_setup
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_debug
    - fu_device_setup
    - fu_vli_usbhub_msp430_device_new
    - FU_DEVICE
    - g_warning
    - g_error_matches
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_msp430_setup(FuVliUsbhubDevice *self,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:717,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:718,1
    - Dst: fu_vli_usbhub_rtd21xx_device_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:721,1
    - Dst: FU_DEVICE
      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:722,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:722,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:723,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:724,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:726,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:730,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:730,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:730,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 714
    functionDepth: 5
    functionLinenumber: 714
    functionLinenumberEnd: 732
    functionName: fu_vli_usbhub_device_rtd21xx_setup
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_debug
    - fu_device_setup
    - fu_vli_usbhub_rtd21xx_device_new
    - FU_DEVICE
    - g_warning
    - g_error_matches
    - 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:737,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:738,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:741,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:745,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:745,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:748,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:749,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:749,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:754,1
    - Dst: fu_vli_usbhub_device_vdr_unlock_813
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:755,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:757,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:757,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:762,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:765,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:767,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:767,1
    - Dst: fu_vli_usbhub_device_guess_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:769,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:774,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:774,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:779,1
    - Dst: fu_struct_vli_usbhub_hdr_get_dev_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:784,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:789,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:789,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_set_install_duration
      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_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:803,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:803,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_set_install_duration
      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_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:811,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:811,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_set_install_duration
      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: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:818,1
    - Dst: fu_struct_vli_usbhub_hdr_get_dev_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:822,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:828,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:828,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:833,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:839,1
    - Dst: fu_vli_usbhub_device_pd_setup
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:840,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:845,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:845,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:846,1
    - Dst: fu_vli_usbhub_device_msp430_setup
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:847,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:850,1
    - Dst: fu_vli_usbhub_device_rtd21xx_setup
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:851,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 77
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 734
    functionDepth: 6
    functionLinenumber: 734
    functionLinenumberEnd: 857
    functionName: fu_vli_usbhub_device_ready
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_struct_vli_usbhub_hdr_get_dev_id
    - fu_vli_usbhub_device_vdr_unlock_813
    - fu_vli_usbhub_device_pd_setup
    - fu_vli_device_spi_read_block
    - fu_vli_usbhub_device_msp430_setup
    - g_debug
    - g_prefix_error_literal
    - fu_vli_device_set_kind
    - FU_VLI_DEVICE
    - fu_vli_usbhub_device_rtd21xx_setup
    - FU_VLI_USBHUB_DEVICE
    - fu_vli_usbhub_device_guess_kind
    - fu_device_sleep
    - FU_DEVICE
    - g_warning
    - fu_usb_device_get_spec
    - FU_USB_DEVICE
    - FU_DEVICE_CLASS
    - g_set_error
    - fu_device_has_private_flag
    - fu_device_set_install_duration
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_ready(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:865,1
    - Dst: fu_vli_usbhub_firmware_get_device_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:869,1
    - Dst: FU_VLI_USBHUB_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:869,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:870,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:870,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:871,1
    - Dst: fu_vli_device_kind_to_string
      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:877,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:877,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:877,1
    - Dst: fu_struct_vli_usbhub_hdr_get_dev_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:880,1
    - Dst: fu_vli_usbhub_firmware_get_device_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:881,1
    - Dst: FU_VLI_USBHUB_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:881,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:882,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: fu_struct_vli_usbhub_hdr_get_dev_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:887,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 893
    functionName: fu_vli_usbhub_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_get_kind
    - fu_vli_device_kind_to_string
    - FU_VLI_USBHUB_DEVICE
    - fu_struct_vli_usbhub_hdr_get_dev_id
    - g_set_error
    - fu_vli_usbhub_firmware_get_device_id
    - FU_VLI_USBHUB_FIRMWARE
    - fu_vli_usbhub_firmware_get_device_kind
    - FU_VLI_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_device_check_firmware(FuDevice *device,\n\t\t\t\t
      \   FuFirmware *firmware,\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:903,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:906,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:907,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:908,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:909,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:912,1
    - Dst: fu_vli_device_spi_erase_all
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:917,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:917,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:918,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:920,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:923,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:926,1
    - Dst: fu_vli_device_spi_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:927,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:927,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:931,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:936,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 895
    functionDepth: 4
    functionLinenumber: 895
    functionLinenumberEnd: 938
    functionName: fu_vli_usbhub_device_update_v1
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_spi_erase_all
    - fu_firmware_get_bytes
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_progress_add_flag
    - fu_progress_step_done
    - g_prefix_error_literal
    - FU_VLI_DEVICE
    - fu_vli_device_spi_write
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:948,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:951,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:952,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:953,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:954,1
    - Dst: fu_vli_device_spi_erase_sector
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:958,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:958,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:959,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:962,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:962,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:966,1
    - Dst: fu_vli_device_spi_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:969,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:969,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:973,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:976,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 941
    functionDepth: 4
    functionLinenumber: 941
    functionLinenumberEnd: 980
    functionName: fu_vli_usbhub_device_update_v2_recovery
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_spi_write
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_progress_add_flag
    - fu_progress_step_done
    - g_prefix_error
    - fu_vli_device_spi_erase_sector
    - FU_VLI_DEVICE
    - fu_progress_set_percentage_full
    - fu_progress_get_child
    - fu_progress_set_id
    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:985,1
    - Dst: fu_struct_vli_usbhub_hdr_get_checksum
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:987,1
    - Dst: fu_vli_usbhub_device_header_crc8
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:988,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - st_hdr
    argTypes:
    - FuStructVliUsbhubHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 982
    functionDepth: 5
    functionLinenumber: 982
    functionLinenumberEnd: 991
    functionName: fu_vli_usbhub_device_hd1_is_valid
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_vli_usbhub_hdr_get_prev_ptr
    - fu_struct_vli_usbhub_hdr_get_checksum
    - fu_vli_usbhub_device_header_crc8
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_device_hd1_is_valid(FuStructVliUsbhubHdr *st_hdr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_vli_usbhub_hdr_get_next_ptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1000,1
    - Dst: fu_struct_vli_usbhub_hdr_set_next_ptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1001,1
    - Dst: fu_struct_vli_usbhub_hdr_set_checksum
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1002,1
    - Dst: fu_vli_usbhub_device_header_crc8
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1004,1
    - Dst: fu_vli_device_spi_erase_sector
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1008,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1008,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1011,1
    - Dst: fu_vli_device_spi_write_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1016,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1016,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1022,1
    - Dst: fu_struct_vli_usbhub_hdr_unref
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1029,1
    - Dst: fu_struct_vli_usbhub_hdr_ref
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1030,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - self
    - st_hdr
    - progress
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - FuStructVliUsbhubHdr*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 993
    functionDepth: 5
    functionLinenumber: 993
    functionLinenumberEnd: 1032
    functionName: fu_vli_usbhub_device_hd1_recover
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_spi_write_block
    - g_prefix_error
    - fu_struct_vli_usbhub_hdr_ref
    - fu_vli_usbhub_device_header_crc8
    - fu_struct_vli_usbhub_hdr_set_checksum
    - fu_struct_vli_usbhub_hdr_set_next_ptr
    - fu_struct_vli_usbhub_hdr_get_next_ptr
    - fu_vli_device_spi_erase_sector
    - fu_struct_vli_usbhub_hdr_unref
    - FU_VLI_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_device_hd1_recover(FuVliUsbhubDevice *self,\n\t\t\t\t
      FuStructVliUsbhubHdr *st_hdr,\n\t\t\t\t FuProgress *progress,\n\t\t\t\t GError
      **error)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1046,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1047,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1050,1
    - Dst: fu_vli_usbhub_device_hd1_is_valid
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1055,1
    - Dst: fu_struct_vli_usbhub_hdr_get_next_ptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1057,1
    - Dst: fu_vli_device_spi_erase_sector
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1060,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1060,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1063,1
    - Dst: fu_vli_device_spi_write_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1066,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1066,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1072,1
    - Dst: fu_vli_usbhub_device_hd1_recover
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1075,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1079,1
    - Dst: g_info
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1086,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1087,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1087,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1092,1
    - Dst: fu_vli_usbhub_device_hd1_is_valid
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1097,1
    - Dst: g_info
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1098,1
    - Dst: fu_vli_usbhub_device_update_v2_recovery
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1099,1
    - Dst: fu_vli_usbhub_device_hd1_recover
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1101,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1102,1
    - Dst: fu_struct_vli_usbhub_hdr_get_usb3_fw_sz
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1108,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1110,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1121,1
    - Dst: fu_struct_vli_usbhub_hdr_parse
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1122,1
    - Dst: fu_struct_vli_usbhub_hdr_get_usb3_fw_sz
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1125,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1127,1
    - Dst: fu_struct_vli_usbhub_hdr_get_usb3_fw_addr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1134,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1136,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1145,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1148,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1149,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1150,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1151,1
    - Dst: fu_vli_device_spi_erase
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1154,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1154,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1157,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1160,1
    - Dst: fu_vli_device_spi_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1163,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1163,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1167,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1169,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1172,1
    - Dst: fu_struct_vli_usbhub_hdr_set_usb3_fw_addr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1175,1
    - Dst: fu_struct_vli_usbhub_hdr_set_usb3_fw_addr_high
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1176,1
    - Dst: fu_struct_vli_usbhub_hdr_set_prev_ptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1177,1
    - Dst: fu_struct_vli_usbhub_hdr_set_next_ptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1178,1
    - Dst: fu_struct_vli_usbhub_hdr_set_checksum
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1179,1
    - Dst: fu_vli_usbhub_device_header_crc8
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1179,1
    - Dst: fu_vli_device_spi_erase_sector
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1180,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1180,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1183,1
    - Dst: fu_vli_device_spi_write_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1186,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1186,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1190,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1192,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1195,1
    - Dst: fu_struct_vli_usbhub_hdr_unref
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1198,1
    - Dst: fu_struct_vli_usbhub_hdr_ref
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1199,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 87
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1034
    functionDepth: 6
    functionLinenumber: 1034
    functionLinenumberEnd: 1201
    functionName: fu_vli_usbhub_device_update_v2
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_spi_write_block
    - fu_struct_vli_usbhub_hdr_get_usb3_fw_addr
    - fu_struct_vli_usbhub_hdr_ref
    - fu_struct_vli_usbhub_hdr_set_usb3_fw_addr
    - fu_vli_device_spi_erase
    - fu_vli_device_spi_read_block
    - g_debug
    - fu_firmware_get_bytes
    - g_prefix_error_literal
    - fu_struct_vli_usbhub_hdr_get_next_ptr
    - FU_VLI_DEVICE
    - fu_struct_vli_usbhub_hdr_get_usb3_fw_sz
    - g_info
    - fu_progress_add_step
    - fu_struct_vli_usbhub_hdr_set_prev_ptr
    - g_bytes_get_data
    - fu_progress_step_done
    - fu_struct_vli_usbhub_hdr_parse
    - fu_vli_usbhub_device_hd1_is_valid
    - fu_struct_vli_usbhub_hdr_set_checksum
    - fu_struct_vli_usbhub_hdr_unref
    - fu_vli_device_spi_erase_sector
    - fu_vli_device_spi_write
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_struct_vli_usbhub_hdr_set_usb3_fw_addr_high
    - g_set_error
    - g_prefix_error
    - fu_vli_usbhub_device_hd1_recover
    - fu_vli_usbhub_device_update_v2_recovery
    - fu_vli_usbhub_device_header_crc8
    - fu_struct_vli_usbhub_hdr_set_next_ptr
    - g_autoptr
    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: 18
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1214,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1215,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1218,1
    - Dst: fu_vli_usbhub_device_hd1_is_valid
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1223,1
    - Dst: fu_struct_vli_usbhub_hdr_get_next_ptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1225,1
    - Dst: fu_vli_device_spi_erase_sector
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1228,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1228,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1231,1
    - Dst: fu_vli_device_spi_write_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1234,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1234,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1240,1
    - Dst: fu_vli_usbhub_device_hd1_recover
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1243,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1247,1
    - Dst: g_info
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1254,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1255,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1255,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1260,1
    - Dst: fu_vli_usbhub_device_hd1_is_valid
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1265,1
    - Dst: g_info
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1266,1
    - Dst: fu_vli_usbhub_device_update_v2_recovery
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1267,1
    - Dst: fu_vli_usbhub_device_hd1_recover
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1269,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1270,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1276,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1276,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1282,1
    - Dst: fu_struct_vli_usbhub_hdr_parse
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1283,1
    - Dst: fu_struct_vli_usbhub_hdr_get_usb3_fw_sz_high
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1286,1
    - Dst: fu_struct_vli_usbhub_hdr_get_usb3_fw_sz
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1287,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1289,1
    - Dst: fu_struct_vli_usbhub_hdr_get_usb3_fw_addr_high
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1296,1
    - Dst: fu_struct_vli_usbhub_hdr_get_usb3_fw_addr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1297,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1299,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1308,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1311,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1312,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1313,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1314,1
    - Dst: fu_vli_device_spi_erase
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1317,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1317,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1320,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1323,1
    - Dst: fu_vli_device_spi_write
      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: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1330,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1332,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1335,1
    - Dst: fu_struct_vli_usbhub_hdr_set_usb3_fw_addr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1338,1
    - Dst: fu_struct_vli_usbhub_hdr_set_usb3_fw_addr_high
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1339,1
    - Dst: fu_struct_vli_usbhub_hdr_set_prev_ptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1340,1
    - Dst: fu_struct_vli_usbhub_hdr_set_next_ptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1341,1
    - Dst: fu_struct_vli_usbhub_hdr_set_checksum
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1342,1
    - Dst: fu_vli_usbhub_device_header_crc8
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1342,1
    - Dst: fu_vli_device_spi_erase_sector
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1343,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1343,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1346,1
    - Dst: fu_vli_device_spi_write_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1349,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1349,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1353,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1355,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1358,1
    - Dst: fu_struct_vli_usbhub_hdr_unref
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1361,1
    - Dst: fu_struct_vli_usbhub_hdr_ref
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1362,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 85
    argCount: 4
    argNames:
    - self
    - firmware
    - progress
    - error
    argTypes:
    - FuVliUsbhubDevice*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1203
    functionDepth: 6
    functionLinenumber: 1203
    functionLinenumberEnd: 1364
    functionName: fu_vli_usbhub_device_update_v3
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_spi_write_block
    - fu_struct_vli_usbhub_hdr_get_usb3_fw_addr
    - fu_struct_vli_usbhub_hdr_ref
    - fu_struct_vli_usbhub_hdr_set_usb3_fw_addr
    - fu_vli_device_spi_erase
    - fu_vli_device_spi_read_block
    - fu_vli_device_get_kind
    - g_debug
    - fu_firmware_get_bytes
    - g_prefix_error_literal
    - fu_struct_vli_usbhub_hdr_get_next_ptr
    - FU_VLI_DEVICE
    - fu_struct_vli_usbhub_hdr_get_usb3_fw_sz
    - g_info
    - fu_progress_add_step
    - fu_struct_vli_usbhub_hdr_set_prev_ptr
    - g_bytes_get_data
    - fu_progress_step_done
    - fu_struct_vli_usbhub_hdr_parse
    - fu_vli_usbhub_device_hd1_is_valid
    - fu_struct_vli_usbhub_hdr_set_checksum
    - fu_struct_vli_usbhub_hdr_unref
    - fu_vli_device_spi_erase_sector
    - fu_vli_device_spi_write
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_struct_vli_usbhub_hdr_set_usb3_fw_addr_high
    - fu_struct_vli_usbhub_hdr_get_usb3_fw_sz_high
    - g_set_error
    - fu_struct_vli_usbhub_hdr_get_usb3_fw_addr_high
    - g_prefix_error
    - fu_vli_usbhub_device_hd1_recover
    - fu_vli_usbhub_device_update_v2_recovery
    - fu_vli_usbhub_device_header_crc8
    - fu_struct_vli_usbhub_hdr_set_next_ptr
    - g_autoptr
    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:1369,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1370,1
    - Dst: fu_vli_device_spi_read
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1371,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1371,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1366
    functionDepth: 1
    functionLinenumber: 1366
    functionLinenumberEnd: 1376
    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_vli_device_spi_read
    - fu_device_get_firmware_size_max
    - fu_progress_set_status
    - FU_VLI_DEVICE
    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:1385,1
    - Dst: fu_vli_usbhub_device_disable_u1u2
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1389,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1390,1
    - Dst: fu_vli_usbhub_device_update_v1
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1397,1
    - Dst: fu_vli_usbhub_device_update_v2
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1399,1
    - Dst: fu_vli_usbhub_device_update_v3
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1401,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1404,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: 1410
      start: 1378
    functionDepth: 7
    functionLinenumber: 1378
    functionLinenumberEnd: 1410
    functionName: fu_vli_usbhub_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - g_set_error
    - fu_vli_usbhub_device_update_v2
    - fu_vli_usbhub_device_disable_u1u2
    - fu_vli_usbhub_device_update_v3
    - g_prefix_error_literal
    - fu_vli_usbhub_device_update_v1
    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:1415,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1416,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1417,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1418,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1419,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1412
    functionDepth: 3
    functionLinenumber: 1412
    functionLinenumberEnd: 1421
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_vli_usbhub_hdr_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1426,1
    - Dst: fu_struct_vli_usbhub_hdr_new
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1427,1
    - Dst: fu_device_add_icon
      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
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1429,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1429,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1430,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1430,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1431,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1431,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1432,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1432,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1433,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1433,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1434,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1434,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1436,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1436,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1437,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1437,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1438,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1438,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1440,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1440,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1442,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1442,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1443,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1443,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1444,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1444,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1446,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliUsbhubDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1423
    functionDepth: 3
    functionLinenumber: 1423
    functionLinenumberEnd: 1448
    functionName: fu_vli_usbhub_device_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_struct_vli_usbhub_hdr_new
    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:1453,1
    - Dst: fu_struct_vli_usbhub_hdr_unref
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1454,1
    - Dst: fu_struct_vli_usbhub_hdr_unref
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1455,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1450
    functionDepth: 0
    functionLinenumber: 1450
    functionLinenumberEnd: 1457
    functionName: fu_vli_usbhub_device_finalize
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_USBHUB_DEVICE
    - fu_struct_vli_usbhub_hdr_unref
    - G_OBJECT_CLASS
    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:1462,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1463,1
    - Dst: FU_VLI_DEVICE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-device.c:1464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliUsbhubDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1459
    functionDepth: 0
    functionLinenumber: 1459
    functionLinenumberEnd: 1481
    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:
    - fu_vli_pd_common_guess_device_kind
    - g_assert_cmpint
    - g_debug
    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_test_add_func
      Src: /src/fwupd/plugins/vli/fu-self-test.c:42,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/vli/fu-self-test.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: main
    functionSourceFile: /src/fwupd/plugins/vli/fu-self-test.c
    functionUses: 5
    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: 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:
    - g_return_val_if_fail
    - FU_IS_VLI_USBHUB_FIRMWARE
    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:
    - g_return_val_if_fail
    - FU_IS_VLI_USBHUB_FIRMWARE
    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_literal
      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_literal
      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_literal
      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_literal
      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_literal
      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_literal
      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_literal
      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: 4
    functionLinenumber: 44
    functionLinenumberEnd: 127
    functionName: fu_vli_usbhub_firmware_parse_version
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u8
    - fu_firmware_set_version_raw
    - fu_input_stream_read_u16
    - g_set_error
    - FU_FIRMWARE
    - g_prefix_error_literal
    - fu_input_stream_read_u24
    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_literal
      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_literal
      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_literal
      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_literal
      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_literal
      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_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:228,1
    - Dst: g_set_error_literal
      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:270,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:271,1
    - Dst: fu_input_stream_read_u24
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:304,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:309,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:313,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:319,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:323,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:340,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 141
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 129
    functionDepth: 5
    functionLinenumber: 129
    functionLinenumberEnd: 349
    functionName: fu_vli_usbhub_firmware_parse
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u8
    - fu_struct_vli_usbhub_hdr_get_dev_id
    - fu_input_stream_read_u16
    - fu_struct_vli_usbhub_hdr_get_usb3_fw_addr
    - g_set_error_literal
    - FU_VLI_USBHUB_FIRMWARE
    - fu_struct_vli_usbhub_hdr_parse_stream
    - g_prefix_error_literal
    - fu_input_stream_read_u24
    - fu_struct_vli_usbhub_hdr_get_strapping1
    - fu_struct_vli_usbhub_hdr_get_usb2_fw_addr
    - g_autoptr
    - 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:354,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 355
    functionName: fu_vli_usbhub_firmware_convert_version
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16
    - fu_firmware_get_version_format
    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:360,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:360,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:361,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliUsbhubFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 362
    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
    - fu_firmware_set_size_max
    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:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliUsbhubFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 371
    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: 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_context_add_quirk_key
      Src: /src/fwupd/plugins/vli/fu-vli-plugin.c:37,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/vli/fu-vli-plugin.c:38,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/vli/fu-vli-plugin.c:39,1
    - Dst: fu_plugin_add_firmware_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
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/vli/fu-vli-plugin.c:45,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/vli/fu-vli-plugin.c:46,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-plugin.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 50
    functionName: fu_vli_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_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:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:42,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:45,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:45,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:51,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:60,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:61,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:61,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:74,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:77,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - self
    - target_addr
    - sub_addr
    - data
    - datasz
    - error
    argTypes:
    - FuVliUsbhubRtd21xxDevice*
    - guint8
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 79
    functionName: fu_vli_usbhub_rtd21xx_device_i2c_write
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_device_get_proxy
    - g_prefix_error
    - g_malloc0
    - FU_DEVICE
    - fu_memcpy_safe
    - FU_USB_DEVICE
    - fu_dump_raw
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_rtd21xx_device_i2c_write(FuVliUsbhubRtd21xxDevice
      *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_device_get_proxy
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:92,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:92,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:95,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:95,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:108,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - self
    - target_addr
    - sub_addr
    - data
    - datasz
    - error
    argTypes:
    - FuVliUsbhubRtd21xxDevice*
    - guint8
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 113
    functionName: fu_vli_usbhub_rtd21xx_device_i2c_read
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_dump_raw
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_rtd21xx_device_i2c_read(FuVliUsbhubRtd21xxDevice
      *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_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuVliUsbhubRtd21xxDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 115
    functionDepth: 5
    functionLinenumber: 115
    functionLinenumberEnd: 132
    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_rtd21xx_device_i2c_read
    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:137,1
    - Dst: fu_vli_usbhub_rtd21xx_device_read_status_raw
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:139,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 6
    functionLinenumber: 134
    functionLinenumberEnd: 146
    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:153,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuVliUsbhubRtd21xxDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 148
    functionDepth: 4
    functionLinenumber: 148
    functionLinenumberEnd: 158
    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_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:167,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:173,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:178,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:178,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:179,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:185,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:190,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:191,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliUsbhubRtd21xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 160
    functionDepth: 5
    functionLinenumber: 160
    functionLinenumberEnd: 193
    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_rtd21xx_device_i2c_write
    - fu_device_set_version
    - fu_device_sleep
    - g_prefix_error_literal
    - fu_vli_usbhub_rtd21xx_device_i2c_read
    - FU_DEVICE
    - g_strdup_printf
    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:198,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:199,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:202,1
    - Dst: fu_vli_usbhub_rtd21xx_device_ensure_version_unlocked
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 195
    functionDepth: 6
    functionLinenumber: 195
    functionLinenumberEnd: 213
    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_ensure_version_unlocked
    - g_autoptr
    - FU_VLI_USBHUB_RTD21XX_DEVICE
    - 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_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:220,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliUsbhubRtd21xxDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 215
    functionDepth: 5
    functionLinenumber: 215
    functionLinenumberEnd: 225
    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_rtd21xx_device_i2c_write
    - g_prefix_error_literal
    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:230,1
    - Dst: fu_vli_usbhub_rtd21xx_device_detach_raw
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:232,1
    - Dst: fu_vli_usbhub_rtd21xx_device_read_status_raw
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:234,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 227
    functionDepth: 6
    functionLinenumber: 227
    functionLinenumberEnd: 245
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:250,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 247
    functionDepth: 6
    functionLinenumber: 247
    functionLinenumberEnd: 256
    functionName: fu_vli_usbhub_rtd21xx_device_detach
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry
    - fu_device_add_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_rtd21xx_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:261,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:264,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:270,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 258
    functionDepth: 5
    functionLinenumber: 258
    functionLinenumberEnd: 277
    functionName: fu_vli_usbhub_rtd21xx_device_attach
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_usbhub_rtd21xx_device_i2c_write
    - g_prefix_error_literal
    - FU_VLI_USBHUB_RTD21XX_DEVICE
    - fu_device_remove_flag
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_rtd21xx_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_RTD21XX_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:286,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:291,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:292,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:295,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:296,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:297,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:298,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:299,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:302,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:309,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:315,1
    - Dst: fu_vli_usbhub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:318,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:323,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:329,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:334,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:335,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:341,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:345,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:354,1
    - Dst: fu_input_stream_read_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:363,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:370,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:373,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:379,1
    - Dst: fu_vli_usbhub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:382,1
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:387,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:388,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:394,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:397,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:400,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:407,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:408,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:411,1
    - Dst: fu_vli_usbhub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:414,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:416,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:419,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:420,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:422,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:424,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:429,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:429,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:431,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:433,1
    - Dst: fu_vli_usbhub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:436,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:439,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:445,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:448,1
    - Dst: fu_vli_usbhub_rtd21xx_device_read_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:451,1
    - Dst: fu_vli_usbhub_rtd21xx_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:454,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:460,1
    - Dst: fu_device_sleep_full
      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
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 89
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 279
    functionDepth: 5
    functionLinenumber: 279
    functionLinenumberEnd: 471
    functionName: fu_vli_usbhub_rtd21xx_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - fu_chunk_get_data_sz
    - fu_progress_add_flag
    - fu_device_sleep_full
    - fu_vli_usbhub_rtd21xx_device_read_status
    - fu_memread_uint32_safe
    - fu_chunk_get_data_out
    - g_prefix_error_literal
    - fu_chunk_array_new_from_stream
    - fu_progress_set_percentage_full
    - fu_input_stream_read_safe
    - fu_progress_add_step
    - fu_device_sleep
    - fu_progress_step_done
    - FU_VLI_USBHUB_RTD21XX_DEVICE
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_chunk_get_address
    - fu_vli_usbhub_rtd21xx_device_i2c_write
    - fu_firmware_get_stream
    - g_set_error
    - fu_chunk_array_index
    - fu_vli_usbhub_rtd21xx_device_i2c_read
    - g_prefix_error
    - g_autoptr
    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_device_get_proxy
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:479,1
    - Dst: fu_vli_usbhub_rtd21xx_device_setup
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 473
    functionDepth: 7
    functionLinenumber: 473
    functionLinenumberEnd: 483
    functionName: fu_vli_usbhub_rtd21xx_device_reload
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_usbhub_rtd21xx_device_setup
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_rtd21xx_device_reload(FuDevice *device, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:491,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:494,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:494,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:495,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:498,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:498,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 485
    functionDepth: 9
    functionLinenumber: 485
    functionLinenumberEnd: 500
    functionName: fu_vli_usbhub_rtd21xx_device_probe
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_kind_to_string
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - fu_device_incorporate
    - fu_device_set_name
    - fu_device_get_proxy
    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:505,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:506,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:507,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:508,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:509,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:510,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 502
    functionDepth: 3
    functionLinenumber: 502
    functionLinenumberEnd: 512
    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_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_rtd21xx_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:517,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:517,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:518,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:518,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:519,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:519,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:520,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:520,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:521,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:521,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:522,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:522,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:523,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:523,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:524,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:524,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:525,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:525,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:526,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:526,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:527,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliUsbhubRtd21xxDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 514
    functionDepth: 6
    functionLinenumber: 514
    functionLinenumberEnd: 528
    functionName: fu_vli_usbhub_rtd21xx_device_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_logical_id
    - fu_device_retry_set_delay
    - fu_device_add_icon
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliUsbhubRtd21xxDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 541
    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:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 547
    functionName: fu_vli_usbhub_rtd21xx_device_new
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-rtd21xx-device.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuVliUsbhubRtd21xxDevice
    signature: 'FuVliUsbhubRtd21xxDevice *

      fu_vli_usbhub_rtd21xx_device_new(FuDevice *proxy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    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: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    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:
    - g_return_val_if_fail
    - FU_IS_VLI_PD_FIRMWARE
    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: 10
    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_literal
      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: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:74,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:77,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:83,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:88,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:91,1
    - Dst: fu_input_stream_compute_crc16
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:94,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 37
    functionDepth: 4
    functionLinenumber: 37
    functionLinenumberEnd: 112
    functionName: fu_vli_pd_firmware_parse
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c
    functionUses: 0
    functionsReached:
    - FU_VLI_PD_FIRMWARE
    - fu_firmware_set_version_raw
    - fu_input_stream_read_u16
    - g_set_error
    - fu_input_stream_size
    - fu_struct_vli_pd_hdr_parse_stream
    - g_set_error_literal
    - fu_input_stream_compute_crc16
    - g_prefix_error_literal
    - fu_vli_pd_common_guess_device_kind
    - fu_struct_vli_pd_hdr_get_fwver
    - g_autoptr
    - 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:117,1
    - Dst: fu_firmware_get_version_format
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - firmware
    - version_raw
    argTypes:
    - FuFirmware*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 118
    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:123,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:123,1
    - Dst: fu_firmware_set_version_format
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:124,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:124,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:125,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliPdFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 126
    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
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliPdFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 135
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:44,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:44,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:47,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:47,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:60,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - self
    - cmd
    - buf
    - bufsz
    - error
    argTypes:
    - FuVliUsbhubMsp430Device*
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 65
    functionName: fu_vli_usbhub_msp430_device_i2c_read
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - fu_dump_raw
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_msp430_device_i2c_read(FuVliUsbhubMsp430Device
      *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:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuVliUsbhubMsp430Device*
    - FuVliUsbhubI2cStatus*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 5
    functionLinenumber: 67
    functionLinenumberEnd: 83
    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(FuVliUsbhubMsp430Device
      *self,\n\t\t\t\t\t    FuVliUsbhubI2cStatus *status,\n\t\t\t\t\t    GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:97,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:98,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:101,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:101,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:104,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:104,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - self
    - disable_start_bit
    - disable_end_bit
    - buf
    - bufsz
    - error
    argTypes:
    - FuVliUsbhubMsp430Device*
    - guint8
    - guint8
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 121
    functionName: fu_vli_usbhub_msp430_device_i2c_write_data
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - FU_DEVICE
    - fu_device_get_proxy
    - fu_memdup_safe
    - FU_USB_DEVICE
    - fu_dump_raw
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_msp430_device_i2c_write_data(FuVliUsbhubMsp430Device
      *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_MSP430_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:126,1
    - Dst: fu_vli_usbhub_msp430_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:131,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:136,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:141,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:149,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:150,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 123
    functionDepth: 5
    functionLinenumber: 123
    functionLinenumberEnd: 152
    functionName: fu_vli_usbhub_msp430_device_setup
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_set_error_literal
    - g_prefix_error_literal
    - g_strdup_printf
    - FU_VLI_USBHUB_MSP430_DEVICE
    - fu_vli_usbhub_msp430_device_i2c_read
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_msp430_device_setup(FuDevice *device, GError
      **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_MSP430_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:157,1
    - Dst: fu_vli_usbhub_msp430_device_i2c_write_data
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:165,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:169,1
    - Dst: fu_vli_usbhub_msp430_device_i2c_read_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:172,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:173,1
    - Dst: fu_vli_usbhub_i2c_check_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 154
    functionDepth: 6
    functionLinenumber: 154
    functionLinenumberEnd: 177
    functionName: fu_vli_usbhub_msp430_device_detach
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_usbhub_msp430_device_i2c_write_data
    - fu_device_sleep_full
    - g_prefix_error_literal
    - FU_VLI_USBHUB_MSP430_DEVICE
    - fu_vli_usbhub_msp430_device_i2c_read_status
    - fu_vli_usbhub_i2c_check_status
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_msp430_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_MSP430_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:189,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:194,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:195,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:195,1
    - Dst: fu_usb_device_get_spec
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:198,1
    - Dst: FU_USB_DEVICE
      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:199,1
    - Dst: fu_vli_usbhub_msp430_device_i2c_write_data
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:208,1
    - Dst: fu_vli_usbhub_msp430_device_i2c_write_data
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:210,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:224,1
    - Dst: fu_vli_usbhub_msp430_device_i2c_read_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:225,1
    - Dst: fu_vli_usbhub_i2c_check_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:227,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 186
    functionDepth: 6
    functionLinenumber: 186
    functionLinenumberEnd: 228
    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_msp430_device_i2c_write_data
    - fu_device_sleep
    - FU_DEVICE
    - FU_VLI_USBHUB_MSP430_DEVICE
    - fu_usb_device_get_spec
    - fu_device_get_proxy
    - fu_vli_usbhub_msp430_device_i2c_read_status
    - FU_USB_DEVICE
    - fu_vli_usbhub_i2c_check_status
    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_ihex_firmware_get_records
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:238,1
    - Dst: FU_IHEX_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:238,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:241,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:246,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:247,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:248,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:250,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:257,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:270,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:272,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:274,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:277,1
    - Dst: fu_firmware_strparse_uint8_safe
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:284,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:293,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:299,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:303,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 230
    functionDepth: 6
    functionLinenumber: 230
    functionLinenumberEnd: 307
    functionName: fu_vli_usbhub_msp430_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 0
    functionsReached:
    - fu_ihex_firmware_get_records
    - fu_device_add_flag
    - fu_firmware_strparse_uint8_safe
    - FU_IHEX_FIRMWARE
    - g_set_error
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_device_get_proxy
    - fu_device_retry
    - fu_progress_set_status
    - g_ptr_array_index
    - fu_progress_set_id
    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_device_get_proxy
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:315,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:318,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:318,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:319,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:322,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:322,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 309
    functionDepth: 9
    functionLinenumber: 309
    functionLinenumberEnd: 324
    functionName: fu_vli_usbhub_msp430_device_probe
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_kind_to_string
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - fu_device_incorporate
    - fu_device_set_name
    - fu_device_get_proxy
    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:329,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:330,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:331,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:332,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:333,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 326
    functionDepth: 3
    functionLinenumber: 326
    functionLinenumberEnd: 335
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:340,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:340,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:341,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:341,1
    - Dst: fu_device_add_flag
      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
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:343,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:343,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:344,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:344,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:345,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:345,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:346,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:346,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:347,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:347,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:348,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:348,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:349,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:349,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:350,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:350,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:353,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliUsbhubMsp430Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 337
    functionDepth: 6
    functionLinenumber: 337
    functionLinenumberEnd: 354
    functionName: fu_vli_usbhub_msp430_device_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_logical_id
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliUsbhubMsp430DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 365
    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:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: fu_vli_usbhub_msp430_device_new
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-msp430-device.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuVliUsbhubMsp430Device
    signature: 'FuVliUsbhubMsp430Device *

      fu_vli_usbhub_msp430_device_new(FuDevice *proxy)'
  - 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: GET_PRIVATE
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 1616
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    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:38,1
    - Dst: FuVliDeviceClass*::spi_write_enable
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:40,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: fu_vli_device_spi_write_enable
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - FuVliDeviceClass*::spi_write_enable
    - FU_VLI_DEVICE_GET_CLASS
    - g_prefix_error_literal
    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:51,1
    - Dst: FuVliDeviceClass*::spi_chip_erase
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:53,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: fu_vli_device_spi_chip_erase
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - FuVliDeviceClass*::spi_chip_erase
    - FU_VLI_DEVICE_GET_CLASS
    - g_prefix_error_literal
    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:64,1
    - Dst: FuVliDeviceClass*::spi_write_status
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:66,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuVliDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: fu_vli_device_spi_write_status
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - FU_VLI_DEVICE_GET_CLASS
    - 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:77,1
    - Dst: FuVliDeviceClass*::spi_read_status
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:79,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuVliDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: fu_vli_device_spi_read_status
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - FuVliDeviceClass*::spi_read_status
    - FU_VLI_DEVICE_GET_CLASS
    - g_prefix_error_literal
    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:90,1
    - Dst: FuVliDeviceClass*::spi_sector_erase
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:92,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 98
    functionName: fu_vli_device_spi_sector_erase
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - FuVliDeviceClass*::spi_sector_erase
    - FU_VLI_DEVICE_GET_CLASS
    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:107,1
    - Dst: FuVliDeviceClass*::spi_read_data
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:109,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:110,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: 115
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 115
    functionName: fu_vli_device_spi_read_block
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 3
    functionsReached:
    - g_prefix_error
    - FU_VLI_DEVICE_GET_CLASS
    - FuVliDeviceClass*::spi_read_data
    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:124,1
    - Dst: FuVliDeviceClass*::spi_write_data
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:126,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:127,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: 132
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 132
    functionName: fu_vli_device_spi_write_data
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error
    - FU_VLI_DEVICE_GET_CLASS
    - FuVliDeviceClass*::spi_write_data
    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:144,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:152,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:152,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 156
    functionName: fu_vli_device_spi_wait_finish
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - g_set_error_literal
    - fu_vli_device_spi_read_status
    - FU_DEVICE
    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:164,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:165,1
    - Dst: fu_vli_device_spi_write_status
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:168,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:169,1
    - Dst: fu_vli_device_spi_write_enable
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:172,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:173,1
    - Dst: fu_vli_device_spi_sector_erase
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:176,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:177,1
    - Dst: fu_vli_device_spi_wait_finish
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:180,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:181,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:188,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:189,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:194,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 206
    functionName: fu_vli_device_spi_erase_sector
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 4
    functionsReached:
    - g_set_error
    - fu_vli_device_spi_write_status
    - g_prefix_error_literal
    - fu_vli_device_spi_wait_finish
    - fu_vli_device_spi_sector_erase
    - fu_vli_device_spi_write_enable
    - fu_vli_device_spi_read_block
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_device_spi_erase_sector(FuVliDevice *self, guint32
      addr, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:215,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:216,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:219,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:222,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:223,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:225,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:226,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:227,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:228,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:229,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:231,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:233,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:236,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:238,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - self
    - address
    - bufsz
    - progress
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 208
    functionDepth: 4
    functionLinenumber: 208
    functionLinenumberEnd: 239
    functionName: fu_vli_device_spi_read
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 1
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - fu_progress_set_steps
    - g_prefix_error
    - g_malloc0
    - fu_progress_step_done
    - g_steal_pointer
    - fu_chunk_array_mutable_new
    - fu_chunk_get_address
    - g_bytes_new_take
    - g_autoptr
    - fu_vli_device_spi_read_block
    - g_ptr_array_index
    - fu_progress_set_id
    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:249,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:253,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:262,1
    - Dst: fu_vli_device_spi_write_enable
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:263,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:264,1
    - Dst: fu_vli_device_spi_write_data
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:267,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:268,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:271,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:271,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:274,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:275,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:278,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: 279
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 279
    functionName: fu_vli_device_spi_write_block
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 3
    functionsReached:
    - g_debug
    - g_set_error
    - fu_vli_device_spi_write_data
    - fu_device_sleep
    - g_prefix_error_literal
    - g_malloc0
    - FU_DEVICE
    - fu_vli_device_spi_write_enable
    - fu_vli_device_spi_read_block
    - fu_memcmp_safe
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:290,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:293,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:294,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:295,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:298,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:299,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:303,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:307,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:308,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:309,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:311,1
    - Dst: fu_vli_device_spi_write_block
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:312,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:313,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:314,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:315,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:316,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:318,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:320,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:323,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:326,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:329,1
    - Dst: fu_vli_device_spi_write_block
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:330,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:331,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:332,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:333,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:334,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:336,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:339,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 6
    argNames:
    - self
    - address
    - buf
    - bufsz
    - progress
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - guint8*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 281
    functionDepth: 4
    functionLinenumber: 281
    functionLinenumberEnd: 341
    functionName: fu_vli_device_spi_write
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 4
    functionsReached:
    - fu_vli_device_spi_write_block
    - fu_chunk_get_idx
    - fu_chunk_array_new
    - g_debug
    - fu_progress_add_step
    - fu_chunk_get_data_sz
    - g_set_error_literal
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_chunk_get_address
    - fu_chunk_get_data
    - g_autoptr
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    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:347,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:348,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:349,1
    - Dst: fu_vli_device_spi_write_enable
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:351,1
    - Dst: fu_vli_device_spi_write_status
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:353,1
    - Dst: fu_vli_device_spi_write_enable
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:355,1
    - Dst: fu_vli_device_spi_chip_erase
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:357,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:359,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:359,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:359,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:360,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:365,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:366,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:371,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:379,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:379,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:383,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuVliDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 343
    functionDepth: 5
    functionLinenumber: 343
    functionLinenumberEnd: 385
    functionName: fu_vli_device_spi_erase_all
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 1
    functionsReached:
    - fu_vli_device_spi_chip_erase
    - fu_progress_add_step
    - g_set_error
    - fu_vli_device_spi_write_status
    - fu_device_sleep_full
    - fu_progress_step_done
    - g_prefix_error
    - FU_DEVICE
    - fu_progress_set_percentage_full
    - fu_vli_device_spi_write_enable
    - fu_progress_get_child
    - fu_vli_device_spi_read_block
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_device_spi_erase_all(FuVliDevice *self, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:394,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:396,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:399,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:400,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:401,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:403,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:404,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:404,1
    - Dst: fu_vli_device_spi_erase_sector
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:405,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:405,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:406,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:408,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:410,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - self
    - addr
    - sz
    - progress
    - error
    argTypes:
    - FuVliDevice*
    - guint32
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 387
    functionDepth: 4
    functionLinenumber: 387
    functionLinenumberEnd: 416
    functionName: fu_vli_device_spi_erase
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 2
    functionsReached:
    - fu_chunk_array_new
    - g_debug
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_chunk_get_address
    - fu_vli_device_spi_erase_sector
    - FU_VLI_DEVICE
    - g_autoptr
    - g_ptr_array_index
    - fu_progress_set_id
    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:421,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:423,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:425,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:427,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:428,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 429
    functionName: fu_vli_device_get_flash_id_str
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - GET_PRIVATE
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_vli_device_get_flash_id_str(FuVliDevice *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:434,1
    - Dst: g_object_notify
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:439,1
    - Dst: G_OBJECT
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:439,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:443,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:443,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:445,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:446,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:446,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:447,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - device_kind
    argTypes:
    - FuVliDevice*
    - FuVliDeviceKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 431
    functionDepth: 7
    functionLinenumber: 431
    functionLinenumberEnd: 453
    functionName: fu_vli_device_set_kind
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 2
    functionsReached:
    - g_object_notify
    - fu_vli_device_kind_to_string
    - fu_device_add_instance_strup
    - fu_device_build_instance_id
    - FU_DEVICE
    - fu_device_build_instance_id_full
    - G_OBJECT
    - GET_PRIVATE
    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:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - spi_auto_detect
    argTypes:
    - FuVliDevice*
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 460
    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:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 467
    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:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 474
    functionName: fu_vli_device_get_pd_offset
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_vli_device_get_pd_offset(FuVliDevice *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:479,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:480,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:483,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:486,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:487,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:488,1
    - Dst: fu_vli_device_get_flash_id_str
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:490,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:491,1
    - Dst: fu_device_add_string
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:493,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 476
    functionDepth: 4
    functionLinenumber: 476
    functionLinenumberEnd: 494
    functionName: fu_vli_device_to_string
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_kind_to_string
    - fu_vli_device_get_flash_id_str
    - fwupd_codec_string_append
    - FU_DEVICE
    - fwupd_codec_string_append_bool
    - fu_device_add_string
    - FU_VLI_DEVICE
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    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:499,1
    - Dst: fu_cfi_device_get_cmd
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:503,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:505,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:505,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:518,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:521,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:523,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:532,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:537,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 496
    functionDepth: 4
    functionLinenumber: 496
    functionLinenumberEnd: 542
    functionName: fu_vli_device_spi_read_flash_id
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    - fu_cfi_device_get_cmd
    - g_prefix_error_literal
    - fu_memread_uint8_safe
    - GET_PRIVATE
    - FU_USB_DEVICE
    - fu_dump_raw
    - fu_memread_uint16_safe
    - fu_usb_device_control_transfer
    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:547,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:548,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:551,1
    - Dst: fu_vli_device_spi_read_flash_id
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:556,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:557,1
    - Dst: fu_vli_device_get_flash_id_str
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:561,1
    - Dst: fu_cfi_device_set_flash_id
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:564,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:565,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:565,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:569,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:570,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:578,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 544
    functionDepth: 7
    functionLinenumber: 544
    functionLinenumberEnd: 591
    functionName: fu_vli_device_setup
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - fu_cfi_device_set_flash_id
    - fu_vli_device_get_flash_id_str
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - g_prefix_error_literal
    - fu_device_setup
    - FU_DEVICE
    - FU_VLI_DEVICE
    - fu_vli_device_spi_read_flash_id
    - FU_DEVICE_CLASS
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_device_setup(FuDevice *device, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:596,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:597,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:600,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:601,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:606,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:607,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:612,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:613,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:618,1
    - Dst: fu_vli_device_kind_from_string
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:620,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:622,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:629,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:632,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 593
    functionDepth: 8
    functionLinenumber: 593
    functionLinenumberEnd: 637
    functionName: fu_vli_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_set_error
    - fu_strtoull
    - g_set_error_literal
    - fu_vli_device_set_kind
    - fu_vli_device_kind_from_string
    - FU_VLI_DEVICE
    - GET_PRIVATE
    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:642,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:643,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:643,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:643,1
    - Dst: G_OBJECT_TYPE_NAME
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - metadata
    argTypes:
    - FuDevice*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 644
    functionName: fu_vli_device_report_metadata_pre
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_hash_table_insert
    - G_OBJECT_TYPE_NAME
    - FU_VLI_DEVICE
    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:649,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:650,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:653,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:656,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: 659
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 659
    functionName: fu_vli_device_get_property
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    - g_value_set_uint
    - FU_VLI_DEVICE
    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:664,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:667,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:667,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:670,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: 673
      start: 661
    functionDepth: 8
    functionLinenumber: 661
    functionLinenumberEnd: 673
    functionName: fu_vli_device_set_property
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - fu_vli_device_set_kind
    - g_value_get_uint
    - FU_VLI_DEVICE
    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:678,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:679,1
    - Dst: fu_cfi_device_new
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:680,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:680,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 684
    functionName: fu_vli_device_constructed
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_DEVICE
    - fu_cfi_device_new
    - FU_VLI_DEVICE
    - GET_PRIVATE
    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:689,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:692,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:692,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:693,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:693,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:694,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 686
    functionDepth: 3
    functionLinenumber: 686
    functionLinenumberEnd: 695
    functionName: fu_vli_device_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_add_private_flag
    - GET_PRIVATE
    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:700,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:701,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:702,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 704
    functionName: fu_vli_device_finalize
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    - g_object_unref
    - G_OBJECT_CLASS
    - FU_VLI_DEVICE
    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:709,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:710,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:724,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/vli/fu-vli-device.c:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 737
    functionName: fu_vli_device_class_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-device.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_uint
    - FU_DEVICE_CLASS
    - G_OBJECT_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:30,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:31,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:34,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: fu_vli_usbhub_pd_device_to_string
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - fu_vli_device_kind_to_string
    - FU_VLI_USBHUB_PD_DEVICE
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_pd_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_PD_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:41,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:47,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:50,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:53,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:53,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:59,1
    - Dst: fu_struct_vli_pd_hdr_parse
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:62,1
    - Dst: fu_struct_vli_pd_hdr_get_vid
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:67,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:68,1
    - Dst: fu_struct_vli_pd_hdr_get_vid
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:68,1
    - Dst: fu_vli_device_spi_read_block
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:69,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:69,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:75,1
    - Dst: fu_struct_vli_pd_hdr_unref
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:78,1
    - Dst: fu_struct_vli_pd_hdr_parse
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:79,1
    - Dst: fu_struct_vli_pd_hdr_get_fwver
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:85,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:87,1
    - Dst: fu_vli_pd_common_guess_device_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:95,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:97,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:105,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:106,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:109,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:112,1
    - Dst: fu_struct_vli_pd_hdr_get_vid
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:112,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:113,1
    - Dst: fu_struct_vli_pd_hdr_get_pid
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:113,1
    - Dst: fu_device_add_instance_u8
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:114,1
    - Dst: fu_device_add_instance_strup
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:115,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:116,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:123,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:130,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:132,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:134,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:139,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:143,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:149,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:149,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 38
    functionDepth: 7
    functionLinenumber: 38
    functionLinenumberEnd: 153
    functionName: fu_vli_usbhub_pd_device_setup
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_vli_device_kind_to_string
    - fu_struct_vli_pd_hdr_get_pid
    - fu_device_add_instance_strup
    - fu_struct_vli_pd_hdr_get_vid
    - fu_vli_device_spi_read_block
    - g_debug
    - fu_device_build_instance_id
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_device_build_instance_id_full
    - fu_device_get_proxy
    - FU_VLI_DEVICE
    - fu_device_set_version_raw
    - g_malloc0
    - fu_device_set_name
    - fu_vli_pd_common_guess_device_kind
    - FU_DEVICE
    - fu_struct_vli_pd_hdr_parse
    - fu_struct_vli_pd_hdr_get_fwver
    - fu_device_add_instance_u8
    - g_set_error
    - FU_VLI_USBHUB_PD_DEVICE
    - fu_struct_vli_pd_hdr_unref
    - g_autoptr
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_pd_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_PD_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:161,1
    - Dst: fu_vli_pd_firmware_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:165,1
    - Dst: FU_VLI_PD_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:165,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:167,1
    - Dst: fu_vli_device_kind_to_string
      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:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 178
    functionName: fu_vli_usbhub_pd_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_PD_FIRMWARE
    - fu_vli_device_kind_to_string
    - g_set_error
    - fu_vli_pd_firmware_get_kind
    - FU_VLI_USBHUB_PD_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_pd_device_check_firmware(FuDevice *device,\n\t\t\t\t
      \      FuFirmware *firmware,\n\t\t\t\t       FuFirmwareParseFlags flags,\n\t\t\t\t
      \      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_PD_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:184,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:187,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:190,1
    - Dst: fu_vli_device_spi_read
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:191,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:191,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 180
    functionDepth: 5
    functionLinenumber: 180
    functionLinenumberEnd: 196
    functionName: fu_vli_usbhub_pd_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_spi_read
    - FU_VLI_USBHUB_PD_DEVICE
    - fu_device_get_firmware_size_max
    - fu_device_get_proxy
    - fu_progress_set_status
    - FU_VLI_DEVICE
    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:205,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:209,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:212,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:213,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:214,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:217,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:222,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:223,1
    - Dst: fu_vli_device_spi_erase
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:226,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:226,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:229,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:232,1
    - Dst: fu_vli_device_spi_write
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:235,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:235,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:239,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:242,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: 246
      start: 198
    functionDepth: 5
    functionLinenumber: 198
    functionLinenumberEnd: 246
    functionName: fu_vli_usbhub_pd_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_bytes
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_progress_step_done
    - FU_VLI_USBHUB_PD_DEVICE
    - fu_vli_device_spi_erase
    - fu_device_get_proxy
    - FU_VLI_DEVICE
    - fu_vli_device_spi_write
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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_proxy
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:254,1
    - Dst: fu_device_attach_full
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 258
    functionName: fu_vli_usbhub_pd_device_attach
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_attach_full
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_usbhub_pd_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:263,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:264,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:265,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:266,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:267,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:268,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 270
    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_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_vli_usbhub_pd_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_USBHUB_PD_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:278,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:280,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:282,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 293
    functionName: fu_vli_usbhub_pd_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_strcmp0
    - g_set_error_literal
    - FU_VLI_USBHUB_PD_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_usbhub_pd_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/vli/fu-vli-usbhub-pd-device.c:298,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: fu_vli_usbhub_pd_device_convert_version
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    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:304,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:304,1
    - Dst: fu_device_add_protocol
      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_add_flag
      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_add_private_flag
      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_add_private_flag
      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_version_format
      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
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:312,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:312,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:313,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:313,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:314,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:314,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:315,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:315,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:316,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliUsbhubPdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 301
    functionDepth: 6
    functionLinenumber: 301
    functionLinenumberEnd: 317
    functionName: fu_vli_usbhub_pd_device_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_logical_id
    - fu_device_add_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_set_proxy_gtype
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliUsbhubPdDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 332
    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:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 338
    functionName: fu_vli_usbhub_pd_device_new
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-usbhub-pd-device.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuVliUsbhubPdDevice
    signature: 'FuVliUsbhubPdDevice *

      fu_vli_usbhub_pd_device_new(FuDevice *proxy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_PD_PARADE_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:34,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:35,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:38,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:39,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-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: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: fu_vli_pd_parade_device_to_string
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_kind_to_string
    - FU_VLI_PD_PARADE_DEVICE
    - fwupd_codec_string_append_hex
    - 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_literal
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:55,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:64,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:64,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:77,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: 81
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 81
    functionName: fu_vli_pd_parade_device_i2c_read
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_set_error_literal
    - g_prefix_error
    - fu_usb_device_control_transfer
    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:97,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:97,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:110,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: 114
      start: 83
    functionDepth: 4
    functionLinenumber: 83
    functionLinenumberEnd: 114
    functionName: fu_vli_pd_parade_device_i2c_write
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_prefix_error
    - fu_usb_device_control_transfer
    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:119,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 5
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: fu_vli_pd_parade_device_start_mcu
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_pd_parade_device_i2c_write
    - g_prefix_error_literal
    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:129,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:130,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:133,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 126
    functionDepth: 5
    functionLinenumber: 126
    functionLinenumberEnd: 138
    functionName: fu_vli_pd_parade_device_stop_mcu
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_pd_parade_device_i2c_write
    - g_prefix_error_literal
    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:143,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 5
    functionLinenumber: 140
    functionLinenumberEnd: 148
    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:157,1
    - Dst: fu_vli_pd_parade_device_set_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:159,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:161,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:161,1
    - Dst: fu_vli_pd_parade_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:162,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:165,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:173,1
    - Dst: fu_vli_pd_parade_device_set_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:174,1
    - Dst: fu_vli_pd_parade_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:176,1
    - Dst: fu_vli_pd_parade_device_start_mcu
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:180,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:184,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:185,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:185,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 150
    functionDepth: 6
    functionLinenumber: 150
    functionLinenumberEnd: 187
    functionName: fu_vli_pd_parade_device_read_fw_ver
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_debug
    - g_set_error
    - fu_device_sleep
    - FU_DEVICE
    - g_strdup_printf
    - fu_vli_pd_parade_device_i2c_read
    - fu_vli_pd_parade_device_start_mcu
    - fu_vli_pd_parade_device_set_offset
    - fu_vli_pd_parade_device_stop_mcu
    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:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - val
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 5
    functionLinenumber: 189
    functionLinenumberEnd: 193
    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:199,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:201,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:203,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:205,1
    - Dst: fu_vli_pd_parade_device_set_wp
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 195
    functionDepth: 6
    functionLinenumber: 195
    functionLinenumberEnd: 210
    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:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 5
    functionLinenumber: 212
    functionLinenumberEnd: 218
    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:226,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:228,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:230,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:232,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:234,1
    - Dst: fu_vli_pd_parade_device_set_wp
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:236,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - self
    - target_status
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 220
    functionDepth: 6
    functionLinenumber: 220
    functionLinenumberEnd: 239
    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:251,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:268,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:281,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:283,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:285,1
    - Dst: fu_vli_pd_parade_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:291,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:304,1
    - Dst: fu_vli_pd_parade_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:313,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:326,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 241
    functionDepth: 5
    functionLinenumber: 241
    functionLinenumberEnd: 335
    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_literal
    - 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:341,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:343,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:345,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:347,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:349,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:351,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 337
    functionDepth: 5
    functionLinenumber: 337
    functionLinenumberEnd: 354
    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:359,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:361,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:363,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:365,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:367,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 356
    functionDepth: 5
    functionLinenumber: 356
    functionLinenumberEnd: 372
    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: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_sector_erase
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:383,1
    - Dst: fu_vli_pd_parade_device_wait_ready
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:387,1
    - Dst: fu_vli_pd_parade_device_set_wp
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:389,1
    - Dst: fu_vli_pd_parade_device_set_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:396,1
    - Dst: fu_vli_pd_parade_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:398,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:403,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - self
    - block_idx
    - error
    argTypes:
    - FuVliPdParadeDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 374
    functionDepth: 7
    functionLinenumber: 374
    functionLinenumberEnd: 415
    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_wait_ready
    - fu_vli_pd_parade_device_write_enable
    - fu_vli_pd_parade_device_sector_erase
    - fu_vli_pd_parade_device_set_wp
    - 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:424,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:428,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: 439
      start: 417
    functionDepth: 6
    functionLinenumber: 417
    functionLinenumberEnd: 439
    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:449,1
    - Dst: fu_vli_pd_parade_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:453,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: 463
      start: 441
    functionDepth: 6
    functionLinenumber: 441
    functionLinenumberEnd: 463
    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_set_offset
    - fu_vli_pd_parade_device_i2c_read
    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: 37
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_PD_PARADE_DEVICE
      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:475,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:476,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:477,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:478,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:479,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:482,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:483,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:484,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:485,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:486,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:487,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:490,1
    - Dst: fu_vli_pd_parade_device_stop_mcu
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:495,1
    - Dst: fu_vli_pd_parade_device_write_enable
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:499,1
    - Dst: fu_vli_pd_parade_device_write_status
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:501,1
    - Dst: fu_vli_pd_parade_device_wait_ready
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:503,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:505,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:509,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:510,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:510,1
    - Dst: fu_vli_pd_parade_device_block_erase
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:513,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:513,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:515,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:515,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:517,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:519,1
    - Dst: fu_vli_pd_parade_device_enable_mapping
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:522,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:524,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:526,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:527,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:531,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:532,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:532,1
    - Dst: fu_vli_pd_parade_device_block_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:535,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:536,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:537,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:540,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:540,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:542,1
    - Dst: fu_vli_pd_parade_device_write_disable
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:544,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:546,1
    - Dst: g_byte_array_sized_new
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:549,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:549,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:550,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:553,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:553,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:553,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:556,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:558,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:560,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:563,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:563,1
    - Dst: fu_vli_pd_parade_device_block_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:564,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:565,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:567,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:570,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:570,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:571,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:571,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:573,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:575,1
    - Dst: fu_bytes_compare
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:576,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:578,1
    - Dst: fu_vli_pd_parade_device_write_enable
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:581,1
    - Dst: fu_vli_pd_parade_device_set_wp
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:583,1
    - Dst: fu_vli_pd_parade_device_sector_erase
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:585,1
    - Dst: fu_vli_pd_parade_device_wait_ready
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:587,1
    - Dst: fu_vli_pd_parade_device_set_wp
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:589,1
    - Dst: fu_vli_pd_parade_device_enable_mapping
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:593,1
    - Dst: fu_vli_pd_parade_device_set_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:597,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:599,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:601,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:603,1
    - Dst: fu_vli_pd_parade_device_i2c_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:609,1
    - Dst: fu_vli_pd_parade_device_write_disable
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:615,1
    - Dst: fu_vli_pd_parade_device_set_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:619,1
    - Dst: fu_vli_pd_parade_device_i2c_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:621,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:625,1
    - Dst: fu_vli_pd_parade_device_write_enable
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:633,1
    - Dst: fu_vli_pd_parade_device_write_status
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:635,1
    - Dst: fu_vli_pd_parade_device_wait_ready
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:637,1
    - Dst: fu_vli_pd_parade_device_write_disable
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:639,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:641,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 116
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 465
    functionDepth: 8
    functionLinenumber: 465
    functionLinenumberEnd: 645
    functionName: fu_vli_pd_parade_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_idx
    - g_bytes_new
    - fu_vli_pd_parade_device_enable_mapping
    - fu_chunk_get_data_sz
    - fu_progress_add_flag
    - fu_vli_pd_parade_device_sector_erase
    - FU_VLI_PD_PARADE_DEVICE
    - fu_vli_pd_parade_device_i2c_read
    - g_autoptr
    - fu_vli_pd_parade_device_block_erase
    - fu_vli_pd_parade_device_block_write
    - fu_vli_pd_parade_device_write_disable
    - g_byte_array_sized_new
    - fu_firmware_get_bytes
    - g_set_error_literal
    - fu_vli_pd_parade_device_block_read
    - fu_vli_pd_parade_device_set_offset
    - fu_progress_set_percentage_full
    - fu_vli_pd_parade_device_stop_mcu
    - fu_vli_pd_parade_device_i2c_write
    - fu_progress_add_step
    - fu_device_sleep
    - fu_vli_pd_parade_device_wait_ready
    - fu_progress_step_done
    - g_malloc0
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_chunk_array_length
    - fu_vli_pd_parade_device_write_status
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_vli_pd_parade_device_write_enable
    - fu_chunk_array_index
    - fu_vli_pd_parade_device_set_wp
    - fu_bytes_compare
    - g_bytes_get_size
    - fu_chunk_array_new_from_bytes
    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_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_byte_array_new
      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: fu_vli_pd_parade_device_stop_mcu
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:655,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:659,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:660,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:660,1
    - Dst: fu_chunk_array_mutable_new
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:661,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:664,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:665,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:667,1
    - Dst: fu_vli_pd_parade_device_block_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:668,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:669,1
    - Dst: fu_chunk_get_data_out
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:670,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:671,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:674,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:676,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 647
    functionDepth: 7
    functionLinenumber: 647
    functionLinenumberEnd: 677
    functionName: fu_vli_pd_parade_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_idx
    - g_bytes_new
    - fu_chunk_get_data_sz
    - fu_chunk_get_data_out
    - fu_progress_set_steps
    - fu_vli_pd_parade_device_block_read
    - fu_progress_step_done
    - g_byte_array_new
    - FU_VLI_PD_PARADE_DEVICE
    - fu_device_get_firmware_size_max
    - fu_chunk_array_mutable_new
    - g_autoptr
    - fu_progress_set_status
    - fu_vli_pd_parade_device_stop_mcu
    - fu_byte_array_set_size
    - g_ptr_array_index
    - fu_progress_set_id
    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:682,1
    - Dst: fu_vli_pd_parade_device_read_fw_ver
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:685,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:689,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:689,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 679
    functionDepth: 7
    functionLinenumber: 679
    functionLinenumberEnd: 691
    functionName: fu_vli_pd_parade_device_probe
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_kind_to_string
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - FU_VLI_PD_PARADE_DEVICE
    - fu_vli_pd_parade_device_read_fw_ver
    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:696,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:697,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:698,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:699,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:700,1
    - Dst: fu_progress_add_step
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 693
    functionDepth: 3
    functionLinenumber: 693
    functionLinenumberEnd: 703
    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_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_vli_pd_parade_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:711,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:711,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:712,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:712,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:713,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:713,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:714,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c:714,1
    - Dst: fu_device_add_private_flag
      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_set_proxy_gtype
      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_set_version_format
      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_add_protocol
      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_set_install_duration
      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_logical_id
      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_summary
      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_firmware_size
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliPdParadeDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 705
    functionDepth: 6
    functionLinenumber: 705
    functionLinenumberEnd: 723
    functionName: fu_vli_pd_parade_device_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_logical_id
    - fu_device_set_firmware_size
    - fu_device_add_icon
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_set_proxy_gtype
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliPdParadeDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 734
    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:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 740
    functionName: fu_vli_pd_parade_device_new
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-parade-device.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuVliPdParadeDevice
    signature: 'FuVliPdParadeDevice *

      fu_vli_pd_parade_device_new(FuDevice *proxy)'
  - 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: 4
    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
    - g_strdup_printf
    - FU_USB_DEVICE
    - fu_dump_raw
    - fu_usb_device_control_transfer
    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: 5
    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: 4
    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
    - g_strdup_printf
    - FU_USB_DEVICE
    - fu_dump_raw
    - fu_usb_device_control_transfer
    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: 4
    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_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_vli_device_get_cfi_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: 4
    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_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_vli_device_get_cfi_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: 4
    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_device_sleep
    - fu_cfi_device_get_cmd
    - FU_DEVICE
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    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: 4
    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_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_vli_device_get_cfi_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: 4
    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_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_vli_device_get_cfi_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: 4
    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_usb_device_control_transfer
    - FU_USB_DEVICE
    - fu_vli_device_get_cfi_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: 4
    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_cfi_device_get_cmd
    - fu_memdup_safe
    - FU_USB_DEVICE
    - fu_usb_device_control_transfer
    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: 3
    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_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:300,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:301,1
    - Dst: FU_DEVICE
      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_add_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:309,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:309,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliPdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 293
    functionDepth: 5
    functionLinenumber: 293
    functionLinenumberEnd: 311
    functionName: fu_vli_pd_device_parade_setup
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_debug
    - fu_vli_pd_parade_device_new
    - fu_device_setup
    - FU_DEVICE
    - g_warning
    - g_error_matches
    - 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:316,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:323,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:327,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:327,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:340,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:343,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:345,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:345,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:348,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:348,1
    - Dst: fu_vli_pd_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:349,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:357,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:357,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:362,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:362,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: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:386,1
    - Dst: fu_vli_pd_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:394,1
    - Dst: fu_vli_pd_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:399,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:405,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:405,1
    - Dst: fu_vli_device_set_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:408,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:408,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:411,1
    - Dst: fu_vli_pd_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:423,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:426,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:426,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:428,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:428,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:431,1
    - Dst: fu_vli_pd_device_parade_setup
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:432,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 64
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 313
    functionDepth: 8
    functionLinenumber: 313
    functionLinenumberEnd: 438
    functionName: fu_vli_pd_device_setup
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_get_kind
    - fu_device_add_flag
    - fu_memread_uint32_safe
    - FU_VLI_PD_DEVICE
    - fu_device_set_version_raw
    - g_set_error
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - fu_vli_device_set_kind
    - FU_DEVICE
    - fu_device_remove_flag
    - fu_vli_pd_device_parade_setup
    - fu_vli_pd_device_read_reg
    - FU_VLI_DEVICE
    - FU_USB_DEVICE
    - FU_DEVICE_CLASS
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_vli_pd_device_setup(FuDevice *device, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_PD_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:446,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:450,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:450,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:451,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:455,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:456,1
    - Dst: fu_vli_pd_firmware_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:461,1
    - Dst: FU_VLI_PD_FIRMWARE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:461,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:462,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:462,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:463,1
    - Dst: fu_vli_device_kind_to_string
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:468,1
    - Dst: fu_vli_device_kind_to_string
      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:469,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 475
    functionName: fu_vli_pd_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_PD_FIRMWARE
    - fu_vli_device_kind_to_string
    - FU_VLI_PD_DEVICE
    - g_set_error
    - fu_vli_pd_firmware_get_kind
    - fu_firmware_get_size
    - fu_device_get_firmware_size_max
    - FU_VLI_DEVICE
    - fu_vli_device_get_kind
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_vli_pd_device_check_firmware(FuDevice *device,\n\t\t\t\tFuFirmware
      *firmware,\n\t\t\t\tFuFirmwareParseFlags flags,\n\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_VLI_PD_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:480,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:481,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:484,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:490,1
    - Dst: fu_vli_device_spi_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:491,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:491,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 477
    functionDepth: 5
    functionLinenumber: 477
    functionLinenumberEnd: 496
    functionName: fu_vli_pd_device_dump_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_VLI_PD_DEVICE
    - fu_vli_device_spi_read
    - fu_device_get_firmware_size_max
    - FU_VLI_DEVICE
    - fu_progress_set_status
    - 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:502,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:505,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:508,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuVliPdDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 498
    functionDepth: 5
    functionLinenumber: 498
    functionLinenumberEnd: 511
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:526,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:529,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:530,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:531,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:532,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:533,1
    - Dst: fu_vli_device_spi_read
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:536,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:536,1
    - Dst: fu_vli_device_get_pd_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:537,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:537,1
    - Dst: fu_device_get_firmware_size_max
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:538,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:538,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:539,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:543,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:547,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:553,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:554,1
    - Dst: fu_crc16_safe
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:557,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:559,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:562,1
    - Dst: fu_vli_device_spi_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:564,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:564,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:568,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:571,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_vli_device_get_pd_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:573,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:573,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:583,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:583,1
    - Dst: fu_vli_device_get_pd_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:584,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:584,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:587,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:590,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_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
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 4
    argNames:
    - self
    - fw
    - progress
    - error
    argTypes:
    - FuVliPdDevice*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 513
    functionDepth: 5
    functionLinenumber: 513
    functionLinenumberEnd: 603
    functionName: fu_vli_pd_device_write_dual_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_crc16_safe
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_progress_add_flag
    - g_set_error_literal
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_vli_device_spi_read
    - FU_DEVICE
    - fu_vli_device_get_pd_offset
    - fu_device_get_firmware_size_max
    - fu_memread_uint16_safe
    - FU_VLI_DEVICE
    - fu_vli_device_spi_write
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:612,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:616,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:619,1
    - Dst: fu_vli_pd_device_write_gpios
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:624,1
    - Dst: fu_vli_pd_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:628,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:633,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:640,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:640,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:641,1
    - Dst: fu_vli_pd_device_write_dual_firmware
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:642,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:645,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:646,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:647,1
    - Dst: fu_vli_device_spi_erase_all
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:650,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:650,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:651,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:653,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:656,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:659,1
    - Dst: fu_vli_device_spi_write
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:660,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:660,1
    - Dst: fu_vli_device_get_pd_offset
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:661,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:661,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:664,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:669,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: 671
      start: 605
    functionDepth: 6
    functionLinenumber: 605
    functionLinenumberEnd: 671
    functionName: fu_vli_pd_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_get_pd_offset
    - fu_vli_device_get_kind
    - FU_VLI_PD_DEVICE
    - fu_firmware_get_bytes
    - fu_vli_pd_device_write_reg
    - g_prefix_error_literal
    - fu_device_has_flag
    - FU_VLI_DEVICE
    - fu_vli_device_spi_erase_all
    - fu_progress_add_step
    - fu_vli_pd_device_write_dual_firmware
    - g_bytes_get_data
    - fu_progress_step_done
    - fu_vli_device_spi_write
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_vli_pd_device_write_gpios
    - fu_vli_pd_device_read_reg
    - g_autoptr
    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:676,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:677,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:681,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:682,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:687,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:687,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:688,1
    - Dst: fu_vli_pd_device_write_gpios
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:693,1
    - Dst: fu_vli_pd_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:697,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:703,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:710,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:710,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:711,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:711,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:712,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:712,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:712,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:725,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:726,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:727,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:728,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:730,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:731,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:736,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:741,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:741,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:742,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:742,1
    - Dst: fu_vli_pd_device_read_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:744,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:750,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:752,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:754,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:756,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:762,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:762,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:762,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:778,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:778,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:778,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:791,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:792,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:793,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:795,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:796,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:801,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 55
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 673
    functionDepth: 6
    functionLinenumber: 673
    functionLinenumberEnd: 803
    functionName: fu_vli_pd_device_detach
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_VLI_PD_DEVICE
    - g_debug
    - fu_vli_pd_device_write_gpios
    - fu_vli_pd_device_write_reg
    - g_steal_pointer
    - fu_device_has_private_flag
    - fu_usb_device_control_transfer
    - fu_device_has_flag
    - g_error_matches
    - g_propagate_prefixed_error
    - fu_vli_pd_device_read_reg
    - FU_VLI_DEVICE
    - FU_USB_DEVICE
    - g_autoptr
    - 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:808,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:809,1
    - Dst: fu_vli_device_get_kind
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:816,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:816,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:817,1
    - Dst: fu_vli_pd_device_write_reg
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:819,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:821,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:826,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:827,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:832,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:832,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:832,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:845,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:846,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:847,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:848,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:849,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:851,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:852,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:859,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 805
    functionDepth: 6
    functionLinenumber: 805
    functionLinenumberEnd: 861
    functionName: fu_vli_pd_device_attach
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_vli_device_get_kind
    - fu_device_add_flag
    - FU_VLI_PD_DEVICE
    - g_debug
    - fu_vli_pd_device_write_reg
    - g_steal_pointer
    - fu_usb_device_control_transfer
    - fu_device_has_flag
    - g_error_matches
    - g_propagate_prefixed_error
    - FU_USB_DEVICE
    - g_autoptr
    - FU_VLI_DEVICE
    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:866,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:868,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - pspec
    - user_data
    argTypes:
    - FuVliDevice*
    - GParamSpec*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 870
    functionName: fu_vli_pd_device_kind_changed_cb
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_remove_delay
    - fu_vli_device_get_kind
    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:875,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:876,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:877,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:878,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:879,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 872
    functionDepth: 3
    functionLinenumber: 872
    functionLinenumberEnd: 881
    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 *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:886,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 887
    functionName: fu_vli_pd_device_convert_version
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    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:892,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:892,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:893,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:893,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:894,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:894,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:895,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:895,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:896,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:896,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:897,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:897,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:898,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:898,1
    - Dst: fu_device_set_firmware_gtype
      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_vli_device_set_spi_auto_detect
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:900,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:900,1
    - Dst: fu_device_register_private_flag
      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_register_private_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: g_signal_connect
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:905,1
    - Dst: FU_VLI_DEVICE
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:905,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuVliPdDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 889
    functionDepth: 6
    functionLinenumber: 889
    functionLinenumberEnd: 909
    functionName: fu_vli_pd_device_init
    functionSourceFile: /src/fwupd/plugins/vli/fu-vli-pd-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - g_signal_connect
    - fu_device_add_icon
    - FU_DEVICE
    - fu_vli_device_set_spi_auto_detect
    - fu_device_set_summary
    - G_CALLBACK
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - FU_VLI_DEVICE
    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:914,1
    - Dst: FU_VLI_DEVICE_CLASS
      Src: /src/fwupd/plugins/vli/fu-vli-pd-device.c:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuVliPdDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 931
    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: 4
    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_assert_cmpuint
    - g_assert_nonnull
    - fu_input_stream_from_path
    - fu_acpi_table_get_oem_revision
    - fu_acpi_table_get_oem_table_id
    - fu_acpi_ivrs_get_dma_remap
    - fu_acpi_table_get_oem_id
    - fu_acpi_ivrs_new
    - FU_FIRMWARE
    - FU_ACPI_TABLE
    - fu_acpi_table_get_revision
    - fu_firmware_parse_stream
    - g_assert_no_error
    - g_file_test
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    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: 4
    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_assert_cmpuint
    - g_assert_nonnull
    - fu_input_stream_from_path
    - fu_acpi_table_get_oem_revision
    - fu_acpi_table_get_oem_table_id
    - fu_acpi_ivrs_get_dma_remap
    - fu_acpi_table_get_oem_id
    - fu_acpi_ivrs_new
    - FU_FIRMWARE
    - FU_ACPI_TABLE
    - g_assert_false
    - fu_acpi_table_get_revision
    - fu_firmware_parse_stream
    - g_assert_no_error
    - g_file_test
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_assert_cmpstr
    - g_autoptr
    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_test_add_func
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:99,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:100,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: main
    functionSourceFile: /src/fwupd/plugins/acpi-ivrs/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add_func
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:22,1
    - 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_context_build_filename
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:39,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:41,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:42,1
    - Dst: fu_input_stream_from_path
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:45,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:47,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:48,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:51,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:51,1
    - Dst: g_warning
      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: fu_acpi_ivrs_get_dma_remap
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:60,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:61,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:62,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:63,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 69
    functionName: fu_acpi_ivrs_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs-plugin.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_from_path
    - fu_context_build_filename
    - fu_acpi_ivrs_new
    - g_debug
    - fwupd_security_attr_set_result
    - fu_plugin_security_attr_new
    - fu_firmware_parse_stream
    - FU_FIRMWARE
    - fu_plugin_get_context
    - fwupd_security_attr_add_flag
    - g_warning
    - fu_cpu_get_vendor
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - fu_acpi_ivrs_get_dma_remap
    - g_autoptr
    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: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    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:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiIvrsPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_ACPI_IVRS
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:30,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:33,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:34,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:41,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:41,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:41,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:42,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:46,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:46,1
    - Dst: fu_acpi_table_get_payload
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:49,1
    - Dst: FU_ACPI_TABLE
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:49,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:52,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 57
    functionName: fu_acpi_ivrs_parse
    functionSourceFile: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_input_stream_read_u8
    - g_strcmp0
    - fu_acpi_table_get_payload
    - g_debug
    - g_set_error
    - FU_FIRMWARE
    - FU_FIRMWARE_CLASS
    - FU_ACPI_TABLE
    - FU_ACPI_IVRS
    - g_autoptr
    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:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    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:68,1
    - Dst: FU_IS_ACPI_IVRS
      Src: /src/fwupd/plugins/acpi-ivrs/fu-acpi-ivrs.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuAcpiIvrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuAcpiIvrsClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    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: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    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:19,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: fu_jabra_gnp_firmware_export
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_JABRA_GNP_FIRMWARE
    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:27,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:29,1
    - Dst: fu_firmware_get_version
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:29,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:29,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:30,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:31,1
    - Dst: fu_strtoull
      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:40,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuJabraGnpFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 49
    functionName: fu_jabra_gnp_firmware_parse_version
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - FU_FIRMWARE
    - g_set_error_literal
    - g_strsplit
    - g_strv_length
    - g_auto
    - fu_firmware_get_version
    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:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:58,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:60,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:62,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:67,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:69,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:75,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:75,1
    - Dst: fu_jabra_gnp_firmware_parse_version
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:76,1
    - Dst: xb_silo_query_first
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:78,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:80,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:83,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:85,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:88,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:89,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 3
    argNames:
    - self
    - silo
    - error
    argTypes:
    - FuJabraGnpFirmware*
    - XbSilo*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 96
    functionName: fu_jabra_gnp_firmware_parse_info
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c
    functionUses: 0
    functionsReached:
    - xb_node_query_text
    - fu_jabra_gnp_firmware_parse_version
    - fu_firmware_set_version
    - fu_strtoull
    - g_set_error_literal
    - FU_FIRMWARE
    - fwupd_error_convert
    - g_prefix_error
    - xb_node_get_attr
    - xb_silo_query_first
    - g_autoptr
    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:104,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:105,1
    - Dst: fu_zip_firmware_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:105,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:106,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:107,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:108,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:109,1
    - Dst: xb_builder_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:109,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:110,1
    - Dst: xb_builder_source_new
      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_firmware_parse_stream
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:114,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:118,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:121,1
    - Dst: xb_builder_source_load_bytes
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:124,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:125,1
    - Dst: xb_builder_import_source
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:128,1
    - Dst: xb_builder_compile
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:129,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:131,1
    - Dst: fu_jabra_gnp_firmware_parse_info
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:134,1
    - Dst: xb_silo_query
      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:138,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:143,1
    - Dst: fu_jabra_gnp_image_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:143,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:144,1
    - Dst: fu_jabra_gnp_image_parse
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:145,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:146,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:147,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:150,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:150,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:153,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:153,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 159
    functionName: fu_jabra_gnp_firmware_parse
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c
    functionUses: 0
    functionsReached:
    - xb_builder_compile
    - xb_builder_source_new
    - xb_builder_source_load_bytes
    - fu_firmware_get_image_by_id
    - fu_zip_firmware_new
    - g_ptr_array_index
    - g_debug
    - fu_firmware_get_bytes
    - fu_firmware_add_image
    - xb_builder_import_source
    - fu_jabra_gnp_image_parse
    - g_propagate_error
    - FU_FIRMWARE
    - fwupd_error_convert
    - fu_firmware_parse_stream
    - g_steal_pointer
    - xb_silo_query
    - FU_JABRA_GNP_FIRMWARE
    - g_error_matches
    - fu_jabra_gnp_firmware_parse_info
    - g_autoptr
    - fu_jabra_gnp_image_new
    - xb_builder_new
    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:164,1
    - Dst: FU_IS_JABRA_GNP_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraGnpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 166
    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:171,1
    - Dst: FU_IS_JABRA_GNP_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraGnpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    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:178,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:178,1
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:179,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:179,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:180,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:180,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:181,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraGnpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 182
    functionName: fu_jabra_gnp_firmware_init
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJabraGnpFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 190
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - acc
    - delta
    argTypes:
    - guint64
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 66
    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:73,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:73,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:75,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:76,1
    - Dst: fu_jabra_gnp_update_crc
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:80,1
    - Dst: fu_jabra_gnp_update_crc
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - GBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 84
    functionName: fu_jabra_gnp_calculate_crc
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_append_bytes
    - fu_jabra_gnp_update_crc
    - g_byte_array_new
    - g_byte_array_append
    - g_autoptr
    linkageType: ''
    returnType: guint64
    signature: guint64 fu_jabra_gnp_calculate_crc(GBytes *bytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:90,1
    - Dst: fu_struct_jabra_gnp_packet_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:90,1
    - Dst: fu_struct_jabra_gnp_packet_set_dst
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:102,1
    - Dst: fu_struct_jabra_gnp_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:103,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:104,1
    - Dst: fu_struct_jabra_gnp_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:105,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:106,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:108,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:117,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:126,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - device
    - address
    - seq
    - error
    argTypes:
    - FuDevice*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 135
    functionName: fu_jabra_gnp_ensure_name
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c
    functionUses: 0
    functionsReached:
    - fu_struct_jabra_gnp_packet_new
    - fu_memstrsafe
    - fu_struct_jabra_gnp_packet_set_dst
    - fu_device_retry_full
    - fu_device_set_name
    - fu_struct_jabra_gnp_packet_set_cmd
    - fu_struct_jabra_gnp_packet_set_sub_cmd
    - fu_struct_jabra_gnp_packet_set_sequence_number
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_ensure_name(FuDevice *device, guint8 address,
      guint8 seq, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:141,1
    - Dst: fu_struct_jabra_gnp_packet_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:141,1
    - Dst: fu_struct_jabra_gnp_packet_set_dst
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:153,1
    - Dst: fu_struct_jabra_gnp_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:154,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:155,1
    - Dst: fu_struct_jabra_gnp_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:156,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:157,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:159,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:168,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:177,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:180,1
    - Dst: fu_device_set_battery_level
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:186,1
    - Dst: fu_device_set_battery_threshold
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - device
    - address
    - seq
    - error
    argTypes:
    - FuDevice*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 138
    functionDepth: 7
    functionLinenumber: 138
    functionLinenumberEnd: 189
    functionName: fu_jabra_gnp_ensure_battery_level
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c
    functionUses: 0
    functionsReached:
    - fu_struct_jabra_gnp_packet_new
    - fu_device_set_battery_threshold
    - fu_struct_jabra_gnp_packet_set_dst
    - g_set_error_literal
    - fu_device_set_battery_level
    - fu_device_retry_full
    - fu_struct_jabra_gnp_packet_set_cmd
    - fu_struct_jabra_gnp_packet_set_sub_cmd
    - fu_memread_uint8_safe
    - fu_struct_jabra_gnp_packet_set_sequence_number
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_ensure_battery_level(FuDevice *device, guint8
      address, guint8 seq, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:199,1
    - Dst: fu_struct_jabra_gnp_packet_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:199,1
    - Dst: fu_struct_jabra_gnp_packet_set_dst
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:210,1
    - Dst: fu_struct_jabra_gnp_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:211,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:212,1
    - Dst: fu_struct_jabra_gnp_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:213,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:214,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:216,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:225,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - device
    - address
    - seq
    - dfu_pid
    - error
    argTypes:
    - FuDevice*
    - guint8
    - guint8
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 236
    functionName: fu_jabra_gnp_read_dfu_pid
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c
    functionUses: 0
    functionsReached:
    - fu_struct_jabra_gnp_packet_new
    - fu_struct_jabra_gnp_packet_set_dst
    - fu_device_retry_full
    - fu_struct_jabra_gnp_packet_set_cmd
    - fu_struct_jabra_gnp_packet_set_sub_cmd
    - fu_memread_uint16
    - fu_struct_jabra_gnp_packet_set_sequence_number
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_read_dfu_pid(FuDevice *device,\n\t\t\t  guint8
      address,\n\t\t\t  guint8 seq,\n\t\t\t  guint16 *dfu_pid,\n\t\t\t  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:242,1
    - Dst: fu_struct_jabra_gnp_packet_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:242,1
    - Dst: fu_struct_jabra_gnp_packet_set_dst
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:254,1
    - Dst: fu_struct_jabra_gnp_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:255,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:256,1
    - Dst: fu_struct_jabra_gnp_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:257,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:258,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:260,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:269,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:279,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:290,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:290,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:291,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:291,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:292,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:292,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:293,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:293,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:294,1
    - Dst: g_str_has_suffix
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:294,1
    - Dst: strlen
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:295,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:297,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 18
    argCount: 4
    argNames:
    - device
    - address
    - seq
    - error
    argTypes:
    - FuDevice*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 299
    functionName: fu_jabra_gnp_ensure_version
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c
    functionUses: 0
    functionsReached:
    - fu_struct_jabra_gnp_packet_new
    - fu_device_set_version
    - fu_memstrsafe
    - fu_struct_jabra_gnp_packet_set_dst
    - g_str_has_suffix
    - fu_device_retry_full
    - fu_struct_jabra_gnp_packet_set_cmd
    - fu_struct_jabra_gnp_packet_set_sub_cmd
    - strlen
    - fu_struct_jabra_gnp_packet_set_sequence_number
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_ensure_version(FuDevice *device, guint8 address,
      guint8 seq, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:309,1
    - Dst: fu_struct_jabra_gnp_packet_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:309,1
    - Dst: fu_struct_jabra_gnp_packet_set_dst
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:320,1
    - Dst: fu_struct_jabra_gnp_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:321,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:322,1
    - Dst: fu_struct_jabra_gnp_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:323,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:324,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:326,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:335,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - device
    - address
    - seq
    - fwu_protocol
    - error
    argTypes:
    - FuDevice*
    - guint8
    - guint8
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 355
    functionName: fu_jabra_gnp_read_fwu_protocol
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c
    functionUses: 0
    functionsReached:
    - fu_struct_jabra_gnp_packet_new
    - g_set_error
    - fu_struct_jabra_gnp_packet_set_dst
    - fu_device_retry_full
    - fu_struct_jabra_gnp_packet_set_cmd
    - fu_struct_jabra_gnp_packet_set_sub_cmd
    - fu_struct_jabra_gnp_packet_set_sequence_number
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_read_fwu_protocol(FuDevice *device,\n\t\t\t
      \      guint8 address,\n\t\t\t       guint8 seq,\n\t\t\t       guint8 *fwu_protocol,\n\t\t\t
      \      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:365,1
    - Dst: fu_struct_jabra_gnp_packet_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:365,1
    - Dst: fu_struct_jabra_gnp_packet_set_dst
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:376,1
    - Dst: fu_struct_jabra_gnp_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:377,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:378,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:379,1
    - Dst: fu_struct_jabra_gnp_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:380,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:381,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:382,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:384,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:393,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - device
    - address
    - seq
    - part
    - error
    argTypes:
    - FuDevice*
    - guint8
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 358
    functionDepth: 3
    functionLinenumber: 358
    functionLinenumberEnd: 412
    functionName: fu_jabra_gnp_write_partition
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c
    functionUses: 0
    functionsReached:
    - fu_struct_jabra_gnp_packet_new
    - g_set_error
    - fu_struct_jabra_gnp_packet_set_dst
    - fu_byte_array_append_uint8
    - fu_device_retry_full
    - fu_struct_jabra_gnp_packet_set_cmd
    - fu_struct_jabra_gnp_packet_set_sub_cmd
    - fu_struct_jabra_gnp_packet_set_cmd_length
    - fu_struct_jabra_gnp_packet_set_sequence_number
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_write_partition(FuDevice *device,\n\t\t\t     guint8
      address,\n\t\t\t     guint8 seq,\n\t\t\t     guint8 part,\n\t\t\t     GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:418,1
    - Dst: fu_struct_jabra_gnp_packet_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:418,1
    - Dst: fu_struct_jabra_gnp_packet_set_dst
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:429,1
    - Dst: fu_struct_jabra_gnp_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:430,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:431,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:432,1
    - Dst: fu_struct_jabra_gnp_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:433,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:434,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:436,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:445,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - device
    - address
    - seq
    - error
    argTypes:
    - FuDevice*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 415
    functionDepth: 3
    functionLinenumber: 415
    functionLinenumberEnd: 464
    functionName: fu_jabra_gnp_start
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c
    functionUses: 0
    functionsReached:
    - fu_struct_jabra_gnp_packet_new
    - g_set_error
    - fu_struct_jabra_gnp_packet_set_dst
    - fu_device_retry_full
    - fu_struct_jabra_gnp_packet_set_cmd
    - fu_struct_jabra_gnp_packet_set_sub_cmd
    - fu_struct_jabra_gnp_packet_set_cmd_length
    - fu_struct_jabra_gnp_packet_set_sequence_number
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_start(FuDevice *device, guint8 address, guint8
      seq, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:484,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:494,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - device
    - address
    - error
    argTypes:
    - FuDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 467
    functionDepth: 3
    functionLinenumber: 467
    functionLinenumberEnd: 501
    functionName: fu_jabra_gnp_flash_erase_done
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_flash_erase_done(FuDevice *device, guint8 address,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:513,1
    - Dst: fu_struct_jabra_gnp_packet_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:513,1
    - Dst: fu_struct_jabra_gnp_packet_set_dst
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:524,1
    - Dst: fu_struct_jabra_gnp_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:525,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:526,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:527,1
    - Dst: fu_struct_jabra_gnp_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:528,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:530,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:531,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:532,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:533,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:535,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:544,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:554,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 7
    argNames:
    - device
    - address
    - seq
    - crc
    - total_chunks
    - preload_count
    - error
    argTypes:
    - FuDevice*
    - guint8
    - guint8
    - guint32
    - guint
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 563
    functionName: fu_jabra_gnp_write_crc
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c
    functionUses: 0
    functionsReached:
    - fu_struct_jabra_gnp_packet_new
    - fu_byte_array_append_uint16
    - g_set_error
    - fu_struct_jabra_gnp_packet_set_dst
    - fu_device_retry_full
    - fu_struct_jabra_gnp_packet_set_cmd
    - fu_struct_jabra_gnp_packet_set_sub_cmd
    - fu_byte_array_append_uint32
    - fu_struct_jabra_gnp_packet_set_cmd_length
    - fu_struct_jabra_gnp_packet_set_sequence_number
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_write_crc(FuDevice *device,\n\t\t       guint8
      address,\n\t\t       guint8 seq,\n\t\t       guint32 crc,\n\t\t       guint
      total_chunks,\n\t\t       guint preload_count,\n\t\t       GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:575,1
    - Dst: fu_struct_jabra_gnp_packet_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:575,1
    - Dst: fu_struct_jabra_gnp_packet_set_dst
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:586,1
    - Dst: fu_struct_jabra_gnp_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:587,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:588,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:589,1
    - Dst: fu_struct_jabra_gnp_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:590,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:591,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:592,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:593,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:594,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:595,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:597,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:606,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:616,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 7
    argNames:
    - device
    - address
    - seq
    - crc
    - total_chunks
    - preload_count
    - error
    argTypes:
    - FuDevice*
    - guint8
    - guint8
    - guint32
    - guint
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 566
    functionDepth: 3
    functionLinenumber: 566
    functionLinenumberEnd: 625
    functionName: fu_jabra_gnp_write_extended_crc
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c
    functionUses: 0
    functionsReached:
    - fu_struct_jabra_gnp_packet_new
    - fu_byte_array_append_uint16
    - g_set_error
    - fu_struct_jabra_gnp_packet_set_dst
    - fu_device_retry_full
    - fu_struct_jabra_gnp_packet_set_cmd
    - fu_struct_jabra_gnp_packet_set_sub_cmd
    - fu_byte_array_append_uint32
    - fu_struct_jabra_gnp_packet_set_cmd_length
    - fu_struct_jabra_gnp_packet_set_sequence_number
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_write_extended_crc(FuDevice *device,\n\t\t\t\tguint8
      address,\n\t\t\t\tguint8 seq,\n\t\t\t\tguint32 crc,\n\t\t\t\tguint total_chunks,\n\t\t\t\tguint
      preload_count,\n\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:637,1
    - Dst: fu_struct_jabra_gnp_packet_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:637,1
    - Dst: fu_struct_jabra_gnp_packet_set_dst
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:644,1
    - Dst: fu_struct_jabra_gnp_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:645,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:646,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:647,1
    - Dst: fu_struct_jabra_gnp_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:648,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:649,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:650,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:651,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:652,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 6
    argNames:
    - device
    - address
    - chunk_number
    - buf
    - bufsz
    - error
    argTypes:
    - FuDevice*
    - guint8
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 628
    functionDepth: 3
    functionLinenumber: 628
    functionLinenumberEnd: 662
    functionName: fu_jabra_gnp_write_chunk
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c
    functionUses: 0
    functionsReached:
    - fu_struct_jabra_gnp_packet_new
    - fu_byte_array_append_uint16
    - fu_struct_jabra_gnp_packet_set_dst
    - fu_device_retry_full
    - fu_struct_jabra_gnp_packet_set_cmd
    - fu_struct_jabra_gnp_packet_set_sub_cmd
    - fu_struct_jabra_gnp_packet_set_cmd_length
    - g_byte_array_append
    - fu_struct_jabra_gnp_packet_set_sequence_number
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_write_chunk(FuDevice *device,\n\t\t\t guint8
      address,\n\t\t\t guint32 chunk_number,\n\t\t\t const guint8 *buf,\n\t\t\t gsize
      bufsz,\n\t\t\t GError **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:689,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:690,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:690,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:691,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:693,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:696,1
    - Dst: fu_jabra_gnp_write_chunk
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:699,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:702,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:703,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:707,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:708,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:718,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:724,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:725,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:734,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 5
    argNames:
    - device
    - address
    - chunks
    - progress
    - error
    argTypes:
    - FuDevice*
    - guint8
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 665
    functionDepth: 4
    functionLinenumber: 665
    functionLinenumberEnd: 739
    functionName: fu_jabra_gnp_write_chunks
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c
    functionUses: 0
    functionsReached:
    - fu_jabra_gnp_write_chunk
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - g_set_error_literal
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_device_retry_full
    - fu_chunk_get_data
    - fu_memread_uint16
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_write_chunks(FuDevice *device,\n\t\t\t  guint8
      address,\n\t\t\t  FuChunkArray *chunks,\n\t\t\t  FuProgress *progress,\n\t\t\t
      \ GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:759,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - device
    - address
    - error
    argTypes:
    - FuDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 742
    functionDepth: 3
    functionLinenumber: 742
    functionLinenumberEnd: 776
    functionName: fu_jabra_gnp_read_verify_status
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_read_verify_status(FuDevice *device, guint8 address,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:786,1
    - Dst: fu_struct_jabra_gnp_packet_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:786,1
    - Dst: fu_struct_jabra_gnp_packet_set_dst
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:797,1
    - Dst: fu_struct_jabra_gnp_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:798,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:799,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:800,1
    - Dst: fu_struct_jabra_gnp_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:801,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:802,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:803,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:804,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:805,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:807,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:816,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:826,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 5
    argNames:
    - device
    - address
    - seq
    - version_data
    - error
    argTypes:
    - FuDevice*
    - guint8
    - guint8
    - FuJabraGnpVersionData*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 779
    functionDepth: 3
    functionLinenumber: 779
    functionLinenumberEnd: 835
    functionName: fu_jabra_gnp_write_version
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c
    functionUses: 0
    functionsReached:
    - fu_struct_jabra_gnp_packet_new
    - g_set_error
    - fu_struct_jabra_gnp_packet_set_dst
    - fu_byte_array_append_uint8
    - fu_device_retry_full
    - fu_struct_jabra_gnp_packet_set_cmd
    - fu_struct_jabra_gnp_packet_set_sub_cmd
    - fu_struct_jabra_gnp_packet_set_cmd_length
    - fu_struct_jabra_gnp_packet_set_sequence_number
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_write_version(FuDevice *device,\n\t\t\t   guint8
      address,\n\t\t\t   guint8 seq,\n\t\t\t   FuJabraGnpVersionData *version_data,\n\t\t\t
      \  GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:841,1
    - Dst: fu_struct_jabra_gnp_packet_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:841,1
    - Dst: fu_struct_jabra_gnp_packet_set_dst
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:852,1
    - Dst: fu_struct_jabra_gnp_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:853,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:854,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:855,1
    - Dst: fu_struct_jabra_gnp_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:856,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:857,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:859,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:868,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c:878,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - device
    - address
    - seq
    - error
    argTypes:
    - FuDevice*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 838
    functionDepth: 3
    functionLinenumber: 838
    functionLinenumberEnd: 887
    functionName: fu_jabra_gnp_write_dfu_from_squif
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.c
    functionUses: 0
    functionsReached:
    - fu_struct_jabra_gnp_packet_new
    - g_set_error
    - fu_struct_jabra_gnp_packet_set_dst
    - fu_device_retry_full
    - fu_struct_jabra_gnp_packet_set_cmd
    - fu_struct_jabra_gnp_packet_set_sub_cmd
    - fu_struct_jabra_gnp_packet_set_cmd_length
    - fu_struct_jabra_gnp_packet_set_sequence_number
    - g_autoptr
    - fu_byte_array_set_size
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_write_dfu_from_squif(FuDevice *device, guint8
      address, guint8 seq, GError **error)
  - 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_xmlb_builder_insert_kx
    - FU_JABRA_GNP_IMAGE
    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: fu_strtoull
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:61,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:67,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:72,1
    - Dst: xb_node_query_text
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:76,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:78,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:84,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:85,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:88,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:88,1
    - Dst: xb_node_get_attr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:91,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:93,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:96,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:96,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:97,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:100,1
    - Dst: fu_jabra_gnp_calculate_crc
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:105,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:107,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:117,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:117,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 4
    argNames:
    - self
    - n
    - firmware_archive
    - error
    argTypes:
    - FuJabraGnpImage*
    - XbNode*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 119
    functionName: fu_jabra_gnp_image_parse
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c
    functionUses: 1
    functionsReached:
    - xb_node_query_text
    - g_strcmp0
    - fu_firmware_set_id
    - g_set_error
    - fu_firmware_get_bytes
    - fu_strtoull
    - g_set_error_literal
    - FU_FIRMWARE
    - fwupd_error_convert
    - g_prefix_error
    - fu_firmware_set_idx
    - g_clear_error
    - fu_firmware_get_image_by_id
    - fu_jabra_gnp_calculate_crc
    - fu_firmware_set_bytes
    - xb_node_get_attr
    - g_autoptr
    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:124,1
    - Dst: FU_IS_JABRA_GNP_IMAGE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraGnpImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 126
    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:131,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:131,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:132,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraGnpImage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: fu_jabra_gnp_image_init
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    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:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJabraGnpImageClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    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:145,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: fu_jabra_gnp_image_new
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-image.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_JABRA_GNP_IMAGE
    linkageType: ''
    returnType: FuJabraGnpImage
    signature: 'FuJabraGnpImage *

      fu_jabra_gnp_image_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_CHILD_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:28,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:29,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:30,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:31,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: fu_jabra_gnp_child_device_to_string
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c
    functionUses: 0
    functionsReached:
    - FU_JABRA_GNP_CHILD_DEVICE
    - fwupd_codec_string_append_hex
    linkageType: ''
    returnType: void
    signature: void fu_jabra_gnp_child_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:38,1
    - Dst: FU_IS_JABRA_GNP_CHILD_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - dfu_pid
    argTypes:
    - FuJabraGnpChildDevice*
    - guint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: fu_jabra_gnp_child_device_set_dfu_pid_and_seq
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c
    functionUses: 0
    functionsReached:
    - FU_IS_JABRA_GNP_CHILD_DEVICE
    - g_return_if_fail
    linkageType: ''
    returnType: void
    signature: void fu_jabra_gnp_child_device_set_dfu_pid_and_seq(FuJabraGnpChildDevice
      *self, guint16 dfu_pid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:49,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:52,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:53,1
    - Dst: fu_jabra_gnp_device_get_iface_hid
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:59,1
    - Dst: FU_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:59,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 70
    functionName: fu_jabra_gnp_child_device_tx_cb
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c
    functionUses: 0
    functionsReached:
    - fu_jabra_gnp_device_get_iface_hid
    - g_prefix_error_literal
    - fu_device_get_proxy
    - FU_USB_DEVICE
    - FU_JABRA_GNP_DEVICE
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_child_device_tx_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_CHILD_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:75,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:89,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:92,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:93,1
    - Dst: fu_jabra_gnp_device_get_epin
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:94,1
    - Dst: FU_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:94,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:101,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:107,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:107,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:115,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:120,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:128,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 72
    functionDepth: 4
    functionLinenumber: 72
    functionLinenumberEnd: 132
    functionName: fu_jabra_gnp_child_device_rx_cb
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c
    functionUses: 0
    functionsReached:
    - fu_jabra_gnp_device_get_epin
    - FU_JABRA_GNP_CHILD_DEVICE
    - g_prefix_error_literal
    - fu_usb_device_interrupt_transfer
    - fu_device_get_proxy
    - FU_JABRA_GNP_DEVICE
    - FU_USB_DEVICE
    - fu_memcmp_safe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_child_device_rx_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_CHILD_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:137,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:140,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:140,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 158
    functionName: fu_jabra_gnp_child_device_rx_with_sequence_cb
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - FU_JABRA_GNP_CHILD_DEVICE
    - g_set_error
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_child_device_rx_with_sequence_cb(FuDevice *device,
      gpointer user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_CHILD_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:166,1
    - Dst: fu_jabra_gnp_firmware_get_dfu_pid
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:169,1
    - Dst: FU_JABRA_GNP_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:169,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:170,1
    - Dst: fu_jabra_gnp_firmware_get_dfu_pid
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:174,1
    - Dst: FU_JABRA_GNP_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 181
    functionName: fu_jabra_gnp_child_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c
    functionUses: 0
    functionsReached:
    - FU_JABRA_GNP_CHILD_DEVICE
    - g_set_error
    - fu_jabra_gnp_firmware_get_dfu_pid
    - FU_JABRA_GNP_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_child_device_check_firmware(FuDevice *device,\n\t\t\t\t\t
      FuFirmware *firmware,\n\t\t\t\t\t FuFirmwareParseFlags flags,\n\t\t\t\t\t GError
      **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_CHILD_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:186,1
    - Dst: fu_jabra_gnp_ensure_name
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:188,1
    - Dst: fu_jabra_gnp_ensure_version
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:190,1
    - Dst: fu_jabra_gnp_read_dfu_pid
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:192,1
    - Dst: fu_jabra_gnp_ensure_battery_level
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 183
    functionDepth: 8
    functionLinenumber: 183
    functionLinenumberEnd: 203
    functionName: fu_jabra_gnp_child_device_setup
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c
    functionUses: 0
    functionsReached:
    - FU_JABRA_GNP_CHILD_DEVICE
    - fu_jabra_gnp_ensure_version
    - fu_jabra_gnp_ensure_name
    - fu_jabra_gnp_ensure_battery_level
    - fu_jabra_gnp_read_dfu_pid
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_child_device_setup(FuDevice *device, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:213,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:214,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:217,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:218,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:219,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:220,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:221,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:222,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:223,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:226,1
    - Dst: fu_jabra_gnp_write_partition
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:229,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:229,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:232,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:235,1
    - Dst: fu_jabra_gnp_start
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:238,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:238,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:240,1
    - Dst: fu_jabra_gnp_flash_erase_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:243,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:243,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:245,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:248,1
    - Dst: fu_jabra_gnp_write_crc
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:256,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:256,1
    - Dst: fu_jabra_gnp_image_get_crc32
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:259,1
    - Dst: FU_JABRA_GNP_IMAGE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:259,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:260,1
    - Dst: fu_jabra_gnp_write_extended_crc
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:266,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:267,1
    - Dst: fu_jabra_gnp_image_get_crc32
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:270,1
    - Dst: FU_JABRA_GNP_IMAGE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:270,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:271,1
    - Dst: fu_jabra_gnp_write_chunks
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:276,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:276,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:279,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:282,1
    - Dst: fu_jabra_gnp_read_verify_status
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:285,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:285,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:287,1
    - Dst: fu_jabra_gnp_write_version
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:290,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:291,1
    - Dst: fu_jabra_gnp_firmware_get_version_data
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:294,1
    - Dst: FU_JABRA_GNP_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:294,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:297,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 5
    argNames:
    - self
    - firmware
    - img
    - progress
    - error
    argTypes:
    - FuJabraGnpChildDevice*
    - FuFirmware*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 205
    functionDepth: 5
    functionLinenumber: 205
    functionLinenumberEnd: 301
    functionName: fu_jabra_gnp_child_device_write_image
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c
    functionUses: 0
    functionsReached:
    - fu_jabra_gnp_image_get_crc32
    - fu_jabra_gnp_write_partition
    - fu_jabra_gnp_write_chunks
    - FU_JABRA_GNP_IMAGE
    - fu_chunk_array_new_from_stream
    - fu_jabra_gnp_write_crc
    - fu_firmware_get_idx
    - fu_progress_add_step
    - fu_jabra_gnp_start
    - fu_progress_step_done
    - FU_DEVICE
    - fu_chunk_array_length
    - fu_jabra_gnp_firmware_get_version_data
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_jabra_gnp_write_version
    - fu_firmware_get_stream
    - FU_JABRA_GNP_FIRMWARE
    - fu_jabra_gnp_read_verify_status
    - fu_jabra_gnp_write_extended_crc
    - fu_jabra_gnp_flash_erase_done
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_child_device_write_image(FuJabraGnpChildDevice
      *self,\n\t\t\t\t      FuFirmware *firmware,\n\t\t\t\t      FuFirmware *img,\n\t\t\t\t
      \     FuProgress *progress,\n\t\t\t\t      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_CHILD_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:310,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:311,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:311,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:314,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:315,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:317,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:318,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:320,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:321,1
    - Dst: fu_jabra_gnp_read_fwu_protocol
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:323,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:330,1
    - Dst: fu_jabra_gnp_child_device_write_image
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:331,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:334,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:336,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:336,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:339,1
    - Dst: fu_jabra_gnp_write_dfu_from_squif
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:343,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: 347
      start: 303
    functionDepth: 6
    functionLinenumber: 303
    functionLinenumberEnd: 347
    functionName: fu_jabra_gnp_child_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_progress_add_step
    - FU_JABRA_GNP_CHILD_DEVICE
    - fu_progress_add_flag
    - fu_progress_step_done
    - g_prefix_error
    - fu_firmware_get_images
    - fu_jabra_gnp_child_device_write_image
    - fu_jabra_gnp_read_fwu_protocol
    - fu_firmware_get_size
    - fu_jabra_gnp_write_dfu_from_squif
    - g_autoptr
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_child_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_JABRA_GNP_CHILD_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:352,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:353,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 349
    functionDepth: 5
    functionLinenumber: 349
    functionLinenumberEnd: 355
    functionName: fu_jabra_gnp_child_device_attach
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - FU_JABRA_GNP_CHILD_DEVICE
    - fu_device_sleep_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_child_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_CHILD_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:363,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:365,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:367,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 379
    functionName: fu_jabra_gnp_child_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - FU_JABRA_GNP_CHILD_DEVICE
    - g_set_error_literal
    - g_strcmp0
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_child_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-child-device.c:384,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:385,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:386,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:387,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:388,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 390
    functionName: fu_jabra_gnp_child_device_set_progress
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_jabra_gnp_child_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:396,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:396,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:397,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:397,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:398,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:398,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:399,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:399,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:400,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:400,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:402,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:402,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:403,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:403,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:404,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:404,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:405,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:405,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:406,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:406,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:407,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:407,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:408,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:408,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:409,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:409,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:410,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraGnpChildDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 392
    functionDepth: 6
    functionLinenumber: 392
    functionLinenumberEnd: 411
    functionName: fu_jabra_gnp_child_device_init
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_logical_id
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_jabra_gnp_child_device_init(FuJabraGnpChildDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJabraGnpChildDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 424
    functionName: fu_jabra_gnp_child_device_class_init
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_jabra_gnp_child_device_class_init(FuJabraGnpChildDeviceClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraGnpPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    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:27,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-plugin.c:28,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-plugin.c:29,1
    - Dst: fu_plugin_add_udev_subsystem
      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: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-plugin.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 36
    functionName: fu_jabra_gnp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJabraGnpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    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: g_return_val_if_fail
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:31,1
    - Dst: FU_IS_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraGnpDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: fu_jabra_gnp_device_get_iface_hid
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_JABRA_GNP_DEVICE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_jabra_gnp_device_get_iface_hid(FuJabraGnpDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:38,1
    - Dst: FU_IS_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraGnpDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: fu_jabra_gnp_device_get_epin
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_JABRA_GNP_DEVICE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_jabra_gnp_device_get_epin(FuJabraGnpDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:45,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:46,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:47,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:48,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:49,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: fu_jabra_gnp_device_to_string
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - FU_JABRA_GNP_DEVICE
    - fwupd_codec_string_append_hex
    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:56,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:57,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:61,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:62,1
    - Dst: fu_usb_interface_get_number
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - usb_device
    - intf_class
    - error
    argTypes:
    - FuUsbDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 9
    functionLinenumber: 53
    functionLinenumberEnd: 66
    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_device_get_interfaces
    - fu_usb_interface_get_class
    - g_autoptr
    - g_ptr_array_index
    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_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:71,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:72,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:74,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:74,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:76,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:81,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:84,1
    - Dst: fu_usb_interface_get_endpoints
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:84,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:88,1
    - Dst: fu_usb_endpoint_get_address
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:89,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:93,1
    - Dst: _fu_usb_device_get_interface_for_class
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:101,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:101,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:103,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:106,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:106,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 68
    functionDepth: 9
    functionLinenumber: 68
    functionLinenumberEnd: 108
    functionName: fu_jabra_gnp_device_probe
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_interface_get_endpoints
    - fu_usb_device_get_interfaces
    - _fu_usb_device_get_interface_for_class
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_usb_device_add_interface
    - fu_usb_interface_get_class
    - fu_usb_endpoint_get_address
    - FU_JABRA_GNP_DEVICE
    - FU_USB_DEVICE
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:113,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:115,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:116,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:116,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 133
    functionName: fu_jabra_gnp_device_tx_cb
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - FU_JABRA_GNP_DEVICE
    - g_prefix_error_literal
    - fu_usb_device_control_transfer
    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:138,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:143,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:144,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:152,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:158,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:166,1
    - Dst: fu_memcmp_safe
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:170,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 182
    functionName: fu_jabra_gnp_device_rx_cb
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - g_prefix_error_literal
    - fu_usb_device_interrupt_transfer
    - FU_JABRA_GNP_DEVICE
    - FU_USB_DEVICE
    - fu_memcmp_safe
    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:187,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:190,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:190,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 208
    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
    - FU_JABRA_GNP_DEVICE
    - g_set_error
    - fu_device_retry_full
    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: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:214,1
    - Dst: fu_struct_jabra_gnp_packet_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:214,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:224,1
    - Dst: fu_struct_jabra_gnp_packet_set_dst
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:227,1
    - Dst: fu_struct_jabra_gnp_packet_set_sequence_number
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:228,1
    - Dst: fu_struct_jabra_gnp_packet_set_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:229,1
    - Dst: fu_struct_jabra_gnp_packet_set_sub_cmd
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:230,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:231,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:233,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:233,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:240,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:240,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:249,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:257,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - self
    - child_dfu_pid
    - error
    argTypes:
    - FuJabraGnpDevice*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 259
    functionName: fu_jabra_gnp_device_read_child_dfu_pid
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    - fu_struct_jabra_gnp_packet_new
    - fu_struct_jabra_gnp_packet_set_dst
    - g_set_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - fu_struct_jabra_gnp_packet_set_cmd
    - fu_struct_jabra_gnp_packet_set_sub_cmd
    - fu_memread_uint16
    - fu_struct_jabra_gnp_packet_set_sequence_number
    - g_autoptr
    - fu_byte_array_set_size
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:267,1
    - Dst: fu_jabra_gnp_firmware_get_dfu_pid
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:270,1
    - Dst: FU_JABRA_GNP_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:270,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:271,1
    - Dst: fu_jabra_gnp_firmware_get_dfu_pid
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:275,1
    - Dst: FU_JABRA_GNP_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 282
    functionName: fu_jabra_gnp_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - FU_JABRA_GNP_DEVICE
    - g_set_error
    - fu_jabra_gnp_firmware_get_dfu_pid
    - FU_JABRA_GNP_FIRMWARE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_jabra_gnp_device_check_firmware(FuDevice *device,\n\t\t\t\t
      \  FuFirmware *firmware,\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/jabra-gnp/fu-jabra-gnp-device.c:287,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:291,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:300,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:300,1
    - Dst: fu_jabra_gnp_child_device_set_dfu_pid_and_seq
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:301,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:302,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:302,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:303,1
    - Dst: fu_device_setup
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:305,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:305,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:306,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:310,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:310,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:310,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:310,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:311,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:311,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:312,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:312,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:322,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:322,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - self
    - dfu_pid
    - error
    argTypes:
    - FuJabraGnpDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 284
    functionDepth: 9
    functionLinenumber: 284
    functionLinenumberEnd: 326
    functionName: fu_jabra_gnp_device_add_child
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - g_set_error
    - g_prefix_error_literal
    - fu_device_setup
    - fu_device_incorporate
    - FU_DEVICE
    - fu_device_get_vid
    - g_object_new
    - fu_device_build_instance_id_full
    - g_autoptr
    - fu_jabra_gnp_child_device_set_dfu_pid_and_seq
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_device_add_child(FuJabraGnpDevice *self, guint16
      dfu_pid, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:331,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:332,1
    - Dst: fu_jabra_gnp_ensure_name
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:333,1
    - Dst: fu_jabra_gnp_ensure_version
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:335,1
    - Dst: fu_jabra_gnp_read_dfu_pid
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:337,1
    - Dst: fu_jabra_gnp_device_read_child_dfu_pid
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:345,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:346,1
    - Dst: fu_jabra_gnp_device_add_child
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:350,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:351,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 328
    functionDepth: 10
    functionLinenumber: 328
    functionLinenumberEnd: 363
    functionName: fu_jabra_gnp_device_setup
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_prefix_error
    - fu_jabra_gnp_ensure_version
    - fu_jabra_gnp_ensure_name
    - fu_jabra_gnp_read_dfu_pid
    - fu_jabra_gnp_device_read_child_dfu_pid
    - FU_JABRA_GNP_DEVICE
    - g_autoptr
    - fu_jabra_gnp_device_add_child
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_jabra_gnp_device_setup(FuDevice *device, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:373,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:374,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:377,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:378,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:379,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:380,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:381,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:382,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:383,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:386,1
    - Dst: fu_jabra_gnp_write_partition
      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_firmware_get_idx
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:392,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:395,1
    - Dst: fu_jabra_gnp_start
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:398,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:398,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:400,1
    - Dst: fu_jabra_gnp_flash_erase_done
      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
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:405,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:408,1
    - Dst: fu_jabra_gnp_write_crc
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:416,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:416,1
    - Dst: fu_jabra_gnp_image_get_crc32
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:419,1
    - Dst: FU_JABRA_GNP_IMAGE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:419,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:420,1
    - Dst: fu_jabra_gnp_write_extended_crc
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:426,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:427,1
    - Dst: fu_jabra_gnp_image_get_crc32
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:430,1
    - Dst: FU_JABRA_GNP_IMAGE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:430,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:431,1
    - Dst: fu_jabra_gnp_write_chunks
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:436,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:436,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:439,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:442,1
    - Dst: fu_jabra_gnp_read_verify_status
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:445,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:445,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:447,1
    - Dst: fu_jabra_gnp_write_version
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:450,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:451,1
    - Dst: fu_jabra_gnp_firmware_get_version_data
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:454,1
    - Dst: FU_JABRA_GNP_FIRMWARE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:454,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:457,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 5
    argNames:
    - self
    - firmware
    - img
    - progress
    - error
    argTypes:
    - FuJabraGnpDevice*
    - FuFirmware*
    - FuFirmware*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 365
    functionDepth: 5
    functionLinenumber: 365
    functionLinenumberEnd: 461
    functionName: fu_jabra_gnp_device_write_image
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_jabra_gnp_image_get_crc32
    - fu_jabra_gnp_write_partition
    - fu_jabra_gnp_write_chunks
    - FU_JABRA_GNP_IMAGE
    - fu_chunk_array_new_from_stream
    - fu_jabra_gnp_write_crc
    - fu_firmware_get_idx
    - fu_progress_add_step
    - fu_jabra_gnp_start
    - fu_progress_step_done
    - FU_DEVICE
    - fu_chunk_array_length
    - fu_jabra_gnp_firmware_get_version_data
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_jabra_gnp_write_version
    - fu_firmware_get_stream
    - FU_JABRA_GNP_FIRMWARE
    - fu_jabra_gnp_read_verify_status
    - fu_jabra_gnp_write_extended_crc
    - fu_jabra_gnp_flash_erase_done
    - g_autoptr
    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:470,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:471,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:471,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:474,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:475,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:477,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:478,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:480,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:481,1
    - Dst: fu_jabra_gnp_read_fwu_protocol
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:483,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:490,1
    - Dst: fu_jabra_gnp_device_write_image
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:491,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:494,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:496,1
    - Dst: fu_firmware_get_id
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:496,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:499,1
    - Dst: fu_jabra_gnp_write_dfu_from_squif
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:502,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: 506
      start: 463
    functionDepth: 6
    functionLinenumber: 463
    functionLinenumberEnd: 506
    functionName: fu_jabra_gnp_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_id
    - fu_progress_add_step
    - fu_progress_add_flag
    - fu_progress_step_done
    - g_prefix_error
    - fu_firmware_get_images
    - fu_jabra_gnp_device_write_image
    - fu_jabra_gnp_read_fwu_protocol
    - fu_firmware_get_size
    - fu_jabra_gnp_write_dfu_from_squif
    - FU_JABRA_GNP_DEVICE
    - g_autoptr
    - fu_progress_get_child
    - g_ptr_array_index
    - fu_progress_set_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: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_JABRA_GNP_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:514,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:516,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:518,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 530
    functionName: fu_jabra_gnp_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - FU_JABRA_GNP_DEVICE
    - g_set_error_literal
    - g_strcmp0
    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:535,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:536,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:537,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:538,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:539,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 532
    functionDepth: 3
    functionLinenumber: 532
    functionLinenumberEnd: 541
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:547,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:547,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:548,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:548,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:549,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:549,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:550,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:550,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:551,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:551,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:552,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:552,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:553,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:553,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:554,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuJabraGnpDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 543
    functionDepth: 6
    functionLinenumber: 543
    functionLinenumberEnd: 555
    functionName: fu_jabra_gnp_device_init
    functionSourceFile: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - 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:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuJabraGnpDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 568
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_duphandle
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:46,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:49,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:51,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:54,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:55,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:56,1
    - Dst: curl_easy_perform
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:57,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:58,1
    - Dst: curl_easy_strerror
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:58,1
    - Dst: curl_easy_getinfo
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:59,1
    - Dst: curl_easy_cleanup
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - fixture
    - endpoint
    - data
    - len
    argTypes:
    - FuTestFixture*
    - gchar*
    - gchar*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 62
    functionName: fu_self_test_mock_snapd_easy_post_request
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - curl_easy_getinfo
    - g_debug
    - curl_easy_duphandle
    - curl_easy_strerror
    - curl_easy_perform
    - g_strdup_printf
    - curl_easy_cleanup
    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/snapd-uefi/fu-self-test.c:69,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: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: fu_self_test_curl_write_callback
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/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/snapd-uefi/fu-self-test.c:76,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:79,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:79,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:80,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:83,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:84,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:85,1
    - Dst: curl_easy_perform
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:86,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:87,1
    - Dst: curl_easy_strerror
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:87,1
    - Dst: curl_easy_getinfo
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:88,1
    - Dst: curl_easy_cleanup
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:89,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:91,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:92,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:94,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - fixture
    - endpoint
    argTypes:
    - FuTestFixture*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 97
    functionName: fu_self_test_mock_snapd_easy_get_request
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - curl_easy_getinfo
    - curl_easy_duphandle
    - g_debug
    - g_bytes_new
    - curl_easy_strerror
    - curl_easy_perform
    - g_strdup_printf
    - g_byte_array_new
    - g_assert_true
    - g_autoptr
    - curl_easy_cleanup
    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/snapd-uefi/fu-self-test.c:109,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:110,1
    - Dst: g_key_file_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:110,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:111,1
    - Dst: fu_self_test_mock_snapd_easy_get_request
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:113,1
    - Dst: g_key_file_load_from_bytes
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:115,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:116,1
    - Dst: g_key_file_get_uint64
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:118,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:119,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:120,1
    - Dst: g_key_file_get_uint64
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:122,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:123,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:124,1
    - Dst: g_key_file_get_uint64
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:126,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:127,1
    - Dst: g_assert_cmpuint
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - fixture
    - calls
    argTypes:
    - FuTestFixture*
    - FuTestSnapdCalls
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 129
    functionName: fu_self_test_mock_snapd_assert_calls
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_self_test_mock_snapd_easy_get_request
    - g_key_file_new
    - g_key_file_load_from_bytes
    - g_assert_cmpuint
    - g_assert_no_error
    - g_key_file_get_uint64
    - 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/snapd-uefi/fu-self-test.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - FuTestFixture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: fu_self_test_mock_snapd_reset
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/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/snapd-uefi/fu-self-test.c:140,1
    - Dst: fu_self_test_mock_snapd_easy_post_request
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:142,1
    - Dst: strlen
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fixture
    - scenario
    argTypes:
    - FuTestFixture*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: fu_self_test_mock_snapd_setup_scenario
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    - fu_self_test_mock_snapd_easy_post_request
    - 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/snapd-uefi/fu-self-test.c:151,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:154,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:157,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:158,1
    - Dst: curl_slist_append
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:159,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:160,1
    - Dst: fu_self_test_mock_snapd_reset
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - FuTestFixture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 166
    functionName: fu_self_test_mock_snapd_init
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - curl_slist_append
    - curl_easy_setopt
    - fu_self_test_mock_snapd_reset
    - g_assert_nonnull
    - curl_easy_init
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_self_test_mock_snapd_init(FuTestFixture *fixture)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:173,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:175,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:177,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:179,1
    - Dst: fu_temporary_directory_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:181,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:182,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:184,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:192,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:196,1
    - Dst: fu_self_test_mock_snapd_init
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:198,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:201,1
    - Dst: fu_self_test_mock_snapd_setup_scenario
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:204,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:206,1
    - Dst: fu_temporary_directory_build
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:210,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:211,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:213,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:214,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:217,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - fixture
    - user_data
    argTypes:
    - FuTestFixture*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 168
    functionDepth: 6
    functionLinenumber: 168
    functionLinenumberEnd: 219
    functionName: fu_self_test_set_up
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_getenv
    - fu_context_new
    - fu_context_set_path
    - g_debug
    - fu_context_add_flag
    - g_setenv
    - fu_self_test_mock_snapd_init
    - fu_self_test_mock_snapd_setup_scenario
    - fu_temporary_directory_build
    - g_assert_no_error
    - fu_context_load_quirks
    - g_assert_true
    - fu_temporary_directory_new
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_self_test_set_up(FuTestFixture *fixture, gconstpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_unsetenv
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:226,1
    - Dst: fu_self_test_mock_snapd_reset
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:229,1
    - Dst: curl_easy_cleanup
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:232,1
    - Dst: curl_slist_free_all
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:235,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:237,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:238,1
    - Dst: g_free
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - fixture
    - user_data
    argTypes:
    - FuTestFixture*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 240
    functionName: fu_self_test_tear_down
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_unsetenv
    - fu_self_test_mock_snapd_reset
    - g_object_unref
    - g_free
    - curl_slist_free_all
    - curl_easy_cleanup
    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/snapd-uefi/fu-self-test.c:251,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:253,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:256,1
    - Dst: fu_efivars_set_data_bytes
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:258,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: 259
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 259
    functionName: fu_test_mock_efivar_content
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_efivars_set_data_bytes
    - g_bytes_new_take
    - g_autoptr
    - g_file_get_contents
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:267,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:271,1
    - Dst: fu_context_get_path
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:275,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:279,1
    - Dst: g_build_filename
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:281,1
    - Dst: fu_path_mkdir
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:283,1
    - Dst: fu_test_mock_efivar_content
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:286,1
    - Dst: fu_test_mock_efivar_content
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - fixture
    - efivars
    - error
    argTypes:
    - FuTestFixture*
    - FuEfivars*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 298
    functionName: fu_test_mock_dbx_efivars
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_test_mock_efivar_content
    - fu_context_get_path
    - fu_path_mkdir
    - g_test_build_filename
    - g_build_filename
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_test_mock_dbx_efivars(FuTestFixture *fixture, FuEfivars
      *efivars, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:304,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:305,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - socket_path_override
    argTypes:
    - FuContext*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 311
    functionName: fu_self_test_snapd_uefi_plugin_new_with_test_defaults
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_new_from_gtype
    - fu_plugin_set_config_default
    linkageType: ''
    returnType: FuPlugin
    signature: "FuPlugin *\nfu_self_test_snapd_uefi_plugin_new_with_test_defaults(FuContext
      *ctx,\n\t\t\t\t\t\t      const gchar *socket_path_override)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:319,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:320,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:322,1
    - Dst: g_file_get_contents
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:324,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:325,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:326,1
    - Dst: g_bytes_new_take
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:328,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 330
    functionName: fu_test_mock_dbx_update_firmware
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_file_get_contents
    - g_assert_no_error
    - g_bytes_new_take
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - fu_firmware_new_from_bytes
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_test_mock_dbx_update_firmware(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:339,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:340,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:341,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:342,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:342,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:343,1
    - Dst: fu_self_test_snapd_uefi_plugin_new_with_test_defaults
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:344,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:345,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:346,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:349,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:350,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:351,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:352,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:355,1
    - Dst: fu_test_mock_dbx_efivars
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:359,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:360,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:362,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:362,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:363,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:364,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:365,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:367,1
    - Dst: fu_uefi_device_set_guid
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:368,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:368,1
    - Dst: fu_uefi_device_set_name
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:369,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:369,1
    - Dst: fu_plugin_runner_device_register
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:370,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:370,1
    - Dst: fu_test_mock_dbx_update_firmware
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:372,1
    - Dst: fu_plugin_runner_composite_peek_firmware
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:373,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:374,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:376,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:380,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:381,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:382,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:385,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:386,1
    - Dst: fu_plugin_runner_composite_cleanup
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:388,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:389,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:390,1
    - Dst: fu_self_test_mock_snapd_assert_calls
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:393,1
    - Dst: fu_self_test_mock_snapd_assert_calls
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 2
    argNames:
    - fixture
    - user_data
    argTypes:
    - FuTestFixture*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 332
    functionDepth: 4
    functionLinenumber: 332
    functionLinenumberEnd: 406
    functionName: fu_uefi_dbx_test_plugin_update
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_test_mock_dbx_efivars
    - fu_progress_add_flag
    - fu_plugin_runner_composite_peek_firmware
    - fu_progress_new
    - g_object_new
    - fu_plugin_runner_device_register
    - fu_self_test_snapd_uefi_plugin_new_with_test_defaults
    - fu_plugin_runner_startup
    - fu_plugin_runner_composite_cleanup
    - fu_context_get_efivars
    - fu_progress_add_step
    - g_ptr_array_new
    - fu_progress_step_done
    - FU_DEVICE
    - fu_uefi_device_set_guid
    - fu_uefi_device_set_name
    - fu_progress_get_child
    - fu_self_test_mock_snapd_assert_calls
    - fu_test_mock_dbx_update_firmware
    - g_ptr_array_add
    - g_assert_no_error
    - g_test_skip
    - g_assert_true
    - FU_UEFI_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_test_plugin_update(FuTestFixture *fixture, gconstpointer
      user_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:417,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:418,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:419,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:420,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:420,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:421,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:421,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:422,1
    - Dst: fu_self_test_snapd_uefi_plugin_new_with_test_defaults
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:423,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:424,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:425,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:428,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:433,1
    - Dst: fu_test_mock_dbx_efivars
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:437,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:438,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:440,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:441,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:442,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:444,1
    - Dst: fu_uefi_device_set_guid
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:445,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:445,1
    - Dst: fu_uefi_device_set_name
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:446,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:446,1
    - Dst: fu_plugin_runner_device_register
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:447,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:447,1
    - Dst: fu_test_mock_dbx_update_firmware
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:449,1
    - Dst: fu_plugin_runner_composite_peek_firmware
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:450,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:451,1
    - Dst: g_str_equal
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:457,1
    - Dst: g_str_equal
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:458,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:459,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:460,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:461,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:462,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:464,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:465,1
    - Dst: g_ptr_array_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:469,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:470,1
    - Dst: fu_plugin_runner_composite_cleanup
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:472,1
    - Dst: g_str_equal
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:473,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:474,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:475,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:476,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:478,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:479,1
    - Dst: fu_self_test_mock_snapd_assert_calls
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:482,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 2
    argNames:
    - fixture
    - user_data
    argTypes:
    - FuTestFixture*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 408
    functionDepth: 4
    functionLinenumber: 408
    functionLinenumberEnd: 488
    functionName: fu_uefi_dbx_test_plugin_failed_update
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_test_mock_dbx_efivars
    - g_assert_nonnull
    - fu_plugin_runner_composite_peek_firmware
    - fu_progress_new
    - g_object_new
    - fu_plugin_runner_device_register
    - fu_self_test_snapd_uefi_plugin_new_with_test_defaults
    - fu_plugin_runner_startup
    - fu_plugin_runner_composite_cleanup
    - fu_context_get_efivars
    - g_ptr_array_new
    - g_assert_cmpstr
    - FU_DEVICE
    - fu_uefi_device_set_guid
    - fu_uefi_device_set_name
    - fu_self_test_mock_snapd_assert_calls
    - g_str_equal
    - fu_test_mock_dbx_update_firmware
    - g_assert_error
    - g_ptr_array_add
    - g_assert_no_error
    - g_clear_error
    - g_test_skip
    - g_assert_true
    - FU_UEFI_DEVICE
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_uefi_dbx_test_plugin_failed_update(FuTestFixture *fixture,
      gconstpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:496,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:497,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:498,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:498,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:499,1
    - Dst: fu_self_test_snapd_uefi_plugin_new_with_test_defaults
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:500,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:501,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:504,1
    - Dst: fu_test_mock_dbx_efivars
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:508,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:509,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:511,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:512,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:513,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:515,1
    - Dst: fu_uefi_device_set_guid
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:516,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:516,1
    - Dst: fu_uefi_device_set_name
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:517,1
    - Dst: FU_UEFI_DEVICE
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:517,1
    - Dst: fu_plugin_runner_device_register
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:518,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:518,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:520,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:520,1
    - Dst: g_str_equal
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:521,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:523,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:525,1
    - Dst: fu_self_test_mock_snapd_assert_calls
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - fixture
    - user_data
    argTypes:
    - FuTestFixture*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 490
    functionDepth: 4
    functionLinenumber: 490
    functionLinenumberEnd: 531
    functionName: fu_uefi_dbx_test_plugin_coldplug_probed_device
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_test_mock_dbx_efivars
    - fu_device_has_inhibit
    - fu_progress_new
    - g_object_new
    - fu_plugin_runner_device_register
    - fu_self_test_snapd_uefi_plugin_new_with_test_defaults
    - fu_plugin_runner_startup
    - fu_context_get_efivars
    - FU_DEVICE
    - g_assert_false
    - fu_uefi_device_set_guid
    - fu_self_test_mock_snapd_assert_calls
    - fu_uefi_device_set_name
    - g_str_equal
    - g_assert_no_error
    - g_test_skip
    - g_assert_true
    - FU_UEFI_DEVICE
    - g_autoptr
    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/snapd-uefi/fu-self-test.c:539,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:539,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:540,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:541,1
    - Dst: fu_self_test_snapd_uefi_plugin_new_with_test_defaults
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:542,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:545,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:549,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:552,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:553,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:555,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:558,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:559,1
    - Dst: fu_self_test_mock_snapd_assert_calls
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:560,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:565,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:566,1
    - Dst: fu_self_test_mock_snapd_assert_calls
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - fixture
    - user_data
    argTypes:
    - FuTestFixture*
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 533
    functionDepth: 6
    functionLinenumber: 533
    functionLinenumberEnd: 572
    functionName: fu_uefi_dbx_test_plugin_startup
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_self_test_snapd_uefi_plugin_new_with_test_defaults
    - fu_plugin_runner_startup
    - g_assert_error
    - g_assert_no_error
    - g_test_skip
    - fu_progress_new
    - g_assert_false
    - fu_context_load_quirks
    - g_assert_true
    - g_autoptr
    - 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/snapd-uefi/fu-self-test.c:668,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:669,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:671,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:678,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:684,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:690,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:696,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:702,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:708,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:714,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:721,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:727,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:734,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:740,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:747,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:753,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:759,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:765,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:771,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:778,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:784,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:791,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:798,1
    - Dst: g_test_add
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:804,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/snapd-uefi/fu-self-test.c:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 811
    functionName: main
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add
    - g_test_init
    - g_test_run
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_plugin
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:37,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:39,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:41,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:43,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:45,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:48,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - self
    - device
    argTypes:
    - FuSnapPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 53
    functionName: fu_snapd_uefi_plugin_device_to_key_database
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_debug
    - fu_device_get_plugin
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_snapd_uefi_plugin_device_to_key_database(FuSnapPlugin *self, FuDevice *device)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SNAPD_UEFI_PLUGIN
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:58,1
    - Dst: fu_snapd_uefi_plugin_device_to_key_database
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:61,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:68,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - plugin
    - device
    argTypes:
    - FuPlugin*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 55
    functionDepth: 5
    functionLinenumber: 55
    functionLinenumberEnd: 72
    functionName: fu_snapd_uefi_plugin_device_registered
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c
    functionUses: 0
    functionsReached:
    - FU_SNAPD_UEFI_PLUGIN
    - fu_device_inhibit
    - FU_DEVICE
    - fu_snapd_uefi_plugin_device_to_key_database
    linkageType: ''
    returnType: void
    signature: void fu_snapd_uefi_plugin_device_registered(FuPlugin *plugin, FuDevice
      *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:80,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: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: fu_snapd_uefi_plugin_rsp_cb
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c
    functionUses: 0
    functionsReached:
    - g_byte_array_append
    linkageType: ''
    returnType: size_t
    signature: size_t fu_snapd_uefi_plugin_rsp_cb(char *ptr, size_t size, size_t nmemb,
      void *userdata)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:94,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:95,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:96,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:97,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:98,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:98,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:102,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:103,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:104,1
    - Dst: fwupd_json_parser_load_from_bytes
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:107,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:110,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:113,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:116,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 91
    functionDepth: 8
    functionLinenumber: 91
    functionLinenumberEnd: 120
    functionName: fu_snapd_uefi_plugin_extract_error_message
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fwupd_json_parser_set_max_depth
    - g_bytes_new
    - fwupd_json_parser_load_from_bytes
    - fwupd_json_parser_set_max_quoted
    - fwupd_json_object_get_object
    - fwupd_json_parser_new
    - fwupd_json_object_get_string
    - g_autoptr
    - fwupd_json_node_get_object
    - fwupd_json_parser_set_max_items
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_snapd_uefi_plugin_extract_error_message(const guint8 *data, gsize len)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:133,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:133,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:137,1
    - Dst: curl_easy_duphandle
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:142,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:144,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:146,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:148,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:149,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:152,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:153,1
    - Dst: curl_easy_perform
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:155,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:158,1
    - Dst: curl_easy_strerror
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:162,1
    - Dst: curl_easy_getinfo
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:166,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:168,1
    - Dst: fu_snapd_uefi_plugin_extract_error_message
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:181,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:183,1
    - Dst: g_info
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:186,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:191,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 5
    argNames:
    - self
    - endpoint
    - data
    - len
    - error
    argTypes:
    - FuSnapPlugin*
    - gchar*
    - gchar*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 122
    functionDepth: 9
    functionLinenumber: 122
    functionLinenumberEnd: 208
    functionName: fu_snapd_uefi_plugin_simple_req
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c
    functionUses: 0
    functionsReached:
    - curl_easy_setopt
    - curl_easy_getinfo
    - curl_easy_duphandle
    - g_set_error
    - fu_strsafe
    - curl_easy_strerror
    - g_set_error_literal
    - fu_snapd_uefi_plugin_extract_error_message
    - g_info
    - curl_easy_perform
    - g_strdup_printf
    - g_byte_array_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_snapd_uefi_plugin_simple_req(FuSnapPlugin *self,\n\t\t\t\tconst
      gchar *endpoint,\n\t\t\t\tconst gchar *data,\n\t\t\t\tgsize len,\n\t\t\t\tGError
      **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.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_snapd_uefi_plugin_is_in_snap
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c
    functionUses: 0
    functionsReached:
    - getenv
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_snapd_uefi_plugin_is_in_snap(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_SNAPD_UEFI_PLUGIN
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:219,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:220,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:222,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:223,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:224,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:225,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:228,1
    - Dst: fu_snapd_uefi_plugin_is_in_snap
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:232,1
    - Dst: fu_context_has_flag
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:233,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:234,1
    - Dst: curl_easy_init
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:242,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:244,1
    - Dst: fu_snapd_uefi_plugin_is_in_snap
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:248,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:252,1
    - Dst: curl_slist_append
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:258,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:259,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:262,1
    - Dst: fwupd_json_object_to_string
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:263,1
    - Dst: fu_snapd_uefi_plugin_simple_req
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:264,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:271,1
    - Dst: g_info
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:278,1
    - Dst: g_info
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:280,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 216
    functionDepth: 10
    functionLinenumber: 216
    functionLinenumberEnd: 284
    functionName: fu_snapd_uefi_plugin_startup
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c
    functionUses: 0
    functionsReached:
    - fu_context_has_flag
    - curl_easy_setopt
    - curl_slist_append
    - fu_snapd_uefi_plugin_simple_req
    - g_info
    - fwupd_json_object_new
    - fu_snapd_uefi_plugin_is_in_snap
    - g_set_error_literal
    - fwupd_json_object_to_string
    - fu_plugin_get_context
    - curl_easy_init
    - FU_SNAPD_UEFI_PLUGIN
    - g_error_matches
    - fu_plugin_get_config_value
    - g_autoptr
    - fwupd_json_object_add_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_snapd_uefi_plugin_startup(FuPlugin *plugin, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:289,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:289,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:290,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:295,1
    - Dst: fwupd_json_object_to_string
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:296,1
    - Dst: fu_snapd_uefi_plugin_simple_req
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:297,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - self
    - device
    - error
    argTypes:
    - FuSnapPlugin*
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 286
    functionDepth: 10
    functionLinenumber: 286
    functionLinenumberEnd: 308
    functionName: fu_snapd_uefi_plugin_cleanup
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c
    functionUses: 0
    functionsReached:
    - fu_snapd_uefi_plugin_simple_req
    - fwupd_json_object_add_string
    - fwupd_json_object_new
    - g_prefix_error_literal
    - g_autoptr
    - fwupd_json_object_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_snapd_uefi_plugin_cleanup(FuSnapPlugin *self, FuDevice
      *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_SNAPD_UEFI_PLUGIN
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:313,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:320,1
    - Dst: fu_snapd_uefi_plugin_device_to_key_database
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:321,1
    - Dst: fu_snapd_uefi_plugin_cleanup
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:323,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - plugin
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 310
    functionDepth: 11
    functionLinenumber: 310
    functionLinenumberEnd: 327
    functionName: fu_snapd_uefi_plugin_composite_cleanup
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c
    functionUses: 0
    functionsReached:
    - FU_SNAPD_UEFI_PLUGIN
    - fu_snapd_uefi_plugin_cleanup
    - g_ptr_array_index
    - fu_snapd_uefi_plugin_device_to_key_database
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_snapd_uefi_plugin_composite_cleanup(FuPlugin *plugin, GPtrArray
      *devices, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_SNAPD_UEFI_PLUGIN
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:337,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:339,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:339,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:340,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:341,1
    - Dst: fu_snapd_uefi_plugin_device_to_key_database
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:347,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:351,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:354,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:354,1
    - Dst: fwupd_json_object_add_bytes
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:357,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:359,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:359,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:362,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:363,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:363,1
    - Dst: fwupd_json_array_add_bytes
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:366,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:368,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:373,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:374,1
    - Dst: fwupd_json_object_to_string
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:376,1
    - Dst: fu_snapd_uefi_plugin_simple_req
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:377,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:382,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 6
    argNames:
    - plugin
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 329
    functionDepth: 10
    functionLinenumber: 329
    functionLinenumberEnd: 388
    functionName: fu_snapd_uefi_plugin_composite_peek_firmware
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - fu_snapd_uefi_plugin_simple_req
    - fwupd_json_object_add_string
    - fu_firmware_get_bytes
    - fwupd_json_object_new
    - fwupd_json_object_to_string
    - fwupd_json_array_add_bytes
    - g_prefix_error_literal
    - fu_firmware_get_images
    - FU_SNAPD_UEFI_PLUGIN
    - fu_snapd_uefi_plugin_device_to_key_database
    - fwupd_json_array_new
    - g_autoptr
    - g_ptr_array_index
    - fwupd_json_object_add_bytes
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_snapd_uefi_plugin_composite_peek_firmware(FuPlugin *plugin,\n\t\t\t\t\t
      \    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_strv_contains
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:401,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:402,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - plugin
    - key
    - value
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 390
    functionDepth: 3
    functionLinenumber: 390
    functionLinenumberEnd: 410
    functionName: fu_snapd_uefi_plugin_modify_config
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c
    functionUses: 0
    functionsReached:
    - g_strv_contains
    - fu_plugin_set_config_value
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_snapd_uefi_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:
    - FuSnapPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: fu_snapd_uefi_plugin_init
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_snapd_uefi_plugin_init(FuSnapPlugin *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_SNAPD_UEFI_PLUGIN
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:420,1
    - Dst: g_free
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:422,1
    - Dst: curl_slist_free_all
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:424,1
    - Dst: curl_easy_cleanup
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:426,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 429
    functionName: fu_snapd_uefi_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - FU_SNAPD_UEFI_PLUGIN
    - g_free
    - curl_slist_free_all
    - curl_easy_cleanup
    linkageType: ''
    returnType: void
    signature: void fu_snapd_uefi_plugin_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:434,1
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSnapPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 444
    functionName: fu_snapd_uefi_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_snapd_uefi_plugin_class_init(FuSnapPluginClass *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-raw-device.c
    functionUses: 1630
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:25,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:26,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:27,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:28,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-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_raw_device_to_string
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    functionUses: 0
    functionsReached:
    - FU_WACOM_RAW_DEVICE
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_wacom_raw_device_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomRawDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: fu_wacom_raw_device_get_echo_next
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_wacom_raw_device_get_echo_next(FuWacomRawDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomRawDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: fu_wacom_raw_device_get_block_sz
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    functionUses: 0
    functionsReached:
    - GET_PRIVATE
    linkageType: ''
    returnType: gsize
    signature: gsize fu_wacom_raw_device_get_block_sz(FuWacomRawDevice *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:56,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:56,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:58,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:59,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:60,1
    - Dst: fu_wacom_raw_device_get_echo_next
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:60,1
    - Dst: fu_wacom_raw_device_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:61,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:67,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:73,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:73,1
    - Dst: fu_device_add_instance_id_full
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:81,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:81,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomRawDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 94
    functionName: fu_wacom_raw_device_check_mpu
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_wacom_raw_request_set_cmd
    - fu_struct_wacom_raw_request_set_echo
    - fu_struct_wacom_raw_request_new
    - g_set_error
    - fu_wacom_raw_device_get_echo_next
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_wacom_raw_device_cmd
    - fu_device_add_instance_id_full
    - fu_struct_wacom_raw_request_set_report_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_raw_device_check_mpu(FuWacomRawDevice *self, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:100,1
    - Dst: fu_struct_wacom_raw_fw_detach_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:101,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:103,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:104,1
    - Dst: fu_wacom_raw_device_set_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:107,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:108,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:109,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:111,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:112,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:119,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:120,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:120,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:122,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-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_raw_device_detach
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - fu_device_sleep
    - g_steal_pointer
    - fu_device_has_private_flag
    - FU_DEVICE
    - FU_WACOM_RAW_DEVICE
    - fu_device_has_flag
    - g_error_matches
    - fu_wacom_raw_device_set_feature
    - g_autoptr
    - fu_struct_wacom_raw_fw_detach_request_new
    - g_propagate_prefixed_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_raw_device_detach(FuDevice *device, FuProgress *progress,
      GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:132,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:132,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:134,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:135,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:136,1
    - Dst: fu_wacom_raw_device_get_echo_next
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:136,1
    - Dst: fu_wacom_raw_device_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:137,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:143,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomRawDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 155
    functionName: fu_wacom_raw_device_check_mode
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_wacom_raw_request_set_cmd
    - fu_struct_wacom_raw_request_set_echo
    - fu_struct_wacom_raw_request_new
    - g_set_error
    - fu_wacom_raw_device_get_echo_next
    - g_prefix_error_literal
    - fu_wacom_raw_device_cmd
    - fu_struct_wacom_raw_request_set_report_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_raw_device_check_mode(FuWacomRawDevice *self, GError
      **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:162,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:162,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:164,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:165,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:166,1
    - Dst: fu_wacom_raw_device_get_echo_next
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:166,1
    - Dst: fu_wacom_raw_device_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:167,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:173,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:176,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:177,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomRawDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 179
    functionName: fu_wacom_raw_device_ensure_version_bootloader
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_wacom_raw_request_set_cmd
    - fu_struct_wacom_raw_request_set_echo
    - fu_struct_wacom_raw_request_new
    - fu_device_set_version_bootloader
    - fu_wacom_raw_device_get_echo_next
    - g_prefix_error_literal
    - FU_DEVICE
    - g_strdup_printf
    - fu_wacom_raw_device_cmd
    - fu_struct_wacom_raw_request_set_report_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_raw_device_ensure_version_bootloader(FuWacomRawDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:188,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:189,1
    - Dst: FU_WACOM_RAW_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:190,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:191,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:192,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:195,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:195,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:198,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:199,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:203,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:206,1
    - Dst: fu_wacom_raw_device_check_mode
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:211,1
    - Dst: fu_wacom_raw_device_ensure_version_bootloader
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:213,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:217,1
    - Dst: FuWacomRawDeviceClass*::write_firmware
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-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: 3
    functionLinenumber: 181
    functionLinenumberEnd: 222
    functionName: fu_wacom_raw_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - fu_firmware_get_bytes
    - fu_wacom_raw_device_ensure_version_bootloader
    - FU_WACOM_RAW_DEVICE_GET_CLASS
    - fu_chunk_array_new_from_bytes
    - FuWacomRawDeviceClass*::write_firmware
    - fu_firmware_get_addr
    - FU_WACOM_RAW_DEVICE
    - fu_wacom_raw_device_check_mode
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_raw_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_hidraw_device_get_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:227,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - data
    - datasz
    - error
    argTypes:
    - FuWacomRawDevice*
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 5
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: fu_wacom_raw_device_get_feature
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_get_feature
    - FU_HIDRAW_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_raw_device_get_feature(FuWacomRawDevice *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-raw-device.c:240,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - data
    - datasz
    - error
    argTypes:
    - FuWacomRawDevice*
    - guint8*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 234
    functionDepth: 5
    functionLinenumber: 234
    functionLinenumberEnd: 245
    functionName: fu_wacom_raw_device_set_feature
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    functionUses: 1
    functionsReached:
    - fu_hidraw_device_set_feature
    - FU_HIDRAW_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_raw_device_set_feature(FuWacomRawDevice *self,\n\t\t\t\tconst
      guint8 *data,\n\t\t\t\tguint datasz,\n\t\t\t\tGError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:255,1
    - Dst: fu_wacom_raw_device_get_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:257,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:258,1
    - Dst: fu_struct_wacom_raw_response_parse
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:261,1
    - Dst: fu_wacom_raw_common_check_reply
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:264,1
    - Dst: fu_wacom_raw_common_rc_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:267,1
    - Dst: fu_struct_wacom_raw_response_get_resp
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:273,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - self
    - st_req
    - rsp_value
    - flags
    - error
    argTypes:
    - FuWacomRawDevice*
    - FuStructWacomRawRequest*
    - guint8*
    - FuWacomRawDeviceCmdFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 247
    functionDepth: 6
    functionLinenumber: 247
    functionLinenumberEnd: 277
    functionName: fu_wacom_raw_device_cmd_response
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_wacom_raw_response_get_resp
    - g_prefix_error_literal
    - fu_struct_wacom_raw_response_parse
    - fu_wacom_raw_device_get_feature
    - fu_wacom_raw_common_rc_set_error
    - g_autoptr
    - fu_wacom_raw_common_check_reply
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_raw_device_cmd_response(FuWacomRawDevice *self,\n\t\t\t\t
      const FuStructWacomRawRequest *st_req,\n\t\t\t\t guint8 *rsp_value,\n\t\t\t\t
      FuWacomRawDeviceCmdFlags flags,\n\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:288,1
    - Dst: fu_wacom_raw_device_cmd_response
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 285
    functionDepth: 7
    functionLinenumber: 285
    functionLinenumberEnd: 295
    functionName: fu_wacom_raw_device_cmd_response_cb
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_raw_device_cmd_response
    - FU_WACOM_RAW_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_raw_device_cmd_response_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_wacom_raw_device_set_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:305,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:306,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:309,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:309,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:314,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:314,1
    - Dst: fu_wacom_raw_device_cmd_response
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - self
    - st_req
    - rsp_value
    - delay_ms
    - flags
    - error
    argTypes:
    - FuWacomRawDevice*
    - FuStructWacomRawRequest*
    - guint8*
    - guint
    - FuWacomRawDeviceCmdFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 297
    functionDepth: 7
    functionLinenumber: 297
    functionLinenumberEnd: 322
    functionName: fu_wacom_raw_device_cmd
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    functionUses: 3
    functionsReached:
    - fu_wacom_raw_device_cmd_response
    - fu_device_sleep
    - g_prefix_error_literal
    - fu_device_retry_full
    - FU_DEVICE
    - fu_wacom_raw_device_set_feature
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_raw_device_cmd(FuWacomRawDevice *self,\n\t\t\tconst
      FuStructWacomRawRequest *st_req,\n\t\t\tguint8 *rsp_value,\n\t\t\tguint delay_ms,\n\t\t\tFuWacomRawDeviceCmdFlags
      flags,\n\t\t\tGError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:330,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:331,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:334,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:335,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:340,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:341,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 351
    functionName: fu_wacom_raw_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_strtoull
    - g_set_error_literal
    - FU_WACOM_RAW_DEVICE
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_raw_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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:356,1
    - Dst: FU_IS_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:356,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:357,1
    - Dst: FU_IS_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:357,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:360,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 353
    functionDepth: 3
    functionLinenumber: 353
    functionLinenumberEnd: 364
    functionName: fu_wacom_raw_device_replace
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - g_return_if_fail
    - fu_device_has_private_flag
    - FU_IS_WACOM_RAW_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_wacom_raw_device_replace(FuDevice *device, FuDevice *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:369,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:370,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:371,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:372,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:373,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 375
    functionName: fu_wacom_raw_device_set_progress
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_wacom_raw_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:380,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:382,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:382,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:383,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:383,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:384,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:384,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:385,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:385,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:386,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:386,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:387,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:387,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:388,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:388,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:389,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:389,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:390,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:390,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:391,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:391,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:392,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:392,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:393,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomRawDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 377
    functionDepth: 6
    functionLinenumber: 377
    functionLinenumberEnd: 395
    functionName: fu_wacom_raw_device_init
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_wacom_raw_device_init(FuWacomRawDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomRawDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 407
    functionName: fu_wacom_raw_device_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wacom_raw_device_class_init(FuWacomRawDeviceClass *klass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_wacom_raw_response_get_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.c:18,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.c:19,1
    - Dst: fu_struct_wacom_raw_request_get_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.c:24,1
    - Dst: fu_struct_wacom_raw_request_get_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.c:27,1
    - Dst: fu_struct_wacom_raw_response_get_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.c:28,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.c:29,1
    - Dst: fu_struct_wacom_raw_request_get_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.c:33,1
    - Dst: fu_struct_wacom_raw_response_get_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.c:34,1
    - Dst: fu_struct_wacom_raw_request_get_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.c:37,1
    - Dst: fu_struct_wacom_raw_response_get_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.c:38,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.c:39,1
    - Dst: fu_struct_wacom_raw_request_get_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.c:43,1
    - Dst: fu_struct_wacom_raw_response_get_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-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_raw_common_check_reply
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.c
    functionUses: 1
    functionsReached:
    - fu_struct_wacom_raw_request_get_cmd
    - fu_struct_wacom_raw_response_get_echo
    - fu_struct_wacom_raw_response_get_report_id
    - fu_struct_wacom_raw_request_get_report_id
    - g_set_error
    - fu_struct_wacom_raw_request_get_echo
    - fu_struct_wacom_raw_response_get_cmd
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_raw_common_check_reply(const FuStructWacomRawRequest
      *st_req,\n\t\t\t\tconst FuStructWacomRawResponse *st_rsp,\n\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_wacom_raw_response_get_resp
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.c:53,1
    - Dst: fu_error_map_entry_to_gerror
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.c:63,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st_rsp
    - error
    argTypes:
    - FuStructWacomRawResponse*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: fu_wacom_raw_common_rc_set_error
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.c
    functionUses: 1
    functionsReached:
    - fu_error_map_entry_to_gerror
    - fu_struct_wacom_raw_response_get_resp
    - G_N_ELEMENTS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_raw_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: 74
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: fu_wacom_raw_common_block_is_empty
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_raw_common_block_is_empty(const guint8 *data, guint16
      datasz)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_RAW_EMR_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:23,1
    - Dst: fu_wacom_raw_device_check_mpu
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:26,1
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:26,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:30,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:31,1
    - Dst: fu_wacom_raw_device_get_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:35,1
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:35,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:40,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:47,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 20
    functionDepth: 6
    functionLinenumber: 20
    functionLinenumberEnd: 53
    functionName: fu_wacom_raw_emr_device_setup
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version_raw
    - fu_device_remove_flag
    - fu_wacom_raw_device_check_mpu
    - fu_device_has_flag
    - FU_WACOM_RAW_DEVICE
    - fu_wacom_raw_device_get_feature
    - FU_WACOM_RAW_EMR_DEVICE
    - fu_memread_uint16_safe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_raw_emr_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_sum8
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - init1
    - buf
    - bufsz
    argTypes:
    - guint8
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: fu_wacom_raw_emr_device_calc_checksum
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c
    functionUses: 0
    functionsReached:
    - fu_sum8
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_wacom_raw_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-raw-emr-device.c:64,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:64,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:67,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:68,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:69,1
    - Dst: fu_wacom_raw_device_get_echo_next
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:71,1
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:71,1
    - Dst: fu_wacom_raw_emr_device_calc_checksum
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:73,1
    - Dst: fu_wacom_raw_device_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:76,1
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:76,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:82,1
    - Dst: g_usleep
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomRawEmrDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 61
    functionDepth: 8
    functionLinenumber: 61
    functionLinenumberEnd: 87
    functionName: fu_wacom_raw_emr_device_w9013_erase_data
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_wacom_raw_request_set_cmd
    - g_usleep
    - fu_struct_wacom_raw_request_set_echo
    - fu_struct_wacom_raw_request_new
    - fu_wacom_raw_device_get_echo_next
    - g_prefix_error_literal
    - FU_WACOM_RAW_DEVICE
    - fu_wacom_raw_device_cmd
    - fu_wacom_raw_emr_device_calc_checksum
    - fu_struct_wacom_raw_request_set_report_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_raw_emr_device_w9013_erase_data(FuWacomRawEmrDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:95,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:95,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:98,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:99,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:100,1
    - Dst: fu_wacom_raw_emr_device_calc_checksum
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:102,1
    - Dst: fu_wacom_raw_device_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:105,1
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:105,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:111,1
    - Dst: g_usleep
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - self
    - idx
    - block_nr
    - error
    argTypes:
    - FuWacomRawEmrDevice*
    - guint8
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 89
    functionDepth: 8
    functionLinenumber: 89
    functionLinenumberEnd: 116
    functionName: fu_wacom_raw_emr_device_w9013_erase_code
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_wacom_raw_request_set_cmd
    - g_usleep
    - fu_struct_wacom_raw_request_set_echo
    - fu_struct_wacom_raw_request_new
    - g_prefix_error_literal
    - FU_WACOM_RAW_DEVICE
    - fu_wacom_raw_device_cmd
    - fu_wacom_raw_emr_device_calc_checksum
    - fu_struct_wacom_raw_request_set_report_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_raw_emr_device_w9013_erase_code(FuWacomRawEmrDevice
      *self,\n\t\t\t\t\t guint8 idx,\n\t\t\t\t\t guint8 block_nr,\n\t\t\t\t\t GError
      **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:121,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:121,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:123,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:124,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:125,1
    - Dst: fu_wacom_raw_device_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:126,1
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:126,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:132,1
    - Dst: g_usleep
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomRawEmrDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 118
    functionDepth: 8
    functionLinenumber: 118
    functionLinenumberEnd: 137
    functionName: fu_wacom_raw_emr_device_w9021_erase_all
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_wacom_raw_request_set_cmd
    - g_usleep
    - fu_struct_wacom_raw_request_set_echo
    - fu_struct_wacom_raw_request_new
    - g_prefix_error_literal
    - FU_WACOM_RAW_DEVICE
    - fu_wacom_raw_device_cmd
    - fu_struct_wacom_raw_request_set_report_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_raw_emr_device_w9021_erase_all(FuWacomRawEmrDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:142,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:143,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:143,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:145,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:146,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:150,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:151,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:152,1
    - Dst: fu_wacom_raw_device_get_echo_next
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:154,1
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:154,1
    - Dst: fu_wacom_raw_device_set_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:155,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:156,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:161,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:162,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:162,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:164,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-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: 139
    functionDepth: 6
    functionLinenumber: 139
    functionLinenumberEnd: 169
    functionName: fu_wacom_raw_emr_device_attach
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_struct_wacom_raw_request_set_cmd
    - fu_struct_wacom_raw_request_set_echo
    - g_debug
    - fu_struct_wacom_raw_request_new
    - fu_wacom_raw_device_get_echo_next
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - fu_device_remove_flag
    - FU_DEVICE
    - FU_WACOM_RAW_DEVICE
    - fu_device_has_flag
    - fu_wacom_raw_device_set_feature
    - fu_struct_wacom_raw_request_set_report_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_raw_emr_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fu_wacom_raw_device_get_block_sz
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:179,1
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:179,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:180,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:180,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:185,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:193,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:203,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:204,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:205,1
    - Dst: fu_struct_wacom_raw_request_set_addr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:206,1
    - Dst: fu_struct_wacom_raw_request_set_size8
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:207,1
    - Dst: fu_struct_wacom_raw_request_set_data
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:208,1
    - Dst: fu_wacom_raw_emr_device_calc_checksum
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:213,1
    - Dst: fu_wacom_raw_emr_device_calc_checksum
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:214,1
    - Dst: fu_wacom_raw_device_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:215,1
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:215,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 6
    argNames:
    - self
    - idx
    - address
    - data
    - datasz
    - error
    argTypes:
    - FuWacomRawEmrDevice*
    - guint32
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 171
    functionDepth: 8
    functionLinenumber: 171
    functionLinenumberEnd: 225
    functionName: fu_wacom_raw_emr_device_write_block
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_wacom_raw_request_set_size8
    - fu_struct_wacom_raw_request_set_cmd
    - fu_struct_wacom_raw_request_set_echo
    - fu_struct_wacom_raw_request_new
    - g_set_error
    - g_prefix_error
    - FU_WACOM_RAW_DEVICE
    - fu_wacom_raw_device_cmd
    - fu_struct_wacom_raw_request_set_addr
    - fu_struct_wacom_raw_request_set_data
    - fu_wacom_raw_emr_device_calc_checksum
    - fu_struct_wacom_raw_request_set_report_id
    - g_autoptr
    - fu_wacom_raw_device_get_block_sz
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_raw_emr_device_write_block(FuWacomRawEmrDevice *self,\n\t\t\t\t
      \   guint32 idx,\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: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_RAW_EMR_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:233,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:237,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:238,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:239,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:240,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:243,1
    - Dst: fu_wacom_raw_emr_device_w9013_erase_data
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:244,1
    - Dst: fu_wacom_raw_emr_device_w9013_erase_code
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:247,1
    - Dst: fu_device_has_instance_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:253,1
    - Dst: fu_wacom_raw_emr_device_w9021_erase_all
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:254,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:257,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:260,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:261,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:264,1
    - Dst: fu_wacom_raw_common_block_is_empty
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:267,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:267,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:268,1
    - Dst: fu_wacom_raw_emr_device_write_block
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:270,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:271,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:272,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:273,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:274,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:277,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:277,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:279,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:281,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - device
    - chunks
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 227
    functionDepth: 9
    functionLinenumber: 227
    functionLinenumberEnd: 284
    functionName: fu_wacom_raw_emr_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_idx
    - fu_device_has_instance_id
    - fu_chunk_get_data_sz
    - fu_progress_add_flag
    - fu_wacom_raw_emr_device_w9021_erase_all
    - fu_wacom_raw_emr_device_w9013_erase_code
    - fu_wacom_raw_emr_device_write_block
    - fu_wacom_raw_common_block_is_empty
    - FU_WACOM_RAW_EMR_DEVICE
    - fu_progress_set_percentage_full
    - fu_progress_add_step
    - fu_progress_step_done
    - fu_chunk_get_data
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_chunk_get_address
    - fu_progress_set_id
    - fu_chunk_array_index
    - fu_wacom_raw_emr_device_w9013_erase_data
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_raw_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-raw-emr-device.c:289,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: fu_wacom_raw_emr_device_convert_version
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_wacom_raw_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-raw-emr-device.c:295,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:295,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:296,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomRawEmrDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: fu_wacom_raw_emr_device_init
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_name
    - fu_device_set_version_format
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_wacom_raw_emr_device_init(FuWacomRawEmrDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:302,1
    - Dst: FU_WACOM_RAW_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomRawEmrDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 308
    functionName: fu_wacom_raw_emr_device_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c
    functionUses: 0
    functionsReached:
    - FU_WACOM_RAW_DEVICE_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wacom_raw_emr_device_class_init(FuWacomRawEmrDeviceClass *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_IS_DRM_DEVICE
    - fu_device_has_flag
    - fu_plugin_cache_add
    - g_ptr_array_index
    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_plugin_cache_lookup
    - fu_device_add_child
    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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: fu_wacom_raw_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_gtype
    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:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomRawPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:22,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:22,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:23,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:25,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:26,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:27,1
    - Dst: fu_struct_wacom_raw_request_set_addr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:28,1
    - Dst: fu_struct_wacom_raw_request_set_size8
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:29,1
    - Dst: fu_wacom_raw_device_set_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:30,1
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:30,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:34,1
    - Dst: fu_wacom_raw_device_get_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:37,1
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:37,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:41,1
    - Dst: fu_struct_wacom_raw_bl_verify_response_parse
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:44,1
    - Dst: fu_struct_wacom_raw_bl_verify_response_get_size8
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:50,1
    - Dst: fu_struct_wacom_raw_request_get_size8
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:51,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:52,1
    - Dst: fu_struct_wacom_raw_bl_verify_response_get_pid
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:58,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:60,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:69,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:69,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:70,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:70,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:71,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:71,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:73,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:73,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:74,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:74,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomRawAesDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 18
    functionDepth: 7
    functionLinenumber: 18
    functionLinenumberEnd: 75
    functionName: fu_wacom_raw_aes_device_add_recovery_hwid
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_wacom_raw_request_set_size8
    - fu_struct_wacom_raw_request_set_echo
    - fu_wacom_raw_device_set_feature
    - fu_struct_wacom_raw_request_set_report_id
    - fu_struct_wacom_raw_request_set_cmd
    - fu_struct_wacom_raw_request_new
    - fu_device_build_instance_id
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_wacom_raw_device_get_feature
    - FU_DEVICE
    - fu_struct_wacom_raw_request_get_size8
    - FU_WACOM_RAW_DEVICE
    - fu_struct_wacom_raw_bl_verify_response_parse
    - fu_struct_wacom_raw_bl_verify_response_get_pid
    - fu_struct_wacom_raw_bl_verify_response_get_size8
    - g_set_error
    - fu_struct_wacom_raw_request_set_addr
    - g_autoptr
    - fu_device_add_instance_u16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_raw_aes_device_add_recovery_hwid(FuWacomRawAesDevice
      *self, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:82,1
    - Dst: fu_struct_wacom_raw_fw_query_mode_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:84,1
    - Dst: fu_wacom_raw_device_get_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:86,1
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:86,1
    - Dst: fu_struct_wacom_raw_fw_query_mode_response_parse
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:91,1
    - Dst: fu_struct_wacom_raw_fw_query_mode_response_get_mode
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - mode
    - error
    argTypes:
    - FuWacomRawAesDevice*
    - FuWacomRawOperationMode*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 77
    functionDepth: 6
    functionLinenumber: 77
    functionLinenumberEnd: 100
    functionName: fu_wacom_raw_aes_device_query_operation_mode
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_wacom_raw_fw_query_mode_request_new
    - fu_struct_wacom_raw_fw_query_mode_response_parse
    - FU_WACOM_RAW_DEVICE
    - fu_wacom_raw_device_get_feature
    - fu_struct_wacom_raw_fw_query_mode_response_get_mode
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_raw_aes_device_query_operation_mode(FuWacomRawAesDevice
      *self,\n\t\t\t\t\t     FuWacomRawOperationMode *mode,\n\t\t\t\t\t     GError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_RAW_AES_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:105,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:107,1
    - Dst: fu_wacom_raw_aes_device_query_operation_mode
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:110,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:114,1
    - Dst: fu_wacom_raw_aes_device_add_recovery_hwid
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:116,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:117,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:120,1
    - Dst: fu_struct_wacom_raw_fw_status_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:122,1
    - Dst: fu_wacom_raw_device_get_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:125,1
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:125,1
    - Dst: fu_struct_wacom_raw_fw_status_response_parse
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:130,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:136,1
    - Dst: fu_struct_wacom_raw_fw_status_response_get_version_major
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:138,1
    - Dst: fu_struct_wacom_raw_fw_status_response_get_version_minor
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:139,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:140,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 102
    functionDepth: 8
    functionLinenumber: 102
    functionLinenumberEnd: 152
    functionName: fu_wacom_raw_aes_device_setup
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_debug
    - g_set_error
    - fu_struct_wacom_raw_fw_status_response_get_version_major
    - fu_wacom_raw_aes_device_query_operation_mode
    - fu_wacom_raw_device_get_feature
    - FU_WACOM_RAW_DEVICE
    - fu_wacom_raw_aes_device_add_recovery_hwid
    - g_strdup_printf
    - FU_WACOM_RAW_AES_DEVICE
    - fu_struct_wacom_raw_fw_status_request_new
    - fu_struct_wacom_raw_fw_status_response_parse
    - g_autoptr
    - fu_struct_wacom_raw_fw_status_response_get_version_minor
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_raw_aes_device_setup(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:157,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:158,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:158,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:160,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:161,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:165,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:166,1
    - Dst: fu_wacom_raw_device_set_feature
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:167,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:168,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:173,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:174,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:174,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:177,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:178,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 154
    functionDepth: 6
    functionLinenumber: 154
    functionLinenumberEnd: 183
    functionName: fu_wacom_raw_aes_device_attach
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_struct_wacom_raw_request_set_cmd
    - g_debug
    - fu_struct_wacom_raw_request_new
    - fu_device_sleep
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - fu_device_remove_flag
    - FU_DEVICE
    - FU_WACOM_RAW_DEVICE
    - fu_device_has_flag
    - fu_wacom_raw_device_set_feature
    - fu_struct_wacom_raw_request_set_report_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_raw_aes_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:188,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:188,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:190,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:191,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:192,1
    - Dst: fu_wacom_raw_device_get_echo_next
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:194,1
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:194,1
    - Dst: fu_wacom_raw_device_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:195,1
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:195,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:201,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:204,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuWacomRawAesDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 185
    functionDepth: 8
    functionLinenumber: 185
    functionLinenumberEnd: 206
    functionName: fu_wacom_raw_aes_device_erase_all
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_wacom_raw_request_set_cmd
    - fu_struct_wacom_raw_request_set_echo
    - fu_struct_wacom_raw_request_new
    - fu_wacom_raw_device_get_echo_next
    - fu_device_sleep_full
    - g_prefix_error_literal
    - FU_DEVICE
    - FU_WACOM_RAW_DEVICE
    - fu_wacom_raw_device_cmd
    - fu_struct_wacom_raw_request_set_report_id
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_raw_aes_device_erase_all(FuWacomRawAesDevice *self,
      FuProgress *progress, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_wacom_raw_device_get_block_sz
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:216,1
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:216,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:217,1
    - Dst: fu_struct_wacom_raw_request_new
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:217,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:221,1
    - Dst: fu_struct_wacom_raw_request_set_report_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:231,1
    - Dst: fu_struct_wacom_raw_request_set_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:232,1
    - Dst: fu_struct_wacom_raw_request_set_echo
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:233,1
    - Dst: fu_struct_wacom_raw_request_set_addr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:234,1
    - Dst: fu_struct_wacom_raw_request_set_size8
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:235,1
    - Dst: fu_struct_wacom_raw_request_set_data
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:236,1
    - Dst: fu_wacom_raw_device_cmd
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:238,1
    - Dst: FU_WACOM_RAW_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:238,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 6
    argNames:
    - self
    - idx
    - address
    - data
    - datasz
    - error
    argTypes:
    - FuWacomRawAesDevice*
    - guint32
    - guint32
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 208
    functionDepth: 8
    functionLinenumber: 208
    functionLinenumberEnd: 248
    functionName: fu_wacom_raw_aes_device_write_block
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_wacom_raw_request_set_size8
    - fu_struct_wacom_raw_request_set_cmd
    - fu_struct_wacom_raw_request_set_echo
    - fu_struct_wacom_raw_request_new
    - g_set_error
    - g_prefix_error
    - FU_WACOM_RAW_DEVICE
    - fu_wacom_raw_device_cmd
    - fu_struct_wacom_raw_request_set_addr
    - fu_struct_wacom_raw_request_set_data
    - fu_struct_wacom_raw_request_set_report_id
    - g_autoptr
    - fu_wacom_raw_device_get_block_sz
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_raw_aes_device_write_block(FuWacomRawAesDevice *self,\n\t\t\t\t
      \   guint32 idx,\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: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_RAW_AES_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:256,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:259,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:260,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:261,1
    - Dst: fu_wacom_raw_aes_device_erase_all
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:264,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:264,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:266,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:269,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:270,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:273,1
    - Dst: fu_wacom_raw_aes_device_write_block
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:276,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:277,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:278,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:279,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:280,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:283,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:283,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:285,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:287,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - device
    - chunks
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 250
    functionDepth: 9
    functionLinenumber: 250
    functionLinenumberEnd: 289
    functionName: fu_wacom_raw_aes_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_idx
    - fu_wacom_raw_aes_device_erase_all
    - fu_progress_add_step
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_step_done
    - fu_chunk_get_address
    - fu_chunk_get_data
    - FU_WACOM_RAW_AES_DEVICE
    - fu_chunk_array_length
    - fu_progress_set_percentage_full
    - g_autoptr
    - fu_progress_get_child
    - fu_wacom_raw_aes_device_write_block
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_raw_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-raw-aes-device.c:294,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:294,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:295,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomRawAesDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: fu_wacom_raw_aes_device_init
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_name
    - fu_device_set_version_format
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_wacom_raw_aes_device_init(FuWacomRawAesDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:301,1
    - Dst: FU_WACOM_RAW_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomRawAesDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 306
    functionName: fu_wacom_raw_aes_device_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c
    functionUses: 0
    functionsReached:
    - FU_WACOM_RAW_DEVICE_CLASS
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wacom_raw_aes_device_class_init(FuWacomRawAesDeviceClass *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_strsafe
    - fu_udev_device_get_sysfs_path
    - g_debug
    - fu_device_set_version
    - g_set_error_literal
    - g_file_get_contents
    - g_steal_pointer
    - g_error_matches
    - fu_device_add_instance_id_full
    - g_propagate_error
    - g_autoptr
    - g_build_filename
    - G_UNLIKELY
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_thelio_io_device_probe(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_udev_device_write_sysfs
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:62,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:62,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 6
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: fu_thelio_io_device_detach
    functionSourceFile: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c
    functionUses: 0
    functionsReached:
    - fu_udev_device_write_sysfs
    - FU_UDEV_DEVICE
    - fu_device_add_flag
    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:71,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:72,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:73,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:74,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:75,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:76,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: fu_thelio_io_device_set_progress
    functionSourceFile: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_thelio_io_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:83,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:83,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:84,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:84,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:85,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:85,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:86,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:86,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:87,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:87,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:88,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:88,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:89,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuThelioIoDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 6
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: fu_thelio_io_device_init
    functionSourceFile: /src/fwupd/plugins/thelio-io/fu-thelio-io-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    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:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuThelioIoDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 99
    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_udev_subsystem
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-plugin.c:29,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/thelio-io/fu-thelio-io-plugin.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: fu_thelio_io_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/thelio-io/fu-thelio-io-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuThelioIoPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSunwinonHidPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_sunwinon_hid_plugin_init
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_sunwinon_hid_plugin_init(FuSunwinonHidPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-plugin.c:27,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-plugin.c:29,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-plugin.c:30,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: fu_sunwinon_hid_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_sunwinon_hid_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-plugin.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSunwinonHidPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: fu_sunwinon_hid_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_sunwinon_hid_plugin_class_init(FuSunwinonHidPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SUNWINON_HID_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:40,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:41,1
    - Dst: fu_sunwinon_fw_type_to_string
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:41,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:42,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:43,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: fu_sunwinon_hid_device_to_string
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_SUNWINON_HID_DEVICE
    - fwupd_codec_string_append_hex
    - fu_sunwinon_fw_type_to_string
    - fwupd_codec_string_append
    linkageType: ''
    returnType: void
    signature: void fu_sunwinon_hid_device_to_string(FuDevice *device, guint idt,
      GString *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_sunwinon_hid_firmware_get_fw_type
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:57,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - firmware_sh
    - error
    argTypes:
    - FuSunwinonHidDevice*
    - FuSunwinonHidFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 76
    functionName: fu_sunwinon_hid_device_dfu_pre_update_check
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_sunwinon_hid_firmware_get_fw_type
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunwinon_hid_device_dfu_pre_update_check(FuSunwinonHidDevice
      *self,\n\t\t\t\t\t    FuSunwinonHidFirmware *firmware_sh,\n\t\t\t\t\t    GError
      **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:87,1
    - Dst: fu_struct_sunwinon_hid_out_new
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:87,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:91,1
    - Dst: fu_struct_sunwinon_hid_out_set_data_len
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:98,1
    - Dst: fu_struct_sunwinon_hid_out_set_dfu_cmd_type
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:99,1
    - Dst: fu_struct_sunwinon_hid_out_set_dfu_data_len
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:100,1
    - Dst: fu_struct_sunwinon_hid_out_set_data
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:102,1
    - Dst: fu_sum16_safe
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:107,1
    - Dst: fu_memwrite_uint16_safe
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:114,1
    - Dst: fu_hidraw_device_set_report
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:121,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - cmd_type
    - error
    argTypes:
    - FuSunwinonHidDevice*
    - guint8*
    - guint16
    - FuSunwinonDfuCmd
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 78
    functionDepth: 6
    functionLinenumber: 78
    functionLinenumberEnd: 126
    functionName: fu_sunwinon_hid_device_dfu_send_frame
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_set_report
    - fu_struct_sunwinon_hid_out_new
    - fu_struct_sunwinon_hid_out_set_dfu_data_len
    - fu_memwrite_uint16_safe
    - g_set_error_literal
    - fu_struct_sunwinon_hid_out_set_dfu_cmd_type
    - fu_struct_sunwinon_hid_out_set_data
    - FU_HIDRAW_DEVICE
    - fu_sum16_safe
    - fu_struct_sunwinon_hid_out_set_data_len
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunwinon_hid_device_dfu_send_frame(FuSunwinonHidDevice
      *self,\n\t\t\t\t      const guint8 *buf,\n\t\t\t\t      guint16 bufsz,\n\t\t\t\t
      \     FuSunwinonDfuCmd cmd_type,\n\t\t\t\t      GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_SUNWINON_HID_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:134,1
    - Dst: memset
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:137,1
    - Dst: fu_hidraw_device_get_report
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:138,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:138,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:143,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:144,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:144,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:148,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:151,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 128
    functionDepth: 6
    functionLinenumber: 128
    functionLinenumberEnd: 168
    functionName: fu_sunwinon_hid_device_dfu_recv_cb
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_hidraw_device_get_report
    - g_set_error
    - g_steal_pointer
    - fu_dump_raw
    - FU_HIDRAW_DEVICE
    - FU_SUNWINON_HID_DEVICE
    - fu_memread_uint8_safe
    - g_error_matches
    - memset
    - g_propagate_error
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_sunwinon_hid_device_dfu_recv_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:178,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:178,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:179,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:180,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:180,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:183,1
    - Dst: fu_device_retry
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:184,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:184,1
    - Dst: fu_struct_sunwinon_hid_in_parse
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:192,1
    - Dst: fu_struct_sunwinon_hid_in_get_dfu_cmd_type
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:195,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:197,1
    - Dst: fu_sunwinon_dfu_cmd_to_string
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:201,1
    - Dst: fu_sunwinon_dfu_cmd_to_string
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:202,1
    - Dst: fu_byte_array_append_safe
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:205,1
    - Dst: fu_struct_sunwinon_hid_in_get_dfu_data_len
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:209,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:214,1
    - Dst: fu_sum16_safe
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:221,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:229,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:237,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - self
    - cmd_expected
    - error
    argTypes:
    - FuSunwinonHidDevice*
    - FuSunwinonDfuCmd
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 238
    functionName: fu_sunwinon_hid_device_dfu_recv_frame
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_struct_sunwinon_hid_in_get_dfu_cmd_type
    - g_set_error_literal
    - g_steal_pointer
    - fu_byte_array_append_safe
    - FU_DEVICE
    - fu_sunwinon_dfu_cmd_to_string
    - g_byte_array_new
    - fu_struct_sunwinon_hid_in_get_dfu_data_len
    - fu_struct_sunwinon_hid_in_parse
    - fu_sum16_safe
    - fu_device_retry
    - g_autoptr
    - fu_memread_uint16_safe
    - fu_byte_array_set_size
    linkageType: ''
    returnType: GByteArray
    signature: "GByteArray *\nfu_sunwinon_hid_device_dfu_recv_frame(FuSunwinonHidDevice
      *self,\n\t\t\t\t      FuSunwinonDfuCmd cmd_expected,\n\t\t\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:246,1
    - Dst: fu_sunwinon_hid_device_dfu_recv_frame
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:248,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:251,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:254,1
    - Dst: fu_sunwinon_dfu_cmd_to_string
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - cmd_expected
    - error
    argTypes:
    - FuSunwinonHidDevice*
    - FuSunwinonDfuCmd
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 240
    functionDepth: 5
    functionLinenumber: 240
    functionLinenumberEnd: 264
    functionName: fu_sunwinon_hid_device_dfu_plain_ack_recv
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_sunwinon_dfu_cmd_to_string
    - fu_memread_uint8_safe
    - g_autoptr
    - fu_sunwinon_hid_device_dfu_recv_frame
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunwinon_hid_device_dfu_plain_ack_recv(FuSunwinonHidDevice
      *self,\n\t\t\t\t\t  FuSunwinonDfuCmd cmd_expected,\n\t\t\t\t\t  GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:269,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:270,1
    - Dst: fu_sunwinon_hid_device_dfu_send_frame
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:272,1
    - Dst: fu_sunwinon_hid_device_dfu_recv_frame
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:278,1
    - Dst: fu_struct_sunwinon_dfu_rsp_get_info_parse
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:281,1
    - Dst: fu_struct_sunwinon_dfu_rsp_get_info_get_ack_status
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:284,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:285,1
    - Dst: fu_sunwinon_dfu_cmd_to_string
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSunwinonHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 266
    functionDepth: 7
    functionLinenumber: 266
    functionLinenumberEnd: 295
    functionName: fu_sunwinon_hid_device_dfu_get_info_cmd
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_sunwinon_dfu_rsp_get_info_parse
    - g_set_error
    - fu_sunwinon_dfu_cmd_to_string
    - fu_sunwinon_hid_device_dfu_send_frame
    - fu_struct_sunwinon_dfu_rsp_get_info_get_ack_status
    - g_autoptr
    - fu_sunwinon_hid_device_dfu_recv_frame
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_sunwinon_hid_device_dfu_get_info_cmd(FuSunwinonHidDevice
      *self, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:300,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:301,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:302,1
    - Dst: fu_struct_sunwinon_dfu_payload_system_info_new
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:304,1
    - Dst: fu_struct_sunwinon_dfu_payload_system_info_set_flash_start_addr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:305,1
    - Dst: fu_sunwinon_hid_device_dfu_send_frame
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:308,1
    - Dst: fu_sunwinon_hid_device_dfu_recv_frame
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:315,1
    - Dst: fu_struct_sunwinon_dfu_rsp_system_info_parse
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:318,1
    - Dst: fu_struct_sunwinon_dfu_rsp_system_info_get_ack_status
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:321,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:323,1
    - Dst: fu_sunwinon_dfu_cmd_to_string
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:327,1
    - Dst: fu_struct_sunwinon_dfu_rsp_system_info_get_start_addr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:330,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:332,1
    - Dst: fu_struct_sunwinon_dfu_rsp_system_info_get_bin_size
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:339,1
    - Dst: fu_struct_sunwinon_dfu_rsp_system_info_get_load_addr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:340,1
    - Dst: fu_struct_sunwinon_dfu_rsp_system_info_get_opcode
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSunwinonHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 297
    functionDepth: 7
    functionLinenumber: 297
    functionLinenumberEnd: 346
    functionName: fu_sunwinon_hid_device_dfu_system_info_cmd
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_sunwinon_dfu_rsp_system_info_get_ack_status
    - g_set_error
    - g_set_error_literal
    - fu_struct_sunwinon_dfu_rsp_system_info_get_bin_size
    - fu_struct_sunwinon_dfu_rsp_system_info_get_load_addr
    - fu_struct_sunwinon_dfu_rsp_system_info_get_opcode
    - fu_struct_sunwinon_dfu_payload_system_info_set_flash_start_addr
    - fu_sunwinon_dfu_cmd_to_string
    - fu_sunwinon_hid_device_dfu_send_frame
    - fu_struct_sunwinon_dfu_rsp_system_info_parse
    - fu_struct_sunwinon_dfu_payload_system_info_new
    - g_autoptr
    - fu_struct_sunwinon_dfu_rsp_system_info_get_start_addr
    - fu_sunwinon_hid_device_dfu_recv_frame
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_sunwinon_hid_device_dfu_system_info_cmd(FuSunwinonHidDevice
      *self, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:351,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:352,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:353,1
    - Dst: fu_sunwinon_hid_device_dfu_send_frame
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:355,1
    - Dst: fu_sunwinon_hid_device_dfu_recv_frame
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:361,1
    - Dst: fu_struct_sunwinon_dfu_rsp_fw_info_get_parse
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:364,1
    - Dst: fu_struct_sunwinon_dfu_rsp_fw_info_get_get_ack_status
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:367,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:369,1
    - Dst: fu_sunwinon_dfu_cmd_to_string
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:373,1
    - Dst: fu_struct_sunwinon_dfu_rsp_fw_info_get_get_dfu_save_addr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:376,1
    - Dst: fu_struct_sunwinon_dfu_rsp_fw_info_get_get_image_info
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:379,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:380,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:380,1
    - Dst: fu_struct_sunwinon_dfu_image_info_get_version
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:381,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuSunwinonHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 348
    functionDepth: 7
    functionLinenumber: 348
    functionLinenumberEnd: 385
    functionName: fu_sunwinon_hid_device_dfu_fw_info_ensure
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_sunwinon_dfu_rsp_fw_info_get_get_image_info
    - g_set_error
    - fu_struct_sunwinon_dfu_rsp_fw_info_get_get_dfu_save_addr
    - fu_device_set_version_raw
    - FU_DEVICE
    - fu_sunwinon_dfu_cmd_to_string
    - fu_sunwinon_hid_device_dfu_send_frame
    - fu_struct_sunwinon_dfu_rsp_fw_info_get_get_ack_status
    - g_autoptr
    - fu_struct_sunwinon_dfu_rsp_fw_info_get_parse
    - fu_struct_sunwinon_dfu_image_info_get_version
    - fu_sunwinon_hid_device_dfu_recv_frame
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_sunwinon_hid_device_dfu_fw_info_ensure(FuSunwinonHidDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_sunwinon_hid_device_dfu_send_frame
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:392,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:400,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - copy_mode
    - error
    argTypes:
    - FuSunwinonHidDevice*
    - FuSunwinonDfuUpgradeMode
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 387
    functionDepth: 7
    functionLinenumber: 387
    functionLinenumberEnd: 402
    functionName: fu_sunwinon_hid_device_dfu_mode_set_cmd
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - fu_sunwinon_hid_device_dfu_send_frame
    - FU_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunwinon_hid_device_dfu_mode_set_cmd(FuSunwinonHidDevice
      *self,\n\t\t\t\t\tFuSunwinonDfuUpgradeMode copy_mode,\n\t\t\t\t\tGError **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:410,1
    - Dst: fu_struct_sunwinon_dfu_payload_program_start_new
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:411,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:412,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:413,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:415,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:415,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:418,1
    - Dst: fu_struct_sunwinon_dfu_image_info_parse_stream
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:420,1
    - Dst: fu_struct_sunwinon_dfu_image_info_set_load_addr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:426,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:428,1
    - Dst: fu_struct_sunwinon_dfu_payload_program_start_set_image_info_raw
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:429,1
    - Dst: fu_struct_sunwinon_dfu_payload_program_start_set_mode
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:434,1
    - Dst: fu_sunwinon_hid_device_dfu_send_frame
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:437,1
    - Dst: fu_sunwinon_hid_device_dfu_plain_ack_recv
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:443,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - self
    - firmware_sh
    - error
    argTypes:
    - FuSunwinonHidDevice*
    - FuSunwinonHidFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 404
    functionDepth: 7
    functionLinenumber: 404
    functionLinenumberEnd: 450
    functionName: fu_sunwinon_hid_device_dfu_program_start_cmd
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_sunwinon_dfu_image_info_set_load_addr
    - fu_firmware_get_stream
    - fu_input_stream_size
    - FU_FIRMWARE
    - fu_struct_sunwinon_dfu_payload_program_start_new
    - fu_struct_sunwinon_dfu_payload_program_start_set_image_info_raw
    - fu_sunwinon_hid_device_dfu_plain_ack_recv
    - g_byte_array_set_size
    - fu_struct_sunwinon_dfu_payload_program_start_set_mode
    - fu_sunwinon_hid_device_dfu_send_frame
    - fu_struct_sunwinon_dfu_image_info_parse_stream
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunwinon_hid_device_dfu_program_start_cmd(FuSunwinonHidDevice
      *self,\n\t\t\t\t\t     FuSunwinonHidFirmware *firmware_sh,\n\t\t\t\t\t     GError
      **error)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:459,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:460,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:463,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:463,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:466,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:475,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:476,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:476,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:477,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:480,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:481,1
    - Dst: fu_struct_sunwinon_dfu_payload_program_flash_new
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:482,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:484,1
    - Dst: fu_struct_sunwinon_dfu_payload_program_flash_set_dfu_save_addr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:488,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:490,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:492,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:493,1
    - Dst: fu_struct_sunwinon_dfu_payload_program_flash_set_data_len
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:494,1
    - Dst: fu_struct_sunwinon_dfu_payload_program_flash_set_fw_data
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:495,1
    - Dst: fu_sunwinon_hid_device_dfu_send_frame
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:501,1
    - Dst: fu_sunwinon_hid_device_dfu_plain_ack_recv
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:508,1
    - Dst: fu_sum32
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:514,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:515,1
    - Dst: fu_sunwinon_hid_firmware_get_full_checksum
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:519,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:520,1
    - Dst: fu_sunwinon_hid_firmware_get_full_checksum
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:524,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 5
    argNames:
    - self
    - firmware_sh
    - file_checksum
    - progress
    - error
    argTypes:
    - FuSunwinonHidDevice*
    - FuSunwinonHidFirmware*
    - guint32*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 452
    functionDepth: 7
    functionLinenumber: 452
    functionLinenumberEnd: 531
    functionName: fu_sunwinon_hid_device_dfu_do_update_normal
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_sunwinon_hid_firmware_get_full_checksum
    - fu_sunwinon_hid_device_dfu_plain_ack_recv
    - fu_sum32
    - fu_progress_set_steps
    - fu_chunk_array_new_from_stream
    - fu_struct_sunwinon_dfu_payload_program_flash_set_data_len
    - FU_FIRMWARE
    - fu_progress_step_done
    - fu_struct_sunwinon_dfu_payload_program_flash_set_fw_data
    - fu_chunk_get_data
    - fu_sunwinon_hid_device_dfu_send_frame
    - fu_chunk_array_length
    - fu_chunk_get_address
    - fu_progress_set_id
    - fu_struct_sunwinon_dfu_payload_program_flash_new
    - fu_firmware_get_stream
    - g_set_error
    - fu_chunk_array_index
    - fu_struct_sunwinon_dfu_payload_program_flash_set_dfu_save_addr
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunwinon_hid_device_dfu_do_update_normal(FuSunwinonHidDevice
      *self,\n\t\t\t\t\t    FuSunwinonHidFirmware *firmware_sh,\n\t\t\t\t\t    guint32
      *file_checksum, /* out */\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/sunwinon-hid/fu-sunwinon-hid-device.c:538,1
    - Dst: fu_struct_sunwinon_dfu_payload_program_end_new
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:539,1
    - Dst: fu_struct_sunwinon_dfu_payload_program_end_set_file_checksum
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:542,1
    - Dst: fu_sunwinon_hid_device_dfu_send_frame
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:543,1
    - Dst: fu_sunwinon_hid_device_dfu_plain_ack_recv
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - file_checksum
    - error
    argTypes:
    - FuSunwinonHidDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 533
    functionDepth: 7
    functionLinenumber: 533
    functionLinenumberEnd: 556
    functionName: fu_sunwinon_hid_device_dfu_program_end_cmd_normal
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_sunwinon_dfu_payload_program_end_set_file_checksum
    - fu_sunwinon_hid_device_dfu_plain_ack_recv
    - fu_sunwinon_hid_device_dfu_send_frame
    - fu_struct_sunwinon_dfu_payload_program_end_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunwinon_hid_device_dfu_program_end_cmd_normal(FuSunwinonHidDevice
      *self,\n\t\t\t\t\t\t  guint32 file_checksum,\n\t\t\t\t\t\t  GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_SUNWINON_HID_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:565,1
    - Dst: FU_SUNWINON_HID_FIRMWARE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:566,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:570,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:571,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:572,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:573,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:574,1
    - Dst: fu_sunwinon_hid_device_dfu_get_info_cmd
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:577,1
    - Dst: fu_sunwinon_hid_device_dfu_system_info_cmd
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:579,1
    - Dst: fu_sunwinon_hid_device_dfu_fw_info_ensure
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:581,1
    - Dst: fu_sunwinon_hid_device_dfu_pre_update_check
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:583,1
    - Dst: fu_sunwinon_hid_device_dfu_mode_set_cmd
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:585,1
    - Dst: fu_sunwinon_hid_device_dfu_program_start_cmd
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:589,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:591,1
    - Dst: fu_sunwinon_hid_device_dfu_do_update_normal
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:594,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:597,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:600,1
    - Dst: fu_sunwinon_hid_device_dfu_program_end_cmd_normal
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:603,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:605,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:608,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 558
    functionDepth: 8
    functionLinenumber: 558
    functionLinenumberEnd: 610
    functionName: fu_sunwinon_hid_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_sunwinon_hid_device_dfu_pre_update_check
    - FU_SUNWINON_HID_FIRMWARE
    - fu_sunwinon_hid_device_dfu_get_info_cmd
    - fu_progress_add_step
    - fu_sunwinon_hid_device_dfu_do_update_normal
    - fu_sunwinon_hid_device_dfu_program_end_cmd_normal
    - fu_progress_add_flag
    - fu_sunwinon_hid_device_dfu_mode_set_cmd
    - fu_progress_step_done
    - fu_sunwinon_hid_device_dfu_system_info_cmd
    - FU_SUNWINON_HID_DEVICE
    - fu_sunwinon_hid_device_dfu_fw_info_ensure
    - fu_sunwinon_hid_device_dfu_program_start_cmd
    - fu_progress_get_child
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunwinon_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: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_SUNWINON_HID_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:615,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:616,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:617,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:618,1
    - Dst: fu_hidraw_device_parse_descriptor
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:620,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:620,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:623,1
    - Dst: fu_hid_descriptor_find_report
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:634,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:646,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:647,1
    - Dst: fu_sunwinon_hid_device_dfu_fw_info_ensure
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:648,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 612
    functionDepth: 8
    functionLinenumber: 612
    functionLinenumberEnd: 653
    functionName: fu_sunwinon_hid_device_setup
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_device_sleep
    - FU_HIDRAW_DEVICE
    - FU_SUNWINON_HID_DEVICE
    - fu_sunwinon_hid_device_dfu_fw_info_ensure
    - fu_hidraw_device_parse_descriptor
    - g_autoptr
    - fu_hid_descriptor_find_report
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_sunwinon_hid_device_setup(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:658,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:658,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:659,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:659,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:660,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:660,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:661,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:661,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:662,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:662,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:663,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:663,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:664,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:664,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:665,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:665,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:666,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:666,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:667,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:667,1
    - Dst: fu_device_retry_add_recovery
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:668,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSunwinonHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 655
    functionDepth: 6
    functionLinenumber: 655
    functionLinenumberEnd: 669
    functionName: fu_sunwinon_hid_device_init
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_retry_add_recovery
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    linkageType: ''
    returnType: void
    signature: void fu_sunwinon_hid_device_init(FuSunwinonHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:674,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:675,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:676,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:677,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:678,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 671
    functionDepth: 3
    functionLinenumber: 671
    functionLinenumberEnd: 680
    functionName: fu_sunwinon_hid_device_set_progress
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_sunwinon_hid_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 689
    functionName: fu_sunwinon_hid_device_convert_version
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    functionUses: 0
    functionsReached:
    - g_strdup_printf
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_sunwinon_hid_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSunwinonHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 700
    functionName: fu_sunwinon_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_sunwinon_hid_device_class_init(FuSunwinonHidDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_SUNWINON_HID_FIRMWARE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:33,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:34,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:35,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:36,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:37,1
    - Dst: fu_sunwinon_fw_type_to_string
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: fu_sunwinon_hid_firmware_export
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    - fu_sunwinon_fw_type_to_string
    - FU_SUNWINON_HID_FIRMWARE
    linkageType: ''
    returnType: void
    signature: "void fu_sunwinon_hid_firmware_export(FuFirmware *firmware,\n\t\t\t\tFuFirmwareExportFlags
      flags,\n\t\t\t\tXbBuilderNode *bn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:43,1
    - Dst: FU_IS_SUNWINON_HID_FIRMWARE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSunwinonHidFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: fu_sunwinon_hid_firmware_get_full_checksum
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_SUNWINON_HID_FIRMWARE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_sunwinon_hid_firmware_get_full_checksum(FuSunwinonHidFirmware
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:50,1
    - Dst: FU_IS_SUNWINON_HID_FIRMWARE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSunwinonHidFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: fu_sunwinon_hid_firmware_get_fw_type
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_SUNWINON_HID_FIRMWARE
    linkageType: ''
    returnType: FuSunwinonFwType
    signature: FuSunwinonFwType fu_sunwinon_hid_firmware_get_fw_type(FuSunwinonHidFirmware
      *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FU_SUNWINON_HID_FIRMWARE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:63,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:65,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:68,1
    - Dst: fu_struct_sunwinon_dfu_image_info_parse_stream
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:74,1
    - Dst: fu_struct_sunwinon_dfu_image_info_get_checksum
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:83,1
    - Dst: fu_sum32
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:84,1
    - Dst: fu_struct_sunwinon_dfu_image_info_get_load_addr
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:85,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:87,1
    - Dst: fu_struct_sunwinon_dfu_image_info_get_bin_size
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:93,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:101,1
    - Dst: fu_input_stream_read_u32
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:108,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:118,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:124,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 54
    functionDepth: 4
    functionLinenumber: 54
    functionLinenumberEnd: 136
    functionName: fu_sunwinon_hid_firmware_parse
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_sunwinon_dfu_image_info_get_checksum
    - fu_struct_sunwinon_dfu_image_info_get_load_addr
    - FU_SUNWINON_HID_FIRMWARE
    - g_debug
    - fu_input_stream_read_u32
    - fu_input_stream_size
    - g_set_error
    - g_set_error_literal
    - fu_struct_sunwinon_dfu_image_info_get_bin_size
    - fu_struct_sunwinon_dfu_image_info_parse_stream
    - fu_sum32
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_sunwinon_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/sunwinon-hid/fu-sunwinon-hid-firmware.c:141,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:141,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:142,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:142,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:143,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuSunwinonHidFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: fu_sunwinon_hid_firmware_init
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_sunwinon_hid_firmware_init(FuSunwinonHidFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuSunwinonHidFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: fu_sunwinon_hid_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_sunwinon_hid_firmware_class_init(FuSunwinonHidFirmwareClass
      *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:73,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:74,1
    - Dst: fu_struct_hpi_cfu_buf_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:74,1
    - Dst: fu_struct_hpi_cfu_buf_set_report_id
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:76,1
    - Dst: fu_struct_hpi_cfu_buf_set_command
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:77,1
    - Dst: fu_struct_hpi_cfu_buf_set_report_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:78,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:81,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:82,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:82,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHpiCfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 104
    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
    - g_set_error_literal
    - fu_dump_raw
    - fu_struct_hpi_cfu_buf_new
    - fu_struct_hpi_cfu_buf_set_command
    - fu_struct_hpi_cfu_buf_set_report_id
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_device_control_transfer
    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:111,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:113,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:113,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:121,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHpiCfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 134
    functionName: fu_hpi_cfu_device_start_entire_transaction_accepted
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_dump_raw
    - fu_usb_device_interrupt_transfer
    - FU_USB_DEVICE
    - g_autoptr
    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:139,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:140,1
    - Dst: fu_struct_hpi_cfu_buf_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:140,1
    - Dst: fu_struct_hpi_cfu_buf_set_report_id
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:142,1
    - Dst: fu_struct_hpi_cfu_buf_set_command
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:143,1
    - Dst: fu_struct_hpi_cfu_buf_set_report_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:144,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:147,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:148,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:148,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHpiCfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 136
    functionDepth: 4
    functionLinenumber: 136
    functionLinenumberEnd: 170
    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
    - g_set_error_literal
    - fu_dump_raw
    - fu_struct_hpi_cfu_buf_new
    - fu_struct_hpi_cfu_buf_set_command
    - fu_struct_hpi_cfu_buf_set_report_id
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_device_control_transfer
    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:177,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:179,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:179,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:187,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:193,1
    - Dst: g_debug
      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:200,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:203,1
    - Dst: fu_cfu_rr_code_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - self
    - status
    - error
    argTypes:
    - FuHpiCfuDevice*
    - gint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 172
    functionDepth: 4
    functionLinenumber: 172
    functionLinenumberEnd: 210
    functionName: fu_hpi_cfu_device_send_offer_list_accepted
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error_literal
    - fu_dump_raw
    - fu_usb_device_interrupt_transfer
    - fu_cfu_rr_code_to_string
    - g_warning
    - FU_USB_DEVICE
    - g_autoptr
    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:220,1
    - Dst: fu_struct_hpi_cfu_offer_cmd_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:220,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:221,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:222,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:224,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:227,1
    - Dst: fu_struct_hpi_cfu_offer_cmd_set_report_id
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:229,1
    - Dst: fu_memcpy_safe
      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:233,1
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:234,1
    - Dst: fu_struct_hpi_cfu_offer_cmd_set_flags
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:235,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:237,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:238,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:238,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - self
    - fw_offer
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 212
    functionDepth: 4
    functionLinenumber: 212
    functionLinenumberEnd: 260
    functionName: fu_hpi_cfu_device_send_offer_update_command
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_get_bytes
    - g_bytes_get_data
    - g_set_error_literal
    - FU_BIT_SET
    - fu_dump_raw
    - fu_struct_hpi_cfu_offer_cmd_set_report_id
    - fu_struct_hpi_cfu_offer_cmd_set_flags
    - fu_struct_hpi_cfu_offer_cmd_new
    - fu_memcpy_safe
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_device_control_transfer
    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:270,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:272,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:272,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:280,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:286,1
    - Dst: g_debug
      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:294,1
    - Dst: fu_cfu_rr_code_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:294,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:296,1
    - Dst: fu_cfu_rr_code_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - self
    - reply
    - reason
    - error
    argTypes:
    - FuHpiCfuDevice*
    - gint8*
    - gint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 262
    functionDepth: 4
    functionLinenumber: 262
    functionLinenumberEnd: 304
    functionName: fu_hpi_cfu_device_firmware_update_offer_accepted
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error_literal
    - fu_dump_raw
    - fu_usb_device_interrupt_transfer
    - fu_cfu_rr_code_to_string
    - FU_USB_DEVICE
    - g_autoptr
    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:316,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:318,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:319,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:319,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:327,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:333,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:338,1
    - Dst: fu_cfu_offer_status_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:339,1
    - Dst: fu_cfu_rr_code_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:340,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:347,1
    - Dst: fu_cfu_content_status_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:349,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:352,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: 363
      start: 306
    functionDepth: 4
    functionLinenumber: 306
    functionLinenumberEnd: 363
    functionName: fu_hpi_cfu_device_read_content_ack
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_cfu_offer_status_to_string
    - g_set_error_literal
    - fu_dump_raw
    - fu_usb_device_interrupt_transfer
    - fu_cfu_rr_code_to_string
    - FU_USB_DEVICE
    - g_autoptr
    - fu_cfu_content_status_to_string
    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:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - reply
    argTypes:
    - gint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 373
    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:378,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:379,1
    - Dst: fu_struct_hpi_cfu_buf_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:379,1
    - Dst: fu_struct_hpi_cfu_buf_set_report_id
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:381,1
    - Dst: fu_struct_hpi_cfu_buf_set_command
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:382,1
    - Dst: fu_struct_hpi_cfu_buf_set_report_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:383,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:386,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:387,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:387,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHpiCfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 375
    functionDepth: 4
    functionLinenumber: 375
    functionLinenumberEnd: 409
    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
    - g_set_error_literal
    - fu_dump_raw
    - fu_struct_hpi_cfu_buf_new
    - fu_struct_hpi_cfu_buf_set_command
    - fu_struct_hpi_cfu_buf_set_report_id
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_device_control_transfer
    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:416,1
    - Dst: fu_usb_device_interrupt_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:418,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:418,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:426,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:432,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:434,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:435,1
    - Dst: fu_cfu_rr_code_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:435,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
    - Dst: g_warning
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:443,1
    - Dst: fu_cfu_rr_code_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHpiCfuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 411
    functionDepth: 4
    functionLinenumber: 411
    functionLinenumberEnd: 450
    functionName: fu_hpi_cfu_device_end_offer_list_accepted
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error_literal
    - fu_dump_raw
    - fu_usb_device_interrupt_transfer
    - fu_cfu_rr_code_to_string
    - g_warning
    - FU_USB_DEVICE
    - g_autoptr
    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:458,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 452
    functionDepth: 5
    functionLinenumber: 452
    functionLinenumberEnd: 465
    functionName: fu_hpi_cfu_device_handler_start_entire_transaction
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_hpi_cfu_device_start_entire_transaction
    - g_prefix_error_literal
    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:473,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:475,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 467
    functionDepth: 5
    functionLinenumber: 467
    functionLinenumberEnd: 482
    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_hpi_cfu_device_start_entire_transaction_accepted
    - g_prefix_error_literal
    - fu_progress_step_done
    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:490,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 484
    functionDepth: 5
    functionLinenumber: 484
    functionLinenumberEnd: 499
    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_literal
    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:509,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:511,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 501
    functionDepth: 5
    functionLinenumber: 501
    functionLinenumberEnd: 522
    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_hpi_cfu_device_send_offer_list_accepted
    - fu_progress_step_done
    - g_prefix_error_literal
    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:530,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 524
    functionDepth: 5
    functionLinenumber: 524
    functionLinenumberEnd: 537
    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_literal
    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:548,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:550,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:554,1
    - Dst: fu_hpi_cfu_firmware_update_offer_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:555,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:563,1
    - Dst: fu_hpi_cfu_firmware_update_offer_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:564,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:567,1
    - Dst: fu_hpi_cfu_firmware_update_offer_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:568,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:574,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:583,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 539
    functionDepth: 5
    functionLinenumber: 539
    functionLinenumberEnd: 587
    functionName: fu_hpi_cfu_device_handler_send_offer_accepted
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_hpi_cfu_device_firmware_update_offer_accepted
    - g_debug
    - fu_progress_step_done
    - g_prefix_error_literal
    - fu_hpi_cfu_firmware_update_offer_to_string
    - g_warning
    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:592,1
    - Dst: fu_struct_hpi_cfu_payload_cmd_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:592,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:593,1
    - Dst: fu_struct_hpi_cfu_payload_cmd_set_report_id
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:595,1
    - Dst: fu_struct_hpi_cfu_payload_cmd_set_flags
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:599,1
    - Dst: fu_struct_hpi_cfu_payload_cmd_set_flags
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:601,1
    - Dst: fu_struct_hpi_cfu_payload_cmd_set_length
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:603,1
    - Dst: fu_struct_hpi_cfu_payload_cmd_set_seq_number
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:604,1
    - Dst: fu_struct_hpi_cfu_payload_cmd_set_address
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:605,1
    - Dst: fu_struct_hpi_cfu_payload_cmd_set_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:607,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:612,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:613,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:613,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:626,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - self
    - cfu_buf
    - error
    argTypes:
    - FuHpiCfuDevice*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 589
    functionDepth: 4
    functionLinenumber: 589
    functionLinenumberEnd: 635
    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_set_seq_number
    - fu_struct_hpi_cfu_payload_cmd_new
    - fu_struct_hpi_cfu_payload_cmd_set_flags
    - g_set_error_literal
    - fu_struct_hpi_cfu_payload_cmd_set_report_id
    - fu_dump_raw
    - fu_struct_hpi_cfu_payload_cmd_set_data
    - fu_struct_hpi_cfu_payload_cmd_set_address
    - fu_struct_hpi_cfu_payload_cmd_set_length
    - FU_USB_DEVICE
    - g_autoptr
    - fu_usb_device_control_transfer
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_hpi_cfu_device_send_payload(FuHpiCfuDevice *self, GByteArray
      *cfu_buf, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:647,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:656,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - payload_data
    - untransmitted_data
    - payload_header_length
    - fill_from_position
    - error
    argTypes:
    - GByteArray*
    - GByteArray*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 637
    functionDepth: 3
    functionLinenumber: 637
    functionLinenumberEnd: 665
    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
    - g_set_error
    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     gsize payload_header_length,\n\t\t\t\t
      \    gsize 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:673,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:674,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: 682
      start: 667
    functionDepth: 3
    functionLinenumber: 667
    functionLinenumberEnd: 682
    functionName: fu_hpi_cfu_device_get_payload_header
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_set_size
    - fu_memcpy_safe
    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:691,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - payload_data
    - payload_buf
    - payload_header_length
    - read_index
    - error
    argTypes:
    - GByteArray*
    - GByteArray*
    - guint8
    - gint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 700
    functionName: fu_hpi_cfu_device_get_payload_data
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_set_size
    - fu_memcpy_safe
    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   guint8 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:715,1
    - Dst: fu_hpi_cfu_device_send_payload
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:716,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:722,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:722,1
    - Dst: fu_hpi_cfu_device_untransmitted_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:725,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:730,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:739,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:745,1
    - Dst: fu_hpi_cfu_device_send_payload
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:746,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:750,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:750,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:753,1
    - Dst: fu_hpi_cfu_device_send_payload
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:756,1
    - Dst: fu_hpi_cfu_device_untransmitted_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:764,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:769,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: 776
      start: 702
    functionDepth: 5
    functionLinenumber: 702
    functionLinenumberEnd: 776
    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_literal
    - fu_hpi_cfu_device_untransmitted_data
    - g_prefix_error_literal
    - g_byte_array_new
    - g_byte_array_append
    - fu_hpi_cfu_device_send_payload
    - g_autoptr
    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:788,1
    - Dst: fu_hpi_cfu_firmware_update_offer_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:789,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:794,1
    - Dst: fu_hpi_cfu_firmware_update_offer_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:795,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:797,1
    - Dst: fu_hpi_cfu_firmware_update_offer_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:798,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:805,1
    - Dst: fu_hpi_cfu_firmware_update_offer_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:806,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:811,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - self
    - status
    - lastpacket
    argTypes:
    - FuHpiCfuDevice*
    - guint8
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 815
    functionName: fu_hpi_cfu_device_handler_set_status_report_25
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_hpi_cfu_firmware_update_offer_to_string
    - g_warning
    - g_debug
    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:835,1
    - Dst: fu_cfu_content_status_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:836,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:837,1
    - Dst: fu_hpi_cfu_firmware_update_status_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:838,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:842,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:849,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - self
    - status
    - lastpacket
    argTypes:
    - FuHpiCfuDevice*
    - guint8
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 853
    functionName: fu_hpi_cfu_device_handler_set_status_report_22
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_hpi_cfu_firmware_update_status_to_string
    - g_warning
    - g_debug
    - fu_cfu_content_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:868,1
    - Dst: fu_hpi_cfu_device_read_content_ack
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:869,1
    - Dst: fu_hpi_cfu_device_read_content_ack
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:880,1
    - Dst: fu_hpi_cfu_device_read_content_ack
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:895,1
    - Dst: fu_hpi_cfu_device_read_content_ack
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:910,1
    - Dst: fu_hpi_cfu_device_read_content_ack
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:924,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:943,1
    - Dst: fu_hpi_cfu_device_handler_set_status_report_25
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:944,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:946,1
    - Dst: fu_hpi_cfu_device_handler_set_status_report_22
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:947,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 855
    functionDepth: 5
    functionLinenumber: 855
    functionLinenumberEnd: 952
    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_25
    - fu_hpi_cfu_device_handler_set_status_report_22
    - g_debug
    - fu_hpi_cfu_device_read_content_ack
    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: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:961,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:961,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:962,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:962,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:964,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:964,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:964,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:967,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:967,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:968,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:968,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:969,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:969,1
    - Dst: fu_hpi_cfu_device_get_payload_header
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:973,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:977,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:982,1
    - Dst: fu_hpi_cfu_device_get_payload_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:988,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:993,1
    - Dst: fu_hpi_cfu_device_send_append_untransmitted
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1001,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1018,1
    - Dst: fu_hpi_cfu_device_send_payload
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1022,1
    - Dst: fu_hpi_cfu_device_untransmitted_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1030,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1035,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1045,1
    - Dst: fu_hpi_cfu_device_send_payload
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1049,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1056,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1056,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1059,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1062,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1072,1
    - Dst: fu_hpi_cfu_device_send_payload
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1073,1
    - Dst: fu_hpi_cfu_device_handler_check_update_content
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1078,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 5
    argNames:
    - self
    - chk
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuChunk*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 954
    functionDepth: 6
    functionLinenumber: 954
    functionLinenumberEnd: 1086
    functionName: fu_hpi_cfu_device_handler_send_payload_chunk
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_byte_array_set_size
    - g_debug
    - fu_chunk_get_data_sz
    - fu_hpi_cfu_device_untransmitted_data
    - g_prefix_error_literal
    - fu_hpi_cfu_device_handler_check_update_content
    - fu_memcpy_safe
    - fu_hpi_cfu_device_get_payload_data
    - g_byte_array_new
    - fu_chunk_get_data
    - fu_memread_uint8_safe
    - g_byte_array_append
    - fu_hpi_cfu_device_get_payload_header
    - g_autoptr
    - fu_hpi_cfu_device_send_append_untransmitted
    - fu_hpi_cfu_device_send_payload
    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:1094,1
    - Dst: fu_firmware_get_chunks
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1096,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1098,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1102,1
    - Dst: fu_hpi_cfu_device_handler_send_payload_chunk
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1103,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1088
    functionDepth: 7
    functionLinenumber: 1088
    functionLinenumberEnd: 1114
    functionName: fu_hpi_cfu_device_handler_send_payload
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_hpi_cfu_device_handler_send_payload_chunk
    - g_prefix_error_literal
    - fu_firmware_get_chunks
    - g_autoptr
    - g_ptr_array_index
    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: 1129
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1129
    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: 1142
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1142
    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: 1155
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1155
    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:1163,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1157
    functionDepth: 5
    functionLinenumber: 1157
    functionLinenumberEnd: 1170
    functionName: fu_hpi_cfu_device_handler_send_end_offer_list
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_hpi_cfu_device_send_end_offer_list
    - g_prefix_error_literal
    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:1178,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1172
    functionDepth: 5
    functionLinenumber: 1172
    functionLinenumberEnd: 1184
    functionName: fu_hpi_cfu_device_handler_end_offer_list_accepted
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_hpi_cfu_device_end_offer_list_accepted
    - g_prefix_error_literal
    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:1193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1186
    functionDepth: 4
    functionLinenumber: 1186
    functionLinenumberEnd: 1195
    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: 1205
      start: 1197
    functionDepth: 0
    functionLinenumber: 1197
    functionLinenumberEnd: 1205
    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: 1216
      start: 1207
    functionDepth: 0
    functionLinenumber: 1207
    functionLinenumberEnd: 1216
    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: 1226
      start: 1218
    functionDepth: 0
    functionLinenumber: 1218
    functionLinenumberEnd: 1226
    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:1234,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1228
    functionDepth: 5
    functionLinenumber: 1228
    functionLinenumberEnd: 1243
    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_literal
    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:1253,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1245
    functionDepth: 5
    functionLinenumber: 1245
    functionLinenumberEnd: 1265
    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:
    - fu_hpi_cfu_device_send_offer_list_accepted
    - g_prefix_error_literal
    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:1273,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1267
    functionDepth: 5
    functionLinenumber: 1267
    functionLinenumberEnd: 1280
    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_literal
    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:1292,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1293,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1298,1
    - Dst: fu_hpi_cfu_device_firmware_update_offer_rejected
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1302,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1303,1
    - Dst: fu_cfu_rr_code_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1306,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1318,1
    - Dst: fu_hpi_cfu_firmware_offer_reject_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1319,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1323,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1282
    functionDepth: 5
    functionLinenumber: 1282
    functionLinenumberEnd: 1332
    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:
    - fu_hpi_cfu_device_firmware_update_offer_accepted
    - g_debug
    - g_prefix_error_literal
    - fu_cfu_rr_code_to_string
    - fu_hpi_cfu_firmware_offer_reject_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:1340,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1341,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1334
    functionDepth: 5
    functionLinenumber: 1334
    functionLinenumberEnd: 1349
    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
    - fu_hpi_cfu_device_send_end_offer_list
    - g_prefix_error_literal
    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:1357,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - progress
    - options
    - error
    argTypes:
    - FuHpiCfuDevice*
    - FuProgress*
    - FuHpiCfuHandlerOptions*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1351
    functionDepth: 5
    functionLinenumber: 1351
    functionLinenumberEnd: 1364
    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:
    - fu_hpi_cfu_device_end_offer_list_accepted
    - g_prefix_error_literal
    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: 1375
      start: 1366
    functionDepth: 0
    functionLinenumber: 1366
    functionLinenumberEnd: 1375
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_HPI_CFU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1440,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1443,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1447,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1449,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1450,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1450,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1451,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1451,1
    - Dst: fu_usb_device_control_transfer
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1454,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1454,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1467,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1470,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1471,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1473,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1479,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1488,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1428
    functionDepth: 6
    functionLinenumber: 1428
    functionLinenumberEnd: 1492
    functionName: fu_hpi_cfu_device_setup
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - FU_HPI_CFU_DEVICE
    - fu_device_add_flag
    - fu_memread_uint32_safe
    - g_debug
    - fu_device_set_version_raw
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - fu_memcpy_safe
    - FU_DEVICE
    - fu_device_get_name
    - FU_USB_DEVICE
    - fu_dump_raw
    - FU_DEVICE_CLASS
    - fu_usb_device_control_transfer
    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:1497,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1498,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1499,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1500,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1501,1
    - Dst: fu_progress_add_step
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1494
    functionDepth: 3
    functionLinenumber: 1494
    functionLinenumberEnd: 1504
    functionName: fu_hpi_cfu_device_set_progress
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_hpi_cfu_device_set_progress(FuDevice *device, FuProgress *progress)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_HPI_CFU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1513,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1515,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1516,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1517,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1520,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1521,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1522,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1523,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1524,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1525,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1528,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1528,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1531,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1536,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1539,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1546,1
    - Dst: fu_hpi_cfu_state_to_string
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1546,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1547,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1548,1
    - Dst: handler
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1555,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1559,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1566,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: 1568
      start: 1506
    functionDepth: 6
    functionLinenumber: 1506
    functionLinenumberEnd: 1568
    functionName: fu_hpi_cfu_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - fu_progress_add_step
    - fu_firmware_get_bytes
    - g_bytes_get_data
    - FU_FIRMWARE
    - g_set_error
    - g_prefix_error_literal
    - fu_firmware_get_image_by_id
    - handler
    - G_N_ELEMENTS
    - FU_HPI_CFU_DEVICE
    - fu_hpi_cfu_state_to_string
    - g_autoptr
    - fu_progress_set_id
    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:1573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1570
    functionDepth: 0
    functionLinenumber: 1570
    functionLinenumberEnd: 1578
    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:1585,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1585,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1586,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1586,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1587,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1587,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1588,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1588,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1589,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1589,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1590,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1590,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1591,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1591,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1592,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1592,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1593,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1593,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1594,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1594,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1597,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c:1597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHpiCfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1580
    functionDepth: 6
    functionLinenumber: 1580
    functionLinenumberEnd: 1598
    functionName: fu_hpi_cfu_device_init
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - FU_DEVICE
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - FU_USB_DEVICE
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    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:1603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHpiCfuDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1600
    functionDepth: 0
    functionLinenumber: 1600
    functionLinenumberEnd: 1608
    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_udev_subsystem
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-plugin.c:29,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-plugin.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: fu_hpi_cfu_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    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:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHpiCfuPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    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:
    - 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
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/emmc/fu-emmc-plugin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 35
    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
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_context_add_quirk_key
    - fu_plugin_add_device_gtype
    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:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEmmcPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    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:
    - fwupd_codec_string_append_int
    - FU_EMMC_DEVICE
    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: 4
    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: 7
    functionLinenumber: 101
    functionLinenumberEnd: 234
    functionName: fu_emmc_device_probe
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_version
    - g_strdup_printf
    - fu_device_get_name
    - fu_device_set_version_format
    - fu_device_add_instance_id
    - fu_device_set_physical_id
    - fu_device_build_instance_id
    - fu_emmc_device_get_sysattr_guint64
    - g_set_error_literal
    - fu_device_build_instance_id_full
    - g_path_get_basename
    - fu_device_set_name
    - FU_DEVICE
    - fu_udev_device_read_sysfs
    - FU_UDEV_DEVICE
    - fu_udev_device_get_device_file
    - fu_device_get_backend_id
    - g_set_error
    - fu_device_get_backend_parent_with_subsystem
    - fu_device_add_instance_strsafe
    - fu_device_has_private_flag
    - g_autoptr
    - g_regex_match_simple
    - fu_device_build_vendor_id
    - fu_device_add_instance_u16
    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_literal
      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_ioctl_execute
    - fu_ioctl_add_mutable_buffer
    - g_prefix_error_literal
    - fu_ioctl_add_key_as_u8
    - fu_udev_device_ioctl_new
    - FU_UDEV_DEVICE
    - fu_ioctl_add_key_as_u16
    - g_autoptr
    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:
    - fu_device_get_name
    - fu_emmc_device_read_extcsd
    - FU_DEVICE
    - g_set_error
    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_device_add_flag
    - fu_emmc_device_validate_extcsd
    - g_debug
    - FU_EMMC_DEVICE
    - 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:338,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:342,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:350,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:351,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - device
    - firmware
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 361
    functionName: fu_emmc_device_check_firmware
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-device.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - FU_EMMC_DEVICE
    - fu_firmware_get_size
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_emmc_device_check_firmware(FuDevice *device,\n\t\t\t      FuFirmware
      *firmware,\n\t\t\t      FuFirmwareParseFlags flags,\n\t\t\t      GError **error)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: FU_EMMC_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:370,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:379,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:380,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:381,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:381,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:381,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:384,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:385,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:386,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:387,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:388,1
    - Dst: fu_emmc_device_read_extcsd
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:390,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:393,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:401,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:413,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:417,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:446,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:449,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:457,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:458,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:461,1
    - Dst: mmc_ioc_cmd_set_data
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:465,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:465,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:467,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:475,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:476,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:478,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:486,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:492,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:492,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:494,1
    - Dst: fu_emmc_device_read_extcsd
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:500,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:504,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:509,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:510,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:513,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:519,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:522,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:535,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:553,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:561,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:563,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:564,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:572,1
    - Dst: fu_emmc_device_read_extcsd
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:578,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:581,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:589,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 112
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 363
    functionDepth: 6
    functionLinenumber: 363
    functionLinenumberEnd: 592
    functionName: fu_emmc_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_progress_add_flag
    - fu_memread_uint32
    - fu_ioctl_execute
    - g_debug
    - FU_EMMC_DEVICE
    - g_prefix_error_literal
    - fu_chunk_array_new_from_stream
    - fu_progress_set_percentage_full
    - fu_progress_add_step
    - fu_progress_step_done
    - g_malloc0
    - fu_emmc_device_read_extcsd
    - mmc_ioc_cmd_set_data
    - fu_chunk_get_data
    - FU_UDEV_DEVICE
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_firmware_get_stream
    - g_set_error
    - fu_chunk_array_index
    - fu_input_stream_size
    - g_prefix_error
    - fu_udev_device_ioctl_new
    - g_autoptr
    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:597,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:598,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:600,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 611
    functionName: fu_emmc_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_strcmp0
    - FU_EMMC_DEVICE
    - g_set_error_literal
    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:616,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:617,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:618,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:619,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:620,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:621,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 613
    functionDepth: 3
    functionLinenumber: 613
    functionLinenumberEnd: 623
    functionName: fu_emmc_device_set_progress
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_emmc_device_set_progress(FuDevice *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:628,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:628,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:629,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:629,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:630,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:630,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:631,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:631,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:632,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:632,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:633,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/emmc/fu-emmc-device.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuEmmcDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 634
    functionName: fu_emmc_device_init
    functionSourceFile: /src/fwupd/plugins/emmc/fu-emmc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_private_flag
    - fu_device_add_icon
    - FU_DEVICE
    - FU_UDEV_DEVICE
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    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:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuEmmcDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 647
    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_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_udev_subsystem
      Src: /src/fwupd/plugins/cfu/fu-cfu-plugin.c:34,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/cfu/fu-cfu-plugin.c:35,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/cfu/fu-cfu-plugin.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 39
    functionName: fu_cfu_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_add_device_gtype
    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:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCfuPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    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:24,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:25,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.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_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: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    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: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_set_name
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:65,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:69,1
    - Dst: fu_struct_cfu_get_version_rsp_component_get_fw_version
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:70,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:73,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:74,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - offset
    - error
    argTypes:
    - FuCfuModule*
    - guint8*
    - gsize
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 35
    functionDepth: 7
    functionLinenumber: 35
    functionLinenumberEnd: 78
    functionName: fu_cfu_module_setup
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-module.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_add_instance_u4
    - fu_device_add_instance_u8
    - fu_device_set_version_raw
    - fu_device_build_instance_id
    - fu_struct_cfu_get_version_rsp_component_get_flags
    - FU_DEVICE
    - g_strdup_printf
    - fu_device_set_name
    - fu_struct_cfu_get_version_rsp_component_get_fw_version
    - fu_struct_cfu_get_version_rsp_component_parse
    - fu_struct_cfu_get_version_rsp_component_get_component_id
    - fu_device_get_name
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_cfu_module_setup(FuCfuModule *self, const guint8 *buf,
      gsize bufsz, gsize offset, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:87,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:87,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:88,1
    - Dst: fu_zip_firmware_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:89,1
    - Dst: g_autoptr
      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_cfu_offer_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: fu_cfu_payload_new
      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_firmware_add_image_gtype
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:96,1
    - Dst: fu_firmware_add_image_gtype
      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_firmware_get_image_by_id
      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:107,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:110,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:112,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:113,1
    - Dst: fu_firmware_get_image_by_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:117,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:120,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:123,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:125,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:126,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:130,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 131
    functionName: fu_cfu_module_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-module.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_id
    - fu_cfu_offer_new
    - fu_firmware_parse_stream
    - fu_firmware_get_bytes
    - fu_cfu_payload_new
    - fu_firmware_add_image_gtype
    - fu_firmware_add_image
    - g_steal_pointer
    - fu_firmware_get_image_by_id
    - fu_firmware_new
    - fu_zip_firmware_new
    - fu_firmware_parse_bytes
    - g_autoptr
    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:144,1
    - Dst: FU_DEVICE_GET_CLASS
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:147,1
    - Dst: FuDeviceClass*::write_firmware
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:148,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: 149
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 149
    functionName: fu_cfu_module_write_firmware
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-module.c
    functionUses: 0
    functionsReached:
    - FuDeviceClass*::write_firmware
    - FU_DEVICE_GET_CLASS
    - fu_device_get_proxy
    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:154,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:155,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:156,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:157,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:158,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:159,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 161
    functionName: fu_cfu_module_set_progress
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-module.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_cfu_module_set_progress(FuDevice *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:166,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: fu_cfu_module_convert_version
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-module.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    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:172,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:172,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:173,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:173,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:174,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:174,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:175,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:175,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:176,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:176,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:177,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:177,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:178,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-module.c:178,1
    - Dst: fu_device_add_private_flag
      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_add_private_flag
      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_add_private_flag
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 169
    functionDepth: 6
    functionLinenumber: 169
    functionLinenumberEnd: 182
    functionName: fu_cfu_module_init
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-module.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    - 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:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCfuModuleClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 193
    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:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 199
    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 *proxy)'
  - 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:
    - g_strdup_printf
    - fwupd_codec_string_append_hex
    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:
    - fwupd_codec_string_append_hex
    - fu_cfu_device_map_to_string
    - FU_CFU_DEVICE
    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: fu_byte_array_append_array
      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_literal
      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_literal
      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: 6
    functionLinenumber: 58
    functionLinenumberEnd: 125
    functionName: fu_cfu_device_send_offer_info
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_cfu_offer_info_code_to_string
    - fu_hid_device_get_report
    - g_prefix_error_literal
    - fu_struct_cfu_offer_rsp_get_status
    - fu_struct_cfu_offer_info_req_set_code
    - g_byte_array_new
    - fu_byte_array_append_uint8
    - FU_DEVICE
    - fu_struct_cfu_offer_info_req_new
    - fu_struct_cfu_offer_rsp_parse
    - fu_byte_array_append_array
    - fu_struct_cfu_offer_rsp_get_token
    - g_set_error
    - fu_cfu_offer_status_to_string
    - fu_hid_device_set_report
    - fu_device_has_private_flag
    - FU_HID_DEVICE
    - g_autoptr
    - 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_literal
      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_literal
      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: 6
    functionLinenumber: 127
    functionLinenumberEnd: 199
    functionName: fu_cfu_device_send_offer
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_firmware_write
    - FU_CFU_OFFER
    - fu_byte_array_append_bytes
    - fu_hid_device_get_report
    - g_prefix_error_literal
    - fu_struct_cfu_offer_rsp_get_status
    - g_byte_array_new
    - fu_byte_array_append_uint8
    - fu_cfu_offer_set_force_ignore_version
    - fu_struct_cfu_offer_rsp_parse
    - fu_cfu_offer_get_token
    - fu_struct_cfu_offer_rsp_get_rr_code
    - fu_struct_cfu_offer_rsp_get_token
    - g_set_error
    - fu_cfu_offer_status_to_string
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    - fu_cfu_rr_code_to_string
    - g_autoptr
    - 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: fu_byte_array_append_array
      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_literal
      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_literal
      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: 6
    functionLinenumber: 201
    functionLinenumberEnd: 293
    functionName: fu_cfu_device_send_payload
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_struct_cfu_content_rsp_get_seq_number
    - g_ptr_array_index
    - fu_struct_cfu_content_req_get_seq_number
    - fu_cfu_content_status_to_string
    - fu_struct_cfu_content_req_new
    - fu_struct_cfu_content_rsp_get_status
    - fu_struct_cfu_content_req_set_seq_number
    - fu_hid_device_get_report
    - fu_progress_set_steps
    - g_prefix_error_literal
    - g_byte_array_new
    - fu_firmware_get_chunks
    - fu_struct_cfu_content_req_set_data_length
    - fu_progress_step_done
    - fu_byte_array_append_uint8
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_chunk_get_address
    - fu_progress_set_id
    - fu_byte_array_append_array
    - g_set_error
    - fu_hid_device_set_report
    - fu_struct_cfu_content_req_set_flags
    - FU_HID_DEVICE
    - fu_struct_cfu_content_req_set_address
    - fu_struct_cfu_content_rsp_parse
    - g_autoptr
    - 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: 7
    functionLinenumber: 295
    functionLinenumberEnd: 354
    functionName: fu_cfu_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_add_flag
    - fu_progress_step_done
    - fu_firmware_get_image_by_id
    - FU_CFU_DEVICE
    - fu_cfu_device_send_offer_info
    - fu_cfu_device_send_offer
    - fu_cfu_device_send_payload
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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_FIRMWARE
    - fu_firmware_get_image_by_id
    - FU_HID_DESCRIPTOR
    - FU_HID_REPORT_ITEM
    - 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_literal
      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_literal
      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_literal
      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_literal
      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_literal
      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_literal
    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:440,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:448,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:457,1
    - Dst: fu_byte_array_set_size
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:458,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:459,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:459,1
    - Dst: fu_struct_cfu_get_version_rsp_parse
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:467,1
    - Dst: fu_struct_cfu_get_version_rsp_get_flags
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:470,1
    - Dst: g_hash_table_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:473,1
    - Dst: fu_struct_cfu_get_version_rsp_get_component_cnt
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:477,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:479,1
    - Dst: fu_cfu_module_new
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:479,1
    - Dst: fu_cfu_module_setup
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:482,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:484,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:484,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:488,1
    - Dst: GINT_TO_POINTER
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:489,1
    - Dst: fu_cfu_module_get_component_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:489,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:491,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:491,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: g_hash_table_insert
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:494,1
    - Dst: GINT_TO_POINTER
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:495,1
    - Dst: fu_cfu_module_get_component_id
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:495,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 408
    functionDepth: 11
    functionLinenumber: 408
    functionLinenumberEnd: 505
    functionName: fu_cfu_device_setup
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_child
    - g_hash_table_insert
    - GINT_TO_POINTER
    - g_hash_table_lookup
    - fu_cfu_device_verify_descriptor
    - g_ptr_array_index
    - fu_cfu_module_setup
    - fu_hid_device_get_ep_addr_in
    - fu_hid_device_get_report
    - g_hash_table_new
    - g_byte_array_new
    - g_string_new
    - fu_struct_cfu_get_version_rsp_get_component_cnt
    - g_string_append
    - fu_cfu_module_new
    - fu_byte_array_append_uint8
    - FU_DEVICE
    - fu_hid_device_parse_descriptors
    - FU_DEVICE_CLASS
    - fu_struct_cfu_get_version_rsp_get_flags
    - fu_cfu_module_get_component_id
    - fu_struct_cfu_get_version_rsp_parse
    - g_set_error
    - FU_CFU_DEVICE
    - FU_HID_DEVICE
    - fu_hid_device_set_ep_addr_out
    - fu_hid_device_get_ep_addr_out
    - g_string_append_printf
    - g_autoptr
    - 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:510,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:513,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:515,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:520,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:522,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:527,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:529,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:534,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:536,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:541,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:543,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:550,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 555
    functionName: fu_cfu_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_strcmp0
    - g_set_error_literal
    - FU_CFU_DEVICE
    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:566,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:566,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:567,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/cfu/fu-cfu-device.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuCfuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 568
    functionName: fu_cfu_device_init
    functionSourceFile: /src/fwupd/plugins/cfu/fu-cfu-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_hid_device_add_flag
    - fu_device_register_private_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:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuCfuDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 578
    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: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFocalFpPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fu_focal_fp_plugin_init
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_focal_fp_plugin_init(FuFocalFpPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-plugin.c:27,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-plugin.c:28,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-plugin.c:29,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-plugin.c:30,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: fu_focal_fp_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_focal_fp_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-plugin.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFocalFpPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: fu_focal_fp_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_focal_fp_plugin_class_init(FuFocalFpPluginClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:34,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:34,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:34,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:35,1
    - Dst: fu_udev_device_get_subsystem
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:39,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:39,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:44,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 54
    functionName: fu_focal_fp_hid_device_probe
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_device_get_pid
    - g_set_error
    - g_set_error_literal
    - FU_UDEV_DEVICE
    - fu_udev_device_get_subsystem
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_fp_hid_device_probe(FuDevice *device, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:71,1
    - Dst: fu_xor8_safe
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:73,1
    - Dst: fu_memwrite_uint8_safe
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:76,1
    - Dst: fu_hidraw_device_set_feature
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:78,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:78,1
    - Dst: fu_hidraw_device_get_feature
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:90,1
    - Dst: FU_HIDRAW_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:90,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:97,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 6
    argNames:
    - self
    - wbuf
    - wbufsz
    - rbuf
    - rbufsz
    - error
    argTypes:
    - FuFocalFpHidDevice*
    - guint8*
    - gsize
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 56
    functionDepth: 5
    functionLinenumber: 56
    functionLinenumberEnd: 103
    functionName: fu_focal_fp_hid_device_io
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_xor8_safe
    - fu_memwrite_uint8_safe
    - fu_hidraw_device_set_feature
    - fu_hidraw_device_get_feature
    - FU_HIDRAW_DEVICE
    - fu_memcpy_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_fp_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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:113,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:123,1
    - Dst: fu_xor8_safe
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:125,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - buf
    - bufsz
    - cmd
    - error
    argTypes:
    - guint8*
    - gsize
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 140
    functionName: fu_focal_fp_hid_device_check_cmd_crc
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_xor8_safe
    - fu_memread_uint8_safe
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_fp_hid_device_check_cmd_crc(const guint8 *buf, gsize
      bufsz, guint8 cmd, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_FP_HID_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:145,1
    - Dst: fu_focal_fp_hid_device_io
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:149,1
    - Dst: fu_focal_fp_hid_device_check_cmd_crc
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 142
    functionDepth: 6
    functionLinenumber: 142
    functionLinenumberEnd: 162
    functionName: fu_focal_fp_hid_device_read_reg_cb
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_FOCAL_FP_HID_DEVICE
    - fu_focal_fp_hid_device_check_cmd_crc
    - fu_focal_fp_hid_device_io
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_fp_hid_device_read_reg_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_focal_fp_hid_device_io
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:173,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:177,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:177,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: 183
      start: 164
    functionDepth: 6
    functionLinenumber: 164
    functionLinenumberEnd: 183
    functionName: fu_focal_fp_hid_device_read_reg
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_focal_fp_hid_device_io
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_fp_hid_device_read_reg(FuFocalFpHidDevice *self,\n\t\t\t\tguint8
      reg_address,\n\t\t\t\tguint8 *val, /* out */\n\t\t\t\tGError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_focal_fp_hid_device_io
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:192,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:193,1
    - Dst: fu_focal_fp_hid_device_check_cmd_crc
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFocalFpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 186
    functionDepth: 6
    functionLinenumber: 186
    functionLinenumberEnd: 199
    functionName: fu_focal_fp_hid_device_enter_upgrade_mode
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_focal_fp_hid_device_check_cmd_crc
    - fu_focal_fp_hid_device_io
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_fp_hid_device_enter_upgrade_mode(FuFocalFpHidDevice
      *self, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_focal_fp_hid_device_io
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:208,1
    - Dst: fu_focal_fp_hid_device_check_cmd_crc
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - val
    - error
    argTypes:
    - FuFocalFpHidDevice*
    - guint8*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 202
    functionDepth: 6
    functionLinenumber: 202
    functionLinenumberEnd: 221
    functionName: fu_focal_fp_hid_device_check_current_state
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_focal_fp_hid_device_check_cmd_crc
    - fu_focal_fp_hid_device_io
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_fp_hid_device_check_current_state(FuFocalFpHidDevice
      *self, guint8 *val, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_FP_HID_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:228,1
    - Dst: fu_focal_fp_hid_device_io
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:232,1
    - Dst: fu_focal_fp_hid_device_check_cmd_crc
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 223
    functionDepth: 6
    functionLinenumber: 223
    functionLinenumberEnd: 240
    functionName: fu_focal_fp_hid_device_wait_for_upgrade_ready_cb
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_FOCAL_FP_HID_DEVICE
    - fu_focal_fp_hid_device_check_cmd_crc
    - fu_focal_fp_hid_device_io
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_fp_hid_device_wait_for_upgrade_ready_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/focal-fp/fu-focal-fp-hid-device.c:248,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - retries
    - error
    argTypes:
    - FuFocalFpHidDevice*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 254
    functionName: fu_focal_fp_hid_device_wait_for_upgrade_ready
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_fp_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_FOCAL_FP_HID_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:259,1
    - Dst: fu_focal_fp_hid_device_io
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:264,1
    - Dst: fu_focal_fp_hid_device_check_cmd_crc
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:268,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 256
    functionDepth: 6
    functionLinenumber: 256
    functionLinenumberEnd: 277
    functionName: fu_focal_fp_hid_device_read_update_id_cb
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_FOCAL_FP_HID_DEVICE
    - fu_focal_fp_hid_device_check_cmd_crc
    - fu_focal_fp_hid_device_io
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_fp_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/focal-fp/fu-focal-fp-hid-device.c:283,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - us_ic_id
    - error
    argTypes:
    - FuFocalFpHidDevice*
    - guint16*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 289
    functionName: fu_focal_fp_hid_device_read_update_id
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_retry_full
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_fp_hid_device_read_update_id(FuFocalFpHidDevice *self,
      guint16 *us_ic_id, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_focal_fp_hid_device_io
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:298,1
    - Dst: fu_focal_fp_hid_device_check_cmd_crc
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFocalFpHidDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 292
    functionDepth: 6
    functionLinenumber: 292
    functionLinenumberEnd: 303
    functionName: fu_focal_fp_hid_device_erase_flash
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_focal_fp_hid_device_check_cmd_crc
    - fu_focal_fp_hid_device_io
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_fp_hid_device_erase_flash(FuFocalFpHidDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_FP_HID_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:308,1
    - Dst: fu_focal_fp_hid_device_io
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:311,1
    - Dst: fu_focal_fp_hid_device_check_cmd_crc
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 305
    functionDepth: 6
    functionLinenumber: 305
    functionLinenumberEnd: 316
    functionName: fu_focal_fp_hid_device_send_data_cb
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_FOCAL_FP_HID_DEVICE
    - fu_focal_fp_hid_device_check_cmd_crc
    - fu_focal_fp_hid_device_io
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_fp_hid_device_send_data_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:330,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:338,1
    - Dst: fu_focal_fp_hid_device_io
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:340,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:343,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:343,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: 349
      start: 319
    functionDepth: 6
    functionLinenumber: 319
    functionLinenumberEnd: 349
    functionName: fu_focal_fp_hid_device_send_data
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_device_retry_full
    - FU_DEVICE
    - fu_focal_fp_hid_device_io
    - fu_memcpy_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_fp_hid_device_send_data(FuFocalFpHidDevice *self,\n\t\t\t\t
      guint8 packet_type,\n\t\t\t\t const guint8 *buf,\n\t\t\t\t guint8 bufsz,\n\t\t\t\t
      GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fu_focal_fp_hid_device_io
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:358,1
    - Dst: fu_focal_fp_hid_device_check_cmd_crc
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:362,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - val
    - error
    argTypes:
    - FuFocalFpHidDevice*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 352
    functionDepth: 6
    functionLinenumber: 352
    functionLinenumberEnd: 370
    functionName: fu_focal_fp_hid_device_checksum_upgrade
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    - fu_focal_fp_hid_device_check_cmd_crc
    - fu_focal_fp_hid_device_io
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_fp_hid_device_checksum_upgrade(FuFocalFpHidDevice
      *self, guint32 *val, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_FP_HID_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:375,1
    - Dst: fu_focal_fp_hid_device_read_reg
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:379,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:380,1
    - Dst: fu_focal_fp_hid_device_read_reg
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:383,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:384,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:387,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 372
    functionDepth: 7
    functionLinenumber: 372
    functionLinenumberEnd: 391
    functionName: fu_focal_fp_hid_device_setup
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_FOCAL_FP_HID_DEVICE
    - fu_device_set_version_raw
    - g_prefix_error_literal
    - fu_memread_uint16
    - fu_focal_fp_hid_device_read_reg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_fp_hid_device_setup(FuDevice *device, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:400,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:401,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:401,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:402,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:403,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:407,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:412,1
    - Dst: fu_focal_fp_hid_device_send_data
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:415,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:417,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:418,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:420,1
    - Dst: fu_focal_fp_hid_device_wait_for_upgrade_ready
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:423,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:424,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:427,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - self
    - chunks
    - progress
    - error
    argTypes:
    - FuFocalFpHidDevice*
    - FuChunkArray*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 393
    functionDepth: 7
    functionLinenumber: 393
    functionLinenumberEnd: 432
    functionName: fu_focal_fp_hid_device_write_chunks
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_focal_fp_hid_device_wait_for_upgrade_ready
    - fu_focal_fp_hid_device_send_data
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - g_prefix_error
    - fu_progress_step_done
    - fu_chunk_get_data
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_fp_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_FOCAL_FP_HID_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:441,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:444,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:445,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:448,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:449,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:450,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:451,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:452,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:453,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:456,1
    - Dst: fu_focal_fp_hid_device_wait_for_upgrade_ready
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:461,1
    - Dst: fu_focal_fp_hid_device_read_update_id
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:463,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:466,1
    - Dst: fu_focal_fp_hid_device_erase_flash
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:474,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:476,1
    - Dst: fu_focal_fp_hid_device_wait_for_upgrade_ready
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:477,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:479,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:482,1
    - Dst: fu_focal_fp_hid_device_write_chunks
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:489,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:491,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:494,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:497,1
    - Dst: fu_focal_fp_hid_device_wait_for_upgrade_ready
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:498,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:500,1
    - Dst: fu_focal_fp_hid_device_checksum_upgrade
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:503,1
    - Dst: fu_focal_fp_firmware_get_checksum
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:505,1
    - Dst: FU_FOCAL_FP_FIRMWARE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:505,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:506,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:507,1
    - Dst: fu_focal_fp_firmware_get_checksum
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:512,1
    - Dst: FU_FOCAL_FP_FIRMWARE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:512,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:515,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 434
    functionDepth: 8
    functionLinenumber: 434
    functionLinenumberEnd: 519
    functionName: fu_focal_fp_hid_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_focal_fp_hid_device_wait_for_upgrade_ready
    - fu_focal_fp_hid_device_write_chunks
    - FU_FOCAL_FP_HID_DEVICE
    - fu_focal_fp_hid_device_read_update_id
    - fu_progress_add_step
    - fu_firmware_get_stream
    - g_set_error
    - fu_progress_add_flag
    - fu_device_sleep
    - fu_progress_step_done
    - fu_progress_get_child
    - fu_chunk_array_new_from_stream
    - FU_FOCAL_FP_FIRMWARE
    - fu_focal_fp_hid_device_checksum_upgrade
    - fu_focal_fp_firmware_get_checksum
    - g_autoptr
    - fu_focal_fp_hid_device_erase_flash
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_fp_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_FOCAL_FP_HID_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:525,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:528,1
    - Dst: fu_focal_fp_hid_device_read_reg
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:529,1
    - Dst: fu_focal_fp_hid_device_read_reg
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:531,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:533,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:535,1
    - Dst: fu_focal_fp_hid_device_setup
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 522
    functionDepth: 8
    functionLinenumber: 522
    functionLinenumberEnd: 547
    functionName: fu_focal_fp_hid_device_reload
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_FOCAL_FP_HID_DEVICE
    - g_debug
    - g_set_error
    - fu_device_sleep
    - fu_focal_fp_hid_device_setup
    - fu_focal_fp_hid_device_read_reg
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_fp_hid_device_reload(FuDevice *device, GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_FP_HID_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:552,1
    - Dst: fu_focal_fp_hid_device_enter_upgrade_mode
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:555,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:556,1
    - Dst: fu_focal_fp_hid_device_check_current_state
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:561,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:566,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 549
    functionDepth: 7
    functionLinenumber: 549
    functionLinenumberEnd: 577
    functionName: fu_focal_fp_hid_device_detach_cb
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_FOCAL_FP_HID_DEVICE
    - fu_focal_fp_hid_device_check_current_state
    - g_set_error
    - g_prefix_error_literal
    - fu_focal_fp_hid_device_enter_upgrade_mode
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_fp_hid_device_detach_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_FP_HID_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:583,1
    - Dst: fu_focal_fp_hid_device_io
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:588,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:589,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:592,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:595,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 580
    functionDepth: 6
    functionLinenumber: 580
    functionLinenumberEnd: 606
    functionName: fu_focal_fp_hid_device_detach
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_FOCAL_FP_HID_DEVICE
    - fu_device_sleep
    - g_prefix_error_literal
    - fu_device_retry_full
    - fu_focal_fp_hid_device_io
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_fp_hid_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_FP_HID_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:612,1
    - Dst: fu_focal_fp_hid_device_io
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:616,1
    - Dst: fu_focal_fp_hid_device_check_cmd_crc
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:620,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 609
    functionDepth: 6
    functionLinenumber: 609
    functionLinenumberEnd: 626
    functionName: fu_focal_fp_hid_device_attach
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - FU_FOCAL_FP_HID_DEVICE
    - fu_focal_fp_hid_device_check_cmd_crc
    - fu_focal_fp_hid_device_io
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_focal_fp_hid_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:631,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:632,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:633,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:634,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:635,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:636,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 628
    functionDepth: 3
    functionLinenumber: 628
    functionLinenumberEnd: 638
    functionName: fu_focal_fp_hid_device_set_progress
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_focal_fp_hid_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:643,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 644
    functionName: fu_focal_fp_hid_device_convert_version
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_focal_fp_hid_device_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:649,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:649,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:650,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:650,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:651,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:651,1
    - Dst: fu_device_set_firmware_size
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:652,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:652,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:653,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:653,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:654,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:654,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:655,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:655,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:656,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:656,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:657,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:657,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:658,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:658,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:659,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:659,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:660,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFocalFpHidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 646
    functionDepth: 6
    functionLinenumber: 646
    functionLinenumberEnd: 661
    functionName: fu_focal_fp_hid_device_init
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_firmware_size
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_set_summary
    - FU_UDEV_DEVICE
    - fu_device_set_version_format
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    - fu_udev_device_add_open_flag
    linkageType: ''
    returnType: void
    signature: void fu_focal_fp_hid_device_init(FuFocalFpHidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFocalFpHidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 675
    functionName: fu_focal_fp_hid_device_class_init
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_focal_fp_hid_device_class_init(FuFocalFpHidDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-firmware.c:27,1
    - Dst: FU_IS_FOCAL_FP_FIRMWARE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-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_focal_fp_firmware_get_checksum
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-firmware.c
    functionUses: 1
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_FOCAL_FP_FIRMWARE
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_focal_fp_firmware_get_checksum(FuFocalFpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_FP_FIRMWARE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-firmware.c:34,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-firmware.c:35,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-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_focal_fp_firmware_export
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - FU_FOCAL_FP_FIRMWARE
    linkageType: ''
    returnType: void
    signature: void fu_focal_fp_firmware_export(FuFirmware *firmware, FuFirmwareExportFlags
      flags, XbBuilderNode *bn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-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: 4
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: fu_focal_fp_firmware_compute_checksum_cb
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_fp_firmware_compute_checksum_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: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_FOCAL_FP_FIRMWARE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-firmware.c:61,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-firmware.c:64,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-firmware.c:72,1
    - Dst: fu_input_stream_chunkify
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-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_focal_fp_firmware_parse
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_chunkify
    - fu_input_stream_read_u16
    - FU_FOCAL_FP_FIRMWARE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_focal_fp_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_set_size_max
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-firmware.c:95,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-firmware.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFocalFpFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: fu_focal_fp_firmware_init
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_focal_fp_firmware_init(FuFocalFpFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/focal-fp/fu-focal-fp-firmware.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFocalFpFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: fu_focal_fp_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/focal-fp/fu-focal-fp-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_focal_fp_firmware_class_init(FuFocalFpFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    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: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    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: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:67,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:71,1
    - Dst: fu_redfish_request_set_cache
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:74,1
    - Dst: fu_redfish_request_set_curlsh
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:75,1
    - Dst: fu_redfish_request_set_path_prefix
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:77,1
    - Dst: fu_redfish_request_get_curl
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:80,1
    - Dst: fu_redfish_request_get_uri
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:81,1
    - Dst: curl_url_set
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:82,1
    - Dst: curl_url_set
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:83,1
    - Dst: curl_url_set
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:84,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: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:97,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:98,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:99,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:103,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:104,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:105,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:107,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 113
    functionName: fu_redfish_backend_request_new
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - fu_redfish_request_get_curl
    - curl_easy_setopt
    - fu_redfish_request_set_path_prefix
    - fu_redfish_request_set_curlsh
    - fu_redfish_request_get_uri
    - g_strdup_printf
    - g_object_new
    - fu_redfish_request_set_cache
    - curl_url_set
    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:120,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:121,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:122,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:125,1
    - Dst: fu_backend_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:127,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:127,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:136,1
    - Dst: fu_redfish_multipart_device_set_apply_time
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:139,1
    - Dst: FU_REDFISH_MULTIPART_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:139,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:145,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:148,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:150,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:151,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:154,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:154,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:158,1
    - Dst: fu_backend_device_added
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:159,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:159,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - self
    - json_obj
    - error
    argTypes:
    - FuRedfishBackend*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 161
    functionName: fu_redfish_backend_coldplug_member
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_MULTIPART_DEVICE
    - fu_backend_device_added
    - g_debug
    - fu_device_add_instance_str
    - fu_device_set_firmware_size_max
    - fu_redfish_multipart_device_set_apply_time
    - fu_device_add_private_flag
    - fu_device_locker_new
    - g_steal_pointer
    - g_propagate_error
    - g_object_new
    - g_error_matches
    - fu_backend_get_context
    - FU_BACKEND
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_backend_coldplug_member(FuRedfishBackend *self,\n\t\t\t\t
      \  FwupdJsonObject *json_obj,\n\t\t\t\t   GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:168,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:170,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:173,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:175,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:175,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:176,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:177,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:179,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:182,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:187,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:192,1
    - Dst: fu_redfish_backend_coldplug_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - self
    - json_obj
    - error
    argTypes:
    - FuRedfishBackend*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 163
    functionDepth: 4
    functionLinenumber: 163
    functionLinenumberEnd: 197
    functionName: fu_redfish_backend_coldplug_collection
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - fwupd_json_array_get_size
    - fu_redfish_request_perform
    - fwupd_json_object_get_array
    - fu_redfish_backend_coldplug_member
    - fu_redfish_request_get_json_object
    - fwupd_json_object_get_string
    - fwupd_json_array_get_object
    - g_autoptr
    - fu_redfish_backend_request_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_backend_coldplug_collection(FuRedfishBackend *self,\n\t\t\t\t
      \      FwupdJsonObject *json_obj,\n\t\t\t\t       GError **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:205,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:205,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:206,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:208,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:211,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:216,1
    - Dst: fu_redfish_backend_coldplug_collection
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - json_inventory
    - error
    argTypes:
    - FuRedfishBackend*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 218
    functionName: fu_redfish_backend_coldplug_inventory
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - fu_redfish_request_perform
    - fu_redfish_request_get_json_object
    - fwupd_json_object_get_string
    - g_autoptr
    - fu_redfish_backend_coldplug_collection
    - fu_redfish_backend_request_new
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_redfish_backend_coldplug_inventory(FuRedfishBackend *self,\n\t\t\t\t
      \     FwupdJsonObject *json_inventory,\n\t\t\t\t      GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:223,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:223,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:223,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:224,1
    - Dst: g_hash_table_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:224,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:229,1
    - Dst: fu_device_get_instance_ids
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:230,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:231,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:232,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:234,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:237,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 220
    functionDepth: 6
    functionLinenumber: 220
    functionLinenumberEnd: 240
    functionName: fu_redfish_backend_check_wildcard_targets
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_hash_table_insert
    - g_hash_table_lookup
    - g_hash_table_new
    - fu_backend_get_devices
    - g_autoptr
    - fu_device_get_instance_ids
    - FU_BACKEND
    - g_ptr_array_index
    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:245,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - session_key
    argTypes:
    - FuRedfishBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: fu_redfish_backend_set_session_key
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_free
    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:252,1
    - Dst: g_ascii_strncasecmp
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:253,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:256,1
    - Dst: fu_redfish_backend_set_session_key
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:257,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: 260
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 260
    functionName: fu_redfish_backend_session_headers_callback
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - fu_redfish_backend_set_session_key
    - FU_REDFISH_BACKEND
    - 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:265,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:265,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:266,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:266,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:268,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:269,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: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:272,1
    - Dst: fu_redfish_request_get_curl
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:272,1
    - Dst: fu_redfish_request_perform_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:277,1
    - Dst: fu_redfish_backend_get_session_key
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:284,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRedfishBackend*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 294
    functionName: fu_redfish_backend_create_session
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - fu_redfish_request_get_curl
    - curl_easy_setopt
    - fwupd_json_object_new
    - g_set_error_literal
    - fu_redfish_backend_request_new
    - fu_redfish_request_perform_full
    - fu_redfish_backend_get_session_key
    - g_autoptr
    - fwupd_json_object_add_string
    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:299,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - push_uri_path
    argTypes:
    - FuRedfishBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: fu_redfish_backend_set_push_uri_path
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_set_push_uri_path(FuRedfishBackend *self, const
      gchar *push_uri_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:306,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - path_prefix
    argTypes:
    - FuRedfishBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: fu_redfish_backend_set_path_prefix
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_set_path_prefix(FuRedfishBackend *self, const
      gchar *path_prefix)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:314,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:315,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:317,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:320,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:323,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - json_obj
    argTypes:
    - FwupdJsonObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 328
    functionName: fu_redfish_backend_has_smc_update_path
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_get_object
    - g_autoptr
    - g_strcmp0
    - fwupd_json_object_get_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_backend_has_smc_update_path(FwupdJsonObject *json_obj)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:333,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:336,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:336,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:337,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:338,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:339,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:343,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:348,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:354,1
    - Dst: fwupd_json_object_get_boolean_with_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:355,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:362,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:370,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:372,1
    - Dst: fu_redfish_backend_has_smc_update_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:373,1
    - Dst: fu_redfish_backend_set_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:378,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:382,1
    - Dst: g_str_equal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:384,1
    - Dst: fu_redfish_backend_set_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:388,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:392,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:398,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:407,1
    - Dst: fu_redfish_backend_coldplug_inventory
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:409,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:410,1
    - Dst: fu_redfish_backend_coldplug_inventory
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:412,1
    - Dst: fu_redfish_backend_check_wildcard_targets
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:416,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 3
    argNames:
    - backend
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 330
    functionDepth: 7
    functionLinenumber: 330
    functionLinenumberEnd: 420
    functionName: fu_redfish_backend_coldplug
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_redfish_backend_check_wildcard_targets
    - g_str_equal
    - g_set_error_literal
    - fwupd_json_object_get_object
    - fu_redfish_request_perform
    - FU_REDFISH_BACKEND
    - fu_redfish_backend_set_push_uri_path
    - fu_redfish_request_get_json_object
    - fwupd_json_object_get_boolean_with_default
    - fwupd_json_object_get_string
    - fu_redfish_backend_coldplug_inventory
    - g_autoptr
    - fwupd_json_object_get_integer_with_default
    - fu_redfish_backend_request_new
    - fu_redfish_backend_has_smc_update_path
    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:426,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:429,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - update_uri_path
    argTypes:
    - FuRedfishBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 431
    functionName: fu_redfish_backend_set_update_uri_path
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_set_update_uri_path(FuRedfishBackend *self,
      const gchar *update_uri_path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:439,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:439,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:440,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:441,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:442,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:443,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:445,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:450,1
    - Dst: fwupd_json_object_has_node
      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: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:455,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:458,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:460,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:463,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:465,1
    - Dst: fwupd_json_object_get_integer
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:468,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:469,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:474,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 3
    argNames:
    - self
    - member_uri
    - error
    argTypes:
    - FuRedfishBackend*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 433
    functionDepth: 3
    functionLinenumber: 433
    functionLinenumberEnd: 476
    functionName: fu_redfish_backend_setup_dell_member
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_get_integer
    - g_set_error_literal
    - fwupd_json_object_get_object
    - fu_redfish_request_perform
    - g_prefix_error_literal
    - g_strdup_printf
    - fu_redfish_request_get_json_object
    - g_autoptr
    - fwupd_json_object_has_node
    - fu_redfish_backend_request_new
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:482,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:482,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:483,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:484,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:485,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:487,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:492,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:493,1
    - Dst: fwupd_json_array_get_size
      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: fwupd_json_array_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:503,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:506,1
    - Dst: fu_redfish_backend_setup_dell_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:509,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRedfishBackend*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 478
    functionDepth: 4
    functionLinenumber: 478
    functionLinenumberEnd: 510
    functionName: fu_redfish_backend_setup_dell
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - fwupd_json_array_get_size
    - fu_redfish_backend_setup_dell_member
    - g_set_error_literal
    - fu_redfish_request_perform
    - fwupd_json_object_get_array
    - fu_redfish_request_get_json_object
    - fwupd_json_object_get_string
    - fwupd_json_array_get_object
    - g_autoptr
    - fu_redfish_backend_request_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_backend_setup_dell(FuRedfishBackend *self, GError
      **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:518,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:519,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:520,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:523,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:523,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:527,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:536,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:541,1
    - Dst: fwupd_json_object_has_node
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:542,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:543,1
    - Dst: fwupd_json_object_has_node
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:544,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:545,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:548,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:549,1
    - Dst: fwupd_json_object_has_node
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:551,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:552,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:553,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:553,1
    - Dst: fwupd_json_object_has_node
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:555,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:556,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:557,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:557,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:559,1
    - Dst: fu_redfish_backend_setup_dell
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:560,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:563,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:566,1
    - Dst: fu_redfish_backend_set_update_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:569,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 4
    argNames:
    - backend
    - flags
    - progress
    - error
    argTypes:
    - FuBackend*
    - FuBackendSetupFlags
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 512
    functionDepth: 5
    functionLinenumber: 512
    functionLinenumberEnd: 571
    functionName: fu_redfish_backend_setup
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_strcmp0
    - fu_redfish_backend_set_update_uri_path
    - g_set_error
    - fwupd_json_object_has_node
    - fwupd_json_object_get_object
    - fu_redfish_request_perform
    - FU_REDFISH_BACKEND
    - fu_redfish_backend_setup_dell
    - g_free
    - fu_redfish_request_get_json_object
    - fwupd_json_object_get_string
    - g_autoptr
    - fu_redfish_backend_request_new
    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:576,1
    - Dst: g_hash_table_remove_all
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - backend
    argTypes:
    - FuBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 578
    functionName: fu_redfish_backend_invalidate
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_BACKEND
    - g_hash_table_remove_all
    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:583,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - hostname
    argTypes:
    - FuRedfishBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 585
    functionName: fu_redfish_backend_set_hostname
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_free
    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: 591
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 591
    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: 597
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 597
    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: 603
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 603
    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: 609
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 609
    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:614,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - username
    argTypes:
    - FuRedfishBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 616
    functionName: fu_redfish_backend_set_username
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_free
    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: 622
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 622
    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:627,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - password
    argTypes:
    - FuRedfishBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 629
    functionName: fu_redfish_backend_set_password
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_set_password(FuRedfishBackend *self, const
      gchar *password)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:634,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - bearer_token
    argTypes:
    - FuRedfishBackend*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 636
    functionName: fu_redfish_backend_set_bearer_token
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_redfish_backend_set_bearer_token(FuRedfishBackend *self, const
      gchar *bearer_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishBackend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 642
    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: 648
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 648
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:653,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:654,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:655,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:656,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:657,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:658,1
    - Dst: fwupd_codec_string_append_int
      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
      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:663,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:664,1
    - Dst: fwupd_codec_string_append_bool
      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_hex
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:667,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:668,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:669,1
    - Dst: g_type_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - backend
    - idt
    - str
    argTypes:
    - FuBackend*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 650
    functionDepth: 3
    functionLinenumber: 650
    functionLinenumberEnd: 670
    functionName: fu_redfish_backend_to_string
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - g_type_name
    - FU_REDFISH_BACKEND
    - fwupd_codec_string_append
    - fwupd_codec_string_append_bool
    - fwupd_codec_string_append_int
    - fwupd_codec_string_append_hex
    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:675,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:676,1
    - Dst: curl_share_cleanup
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:677,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-backend.c:678,1
    - Dst: g_free
      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: 16
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 691
    functionName: fu_redfish_backend_finalize
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-backend.c
    functionUses: 0
    functionsReached:
    - curl_share_cleanup
    - FU_REDFISH_BACKEND
    - G_OBJECT_CLASS
    - g_free
    - g_hash_table_unref
    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:
    - FU_BACKEND_CLASS
    - G_OBJECT_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:
    - g_object_new
    - FU_REDFISH_BACKEND
    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
    - g_string_new
    - g_string_append_printf
    - g_string_free
    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
    - g_string_new
    - g_string_append_printf
    - g_string_free
    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
    - g_string_new
    - g_string_append_printf
    - g_string_free
    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_return_val_if_fail
    - g_strdup
    - g_strcmp0
    - g_debug
    - g_strsplit
    - g_strstr_len
    - g_auto
    - g_str_has_prefix
    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_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:98,1
    - Dst: strlen
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:104,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:105,1
    - Dst: g_ascii_isdigit
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:113,1
    - Dst: g_ascii_isdigit
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:113,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:114,1
    - Dst: g_ascii_isalpha
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:122,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:123,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:132,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-common.c:134,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: 136
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 136
    functionName: fu_redfish_common_parse_version_lenovo
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-common.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_set_error_literal
    - g_ascii_isdigit
    - g_strsplit
    - g_strv_length
    - strlen
    - g_ascii_isalpha
    - g_auto
    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:
    - g_strdup
    - g_strcmp0
    - g_return_if_fail
    - FU_IS_REDFISH_MULTIPART_DEVICE
    - 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: fwupd_json_object_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: fwupd_json_array_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:46,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:49,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:49,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:50,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:50,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:51,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:53,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:55,1
    - Dst: fwupd_json_object_to_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishMultipartDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 62
    functionName: fu_redfish_multipart_device_get_parameters
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_logical_id
    - fwupd_json_object_add_array
    - fwupd_json_object_new
    - fwupd_json_object_to_string
    - fu_device_has_private_flag
    - fwupd_json_array_new
    - FU_DEVICE
    - fwupd_json_array_add_string
    - g_autoptr
    - fwupd_json_object_add_string
    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:71,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:73,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: 76
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 76
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_MULTIPART_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:85,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:91,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:92,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:94,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:97,1
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:102,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:102,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:105,1
    - Dst: fu_redfish_request_get_curl
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:106,1
    - Dst: curl_mime_init
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:107,1
    - Dst: fu_redfish_multipart_device_get_parameters
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:109,1
    - Dst: curl_mime_addpart
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:110,1
    - Dst: curl_mime_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:111,1
    - Dst: curl_mime_type
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:112,1
    - Dst: curl_mime_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:113,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:114,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_filename
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:119,1
    - Dst: fu_firmware_get_filename
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:119,1
    - Dst: curl_mime_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:121,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:121,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:121,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:123,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:124,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:127,1
    - Dst: fu_redfish_request_get_curl
      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:128,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:130,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:131,1
    - Dst: fu_redfish_backend_get_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:132,1
    - Dst: fu_redfish_request_get_status_code
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:137,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:138,1
    - Dst: fu_redfish_request_get_status_code
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:142,1
    - Dst: g_utf8_strlen
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:147,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:150,1
    - Dst: fwupd_json_object_has_node
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:151,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:153,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:154,1
    - Dst: fwupd_json_object_has_node
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:158,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:159,1
    - Dst: fu_redfish_backend_get_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:163,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:166,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:169,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:170,1
    - Dst: fu_redfish_device_poll_task
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:172,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:172,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: 173
      start: 78
    functionDepth: 6
    functionLinenumber: 78
    functionLinenumberEnd: 173
    functionName: fu_redfish_multipart_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_MULTIPART_DEVICE
    - curl_mime_init
    - g_free
    - FU_REDFISH_DEVICE
    - fu_redfish_backend_request_new
    - g_debug
    - fu_firmware_get_bytes
    - fu_redfish_request_get_status_code
    - fwupd_json_object_has_node
    - fu_redfish_multipart_device_get_parameters
    - fu_progress_set_status
    - fu_redfish_request_get_curl
    - curl_easy_setopt
    - g_bytes_get_data
    - fu_redfish_device_get_backend
    - curl_mime_type
    - curl_mime_name
    - curl_mime_filename
    - curl_mime_addpart
    - fu_redfish_request_get_json_object
    - fwupd_json_object_get_string
    - curl_mime_data
    - fu_redfish_device_poll_task
    - fu_redfish_backend_get_push_uri_path
    - g_strdup
    - g_utf8_strlen
    - fu_firmware_get_filename
    - g_set_error
    - fu_redfish_request_perform
    - g_bytes_get_size
    - g_autoptr
    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: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
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:182,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 184
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_redfish_multipart_device_set_apply_time
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:189,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:190,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishMultipartDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: fu_redfish_multipart_device_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_summary
    - fu_redfish_multipart_device_set_apply_time
    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:196,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:197,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: fu_redfish_multipart_device_finalize
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_MULTIPART_DEVICE
    - g_free
    - 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:204,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRedfishMultipartDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 211
    functionName: fu_redfish_multipart_device_class_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-multipart-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_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:41,1
    - Dst: fu_backend_add_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:42,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:42,1
    - Dst: fu_firmware_to_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:44,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:44,1
    - Dst: fwupd_codec_string_append
      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:47,1
    - Dst: fu_redfish_backend_get_vendor
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:47,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:48,1
    - Dst: fu_redfish_backend_get_version
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:51,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:52,1
    - Dst: fu_redfish_backend_get_uuid
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - plugin
    - idt
    - str
    argTypes:
    - FuPlugin*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: fu_redfish_plugin_to_string
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - fu_redfish_backend_get_version
    - FU_FIRMWARE
    - FU_REDFISH_PLUGIN
    - fu_redfish_backend_get_vendor
    - fu_firmware_to_string
    - fwupd_codec_string_append
    - fu_redfish_backend_get_uuid
    - FU_BACKEND
    - fu_backend_add_string
    linkageType: ''
    returnType: void
    signature: void fu_redfish_plugin_to_string(FuPlugin *plugin, guint idt, GString
      *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:58,1
    - Dst: g_string_sized_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:58,1
    - Dst: getrandom
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:67,1
    - Dst: g_ascii_isalnum
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:78,1
    - Dst: g_string_append_c
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:79,1
    - Dst: g_string_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:81,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:81,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - length
    argTypes:
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 82
    functionName: fu_redfish_plugin_generate_password
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - g_ascii_isalnum
    - g_steal_pointer
    - g_string_free
    - getrandom
    - g_string_sized_new
    - g_string_append_c
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_redfish_plugin_generate_password(guint length)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:87,1
    - Dst: fu_redfish_plugin_generate_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:88,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:91,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:91,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:95,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:103,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:105,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:106,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:111,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:112,1
    - Dst: fu_redfish_request_perform_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:113,1
    - Dst: fu_redfish_backend_set_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:121,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - plugin
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 125
    functionName: fu_redfish_plugin_change_expired
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fwupd_json_object_add_string
    - fu_plugin_set_config_value
    - fwupd_json_object_new
    - FU_REDFISH_PLUGIN
    - fu_redfish_plugin_generate_password
    - g_set_error_literal
    - fu_redfish_request_perform_full
    - fu_redfish_backend_set_password
    - fu_plugin_get_config_value
    - g_autoptr
    - fu_redfish_backend_request_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:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:132,1
    - Dst: fu_backend_coldplug
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:135,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:135,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:137,1
    - Dst: fu_redfish_plugin_change_expired
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:138,1
    - Dst: fu_backend_coldplug
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:140,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:140,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:141,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:145,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:145,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:149,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:149,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:151,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:152,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:152,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:153,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:154,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:159,1
    - Dst: fu_plugin_add_rule
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:160,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 127
    functionDepth: 6
    functionLinenumber: 127
    functionLinenumberEnd: 163
    functionName: fu_redfish_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_plugin_add_rule
    - FU_REDFISH_PLUGIN
    - fu_plugin_add_flag
    - g_steal_pointer
    - fu_plugin_get_context
    - fu_backend_coldplug
    - fu_redfish_plugin_change_expired
    - fu_context_has_hwid_flag
    - g_error_matches
    - fu_backend_get_devices
    - g_propagate_error
    - FU_BACKEND
    - g_autoptr
    - fu_plugin_add_device
    - g_ptr_array_index
    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:168,1
    - Dst: fu_redfish_backend_set_username
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:170,1
    - Dst: fu_redfish_backend_set_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - plugin
    - username
    - password
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 172
    functionName: fu_redfish_plugin_set_credentials
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - fu_redfish_backend_set_username
    - FU_REDFISH_PLUGIN
    - fu_redfish_backend_set_password
    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:177,1
    - Dst: fu_backend_invalidate
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:179,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:179,1
    - Dst: fu_backend_setup
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:180,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 184
    functionName: fu_redfish_plugin_reload
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_PLUGIN
    - fu_backend_invalidate
    - FU_BACKEND
    - fu_backend_setup
    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:189,1
    - Dst: fu_context_get_efivars
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:190,1
    - Dst: FU_REDFISH_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:191,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:196,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:197,1
    - Dst: fu_efivars_get_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:200,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:208,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:211,1
    - Dst: fu_efivars_get_data_bytes
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:219,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:228,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:228,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:228,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:229,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:230,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:231,1
    - Dst: fu_redfish_backend_set_username
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:237,1
    - Dst: fu_redfish_backend_set_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:238,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - plugin
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 240
    functionName: fu_redfish_plugin_discover_uefi_credentials
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - fu_efivars_get_data_bytes
    - g_strndup
    - fu_memread_uint32_safe
    - fu_efivars_get_data
    - g_bytes_get_data
    - FU_REDFISH_PLUGIN
    - g_set_error_literal
    - fu_plugin_get_context
    - g_strsplit
    - fu_context_get_efivars
    - g_strv_length
    - fu_redfish_backend_set_username
    - g_bytes_get_size
    - fu_redfish_backend_set_password
    - g_auto
    - g_autoptr
    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:245,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:246,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:248,1
    - Dst: g_getenv
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:251,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:253,1
    - Dst: FU_REDFISH_SMBIOS
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:254,1
    - Dst: fu_firmware_new_from_filename
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:254,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:256,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:259,1
    - Dst: fu_context_get_smbios_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:264,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:271,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:272,1
    - Dst: fu_redfish_smbios_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:272,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:273,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:273,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:278,1
    - Dst: fu_redfish_smbios_get_interface_type
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:281,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:283,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - plugin
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 242
    functionDepth: 5
    functionLinenumber: 242
    functionLinenumberEnd: 290
    functionName: fu_redfish_plugin_discover_smbios_table
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - g_getenv
    - FU_REDFISH_SMBIOS
    - FU_REDFISH_PLUGIN
    - FU_FIRMWARE
    - fu_plugin_get_context
    - fu_firmware_new_from_filename
    - g_prefix_error_literal
    - g_set_object
    - fu_context_get_smbios_data
    - fu_firmware_parse_bytes
    - fu_redfish_smbios_new
    - fu_redfish_smbios_get_interface_type
    - g_autoptr
    - g_ptr_array_index
    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:295,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:295,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:297,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:304,1
    - Dst: fu_redfish_smbios_get_ip_addr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:304,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:306,1
    - Dst: fu_redfish_smbios_get_hostname
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:306,1
    - Dst: fu_redfish_smbios_get_mac_addr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:308,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:310,1
    - Dst: fu_redfish_network_device_for_mac_addr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:312,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:314,1
    - Dst: fu_redfish_smbios_get_vid
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:318,1
    - Dst: fu_redfish_smbios_get_pid
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:319,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:321,1
    - Dst: fu_redfish_network_device_for_vid_pid
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:323,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:325,1
    - Dst: fu_redfish_network_device_get_state
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:332,1
    - Dst: g_info
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:334,1
    - Dst: fu_redfish_network_device_state_to_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:335,1
    - Dst: fu_redfish_network_device_connect
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:338,1
    - Dst: fu_redfish_network_device_get_address
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:342,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:348,1
    - Dst: fu_redfish_backend_set_hostname
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:351,1
    - Dst: fu_redfish_backend_set_port
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:352,1
    - Dst: fu_redfish_smbios_get_port
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:352,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRedfishPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 354
    functionName: fu_redfish_plugin_autoconnect_network_device
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - fu_redfish_network_device_get_address
    - fu_redfish_smbios_get_port
    - fu_redfish_network_device_get_state
    - fu_redfish_network_device_for_vid_pid
    - fu_redfish_smbios_get_mac_addr
    - fu_redfish_smbios_get_hostname
    - g_debug
    - g_set_error_literal
    - fu_plugin_get_context
    - g_info
    - fu_redfish_network_device_state_to_string
    - fu_redfish_backend_set_hostname
    - fu_redfish_smbios_get_ip_addr
    - fu_redfish_smbios_get_pid
    - fu_redfish_backend_set_port
    - fu_redfish_network_device_for_mac_addr
    - fu_redfish_smbios_get_vid
    - g_strdup
    - FU_PLUGIN
    - fu_redfish_network_device_connect
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_plugin_autoconnect_network_device(FuRedfishPlugin
      *self, GError **error)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:361,1
    - Dst: fu_redfish_plugin_generate_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:364,1
    - Dst: fu_redfish_plugin_generate_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:365,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:367,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:368,1
    - Dst: fu_ipmi_device_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:368,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:368,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:369,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:370,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:370,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:374,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:382,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:382,1
    - Dst: fu_ipmi_device_get_user_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:388,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:390,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:394,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:395,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:401,1
    - Dst: fu_ipmi_device_set_user_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:409,1
    - Dst: fu_ipmi_device_set_user_enable
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:411,1
    - Dst: fu_ipmi_device_set_user_priv
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:413,1
    - Dst: fu_ipmi_device_set_user_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:415,1
    - Dst: fu_context_has_hwid_guid
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:418,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:418,1
    - Dst: fu_ipmi_device_set_user_group_redfish_enable_advantech
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:420,1
    - Dst: fu_redfish_backend_set_username
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:423,1
    - Dst: fu_redfish_backend_set_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:424,1
    - Dst: g_usleep
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:427,1
    - Dst: fu_context_has_hwid_guid
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:430,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:430,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:435,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:436,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:437,1
    - Dst: fu_redfish_request_perform_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:438,1
    - Dst: fu_redfish_backend_set_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:446,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:449,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:451,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:453,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 58
    argCount: 2
    argNames:
    - plugin
    - error
    argTypes:
    - FuPlugin*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 358
    functionDepth: 3
    functionLinenumber: 358
    functionLinenumberEnd: 457
    functionName: fu_redfish_plugin_ipmi_create_user
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - fu_ipmi_device_set_user_enable
    - fu_ipmi_device_get_user_password
    - fu_device_locker_new
    - g_strdup_printf
    - fu_ipmi_device_set_user_group_redfish_enable_advantech
    - fu_redfish_backend_request_new
    - g_debug
    - fu_ipmi_device_set_user_password
    - fwupd_json_object_new
    - fu_plugin_set_config_value
    - FU_REDFISH_PLUGIN
    - g_set_error_literal
    - fu_redfish_request_perform_full
    - fu_plugin_get_context
    - g_usleep
    - fu_redfish_plugin_generate_password
    - FU_DEVICE
    - fu_ipmi_device_new
    - fu_redfish_backend_set_username
    - fu_redfish_backend_set_password
    - fwupd_json_object_add_string
    - g_strcmp0
    - fu_ipmi_device_set_user_priv
    - fu_context_has_hwid_guid
    - fu_ipmi_device_set_user_name
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_plugin_ipmi_create_user(FuPlugin *plugin, GError
      **error)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:463,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:474,1
    - Dst: fu_redfish_plugin_discover_smbios_table
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:477,1
    - Dst: fu_redfish_plugin_autoconnect_network_device
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:479,1
    - Dst: fu_redfish_plugin_discover_uefi_credentials
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:481,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:482,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:487,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:490,1
    - Dst: g_auto
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:491,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:494,1
    - Dst: fu_redfish_backend_set_https
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:495,1
    - Dst: strlen
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:496,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:498,1
    - Dst: fu_redfish_backend_set_https
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:499,1
    - Dst: strlen
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:500,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:503,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:511,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:512,1
    - Dst: fu_redfish_backend_set_path_prefix
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:514,1
    - Dst: g_strsplit
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:517,1
    - Dst: fu_redfish_backend_set_hostname
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:518,1
    - Dst: g_strv_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:519,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:520,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:529,1
    - Dst: fu_redfish_backend_set_port
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:535,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:537,1
    - Dst: fu_redfish_backend_set_username
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:539,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:540,1
    - Dst: fu_redfish_backend_set_password
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:542,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:543,1
    - Dst: fu_redfish_backend_set_bearer_token
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:545,1
    - Dst: fu_redfish_backend_set_cacheck
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:546,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:547,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:548,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:548,1
    - Dst: fu_redfish_backend_set_wildcard_targets
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:549,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:553,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:555,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:555,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:556,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:557,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:561,1
    - Dst: g_propagate_prefixed_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:564,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:566,1
    - Dst: fu_redfish_backend_get_username
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:574,1
    - Dst: fu_context_has_hwid_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:575,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:575,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:576,1
    - Dst: fu_plugin_get_config_value_boolean
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:583,1
    - Dst: g_info
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:584,1
    - Dst: fu_redfish_plugin_ipmi_create_user
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:585,1
    - Dst: fu_backend_setup
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:591,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:591,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 82
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 460
    functionDepth: 6
    functionLinenumber: 460
    functionLinenumberEnd: 595
    functionName: fu_redfish_plugin_startup
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - fu_redfish_backend_set_path_prefix
    - fu_backend_setup
    - fu_redfish_backend_set_cacheck
    - g_strv_length
    - fu_redfish_backend_get_username
    - g_auto
    - fu_redfish_backend_request_new
    - g_debug
    - FU_REDFISH_PLUGIN
    - g_set_error_literal
    - fu_plugin_get_context
    - fu_redfish_plugin_autoconnect_network_device
    - g_strsplit
    - fu_redfish_plugin_ipmi_create_user
    - fu_redfish_backend_set_bearer_token
    - g_str_has_prefix
    - fu_redfish_backend_set_wildcard_targets
    - g_info
    - fu_strtoull
    - fu_context_has_hwid_flag
    - fu_redfish_backend_set_hostname
    - fu_redfish_backend_set_username
    - fu_redfish_backend_set_password
    - fu_redfish_backend_set_port
    - fu_plugin_get_config_value
    - FU_BACKEND
    - fu_plugin_get_config_value_boolean
    - g_steal_pointer
    - fu_redfish_plugin_discover_uefi_credentials
    - fu_redfish_backend_set_https
    - fu_redfish_request_perform
    - strlen
    - fu_redfish_plugin_discover_smbios_table
    - g_error_matches
    - g_autoptr
    - g_propagate_prefixed_error
    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:600,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:601,1
    - Dst: fu_redfish_plugin_autoconnect_network_device
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:604,1
    - Dst: fu_backend_setup
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:606,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 597
    functionDepth: 2
    functionLinenumber: 597
    functionLinenumberEnd: 610
    functionName: fu_redfish_plugin_cleanup_setup_cb
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - fu_backend_setup
    - FU_REDFISH_PLUGIN
    - fu_redfish_plugin_autoconnect_network_device
    - fu_progress_new
    - 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:615,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:616,1
    - Dst: fu_redfish_plugin_autoconnect_network_device
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:617,1
    - Dst: fu_redfish_plugin_coldplug
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:619,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 612
    functionDepth: 7
    functionLinenumber: 612
    functionLinenumberEnd: 620
    functionName: fu_redfish_plugin_cleanup_coldplug_cb
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_redfish_plugin_coldplug
    - FU_REDFISH_PLUGIN
    - fu_redfish_plugin_autoconnect_network_device
    - fu_progress_new
    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:629,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:632,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:632,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:633,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:636,1
    - Dst: fu_device_get_update_state
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:640,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:644,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:645,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:646,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:647,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:648,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:649,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:652,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:653,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:653,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:654,1
    - Dst: fu_redfish_request_perform_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:655,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:661,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:665,1
    - Dst: fu_backend_get_devices
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:668,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:668,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:670,1
    - Dst: fu_backend_device_removed
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:671,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:671,1
    - Dst: fu_backend_invalidate
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:675,1
    - Dst: FU_BACKEND
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:675,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:676,1
    - Dst: fu_redfish_device_get_reset_pre_delay
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:677,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:677,1
    - Dst: fu_progress_get_child
      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:679,1
    - Dst: fu_plugin_get_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:682,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:683,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:692,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:698,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:701,1
    - Dst: fu_device_sleep_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:704,1
    - Dst: fu_redfish_device_get_reset_post_delay
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:705,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:705,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:706,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:707,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:710,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:716,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:719,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 5
    argNames:
    - plugin
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuPlugin*
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 622
    functionDepth: 5
    functionLinenumber: 622
    functionLinenumberEnd: 723
    functionName: fu_redfish_plugin_cleanup
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep_full
    - fu_redfish_device_get_reset_pre_delay
    - FU_REDFISH_DEVICE
    - g_ptr_array_index
    - fu_redfish_backend_request_new
    - fu_backend_invalidate
    - fwupd_json_object_new
    - FU_REDFISH_PLUGIN
    - fu_device_get_update_state
    - fu_redfish_request_perform_full
    - g_prefix_error_literal
    - fu_backend_device_removed
    - fu_backend_get_devices
    - fu_progress_add_step
    - fu_strtoull
    - fu_progress_step_done
    - fu_redfish_device_get_reset_post_delay
    - fu_plugin_get_config_value
    - FU_BACKEND
    - fu_progress_get_child
    - fwupd_json_object_add_string
    - fu_progress_set_id
    - fu_device_has_private_flag
    - fu_device_retry_full
    - g_autoptr
    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:740,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:741,1
    - Dst: fu_plugin_set_config_value
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - plugin
    - key
    - value
    - error
    argTypes:
    - FuPlugin*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 725
    functionDepth: 3
    functionLinenumber: 725
    functionLinenumberEnd: 749
    functionName: fu_redfish_plugin_modify_config
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - g_strv_contains
    - fu_plugin_set_config_value
    - g_set_error
    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: 754
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 754
    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:759,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:760,1
    - Dst: FU_REDFISH_PLUGIN
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:761,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:762,1
    - Dst: fu_context_add_quirk_key
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:763,1
    - Dst: fu_redfish_backend_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:764,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:765,1
    - Dst: fu_plugin_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:766,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:767,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:768,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:769,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:770,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:771,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:774,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:775,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:776,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:777,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:778,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:779,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:780,1
    - Dst: fu_plugin_set_config_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:781,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 756
    functionDepth: 3
    functionLinenumber: 756
    functionLinenumberEnd: 785
    functionName: fu_redfish_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - FU_REDFISH_PLUGIN
    - fu_plugin_add_flag
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_context_add_quirk_key
    - fu_redfish_backend_new
    - fu_plugin_add_device_gtype
    - fu_plugin_set_config_default
    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:790,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:792,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:794,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 796
    functionName: fu_redfish_plugin_finalize
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - FU_REDFISH_PLUGIN
    - 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:801,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-plugin.c:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRedfishPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 811
    functionName: fu_redfish_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_redfish_plugin_class_init(FuRedfishPluginClass *klass)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_HPE_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:30,1
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:33,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:33,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:36,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:37,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:44,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:45,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:47,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:48,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:51,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:54,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:54,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:55,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:58,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:63,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - dev
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 65
    functionName: fu_redfish_hpe_device_attach
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - FU_REDFISH_HPE_DEVICE
    - g_set_error_literal
    - fu_redfish_device_get_backend
    - fwupd_json_object_get_object
    - fu_redfish_request_perform
    - fu_redfish_request_get_json_object
    - fwupd_json_object_get_string
    - FU_REDFISH_DEVICE
    - g_autoptr
    - fu_redfish_backend_request_new
    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:75,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progress
    argTypes:
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: fu_redfish_hpe_device_poll_ctx_new
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
    functionUses: 0
    functionsReached:
    - g_object_ref
    - g_new0
    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:83,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuRedfishHpeDevicePollCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: fu_redfish_hpe_device_poll_ctx_free
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_redfish_hpe_device_poll_ctx_free(FuRedfishHpeDevicePollCtx
      *ctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:100,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:101,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:102,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:103,1
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:106,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:106,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:109,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:110,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:117,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:119,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:122,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:126,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:129,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:133,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:136,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:137,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:138,1
    - Dst: fu_redfish_device_parse_message_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:139,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:146,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:152,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:159,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:161,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:161,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:162,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:163,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:164,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:165,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:167,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 3
    argNames:
    - self
    - ctx
    - error
    argTypes:
    - FuRedfishDevice*
    - FuRedfishHpeDevicePollCtx*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 172
    functionName: fu_redfish_hpe_device_poll_task_once
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_redfish_device_parse_message_id
    - fu_progress_set_percentage
    - g_debug
    - g_set_error_literal
    - fu_redfish_device_get_backend
    - fwupd_json_object_get_object
    - fu_redfish_request_perform
    - fu_redfish_request_get_json_object
    - fwupd_json_object_get_string
    - FU_REDFISH_DEVICE
    - fu_progress_set_status
    - g_autoptr
    - fwupd_json_object_get_integer_with_default
    - fu_redfish_backend_request_new
    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:178,1
    - Dst: fu_redfish_hpe_device_poll_ctx_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:178,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:179,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:179,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:183,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:183,1
    - Dst: fu_redfish_hpe_device_poll_task_once
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:184,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:187,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:190,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuRedfishDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 174
    functionDepth: 4
    functionLinenumber: 174
    functionLinenumberEnd: 199
    functionName: fu_redfish_hpe_device_poll_task
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_finished
    - g_set_error
    - fu_device_sleep
    - fu_redfish_hpe_device_poll_task_once
    - fu_redfish_hpe_device_poll_ctx_new
    - FU_DEVICE
    - g_timer_elapsed
    - g_timer_new
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_hpe_device_poll_task(FuRedfishDevice *self, FuProgress
      *progress, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_HPE_DEVICE
      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:214,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:215,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:216,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:217,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:218,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:219,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:219,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:222,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:227,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:228,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:229,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:230,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:231,1
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:234,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:234,1
    - Dst: fu_redfish_backend_create_session
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:237,1
    - Dst: fu_redfish_backend_get_session_key
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:239,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:240,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:243,1
    - Dst: fu_redfish_request_get_curl
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:244,1
    - Dst: curl_mime_init
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:245,1
    - Dst: fwupd_json_object_add_boolean
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:248,1
    - Dst: fwupd_json_object_add_boolean
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:249,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:250,1
    - Dst: fwupd_json_object_to_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:253,1
    - Dst: curl_mime_addpart
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:255,1
    - Dst: curl_mime_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:256,1
    - Dst: curl_mime_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:257,1
    - Dst: curl_mime_addpart
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:259,1
    - Dst: curl_mime_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:260,1
    - Dst: curl_mime_type
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:261,1
    - Dst: curl_mime_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:262,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:263,1
    - Dst: curl_mime_addpart
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:265,1
    - Dst: curl_mime_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:266,1
    - Dst: curl_mime_type
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:267,1
    - Dst: curl_mime_filename
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:268,1
    - Dst: curl_mime_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:269,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:269,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:269,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:271,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: curl_slist_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:276,1
    - Dst: g_strconcat
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:276,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:277,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:278,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:280,1
    - Dst: fu_redfish_backend_get_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:281,1
    - Dst: fu_redfish_request_get_status_code
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:285,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:286,1
    - Dst: fu_redfish_request_get_status_code
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:290,1
    - Dst: fu_redfish_hpe_device_poll_task
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:294,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:294,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:295,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:298,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 58
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 201
    functionDepth: 5
    functionLinenumber: 201
    functionLinenumberEnd: 302
    functionName: fu_redfish_hpe_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
    functionUses: 0
    functionsReached:
    - curl_mime_init
    - FU_REDFISH_DEVICE
    - fu_redfish_backend_request_new
    - fu_redfish_backend_create_session
    - g_debug
    - fu_firmware_get_bytes
    - fwupd_json_object_new
    - fu_redfish_request_get_status_code
    - fu_redfish_backend_get_session_key
    - fu_redfish_request_get_curl
    - curl_easy_setopt
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_redfish_device_get_backend
    - fu_progress_step_done
    - curl_mime_type
    - curl_mime_name
    - curl_mime_filename
    - curl_mime_addpart
    - curl_mime_data
    - g_strconcat
    - fu_redfish_backend_get_push_uri_path
    - fu_progress_get_child
    - fwupd_json_object_add_string
    - fwupd_json_object_to_string
    - fu_progress_set_id
    - fu_redfish_hpe_device_poll_task
    - curl_slist_append
    - FU_REDFISH_HPE_DEVICE
    - g_set_error
    - fu_redfish_request_perform
    - fwupd_json_object_add_boolean
    - g_bytes_get_size
    - g_autoptr
    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: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
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:310,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:311,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 313
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishHpeDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    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:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRedfishHpeDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 327
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:26,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:29,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:31,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:35,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:36,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:38,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:41,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:42,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:44,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:47,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:49,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - json_obj
    argTypes:
    - FwupdJsonObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 50
    functionName: fu_redfish_smc_device_get_task
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fwupd_json_array_get_size
    - fwupd_json_array_get_string
    - fwupd_json_object_get_object
    - fwupd_json_object_get_array
    - fwupd_json_object_get_string
    - fwupd_json_array_get_object
    - g_autoptr
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_redfish_smc_device_get_task(FwupdJsonObject *json_obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:55,1
    - Dst: fwupd_json_object_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: fwupd_json_array_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: fwupd_json_object_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:57,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:58,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:58,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:59,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:59,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:63,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:64,1
    - Dst: fwupd_json_object_add_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:66,1
    - Dst: fwupd_json_object_add_boolean
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:70,1
    - Dst: fwupd_json_object_add_boolean
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:71,1
    - Dst: fwupd_json_object_add_boolean
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:72,1
    - Dst: fwupd_json_object_add_boolean
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:73,1
    - Dst: fwupd_json_object_add_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:75,1
    - Dst: fwupd_json_object_add_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:76,1
    - Dst: fwupd_json_object_add_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:77,1
    - Dst: fwupd_json_object_to_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishSmcDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 52
    functionDepth: 5
    functionLinenumber: 52
    functionLinenumberEnd: 81
    functionName: fu_redfish_smc_device_get_parameters
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - fwupd_json_object_new
    - fwupd_json_object_to_string
    - fwupd_json_array_new
    - fwupd_json_array_add_string
    - fwupd_json_object_add_boolean
    - fwupd_json_object_add_object
    - g_autoptr
    - fwupd_json_object_add_string
    linkageType: ''
    returnType: GString
    signature: 'GString *

      fu_redfish_smc_device_get_parameters(FuRedfishSmcDevice *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:90,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:91,1
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:93,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:93,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:96,1
    - Dst: fu_redfish_request_get_curl
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:97,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:98,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:100,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:105,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:106,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:106,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:107,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:107,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:110,1
    - Dst: fu_redfish_smc_device_get_task
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:112,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:114,1
    - Dst: fu_redfish_backend_get_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:118,1
    - Dst: fu_redfish_device_poll_task
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:121,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - self
    - progress
    - error
    argTypes:
    - FuRedfishSmcDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 83
    functionDepth: 5
    functionLinenumber: 83
    functionLinenumberEnd: 122
    functionName: fu_redfish_smc_device_start_update
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c
    functionUses: 0
    functionsReached:
    - fu_redfish_request_get_curl
    - curl_easy_setopt
    - fu_redfish_device_poll_task
    - g_set_error
    - fu_device_add_problem
    - fu_redfish_device_get_backend
    - g_steal_pointer
    - fu_redfish_request_perform
    - FU_DEVICE
    - g_error_matches
    - fu_redfish_request_get_json_object
    - fu_redfish_smc_device_get_task
    - FU_REDFISH_DEVICE
    - g_propagate_error
    - g_autoptr
    - fu_redfish_backend_get_push_uri_path
    - fu_redfish_backend_request_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_smc_device_start_update(FuRedfishSmcDevice *self,
      FuProgress *progress, GError **error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_SMC_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:131,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:134,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:137,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:138,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:139,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:140,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:141,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:144,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:145,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:146,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:149,1
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:154,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:154,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:157,1
    - Dst: fu_redfish_request_get_curl
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:158,1
    - Dst: curl_mime_init
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:159,1
    - Dst: fu_redfish_smc_device_get_parameters
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:161,1
    - Dst: curl_mime_addpart
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:162,1
    - Dst: curl_mime_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:163,1
    - Dst: curl_mime_type
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:164,1
    - Dst: curl_mime_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:165,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:166,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_filename
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:171,1
    - Dst: curl_mime_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:172,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:172,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:172,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:174,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:176,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:177,1
    - Dst: fu_redfish_backend_get_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:178,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:181,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:182,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:183,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:183,1
    - Dst: fu_redfish_request_get_status_code
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:186,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:187,1
    - Dst: fu_redfish_request_get_status_code
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:191,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:194,1
    - Dst: fu_redfish_smc_device_get_task
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:197,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:199,1
    - Dst: fu_redfish_backend_get_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:203,1
    - Dst: fu_redfish_device_poll_task
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:207,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:207,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:209,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:212,1
    - Dst: fu_redfish_smc_device_start_update
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:214,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:214,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:216,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 57
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 124
    functionDepth: 6
    functionLinenumber: 124
    functionLinenumberEnd: 218
    functionName: fu_redfish_smc_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c
    functionUses: 0
    functionsReached:
    - curl_mime_init
    - fu_redfish_smc_device_get_task
    - FU_REDFISH_DEVICE
    - fu_redfish_backend_request_new
    - fu_redfish_smc_device_start_update
    - g_debug
    - fu_firmware_get_bytes
    - fu_device_add_problem
    - fu_redfish_request_get_status_code
    - fu_redfish_smc_device_get_parameters
    - fu_progress_set_status
    - g_propagate_error
    - fu_redfish_request_get_curl
    - curl_easy_setopt
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_redfish_device_get_backend
    - curl_mime_type
    - fu_progress_step_done
    - curl_mime_name
    - curl_mime_filename
    - curl_mime_addpart
    - FU_REDFISH_SMC_DEVICE
    - fu_redfish_request_get_json_object
    - curl_mime_data
    - fu_redfish_device_poll_task
    - fu_redfish_backend_get_push_uri_path
    - fu_progress_get_child
    - fu_progress_set_id
    - g_set_error
    - g_steal_pointer
    - fu_redfish_request_perform
    - g_error_matches
    - g_bytes_get_size
    - g_autoptr
    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:223,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:224,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:225,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:226,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:227,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 229
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:234,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishSmcDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: fu_redfish_smc_device_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smc-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_summary
    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:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRedfishSmcDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 243
    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:35,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:35,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:36,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:36,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:37,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:40,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:41,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:42,1
    - Dst: fu_context_load_quirks
      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:47,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:48,1
    - Dst: fu_config_set_basename
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:51,1
    - Dst: fu_context_get_config
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:51,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:52,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:53,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:54,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:57,1
    - Dst: fu_redfish_plugin_get_type
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:57,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:58,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:59,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:60,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:61,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:62,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:64,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:65,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:66,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:67,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:68,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:72,1
    - Dst: fu_redfish_plugin_get_type
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:72,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:73,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:74,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:75,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:76,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:77,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:79,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:80,1
    - Dst: fu_redfish_plugin_set_credentials
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:81,1
    - Dst: fu_redfish_plugin_reload
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:82,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:83,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:84,1
    - Dst: fu_plugin_runner_coldplug
      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:86,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:87,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:91,1
    - Dst: fu_redfish_plugin_get_type
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:91,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:92,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:93,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:94,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:95,1
    - Dst: g_clear_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:96,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:98,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:99,1
    - Dst: fu_redfish_plugin_set_credentials
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:100,1
    - Dst: fu_redfish_plugin_reload
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:103,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:104,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:105,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:106,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_plugin_new_from_gtype
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:112,1
    - Dst: fu_redfish_plugin_get_type
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:112,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:113,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:114,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:115,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:116,1
    - Dst: g_clear_error
      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:119,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:120,1
    - Dst: fu_redfish_plugin_set_credentials
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:122,1
    - Dst: fu_redfish_plugin_reload
      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:127,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:128,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:129,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:130,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:131,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:135,1
    - Dst: fu_redfish_plugin_get_type
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:135,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:136,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:137,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:138,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:139,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:141,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:142,1
    - Dst: fu_redfish_plugin_set_credentials
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:144,1
    - Dst: fu_redfish_plugin_reload
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:148,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:149,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:150,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:151,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:152,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 96
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 30
    functionDepth: 10
    functionLinenumber: 30
    functionLinenumberEnd: 155
    functionName: fu_self_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_config_set_basename
    - fu_redfish_plugin_get_type
    - fu_progress_new
    - fu_context_load_quirks
    - fu_redfish_plugin_reload
    - fu_context_load_hwinfo
    - fu_plugin_new_from_gtype
    - g_debug
    - fu_plugin_runner_startup
    - fu_plugin_runner_coldplug
    - fu_redfish_plugin_set_credentials
    - fu_context_get_config
    - fu_context_set_path
    - g_assert_no_error
    - g_clear_error
    - g_error_matches
    - g_test_skip
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_self_init(FuTest *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:162,1
    - Dst: fu_ipmi_device_new
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:162,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:163,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:164,1
    - Dst: g_file_test
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:169,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:170,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:175,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:175,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:176,1
    - Dst: g_test_skip
      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:180,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:181,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:182,1
    - Dst: FU_DEVICE
      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: g_getenv
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:186,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:187,1
    - Dst: fu_ipmi_device_set_user_name
      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: fu_ipmi_device_get_user_password
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:193,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:194,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:195,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:196,1
    - Dst: fu_ipmi_device_set_user_enable
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:197,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:198,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:199,1
    - Dst: fu_ipmi_device_set_user_priv
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:200,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:201,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:202,1
    - Dst: fu_ipmi_device_set_user_password
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:203,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:204,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:205,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 157
    functionDepth: 5
    functionLinenumber: 157
    functionLinenumberEnd: 209
    functionName: fu_redfish_ipmi_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_getenv
    - fu_device_to_string
    - g_debug
    - fu_ipmi_device_set_user_password
    - fu_ipmi_device_set_user_enable
    - fu_ipmi_device_get_user_password
    - fu_device_locker_new
    - g_assert_nonnull
    - g_assert_no_error
    - fu_ipmi_device_set_user_priv
    - g_file_test
    - fu_ipmi_device_new
    - FU_DEVICE
    - g_error_matches
    - fu_ipmi_device_set_user_name
    - g_test_skip
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_redfish_ipmi_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_redfish_common_buffer_to_ipv4
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:234,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:235,1
    - Dst: fu_redfish_common_buffer_to_ipv6
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:236,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:237,1
    - Dst: fu_redfish_common_buffer_to_mac
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:238,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 240
    functionName: fu_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_ipv6
    - fu_redfish_common_buffer_to_ipv4
    linkageType: ''
    returnType: void
    signature: void fu_redfish_common_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_redfish_common_fix_version
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:253,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 256
    functionName: fu_redfish_common_version_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_cmpstr
    - fu_redfish_common_fix_version
    linkageType: ''
    returnType: void
    signature: void fu_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:277,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:278,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:279,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 282
    functionName: fu_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_redfish_common_lenovo_func(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:290,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:290,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:291,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:292,1
    - Dst: fu_redfish_network_device_for_mac_addr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:294,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:295,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:296,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:299,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:300,1
    - Dst: g_test_skip
      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:304,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:305,1
    - Dst: fu_redfish_network_device_get_state
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:306,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:307,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:308,1
    - Dst: fu_redfish_network_device_connect
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:310,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:311,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:312,1
    - Dst: fu_redfish_network_device_get_address
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:314,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:315,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:316,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 317
    functionName: fu_redfish_network_mac_addr_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_redfish_network_device_get_address
    - g_assert_nonnull
    - g_assert_no_error
    - fu_redfish_network_device_get_state
    - g_test_skip
    - fu_redfish_network_device_connect
    - g_strdup_printf
    - g_error_matches
    - g_autoptr
    - g_assert_true
    - fu_redfish_network_device_for_mac_addr
    linkageType: ''
    returnType: void
    signature: void fu_redfish_network_mac_addr_func(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:323,1
    - Dst: fu_context_new
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:323,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:324,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:325,1
    - Dst: fu_redfish_network_device_for_vid_pid
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:327,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:328,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:329,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:332,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:333,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:334,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:337,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:338,1
    - Dst: fu_redfish_network_device_get_address
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:339,1
    - Dst: g_assert_no_error
      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
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 342
    functionName: fu_redfish_network_vid_pid_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_new
    - fu_redfish_network_device_get_address
    - g_assert_nonnull
    - g_assert_no_error
    - g_strdup_printf
    - g_error_matches
    - g_test_skip
    - fu_redfish_network_device_for_vid_pid
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_redfish_network_vid_pid_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:353,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:354,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:356,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:359,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:362,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:363,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:364,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:365,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:365,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:366,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:366,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:367,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:367,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:368,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:368,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:369,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:369,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:370,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:370,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:371,1
    - Dst: fu_device_get_version_build_date
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:371,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:372,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:372,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:373,1
    - Dst: fu_device_has_protocol
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:373,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:374,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:375,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:376,1
    - Dst: fu_device_has_vendor_id
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:376,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:377,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:377,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:378,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:378,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:379,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:379,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:382,1
    - Dst: fu_device_to_string
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:383,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:384,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:385,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:385,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:386,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:386,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:387,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:387,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:388,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:388,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:389,1
    - Dst: fu_device_get_serial
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:389,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:390,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:390,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:391,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:391,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:392,1
    - Dst: fu_device_get_version_build_date
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:392,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:393,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:393,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:394,1
    - Dst: fu_device_has_icon
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:394,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:395,1
    - Dst: fu_device_has_protocol
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:395,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:396,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:396,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:397,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:397,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:398,1
    - Dst: fu_device_has_vendor_id
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 344
    functionDepth: 5
    functionLinenumber: 344
    functionLinenumberEnd: 399
    functionName: fu_redfish_devices_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_nonnull
    - fu_device_get_name
    - fu_device_get_version_lowest
    - fu_device_get_serial
    - g_ptr_array_index
    - fu_device_get_version_build_date
    - fu_device_to_string
    - g_debug
    - fu_plugin_get_devices
    - g_assert_cmpint
    - fu_device_has_flag
    - fu_device_has_protocol
    - fu_device_get_vendor
    - fu_device_get_version_format
    - fu_device_has_guid
    - fu_device_has_vendor_id
    - fu_device_has_icon
    - fu_device_get_id
    - fu_device_get_version
    - g_test_skip
    - g_assert_true
    - g_assert_cmpstr
    linkageType: ''
    returnType: void
    signature: void fu_redfish_devices_func(gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:408,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:409,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:411,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:414,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:416,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:417,1
    - Dst: FU_IS_REDFISH_SMC_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:417,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:418,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:418,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:420,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:422,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:423,1
    - Dst: FU_IS_REDFISH_SMC_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:423,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:424,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:424,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 427
    functionName: fu_redfish_unlicensed_devices_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_devices
    - fu_device_has_inhibit
    - g_assert_nonnull
    - FU_IS_REDFISH_SMC_DEVICE
    - g_assert_cmpint
    - fwupd_device_problem_to_string
    - g_test_skip
    - g_assert_true
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_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:436,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:437,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:439,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:442,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:444,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:445,1
    - Dst: FU_IS_REDFISH_SMC_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:445,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:447,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:448,1
    - Dst: FU_IS_REDFISH_SMC_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 449
    functionName: fu_redfish_smc_devices_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_devices
    - g_assert_nonnull
    - FU_IS_REDFISH_SMC_DEVICE
    - g_assert_cmpint
    - g_test_skip
    - g_assert_true
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_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:458,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:459,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:461,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:464,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:466,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:467,1
    - Dst: FU_IS_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:467,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:468,1
    - Dst: fu_device_has_guid
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 451
    functionDepth: 4
    functionLinenumber: 451
    functionLinenumberEnd: 470
    functionName: fu_redfish_dell_devices_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_plugin_get_devices
    - fu_device_has_guid
    - g_assert_nonnull
    - g_assert_cmpint
    - g_test_skip
    - g_assert_true
    - FU_IS_REDFISH_DEVICE
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_redfish_dell_devices_func(gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:479,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:480,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:481,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:482,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:482,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:485,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:486,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:487,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:489,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:490,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:492,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:495,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:498,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:499,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:500,1
    - Dst: fu_firmware_set_filename
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:501,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:502,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:505,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:508,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 472
    functionDepth: 3
    functionLinenumber: 472
    functionLinenumberEnd: 510
    functionName: fu_redfish_hpe_update_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_filename
    - fu_progress_add_step
    - fu_plugin_get_devices
    - fu_progress_add_flag
    - fu_progress_get_child
    - g_assert_nonnull
    - g_assert_no_error
    - g_assert_cmpint
    - fu_progress_new
    - fu_plugin_runner_write_firmware
    - g_test_skip
    - g_assert_true
    - g_autoptr
    - fu_firmware_new_from_bytes
    - g_bytes_new_static
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_redfish_hpe_update_func(gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:519,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:520,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:521,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:522,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:522,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:525,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:526,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:527,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:529,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:530,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:532,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:535,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:538,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:539,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:540,1
    - Dst: fu_firmware_set_filename
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:541,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:542,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:545,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:548,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:549,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:550,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:550,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:551,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:554,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:557,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:560,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 512
    functionDepth: 4
    functionLinenumber: 512
    functionLinenumberEnd: 562
    functionName: fu_redfish_update_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - g_assert_nonnull
    - fu_progress_new
    - g_ptr_array_index
    - fu_plugin_get_devices
    - g_assert_cmpint
    - fu_device_has_flag
    - fu_firmware_new_from_bytes
    - g_bytes_new_static
    - fu_progress_add_step
    - fu_progress_step_done
    - g_assert_false
    - fu_progress_get_child
    - fu_firmware_set_filename
    - g_assert_error
    - g_assert_no_error
    - fu_plugin_runner_write_firmware
    - g_test_skip
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_redfish_update_func(gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:571,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:572,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:573,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:574,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:575,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:576,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:576,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:579,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:580,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:581,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:583,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:584,1
    - Dst: g_test_skip
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:586,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:589,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:592,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:593,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:594,1
    - Dst: fu_firmware_set_filename
      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_no_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:602,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:603,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:604,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:607,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:608,1
    - Dst: fu_plugin_runner_write_firmware
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:609,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:612,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:615,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:616,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:617,1
    - Dst: fu_device_has_inhibit
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:617,1
    - Dst: fwupd_device_problem_to_string
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 564
    functionDepth: 4
    functionLinenumber: 564
    functionLinenumberEnd: 620
    functionName: fu_redfish_smc_update_func
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_flag
    - fu_device_has_inhibit
    - g_assert_nonnull
    - fu_progress_new
    - fwupd_device_problem_to_string
    - g_ptr_array_index
    - fu_plugin_get_devices
    - g_assert_cmpint
    - fu_firmware_new_from_bytes
    - g_bytes_new_static
    - fu_progress_add_step
    - fu_progress_step_done
    - g_assert_false
    - fu_progress_get_child
    - fu_firmware_set_filename
    - g_assert_error
    - g_assert_no_error
    - fu_plugin_runner_write_firmware
    - g_test_skip
    - g_assert_true
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_redfish_smc_update_func(gconstpointer user_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:626,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:628,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:630,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:632,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:634,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:635,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 636
    functionName: fu_self_free
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_self_free(FuTest *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:646,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:646,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:649,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:650,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:653,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:654,1
    - Dst: fu_self_init
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:656,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:657,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:658,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:659,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:660,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:661,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:662,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:666,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:667,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:668,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:669,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:670,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:671,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/redfish/fu-self-test.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 643
    functionDepth: 11
    functionLinenumber: 643
    functionLinenumberEnd: 673
    functionName: main
    functionSourceFile: /src/fwupd/plugins/redfish/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_new0
    - g_setenv
    - g_test_add_func
    - g_test_init
    - fu_self_init
    - g_test_add_data_func
    - g_test_run
    - g_test_build_filename
    - g_autoptr
    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_strdup
    - g_free
    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_strdup
    - g_free
    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_strdup
    - g_free
    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_xmlb_builder_insert_kx
    - FU_REDFISH_SMBIOS
    - 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:
    - xb_node_query_text
    - FU_REDFISH_SMBIOS
    - fu_redfish_smbios_set_mac_addr
    - xb_node_query_text_as_uint
    - fu_redfish_smbios_set_port
    - fu_redfish_smbios_set_hostname
    - fu_redfish_smbios_set_ip_addr
    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: 4
    functionLinenumber: 141
    functionLinenumberEnd: 210
    functionName: fu_redfish_smbios_parse_interface_data
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u8
    - fu_input_stream_read_safe
    - fu_redfish_common_buffer_to_mac
    - fu_redfish_smbios_set_mac_addr
    - fu_input_stream_read_u16
    - g_debug
    - fu_redfish_interface_type_to_string
    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: 3
    functionLinenumber: 212
    functionLinenumberEnd: 265
    functionName: fu_redfish_smbios_parse_over_ip
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_safe
    - fu_redfish_common_buffer_to_ipv6
    - fu_redfish_smbios_set_port
    - g_set_error_literal
    - g_malloc0
    - fu_redfish_common_buffer_to_ipv4
    - fu_struct_redfish_protocol_over_ip_get_service_ip_port
    - fu_redfish_smbios_set_hostname
    - fu_struct_redfish_protocol_over_ip_get_service_ip_address
    - fu_redfish_smbios_set_ip_addr
    - fu_struct_redfish_protocol_over_ip_get_service_ip_address_format
    - g_autoptr
    - fu_struct_redfish_protocol_over_ip_get_service_hostname_len
    - fu_struct_redfish_protocol_over_ip_parse_stream
    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: 17
    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_size_checked_inc
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:307,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:308,1
    - Dst: fu_struct_redfish_smbios_type42_get_data_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:311,1
    - Dst: fu_redfish_smbios_parse_interface_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:312,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:315,1
    - Dst: fu_struct_redfish_smbios_type42_get_data_length
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:316,1
    - Dst: fu_struct_redfish_smbios_type42_get_interface_type
      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:324,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:326,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:327,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:330,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:334,1
    - Dst: fu_input_stream_read_u8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:336,1
    - Dst: fu_redfish_smbios_parse_over_ip
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:339,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:345,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:347,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 267
    functionDepth: 5
    functionLinenumber: 267
    functionLinenumberEnd: 354
    functionName: fu_redfish_smbios_parse
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u8
    - FU_REDFISH_SMBIOS
    - fu_redfish_smbios_parse_interface_data
    - g_debug
    - g_set_error
    - fu_input_stream_size
    - fu_redfish_smbios_parse_over_ip
    - g_prefix_error_literal
    - fu_struct_redfish_smbios_type42_get_interface_type
    - fu_struct_redfish_smbios_type42_parse_stream
    - fu_struct_redfish_smbios_type42_get_data_length
    - fu_size_checked_inc
    - g_autoptr
    - fu_struct_redfish_smbios_type42_get_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:359,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:361,1
    - Dst: fu_struct_redfish_protocol_over_ip_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:361,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:362,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:362,1
    - Dst: strlen
      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_uint16
      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:369,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:370,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:371,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:372,1
    - Dst: fu_byte_array_append_uint16
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:373,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:374,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:375,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:376,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:377,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:378,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:381,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:382,1
    - Dst: strlen
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:385,1
    - Dst: fu_struct_redfish_protocol_over_ip_set_service_ip_port
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:386,1
    - Dst: fu_struct_redfish_protocol_over_ip_set_service_ip_address_format
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:387,1
    - Dst: fu_struct_redfish_protocol_over_ip_set_service_ip_assignment_type
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:390,1
    - Dst: fu_struct_redfish_protocol_over_ip_set_service_hostname_len
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:393,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:394,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:396,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 398
    functionName: fu_redfish_smbios_write
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 0
    functionsReached:
    - fu_struct_redfish_protocol_over_ip_new
    - FU_REDFISH_SMBIOS
    - fu_byte_array_append_uint16
    - fu_struct_redfish_protocol_over_ip_set_service_ip_assignment_type
    - g_steal_pointer
    - fu_byte_array_append_uint8
    - fu_struct_redfish_protocol_over_ip_set_service_hostname_len
    - g_byte_array_new
    - strlen
    - fu_struct_redfish_protocol_over_ip_set_service_ip_port
    - g_byte_array_append
    - fu_struct_redfish_protocol_over_ip_set_service_ip_address_format
    - g_autoptr
    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:403,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:404,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:405,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:406,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 408
    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:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:413,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishSmbios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 414
    functionName: fu_redfish_smbios_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:419,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRedfishSmbiosClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 426
    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:431,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-smbios.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 432
    functionName: fu_redfish_smbios_new
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-smbios.c
    functionUses: 1
    functionsReached:
    - g_object_new
    - FU_REDFISH_SMBIOS
    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: 1636
    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
    - FU_REDFISH_DEVICE
    - fwupd_codec_string_append_int
    - fwupd_codec_string_append_hex
    - GET_PRIVATE
    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:
    - FU_DEVICE
    - g_strcmp0
    - fu_device_add_icon
    - g_debug
    linkageType: ''
    returnType: void
    signature: void fu_redfish_device_set_device_class(FuRedfishDevice *self, const
      gchar *tmp)
  - BBCount: 14
    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:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:75,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:75,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:78,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:84,1
    - Dst: fwupd_json_object_get_string
      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: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:90,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:92,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:95,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:97,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:100,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:102,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:110,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:112,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:122,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:122,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:126,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:126,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:128,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:128,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:131,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:134,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:134,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:136,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:136,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:137,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:137,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 3
    argNames:
    - self
    - uri
    - error
    argTypes:
    - FuRedfishDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 65
    functionDepth: 7
    functionLinenumber: 65
    functionLinenumberEnd: 141
    functionName: fu_redfish_device_probe_related_pcie_item
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - fu_redfish_device_set_device_class
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - fu_strtoull
    - fu_device_build_vendor_id_u16
    - fu_device_add_instance_u16
    - fu_redfish_request_perform
    - FU_DEVICE
    - g_strdup_printf
    - fu_redfish_request_get_json_object
    - fwupd_json_object_get_string
    - g_autoptr
    - fu_redfish_backend_request_new
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_device_probe_related_pcie_item(FuRedfishDevice
      *self, const gchar *uri, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:148,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:149,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:149,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:150,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:151,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:154,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:160,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:161,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:163,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:165,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:167,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:170,1
    - Dst: fu_redfish_device_probe_related_pcie_item
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:172,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - self
    - uri
    - error
    argTypes:
    - FuRedfishDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 143
    functionDepth: 8
    functionLinenumber: 143
    functionLinenumberEnd: 180
    functionName: fu_redfish_device_probe_related_pcie_functions
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - fwupd_json_array_get_size
    - fu_redfish_request_perform
    - fwupd_json_object_get_array
    - fu_redfish_device_probe_related_pcie_item
    - fu_redfish_request_get_json_object
    - fwupd_json_object_get_string
    - fwupd_json_array_get_object
    - g_autoptr
    - fu_redfish_backend_request_new
    - GET_PRIVATE
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:185,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:187,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:187,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:188,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:189,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:192,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:198,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:201,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:202,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:203,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:203,1
    - Dst: fwupd_json_object_has_node
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:206,1
    - Dst: fwupd_json_object_get_boolean
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:208,1
    - Dst: fu_device_remove_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:211,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:211,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:213,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:213,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:217,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:219,1
    - Dst: fu_redfish_device_probe_related_pcie_functions
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:221,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - self
    - uri
    - error
    argTypes:
    - FuRedfishDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 182
    functionDepth: 9
    functionLinenumber: 182
    functionLinenumberEnd: 226
    functionName: fu_redfish_device_probe_related_item
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_strcmp0
    - fwupd_json_object_get_boolean
    - fwupd_json_object_has_node
    - fwupd_json_object_get_object
    - fu_redfish_request_perform
    - fu_device_set_serial
    - fu_device_remove_flag
    - FU_DEVICE
    - fu_redfish_device_probe_related_pcie_functions
    - fu_redfish_request_get_json_object
    - fwupd_json_object_get_string
    - g_autoptr
    - fu_redfish_backend_request_new
    - GET_PRIVATE
    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:232,1
    - Dst: fu_redfish_common_parse_version_lenovo
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:237,1
    - Dst: g_ascii_strtoull
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:241,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:245,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:245,1
    - Dst: g_ascii_isalpha
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:249,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:250,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:256,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:257,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:257,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:258,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:258,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - version
    - error
    argTypes:
    - FuRedfishDevice*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 260
    functionName: fu_redfish_device_set_version_lenovo
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_strndup
    - fu_device_set_version
    - g_set_error_literal
    - fu_device_add_private_flag
    - g_ascii_strtoull
    - FU_DEVICE
    - g_ascii_isalpha
    - fu_version_guess_format
    - fu_device_set_version_format
    - fu_redfish_common_parse_version_lenovo
    - GET_PRIVATE
    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:266,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:266,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:266,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:267,1
    - Dst: fu_redfish_device_set_version_lenovo
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:268,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:269,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:274,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:274,1
    - Dst: fu_redfish_common_fix_version
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:275,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:277,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:277,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:278,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:278,1
    - Dst: fu_version_guess_format
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - tmp
    argTypes:
    - FuRedfishDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 262
    functionDepth: 4
    functionLinenumber: 262
    functionLinenumberEnd: 281
    functionName: fu_redfish_device_set_version
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_redfish_common_fix_version
    - fu_device_set_version
    - g_debug
    - fu_redfish_device_set_version_lenovo
    - FU_DEVICE
    - fu_device_get_version
    - fu_version_guess_format
    - g_autoptr
    - fu_device_set_version_format
    - fu_device_get_vendor
    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:287,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:287,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:287,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:288,1
    - Dst: fu_redfish_common_parse_version_lenovo
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:290,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:294,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:296,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:296,1
    - Dst: fu_device_get_version_lowest
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:300,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:300,1
    - Dst: fu_redfish_common_fix_version
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:301,1
    - Dst: fu_device_set_version_lowest
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:302,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - tmp
    argTypes:
    - FuRedfishDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 304
    functionName: fu_redfish_device_set_version_lowest
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_redfish_common_fix_version
    - g_debug
    - fu_device_set_version_lowest
    - FU_DEVICE
    - g_autoptr
    - fu_device_get_version_lowest
    - fu_redfish_common_parse_version_lenovo
    - fu_device_get_vendor
    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:310,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:314,1
    - Dst: fu_device_add_flag
      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
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:317,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:319,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:319,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:320,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:322,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:322,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:323,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:323,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:325,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:325,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:329,1
    - Dst: fu_device_set_summary
      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_suffix
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:331,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:332,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:332,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:335,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:335,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FuRedfishDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 306
    functionDepth: 6
    functionLinenumber: 306
    functionLinenumberEnd: 336
    functionName: fu_redfish_device_set_name
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_strcmp0
    - fu_device_add_icon
    - g_str_has_suffix
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_summary
    - g_str_has_prefix
    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:344,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:344,1
    - Dst: fu_device_set_vendor
      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: g_ascii_strup
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:349,1
    - Dst: g_strdelimit
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:350,1
    - Dst: fu_device_build_vendor_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:351,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - vendor
    argTypes:
    - FuRedfishDevice*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 338
    functionDepth: 5
    functionLinenumber: 338
    functionLinenumberEnd: 352
    functionName: fu_redfish_device_set_vendor
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - FU_DEVICE
    - fu_device_set_vendor
    - g_strdelimit
    - g_ascii_strup
    - fu_device_build_vendor_id
    linkageType: ''
    returnType: void
    signature: void fu_redfish_device_set_vendor(FuRedfishDevice *self, const gchar
      *vendor)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:358,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:359,1
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:362,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:362,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:365,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:366,1
    - Dst: fu_redfish_backend_get_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:367,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:370,1
    - Dst: fu_device_add_problem
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:371,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:371,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:374,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRedfishDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 354
    functionDepth: 5
    functionLinenumber: 354
    functionLinenumberEnd: 378
    functionName: fu_redfish_device_smc_license_check
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_device_add_problem
    - fu_redfish_device_get_backend
    - fu_redfish_request_perform
    - FU_DEVICE
    - g_error_matches
    - FU_REDFISH_DEVICE
    - g_autoptr
    - fu_redfish_backend_get_push_uri_path
    - fu_redfish_backend_request_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_device_smc_license_check(FuRedfishDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:384,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:386,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:388,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:388,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:389,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:391,1
    - Dst: fwupd_json_array_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:392,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:394,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:394,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - json_obj
    - error
    argTypes:
    - FuRedfishDevice*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 380
    functionDepth: 5
    functionLinenumber: 380
    functionLinenumberEnd: 398
    functionName: fu_redfish_device_probe_oem_hpe
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_instance_id
    - fwupd_json_array_get_size
    - fwupd_json_array_get_string
    - fwupd_json_object_get_array
    - FU_DEVICE
    - fwupd_json_object_get_string
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_device_probe_oem_hpe(FuRedfishDevice *self, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:404,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:407,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:411,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:412,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:413,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:413,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:414,1
    - Dst: g_ascii_strncasecmp
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:415,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:416,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:424,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:424,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:430,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:430,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:433,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:433,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:441,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:441,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:449,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:449,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - self
    - json_obj
    - error
    argTypes:
    - FuRedfishDevice*
    - FwupdJsonObject*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 400
    functionDepth: 7
    functionLinenumber: 400
    functionLinenumberEnd: 456
    functionName: fu_redfish_device_probe_oem_dell
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - g_strcmp0
    - fu_device_build_instance_id
    - g_set_error_literal
    - fu_device_add_private_flag
    - fwupd_json_object_get_object
    - FU_DEVICE
    - fu_device_build_instance_id_full
    - fwupd_json_object_get_string
    - g_autoptr
    - g_ascii_strncasecmp
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_device_probe_oem_dell(FuRedfishDevice *self, FwupdJsonObject
      *json_obj, GError **error)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:461,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:462,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:466,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:470,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:475,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: fwupd_json_object_get_string
      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:484,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:484,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:487,1
    - Dst: fu_redfish_device_set_vendor
      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_backend_get_vendor
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:491,1
    - Dst: fu_device_add_instance_strsafe
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:492,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:492,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:495,1
    - Dst: fu_redfish_device_set_version
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:497,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:500,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:501,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:502,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:503,1
    - Dst: g_time_zone_new_utc
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:503,1
    - Dst: g_date_time_new_from_iso8601
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:504,1
    - Dst: g_date_time_to_unix
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:506,1
    - Dst: fu_device_set_version_build_date
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:507,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:509,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:514,1
    - Dst: g_ascii_strdown
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:516,1
    - Dst: fwupd_guid_is_valid
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:517,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:518,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:520,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:521,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:522,1
    - Dst: fu_device_build_instance_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:523,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:534,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:536,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:537,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:539,1
    - Dst: fu_redfish_device_probe_oem_hpe
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:541,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:544,1
    - Dst: fu_redfish_device_probe_oem_dell
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:546,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:552,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:560,1
    - Dst: fu_redfish_device_set_name
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:562,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:563,1
    - Dst: fu_redfish_device_set_version_lowest
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:565,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:566,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:568,1
    - Dst: fwupd_json_object_get_boolean_with_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:571,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:578,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:581,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:582,1
    - Dst: fu_device_get_backend_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:586,1
    - Dst: fwupd_json_object_has_node
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:591,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:592,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:594,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:596,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:597,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:600,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:603,1
    - Dst: fu_redfish_device_probe_related_item
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:608,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:615,1
    - Dst: fu_device_get_vendor
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:615,1
    - Dst: fu_redfish_device_smc_license_check
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:616,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 106
    argCount: 2
    argNames:
    - dev
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 458
    functionDepth: 10
    functionLinenumber: 458
    functionLinenumberEnd: 622
    functionName: fu_redfish_device_probe
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_redfish_device_set_vendor
    - g_time_zone_new_utc
    - fu_redfish_device_probe_oem_hpe
    - fwupd_guid_is_valid
    - g_ascii_strdown
    - fwupd_json_object_get_boolean_with_default
    - FU_REDFISH_DEVICE
    - fwupd_json_array_get_object
    - fu_redfish_device_set_version
    - fu_device_add_instance_id
    - fu_device_set_physical_id
    - fwupd_json_array_get_size
    - fu_device_build_instance_id
    - fu_device_add_instance_str
    - g_set_error_literal
    - fwupd_json_object_has_node
    - fwupd_json_object_get_array
    - fu_device_set_summary
    - fu_device_build_instance_id_full
    - fu_device_get_vendor
    - fu_redfish_device_probe_related_item
    - fu_redfish_device_smc_license_check
    - GET_PRIVATE
    - fu_device_set_logical_id
    - fu_device_set_version_build_date
    - fu_redfish_backend_get_vendor
    - fwupd_json_object_get_object
    - fu_redfish_device_probe_oem_dell
    - g_warning
    - fwupd_json_object_get_string
    - g_date_time_new_from_iso8601
    - fu_redfish_device_set_version_lowest
    - fu_device_get_backend_id
    - g_strcmp0
    - fu_redfish_device_set_name
    - g_set_error
    - fu_device_add_instance_strsafe
    - fu_device_has_private_flag
    - fu_device_set_backend_id
    - g_date_time_to_unix
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_device_probe(FuDevice *dev, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:627,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuRedfishDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 633
    functionName: fu_redfish_device_get_backend
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 7
    functionsReached:
    - g_set_error_literal
    - GET_PRIVATE
    linkageType: ''
    returnType: FuRedfishBackend
    signature: 'FuRedfishBackend *

      fu_redfish_device_get_backend(FuRedfishDevice *self, GError **error)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:654,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:655,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:656,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:657,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:661,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:662,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:663,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:664,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:664,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:668,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:672,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:672,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:681,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:682,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:685,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:686,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:689,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:690,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:692,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:695,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:696,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:697,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:702,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:712,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:715,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:717,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:720,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:722,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:725,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:726,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:729,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:730,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:733,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:734,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:737,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:738,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:741,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:742,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 74
    argCount: 5
    argNames:
    - self
    - message_id
    - message
    - progress
    - error
    argTypes:
    - FuRedfishDevice*
    - gchar*
    - gchar*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 642
    functionDepth: 6
    functionLinenumber: 642
    functionLinenumberEnd: 748
    functionName: fu_redfish_device_parse_message_id
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 1
    functionsReached:
    - fu_device_add_flag
    - g_set_error_literal
    - g_pattern_match_simple
    - FU_DEVICE
    - fu_progress_set_status
    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: 12
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:753,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:757,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:757,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:758,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:759,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:762,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:769,1
    - Dst: fwupd_json_object_get_integer_with_default
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:770,1
    - Dst: fu_progress_set_percentage
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:777,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:780,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:782,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:785,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:788,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:791,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:792,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:795,1
    - Dst: g_hash_table_contains
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:796,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:797,1
    - Dst: g_hash_table_add
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:800,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:800,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:803,1
    - Dst: fu_redfish_device_parse_message_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:804,1
    - Dst: fwupd_json_object_has_node
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:814,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:815,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:821,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:822,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:823,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:824,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:824,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:828,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:829,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:832,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:833,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:834,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 3
    argNames:
    - self
    - ctx
    - error
    argTypes:
    - FuRedfishDevice*
    - FuRedfishDevicePollCtx*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 750
    functionDepth: 7
    functionLinenumber: 750
    functionLinenumberEnd: 840
    functionName: fu_redfish_device_poll_task_once
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_set_percentage
    - g_strdup_printf
    - g_autoptr
    - fwupd_json_array_get_object
    - fu_redfish_backend_request_new
    - fu_redfish_device_parse_message_id
    - fwupd_json_array_get_size
    - g_debug
    - g_set_error_literal
    - fwupd_json_object_get_array
    - g_hash_table_add
    - fu_device_has_flag
    - g_hash_table_contains
    - GET_PRIVATE
    - FU_DEVICE
    - fu_redfish_request_get_json_object
    - fwupd_json_object_get_string
    - g_strcmp0
    - g_steal_pointer
    - fu_redfish_request_perform
    - fwupd_json_object_has_node
    - fwupd_json_object_get_integer_with_default
    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:845,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:846,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:847,1
    - Dst: g_object_ref
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - progress
    - location
    argTypes:
    - FuProgress*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 850
    functionName: fu_redfish_device_poll_ctx_new
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - g_object_ref
    - g_new0
    - g_hash_table_new_full
    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:855,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:856,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:857,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuRedfishDevicePollCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 859
    functionName: fu_redfish_device_poll_ctx_free
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_hash_table_unref
    - g_free
    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:873,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:873,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:874,1
    - Dst: fu_redfish_device_poll_ctx_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:874,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:878,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:878,1
    - Dst: fu_redfish_device_poll_task_once
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:879,1
    - Dst: fu_progress_finished
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:882,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:885,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:888,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - location
    - progress
    - error
    argTypes:
    - FuRedfishDevice*
    - gchar*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 866
    functionDepth: 8
    functionLinenumber: 866
    functionLinenumberEnd: 895
    functionName: fu_redfish_device_poll_task
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 3
    functionsReached:
    - fu_progress_finished
    - fu_redfish_device_poll_task_once
    - g_set_error
    - fu_device_sleep
    - FU_DEVICE
    - fu_redfish_device_poll_ctx_new
    - g_timer_elapsed
    - g_timer_new
    - g_autoptr
    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:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 902
    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:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 909
    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:917,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:918,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:921,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:922,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:927,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:928,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:933,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 938
    functionName: fu_redfish_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fu_strtoull
    - g_set_error_literal
    - FU_REDFISH_DEVICE
    - GET_PRIVATE
    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:943,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:944,1
    - Dst: g_value_set_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:947,1
    - Dst: g_value_set_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:950,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:953,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: 956
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 956
    functionName: fu_redfish_device_get_property
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_value_set_pointer
    - g_value_set_object
    - FU_REDFISH_DEVICE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - 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:961,1
    - Dst: fwupd_json_object_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:963,1
    - Dst: fwupd_json_object_ref
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - json_obj_member
    argTypes:
    - FuRedfishDevice*
    - FwupdJsonObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 968
    functionName: fu_redfish_device_set_member
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_ref
    - fwupd_json_object_unref
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_redfish_device_set_member(FuRedfishDevice *self, FwupdJsonObject
      *json_obj_member)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:976,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:977,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:980,1
    - Dst: g_value_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:980,1
    - Dst: fu_redfish_device_set_member
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:983,1
    - Dst: g_value_get_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:983,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:986,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: 989
      start: 970
    functionDepth: 2
    functionLinenumber: 970
    functionLinenumberEnd: 989
    functionName: fu_redfish_device_set_property
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - fu_redfish_device_set_member
    - g_set_object
    - g_value_get_pointer
    - g_value_get_object
    - FU_REDFISH_DEVICE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    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:994,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:994,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:995,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:995,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:996,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:996,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:997,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:997,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:998,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:998,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:999,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:999,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1000,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1000,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1001,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1001,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1002,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1002,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1003,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1003,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1004,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1004,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1005,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1005,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1006,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 991
    functionDepth: 6
    functionLinenumber: 991
    functionLinenumberEnd: 1008
    functionName: fu_redfish_device_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_add_protocol
    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:1013,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1014,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1016,1
    - Dst: fwupd_json_object_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1018,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1019,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1020,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1010
    functionDepth: 1
    functionLinenumber: 1010
    functionLinenumberEnd: 1021
    functionName: fu_redfish_device_finalize
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - G_OBJECT_CLASS
    - g_free
    - fwupd_json_object_unref
    - FU_REDFISH_DEVICE
    - GET_PRIVATE
    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:1026,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1028,1
    - Dst: g_param_spec_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1044,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1049,1
    - Dst: g_param_spec_pointer
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1057,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/redfish/fu-redfish-device.c:1061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRedfishDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1062
    functionName: fu_redfish_device_class_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-device.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_object
    - G_OBJECT_CLASS
    - FU_DEVICE_CLASS
    - g_param_spec_pointer
    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: fwupd_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: fwupd_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: fwupd_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_backend_create_device
    - g_strcmp0
    - fu_redfish_network_device_new
    - fu_udev_device_get_sysfs_path
    - g_debug
    - g_set_error
    - fu_device_get_pid
    - fu_device_get_backend_parent_with_subsystem
    - g_prefix_error
    - g_dbus_proxy_new_for_bus_sync
    - fwupd_variant_get_string
    - fu_device_get_vid
    - fu_context_get_backend_by_name
    - g_dbus_proxy_get_cached_property
    - FU_UDEV_DEVICE
    - g_autoptr
    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_debug
    - g_dbus_proxy_get_name
    - g_set_error_literal
    - g_steal_pointer
    - g_dbus_proxy_new_for_bus_sync
    - g_propagate_error
    - g_error_matches
    - fu_redfish_network_device_match_device
    - g_auto
    - g_dbus_proxy_call_sync
    - g_autoptr
    - g_variant_get
    - g_propagate_prefixed_error
    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:
    - g_prefix_error
    - fu_redfish_network_device_match
    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:
    - g_prefix_error
    - fu_redfish_network_device_match
    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: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
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: fu_ipmi_device_to_string
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_hex
    - FU_IPMI_DEVICE
    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: 93
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 93
    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: 102
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 102
    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:122,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:122,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:122,1
    - Dst: fu_memdup_safe
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:125,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:128,1
    - Dst: fu_ioctl_add_key_as_u16
      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_key_as_u8
      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_add_const_buffer
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:137,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:142,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: 150
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 150
    functionName: fu_ipmi_device_send
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_execute
    - fu_ioctl_add_const_buffer
    - fu_dump_raw
    - fu_udev_device_ioctl_new
    - fu_ioctl_add_key_as_u8
    - FU_UDEV_DEVICE
    - fu_memdup_safe
    - fu_ioctl_add_key_as_u16
    - g_autoptr
    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:169,1
    - Dst: fu_udev_device_ioctl_new
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:169,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:169,1
    - Dst: fu_ioctl_add_key_as_u16
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:171,1
    - Dst: fu_ioctl_execute
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:172,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:181,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: 191
      start: 152
    functionDepth: 4
    functionLinenumber: 152
    functionLinenumberEnd: 191
    functionName: fu_ipmi_device_recv
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - fu_ioctl_execute
    - fu_udev_device_ioctl_new
    - fu_dump_raw
    - FU_UDEV_DEVICE
    - fu_ioctl_add_key_as_u16
    - g_autoptr
    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:196,1
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:197,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:197,1
    - Dst: fcntl
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:199,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:199,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 207
    functionName: fu_ipmi_device_lock_cb
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_IPMI_DEVICE
    - fu_udev_device_get_io_channel
    - fcntl
    - fu_io_channel_unix_get_fd
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ipmi_device_lock_cb(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_IPMI_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:212,1
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:213,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:213,1
    - Dst: fcntl
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:215,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:215,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 223
    functionName: fu_ipmi_device_unlock_cb
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - FU_IPMI_DEVICE
    - fu_udev_device_get_io_channel
    - fcntl
    - fu_io_channel_unix_get_fd
    - FU_UDEV_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_ipmi_device_unlock_cb(FuDevice *device, GError **error)
  - BBCount: 29
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 58
    argCount: 1
    argNames:
    - errcode
    argTypes:
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 286
    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:297,1
    - Dst: fu_ipmi_device_errcode_to_string
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:301,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:307,1
    - Dst: fu_ipmi_device_errcode_to_string
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - errcode
    - error
    argTypes:
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 314
    functionName: fu_ipmi_device_errcode_to_error
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - fu_ipmi_device_errcode_to_string
    - g_set_error
    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:330,1
    - Dst: fu_udev_device_get_io_channel
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:331,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:331,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:336,1
    - Dst: g_timer_new
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:336,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:337,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:338,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:340,1
    - Dst: fu_ipmi_device_send
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:347,1
    - Dst: fu_io_channel_unix_get_fd
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:355,1
    - Dst: g_poll
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:364,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:366,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:368,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:372,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:383,1
    - Dst: fu_ipmi_device_recv
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:390,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:401,1
    - Dst: g_timer_elapsed
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:405,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:406,1
    - Dst: fu_ipmi_device_errcode_to_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:413,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:416,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:428,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 327
    functionDepth: 5
    functionLinenumber: 327
    functionLinenumberEnd: 437
    functionName: fu_ipmi_device_transaction_cb
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - g_debug
    - g_set_error
    - fu_ipmi_device_send
    - g_set_error_literal
    - FU_IPMI_DEVICE
    - g_malloc0
    - fu_ipmi_device_errcode_to_error
    - fu_ipmi_device_recv
    - fu_memcpy_safe
    - fu_udev_device_get_io_channel
    - fu_io_channel_unix_get_fd
    - g_poll
    - g_timer_elapsed
    - FU_UDEV_DEVICE
    - g_autoptr
    - g_timer_new
    - 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:461,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:461,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:462,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:462,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: 468
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 468
    functionName: fu_ipmi_device_transaction
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_retry_add_recovery
    - fu_device_retry_full
    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:473,1
    - Dst: G_N_ELEMENTS
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:477,1
    - Dst: fu_device_query_file_exists
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:479,1
    - Dst: fu_device_set_physical_id
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:482,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:482,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 470
    functionDepth: 4
    functionLinenumber: 470
    functionLinenumberEnd: 490
    functionName: fu_ipmi_device_probe
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_physical_id
    - g_set_error_literal
    - FU_IPMI_DEVICE
    - FU_DEVICE
    - G_N_ELEMENTS
    - 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:495,1
    - Dst: fu_ipmi_device_transaction
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:500,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:513,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:513,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:520,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:522,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:529,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:534,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 492
    functionDepth: 4
    functionLinenumber: 492
    functionLinenumberEnd: 544
    functionName: fu_ipmi_device_setup
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - g_set_error
    - fu_ipmi_device_transaction
    - FU_IPMI_DEVICE
    - g_string_new
    - g_string_append_printf
    - 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:553,1
    - Dst: FU_IS_IPMI_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:553,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:554,1
    - Dst: fu_ipmi_device_transaction
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:557,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:567,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:571,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:580,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - user_id
    - error
    argTypes:
    - FuIpmiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 546
    functionDepth: 4
    functionLinenumber: 546
    functionLinenumberEnd: 581
    functionName: fu_ipmi_device_get_user_password
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_memstrsafe
    - g_set_error
    - fu_ipmi_device_transaction
    - g_prefix_error_literal
    - FU_IS_IPMI_DEVICE
    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:592,1
    - Dst: FU_IS_IPMI_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:592,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:593,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:594,1
    - Dst: strlen
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:597,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:598,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:606,1
    - Dst: fu_ipmi_device_transaction
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:611,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:621,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: 627
      start: 583
    functionDepth: 4
    functionLinenumber: 583
    functionLinenumberEnd: 627
    functionName: fu_ipmi_device_set_user_name
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_ipmi_device_transaction
    - g_prefix_error_literal
    - g_prefix_error
    - strlen
    - fu_memcpy_safe
    - FU_IS_IPMI_DEVICE
    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:635,1
    - Dst: FU_IS_IPMI_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:635,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:636,1
    - Dst: fu_ipmi_device_transaction
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:639,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:649,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: 655
      start: 629
    functionDepth: 4
    functionLinenumber: 629
    functionLinenumberEnd: 655
    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
    - g_prefix_error
    - FU_IS_IPMI_DEVICE
    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:666,1
    - Dst: FU_IS_IPMI_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:666,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:667,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:668,1
    - Dst: strlen
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:671,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:672,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:680,1
    - Dst: fu_ipmi_device_transaction
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:685,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:695,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: 701
      start: 657
    functionDepth: 4
    functionLinenumber: 657
    functionLinenumberEnd: 701
    functionName: fu_ipmi_device_set_user_password
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - fu_ipmi_device_transaction
    - g_prefix_error_literal
    - g_prefix_error
    - strlen
    - fu_memcpy_safe
    - FU_IS_IPMI_DEVICE
    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:712,1
    - Dst: FU_IS_IPMI_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:712,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:713,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:714,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:715,1
    - Dst: fu_ipmi_device_transaction
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:718,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:728,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: 738
      start: 703
    functionDepth: 4
    functionLinenumber: 703
    functionLinenumberEnd: 738
    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
    - g_prefix_error
    - FU_IS_IPMI_DEVICE
    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:749,1
    - Dst: FU_IS_IPMI_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:749,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:750,1
    - Dst: fu_ipmi_device_transaction
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:753,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - user_id
    - error
    argTypes:
    - FuIpmiDevice*
    - guint8
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 740
    functionDepth: 4
    functionLinenumber: 740
    functionLinenumberEnd: 769
    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
    - g_prefix_error
    - FU_IS_IPMI_DEVICE
    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:774,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:774,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:775,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:775,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:776,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:776,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:777,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:777,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:778,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:778,1
    - Dst: fu_udev_device_add_open_flag
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:779,1
    - Dst: FU_UDEV_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-ipmi-device.c:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuIpmiDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 771
    functionDepth: 6
    functionLinenumber: 771
    functionLinenumberEnd: 780
    functionName: fu_ipmi_device_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-ipmi-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_icon
    - fu_device_set_name
    - FU_DEVICE
    - fu_device_set_summary
    - FU_UDEV_DEVICE
    - fu_udev_device_add_open_flag
    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:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuIpmiDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 789
    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:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FuContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 797
    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:31,1
    - Dst: FU_IS_REDFISH_REQUEST
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:31,1
    - Dst: fwupd_json_object_ref
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 33
    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
    - fwupd_json_object_ref
    linkageType: ''
    returnType: FwupdJsonObject
    signature: 'FwupdJsonObject *

      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:38,1
    - Dst: FU_IS_REDFISH_REQUEST
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    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:45,1
    - Dst: FU_IS_REDFISH_REQUEST
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    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:52,1
    - Dst: FU_IS_REDFISH_REQUEST
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      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: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:61,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:65,1
    - Dst: fwupd_json_parser_load_from_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:71,1
    - Dst: fwupd_json_node_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:77,1
    - Dst: fwupd_json_object_to_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:82,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:83,1
    - Dst: fwupd_json_object_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:86,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:91,1
    - Dst: fwupd_json_object_get_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:95,1
    - Dst: fwupd_json_array_get_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:96,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:97,1
    - Dst: fwupd_json_array_get_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:98,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:101,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:102,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:104,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:105,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:107,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:109,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:111,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:113,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:114,1
    - Dst: g_pattern_match_simple
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:115,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:117,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 3
    argNames:
    - self
    - buf
    - error
    argTypes:
    - FuRedfishRequest*
    - GByteArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 56
    functionDepth: 8
    functionLinenumber: 56
    functionLinenumberEnd: 126
    functionName: fu_redfish_request_load_json
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - g_debug
    - fwupd_json_array_get_size
    - g_set_error_literal
    - fwupd_json_parser_load_from_data
    - fwupd_json_object_get_object
    - g_pattern_match_simple
    - fwupd_json_object_get_array
    - fwupd_json_array_get_object
    - fwupd_json_object_get_string
    - fwupd_json_node_get_object
    - g_autoptr
    - fwupd_json_object_to_string
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_request_load_json(FuRedfishRequest *self, GByteArray
      *buf, GError **error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:136,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:138,1
    - Dst: FU_IS_REDFISH_REQUEST
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:138,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:139,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:140,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:141,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:145,1
    - Dst: fu_redfish_request_load_json
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:148,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:149,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:150,1
    - Dst: g_strconcat
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:157,1
    - Dst: curl_url_set
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:158,1
    - Dst: curl_url_set
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:160,1
    - Dst: curl_url_get
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:162,1
    - Dst: curl_easy_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:163,1
    - Dst: curl_easy_getinfo
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:164,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:165,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:166,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:170,1
    - Dst: curl_easy_strerror
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:175,1
    - Dst: fu_redfish_request_get_status_code
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:180,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:181,1
    - Dst: fu_redfish_request_load_json
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:190,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:191,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:198,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:198,1
    - Dst: g_byte_array_ref
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:198,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 4
    argNames:
    - self
    - path
    - flags
    - error
    argTypes:
    - FuRedfishRequest*
    - gchar*
    - FuRedfishRequestPerformFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 128
    functionDepth: 9
    functionLinenumber: 128
    functionLinenumberEnd: 202
    functionName: fu_redfish_request_perform
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 18
    functionsReached:
    - g_hash_table_insert
    - curl_easy_strerror
    - g_hash_table_lookup
    - curl_easy_getinfo
    - g_debug
    - fu_redfish_request_get_status_code
    - g_set_error_literal
    - g_byte_array_ref
    - curl_url_get
    - curl_url_set
    - FU_IS_REDFISH_REQUEST
    - g_byte_array_unref
    - fu_redfish_request_load_json
    - g_strconcat
    - g_return_val_if_fail
    - g_strndup
    - g_strdup
    - g_set_error
    - g_prefix_error
    - curl_easy_perform
    - g_autoptr
    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:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 213
    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:224,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:225,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:227,1
    - Dst: FU_IS_REDFISH_REQUEST
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:227,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:228,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:229,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:230,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:235,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:236,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:240,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:243,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:244,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:246,1
    - Dst: fu_redfish_request_reset
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:249,1
    - Dst: fwupd_json_object_to_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:253,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:254,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:257,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:258,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:259,1
    - Dst: curl_slist_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:260,1
    - Dst: curl_slist_append
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:262,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:263,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 6
    argNames:
    - self
    - path
    - request
    - json_obj
    - flags
    - error
    argTypes:
    - FuRedfishRequest*
    - gchar*
    - gchar*
    - FwupdJsonObject*
    - FuRedfishRequestPerformFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 215
    functionDepth: 10
    functionLinenumber: 215
    functionLinenumberEnd: 265
    functionName: fu_redfish_request_perform_full
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 4
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_REDFISH_REQUEST
    - curl_easy_setopt
    - curl_slist_append
    - g_debug
    - fu_redfish_request_perform
    - g_prefix_error_literal
    - fu_redfish_request_reset
    - g_strdup_printf
    - fu_redfish_request_get_json_object
    - fwupd_json_object_get_string
    - g_autoptr
    - fwupd_json_object_to_string
    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\tFwupdJsonObject *json_obj,\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:272,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: 274
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 274
    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:279,1
    - Dst: FU_IS_REDFISH_REQUEST
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:279,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:280,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - path_prefix
    argTypes:
    - FuRedfishRequest*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: fu_redfish_request_set_path_prefix
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 1
    functionsReached:
    - FU_IS_REDFISH_REQUEST
    - g_return_if_fail
    - g_free
    - g_strdup
    linkageType: ''
    returnType: void
    signature: void fu_redfish_request_set_path_prefix(FuRedfishRequest *self, const
      gchar *path_prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:287,1
    - Dst: FU_IS_REDFISH_REQUEST
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:287,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:288,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:289,1
    - Dst: g_hash_table_ref
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - cache
    argTypes:
    - FuRedfishRequest*
    - GHashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 291
    functionName: fu_redfish_request_set_cache
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 1
    functionsReached:
    - FU_IS_REDFISH_REQUEST
    - g_hash_table_ref
    - 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:296,1
    - Dst: FU_IS_REDFISH_REQUEST
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:296,1
    - Dst: g_return_if_fail
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:297,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - curlsh
    argTypes:
    - FuRedfishRequest*
    - CURLSH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 299
    functionName: fu_redfish_request_set_curlsh
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 1
    functionsReached:
    - FU_IS_REDFISH_REQUEST
    - g_return_if_fail
    - curl_easy_setopt
    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:304,1
    - Dst: curl_url
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:305,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:306,1
    - Dst: fwupd_json_parser_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:307,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:308,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:309,1
    - Dst: fwupd_json_parser_set_max_depth
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:312,1
    - Dst: fwupd_json_parser_set_max_items
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:313,1
    - Dst: fwupd_json_parser_set_max_quoted
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 315
    functionName: fu_redfish_request_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 0
    functionsReached:
    - fwupd_json_parser_set_max_depth
    - curl_easy_setopt
    - fwupd_json_parser_set_max_quoted
    - curl_easy_init
    - g_byte_array_new
    - fwupd_json_parser_new
    - fwupd_json_parser_set_max_items
    - curl_url
    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:320,1
    - Dst: g_hash_table_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:322,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:323,1
    - Dst: g_byte_array_unref
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:324,1
    - Dst: g_free
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:325,1
    - Dst: curl_easy_cleanup
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:326,1
    - Dst: curl_url_cleanup
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:327,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/redfish/fu-redfish-request.c:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 329
    functionName: fu_redfish_request_finalize
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-request.c
    functionUses: 0
    functionsReached:
    - FU_REDFISH_REQUEST
    - g_object_unref
    - g_byte_array_unref
    - curl_url_cleanup
    - G_OBJECT_CLASS
    - g_free
    - g_hash_table_unref
    - curl_easy_cleanup
    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:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRedfishRequestClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 336
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      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: fwupd_json_array_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: fwupd_json_object_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:26,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:29,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:30,1
    - Dst: fwupd_json_object_add_boolean
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:38,1
    - Dst: fwupd_json_array_add_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:39,1
    - Dst: fu_device_get_logical_id
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:39,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:40,1
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:43,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:43,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:46,1
    - Dst: fu_redfish_request_perform_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 20
    functionDepth: 11
    functionLinenumber: 20
    functionLinenumberEnd: 54
    functionName: fu_redfish_legacy_device_detach
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c
    functionUses: 0
    functionsReached:
    - fu_device_get_logical_id
    - fwupd_json_object_add_array
    - fwupd_json_object_new
    - g_set_error_literal
    - fu_redfish_device_get_backend
    - fu_redfish_request_perform_full
    - fwupd_json_array_new
    - fwupd_json_array_add_string
    - fwupd_json_object_add_boolean
    - FU_REDFISH_DEVICE
    - g_autoptr
    - fu_redfish_backend_request_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_legacy_device_detach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:61,1
    - Dst: fwupd_json_array_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:61,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:62,1
    - Dst: fwupd_json_object_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:62,1
    - Dst: fwupd_json_object_add_boolean
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:65,1
    - Dst: fwupd_json_object_add_array
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:66,1
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:69,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:69,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:72,1
    - Dst: fu_redfish_request_perform_full
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 56
    functionDepth: 11
    functionLinenumber: 56
    functionLinenumberEnd: 80
    functionName: fu_redfish_legacy_device_attach
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c
    functionUses: 0
    functionsReached:
    - fwupd_json_object_add_array
    - fwupd_json_object_new
    - fu_redfish_device_get_backend
    - fu_redfish_request_perform_full
    - fwupd_json_array_new
    - fwupd_json_object_add_boolean
    - FU_REDFISH_DEVICE
    - g_autoptr
    - fu_redfish_backend_request_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_redfish_legacy_device_attach(FuDevice *device, FuProgress
      *progress, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_REDFISH_LEGACY_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:89,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:93,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:94,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:95,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:98,1
    - Dst: fu_redfish_device_get_backend
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:103,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:103,1
    - Dst: fu_redfish_backend_request_new
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:106,1
    - Dst: fu_redfish_request_get_curl
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:107,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:108,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:109,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:109,1
    - Dst: curl_easy_setopt
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:110,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:110,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:111,1
    - Dst: fu_redfish_request_perform
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:112,1
    - Dst: fu_redfish_backend_get_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:113,1
    - Dst: fu_redfish_request_get_json_object
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:119,1
    - Dst: fwupd_json_object_get_string
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:120,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:122,1
    - Dst: fu_redfish_backend_get_push_uri_path
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:124,1
    - Dst: fu_redfish_device_poll_task
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:127,1
    - Dst: FU_REDFISH_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 82
    functionDepth: 10
    functionLinenumber: 82
    functionLinenumberEnd: 128
    functionName: fu_redfish_legacy_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c
    functionUses: 0
    functionsReached:
    - fu_redfish_request_get_curl
    - curl_easy_setopt
    - fu_redfish_device_poll_task
    - fu_firmware_get_bytes
    - g_bytes_get_data
    - FU_REDFISH_LEGACY_DEVICE
    - fu_redfish_device_get_backend
    - fu_redfish_request_perform
    - g_prefix_error
    - fu_redfish_request_get_json_object
    - g_bytes_get_size
    - fwupd_json_object_get_string
    - FU_REDFISH_DEVICE
    - fu_progress_set_status
    - g_autoptr
    - fu_redfish_backend_get_push_uri_path
    - fu_redfish_backend_request_new
    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:133,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:134,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:135,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:136,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:137,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:138,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 140
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:145,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuRedfishLegacyDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: fu_redfish_legacy_device_init
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-legacy-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_summary
    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:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuRedfishLegacyDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 156
    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: fwupd_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: 1
    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_return_val_if_fail
    - fwupd_variant_get_uint32
    - FU_IS_REDFISH_NETWORK_DEVICE
    - g_set_error_literal
    - g_dbus_proxy_new_for_bus_sync
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    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: 2
    functionLinenumber: 54
    functionLinenumberEnd: 107
    functionName: fu_redfish_network_device_connect
    functionSourceFile: /src/fwupd/plugins/redfish/fu-redfish-network-device.c
    functionUses: 2
    functionsReached:
    - g_return_val_if_fail
    - g_usleep
    - g_debug
    - g_set_error_literal
    - fu_redfish_network_device_state_to_string
    - g_dbus_proxy_new_for_bus_sync
    - fu_redfish_network_device_get_state
    - g_timer_elapsed
    - g_variant_new
    - FU_IS_REDFISH_NETWORK_DEVICE
    - g_timer_new
    - g_dbus_proxy_call_sync
    - g_autoptr
    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: fwupd_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: 1
    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_return_val_if_fail
    - g_variant_dict_lookup
    - FU_IS_REDFISH_NETWORK_DEVICE
    - g_set_error_literal
    - g_steal_pointer
    - g_dbus_proxy_new_for_bus_sync
    - fwupd_variant_get_string
    - g_variant_dict_new
    - g_variant_get_child_value
    - g_dbus_proxy_get_cached_property
    - g_autoptr
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQcS5gen2Firmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    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: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    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:41,1
    - Dst: fu_xmlb_builder_insert_kv
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:42,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:43,1
    - Dst: fu_xmlb_builder_insert_kx
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - firmware
    - flags
    - bn
    argTypes:
    - FuFirmware*
    - FuFirmwareExportFlags
    - XbBuilderNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: fu_qc_s5gen2_firmware_export
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c
    functionUses: 0
    functionsReached:
    - fu_xmlb_builder_insert_kx
    - fu_xmlb_builder_insert_kv
    - FU_QC_S5GEN2_FIRMWARE
    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: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: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_FIRMWARE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:62,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:67,1
    - Dst: fu_struct_qc_fw_update_hdr_parse_stream
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:70,1
    - Dst: fu_struct_qc_fw_update_hdr_get_protocol
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:75,1
    - Dst: fu_struct_qc_fw_update_hdr_get_dev_variant
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:76,1
    - Dst: fu_strsafe
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:77,1
    - Dst: fu_size_checked_inc_product
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:79,1
    - Dst: fu_struct_qc_fw_update_hdr_get_upgrades
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:80,1
    - Dst: fu_input_stream_read_u16
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:84,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:87,1
    - Dst: fu_struct_qc_fw_update_hdr_get_major
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:88,1
    - Dst: fu_struct_qc_fw_update_hdr_get_minor
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:89,1
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:91,1
    - Dst: fu_firmware_set_stream
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:93,1
    - Dst: fu_input_stream_compute_crc32
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 100
    functionName: fu_qc_s5gen2_firmware_parse
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_u16
    - fu_strsafe
    - fu_struct_qc_fw_update_hdr_get_protocol
    - fu_firmware_set_version
    - fu_struct_qc_fw_update_hdr_parse_stream
    - fu_struct_qc_fw_update_hdr_get_major
    - g_strdup_printf
    - FU_QC_S5GEN2_FIRMWARE
    - fu_struct_qc_fw_update_hdr_get_dev_variant
    - fu_struct_qc_fw_update_hdr_get_upgrades
    - fu_struct_qc_fw_update_hdr_get_minor
    - fu_firmware_set_stream
    - g_autoptr
    - fu_size_checked_inc_product
    - fu_input_stream_compute_crc32
    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:105,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:105,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:106,1
    - Dst: fu_firmware_get_bytes_with_patches
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:109,1
    - Dst: fu_byte_array_append_bytes
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:113,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 117
    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
    - fu_firmware_get_bytes_with_patches
    - g_steal_pointer
    - g_byte_array_new
    - g_autoptr
    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:124,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:124,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:125,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:125,1
    - Dst: fu_firmware_add_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:126,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:126,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:127,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQcS5gen2Firmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: fu_qc_s5gen2_firmware_init
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_flag
    - fu_firmware_set_size_max
    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:133,1
    - Dst: g_free
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:134,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: fu_qc_s5gen2_firmware_finalize
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c
    functionUses: 0
    functionsReached:
    - g_free
    - FU_QC_S5GEN2_FIRMWARE
    - 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:141,1
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQcS5gen2FirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 148
    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:153,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: fu_qc_s5gen2_firmware_new
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    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:37,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:38,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:39,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-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: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 41
    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:46,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:46,1
    - Dst: fu_qc_s5gen2_impl_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:49,1
    - Dst: FU_QC_S5GEN2_IMPL
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - data
    - data_len
    - error
    argTypes:
    - FuQcS5gen2Device*
    - guint8*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: fu_qc_s5gen2_device_msg_out
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - FU_QC_S5GEN2_IMPL
    - fu_qc_s5gen2_impl_msg_out
    - fu_device_get_proxy
    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: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:60,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:61,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:63,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:63,1
    - Dst: fu_qc_s5gen2_impl_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:66,1
    - Dst: FU_QC_S5GEN2_IMPL
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:66,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:70,1
    - Dst: fu_struct_qc_error_ind_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:80,1
    - Dst: fu_struct_qc_error_ind_get_error_code
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:83,1
    - Dst: fu_struct_qc_error_res_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:83,1
    - Dst: fu_struct_qc_error_res_set_error_code
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:86,1
    - Dst: fu_qc_s5gen2_impl_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:87,1
    - Dst: FU_QC_S5GEN2_IMPL
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:87,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - read_len
    - error
    argTypes:
    - FuQcS5gen2Device*
    - guint8*
    - gsize
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 102
    functionName: fu_qc_s5gen2_device_msg_in
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_qc_error_ind_get_error_code
    - fu_qc_s5gen2_impl_msg_in
    - g_set_error
    - FU_QC_S5GEN2_IMPL
    - fu_struct_qc_error_res_new
    - FU_DEVICE
    - fu_struct_qc_error_res_set_error_code
    - fu_device_get_proxy
    - g_autoptr
    - fu_struct_qc_error_ind_parse
    - fu_qc_s5gen2_impl_msg_out
    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:107,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:107,1
    - Dst: fu_qc_s5gen2_impl_req_disconnect
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:110,1
    - Dst: FU_QC_S5GEN2_IMPL
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: fu_qc_s5gen2_device_cmd_req_disconnect
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - FU_QC_S5GEN2_IMPL
    - fu_qc_s5gen2_impl_req_disconnect
    - fu_device_get_proxy
    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:116,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:116,1
    - Dst: fu_qc_s5gen2_impl_req_connect
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:119,1
    - Dst: FU_QC_S5GEN2_IMPL
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: fu_qc_s5gen2_device_cmd_req_connect
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_qc_s5gen2_impl_req_connect
    - FU_QC_S5GEN2_IMPL
    - fu_device_get_proxy
    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:126,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:126,1
    - Dst: fu_qc_s5gen2_impl_data_size
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:129,1
    - Dst: FU_QC_S5GEN2_IMPL
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - data_sz
    - error
    argTypes:
    - FuQcS5gen2Device*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: fu_qc_s5gen2_device_data_size
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - FU_QC_S5GEN2_IMPL
    - fu_qc_s5gen2_impl_data_size
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_data_size(FuQcS5gen2Device *self, gsize
      *data_sz, GError **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:135,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:138,1
    - Dst: fu_qc_s5gen2_device_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:140,1
    - Dst: fu_struct_qc_abort_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: fu_qc_s5gen2_device_cmd_abort_cb
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - FU_QC_S5GEN2_DEVICE
    - g_autoptr
    - fu_struct_qc_abort_parse
    - fu_qc_s5gen2_device_msg_in
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_cmd_abort_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:153,1
    - Dst: fu_struct_qc_abort_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:153,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:155,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:157,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 163
    functionName: fu_qc_s5gen2_device_cmd_abort
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_retry_full
    - FU_DEVICE
    - fu_struct_qc_abort_req_new
    - g_autoptr
    - fu_qc_s5gen2_device_msg_out
    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:170,1
    - Dst: fu_struct_qc_sync_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:170,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:171,1
    - Dst: fu_struct_qc_sync_req_set_file_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:173,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:174,1
    - Dst: fu_qc_s5gen2_device_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:176,1
    - Dst: fu_struct_qc_sync_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:179,1
    - Dst: fu_struct_qc_sync_get_protocol_version
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:183,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:184,1
    - Dst: fu_struct_qc_sync_get_protocol_version
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:188,1
    - Dst: fu_struct_qc_sync_get_file_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:193,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:194,1
    - Dst: fu_qc_s5gen2_device_cmd_abort
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:196,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:197,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:199,1
    - Dst: fu_struct_qc_sync_get_file_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:203,1
    - Dst: fu_struct_qc_sync_get_resume_point
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:209,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 165
    functionDepth: 4
    functionLinenumber: 165
    functionLinenumberEnd: 211
    functionName: fu_qc_s5gen2_device_cmd_sync
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_qc_sync_req_set_file_id
    - fu_struct_qc_sync_get_file_id
    - fu_qc_s5gen2_device_msg_in
    - fu_struct_qc_sync_parse
    - g_set_error
    - g_debug
    - fu_qc_s5gen2_device_cmd_abort
    - fu_struct_qc_sync_get_resume_point
    - fu_struct_qc_sync_req_new
    - g_autoptr
    - fu_struct_qc_sync_get_protocol_version
    - fu_qc_s5gen2_device_msg_out
    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:219,1
    - Dst: fu_struct_qc_start_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:219,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:220,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:222,1
    - Dst: fu_qc_s5gen2_device_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:224,1
    - Dst: fu_struct_qc_start_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:227,1
    - Dst: fu_struct_qc_start_get_status
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:231,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:233,1
    - Dst: fu_qc_start_status_to_string
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:237,1
    - Dst: fu_struct_qc_start_get_battery_level
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 245
    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
    - fu_qc_s5gen2_device_msg_in
    - g_set_error
    - fu_struct_qc_start_get_status
    - fu_struct_qc_start_get_battery_level
    - fu_struct_qc_start_req_new
    - fu_struct_qc_start_parse
    - g_autoptr
    - fu_qc_s5gen2_device_msg_out
    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:250,1
    - Dst: fu_struct_qc_start_data_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:250,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:252,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:255,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 258
    functionName: fu_qc_s5gen2_device_cmd_start_data
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - FU_DEVICE
    - fu_struct_qc_start_data_req_new
    - g_autoptr
    - fu_qc_s5gen2_device_msg_out
    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:266,1
    - Dst: fu_struct_qc_validation_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:266,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:267,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:268,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:269,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:271,1
    - Dst: fu_qc_s5gen2_device_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:273,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:277,1
    - Dst: fu_struct_qc_transfer_complete_ind_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:287,1
    - Dst: fu_struct_qc_is_validation_done_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:292,1
    - Dst: fu_struct_qc_is_validation_done_get_delay
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:296,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:297,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:302,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:302,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 304
    functionName: fu_qc_s5gen2_device_cmd_validation
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_device_msg_in
    - g_set_error
    - fu_struct_qc_transfer_complete_ind_parse
    - fu_struct_qc_validation_req_new
    - fu_struct_qc_is_validation_done_parse
    - fu_device_sleep
    - FU_DEVICE
    - fu_struct_qc_is_validation_done_get_delay
    - g_autoptr
    - fu_qc_s5gen2_device_msg_out
    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:309,1
    - Dst: FU_QC_S5GEN2_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 306
    functionDepth: 4
    functionLinenumber: 306
    functionLinenumberEnd: 310
    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:317,1
    - Dst: fu_struct_qc_transfer_complete_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:317,1
    - Dst: fu_struct_qc_transfer_complete_set_action
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:319,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 323
    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_new
    - g_autoptr
    - fu_struct_qc_transfer_complete_set_action
    - fu_qc_s5gen2_device_msg_out
    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:330,1
    - Dst: fu_struct_qc_proceed_to_commit_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:330,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:331,1
    - Dst: fu_struct_qc_proceed_to_commit_set_action
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:333,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:335,1
    - Dst: fu_qc_s5gen2_device_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:337,1
    - Dst: fu_struct_qc_commit_req_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 325
    functionDepth: 3
    functionLinenumber: 325
    functionLinenumberEnd: 345
    functionName: fu_qc_s5gen2_device_cmd_proceed_to_commit
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_device_msg_in
    - fu_struct_qc_commit_req_parse
    - fu_struct_qc_proceed_to_commit_new
    - fu_struct_qc_proceed_to_commit_set_action
    - g_autoptr
    - fu_qc_s5gen2_device_msg_out
    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:352,1
    - Dst: fu_struct_qc_commit_cfm_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:352,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:353,1
    - Dst: fu_struct_qc_commit_cfm_set_action
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:355,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:358,1
    - Dst: fu_qc_s5gen2_device_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:362,1
    - Dst: fu_struct_qc_complete_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 370
    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_new
    - fu_qc_s5gen2_device_msg_in
    - fu_struct_qc_complete_parse
    - fu_struct_qc_commit_cfm_set_action
    - g_autoptr
    - fu_qc_s5gen2_device_msg_out
    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:378,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:379,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:380,1
    - Dst: fu_struct_qc_version_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:380,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:383,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:383,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:390,1
    - Dst: fu_qc_s5gen2_device_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:392,1
    - Dst: fu_struct_qc_version_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:394,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:398,1
    - Dst: fu_struct_qc_version_get_major
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:399,1
    - Dst: fu_struct_qc_version_get_minor
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:400,1
    - Dst: fu_struct_qc_version_get_config
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:401,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:402,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:402,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 404
    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_get_minor
    - fu_qc_s5gen2_device_msg_in
    - fu_struct_qc_version_req_new
    - fu_device_set_version
    - FU_DEVICE
    - g_strdup_printf
    - fu_struct_qc_version_get_major
    - fu_struct_qc_version_get_config
    - fu_struct_qc_version_parse
    - g_autoptr
    - fu_device_locker_new_full
    - fu_qc_s5gen2_device_msg_out
    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:409,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:410,1
    - Dst: fu_device_locker_new_full
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:413,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:418,1
    - Dst: fu_qc_s5gen2_device_cmd_sync
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:421,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:422,1
    - Dst: fu_qc_s5gen2_device_cmd_start
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:425,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:426,1
    - Dst: g_debug
      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:430,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:434,1
    - Dst: fu_qc_s5gen2_device_cmd_abort
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:436,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:437,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:439,1
    - Dst: fu_qc_resume_point_to_string
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:443,1
    - Dst: fu_qc_s5gen2_device_cmd_proceed_to_commit
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:448,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:449,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:455,1
    - Dst: fu_qc_resume_point_to_string
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:455,1
    - Dst: fu_qc_s5gen2_device_cmd_commit_cfm
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:456,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:457,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:461,1
    - Dst: fu_qc_resume_point_to_string
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:461,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 406
    functionDepth: 5
    functionLinenumber: 406
    functionLinenumberEnd: 465
    functionName: fu_qc_s5gen2_device_attach
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_device_cmd_sync
    - g_debug
    - g_set_error
    - g_prefix_error_literal
    - fu_qc_s5gen2_device_cmd_abort
    - FU_QC_S5GEN2_DEVICE
    - fu_qc_s5gen2_device_cmd_proceed_to_commit
    - fu_qc_s5gen2_device_cmd_commit_cfm
    - fu_qc_resume_point_to_string
    - fu_qc_s5gen2_device_cmd_start
    - g_autoptr
    - 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:470,1
    - Dst: fu_qc_s5gen2_device_ensure_version
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:471,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 467
    functionDepth: 4
    functionLinenumber: 467
    functionLinenumberEnd: 476
    functionName: fu_qc_s5gen2_device_reload
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_device_ensure_version
    - FU_QC_S5GEN2_DEVICE
    - g_prefix_error_literal
    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:481,1
    - Dst: fu_qc_s5gen2_device_ensure_version
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:482,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 478
    functionDepth: 4
    functionLinenumber: 478
    functionLinenumberEnd: 487
    functionName: fu_qc_s5gen2_device_setup
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_device_ensure_version
    - FU_QC_S5GEN2_DEVICE
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_device_setup(FuDevice *device, GError **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:496,1
    - Dst: fu_qc_s5gen2_device_data_size
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:498,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:501,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:506,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:507,1
    - Dst: fu_struct_qc_data_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:507,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:508,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:508,1
    - Dst: fu_struct_qc_data_set_data_len
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:513,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:513,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:515,1
    - Dst: fu_struct_qc_data_set_last_packet
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:516,1
    - Dst: fu_struct_qc_data_set_last_packet
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:518,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:520,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:520,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:520,1
    - Dst: fu_qc_s5gen2_device_msg_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:522,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:524,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:529,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:529,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - self
    - data
    - last
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GBytes*
    - FuQcMoreData
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 489
    functionDepth: 3
    functionLinenumber: 489
    functionLinenumberEnd: 533
    functionName: fu_qc_s5gen2_device_write_bucket
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_device_data_size
    - fu_chunk_array_new_from_bytes
    - fu_device_sleep
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_struct_qc_data_set_data_len
    - fu_struct_qc_data_set_last_packet
    - FU_DEVICE
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_struct_qc_data_new
    - fu_chunk_array_length
    - g_autoptr
    - fu_qc_s5gen2_device_msg_out
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:540,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:545,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:553,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:554,1
    - Dst: fu_qc_s5gen2_device_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:556,1
    - Dst: fu_struct_qc_data_req_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:558,1
    - Dst: fu_struct_qc_data_req_get_fw_data_len
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:563,1
    - Dst: fu_struct_qc_data_req_get_fw_data_offset
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:564,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:568,1
    - Dst: fu_qc_s5gen2_device_cmd_abort
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:570,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:571,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:573,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:584,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:596,1
    - Dst: fu_qc_s5gen2_device_write_bucket
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:600,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:604,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:607,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - self
    - bytes
    - progress
    - error
    argTypes:
    - FuQcS5gen2Device*
    - GBytes*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 534
    functionDepth: 4
    functionLinenumber: 534
    functionLinenumberEnd: 615
    functionName: fu_qc_s5gen2_device_write_blocks
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_device_msg_in
    - fu_struct_qc_data_req_get_fw_data_offset
    - fu_qc_s5gen2_device_write_bucket
    - g_debug
    - fu_struct_qc_data_req_get_fw_data_len
    - g_set_error
    - fu_qc_s5gen2_device_cmd_abort
    - fu_struct_qc_data_req_parse
    - g_bytes_get_size
    - fu_bytes_new_offset
    - fu_progress_set_percentage_full
    - g_autoptr
    - fu_progress_set_id
    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:624,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:625,1
    - Dst: fu_qc_s5gen2_firmware_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:625,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:627,1
    - Dst: fu_qc_s5gen2_firmware_get_protocol_version
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:631,1
    - Dst: FU_QC_S5GEN2_FIRMWARE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:631,1
    - Dst: fu_qc_s5gen2_firmware_get_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:632,1
    - Dst: FU_QC_S5GEN2_FIRMWARE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:632,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:634,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: 635
      start: 617
    functionDepth: 4
    functionLinenumber: 617
    functionLinenumberEnd: 635
    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_firmware_parse_stream
    - g_steal_pointer
    - fu_qc_s5gen2_firmware_new
    - FU_QC_S5GEN2_DEVICE
    - FU_QC_S5GEN2_FIRMWARE
    - g_autoptr
    - fu_qc_s5gen2_firmware_get_id
    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:644,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:645,1
    - Dst: fu_qc_s5gen2_device_cmd_req_connect
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:647,1
    - Dst: fu_qc_s5gen2_device_cmd_sync
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:650,1
    - Dst: fu_qc_s5gen2_device_cmd_abort
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:655,1
    - Dst: fu_qc_s5gen2_device_cmd_sync
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:657,1
    - Dst: fu_qc_s5gen2_device_cmd_start
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:661,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:665,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:666,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:667,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:670,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:674,1
    - Dst: fu_qc_resume_point_to_string
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:674,1
    - Dst: fu_qc_s5gen2_device_cmd_start_data
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:676,1
    - Dst: fu_qc_s5gen2_device_write_blocks
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:679,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:681,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:687,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:689,1
    - Dst: fu_qc_resume_point_to_string
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:689,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:693,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:704,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:706,1
    - Dst: fu_qc_resume_point_to_string
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:706,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:709,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:711,1
    - Dst: fu_qc_s5gen2_device_cmd_transfer_complete
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:712,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:713,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 5
    argNames:
    - device
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuFirmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 637
    functionDepth: 6
    functionLinenumber: 637
    functionLinenumberEnd: 719
    functionName: fu_qc_s5gen2_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_qc_s5gen2_device_cmd_sync
    - g_debug
    - fu_progress_add_step
    - fu_firmware_get_bytes
    - fu_qc_s5gen2_device_cmd_start_data
    - fu_qc_s5gen2_device_write_blocks
    - fu_qc_s5gen2_device_cmd_abort
    - fu_progress_step_done
    - fu_qc_s5gen2_device_cmd_req_connect
    - fu_device_retry_full
    - FU_QC_S5GEN2_DEVICE
    - fu_qc_resume_point_to_string
    - fu_qc_s5gen2_device_cmd_transfer_complete
    - fu_qc_s5gen2_device_cmd_start
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    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:724,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:725,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:726,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:727,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:728,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 721
    functionDepth: 3
    functionLinenumber: 721
    functionLinenumberEnd: 730
    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 *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_QC_S5GEN2_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:735,1
    - Dst: FU_QC_S5GEN2_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 741
    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:746,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:746,1
    - Dst: fu_device_set_remove_delay
      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
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:748,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:748,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:749,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:749,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:750,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:750,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:751,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:751,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:752,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:752,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:753,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:753,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:754,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:754,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:755,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQcS5gen2Device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 743
    functionDepth: 6
    functionLinenumber: 743
    functionLinenumberEnd: 756
    functionName: fu_qc_s5gen2_device_init
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_device_init(FuQcS5gen2Device *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - donor
    argTypes:
    - FuDevice*
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 758
    functionDepth: 9
    functionLinenumber: 758
    functionLinenumberEnd: 762
    functionName: fu_qc_s5gen2_device_incorporate_from_proxy
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
    functionUses: 0
    functionsReached:
    - fu_device_incorporate
    linkageType: ''
    returnType: void
    signature: void fu_qc_s5gen2_device_incorporate_from_proxy(FuDevice *device, FuDevice
      *donor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQcS5gen2DeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 777
    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_udev_subsystem
      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_add_device_gtype
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c:35,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c:36,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c:37,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: fu_qc_s5gen2_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - fu_plugin_get_context
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_context_add_quirk_key
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_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:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQcS5gen2PluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    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:38,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:39,1
    - Dst: fu_struct_qc_hid_data_transfer_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:39,1
    - Dst: fu_struct_qc_hid_data_transfer_set_payload_len
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:41,1
    - Dst: fu_struct_qc_hid_data_transfer_set_payload
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:42,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:45,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:45,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: 52
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 52
    functionName: fu_qc_s5gen2_hid_device_msg_out
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_qc_hid_data_transfer_set_payload
    - fu_struct_qc_hid_data_transfer_new
    - FU_QC_S5GEN2_HID_DEVICE
    - fu_hid_device_set_report
    - FU_HID_DEVICE
    - g_autoptr
    - fu_struct_qc_hid_data_transfer_set_payload_len
    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:61,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:63,1
    - Dst: fu_hid_device_get_report
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:65,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:65,1
    - Dst: fu_struct_qc_hid_response_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:74,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:78,1
    - Dst: fu_struct_qc_hid_response_get_payload_len
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:84,1
    - Dst: fu_struct_qc_hid_response_get_payload_len
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:88,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: 91
      start: 54
    functionDepth: 6
    functionLinenumber: 54
    functionLinenumberEnd: 91
    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_QC_S5GEN2_HID_DEVICE
    - fu_struct_qc_hid_response_get_payload_len
    - FU_HID_DEVICE
    - fu_memcpy_safe
    - g_autoptr
    - fu_struct_qc_hid_response_parse
    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:96,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:97,1
    - Dst: fu_struct_qc_hid_command_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:97,1
    - Dst: fu_struct_qc_hid_command_set_payload_len
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:99,1
    - Dst: fu_struct_qc_hid_command_set_payload
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:100,1
    - Dst: fu_hid_device_set_report
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:103,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:103,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: 110
      start: 93
    functionDepth: 6
    functionLinenumber: 93
    functionLinenumberEnd: 110
    functionName: fu_qc_s5gen2_hid_device_msg_cmd
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_qc_hid_command_new
    - fu_struct_qc_hid_command_set_payload
    - fu_hid_device_set_report
    - FU_QC_S5GEN2_HID_DEVICE
    - FU_HID_DEVICE
    - fu_struct_qc_hid_command_set_payload_len
    - 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:115,1
    - Dst: fu_struct_qc_disconnect_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:115,1
    - Dst: fu_qc_s5gen2_hid_device_msg_cmd
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - impl
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 7
    functionLinenumber: 112
    functionLinenumberEnd: 117
    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_qc_s5gen2_hid_device_msg_cmd
    - g_autoptr
    - fu_struct_qc_disconnect_req_new
    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:125,1
    - Dst: fu_struct_qc_connect_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:125,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:126,1
    - Dst: fu_qc_s5gen2_hid_device_msg_cmd
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:128,1
    - Dst: fu_qc_s5gen2_hid_device_msg_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:130,1
    - Dst: fu_struct_qc_update_status_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:132,1
    - Dst: fu_struct_qc_update_status_get_status
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:136,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:141,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:144,1
    - Dst: fu_qc_status_to_string
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - impl
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 119
    functionDepth: 7
    functionLinenumber: 119
    functionLinenumberEnd: 153
    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_status_to_string
    - fu_struct_qc_update_status_get_status
    - fu_qc_s5gen2_hid_device_msg_in
    - g_autoptr
    - fu_struct_qc_update_status_parse
    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:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - impl
    - data_sz
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 168
    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:173,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:175,1
    - Dst: fu_usb_device_get_interfaces
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:177,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:177,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:183,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:190,1
    - Dst: fu_usb_interface_get_class
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:191,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:192,1
    - Dst: fu_hid_device_set_interface
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:199,1
    - Dst: fu_hid_device_set_ep_addr_in
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:200,1
    - Dst: fu_hid_device_set_ep_addr_out
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:201,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 170
    functionDepth: 9
    functionLinenumber: 170
    functionLinenumberEnd: 209
    functionName: fu_qc_s5gen2_hid_device_probe
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_usb_device_get_interfaces
    - g_set_error_literal
    - fu_hid_device_set_interface
    - fu_usb_interface_get_class
    - FU_HID_DEVICE
    - fu_hid_device_set_ep_addr_out
    - fu_hid_device_set_ep_addr_in
    - FU_USB_DEVICE
    - g_autoptr
    - FU_DEVICE_CLASS
    - g_ptr_array_index
    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:217,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:220,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:220,1
    - Dst: fu_device_add_instance_u16
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:221,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:221,1
    - Dst: fu_usb_device_get_manufacturer_index
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:223,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:223,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:226,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:226,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:228,1
    - Dst: fu_usb_device_get_product_index
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:231,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:231,1
    - Dst: fu_usb_device_get_string_descriptor
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:234,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:234,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:236,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 211
    functionDepth: 5
    functionLinenumber: 211
    functionLinenumberEnd: 249
    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_usb_device_get_string_descriptor
    - fu_device_add_instance_str
    - fu_usb_device_get_manufacturer_index
    - fu_device_get_vid
    - fu_usb_device_get_product_index
    - fu_device_build_instance_id_full
    - FU_USB_DEVICE
    - FU_DEVICE_CLASS
    - 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:254,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:254,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:255,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:255,1
    - Dst: fu_device_set_battery_threshold
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:256,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQcS5gen2HidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 251
    functionDepth: 7
    functionLinenumber: 251
    functionLinenumberEnd: 257
    functionName: fu_qc_s5gen2_hid_device_init
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-hid-device.c
    functionUses: 0
    functionsReached:
    - fu_device_set_remove_delay
    - fu_device_set_battery_threshold
    - FU_DEVICE
    - fu_hid_device_add_flag
    - FU_HID_DEVICE
    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: 267
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 267
    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:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQcS5gen2HidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 275
    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_clear_object
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2BleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 65
    functionName: fu_qc_s5gen2_ble_device_notify_release
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - g_clear_object
    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:73,1
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:73,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2BleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 83
    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
    - FU_BLUEZ_DEVICE
    - g_debug
    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:91,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:91,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:92,1
    - Dst: fu_bluez_device_write
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:94,1
    - Dst: FU_BLUEZ_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:94,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: 98
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 98
    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
    - FU_BLUEZ_DEVICE
    - g_byte_array_new
    - g_byte_array_append
    - g_autoptr
    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:107,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:116,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: 119
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 119
    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:124,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:127,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: 121
    functionDepth: 4
    functionLinenumber: 121
    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_QC_S5GEN2_BLE_DEVICE
    - fu_struct_qc_gaia_v3_upgrade_control_cmd_new
    - fu_struct_qc_gaia_v3_upgrade_control_ack_parse
    - g_byte_array_append
    - g_autoptr
    - fu_qc_s5gen2_ble_device_send
    - fu_struct_qc_gaia_v3_upgrade_control_cmd_set_vendor_id
    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
    - g_malloc0
    - fu_memcpy_safe
    - FU_QC_S5GEN2_BLE_DEVICE
    - 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:206,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:207,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:209,1
    - Dst: fu_qc_s5gen2_ble_device_notify_acquire
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:211,1
    - Dst: fu_qc_s5gen2_ble_device_send
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:214,1
    - Dst: fu_qc_s5gen2_ble_device_recv
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:217,1
    - Dst: fu_struct_qc_gaia_v3_upgrade_connect_ack_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - impl
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 225
    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_notify_acquire
    - fu_struct_qc_gaia_v3_upgrade_connect_ack_parse
    - fu_qc_s5gen2_ble_device_recv
    - fu_struct_qc_gaia_v3_upgrade_connect_cmd_new
    - fu_struct_qc_gaia_v3_upgrade_connect_cmd_set_vendor_id
    - FU_QC_S5GEN2_BLE_DEVICE
    - g_autoptr
    - fu_qc_s5gen2_ble_device_send
    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:230,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_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:234,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:235,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:237,1
    - Dst: fu_qc_s5gen2_ble_device_send
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:239,1
    - Dst: fu_qc_s5gen2_ble_device_recv
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:242,1
    - Dst: fu_struct_qc_gaia_v3_upgrade_disconnect_ack_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:245,1
    - Dst: fu_qc_s5gen2_ble_device_notify_release
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - impl
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 227
    functionDepth: 4
    functionLinenumber: 227
    functionLinenumberEnd: 250
    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_notify_release
    - fu_struct_qc_gaia_v3_upgrade_disconnect_cmd_set_vendor_id
    - fu_struct_qc_gaia_v3_upgrade_disconnect_cmd_new
    - FU_QC_S5GEN2_BLE_DEVICE
    - fu_struct_qc_gaia_v3_upgrade_disconnect_ack_parse
    - g_autoptr
    - fu_qc_s5gen2_ble_device_send
    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:257,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - impl
    - data_sz
    - error
    argTypes:
    - FuQcS5gen2Impl*
    - gsize*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 269
    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:278,1
    - Dst: fu_struct_qc_gaia_v3_api_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:278,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:279,1
    - Dst: fu_struct_qc_gaia_v3_api_req_set_vendor_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:281,1
    - Dst: fu_qc_s5gen2_ble_device_send
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:283,1
    - Dst: fu_qc_s5gen2_ble_device_recv
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:286,1
    - Dst: fu_struct_qc_gaia_v3_api_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:289,1
    - Dst: fu_struct_qc_gaia_v3_api_get_major
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:293,1
    - Dst: fu_struct_qc_gaia_v3_api_get_minor
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:294,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:297,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2BleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 307
    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_debug
    - fu_struct_qc_gaia_v3_api_req_new
    - g_set_error
    - fu_struct_qc_gaia_v3_api_req_set_vendor_id
    - fu_struct_qc_gaia_v3_api_parse
    - fu_struct_qc_gaia_v3_api_get_major
    - g_autoptr
    - fu_qc_s5gen2_ble_device_send
    - fu_struct_qc_gaia_v3_api_get_minor
    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:315,1
    - Dst: fu_struct_qc_gaia_v3_supported_features_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:316,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:317,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:319,1
    - Dst: fu_struct_qc_gaia_v3_supported_features_req_set_command
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:321,1
    - Dst: fu_qc_s5gen2_ble_device_send
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:326,1
    - Dst: fu_qc_s5gen2_ble_device_recv
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:329,1
    - Dst: fu_struct_qc_gaia_v3_supported_features_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:332,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:338,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:352,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:356,1
    - Dst: fu_struct_qc_gaia_v3_supported_features_get_more_features
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:364,1
    - Dst: fu_qc_s5gen2_ble_device_get_features
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:365,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - self
    - next
    - error
    argTypes:
    - FuQcS5gen2BleDevice*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 310
    functionDepth: 4
    functionLinenumber: 310
    functionLinenumberEnd: 368
    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
    - g_debug
    - fu_struct_qc_gaia_v3_supported_features_req_set_command
    - fu_struct_qc_gaia_v3_supported_features_parse
    - g_set_error_literal
    - fu_struct_qc_gaia_v3_supported_features_req_new
    - fu_qc_s5gen2_ble_device_get_features
    - fu_struct_qc_gaia_v3_supported_features_req_set_vendor_id
    - fu_struct_qc_gaia_v3_supported_features_get_more_features
    - g_autoptr
    - fu_qc_s5gen2_ble_device_send
    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:375,1
    - Dst: fu_struct_qc_gaia_v3_serial_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:375,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:376,1
    - Dst: fu_struct_qc_gaia_v3_serial_req_set_vendor_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:379,1
    - Dst: fu_qc_s5gen2_ble_device_send
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:381,1
    - Dst: fu_qc_s5gen2_ble_device_recv
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:384,1
    - Dst: fu_struct_qc_gaia_v3_serial_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:388,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:392,1
    - Dst: fu_device_set_serial
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:398,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2BleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 370
    functionDepth: 4
    functionLinenumber: 370
    functionLinenumberEnd: 401
    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_memstrsafe
    - fu_struct_qc_gaia_v3_serial_parse
    - fu_device_set_serial
    - FU_DEVICE
    - fu_struct_qc_gaia_v3_serial_req_set_vendor_id
    - fu_struct_qc_gaia_v3_serial_req_new
    - g_autoptr
    - fu_qc_s5gen2_ble_device_send
    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:408,1
    - Dst: fu_struct_qc_gaia_v3_variant_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:408,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:409,1
    - Dst: fu_struct_qc_gaia_v3_variant_req_set_vendor_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:412,1
    - Dst: fu_qc_s5gen2_ble_device_send
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:414,1
    - Dst: fu_qc_s5gen2_ble_device_recv
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:417,1
    - Dst: fu_struct_qc_gaia_v3_variant_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:422,1
    - Dst: fu_memstrsafe
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:426,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:432,1
    - Dst: fu_device_add_instance_str
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:437,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:437,1
    - Dst: fu_device_build_instance_id_full
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:438,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:438,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2BleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 403
    functionDepth: 5
    functionLinenumber: 403
    functionLinenumberEnd: 447
    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_memstrsafe
    - fu_struct_qc_gaia_v3_variant_req_set_vendor_id
    - g_debug
    - fu_device_add_instance_str
    - FU_DEVICE
    - fu_device_build_instance_id_full
    - g_autoptr
    - fu_qc_s5gen2_ble_device_send
    - fu_struct_qc_gaia_v3_variant_parse
    - fu_struct_qc_gaia_v3_variant_req_new
    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:454,1
    - Dst: fu_struct_qc_gaia_v3_register_notification_cmd_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:455,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:456,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:459,1
    - Dst: fu_qc_s5gen2_ble_device_send
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:461,1
    - Dst: fu_qc_s5gen2_ble_device_recv
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:464,1
    - Dst: fu_struct_qc_gaia_v3_register_notification_ack_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuQcS5gen2BleDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 449
    functionDepth: 4
    functionLinenumber: 449
    functionLinenumberEnd: 477
    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_struct_qc_gaia_v3_register_notification_cmd_set_vendor_id
    - fu_struct_qc_gaia_v3_register_notification_ack_parse
    - fu_struct_qc_gaia_v3_register_notification_cmd_new
    - g_autoptr
    - fu_qc_s5gen2_ble_device_send
    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:486,1
    - Dst: fu_struct_qc_gaia_v3_set_transport_info_req_new
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:487,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:488,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:490,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:491,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:492,1
    - Dst: fu_qc_s5gen2_ble_device_send
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:494,1
    - Dst: fu_qc_s5gen2_ble_device_recv
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:497,1
    - Dst: fu_struct_qc_gaia_v3_set_transport_info_parse
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:500,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - version
    - error
    argTypes:
    - FuQcS5gen2BleDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 479
    functionDepth: 4
    functionLinenumber: 479
    functionLinenumberEnd: 505
    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_struct_qc_gaia_v3_set_transport_info_parse
    - fu_qc_s5gen2_ble_device_recv
    - fu_struct_qc_gaia_v3_set_transport_info_req_new
    - fu_struct_qc_gaia_v3_set_transport_info_req_set_value
    - fu_struct_qc_gaia_v3_set_transport_info_req_set_key
    - fu_struct_qc_gaia_v3_set_transport_info_req_set_vendor_id
    - g_autoptr
    - fu_qc_s5gen2_ble_device_send
    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:510,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:511,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:512,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 507
    functionDepth: 3
    functionLinenumber: 507
    functionLinenumberEnd: 514
    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:519,1
    - Dst: fu_qc_s5gen2_ble_device_notify_release
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:521,1
    - Dst: fu_qc_s5gen2_ble_device_notify_acquire
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 516
    functionDepth: 4
    functionLinenumber: 516
    functionLinenumberEnd: 525
    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_notify_release
    - FU_QC_S5GEN2_BLE_DEVICE
    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:530,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:533,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:537,1
    - Dst: fu_qc_s5gen2_ble_device_get_api
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:545,1
    - Dst: fu_qc_s5gen2_ble_device_get_features
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:548,1
    - Dst: fu_qc_s5gen2_ble_device_get_serial
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:551,1
    - Dst: fu_qc_s5gen2_ble_device_get_variant
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:554,1
    - Dst: fu_qc_s5gen2_ble_device_set_transport_protocol
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:558,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:566,1
    - Dst: fu_device_add_vendor_id
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:567,1
    - Dst: fu_qc_s5gen2_ble_device_register_notification
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:569,1
    - Dst: fu_qc_s5gen2_ble_device_notify_release
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:572,1
    - Dst: FU_QC_S5GEN2_BLE_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:572,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 527
    functionDepth: 6
    functionLinenumber: 527
    functionLinenumberEnd: 573
    functionName: fu_qc_s5gen2_ble_device_probe
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_qc_s5gen2_ble_device_notify_release
    - FU_QC_S5GEN2_BLE_DEVICE
    - fu_qc_s5gen2_ble_device_get_variant
    - fu_device_retry_full
    - fu_qc_s5gen2_ble_device_get_serial
    - fu_qc_s5gen2_ble_device_get_features
    - g_strdup_printf
    - fu_device_add_vendor_id
    - fu_qc_s5gen2_ble_device_get_api
    - fu_qc_s5gen2_ble_device_register_notification
    - fu_qc_s5gen2_ble_device_set_transport_protocol
    - FU_DEVICE_CLASS
    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:581,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:584,1
    - Dst: fu_strtoull
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:585,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - device
    - key
    - value
    - error
    argTypes:
    - FuDevice*
    - gchar*
    - gchar*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 597
    functionName: fu_qc_s5gen2_ble_device_set_quirk_kv
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - fu_strtoull
    - g_strcmp0
    - g_set_error_literal
    - FU_QC_S5GEN2_BLE_DEVICE
    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:606,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:606,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:607,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:607,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:608,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuQcS5gen2BleDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 609
    functionName: fu_qc_s5gen2_ble_device_init
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_device_set_version_format
    - fu_device_set_remove_delay
    - fu_device_add_protocol
    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:614,1
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:616,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 618
    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
    - G_OBJECT_CLASS
    - FU_QC_S5GEN2_BLE_DEVICE
    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: 628
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 628
    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:633,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuQcS5gen2BleDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 639
    functionName: fu_qc_s5gen2_ble_device_class_init
    functionSourceFile: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-ble-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_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:
    - g_return_val_if_fail
    - g_set_error_literal
    - FU_IS_QC_S5GEN2_IMPL
    - FU_QC_S5GEN2_IMPL_GET_IFACE
    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:
    - g_return_val_if_fail
    - g_set_error_literal
    - FU_IS_QC_S5GEN2_IMPL
    - FU_QC_S5GEN2_IMPL_GET_IFACE
    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:
    - g_return_val_if_fail
    - g_set_error_literal
    - FU_IS_QC_S5GEN2_IMPL
    - FU_QC_S5GEN2_IMPL_GET_IFACE
    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:
    - g_return_val_if_fail
    - g_set_error_literal
    - FU_IS_QC_S5GEN2_IMPL
    - FU_QC_S5GEN2_IMPL_GET_IFACE
    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:
    - g_return_val_if_fail
    - g_set_error_literal
    - FU_IS_QC_S5GEN2_IMPL
    - FU_QC_S5GEN2_IMPL_GET_IFACE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_qc_s5gen2_impl_data_size(FuQcS5gen2Impl *self, gsize *data_sz,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:21,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:21,1
    - Dst: fu_device_set_id
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:23,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:23,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:24,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:24,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:25,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:25,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:26,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:26,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:27,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:27,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:28,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:28,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:29,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:29,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:30,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:30,1
    - Dst: fu_device_set_details_url
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:31,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:31,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:32,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:32,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:34,1
    - Dst: fu_device_set_update_error
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:38,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuStarlabsCorebootDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 18
    functionDepth: 6
    functionLinenumber: 18
    functionLinenumberEnd: 39
    functionName: fu_starlabs_coreboot_device_init
    functionSourceFile: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_details_url
    - fu_device_add_private_flag
    - fu_device_add_icon
    - fu_device_set_id
    - fu_device_set_update_error
    - FU_DEVICE
    - fu_device_set_name
    - fu_device_set_summary
    - fu_device_set_vendor
    - g_string_new
    - g_string_append_printf
    - fu_device_set_version_format
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_starlabs_coreboot_device_init(FuStarlabsCorebootDevice *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_STARLABS_COREBOOT_DEVICE
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:44,1
    - Dst: fu_device_get_context
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:45,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:45,1
    - Dst: fu_context_get_hwid_guids
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:46,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:47,1
    - Dst: fu_device_set_vendor
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:49,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:49,1
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:50,1
    - Dst: strlen
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:52,1
    - Dst: g_str_has_prefix
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:52,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:54,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:54,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:57,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:58,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:58,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 41
    functionDepth: 5
    functionLinenumber: 41
    functionLinenumberEnd: 63
    functionName: fu_starlabs_coreboot_device_constructed
    functionSourceFile: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c
    functionUses: 0
    functionsReached:
    - g_ptr_array_index
    - fu_device_add_instance_id
    - fu_device_set_version
    - fu_device_get_context
    - G_OBJECT_CLASS
    - FU_DEVICE
    - fu_device_set_vendor
    - fu_context_get_hwid_value
    - strlen
    - fu_context_get_hwid_guids
    - g_str_has_prefix
    - FU_STARLABS_COREBOOT_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_starlabs_coreboot_device_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuStarlabsCorebootDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: fu_starlabs_coreboot_device_class_init
    functionSourceFile: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_starlabs_coreboot_device_class_init(FuStarlabsCorebootDeviceClass
      *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: 18
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: fu_test_bios_plugin_device_added_cb
    functionSourceFile: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_test_bios_plugin_device_added_cb(FuPlugin *plugin, FuDevice
      *device, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:23,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:23,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:24,1
    - Dst: fu_context_get_hwids
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:25,1
    - Dst: fu_context_add_flag
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:27,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:28,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:29,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:30,1
    - Dst: fu_hwids_add_value
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:32,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:34,1
    - Dst: fu_starlabs_coreboot_plugin_get_type
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:34,1
    - Dst: fu_plugin_remove_flag
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:35,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - manufacturer
    - bios_version
    argTypes:
    - gchar*
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 37
    functionName: fu_starlabs_coreboot_plugin_new
    functionSourceFile: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_context_get_hwids
    - fu_context_add_flag
    - fu_plugin_new_from_gtype
    - fu_starlabs_coreboot_plugin_get_type
    - fu_plugin_remove_flag
    - g_steal_pointer
    - fu_hwids_add_value
    - fu_context_new_full
    - g_autoptr
    linkageType: ''
    returnType: FuPlugin
    signature: 'FuPlugin *

      fu_starlabs_coreboot_plugin_new(const gchar *manufacturer, const gchar *bios_version)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:45,1
    - Dst: fu_starlabs_coreboot_plugin_new
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:45,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:46,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:46,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:47,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:49,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:50,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:51,1
    - Dst: g_signal_connect
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:53,1
    - Dst: G_CALLBACK
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:55,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:57,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:58,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:59,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:60,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:61,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:61,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:62,1
    - Dst: fu_device_get_summary
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:62,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:63,1
    - Dst: fu_device_get_details_url
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:63,1
    - Dst: g_assert_cmpstr
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:64,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:64,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:65,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:66,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:67,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:67,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:68,1
    - Dst: g_strstr_len
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:69,1
    - Dst: fu_device_get_update_error
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:69,1
    - Dst: g_signal_handler_disconnect
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 39
    functionDepth: 4
    functionLinenumber: 39
    functionLinenumberEnd: 71
    functionName: fu_bios_plugin_starlabs_coreboot_legacy_func
    functionSourceFile: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_device_get_details_url
    - g_assert_nonnull
    - fu_progress_new
    - fu_device_get_name
    - fu_starlabs_coreboot_plugin_new
    - g_signal_connect
    - fu_plugin_runner_startup
    - fu_device_get_update_error
    - fu_plugin_runner_coldplug
    - g_strstr_len
    - fu_device_get_summary
    - g_signal_handler_disconnect
    - g_assert_no_error
    - fu_device_has_private_flag
    - fu_device_get_version
    - G_CALLBACK
    - g_assert_true
    - g_assert_cmpstr
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_bios_plugin_starlabs_coreboot_legacy_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:78,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:79,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:79,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:80,1
    - Dst: fu_starlabs_coreboot_plugin_new
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:82,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:83,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:84,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:85,1
    - Dst: fu_plugin_runner_coldplug
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:86,1
    - Dst: g_assert_error
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:87,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:88,1
    - Dst: fu_plugin_get_devices
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:89,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 73
    functionDepth: 4
    functionLinenumber: 73
    functionLinenumberEnd: 91
    functionName: fu_bios_plugin_starlabs_coreboot_supported_func
    functionSourceFile: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fu_starlabs_coreboot_plugin_new
    - fu_plugin_runner_startup
    - fu_plugin_get_devices
    - g_assert_error
    - g_assert_no_error
    - g_assert_cmpint
    - fu_progress_new
    - g_assert_false
    - g_assert_true
    - g_autoptr
    - fu_plugin_runner_coldplug
    linkageType: ''
    returnType: void
    signature: void fu_bios_plugin_starlabs_coreboot_supported_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_test_init
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:96,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:98,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:100,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: main
    functionSourceFile: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c
    functionUses: 5
    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_plugin_add_flag
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.c:22,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuStarlabsCorebootPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: fu_starlabs_coreboot_plugin_init
    functionSourceFile: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_starlabs_coreboot_plugin_init(FuStarlabsCorebootPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.c:29,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: fu_starlabs_coreboot_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_device_gtype
    - FU_PLUGIN
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_starlabs_coreboot_plugin_constructed(GObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.c:38,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.c:39,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.c:41,1
    - Dst: fu_version_compare
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.c:42,1
    - Dst: fu_device_get_version
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.c:42,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.c:45,1
    - Dst: fu_plugin_add_device
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - plugin
    - progress
    - error
    argTypes:
    - FuPlugin*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 53
    functionName: fu_starlabs_coreboot_plugin_coldplug
    functionSourceFile: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - fu_version_compare
    - fu_plugin_get_context
    - fu_device_get_version
    - g_object_new
    - g_autoptr
    - fu_plugin_add_device
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_starlabs_coreboot_plugin_coldplug(FuPlugin *plugin, FuProgress
      *progress, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuStarlabsCorebootPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: fu_starlabs_coreboot_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_starlabs_coreboot_plugin_class_init(FuStarlabsCorebootPluginClass
      *klass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_context_get_hwid_value
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:25,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:25,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:26,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-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: 36
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 36
    functionName: fu_hp_bioscfg_plugin_startup
    functionSourceFile: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-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_hp_bioscfg_plugin_startup(FuPlugin *plugin, FuProgress
      *progress, GError **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:42,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:43,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:44,1
    - Dst: fu_plugin_has_flag
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:46,1
    - Dst: fu_plugin_security_attr_new
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:49,1
    - Dst: fu_security_attr_add_bios_target_value
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:50,1
    - Dst: fwupd_security_attr_set_result_success
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:51,1
    - Dst: fu_security_attrs_append
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:52,1
    - Dst: fu_context_get_bios_settings
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:55,1
    - Dst: fu_bios_settings_is_supported
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:56,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:57,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:58,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:63,1
    - Dst: fu_context_get_bios_setting
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:65,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:67,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:72,1
    - Dst: fwupd_bios_setting_get_current_value
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:72,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:73,1
    - Dst: fwupd_security_attr_set_result
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:74,1
    - Dst: fwupd_security_attr_add_flag
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:78,1
    - Dst: fwupd_security_attr_add_obsolete
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - plugin
    - attrs
    argTypes:
    - FuPlugin*
    - FuSecurityAttrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 80
    functionName: fu_hp_bioscfg_plugin_add_security_attrs
    functionSourceFile: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c
    functionUses: 0
    functionsReached:
    - g_strcmp0
    - fwupd_security_attr_add_flag
    - fwupd_security_attr_set_result
    - fu_context_get_bios_setting
    - fu_plugin_has_flag
    - fu_plugin_security_attr_new
    - fu_bios_settings_is_supported
    - fwupd_bios_setting_get_current_value
    - fu_security_attr_add_bios_target_value
    - fu_plugin_get_context
    - fu_context_get_bios_settings
    - fwupd_security_attr_set_result_success
    - fu_security_attrs_append
    - g_autoptr
    - fwupd_security_attr_add_obsolete
    linkageType: ''
    returnType: void
    signature: void fu_hp_bioscfg_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs
      *attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuHpBiosCfgPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: fu_hp_bioscfg_plugin_init
    functionSourceFile: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_hp_bioscfg_plugin_init(FuHpBiosCfgPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHpBiosCfgPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: fu_hp_bioscfg_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_hp_bioscfg_plugin_class_init(FuHpBiosCfgPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:27,1
    - Dst: fu_context_new_full
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:27,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:28,1
    - Dst: fu_progress_new
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:29,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:31,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:32,1
    - Dst: fu_context_load_quirks
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:34,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:37,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:38,1
    - Dst: fu_context_load_hwinfo
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:39,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:40,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:41,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:44,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:49,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:51,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:52,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:53,1
    - Dst: fu_plugin_new_from_gtype
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:55,1
    - Dst: fu_hp_bioscfg_plugin_get_type
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:55,1
    - Dst: fu_plugin_runner_startup
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:56,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:57,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:58,1
    - Dst: fu_plugin_get_context
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 21
    functionDepth: 10
    functionLinenumber: 21
    functionLinenumberEnd: 60
    functionName: fu_test_self_init
    functionSourceFile: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c
    functionUses: 1
    functionsReached:
    - fu_context_reload_bios_settings
    - fu_context_set_path
    - fu_plugin_new_from_gtype
    - fu_plugin_runner_startup
    - g_assert_no_error
    - fu_plugin_get_context
    - fu_progress_new
    - fu_context_new_full
    - fu_context_load_quirks
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    - fu_hp_bioscfg_plugin_get_type
    - fu_context_load_hwinfo
    linkageType: ''
    returnType: void
    signature: void fu_test_self_init(FuTest *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:67,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:67,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:68,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:69,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:70,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:76,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:77,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:78,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:79,1
    - Dst: fu_plugin_runner_add_security_attrs
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:81,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:85,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:86,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:87,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:87,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:90,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 62
    functionDepth: 9
    functionLinenumber: 62
    functionLinenumberEnd: 91
    functionName: fu_plugin_hp_bioscfg_surestart_enabled
    functionSourceFile: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_get_result
    - fu_context_reload_bios_settings
    - fwupd_security_attr_has_flag
    - fu_context_set_path
    - g_assert_nonnull
    - fu_security_attrs_new
    - g_assert_no_error
    - g_assert_cmpint
    - fu_security_attrs_get_by_appstream_id
    - g_assert_true
    - g_test_build_filename
    - fu_plugin_runner_add_security_attrs
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_plugin_hp_bioscfg_surestart_enabled(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:98,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:98,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:99,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:100,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:101,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:107,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:108,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:109,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:110,1
    - Dst: fu_plugin_runner_add_security_attrs
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:112,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:116,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:117,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:118,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:118,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:121,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 93
    functionDepth: 9
    functionLinenumber: 93
    functionLinenumberEnd: 122
    functionName: fu_plugin_hp_bioscfg_surestart_enabled_legacy
    functionSourceFile: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_get_result
    - fu_context_reload_bios_settings
    - fwupd_security_attr_has_flag
    - fu_context_set_path
    - g_assert_nonnull
    - fu_security_attrs_new
    - g_assert_no_error
    - g_assert_cmpint
    - fu_security_attrs_get_by_appstream_id
    - g_assert_true
    - g_test_build_filename
    - fu_plugin_runner_add_security_attrs
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_plugin_hp_bioscfg_surestart_enabled_legacy(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:129,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:129,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:131,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:132,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:138,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:140,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:141,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:142,1
    - Dst: fu_plugin_runner_add_security_attrs
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:144,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:148,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:149,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:150,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:150,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:153,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:154,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:155,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 124
    functionDepth: 9
    functionLinenumber: 124
    functionLinenumberEnd: 156
    functionName: fu_plugin_hp_bioscfg_surestart_disabled
    functionSourceFile: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_get_result
    - fu_context_reload_bios_settings
    - fwupd_security_attr_has_flag
    - fu_context_set_path
    - g_assert_nonnull
    - fu_security_attrs_new
    - g_assert_no_error
    - g_assert_cmpint
    - fu_security_attrs_get_by_appstream_id
    - g_assert_false
    - g_assert_true
    - g_test_build_filename
    - fu_plugin_runner_add_security_attrs
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_plugin_hp_bioscfg_surestart_disabled(gconstpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:163,1
    - Dst: fu_security_attrs_new
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:163,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:164,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:165,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:166,1
    - Dst: fu_context_set_path
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:172,1
    - Dst: fu_context_reload_bios_settings
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:174,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:175,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:176,1
    - Dst: fu_plugin_runner_add_security_attrs
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:178,1
    - Dst: fu_security_attrs_get_by_appstream_id
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:181,1
    - Dst: g_assert_nonnull
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:182,1
    - Dst: g_assert_cmpint
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:183,1
    - Dst: fwupd_security_attr_get_result
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:183,1
    - Dst: g_assert_false
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:186,1
    - Dst: fwupd_security_attr_has_flag
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gconstpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 158
    functionDepth: 9
    functionLinenumber: 158
    functionLinenumberEnd: 187
    functionName: fu_plugin_hp_bioscfg_surestart_not_available
    functionSourceFile: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c
    functionUses: 0
    functionsReached:
    - fwupd_security_attr_get_result
    - fu_context_reload_bios_settings
    - fwupd_security_attr_has_flag
    - fu_context_set_path
    - g_assert_nonnull
    - fu_security_attrs_new
    - g_assert_no_error
    - g_assert_cmpint
    - fu_security_attrs_get_by_appstream_id
    - g_assert_false
    - g_assert_true
    - g_test_build_filename
    - fu_plugin_runner_add_security_attrs
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_plugin_hp_bioscfg_surestart_not_available(gconstpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_object_unref
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:193,1
    - Dst: g_free
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: fu_test_self_free
    functionSourceFile: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_object_unref
    - g_free
    linkageType: ''
    returnType: void
    signature: void fu_test_self_free(FuTest *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:205,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:205,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:207,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:208,1
    - Dst: fu_test_self_init
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:209,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:210,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:213,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:216,1
    - Dst: g_test_add_data_func
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:219,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 223
    functionName: main
    functionSourceFile: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_new0
    - g_setenv
    - g_test_init
    - fu_test_self_init
    - g_test_add_data_func
    - g_test_run
    - g_autoptr
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:60,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:61,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:65,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:73,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:79,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:80,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:84,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:91,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:92,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - header
    - info
    - error
    argTypes:
    - FuWacomUsbWtaFileHeader*
    - FuWacomUsbWtaInfo*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 55
    functionDepth: 4
    functionLinenumber: 55
    functionLinenumberEnd: 96
    functionName: fu_wacom_usb_module_touch_id7_read_file_header
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    - g_set_error_literal
    - g_prefix_error_literal
    - fu_size_checked_inc
    - fu_memread_uint16_safe
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_module_touch_id7_read_file_header(FuWacomUsbWtaFileHeader
      *header,\n\t\t\t\t\t       FuWacomUsbWtaInfo *info,\n\t\t\t\t\t       GError
      **error)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:124,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:131,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:132,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:136,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:145,1
    - Dst: fu_memread_uint8_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:149,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:153,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - header
    - info
    - error
    argTypes:
    - FuWacomUsbWtaRecordHeader*
    - FuWacomUsbWtaInfo*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 164
    functionName: fu_wacom_usb_module_touch_id7_read_record_header
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c
    functionUses: 0
    functionsReached:
    - fu_size_checked_inc
    - fu_memread_uint8_safe
    - fu_memread_uint32_safe
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_module_touch_id7_read_record_header(FuWacomUsbWtaRecordHeader
      *header,\n\t\t\t\t\t\t FuWacomUsbWtaInfo *info,\n\t\t\t\t\t\t GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:185,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - header
    - cmd
    - op_id
    - buf
    argTypes:
    - FuWacomUsbWtaRecordHeader*
    - guint8
    - guint16
    - guint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 187
    functionName: fu_wacom_usb_module_touch_id7_generate_command
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint32
    linkageType: ''
    returnType: void
    signature: "void fu_wacom_usb_module_touch_id7_generate_command(const FuWacomUsbWtaRecordHeader
      *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: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:202,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:203,1
    - Dst: fu_struct_wta_block_header_parse
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:206,1
    - Dst: fu_struct_wta_block_header_get_block_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:210,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:211,1
    - Dst: fu_struct_wta_block_header_get_block_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:215,1
    - Dst: fu_chunk_array_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:218,1
    - Dst: fu_struct_wta_block_header_get_block_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:219,1
    - Dst: fu_struct_wta_block_header_get_block_start
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:220,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:229,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:231,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:236,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:237,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:237,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:238,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:239,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:240,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:241,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:242,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:245,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:249,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:257,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:257,1
    - Dst: fu_struct_wta_block_header_get_block_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 5
    argNames:
    - self
    - info
    - progress
    - record_hdr
    - error
    argTypes:
    - FuWacomUsbModule*
    - FuWacomUsbWtaInfo*
    - FuProgress*
    - FuWacomUsbWtaRecordHeader*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 266
    functionName: fu_wacom_usb_module_touch_id7_write_block
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c
    functionUses: 0
    functionsReached:
    - fu_struct_wta_block_header_parse
    - fu_chunk_array_new
    - g_bytes_new
    - g_set_error
    - fu_chunk_get_data_sz
    - fu_progress_get_child
    - fu_wacom_usb_module_set_feature
    - g_prefix_error
    - fu_struct_wta_block_header_get_block_start
    - memcpy
    - fu_chunk_get_address
    - fu_chunk_get_data
    - fu_progress_set_percentage_full
    - g_autoptr
    - fu_struct_wta_block_header_get_block_size
    - g_ptr_array_index
    - fu_memwrite_uint32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_module_touch_id7_write_block(FuWacomUsbModule
      *self,\n\t\t\t\t\t  FuWacomUsbWtaInfo *info,\n\t\t\t\t\t  FuProgress *progress,\n\t\t\t\t\t
      \ FuWacomUsbWtaRecordHeader *record_hdr,\n\t\t\t\t\t  GError **error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:285,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:286,1
    - Dst: fu_wacom_usb_module_touch_id7_read_record_header
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:289,1
    - Dst: fu_wacom_usb_module_touch_id7_generate_command
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:293,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:297,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:298,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:301,1
    - Dst: fu_wacom_usb_module_touch_id7_write_block
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:311,1
    - Dst: fu_wacom_usb_module_touch_id7_generate_command
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:320,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:325,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:326,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:329,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - self
    - info
    - progress
    - error
    argTypes:
    - FuWacomUsbModule*
    - FuWacomUsbWtaInfo*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 278
    functionDepth: 5
    functionLinenumber: 278
    functionLinenumberEnd: 338
    functionName: fu_wacom_usb_module_touch_id7_write_record
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_module_touch_id7_generate_command
    - g_bytes_new
    - fu_wacom_usb_module_touch_id7_write_block
    - fu_wacom_usb_module_set_feature
    - fu_wacom_usb_module_touch_id7_read_record_header
    - g_autoptr
    - fu_progress_get_child
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_module_touch_id7_write_record(FuWacomUsbModule
      *self,\n\t\t\t\t\t   FuWacomUsbWtaInfo *info,\n\t\t\t\t\t   FuProgress *progress,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_USB_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:355,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:356,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:361,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:362,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:363,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:364,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:365,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:367,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:367,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:369,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:374,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:377,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:382,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:386,1
    - Dst: fu_wacom_usb_module_touch_id7_read_file_header
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:388,1
    - Dst: fu_wacom_usb_module_touch_id7_write_record
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:393,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:399,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:402,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:405,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:410,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: 414
      start: 348
    functionDepth: 6
    functionLinenumber: 348
    functionLinenumberEnd: 414
    functionName: fu_wacom_usb_module_touch_id7_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c
    functionUses: 0
    functionsReached:
    - g_debug
    - fu_progress_add_step
    - fu_firmware_get_bytes
    - g_bytes_get_data
    - fu_progress_add_flag
    - fu_wacom_usb_module_set_feature
    - fu_progress_step_done
    - fu_firmware_get_addr
    - FU_WACOM_USB_MODULE
    - fu_wacom_usb_module_touch_id7_write_record
    - fu_wacom_usb_module_touch_id7_read_file_header
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_module_touch_id7_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-wacom-usb-module-touch-id7.c:419,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:419,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:420,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomUsbModuleTouchId7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 416
    functionDepth: 6
    functionLinenumber: 416
    functionLinenumberEnd: 421
    functionName: fu_wacom_usb_module_touch_id7_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_install_duration
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_touch_id7_init(FuWacomUsbModuleTouchId7 *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomUsbModuleTouchId7Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 428
    functionName: fu_wacom_usb_module_touch_id7_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_touch_id7_class_init(FuWacomUsbModuleTouchId7Class
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 441
    functionName: fu_wacom_usb_module_touch_id7_new
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuWacomUsbModule
    signature: 'FuWacomUsbModule *

      fu_wacom_usb_module_touch_id7_new(FuDevice *proxy)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:21,1
    - Dst: fu_wacom_usb_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_wacom_usb_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: 5
    functionLinenumber: 16
    functionLinenumberEnd: 51
    functionName: fu_wacom_usb_firmware_parse_func
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_true
    - fu_firmware_parse_file
    - fu_wacom_usb_firmware_new
    - g_bytes_get_data
    - fu_wacom_usb_buffer_dump
    - g_assert_nonnull
    - g_assert_no_error
    - fu_firmware_get_image_by_id
    - g_file_test
    - g_bytes_get_size
    - g_test_skip
    - g_file_new_for_path
    - g_test_build_filename
    - g_autoptr
    - fu_firmware_write_chunk
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_firmware_parse_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:57,1
    - Dst: g_test_build_filename
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:59,1
    - Dst: fu_firmware_roundtrip_from_filename
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:60,1
    - Dst: g_assert_no_error
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:64,1
    - Dst: g_assert_true
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 7
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: fu_wacom_usb_firmware_xml_func
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-self-test.c
    functionUses: 0
    functionsReached:
    - g_assert_no_error
    - fu_firmware_roundtrip_from_filename
    - g_assert_true
    - g_test_build_filename
    - g_autoptr
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_firmware_xml_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_setenv
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:71,1
    - Dst: g_test_init
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:72,1
    - Dst: g_setenv
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:75,1
    - Dst: g_type_ensure
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:76,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:77,1
    - Dst: g_test_add_func
      Src: /src/fwupd/plugins/wacom-usb/fu-self-test.c:78,1
    - Dst: g_test_run
      Src: /src/fwupd/plugins/wacom-usb/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: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: main
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-self-test.c
    functionUses: 5
    functionsReached:
    - g_setenv
    - g_test_add_func
    - 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_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:45,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:45,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:46,1
    - Dst: fu_composite_input_stream_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:46,1
    - Dst: fu_composite_input_stream_add_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:47,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:47,1
    - Dst: fu_composite_input_stream_add_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:51,1
    - Dst: FU_COMPOSITE_INPUT_STREAM
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:51,1
    - Dst: fu_input_stream_compute_crc32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - buf
    - stream
    - crc
    - error
    argTypes:
    - GByteArray*
    - GInputStream*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 59
    functionName: fu_wacom_usb_module_bluetooth_id9_calculate_crc32
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
    functionUses: 0
    functionsReached:
    - fu_composite_input_stream_add_bytes
    - fu_composite_input_stream_new
    - g_bytes_new
    - fu_composite_input_stream_add_stream
    - FU_COMPOSITE_INPUT_STREAM
    - g_autoptr
    - fu_input_stream_compute_crc32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_module_bluetooth_id9_calculate_crc32(GByteArray
      *buf,\n\t\t\t\t\t\t  GInputStream *stream,\n\t\t\t\t\t\t  guint32 *crc,\n\t\t\t\t\t\t
      \ GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:70,1
    - Dst: fu_struct_wacom_usb_id9_loader_cmd_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:71,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:72,1
    - Dst: fu_struct_wacom_usb_id9_spi_cmd_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:72,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:73,1
    - Dst: fu_struct_wacom_usb_id9_unknown_cmd_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:75,1
    - Dst: fu_input_stream_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:77,1
    - Dst: fu_struct_wacom_usb_id9_unknown_cmd_set_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:79,1
    - Dst: fu_struct_wacom_usb_id9_spi_cmd_set_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:81,1
    - Dst: fu_struct_wacom_usb_id9_spi_cmd_set_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:84,1
    - Dst: fu_struct_wacom_usb_id9_loader_cmd_set_command
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:87,1
    - Dst: fu_struct_wacom_usb_id9_loader_cmd_set_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:88,1
    - Dst: fu_wacom_usb_module_bluetooth_id9_calculate_crc32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:91,1
    - Dst: fu_struct_wacom_usb_id9_loader_cmd_set_crc
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:93,1
    - Dst: fu_struct_wacom_usb_id9_loader_cmd_set_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:94,1
    - Dst: fu_struct_wacom_usb_id9_loader_cmd_validate
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:97,1
    - Dst: fu_struct_wacom_usb_id9_loader_cmd_to_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:103,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - stream
    - full_erase
    - error
    argTypes:
    - GInputStream*
    - gboolean
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 105
    functionName: fu_wacom_usb_module_bluetooth_id9_get_startcmd
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
    functionUses: 0
    functionsReached:
    - fu_struct_wacom_usb_id9_loader_cmd_new
    - fu_struct_wacom_usb_id9_loader_cmd_set_crc
    - fu_wacom_usb_module_bluetooth_id9_calculate_crc32
    - fu_struct_wacom_usb_id9_spi_cmd_set_data
    - fu_struct_wacom_usb_id9_unknown_cmd_set_size
    - fu_chunk_bytes_new
    - fu_input_stream_size
    - fu_struct_wacom_usb_id9_loader_cmd_set_size
    - fu_struct_wacom_usb_id9_loader_cmd_to_bytes
    - fu_struct_wacom_usb_id9_spi_cmd_new
    - fu_struct_wacom_usb_id9_loader_cmd_set_command
    - fu_struct_wacom_usb_id9_loader_cmd_set_data
    - fu_struct_wacom_usb_id9_spi_cmd_set_size
    - fu_struct_wacom_usb_id9_loader_cmd_validate
    - g_autoptr
    - fu_struct_wacom_usb_id9_unknown_cmd_new
    linkageType: ''
    returnType: FuChunk
    signature: "FuChunk *\nfu_wacom_usb_module_bluetooth_id9_get_startcmd(GInputStream
      *stream,\n\t\t\t\t\t       gboolean full_erase,\n\t\t\t\t\t       GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:114,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:114,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:115,1
    - Dst: fu_byte_array_append_uint8
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:117,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:118,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:118,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:118,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:120,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:121,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - self
    - phase
    - chunk
    - progress
    - error
    argTypes:
    - FuWacomUsbModule*
    - guint8
    - FuChunk*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 128
    functionName: fu_wacom_usb_module_bluetooth_id9_write_block
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - fu_chunk_get_data_sz
    - fu_wacom_usb_module_set_feature
    - fu_byte_array_append_uint8
    - g_byte_array_new
    - fu_chunk_get_data
    - g_byte_array_append
    - g_autoptr
    - fu_progress_get_child
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_module_bluetooth_id9_write_block(FuWacomUsbModule
      *self,\n\t\t\t\t\t      guint8 phase,\n\t\t\t\t\t      FuChunk *chunk,\n\t\t\t\t\t
      \     FuProgress *progress,\n\t\t\t\t\t      GError **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:138,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:140,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:148,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:149,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:149,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:150,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:151,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:154,1
    - Dst: fu_wacom_usb_module_bluetooth_id9_write_block
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:157,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - self
    - phase
    - stream
    - block_len
    - progress
    - error
    argTypes:
    - FuWacomUsbModule*
    - guint8
    - GInputStream*
    - gsize
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 167
    functionName: fu_wacom_usb_module_bluetooth_id9_write_blocks
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_wacom_usb_module_bluetooth_id9_write_block
    - fu_progress_set_steps
    - fu_progress_step_done
    - fu_chunk_array_new_from_stream
    - fu_chunk_array_length
    - g_autoptr
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_module_bluetooth_id9_write_blocks(FuWacomUsbModule
      *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: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:180,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:181,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:182,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:183,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:183,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:184,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:185,1
    - Dst: fu_input_stream_read_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:188,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:196,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:197,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:198,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:206,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:212,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:215,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:216,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:217,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:218,1
    - Dst: fu_bytes_new_offset
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:222,1
    - Dst: fu_firmware_new_from_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:225,1
    - Dst: fu_firmware_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:226,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:227,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:230,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 5
    argNames:
    - device
    - stream
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - GInputStream*
    - FuProgress*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 169
    functionDepth: 4
    functionLinenumber: 169
    functionLinenumberEnd: 231
    functionName: fu_wacom_usb_module_bluetooth_id9_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
    functionUses: 0
    functionsReached:
    - fu_input_stream_read_bytes
    - fu_firmware_set_id
    - fu_firmware_add_image
    - g_bytes_get_data
    - g_set_error_literal
    - fu_firmware_add_image_gtype
    - g_steal_pointer
    - fu_firmware_new
    - fu_firmware_new_from_bytes
    - fu_bytes_new_offset
    - g_autoptr
    - fu_memread_uint16_safe
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_wacom_usb_module_bluetooth_id9_prepare_firmware(FuDevice
      *device,\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
      \  FuFirmwareParseFlags flags,\n\t\t\t\t\t\t   GError **error)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_USB_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:240,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:242,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:242,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:243,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:244,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:245,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:248,1
    - Dst: fu_firmware_get_image_by_id_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:252,1
    - Dst: fu_wacom_usb_module_bluetooth_id9_get_startcmd
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:255,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:260,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:261,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:262,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:263,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:264,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:267,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:270,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:275,1
    - Dst: fu_wacom_usb_module_bluetooth_id9_write_blocks
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:278,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:283,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:286,1
    - Dst: fu_wacom_usb_module_bluetooth_id9_write_block
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:289,1
    - Dst: fu_wacom_usb_module_bluetooth_id9_write_blocks
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:298,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:303,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:306,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:309,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:312,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:317,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: 321
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 321
    functionName: fu_wacom_usb_module_bluetooth_id9_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_wacom_usb_module_bluetooth_id9_write_block
    - fu_wacom_usb_module_bluetooth_id9_get_startcmd
    - fu_wacom_usb_module_set_feature
    - fu_progress_step_done
    - fu_wacom_usb_module_bluetooth_id9_write_blocks
    - FU_WACOM_USB_MODULE
    - g_autoptr
    - fu_progress_get_child
    - g_bytes_new_static
    - fu_firmware_get_image_by_id_stream
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_module_bluetooth_id9_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_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:326,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:326,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:327,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomUsbModuleBluetoothId9*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 6
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: fu_wacom_usb_module_bluetooth_id9_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_install_duration
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_bluetooth_id9_init(FuWacomUsbModuleBluetoothId9
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomUsbModuleBluetoothId9Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 336
    functionName: fu_wacom_usb_module_bluetooth_id9_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_bluetooth_id9_class_init(FuWacomUsbModuleBluetoothId9Class
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 349
    functionName: fu_wacom_usb_module_bluetooth_id9_new
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuWacomUsbModule
    signature: 'FuWacomUsbModule *

      fu_wacom_usb_module_bluetooth_id9_new(FuDevice *proxy)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_BIT_SET
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-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_wacom_usb_module_bluetooth_calculate_crc_byte
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c
    functionUses: 0
    functionsReached:
    - FU_BIT_SET
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_bluetooth_calculate_crc_byte(guint8 *crc,
      guint8 data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_wacom_usb_module_bluetooth_calculate_crc_byte
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-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_wacom_usb_module_bluetooth_calculate_crc
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_module_bluetooth_calculate_crc_byte
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_wacom_usb_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-wacom-usb-module-bluetooth.c:81,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:91,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:93,1
    - Dst: memset
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:94,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:99,1
    - Dst: fu_wacom_usb_module_bluetooth_calculate_crc
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:108,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:111,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:111,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: 114
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 114
    functionName: fu_wacom_usb_module_bluetooth_parse_blocks
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_steal_pointer
    - g_ptr_array_add
    - memcpy
    - memset
    - fu_memcpy_safe
    - g_ptr_array_new_with_free_func
    - fu_wacom_usb_module_bluetooth_calculate_crc
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfu_wacom_usb_module_bluetooth_parse_blocks(const guint8
      *data,\n\t\t\t\t\t   gsize sz,\n\t\t\t\t\t   gboolean skip_user_data,\n\t\t\t\t\t
      \  GError **error)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_USB_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:123,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:127,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:128,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:128,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:129,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:132,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:133,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:134,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:135,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:138,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:140,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:145,1
    - Dst: fu_wacom_usb_module_bluetooth_parse_blocks
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:146,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:148,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:153,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:156,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:160,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:163,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:167,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:169,1
    - Dst: memset
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:172,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:173,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:174,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:176,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:177,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:178,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:181,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:185,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:190,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:190,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:194,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:197,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:200,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:204,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:207,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: 211
      start: 116
    functionDepth: 4
    functionLinenumber: 116
    functionLinenumberEnd: 211
    functionName: fu_wacom_usb_module_bluetooth_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint24
    - g_bytes_new
    - fu_progress_add_step
    - fu_firmware_get_bytes
    - g_bytes_get_data
    - fu_wacom_usb_module_set_feature
    - g_prefix_error_literal
    - fu_progress_step_done
    - memcpy
    - FU_WACOM_USB_MODULE
    - memset
    - fu_wacom_usb_module_bluetooth_parse_blocks
    - fu_progress_set_percentage_full
    - g_autoptr
    - fu_progress_get_child
    - g_bytes_new_static
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_module_bluetooth_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-wacom-usb-module-bluetooth.c:216,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:216,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:217,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomUsbModuleBluetooth*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 213
    functionDepth: 6
    functionLinenumber: 213
    functionLinenumberEnd: 218
    functionName: fu_wacom_usb_module_bluetooth_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_install_duration
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_bluetooth_init(FuWacomUsbModuleBluetooth *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomUsbModuleBluetoothClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: fu_wacom_usb_module_bluetooth_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_bluetooth_class_init(FuWacomUsbModuleBluetoothClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 238
    functionName: fu_wacom_usb_module_bluetooth_new
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuWacomUsbModule
    signature: 'FuWacomUsbModule *

      fu_wacom_usb_module_bluetooth_new(FuDevice *proxy)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_USB_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:28,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:29,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:30,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:33,1
    - Dst: fu_progress_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:34,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:35,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:36,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:37,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:39,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:39,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:42,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:44,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:47,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:48,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:56,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:59,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:63,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:66,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:69,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:70,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:72,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:75,1
    - Dst: memset
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:80,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:82,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:83,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:83,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:85,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:88,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:89,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:91,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:93,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:96,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:97,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:100,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:104,1
    - Dst: fu_chunk_get_idx
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:104,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:109,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:109,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:111,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:113,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:116,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:119,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:123,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-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: 4
    functionLinenumber: 21
    functionLinenumberEnd: 130
    functionName: fu_wacom_usb_module_touch_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_idx
    - g_bytes_new
    - fu_chunk_get_data_sz
    - fu_progress_add_flag
    - fu_wacom_usb_module_set_feature
    - FU_WACOM_USB_MODULE
    - fu_memwrite_uint32
    - g_debug
    - g_prefix_error_literal
    - fu_chunk_array_new_from_stream
    - fu_progress_set_percentage_full
    - fu_progress_add_step
    - fu_progress_step_done
    - fu_chunk_get_data
    - memset
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_chunk_get_address
    - fu_progress_set_id
    - fu_firmware_get_stream
    - fu_chunk_array_index
    - g_prefix_error
    - fu_firmware_get_addr
    - fu_memcpy_safe
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_module_touch_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-wacom-usb-module-touch.c:135,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:135,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:136,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:136,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:137,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomUsbModuleTouch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 6
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: fu_wacom_usb_module_touch_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_install_duration
    - fu_device_set_firmware_gtype
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_touch_init(FuWacomUsbModuleTouch *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomUsbModuleTouchClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: fu_wacom_usb_module_touch_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_touch_class_init(FuWacomUsbModuleTouchClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-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_wacom_usb_module_touch_new
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuWacomUsbModule
    signature: 'FuWacomUsbModule *

      fu_wacom_usb_module_touch_new(FuDevice *proxy)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_get_parent
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:35,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:36,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:37,1
    - Dst: fu_device_write_firmware
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-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_wacom_usb_plugin_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_locker_new
    - fu_device_get_parent
    - g_autoptr
    - fu_device_write_firmware
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_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_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:47,1
    - Dst: FU_IS_WACOM_USB_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:48,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:49,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:49,1
    - Dst: g_info
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:52,1
    - Dst: fu_wacom_usb_device_switch_to_flash_loader
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:53,1
    - Dst: FU_WACOM_USB_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-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: 59
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 59
    functionName: fu_wacom_usb_plugin_composite_prepare
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_device_switch_to_flash_loader
    - g_info
    - fu_device_locker_new
    - FU_WACOM_USB_DEVICE
    - FU_IS_WACOM_USB_DEVICE
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_plugin_composite_prepare(FuPlugin *self, GPtrArray
      *devices, GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:64,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:68,1
    - Dst: FU_IS_WACOM_USB_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:69,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:70,1
    - Dst: FU_WACOM_USB_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:70,1
    - Dst: FU_IS_WACOM_USB_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:73,1
    - Dst: FU_WACOM_USB_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:75,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:75,1
    - Dst: g_set_object
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:78,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:85,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:86,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:86,1
    - Dst: g_info
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:89,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:90,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:90,1
    - Dst: fu_wacom_usb_device_update_reset
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:91,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - self
    - devices
    - error
    argTypes:
    - FuPlugin*
    - GPtrArray*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 61
    functionDepth: 6
    functionLinenumber: 61
    functionLinenumberEnd: 97
    functionName: fu_wacom_usb_plugin_composite_cleanup
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - FU_IS_WACOM_USB_MODULE
    - g_info
    - fu_wacom_usb_device_update_reset
    - fu_device_get_proxy
    - fu_device_locker_new
    - g_set_object
    - FU_DEVICE
    - FU_WACOM_USB_DEVICE
    - FU_IS_WACOM_USB_DEVICE
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_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-wacom-usb-plugin.c:102,1
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomUsbPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: fu_wacom_usb_plugin_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c
    functionUses: 0
    functionsReached:
    - fu_plugin_add_flag
    - FU_PLUGIN
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_plugin_init(FuWacomUsbPlugin *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:108,1
    - Dst: fu_plugin_add_udev_subsystem
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:109,1
    - Dst: fu_plugin_set_device_gtype_default
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:110,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:111,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:112,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:113,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:114,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:115,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:116,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:117,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:118,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:119,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 123
    functionName: fu_wacom_usb_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_set_device_gtype_default
    - fu_plugin_add_device_gtype
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_plugin_constructed(GObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_PLUGIN_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomUsbPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: fu_wacom_usb_plugin_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_plugin_class_init(FuWacomUsbPluginClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-common.c:20,1
    - Dst: fu_wacom_usb_report_id_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-common.c:22,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-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: 3
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: fu_wacom_usb_buffer_dump
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-common.c
    functionUses: 1
    functionsReached:
    - g_strdup_printf
    - fu_wacom_usb_report_id_to_string
    - fu_dump_raw
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_buffer_dump(const gchar *title, guint8 cmd, const
      guint8 *buf, gsize sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-android-device.c:20,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-android-device.c:20,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-android-device.c:21,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-android-device.c:21,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-android-device.c:22,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-android-device.c:22,1
    - Dst: fu_device_inhibit
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-android-device.c:23,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-android-device.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomUsbAndroidDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 6
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: fu_wacom_usb_android_device_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-android-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_add_icon
    - FU_DEVICE
    - fu_device_inhibit
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_android_device_init(FuWacomUsbAndroidDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomUsbAndroidDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: fu_wacom_usb_android_device_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-android-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_android_device_class_init(FuWacomUsbAndroidDeviceClass
      *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/wacom-usb/fu-wacom-usb-module.c
    functionUses: 1651
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PRIVATE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_USB_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:30,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:31,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:32,1
    - Dst: fu_wacom_usb_module_fw_type_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:35,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:36,1
    - Dst: fu_wacom_usb_module_status_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:39,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:40,1
    - Dst: fu_wacom_usb_module_command_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 44
    functionName: fu_wacom_usb_module_to_string
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_module_status_to_string
    - fu_wacom_usb_module_fw_type_to_string
    - fu_wacom_usb_module_command_to_string
    - fwupd_codec_string_append
    - FU_WACOM_USB_MODULE
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_to_string(FuDevice *device, guint idt, GString
      *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:50,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:55,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:55,1
    - Dst: fu_wacom_usb_device_get_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:58,1
    - Dst: FU_WACOM_USB_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:58,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:63,1
    - Dst: fwupd_error_convert
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:64,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:70,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:84,1
    - Dst: fu_wacom_usb_module_command_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:85,1
    - Dst: fu_wacom_usb_module_status_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomUsbModule*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 91
    functionName: fu_wacom_usb_module_refresh
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_device_get_feature_report
    - g_debug
    - g_set_error
    - fu_wacom_usb_module_status_to_string
    - g_prefix_error_literal
    - fwupd_error_convert
    - fu_wacom_usb_module_command_to_string
    - FU_DEVICE
    - FU_WACOM_USB_DEVICE
    - fu_device_get_proxy
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_module_refresh(FuWacomUsbModule *self, GError
      **error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_USB_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:96,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:97,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:98,1
    - Dst: fu_wacom_usb_module_refresh
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:100,1
    - Dst: g_error_matches
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:101,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:103,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:103,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:112,1
    - Dst: fu_wacom_usb_module_status_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 123
    functionName: fu_wacom_usb_module_refresh_cb
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - fu_wacom_usb_module_status_to_string
    - g_steal_pointer
    - FU_WACOM_USB_MODULE
    - g_error_matches
    - fu_wacom_usb_module_refresh
    - g_propagate_error
    - g_autoptr
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_module_refresh_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:135,1
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:148,1
    - Dst: FU_IS_WACOM_USB_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:148,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:150,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:150,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:153,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:158,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:159,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:167,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:175,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:178,1
    - Dst: fu_progress_set_status
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:181,1
    - Dst: fu_wacom_usb_device_set_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:188,1
    - Dst: FU_WACOM_USB_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:188,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:193,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:199,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:199,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:200,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:200,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:206,1
    - Dst: fu_wacom_usb_module_command_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:208,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:212,1
    - Dst: fu_wacom_usb_module_status_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:217,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 7
    argNames:
    - self
    - command
    - blob
    - progress
    - poll_interval
    - busy_timeout
    - error
    argTypes:
    - FuWacomUsbModule*
    - guint8
    - GBytes*
    - FuProgress*
    - guint
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 224
    functionName: fu_wacom_usb_module_set_feature
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c
    functionUses: 7
    functionsReached:
    - g_return_val_if_fail
    - FU_IS_WACOM_USB_MODULE
    - fu_wacom_usb_device_set_feature_report
    - g_set_error
    - fu_device_sleep
    - g_bytes_get_data
    - fu_wacom_usb_module_status_to_string
    - g_prefix_error_literal
    - g_prefix_error
    - fu_memcpy_safe
    - FU_DEVICE
    - fu_device_retry_full
    - fu_wacom_usb_module_command_to_string
    - fu_device_has_flag
    - FU_WACOM_USB_DEVICE
    - fu_device_get_proxy
    - fu_progress_set_status
    - GET_PRIVATE
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_module_set_feature(FuWacomUsbModule *self,\n\t\t\t\tguint8
      command,\n\t\t\t\tGBytes *blob, /* optional */\n\t\t\t\tFuProgress *progress,\n\t\t\t\tguint
      poll_interval, /* ms */\n\t\t\t\tguint busy_timeout,  /* ms */\n\t\t\t\tGError
      **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:233,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:236,1
    - Dst: fu_device_locker_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:239,1
    - Dst: fu_device_cleanup
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - device
    - progress
    - flags
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 243
    functionName: fu_wacom_usb_module_cleanup
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c
    functionUses: 0
    functionsReached:
    - fu_device_locker_new
    - fu_device_cleanup
    - g_autoptr
    - fu_device_get_proxy
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_module_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_version_from_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:249,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:249,1
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:251,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 252
    functionName: fu_wacom_usb_module_convert_version
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16
    - fu_version_from_uint32
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_wacom_usb_module_convert_version(FuDevice *device, guint64 version_raw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_USB_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:257,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:258,1
    - Dst: g_value_set_uint
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:261,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:264,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: 267
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 267
    functionName: fu_wacom_usb_module_get_property
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c
    functionUses: 0
    functionsReached:
    - FU_WACOM_USB_MODULE
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - g_value_set_uint
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_get_property(GObject *object, guint prop_id,
      GValue *value, GParamSpec *pspec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_USB_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:275,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:276,1
    - Dst: g_value_get_uint
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:279,1
    - Dst: G_OBJECT_WARN_INVALID_PROPERTY_ID
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:282,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: 285
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 285
    functionName: fu_wacom_usb_module_set_property
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c
    functionUses: 0
    functionsReached:
    - FU_WACOM_USB_MODULE
    - g_value_get_uint
    - G_OBJECT_WARN_INVALID_PROPERTY_ID
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: "void fu_wacom_usb_module_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_device_add_protocol
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:290,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:290,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:291,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:291,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:292,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:292,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:293,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:293,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:294,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:294,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:295,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:295,1
    - Dst: fu_device_set_proxy_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:296,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomUsbModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 287
    functionDepth: 6
    functionLinenumber: 287
    functionLinenumberEnd: 297
    functionName: fu_wacom_usb_module_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_remove_delay
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_proxy_gtype
    - fu_device_set_version_format
    - fu_device_add_protocol
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_init(FuWacomUsbModule *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_USB_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:302,1
    - Dst: GET_PRIVATE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:303,1
    - Dst: fu_device_get_proxy
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:304,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:304,1
    - Dst: fu_device_build_vendor_id_u16
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:311,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:311,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:313,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:313,1
    - Dst: fu_device_incorporate
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:316,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:316,1
    - Dst: fu_device_set_logical_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:319,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:319,1
    - Dst: fu_wacom_usb_module_fw_type_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:320,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:323,1
    - Dst: fu_device_get_vid
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:324,1
    - Dst: fu_device_get_pid
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:325,1
    - Dst: fu_wacom_usb_module_fw_type_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:326,1
    - Dst: fu_device_add_instance_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:327,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:327,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 299
    functionDepth: 9
    functionLinenumber: 299
    functionLinenumberEnd: 331
    functionName: fu_wacom_usb_module_constructed
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c
    functionUses: 0
    functionsReached:
    - fu_device_set_logical_id
    - fu_device_get_pid
    - fu_device_add_instance_id
    - fu_device_build_vendor_id_u16
    - fu_wacom_usb_module_fw_type_to_string
    - G_OBJECT_CLASS
    - fu_device_incorporate
    - FU_WACOM_USB_MODULE
    - FU_DEVICE
    - fu_device_get_vid
    - g_strdup_printf
    - fu_device_get_proxy
    - GET_PRIVATE
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_constructed(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:336,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:337,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:338,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:339,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:340,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 342
    functionName: fu_wacom_usb_module_set_progress
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:347,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:349,1
    - Dst: g_param_spec_uint
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:360,1
    - Dst: g_object_class_install_property
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomUsbModuleClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 374
    functionName: fu_wacom_usb_module_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c
    functionUses: 0
    functionsReached:
    - g_object_class_install_property
    - g_param_spec_uint
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_class_init(FuWacomUsbModuleClass *klass)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:48,1
    - Dst: g_strdelimit
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:56,1
    - Dst: strlen
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:57,1
    - Dst: g_strndup
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:60,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:61,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:65,1
    - Dst: memcmp
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:67,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:70,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:80,1
    - Dst: fu_firmware_strparse_uint4_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:87,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:95,1
    - Dst: fu_firmware_strparse_uint32_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:96,1
    - Dst: fu_firmware_strparse_uint32_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:102,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:108,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:109,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:110,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:110,1
    - Dst: fu_firmware_strparse_uint4_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:119,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:126,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:134,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:143,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:150,1
    - Dst: fu_firmware_strparse_uint32_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:151,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:158,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:168,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:172,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:177,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:179,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:185,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:190,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:190,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:190,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:191,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:191,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:191,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:192,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:194,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:197,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:199,1
    - Dst: g_strcmp0
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:209,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:210,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:211,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:212,1
    - Dst: fu_srec_firmware_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:212,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:213,1
    - Dst: fu_firmware_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:213,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:218,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:225,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:228,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:237,1
    - Dst: fu_srec_firmware_set_addr_min
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:238,1
    - Dst: FU_SREC_FIRMWARE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:238,1
    - Dst: fu_firmware_parse_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:239,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:245,1
    - Dst: fu_firmware_set_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:248,1
    - Dst: fu_firmware_set_addr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:249,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:249,1
    - Dst: fu_firmware_set_idx
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:250,1
    - Dst: fu_firmware_add_image
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:251,1
    - Dst: g_string_set_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:256,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: 261
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 261
    functionName: fu_wacom_usb_firmware_tokenize_cb
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - g_string_set_size
    - fu_firmware_strparse_uint32_safe
    - fu_firmware_set_bytes
    - g_strdelimit
    - g_ptr_array_index
    - fu_firmware_set_addr
    - g_new0
    - g_debug
    - fu_firmware_get_bytes
    - fu_firmware_add_image
    - g_set_error_literal
    - fu_srec_firmware_new
    - FU_SREC_FIRMWARE
    - fu_firmware_parse_bytes
    - memcmp
    - fu_firmware_strparse_uint4_safe
    - fu_firmware_set_idx
    - fu_firmware_new
    - g_strndup
    - g_strcmp0
    - fu_srec_firmware_set_addr_min
    - g_set_error
    - g_steal_pointer
    - g_ptr_array_add
    - fu_firmware_get_addr
    - strlen
    - g_string_append_printf
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_firmware_tokenize_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: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_struct_wacom_usb_firmware_hdr_validate_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - firmware
    - stream
    - offset
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - gsize
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: fu_wacom_usb_firmware_validate
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c
    functionUses: 0
    functionsReached:
    - fu_struct_wacom_usb_firmware_hdr_validate_stream
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_firmware_validate(FuFirmware *firmware,\n\t\t\t
      \      GInputStream *stream,\n\t\t\t       gsize offset,\n\t\t\t       GError
      **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:278,1
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:278,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:279,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:279,1
    - Dst: fu_strsplit_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:287,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:297,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - firmware
    - stream
    - flags
    - error
    argTypes:
    - FuFirmware*
    - GInputStream*
    - FuFirmwareParseFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 317
    functionName: fu_wacom_usb_firmware_parse
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c
    functionUses: 0
    functionsReached:
    - g_set_error
    - g_set_error_literal
    - fu_strsplit_stream
    - g_string_new
    - g_autoptr
    - g_ptr_array_new_with_free_func
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_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_sum8
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - GByteArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 323
    functionName: fu_wacom_usb_firmware_calc_checksum
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c
    functionUses: 0
    functionsReached:
    - fu_sum8
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_wacom_usb_firmware_calc_checksum(GByteArray *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:328,1
    - Dst: fu_firmware_get_images
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:328,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:329,1
    - Dst: g_string_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:329,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:330,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:330,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:331,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:331,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:335,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:342,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:343,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:343,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:344,1
    - Dst: fu_firmware_get_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:344,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:346,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:348,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:349,1
    - Dst: fu_wacom_usb_firmware_calc_checksum
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:349,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:353,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:354,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:355,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:355,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:358,1
    - Dst: fu_firmware_get_idx
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:358,1
    - Dst: fu_byte_array_append_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:359,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:359,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:361,1
    - Dst: g_string_append_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:362,1
    - Dst: fu_wacom_usb_firmware_calc_checksum
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:362,1
    - Dst: fu_firmware_write
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:365,1
    - Dst: g_string_append_len
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:368,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:369,1
    - Dst: g_bytes_get_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:370,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:374,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:375,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 2
    argNames:
    - firmware
    - error
    argTypes:
    - FuFirmware*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 325
    functionDepth: 4
    functionLinenumber: 325
    functionLinenumberEnd: 376
    functionName: fu_wacom_usb_firmware_write
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c
    functionUses: 0
    functionsReached:
    - g_string_append_len
    - fu_firmware_write
    - fu_wacom_usb_firmware_calc_checksum
    - g_bytes_get_data
    - g_set_error_literal
    - g_steal_pointer
    - fu_firmware_get_images
    - fu_firmware_get_addr
    - g_byte_array_new
    - fu_byte_array_append_uint32
    - fu_firmware_get_size
    - g_string_new
    - g_string_append_printf
    - g_bytes_get_size
    - g_byte_array_append
    - g_autoptr
    - fu_firmware_get_idx
    - g_ptr_array_index
    linkageType: ''
    returnType: GByteArray
    signature: 'GByteArray *

      fu_wacom_usb_firmware_write(FuFirmware *firmware, GError **error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_images_max
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:381,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:381,1
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:382,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:382,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:383,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:383,1
    - Dst: fu_firmware_add_image_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:384,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomUsbFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 385
    functionName: fu_wacom_usb_firmware_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_add_image_gtype
    - fu_firmware_set_images_max
    - fu_firmware_set_size_max
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_firmware_init(FuWacomUsbFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomUsbFirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 394
    functionName: fu_wacom_usb_firmware_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_firmware_class_init(FuWacomUsbFirmwareClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:399,1
    - Dst: g_object_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 400
    functionName: fu_wacom_usb_firmware_new
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c
    functionUses: 1
    functionsReached:
    - FU_FIRMWARE
    - g_object_new
    linkageType: ''
    returnType: FuFirmware
    signature: 'FuFirmware *

      fu_wacom_usb_firmware_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: fu_wacom_usb_module_bluetooth_id6_reverse_bits
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_wacom_usb_module_bluetooth_id6_reverse_bits(guint8 value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_wacom_usb_module_bluetooth_id6_reverse_bits
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - bufsz
    argTypes:
    - guint8*
    - gsize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: fu_wacom_usb_module_bluetooth_id6_calculate_crc
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_module_bluetooth_id6_reverse_bits
    linkageType: ''
    returnType: guint8
    signature: guint8 fu_wacom_usb_module_bluetooth_id6_calculate_crc(const guint8
      *buf, gsize bufsz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:70,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:71,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:80,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:81,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:81,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:82,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:83,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:85,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:88,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:93,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:94,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:95,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:96,1
    - Dst: fu_wacom_usb_module_bluetooth_id6_calculate_crc
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:97,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:101,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:102,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:102,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:103,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:106,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:110,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:113,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - self
    - stream
    - progress
    - error
    argTypes:
    - FuWacomUsbModule*
    - GInputStream*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 121
    functionName: fu_wacom_usb_module_bluetooth_id6_write_blob
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint32
    - g_bytes_new
    - g_debug
    - fu_chunk_array_index
    - fu_chunk_get_data_sz
    - fu_progress_set_steps
    - fu_wacom_usb_module_set_feature
    - memcpy
    - g_prefix_error
    - fu_progress_step_done
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data
    - fu_chunk_array_length
    - fu_wacom_usb_module_bluetooth_id6_calculate_crc
    - g_autoptr
    - fu_progress_get_child
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_module_bluetooth_id6_write_blob(FuWacomUsbModule
      *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: 5
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_USB_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:130,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:132,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:132,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:133,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:136,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:137,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:138,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:139,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:142,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:144,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:149,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:152,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:156,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:159,1
    - Dst: fu_wacom_usb_module_bluetooth_id6_write_blob
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:162,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:164,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:166,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:169,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:172,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:175,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:179,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:182,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: 186
      start: 123
    functionDepth: 5
    functionLinenumber: 123
    functionLinenumberEnd: 186
    functionName: fu_wacom_usb_module_bluetooth_id6_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_firmware_get_stream
    - fu_wacom_usb_module_bluetooth_id6_write_blob
    - fu_wacom_usb_module_set_feature
    - g_prefix_error_literal
    - fu_progress_step_done
    - FU_WACOM_USB_MODULE
    - g_autoptr
    - fu_progress_get_child
    - g_bytes_new_static
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_module_bluetooth_id6_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_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:191,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:191,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:192,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:192,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:193,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomUsbModuleBluetoothId6*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 6
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: fu_wacom_usb_module_bluetooth_id6_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_install_duration
    - fu_device_set_remove_delay
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_bluetooth_id6_init(FuWacomUsbModuleBluetoothId6
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomUsbModuleBluetoothId6Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: fu_wacom_usb_module_bluetooth_id6_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_bluetooth_id6_class_init(FuWacomUsbModuleBluetoothId6Class
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: fu_wacom_usb_module_bluetooth_id6_new
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuWacomUsbModule
    signature: 'FuWacomUsbModule *

      fu_wacom_usb_module_bluetooth_id6_new(FuDevice *proxy)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:33,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:33,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:34,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:37,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:61,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:71,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:75,1
    - Dst: fu_chunk_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:76,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:76,1
    - Dst: fu_chunk_set_address
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:77,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - srec_records
    - record_num
    - error
    argTypes:
    - GPtrArray*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 79
    functionName: fu_wacom_usb_module_sub_cpu_create_chunk
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c
    functionUses: 0
    functionsReached:
    - g_bytes_new
    - fu_chunk_bytes_new
    - g_set_error_literal
    - g_steal_pointer
    - g_byte_array_new
    - g_byte_array_append
    - fu_chunk_set_address
    - g_autoptr
    - g_ptr_array_index
    linkageType: ''
    returnType: FuChunk
    signature: "FuChunk *\nfu_wacom_usb_module_sub_cpu_create_chunk(GPtrArray *srec_records,\n\t\t\t\t\t
      guint32 *record_num,\n\t\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:86,1
    - Dst: fu_srec_firmware_get_records
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:88,1
    - Dst: fu_wacom_usb_module_sub_cpu_create_chunk
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:93,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:96,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:98,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - srec_firmware
    - data_len
    - error
    argTypes:
    - FuSrecFirmware*
    - guint32*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 102
    functionName: fu_wacom_usb_module_sub_cpu_parse_chunks
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - g_steal_pointer
    - g_ptr_array_add
    - fu_wacom_usb_module_sub_cpu_create_chunk
    - g_ptr_array_new_with_free_func
    - fu_srec_firmware_get_records
    linkageType: ''
    returnType: GPtrArray
    signature: "GPtrArray *\nfu_wacom_usb_module_sub_cpu_parse_chunks(FuSrecFirmware
      *srec_firmware,\n\t\t\t\t\t guint32 *data_len,\n\t\t\t\t\t GError **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:109,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:110,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:110,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:111,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:112,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:115,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:116,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:118,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:120,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - chunk
    - error
    argTypes:
    - FuChunk*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 125
    functionName: fu_wacom_usb_module_sub_cpu_build_packet
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint32
    - g_bytes_new
    - fu_chunk_get_data_sz
    - g_prefix_error_literal
    - fu_chunk_get_data
    - memset
    - fu_memcpy_safe
    - fu_chunk_get_address
    linkageType: ''
    returnType: GBytes
    signature: 'GBytes *

      fu_wacom_usb_module_sub_cpu_build_packet(FuChunk *chunk, GError **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_USB_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:134,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:137,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:138,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:141,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:142,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:143,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:144,1
    - Dst: fu_wacom_usb_module_sub_cpu_parse_chunks
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:147,1
    - Dst: FU_SREC_FIRMWARE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:147,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:154,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:155,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:158,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:161,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:165,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:169,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:173,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:174,1
    - Dst: fu_wacom_usb_module_sub_cpu_build_packet
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:175,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:180,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:183,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:187,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:191,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:191,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:195,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:198,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:201,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:205,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:208,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: 212
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 212
    functionName: fu_wacom_usb_module_sub_cpu_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint32
    - fu_progress_add_step
    - FU_SREC_FIRMWARE
    - fu_wacom_usb_module_set_feature
    - fu_wacom_usb_module_sub_cpu_parse_chunks
    - g_prefix_error_literal
    - FU_WACOM_USB_MODULE
    - fu_progress_step_done
    - fu_wacom_usb_module_sub_cpu_build_packet
    - fu_progress_set_percentage_full
    - g_autoptr
    - fu_progress_get_child
    - g_bytes_new_static
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_module_sub_cpu_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/wacom-usb/fu-wacom-usb-module-sub-cpu.c:221,1
    - Dst: fu_srec_firmware_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:221,1
    - Dst: fu_firmware_parse_stream
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:222,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:227,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:230,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: 231
      start: 214
    functionDepth: 4
    functionLinenumber: 214
    functionLinenumberEnd: 231
    functionName: fu_wacom_usb_module_sub_cpu_prepare_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c
    functionUses: 0
    functionsReached:
    - fu_firmware_parse_stream
    - g_steal_pointer
    - fu_srec_firmware_new
    - g_prefix_error_literal
    - g_autoptr
    linkageType: ''
    returnType: FuFirmware
    signature: "FuFirmware *\nfu_wacom_usb_module_sub_cpu_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_device_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:236,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:236,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:237,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomUsbModuleSubCpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 6
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: fu_wacom_usb_module_sub_cpu_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_install_duration
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_sub_cpu_init(FuWacomUsbModuleSubCpu *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomUsbModuleSubCpuClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: fu_wacom_usb_module_sub_cpu_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_sub_cpu_class_init(FuWacomUsbModuleSubCpuClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 259
    functionName: fu_wacom_usb_module_sub_cpu_new
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c
    functionUses: 0
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuWacomUsbModule
    signature: 'FuWacomUsbModule *

      fu_wacom_usb_module_sub_cpu_new(FuDevice *proxy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - FuWacomUsbFlashDescriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: fu_wacom_usb_device_flash_descriptor_is_wp
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_device_flash_descriptor_is_wp(const FuWacomUsbFlashDescriptor
      *fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:59,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:60,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:61,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:62,1
    - Dst: fu_wacom_usb_device_flash_descriptor_is_wp
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - idt
    - str
    argTypes:
    - FuWacomUsbFlashDescriptor*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: fu_wacom_usb_device_flash_descriptor_to_string
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_device_flash_descriptor_is_wp
    - fwupd_codec_string_append_hex
    - fwupd_codec_string_append_bool
    linkageType: ''
    returnType: void
    signature: "void fu_wacom_usb_device_flash_descriptor_to_string(FuWacomUsbFlashDescriptor
      *fd,\n\t\t\t\t\t       guint idt,\n\t\t\t\t\t       GString *str)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_USB_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:71,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:75,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:76,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:79,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:80,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:83,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:84,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:87,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:88,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:91,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:92,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:95,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:96,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:99,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:100,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:103,1
    - Dst: g_strdup_printf
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:104,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:105,1
    - Dst: fu_wacom_usb_device_flash_descriptor_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:106,1
    - Dst: fu_wacom_usb_device_status_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:108,1
    - Dst: fwupd_codec_string_append
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 68
    functionDepth: 4
    functionLinenumber: 68
    functionLinenumberEnd: 110
    functionName: fu_wacom_usb_device_to_string
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_device_flash_descriptor_to_string
    - fu_wacom_usb_device_status_to_string
    - fwupd_codec_string_append
    - g_strdup_printf
    - FU_WACOM_USB_DEVICE
    - g_ptr_array_index
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_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-wacom-usb-device.c:122,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:122,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - flags
    - error
    argTypes:
    - FuWacomUsbDevice*
    - guint8*
    - gsize
    - FuHidDeviceFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 112
    functionDepth: 6
    functionLinenumber: 112
    functionLinenumberEnd: 142
    functionName: fu_wacom_usb_device_get_feature_report
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 1
    functionsReached:
    - fu_hid_device_get_report
    - FU_HID_DEVICE
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_device_get_feature_report(FuWacomUsbDevice *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-wacom-usb-device.c:151,1
    - Dst: FU_HID_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - self
    - buf
    - bufsz
    - flags
    - error
    argTypes:
    - FuWacomUsbDevice*
    - guint8*
    - gsize
    - FuHidDeviceFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 144
    functionDepth: 6
    functionLinenumber: 144
    functionLinenumberEnd: 159
    functionName: fu_wacom_usb_device_set_feature_report
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 1
    functionsReached:
    - FU_HID_DEVICE
    - fu_hid_device_set_report
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_device_set_feature_report(FuWacomUsbDevice *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: 9
    BranchProfiles: []
    Callsites:
    - Dst: fu_size_checked_inc_product
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:172,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:174,1
    - Dst: g_malloc
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:178,1
    - Dst: memset
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:179,1
    - Dst: fu_wacom_usb_device_get_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:181,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:186,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:188,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:195,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:202,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:209,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:209,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:212,1
    - Dst: g_info
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:220,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 161
    functionDepth: 7
    functionLinenumber: 161
    functionLinenumberEnd: 222
    functionName: fu_wacom_usb_device_ensure_flash_descriptors
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_device_get_feature_report
    - fu_memread_uint32_safe
    - g_new0
    - g_info
    - g_set_error
    - g_steal_pointer
    - g_ptr_array_add
    - g_malloc
    - memset
    - fu_memread_uint16_safe
    - fu_size_checked_inc
    - fu_size_checked_inc_product
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_device_ensure_flash_descriptors(FuWacomUsbDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_wacom_usb_device_get_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:231,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:239,1
    - Dst: fu_wacom_usb_device_status_to_string
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:240,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 224
    functionDepth: 7
    functionLinenumber: 224
    functionLinenumberEnd: 243
    functionName: fu_wacom_usb_device_ensure_status
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32
    - fu_wacom_usb_device_get_feature_report
    - fu_wacom_usb_device_status_to_string
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_device_ensure_status(FuWacomUsbDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fu_size_checked_inc_product
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:253,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:255,1
    - Dst: g_malloc
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:259,1
    - Dst: memset
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:260,1
    - Dst: fu_wacom_usb_device_get_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:262,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:266,1
    - Dst: g_info
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:267,1
    - Dst: g_array_set_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:270,1
    - Dst: fu_memread_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:272,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:273,1
    - Dst: g_array_append_val
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:274,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 245
    functionDepth: 7
    functionLinenumber: 245
    functionLinenumberEnd: 279
    functionName: fu_wacom_usb_device_ensure_checksums
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_device_get_feature_report
    - g_info
    - g_debug
    - fu_memread_uint32
    - g_array_append_val
    - g_malloc
    - memset
    - fu_size_checked_inc
    - g_array_set_size
    - fu_size_checked_inc_product
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_device_ensure_checksums(FuWacomUsbDevice *self,
      GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_wacom_usb_device_get_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:287,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 281
    functionDepth: 7
    functionLinenumber: 281
    functionLinenumberEnd: 297
    functionName: fu_wacom_usb_device_ensure_firmware_index
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_device_get_feature_report
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_device_ensure_firmware_index(FuWacomUsbDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_wacom_usb_device_get_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:305,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:313,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:314,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:315,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:316,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:317,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 299
    functionDepth: 7
    functionLinenumber: 299
    functionLinenumberEnd: 320
    functionName: fu_wacom_usb_device_ensure_parameters
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_device_get_feature_report
    - fu_memread_uint16
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_device_ensure_parameters(FuWacomUsbDevice *self,
      GError **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:331,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:333,1
    - Dst: g_malloc
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:342,1
    - Dst: memset
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:343,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:345,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:347,1
    - Dst: fu_wacom_usb_device_set_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - self
    - addr
    - blob
    - error
    argTypes:
    - FuWacomUsbDevice*
    - guint32
    - GBytes*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 322
    functionDepth: 7
    functionLinenumber: 322
    functionLinenumberEnd: 364
    functionName: fu_wacom_usb_device_write_block
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_device_set_feature_report
    - g_set_error
    - g_bytes_get_data
    - g_malloc
    - memset
    - fu_memcpy_safe
    - fu_memwrite_uint32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_device_write_block(FuWacomUsbDevice *self, guint32
      addr, GBytes *blob, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:372,1
    - Dst: fu_wacom_usb_device_set_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - addr
    - error
    argTypes:
    - FuWacomUsbDevice*
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 366
    functionDepth: 7
    functionLinenumber: 366
    functionLinenumberEnd: 380
    functionName: fu_wacom_usb_device_erase_block
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_device_set_feature_report
    - fu_memwrite_uint32
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_device_erase_block(FuWacomUsbDevice *self, guint32
      addr, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_wacom_usb_device_set_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 382
    functionDepth: 7
    functionLinenumber: 382
    functionLinenumberEnd: 393
    functionName: fu_wacom_usb_device_update_reset
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 1
    functionsReached:
    - fu_wacom_usb_device_set_feature_report
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_device_update_reset(FuWacomUsbDevice *self, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:404,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:405,1
    - Dst: fu_wacom_usb_device_set_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - self
    - block_nr
    - checksum
    - error
    argTypes:
    - FuWacomUsbDevice*
    - guint16
    - guint32
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 395
    functionDepth: 7
    functionLinenumber: 395
    functionLinenumberEnd: 413
    functionName: fu_wacom_usb_device_set_checksum_of_block
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - fu_wacom_usb_device_set_feature_report
    - fu_memwrite_uint32
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_device_set_checksum_of_block(FuWacomUsbDevice
      *self,\n\t\t\t\t\t  guint16 block_nr,\n\t\t\t\t\t  guint32 checksum,\n\t\t\t\t\t
      \ GError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memwrite_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:424,1
    - Dst: fu_wacom_usb_device_set_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - block_nr
    - error
    argTypes:
    - FuWacomUsbDevice*
    - guint16
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 415
    functionDepth: 7
    functionLinenumber: 415
    functionLinenumberEnd: 432
    functionName: fu_wacom_usb_device_calculate_checksum_of_block
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint16
    - fu_wacom_usb_device_set_feature_report
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_device_calculate_checksum_of_block(FuWacomUsbDevice
      *self,\n\t\t\t\t\t\tguint16 block_nr,\n\t\t\t\t\t\tGError **error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_wacom_usb_device_set_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 434
    functionDepth: 7
    functionLinenumber: 434
    functionLinenumberEnd: 445
    functionName: fu_wacom_usb_device_write_checksum_table
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_device_set_feature_report
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_device_write_checksum_table(FuWacomUsbDevice
      *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_wacom_usb_device_set_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 447
    functionDepth: 7
    functionLinenumber: 447
    functionLinenumberEnd: 459
    functionName: fu_wacom_usb_device_switch_to_flash_loader
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 1
    functionsReached:
    - fu_wacom_usb_device_set_feature_report
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_device_switch_to_flash_loader(FuWacomUsbDevice
      *self, GError **error)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_USB_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:468,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:472,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:473,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:476,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:477,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:478,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:479,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:480,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:481,1
    - Dst: fu_wacom_usb_device_ensure_firmware_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:484,1
    - Dst: fu_firmware_get_image_by_idx
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:488,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:491,1
    - Dst: fu_firmware_get_addr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:491,1
    - Dst: fu_wacom_usb_device_ensure_parameters
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:494,1
    - Dst: fu_wacom_usb_device_ensure_flash_descriptors
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:498,1
    - Dst: fu_wacom_usb_device_ensure_checksums
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:502,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:504,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:508,1
    - Dst: fu_wacom_usb_device_flash_descriptor_is_wp
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:509,1
    - Dst: fu_wacom_usb_device_set_checksum_of_block
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:511,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:514,1
    - Dst: g_hash_table_new_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:517,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:522,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:524,1
    - Dst: fu_wacom_usb_device_flash_descriptor_is_wp
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:526,1
    - Dst: fu_firmware_write_chunk
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:528,1
    - Dst: fu_bytes_pad
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:531,1
    - Dst: g_hash_table_insert
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:532,1
    - Dst: g_hash_table_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:536,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:539,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:541,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:543,1
    - Dst: fu_wacom_usb_device_flash_descriptor_is_wp
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:546,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:550,1
    - Dst: fu_bytes_is_empty
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:555,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:556,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:557,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:557,1
    - Dst: fu_wacom_usb_device_erase_block
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:564,1
    - Dst: fu_chunk_array_new_from_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:568,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:572,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:573,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:574,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:577,1
    - Dst: fu_chunk_get_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:580,1
    - Dst: fu_wacom_usb_device_write_block
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:581,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:582,1
    - Dst: GUINT32_TO_LE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:589,1
    - Dst: fu_sum32w_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:590,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:591,1
    - Dst: fu_wacom_usb_device_set_checksum_of_block
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:592,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:596,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:596,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:600,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:604,1
    - Dst: fu_wacom_usb_device_calculate_checksum_of_block
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:613,1
    - Dst: fu_wacom_usb_device_ensure_checksums
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:618,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:621,1
    - Dst: fu_wacom_usb_device_flash_descriptor_is_wp
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:626,1
    - Dst: g_hash_table_lookup
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:630,1
    - Dst: fu_bytes_is_empty
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:633,1
    - Dst: g_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:637,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:639,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:649,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:651,1
    - Dst: fu_wacom_usb_device_write_checksum_table
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:654,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:656,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: 660
      start: 461
    functionDepth: 8
    functionLinenumber: 461
    functionLinenumberEnd: 660
    functionName: fu_wacom_usb_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_device_ensure_firmware_index
    - g_hash_table_insert
    - fu_firmware_get_image_by_idx
    - g_hash_table_lookup
    - g_hash_table_size
    - g_array_index
    - fu_firmware_write_chunk
    - fu_bytes_pad
    - g_ptr_array_index
    - GUINT32_TO_LE
    - g_new0
    - g_debug
    - fu_chunk_array_new_from_bytes
    - fu_wacom_usb_device_calculate_checksum_of_block
    - fu_wacom_usb_device_write_checksum_table
    - fu_wacom_usb_device_ensure_checksums
    - g_set_error_literal
    - g_hash_table_new_full
    - fu_wacom_usb_device_erase_block
    - FU_WACOM_USB_DEVICE
    - fu_chunk_get_bytes
    - fu_wacom_usb_device_flash_descriptor_is_wp
    - fu_progress_set_percentage_full
    - fu_wacom_usb_device_write_block
    - fu_progress_add_step
    - fu_progress_step_done
    - fu_wacom_usb_device_ensure_parameters
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_chunk_get_address
    - fu_sum32w_bytes
    - g_set_error
    - fu_chunk_array_index
    - fu_firmware_get_addr
    - fu_wacom_usb_device_ensure_flash_descriptors
    - fu_bytes_is_empty
    - g_autoptr
    - fu_wacom_usb_device_set_checksum_of_block
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_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: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:665,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:666,1
    - Dst: fu_wacom_usb_device_get_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:673,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:678,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:682,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:686,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:686,1
    - Dst: fu_wacom_usb_module_bluetooth_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:693,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:693,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:694,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:694,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:694,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:695,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:695,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:696,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:696,1
    - Dst: fu_wacom_usb_module_bluetooth_id6_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:698,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:698,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:699,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:699,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:699,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:700,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:700,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:701,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:701,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 662
    functionDepth: 7
    functionLinenumber: 662
    functionLinenumberEnd: 703
    functionName: fu_wacom_usb_device_add_modules_bluetooth
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_device_get_feature_report
    - fu_device_add_child
    - fu_device_set_version_raw
    - fu_wacom_usb_module_bluetooth_id6_new
    - fu_device_sleep
    - g_prefix_error_literal
    - FU_DEVICE
    - fu_wacom_usb_module_bluetooth_new
    - fu_device_set_name
    - g_autoptr
    - fu_memread_uint16_safe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_device_add_modules_bluetooth(FuWacomUsbDevice
      *self, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:708,1
    - Dst: fu_wacom_usb_device_add_modules_bluetooth
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:711,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 705
    functionDepth: 8
    functionLinenumber: 705
    functionLinenumberEnd: 715
    functionName: fu_wacom_usb_device_add_modules_legacy
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_device_add_modules_bluetooth
    - g_autoptr
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_device_add_modules_legacy(FuWacomUsbDevice *self,
      GError **error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fu_wacom_usb_device_get_feature_report
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:723,1
    - Dst: FU_WACOM_USB_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:723,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:728,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:734,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:743,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:752,1
    - Dst: fu_memread_uint16_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:761,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:769,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 717
    functionDepth: 7
    functionLinenumber: 717
    functionLinenumberEnd: 779
    functionName: fu_wacom_usb_device_add_modules_cb
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_device_get_feature_report
    - g_set_error
    - g_set_error_literal
    - g_prefix_error_literal
    - FU_WACOM_USB_DEVICE
    - fu_memcpy_safe
    - fu_memread_uint16_safe
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_device_add_modules_cb(FuDevice *device, gpointer
      user_data, GError **error)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:788,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:789,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:789,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:790,1
    - Dst: g_byte_array_set_size
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:792,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:794,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:794,1
    - Dst: g_propagate_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:802,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:802,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:805,1
    - Dst: fu_dump_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:807,1
    - Dst: fu_struct_wacom_usb_module_desc_parse
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:810,1
    - Dst: fu_struct_wacom_usb_module_desc_get_bootloader_version
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:813,1
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:814,1
    - Dst: fu_device_set_version_bootloader
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:815,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:815,1
    - Dst: fu_device_set_version_bootloader_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:816,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:816,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:819,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:820,1
    - Dst: fu_struct_wacom_usb_module_desc_get_number_modules
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:825,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:830,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:831,1
    - Dst: fu_struct_wacom_usb_module_item_parse
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:833,1
    - Dst: fu_struct_wacom_usb_module_item_get_version
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:837,1
    - Dst: fu_struct_wacom_usb_module_item_get_version2
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:838,1
    - Dst: fu_struct_wacom_usb_module_item_get_kind
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:849,1
    - Dst: fu_wacom_usb_module_touch_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:852,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:852,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:853,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:853,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:853,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:854,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:854,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:855,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:855,1
    - Dst: fu_wacom_usb_module_touch_id7_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:858,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:858,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:859,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:859,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:859,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:860,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:860,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:861,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:861,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:862,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:862,1
    - Dst: fu_wacom_usb_module_bluetooth_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:865,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:865,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:866,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:866,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:866,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:867,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:867,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:868,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:868,1
    - Dst: fu_wacom_usb_module_bluetooth_id6_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:871,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:871,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:872,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:872,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:872,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:873,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:873,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:874,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:874,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:875,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:875,1
    - Dst: fu_wacom_usb_module_scaler_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:878,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:878,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:879,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:879,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:879,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:880,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:880,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:881,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:881,1
    - Dst: fu_wacom_usb_module_bluetooth_id9_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:884,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:884,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:885,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:885,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:885,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:886,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:886,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:887,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:887,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:888,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:888,1
    - Dst: fu_wacom_usb_module_sub_cpu_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:891,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:891,1
    - Dst: fu_device_add_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:892,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:892,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:892,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:893,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:893,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:894,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:894,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:897,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:897,1
    - Dst: g_warning
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:900,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:903,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:904,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 100
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuWacomUsbDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 781
    functionDepth: 5
    functionLinenumber: 781
    functionLinenumberEnd: 909
    functionName: fu_wacom_usb_device_add_modules
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_child
    - fu_version_from_uint16
    - fu_struct_wacom_usb_module_desc_get_bootloader_version
    - fu_device_set_version_bootloader_raw
    - fu_wacom_usb_module_touch_id7_new
    - fu_wacom_usb_module_bluetooth_id9_new
    - fu_struct_wacom_usb_module_item_get_version2
    - fu_wacom_usb_module_scaler_new
    - g_prefix_error_literal
    - fu_struct_wacom_usb_module_item_parse
    - g_byte_array_new
    - fu_device_set_summary
    - g_propagate_error
    - fu_device_set_version_raw
    - fu_wacom_usb_module_bluetooth_id6_new
    - fu_device_set_version_bootloader
    - g_byte_array_set_size
    - FU_DEVICE
    - fu_device_set_name
    - fu_wacom_usb_module_bluetooth_new
    - g_warning
    - fu_struct_wacom_usb_module_item_get_version
    - fu_dump_raw
    - fu_wacom_usb_module_touch_new
    - fu_struct_wacom_usb_module_desc_parse
    - fu_struct_wacom_usb_module_item_get_kind
    - fu_wacom_usb_module_sub_cpu_new
    - fu_struct_wacom_usb_module_desc_get_number_modules
    - g_steal_pointer
    - g_prefix_error
    - fu_device_retry_full
    - fu_size_checked_inc
    - g_autoptr
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_device_add_modules(FuWacomUsbDevice *self, GError
      **error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_USB_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:914,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:917,1
    - Dst: fu_wacom_usb_device_ensure_status
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:921,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:925,1
    - Dst: fu_wacom_usb_device_add_modules_legacy
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:926,1
    - Dst: fu_wacom_usb_device_add_modules
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:929,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 911
    functionDepth: 9
    functionLinenumber: 911
    functionLinenumberEnd: 935
    functionName: fu_wacom_usb_device_setup
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_wacom_usb_device_ensure_status
    - fu_wacom_usb_device_add_modules_legacy
    - fu_wacom_usb_device_add_modules
    - fu_device_has_private_flag
    - FU_WACOM_USB_DEVICE
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_device_setup(FuDevice *device, GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_usb_device_release_interface
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:941,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:941,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:945,1
    - Dst: fu_device_sleep
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:954,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 937
    functionDepth: 3
    functionLinenumber: 937
    functionLinenumberEnd: 958
    functionName: fu_wacom_usb_device_close
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_sleep
    - g_prefix_error_literal
    - fu_usb_device_release_interface
    - FU_USB_DEVICE
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_wacom_usb_device_close(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:963,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:964,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:965,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:966,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:967,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 960
    functionDepth: 3
    functionLinenumber: 960
    functionLinenumberEnd: 969
    functionName: fu_wacom_usb_device_set_progress
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_progress_add_step
    - fu_progress_set_id
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_device_set_progress(FuDevice *device, FuProgress
      *progress)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:975,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:975,1
    - Dst: fu_version_from_uint16
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:977,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 978
    functionName: fu_wacom_usb_device_convert_version
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint16
    - fu_version_from_uint32
    - fu_device_get_version_format
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fu_wacom_usb_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-wacom-usb-device.c:983,1
    - Dst: g_array_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:984,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:987,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:987,1
    - Dst: fu_device_add_icon
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:988,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:988,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:989,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:989,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:990,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:990,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:991,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:991,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:992,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:992,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:993,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:993,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:994,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:994,1
    - Dst: fu_device_set_firmware_gtype
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:995,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:995,1
    - Dst: fu_device_retry_set_delay
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:996,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomUsbDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 980
    functionDepth: 6
    functionLinenumber: 980
    functionLinenumberEnd: 997
    functionName: fu_wacom_usb_device_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_array_new
    - fu_device_retry_set_delay
    - fu_device_set_remove_delay
    - fu_device_add_icon
    - fu_device_add_private_flag
    - FU_DEVICE
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - g_ptr_array_new_with_free_func
    - fu_device_add_protocol
    - fu_device_set_firmware_gtype
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_device_init(FuWacomUsbDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_USB_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:1002,1
    - Dst: g_ptr_array_unref
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:1004,1
    - Dst: g_array_unref
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:1005,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:1007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1008
    functionName: fu_wacom_usb_device_finalize
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - G_OBJECT_CLASS
    - g_array_unref
    - FU_WACOM_USB_DEVICE
    - g_ptr_array_unref
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_device_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:1013,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomUsbDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1022
    functionName: fu_wacom_usb_device_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_device_class_init(FuWacomUsbDeviceClass *klass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_ptr_array_new_with_free_func
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:34,1
    - Dst: g_new0
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:39,1
    - Dst: fu_memwrite_uint24
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:41,1
    - Dst: memset
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:43,1
    - Dst: fu_memcpy_safe
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:48,1
    - Dst: fu_crc8
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:57,1
    - Dst: g_ptr_array_add
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:58,1
    - Dst: g_steal_pointer
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-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_wacom_usb_module_scaler_parse_blocks
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c
    functionUses: 0
    functionsReached:
    - g_new0
    - g_steal_pointer
    - g_ptr_array_add
    - fu_crc8
    - memset
    - fu_memcpy_safe
    - g_ptr_array_new_with_free_func
    - fu_memwrite_uint24
    linkageType: ''
    returnType: GPtrArray
    signature: 'GPtrArray *

      fu_wacom_usb_module_scaler_parse_blocks(const guint8 *data, gsize sz, GError
      **error)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FU_WACOM_USB_MODULE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:70,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:74,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:75,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:76,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:79,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:80,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:81,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:82,1
    - Dst: fu_firmware_get_bytes
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:85,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:87,1
    - Dst: g_bytes_get_data
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:92,1
    - Dst: fu_memwrite_uint32
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:93,1
    - Dst: g_bytes_new_static
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:94,1
    - Dst: fu_wacom_usb_module_scaler_parse_blocks
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:95,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:98,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:103,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:106,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:110,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:114,1
    - Dst: g_ptr_array_index
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:118,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:120,1
    - Dst: memset
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:123,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:124,1
    - Dst: memcpy
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:126,1
    - Dst: g_bytes_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:127,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:129,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:132,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:136,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:140,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:140,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:144,1
    - Dst: fu_wacom_usb_module_set_feature
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:147,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:150,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:154,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-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_wacom_usb_module_scaler_write_firmware
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c
    functionUses: 0
    functionsReached:
    - fu_memwrite_uint32
    - g_bytes_new
    - fu_firmware_get_bytes
    - fu_progress_add_step
    - g_bytes_get_data
    - fu_wacom_usb_module_set_feature
    - g_prefix_error_literal
    - fu_progress_step_done
    - memcpy
    - FU_WACOM_USB_MODULE
    - fu_wacom_usb_module_scaler_parse_blocks
    - memset
    - fu_progress_set_percentage_full
    - g_autoptr
    - fu_progress_get_child
    - g_bytes_new_static
    - g_ptr_array_index
    - fu_progress_set_id
    linkageType: ''
    returnType: gboolean
    signature: "gboolean fu_wacom_usb_module_scaler_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-wacom-usb-module-scaler.c:166,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:166,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:167,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuWacomUsbModuleScaler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 6
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: fu_wacom_usb_module_scaler_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_set_install_duration
    - FU_DEVICE
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_scaler_init(FuWacomUsbModuleScaler *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuWacomUsbModuleScalerClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: fu_wacom_usb_module_scaler_class_init
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_wacom_usb_module_scaler_class_init(FuWacomUsbModuleScalerClass
      *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_object_new
      Src: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-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_wacom_usb_module_scaler_new
    functionSourceFile: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c
    functionUses: 1
    functionsReached:
    - g_object_new
    linkageType: ''
    returnType: FuWacomUsbModule
    signature: 'FuWacomUsbModule *

      fu_wacom_usb_module_scaler_new(FuDevice *proxy)'
  - 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: 5
    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: fwupd_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: 4
    functionLinenumber: 69
    functionLinenumberEnd: 108
    functionName: fu_fpc_device_dfu_cmd
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_set_error
    - fwupd_error_convert
    - fu_usb_device_control_transfer
    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: fwupd_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: 4
    functionLinenumber: 110
    functionLinenumberEnd: 147
    functionName: fu_fpc_device_fw_cmd
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - FU_USB_DEVICE
    - g_set_error
    - fwupd_error_convert
    - fu_usb_device_control_transfer
    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: 9
    functionLinenumber: 149
    functionLinenumberEnd: 172
    functionName: fu_fpc_device_setup_mode
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_usb_device_get_interfaces
    - g_set_error_literal
    - fu_usb_interface_get_protocol
    - fu_device_remove_flag
    - fu_usb_interface_get_class
    - FU_DEVICE
    - FU_USB_DEVICE
    - g_autoptr
    - g_ptr_array_index
    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_literal
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:212,1
    - Dst: g_malloc0
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:218,1
    - Dst: fu_fpc_device_dfu_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:219,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:227,1
    - Dst: fu_memread_uint32_safe
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:231,1
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:241,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:241,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFpcDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 174
    functionDepth: 5
    functionLinenumber: 174
    functionLinenumberEnd: 243
    functionName: fu_fpc_device_setup_version
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint32_safe
    - fu_device_set_version_raw
    - fu_fpc_device_dfu_cmd
    - g_prefix_error_literal
    - g_malloc0
    - fu_device_has_private_flag
    - FU_DEVICE
    - fu_device_has_flag
    - fu_fpc_device_fw_cmd
    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:248,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:249,1
    - Dst: fu_struct_fpc_dfu_new
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:249,1
    - Dst: fu_fpc_device_dfu_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:251,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:259,1
    - Dst: fu_struct_fpc_dfu_get_status
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:263,1
    - Dst: fu_struct_fpc_dfu_get_state
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:264,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:266,1
    - Dst: fu_struct_fpc_dfu_get_status
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:270,1
    - Dst: fu_struct_fpc_dfu_get_state
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:271,1
    - Dst: fu_struct_fpc_dfu_get_max_payload_size
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:275,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:276,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:276,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - device
    - user_data
    - error
    argTypes:
    - FuDevice*
    - gpointer
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 245
    functionDepth: 5
    functionLinenumber: 245
    functionLinenumberEnd: 282
    functionName: fu_fpc_device_check_dfu_status_cb
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_fpc_dfu_get_status
    - fu_struct_fpc_dfu_get_max_payload_size
    - g_set_error
    - fu_fpc_device_dfu_cmd
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - FU_DEVICE
    - FU_FPC_DEVICE
    - fu_struct_fpc_dfu_new
    - fu_struct_fpc_dfu_get_state
    - 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:287,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:287,1
    - Dst: fu_fpc_device_dfu_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:288,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:296,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:300,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuFpcDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 284
    functionDepth: 5
    functionLinenumber: 284
    functionLinenumberEnd: 306
    functionName: fu_fpc_device_update_init
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_fpc_device_dfu_cmd
    - g_prefix_error_literal
    - fu_device_has_private_flag
    - fu_device_retry_full
    - FU_DEVICE
    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:311,1
    - Dst: fwupd_codec_string_append_hex
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:313,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:314,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:318,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:319,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:323,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:324,1
    - Dst: fwupd_codec_string_append_bool
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:325,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - idt
    - str
    argTypes:
    - FuDevice*
    - guint
    - GString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 308
    functionDepth: 3
    functionLinenumber: 308
    functionLinenumberEnd: 331
    functionName: fu_fpc_device_to_string
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fwupd_codec_string_append_bool
    - FU_FPC_DEVICE
    - fu_device_has_private_flag
    - fwupd_codec_string_append_hex
    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:336,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:339,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:340,1
    - Dst: fu_fpc_device_dfu_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:343,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 6
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: fu_fpc_device_attach
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - fu_fpc_device_dfu_cmd
    - FU_FPC_DEVICE
    - fu_device_has_flag
    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:352,1
    - Dst: fu_device_has_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:355,1
    - Dst: g_debug
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:356,1
    - Dst: fu_fpc_device_fw_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:359,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - device
    - progress
    - error
    argTypes:
    - FuDevice*
    - FuProgress*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 349
    functionDepth: 6
    functionLinenumber: 349
    functionLinenumberEnd: 363
    functionName: fu_fpc_device_detach
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - g_debug
    - FU_FPC_DEVICE
    - fu_device_has_flag
    - fu_fpc_device_fw_cmd
    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:368,1
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:372,1
    - Dst: g_strdup
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:376,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:376,1
    - Dst: g_strstr_len
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:378,1
    - Dst: fu_device_set_name
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:381,1
    - Dst: fu_fpc_device_setup_mode
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:384,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:385,1
    - Dst: fu_fpc_device_setup_version
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:390,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:391,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 365
    functionDepth: 10
    functionLinenumber: 365
    functionLinenumberEnd: 397
    functionName: fu_fpc_device_setup
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - g_strdup
    - fu_fpc_device_setup_mode
    - g_prefix_error_literal
    - fu_device_set_name
    - fu_fpc_device_setup_version
    - FU_FPC_DEVICE
    - g_strstr_len
    - fu_device_get_name
    - FU_DEVICE_CLASS
    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:402,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:404,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:411,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:412,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:413,1
    - Dst: fu_fpc_device_dfu_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:416,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:419,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:420,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:424,1
    - Dst: fu_chunk_get_address
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:426,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - stream
    - error
    argTypes:
    - FuFpcDevice*
    - GInputStream*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 399
    functionDepth: 5
    functionLinenumber: 399
    functionLinenumberEnd: 433
    functionName: fu_fpc_device_write_ff2_blocks
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_array_index
    - fu_fpc_device_dfu_cmd
    - fu_chunk_get_data_sz
    - g_prefix_error
    - fu_chunk_array_new_from_stream
    - fu_chunk_get_data
    - fu_chunk_array_length
    - g_autoptr
    - fu_chunk_get_address
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_fpc_device_write_ff2_blocks(FuFpcDevice *self, GInputStream
      *stream, GError **error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:444,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:446,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:446,1
    - Dst: fu_fpc_ff2_firmware_get_blocks_num
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:449,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:450,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:451,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:456,1
    - Dst: fu_progress_set_steps
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:457,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:460,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:461,1
    - Dst: fu_struct_fpc_ff2_block_hdr_parse_stream
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:465,1
    - Dst: fu_struct_fpc_ff2_block_hdr_get_dir
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:468,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:469,1
    - Dst: g_prefix_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:470,1
    - Dst: fu_struct_fpc_ff2_block_sec_parse_stream
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:475,1
    - Dst: fu_struct_fpc_ff2_block_sec_get_payload_len
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:478,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:480,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:490,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:491,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:494,1
    - Dst: fu_input_stream_read_byte_array
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:503,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:506,1
    - Dst: fu_fpc_device_dfu_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:510,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:518,1
    - Dst: fu_partial_input_stream_new
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:524,1
    - Dst: fu_fpc_device_write_ff2_blocks
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:530,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:533,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:533,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:541,1
    - Dst: fu_size_checked_inc
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:549,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:551,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 68
    argCount: 5
    argNames:
    - self
    - firmware
    - progress
    - flags
    - error
    argTypes:
    - FuFpcDevice*
    - FuFpcFf2Firmware*
    - FuProgress*
    - FwupdInstallFlags
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 435
    functionDepth: 6
    functionLinenumber: 435
    functionLinenumberEnd: 556
    functionName: fu_fpc_device_write_ff2_firmware
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_struct_fpc_ff2_block_sec_get_payload_len
    - fu_struct_fpc_ff2_block_hdr_get_dir
    - fu_fpc_device_dfu_cmd
    - g_set_error_literal
    - fu_progress_set_steps
    - g_prefix_error_literal
    - fu_input_stream_read_byte_array
    - FU_FIRMWARE
    - fu_progress_step_done
    - FU_DEVICE
    - fu_progress_get_child
    - fu_partial_input_stream_new
    - fu_progress_set_id
    - fu_fpc_device_write_ff2_blocks
    - fu_firmware_get_stream
    - g_set_error
    - fu_fpc_ff2_firmware_get_blocks_num
    - g_prefix_error
    - fu_device_retry_full
    - fu_struct_fpc_ff2_block_sec_parse_stream
    - fu_size_checked_inc
    - g_autoptr
    - fu_struct_fpc_ff2_block_hdr_parse_stream
    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:565,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:566,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:567,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:568,1
    - Dst: FU_IS_FPC_FF2_FIRMWARE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:571,1
    - Dst: fu_fpc_device_write_ff2_firmware
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:572,1
    - Dst: FU_FPC_FF2_FIRMWARE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:573,1
    - Dst: fu_progress_set_id
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:580,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:581,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:582,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:583,1
    - Dst: fu_firmware_get_stream
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:586,1
    - Dst: fu_fpc_device_update_init
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:591,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:592,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:599,1
    - Dst: fu_chunk_array_new_from_stream
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:602,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:611,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:612,1
    - Dst: g_autoptr
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:613,1
    - Dst: g_byte_array_new
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:613,1
    - Dst: fu_chunk_array_index
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:616,1
    - Dst: g_byte_array_append
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:619,1
    - Dst: fu_chunk_get_data
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:619,1
    - Dst: fu_chunk_get_data_sz
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:619,1
    - Dst: fu_fpc_device_dfu_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:621,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:629,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:637,1
    - Dst: g_set_error
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:643,1
    - Dst: fu_progress_set_percentage_full
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:652,1
    - Dst: fu_progress_get_child
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:652,1
    - Dst: fu_chunk_array_length
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:654,1
    - Dst: fu_device_has_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:657,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:657,1
    - Dst: fu_fpc_device_dfu_cmd
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:659,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:667,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:671,1
    - Dst: fu_device_retry_full
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:673,1
    - Dst: fu_progress_step_done
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:681,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: 685
      start: 558
    functionDepth: 7
    functionLinenumber: 558
    functionLinenumberEnd: 685
    functionName: fu_fpc_device_write_firmware
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_chunk_get_data_sz
    - fu_fpc_device_update_init
    - fu_fpc_device_dfu_cmd
    - g_prefix_error_literal
    - g_byte_array_new
    - fu_chunk_array_new_from_stream
    - fu_fpc_device_write_ff2_firmware
    - FU_FPC_FF2_FIRMWARE
    - fu_progress_set_percentage_full
    - fu_progress_add_step
    - fu_progress_step_done
    - FU_DEVICE
    - FU_FPC_DEVICE
    - fu_chunk_get_data
    - g_byte_array_append
    - fu_chunk_array_length
    - fu_progress_get_child
    - fu_progress_set_id
    - fu_firmware_get_stream
    - g_set_error
    - fu_chunk_array_index
    - fu_device_has_private_flag
    - fu_device_retry_full
    - FU_IS_FPC_FF2_FIRMWARE
    - g_autoptr
    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:690,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:691,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:692,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:693,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:694,1
    - Dst: fu_progress_add_step
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - device
    - progress
    argTypes:
    - FuDevice*
    - FuProgress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 687
    functionDepth: 3
    functionLinenumber: 687
    functionLinenumberEnd: 696
    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 *device, FuProgress *progress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_version_from_uint32
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:701,1
    - Dst: fu_device_get_version_format
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - version_raw
    argTypes:
    - FuDevice*
    - guint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 702
    functionName: fu_fpc_device_convert_version
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_version_from_uint32
    - fu_device_get_version_format
    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:707,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:707,1
    - Dst: fu_device_add_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:708,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:708,1
    - Dst: fu_device_add_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:709,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:709,1
    - Dst: fu_device_set_version_format
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:710,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:710,1
    - Dst: fu_device_set_remove_delay
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:711,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:711,1
    - Dst: fu_device_add_protocol
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:712,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:712,1
    - Dst: fu_device_set_summary
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:713,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:713,1
    - Dst: fu_device_set_install_duration
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:714,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:714,1
    - Dst: fu_device_set_firmware_size_min
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:715,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:715,1
    - Dst: fu_device_set_firmware_size_max
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:716,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:716,1
    - Dst: fu_usb_device_add_interface
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:717,1
    - Dst: FU_USB_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:717,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:718,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:718,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:719,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:719,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:720,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:720,1
    - Dst: fu_device_register_private_flag
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:721,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/plugins/fpc/fu-fpc-device.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFpcDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 704
    functionDepth: 6
    functionLinenumber: 704
    functionLinenumberEnd: 722
    functionName: fu_fpc_device_init
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-device.c
    functionUses: 0
    functionsReached:
    - fu_device_add_flag
    - fu_device_register_private_flag
    - fu_device_set_remove_delay
    - fu_device_set_firmware_size_min
    - fu_device_set_firmware_size_max
    - fu_device_add_private_flag
    - fu_usb_device_add_interface
    - FU_DEVICE
    - fu_device_set_summary
    - fu_device_set_install_duration
    - fu_device_set_version_format
    - FU_USB_DEVICE
    - fu_device_add_protocol
    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:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFpcDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 737
    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:
    - Dst: fu_firmware_set_size_max
      Src: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c:65,1
    - Dst: FU_FIRMWARE
      Src: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFpcFf2Firmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: fu_fpc_ff2_firmware_init
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-ff2-firmware.c
    functionUses: 0
    functionsReached:
    - FU_FIRMWARE
    - fu_firmware_set_size_max
    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:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFpcFf2FirmwareClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    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_udev_subsystem
      Src: /src/fwupd/plugins/fpc/fu-fpc-plugin.c:28,1
    - Dst: fu_plugin_add_device_gtype
      Src: /src/fwupd/plugins/fpc/fu-fpc-plugin.c:29,1
    - Dst: fu_plugin_add_firmware_gtype
      Src: /src/fwupd/plugins/fpc/fu-fpc-plugin.c:30,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/plugins/fpc/fu-fpc-plugin.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: fu_fpc_plugin_constructed
    functionSourceFile: /src/fwupd/plugins/fpc/fu-fpc-plugin.c
    functionUses: 0
    functionsReached:
    - FU_PLUGIN
    - fu_plugin_add_firmware_gtype
    - G_OBJECT_CLASS
    - fu_plugin_add_udev_subsystem
    - fu_plugin_add_device_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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuFpcPluginClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/contrib/ci/tests/fu-gerror-not-set.c:12,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/contrib/ci/tests/fu-gerror-not-set.c:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 17
    functionName: fu_gerror_not_set_test
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-gerror-not-set.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - g_prefix_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_gerror_not_set_test(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: foo_cb
      Src: /src/fwupd/contrib/ci/tests/fu-gerror-missing-suffix.c:12,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/contrib/ci/tests/fu-gerror-missing-suffix.c:13,1
    - Dst: g_prefix_error_literal
      Src: /src/fwupd/contrib/ci/tests/fu-gerror-missing-suffix.c:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 17
    functionName: fu_gerror_missing_suffix_test
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-gerror-missing-suffix.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - foo_cb
    - g_prefix_error_literal
    linkageType: ''
    returnType: void
    signature: void fu_gerror_missing_suffix_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:12,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:13,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:14,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:15,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:16,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:17,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:18,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:19,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:20,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:21,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:22,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:23,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:24,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:25,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:26,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:27,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:28,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:29,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:30,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:31,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:32,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:33,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:34,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:35,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:36,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:37,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:38,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:39,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:40,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:41,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:42,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:43,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:44,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:45,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:46,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:47,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:48,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:49,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:50,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:51,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:52,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:53,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:54,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:55,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:56,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:57,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:58,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:59,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:60,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:61,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:62,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:63,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:64,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:65,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:66,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:67,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:68,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:69,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:70,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:71,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:72,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:73,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:74,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:75,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:76,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:77,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:78,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:79,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:80,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:81,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:82,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:83,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:84,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:85,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:86,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:87,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:88,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:89,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:90,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:91,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:92,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:93,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:94,1
    - Dst: call
      Src: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 96
    functionName: fu_magic_numbers_inline
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c
    functionUses: 0
    functionsReached:
    - call
    linkageType: ''
    returnType: void
    signature: void fu_magic_numbers_inline(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/fwupd/contrib/ci/tests/fu-gerror-literal.c:12,1
    - Dst: g_set_error
      Src: /src/fwupd/contrib/ci/tests/fu-gerror-literal.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 15
    functionName: fu_gerror_literal_test
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-gerror-literal.c
    functionUses: 0
    functionsReached:
    - g_set_error
    linkageType: ''
    returnType: void
    signature: void fu_gerror_literal_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_device_set_version_raw
      Src: /src/fwupd/contrib/ci/tests/fu-device-convert-version.c:12,1
    - Dst: fu_device_set_version
      Src: /src/fwupd/contrib/ci/tests/fu-device-convert-version.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 14
    functionName: fu_device_convert_version_test
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-device-convert-version.c
    functionUses: 0
    functionsReached:
    - fu_device_set_version
    - fu_device_set_version_raw
    linkageType: ''
    returnType: void
    signature: void fu_device_convert_version_test(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - foo
    argTypes:
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 17
    functionName: fu_equals_true
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-equals-true.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_equals_true(guint8 foo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ascii_strtoull
      Src: /src/fwupd/contrib/ci/tests/fu-blocked-funcs.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: fu_blocked_funcs_test
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-blocked-funcs.c
    functionUses: 0
    functionsReached:
    - g_ascii_strtoull
    linkageType: ''
    returnType: void
    signature: void fu_blocked_funcs_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/contrib/ci/tests/fu-comments.c:14,1
    - Dst: g_debug
      Src: /src/fwupd/contrib/ci/tests/fu-comments.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 19
    functionName: fu_comments
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-comments.c
    functionUses: 0
    functionsReached:
    - g_debug
    linkageType: ''
    returnType: void
    signature: void fu_comments(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/contrib/ci/tests/fu-gerror-domain.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 14
    functionName: fu_gerror_domain_test
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-gerror-domain.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_gerror_domain_test(GError **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error_literal
      Src: /src/fwupd/contrib/ci/tests/fu-gerror-false-returns.c:13,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 15
    functionName: fu_gerror_false_returns_test
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-gerror-false-returns.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    linkageType: ''
    returnType: void
    signature: void fu_gerror_false_returns_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_memread_uint16
      Src: /src/fwupd/contrib/ci/tests/fu-memread.c:15,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/contrib/ci/tests/fu-memread.c:17,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/contrib/ci/tests/fu-memread.c:19,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/contrib/ci/tests/fu-memread.c:21,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/contrib/ci/tests/fu-memread.c:23,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/contrib/ci/tests/fu-memread.c:25,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/contrib/ci/tests/fu-memread.c:27,1
    - Dst: fu_memread_uint16
      Src: /src/fwupd/contrib/ci/tests/fu-memread.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 30
    functionName: fu_memread_func
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-memread.c
    functionUses: 0
    functionsReached:
    - fu_memread_uint16
    linkageType: ''
    returnType: void
    signature: void fu_memread_func(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/contrib/ci/tests/fu-nesting-depth.c:18,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 24
    functionName: fu_nesting_depth_test
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-nesting-depth.c
    functionUses: 0
    functionsReached:
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_nesting_depth_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_task_return_new_error
      Src: /src/fwupd/contrib/ci/tests/fu-gtask.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: fu_gtask_test
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-gtask.c
    functionUses: 0
    functionsReached:
    - g_task_return_new_error
    linkageType: ''
    returnType: void
    signature: void fu_gtask_test(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/contrib/ci/tests/fu-gerror-no-return.c:12,1
    - Dst: foo_cb
      Src: /src/fwupd/contrib/ci/tests/fu-gerror-no-return.c:13,1
    - Dst: g_set_error_literal
      Src: /src/fwupd/contrib/ci/tests/fu-gerror-no-return.c:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 16
    functionName: fu_gerror_no_return_test
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-gerror-no-return.c
    functionUses: 0
    functionsReached:
    - g_set_error_literal
    - g_autoptr
    - foo_cb
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_gerror_no_return_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: fu_zero_init_test
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-zero-init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_zero_init_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuHughskiColorhugDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: fu_param_self_native_recv
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-param-self-native.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_param_self_native_recv(FuHughskiColorhugDevice *self, GError
      **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: fu_param_self_native_send
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-param-self-native.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_param_self_native_send(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_HUGHSKI_COLORHUG_DEVICE
      Src: /src/fwupd/contrib/ci/tests/fu-param-self-native.c:23,1
    - Dst: fu_param_self_native_send
      Src: /src/fwupd/contrib/ci/tests/fu-param-self-native.c:24,1
    - Dst: FU_DEVICE
      Src: /src/fwupd/contrib/ci/tests/fu-param-self-native.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - error
    argTypes:
    - FuDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: fu_param_self_native_attach
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-param-self-native.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE
    - fu_param_self_native_send
    - FU_HUGHSKI_COLORHUG_DEVICE
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_param_self_native_attach(FuDevice *device, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FU_DEVICE_CLASS
      Src: /src/fwupd/contrib/ci/tests/fu-param-self-native.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - klass
    argTypes:
    - FuHughskiColorhugDeviceClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: fu_param_self_native_class_init
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-param-self-native.c
    functionUses: 0
    functionsReached:
    - FU_DEVICE_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_param_self_native_class_init(FuHughskiColorhugDeviceClass *klass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuFirmware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: fu_param_self_firmware
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-param-self-firmware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_param_self_firmware(FuFirmware *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/contrib/ci/tests/fu-device-display.c:12,1
    - Dst: fu_device_get_name
      Src: /src/fwupd/contrib/ci/tests/fu-device-display.c:12,1
    - Dst: fu_device_get_id
      Src: /src/fwupd/contrib/ci/tests/fu-device-display.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: fu_device_display_func
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-device-display.c
    functionUses: 0
    functionsReached:
    - fu_device_get_id
    - g_debug
    - fu_device_get_name
    linkageType: ''
    returnType: void
    signature: void fu_device_display_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_strsafe
      Src: /src/fwupd/contrib/ci/tests/fu-strsafe-offset.c:12,1
    - Dst: fu_strsafe
      Src: /src/fwupd/contrib/ci/tests/fu-strsafe-offset.c:13,1
    - Dst: fu_strsafe
      Src: /src/fwupd/contrib/ci/tests/fu-strsafe-offset.c:14,1
    - Dst: fu_strsafe
      Src: /src/fwupd/contrib/ci/tests/fu-strsafe-offset.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 16
    functionName: fu_strsafe_offset
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-strsafe-offset.c
    functionUses: 0
    functionsReached:
    - fu_strsafe
    linkageType: ''
    returnType: void
    signature: void fu_strsafe_offset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: fu_rustgen_bitshifts
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-rustgen-bitshifts.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guint32
    signature: guint32 fu_rustgen_bitshifts(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_return_val_if_fail
      Src: /src/fwupd/contrib/ci/tests/fu-null-false-returns.c:13,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - foo
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 19
    functionName: fu_null_false_returns
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-null-false-returns.c
    functionUses: 0
    functionsReached:
    - g_return_val_if_fail
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_null_false_returns(gpointer foo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: fu_magic_numbers_buffer
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-magic-numbers-buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_magic_numbers_buffer(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 18
    functionName: fu_blocked_goto_test
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-blocked-goto.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_blocked_goto_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_printerr
      Src: /src/fwupd/contrib/ci/tests/fu-gprint.c:20,1
    - Dst: g_debug
      Src: /src/fwupd/contrib/ci/tests/fu-gprint.c:22,1
    - Dst: g_info
      Src: /src/fwupd/contrib/ci/tests/fu-gprint.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 24
    functionName: fu_gprint
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-gprint.c
    functionUses: 0
    functionsReached:
    - g_info
    - g_printerr
    - g_debug
    linkageType: ''
    returnType: void
    signature: void fu_gprint(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - FuDevice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: fu_param_self_device
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-param-self-device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_param_self_device(FuDevice *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - stage
    - user_data
    argTypes:
    - enum flashrom_progress_stage
    - gboolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: foo_cb
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-enum.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void foo_cb(enum flashrom_progress_stage stage, gboolean user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/fwupd/contrib/ci/tests/fu-gobject-finalize.c:15,1
    - Dst: G_OBJECT_CLASS
      Src: /src/fwupd/contrib/ci/tests/fu-gobject-finalize.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - GObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: fu_gobject_finalize
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-gobject-finalize.c
    functionUses: 0
    functionsReached:
    - g_free
    - G_OBJECT_CLASS
    linkageType: ''
    returnType: void
    signature: void fu_gobject_finalize(GObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_version_raw
      Src: /src/fwupd/contrib/ci/tests/fu-firmware-convert-version.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 2
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: fu_firmware_convert_version_test
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-firmware-convert-version.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version_raw
    linkageType: ''
    returnType: void
    signature: void fu_firmware_convert_version_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fu_firmware_set_version
      Src: /src/fwupd/contrib/ci/tests/fu-firmware-convert-version.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: fu_firmware_convert_version_test2
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-firmware-convert-version.c
    functionUses: 0
    functionsReached:
    - fu_firmware_set_version
    linkageType: ''
    returnType: void
    signature: void fu_firmware_convert_version_test2(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/contrib/ci/tests/fu-small-conditionals-with-braces.c:13,1
    - Dst: g_debug
      Src: /src/fwupd/contrib/ci/tests/fu-small-conditionals-with-braces.c:14,1
    - Dst: g_debug
      Src: /src/fwupd/contrib/ci/tests/fu-small-conditionals-with-braces.c:17,1
    - Dst: g_debug
      Src: /src/fwupd/contrib/ci/tests/fu-small-conditionals-with-braces.c:20,1
    - Dst: g_debug
      Src: /src/fwupd/contrib/ci/tests/fu-small-conditionals-with-braces.c:22,1
    - Dst: fu_this_that_and_something_else
      Src: /src/fwupd/contrib/ci/tests/fu-small-conditionals-with-braces.c:24,1
    - Dst: fu_this_that_and_something_else
      Src: /src/fwupd/contrib/ci/tests/fu-small-conditionals-with-braces.c:25,1
    - Dst: g_debug
      Src: /src/fwupd/contrib/ci/tests/fu-small-conditionals-with-braces.c:26,1
    - Dst: g_debug
      Src: /src/fwupd/contrib/ci/tests/fu-small-conditionals-with-braces.c:30,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - foo
    argTypes:
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 32
    functionName: fu_small_conditionals_with_braces
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-small-conditionals-with-braces.c
    functionUses: 0
    functionsReached:
    - fu_this_that_and_something_else
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_small_conditionals_with_braces(guint8 foo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - buf
    - user_data
    argTypes:
    - guint8[]
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: fu_variable_lowercase
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-variable-lowercase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_variable_lowercase(guint8 buf[], gpointer user_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 30
    functionName: fu_function_length_switch_test
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-function-length-switch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_function_length_switch_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: WrongPrefix
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: "struct FuStructPrefix {\n\tguint8 buf;\n}"
    signature: "struct FuStructPrefix {\n\tguint8 buf;\n} WrongPrefix"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: FU_COMMON_VERSION_DECODE_BCD
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-function-name.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FU_COMMON_VERSION_DECODE_BCD(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: wrong_name_test
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-function-name.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wrong_name_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuExample*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: fu_function_name_set_version
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-function-name.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_function_name_set_version(FuExample *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - self
    - dummy
    - error
    argTypes:
    - FuExample*
    - guint
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: fu_function_name_protocol_set
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-function-name.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_function_name_protocol_set(FuExample *self, guint dummy,
      GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuExample*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: fu_function_name_Enter_SBL
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-function-name.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_function_name_Enter_SBL(FuExample *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - errnum
    argTypes:
    - gint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: fwupd_strerror
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-function-name.c
    functionUses: 40
    functionsReached: []
    linkageType: ''
    returnType: gchar
    signature: 'gchar *

      fwupd_strerror(gint errnum)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: fu_blocked_bitset_test
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-blocked-bitset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_blocked_bitset_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_debug
      Src: /src/fwupd/contrib/ci/tests/fu-gerror-deref.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: fu_gerror_deref
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-gerror-deref.c
    functionUses: 0
    functionsReached:
    - g_debug
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_gerror_deref(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - error
    argTypes:
    - FuCustomDevice*
    - GError**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: fu_gerror_void_return
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-gerror-void-return.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fu_gerror_void_return(FuCustomDevice *self, GError **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: fu_static_vars_test
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-static-vars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_static_vars_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_autoptr
      Src: /src/fwupd/contrib/ci/tests/fu-rustgen-vars.c:12,1
    - Dst: fu_struct_fixme_new
      Src: /src/fwupd/contrib/ci/tests/fu-rustgen-vars.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: fu_rustgen_vars_test
    functionSourceFile: /src/fwupd/contrib/ci/tests/fu-rustgen-vars.c
    functionUses: 0
    functionsReached:
    - g_autoptr
    - fu_struct_fixme_new
    linkageType: ''
    returnType: gboolean
    signature: gboolean fu_rustgen_vars_test(void)
  - 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_lenovo_accessory_impl_dfu_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:
    - fwupd_client_get_devices
    - QCoreApplication::exec
    - fwupd_client_new
    - auto::setFuture
    - QFutureWatcher<GPtrArray*>::QFutureWatcher<GPtrArray*>
    - fu_lenovo_accessory_impl_dfu_exit
    - g_cancellable_new
    - fu_util_cmd_array_run
    - g_autoptr
    - fwupd_client_connect
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
Fuzzer filename: empty-file.cpp
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- fu-lenovo-accessory-struct.h
- fu-hughski-colorhug-plugin.h
- uuid.h
- fu-plugin-builtin.h
- fu-dell-kestrel-common.h
- fu-genesys-gl32xx-plugin.h
- fwupd-enums-private.h
- fu-device-private.h
- fu-fresco-pd-firmware.h
- fu-amd-gpu-psp-firmware.h
- fu-lenovo-accessory-hid-bootloader.h
- fwupd-json-array.h
- fu-ifd-struct.h
- fu-goodixtp-plugin.h
- libfwupdplugin/fu-pefile-firmware.h
- fu-usb-device-ds20.h
- fu-ifd-bios.h
- fu-asus-hid-plugin.h
- fu-rts54hub-plugin.h
- inttypes.h
- polkit/polkit.h
- efivar/efivar.h
- fu-cab-firmware.h
- linux/hidraw.h
- fu-zip-file.h
- fu-elan-kbd-common.h
- fu-steelseries-gamepad-struct.h
- fu-dell-kestrel-rmm.h
- fu-msr-plugin.h
- fu-jcat-engine.h
- fu-system76-launch-device.h
- fu-test-ble-device.h
- libfwupdplugin/fu-efi-vss-auth-variable.h
- fu-tpm-plugin.h
- linux/mei.h
- fu-elantp-common.h
- fu-hpi-cfu-device.h
- fu-blestech-tp-firmware.h
- fu-redfish-legacy-device.h
- fu-thunderbolt-plugin.h
- libfwupdplugin/fu-ifd-bios.h
- libfwupdplugin/fu-firmware-common.h
- fu-usb-backend.h
- glib-object.h
- fu-dell-kestrel-ec.h
- gnutls/pkcs7.h
- fu-usb-hid-descriptor.h
- fu-vli-device.h
- libfwupdplugin/fu-ihex-firmware.h
- fu-uefi-common.h
- fu-config-struct.h
- fu-hwids.h
- fu-cfu-plugin.h
- fu-synaptics-cxaudio-device.h
- dirent.h
- libfwupdplugin/fu-uefi-device.h
- fu-ilitek-its-block.h
- fu-wacom-usb-device.h
- fu-client.h
- fu-qc-firehose-usb-device.h
- fu-steelseries-firmware.h
- fu-cfu-struct.h
- fu-uefi-kek-plugin.h
- linux/netlink.h
- fu-efi-hard-drive-device-path.h
- libfwupdplugin/fu-device.h
- fu-rts54hub-rtd21xx-foreground.h
- fu-logitech-tap-touch-firmware.h
- fu-intel-amt-plugin.h
- fu-legion-hid2-struct.h
- fu-ipmi-device.h
- fu-hid-report-item.h
- fu-raydium-tp-plugin.h
- fwupd-bios-setting-struct.h
- fu-uf2-firmware.h
- libfwupd/fwupd-json-parser.h
- libfwupdplugin/fu-efi-load-option.h
- fu-chunk-array.h
- openssl/rsa.h
- fu-ccgx-firmware.h
- fwupd-jcat-file.h
- fu-synaptics-rmi-firmware.h
- fu-framework-qmk-device.h
- fu-efi-volume.h
- fu-oprom-firmware.h
- fu-efi-struct.h
- fu-blestech-tp-struct.h
- libmnl/libmnl.h
- fu-amd-gpu-plugin.h
- fu-elan-kbd-debug-device.h
- fu-synaptics-mst-firmware.h
- fu-efi-ftw-store.h
- fu-ioctl-private.h
- fu-plugin-list.h
- fu-intel-thunderbolt-struct.h
- fu-self-test-struct.h
- fu-synaptics-cxaudio-firmware.h
- fu-rts54hub-rtd21xx-device.h
- fu-sunwinon-hid-struct.h
- glib/gi18n.h
- fwupd-remote-struct.h
- fu-algoltek-usbcr-struct.h
- fu-mm-qcdm-device.h
- fu-igsc-aux-firmware.h
- fu-pefile-firmware.h
- fu-tpm-v1-device.h
- fu-mm-fdl-device.h
- libfwupdplugin/fu-x509-certificate.h
- libfwupdplugin/fu-version-common.h
- libfwupdplugin/fu-dpaux-device.h
- fu-raydium-tp-firmware.h
- fu-qc-firehose-plugin.h
- fu-egis-moc-common.h
- libfwupdplugin/fu-v4l-device.h
- errno.h
- fu-scsi-device.h
- fu-bluez-device.h
- fwupd-security-attr-private.h
- fwupd-remote-private.h
- fu-genesys-usbhub-firmware.h
- fu-ep963x-firmware.h
- fu-efi-device-path.h
- openssl/evp.h
- fwupd-common.h
- fu-acpi-facp.h
- fu-synaptics-prometheus-plugin.h
- fu-mem-private.h
- sys/socket.h
- fu-focal-fp-plugin.h
- fu-dell-kestrel-hid-device.h
- fu-snapd-uefi-plugin.h
- fu-bcm57xx-firmware.h
- fu-uefi-dbx-plugin.h
- fu-wacom-usb-module-touch.h
- fu-dfu-common.h
- libfwupdplugin/fu-csv-entry.h
- libfwupd/fwupd-bios-setting.h
- linux/genetlink.h
- fu-csv-firmware.h
- fu-mediatek-scaler-struct.h
- fu-jabra-gnp-firmware.h
- fu-oprom-device.h
- fu-cfu-payload.h
- fu-vli-plugin.h
- fu-edid.h
- fu-qc-firehose-raw-device.h
- fu-dell-kestrel-package.h
- fu-pixart-tp-device.h
- fu-hpi-cfu-plugin.h
- sys/random.h
- fu-parade-lspcon-plugin.h
- fu-usb-device-ds20-struct.h
- cpuid.h
- fu-amd-gpu-device.h
- fu-json-firmware.h
- openssl/crypto.h
- fu-jabra-plugin.h
- fu-igsc-oprom-firmware.h
- fu-coswid-firmware.h
- fu-elantp-hid-device.h
- fu-sunwinon-hid-device.h
- fu-bitmap-image.h
- fu-common-private.h
- fu-vbe-device.h
- libfwupd/fwupd-device.h
- libfwupdplugin/fu-intel-thunderbolt-firmware.h
- fu-cabinet.h
- libdrm/amdgpu_drm.h
- fu-kinetic-dp-secure-firmware.h
- fu-release-common.h
- libfwupdplugin/fu-efi-signature-list.h
- fu-elan-kbd-runtime.h
- fu-vli-usbhub-common.h
- fu-systemd.h
- fu-nordic-hid-cfg-channel.h
- fu-synaptics-mst-plugin.h
- fu-qc-firehose-struct.h
- fu-linux-display-plugin.h
- fu-bcm57xx-stage1-image.h
- fu-io-channel.h
- sys/stat.h
- libfwupdplugin/fu-path-store.h
- fu-path-struct.h
- glib/gstdio.h
- fu-mediatek-scaler-firmware.h
- fu-amd-kria-plugin.h
- fu-wch-ch341a-plugin.h
- fu-wch-ch347-plugin.h
- fu-engine-helper.h
- fu-synaptics-rmi-v5-device.h
- fu-parade-usbhub-device.h
- fu-focal-touch-struct.h
- fu-qc-s5gen2-fw-struct.h
- fu-engine-request.h
- fu-dfuse-firmware.h
- libfwupd/fwupd-remote.h
- fu-legion-hid2-plugin.h
- fu-endian.h
- fu-thunderbolt-common.h
- fu-volume.h
- fu-tpm-eventlog-v2.h
- fu-vli-usbhub-pd-device.h
- libfwupdplugin/fu-byte-array.h
- libfwupd/fwupd-client-sync.h
- fu-usb-endpoint-private.h
- fu-dell-dock-hub.h
- fu-udev-device-private.h
- fu-fresco-pd-plugin.h
- fu-acpi-ivrs-plugin.h
- fu-intel-amt-device.h
- fu-vli-usbhub-device.h
- fu-security-attr.h
- QtConcurrentRun
- fu-corsair-device.h
- sys/inotify.h
- fu-acpi-dmar-plugin.h
- fu-wacom-raw-struct.h
- fu-steelseries-gamepad.h
- fwupd-version.h
- fu-jcat-gnutls-pkcs7-engine.h
- fu-synaptics-vmm9-device.h
- fu-lenovo-accessory-hid-device.h
- fu-uefi-backend.h
- libfwupdplugin/fu-kenv.h
- linux/fs.h
- fu-dfu-target-private.h
- fu-ep963x-common.h
- fu-uf2-device.h
- libfwupdplugin/fu-efi-file.h
- fu-efi-vss2-variable-store.h
- libfwupdplugin/fu-mem.h
- fu-fuzzer.h
- fu-darwin-efivars.h
- fu-usi-dock-plugin.h
- openssl/cms.h
- fu-logitech-bulkcontroller-struct.h
- fu-efi-file-path-device-path.h
- fu-cfi-struct.h
- fwupd-security-attr.h
- fu-pixart-tp-haptic-device.h
- fu-tpm-eventlog-item.h
- fu-ccgx-hpi-common.h
- fu-steelseries-fizz-tunnel.h
- fu-cfi-device.h
- fu-synaptics-rmi-plugin.h
- fu-ccgx-common.h
- fu-mtd-plugin.h
- fu-mm-device.h
- fu-qc-s5gen2-struct.h
- fu-device-progress.h
- fu-dpaux-device.h
- fu-usb-config-descriptor.h
- fu-mm-common.h
- fu-goodixtp-struct.h
- fu-steelseries-device.h
- fu-uefi-grub-device.h
- fu-devlink-plugin.h
- fu-context.h
- libfwupdplugin/fu-tpm-eventlog-item.h
- libfwupdplugin/fu-ifwi-cpd-firmware.h
- fu-rts54hub-device.h
- fwupd-test.h
- fu-dpaux-struct.h
- fu-acpi-phat-version-element.h
- fu-jcat-sha256-engine.h
- fu-cpu-plugin.h
- fu-algoltek-usbcr-firmware.h
- libfwupdplugin/fu-pkcs7.h
- fu-polkit-authority.h
- fu-ihex-struct.h
- fu-dell-dock-common.h
- winerror.h
- fu-acpi-phat-health-record.h
- sys/wait.h
- fu-ifd-firmware.h
- libfwupdplugin/fu-elf-firmware.h
- fu-synaptics-cxaudio-plugin.h
- sys/mount.h
- linux/gpio.h
- fu-bios-plugin.h
- fu-srec-struct.h
- fwupd-json-parser.h
- fu-algoltek-usb-firmware.h
- fu-release.h
- libfwupd/fwupd-release.h
- fu-daemon.h
- libusb.h
- fu-upower-plugin.h
- fu-jabra-gnp-struct.h
- fu-drm-device-private.h
- fu-genesys-usbhub-dev-firmware.h
- fu-amd-gpu-uma.h
- fu-intel-mchi-device.h
- fwupd-plugin.h
- fu-telink-dfu-struct.h
- libfwupdplugin/fu-output-stream.h
- fu-uswid-struct.h
- libfwupdplugin/fu-hid-report.h
- fu-wacom-raw-aes-device.h
- zlib.h
- fwupd-json-struct.h
- fu-uefi-db-plugin.h
- fu-uefi-mok-plugin.h
- fu-fastboot-device.h
- fu-history.h
- fwupd.h
- fu-backend.h
- fu-starlabs-coreboot-device.h
- libfwupdplugin/fu-ifd-firmware.h
- fu-usb-device-private.h
- errhandlingapi.h
- fu-acpi-phat-version-record.h
- fwupd-error.h
- fu-focal-touch-hid-device.h
- fu-ccgx-struct.h
- fu-dell-dock-mst.h
- fu-elf-firmware.h
- libfwupdplugin/fu-mei-device.h
- fu-usb-interface-private.h
- fu-aver-safeisp-device.h
- fu-aver-hid-plugin.h
- fu-csv-entry.h
- fu-dell-kestrel-hid-struct.h
- fu-srec-firmware.h
- fu-fpc-ff2-firmware.h
- linux/mmc/ioctl.h
- fwupd-error-struct.h
- fu-security-attrs-private.h
- linux/videodev2.h
- readline/readline.h
- fu-pkcs7.h
- fu-parade-usbhub-firmware.h
- fu-kinetic-dp-device.h
- libfwupdplugin/fu-hid-device.h
- fu-partial-input-stream.h
- fwupd-build-glib-2-72.h
- fu-ti-tps6598x-plugin.h
- fu-synaptics-rmi-common.h
- fu-dell-kestrel-plugin.h
- fu-cbor-common.h
- fu-ep963x-device.h
- fu-vbe-simple-device.h
- fu-context-private.h
- fu-dfu-firmware-private.h
- fu-wacom-usb-module-bluetooth.h
- fu-nvme-device.h
- fu-synaptics-prometheus-device.h
- openssl/rand.h
- fu-pixart-rf-firmware.h
- fu-intel-mkhi-plugin.h
- fu-sunwinon-hid-plugin.h
- fu-thunderbolt-device.h
- glib-unix.h
- fu-uefi-db-device.h
- fu-vli-pd-device.h
- fu-uefi-mok-common.h
- fu-intel-me-smbios-plugin.h
- fu-aver-hid-struct.h
- fu-bios-setting.h
- fu-efi-x509-signature-private.h
- fu-mm-qdu-mbim-device.h
- fu-redfish-smc-device.h
- fu-wch-ch341a-struct.h
- sys/utsname.h
- fu-dell-dock-ec.h
- tss2/tss2_esys.h
- fu-console.h
- fu-uefi-dbx-common.h
- fu-vli-pd-common.h
- fwupd-client-sync.h
- libfwupdplugin/fu-context-private.h
- linux/ethtool.h
- fu-genesys-hubhid-device.h
- fu-uefi-update-info.h
- fu-himax-tp-plugin.h
- fu-ioctl.h
- libfwupdplugin/fu-oprom-firmware.h
- fu-logitech-hidpp-device.h
- fu-logitech-rallysystem-plugin.h
- libfwupdplugin/fu-io-channel.h
- libfwupdplugin/fu-smbios.h
- fu-legion-hid-firmware.h
- libfwupdplugin/fu-efi-device-path-list.h
- fu-steelseries-plugin.h
- fu-pixart-rf-ble-device.h
- fu-logitech-tap-touch-device.h
- fu-elan-kbd-struct.h
- fu-pci-struct.h
- fu-sum.h
- fu-engine-struct.h
- fu-serio-device.h
- fu-security-attr-common.h
- fu-elf-struct.h
- fu-redfish-smbios.h
- fu-fdt-firmware.h
- fu-novatek-ts-struct.h
- fu-quirks.h
- libfwupd/fwupd-plugin.h
- fu-lxs-touch-firmware.h
- fu-uefi-struct.h
- fu-efi-common.h
- fu-logitech-hidpp-runtime-bolt.h
- fu-cab-image.h
- fu-efivars-private.h
- fu-synaptics-mst-device.h
- fu-composite-input-stream.h
- fu-algoltek-usbcr-device.h
- fu-sunplus-camera-device.h
- fu-uefi-capsule-plugin.h
- fu-wch-ch347-cfi-device.h
- fu-kinetic-dp-plugin.h
- fu-cab-firmware-private.h
- fu-redfish-plugin.h
- fu-bcm57xx-common.h
- fu-analogix-firmware.h
- fu-ilitek-its-common.h
- fwupd-release-struct.h
- fu-unix-seekable-input-stream.h
- lzma.h
- fu-mtd-device.h
- fu-synaptics-vmm9-firmware.h
- fu-focal-touch-plugin.h
- fu-amd-gpu-psp-struct.h
- fu-vli-pd-firmware.h
- umockdev.h
- fu-test-device.h
- fu-device.h
- fu-kernel-search-path-private.h
- fu-pixart-tp-struct.h
- fu-logitech-hidpp-runtime-unifying.h
- fu-mei-device.h
- glib.h
- fu-kenv.h
- fu-scsi-struct.h
- libfwupdplugin/fu-security-attr.h
- fu-string.h
- fu-steelseries-sonic-struct.h
- fu-device-list.h
- fu-cros-ec-struct.h
- sys/ioctl.h
- libfwupdplugin/fu-fdt-image.h
- fu-firmware-struct.h
- libfwupdplugin/fu-efi-signature.h
- fu-redfish-device.h
- libfwupdplugin/fu-cab-image.h
- fu-uefi-pk-device.h
- fu-uefi-bgrt.h
- fu-pixart-rf-wireless-device.h
- fu-jabra-file-device.h
- fu-igsc-code-firmware.h
- fu-synaptics-rmi-v6-device.h
- fu-legion-hid2-bl-device.h
- fu-lenovo-dock-device.h
- fu-test.h
- libfwupdplugin/fu-dfuse-firmware.h
- libfwupdplugin/fu-efi-x509-device.h
- fu-framework-qmk-plugin.h
- fu-drm-device.h
- systemd/sd-daemon.h
- signal.h
- fu-version-common.h
- ../plugins/test/fu-test-plugin.h
- fu-protobuf.h
- fu-cbor-item-private.h
- fu-powerd-struct.h
- fu-focal-fp-struct.h
- fu-elantp-firmware.h
- fu-remote.h
- fu-wistron-dock-plugin.h
- fu-logitech-hidpp-struct.h
- fu-logitech-hidpp-runtime.h
- fu-ilitek-its-plugin.h
- libfwupdplugin/fu-string.h
- fu-ebitdo-plugin.h
- fu-ilitek-its-device.h
- fu-hid-device.h
- fu-genesys-usbhub-pd-firmware.h
- fu-kinetic-dp-puma-firmware.h
- fu-efi-file.h
- fu-emmc-device.h
- xf86drmMode.h
- libfwupdplugin/fu-tpm-eventlog.h
- fu-qc-firehose-impl-common.h
- fu-uefi-sbat-firmware.h
- fu-config-private.h
- fu-ccgx-dmc-firmware.h
- fu-amd-kria-persistent-struct.h
- stddef.h
- fu-intel-mchi-plugin.h
- fu-novatek-ts-firmware.h
- fu-kinetic-dp-puma-device.h
- fu-logitech-rallysystem-tablehub-device.h
- fu-focal-touch-firmware.h
- libfwupdplugin/fu-udev-device.h
- fu-block-device.h
- fu-pixart-tp-section.h
- fu-igsc-oprom-device.h
- fu-synaptics-cape-firmware.h
- libfwupd/fwupd-json-object.h
- fu-linux-lockdown-struct.h
- libfwupdplugin/fu-efi-file-path-device-path.h
- fu-cfu-module.h
- fu-himax-tp-hid-device.h
- fu-jcat-sha512-engine.h
- fu-uefi-recovery-plugin.h
- fu-uf2-plugin.h
- fu-qc-s5gen2-impl.h
- fu-cab-struct.h
- fu-mm-fastboot-device.h
- fu-kinetic-dp-struct.h
- fu-bnr-dp-device.h
- fwupd-json-common-private.h
- openssl/x509.h
- fwupd-device-struct.h
- fu-mediatek-scaler-common.h
- libfwupd/fwupd-build.h
- fu-system76-launch-plugin.h
- fu-parade-usbhub-common.h
- fu-wacom-usb-android-device.h
- libfwupdplugin/fu-volume.h
- fu-android-boot-plugin.h
- fu-wistron-dock-struct.h
- fu-gpio-device.h
- fu-cfu-device.h
- fu-usb-bos-descriptor-private.h
- fu-thunderbolt-controller.h
- fu-freebsd-efivars.h
- fu-qsi-dock-child-device.h
- timezoneapi.h
- fu-ccgx-plugin.h
- fu-msgpack-item.h
- fwupd-resources.h
- fu-acpi-ivrs.h
- fwupd-request.h
- libfwupdplugin/fu-usb-endpoint.h
- fu-mm-backend.h
- stdlib.h
- fu-amd-gpu-atom-firmware.h
- libfwupdplugin/fu-ifd-image.h
- libfwupdplugin/fu-cfi-device.h
- fu-dell-dock-plugin.h
- libfwupdplugin/fu-usb-device-ms-ds20.h
- fu-amd-kria-som-eeprom-struct.h
- sys/sysmacros.h
- sys/efiio.h
- libfwupdplugin/fu-msgpack-item.h
- fu-tpm-eventlog-v1.h
- fu-hidraw-device.h
- wchar.h
- libfwupdplugin/fu-serio-device.h
- fu-dell-struct.h
- libfwupdplugin/fu-zip-file.h
- fu-wacom-raw-common.h
- libfwupd/fwupd-variant.h
- libfwupdplugin/fu-block-partition.h
- fu-telink-dfu-ble-device.h
- fu-synaptics-cape-device.h
- fu-usb-endpoint.h
- fu-emmc-plugin.h
- libfwupdplugin/fu-sum.h
- fu-elantp-struct.h
- fu-udev-backend.h
- fwupd-enums-struct.h
- libfwupdplugin/fu-block-device.h
- fu-bios-settings-private.h
- fu-engine-emulator.h
- fu-pixart-rf-receiver-device.h
- linux/ipmi_msgdefs.h
- fu-qsi-dock-plugin.h
- curl/curl.h
- fu-powerd-plugin.h
- gio/gunixinputstream.h
- fu-logitech-scribe-struct.h
- fu-logitech-tap-touch-common.h
- libfwupdplugin/fu-i2c-device.h
- fwupd-report.h
- sys/vfs.h
- fu-cros-ec-common.h
- fu-efi-variable-authentication2.h
- fu-legion-hid-device.h
- fu-usi-dock-dmc-device.h
- unistd.h
- fu-jabra-file-plugin.h
- fu-coswid-struct.h
- fu-nordic-hid-archive.h
- net/if.h
- fu-processor-device.h
- libfwupdplugin/fu-efivars.h
- fu-corsair-struct.h
- fu-lxs-touch-plugin.h
- fu-thelio-io-device.h
- fu-focal-fp-firmware.h
- fu-volume-locker.h
- fu-devlink-backend.h
- fu-debug.h
- fu-elan-kbd-device.h
- fu-uf2-struct.h
- libfwupdplugin/fu-protobuf.h
- fu-usb-bos-descriptor.h
- fu-ebitdo-device.h
- fu-progress-private.h
- fu-uefi-capsule-backend-freebsd.h
- fu-lxs-touch-device.h
- fu-elanfp-firmware.h
- fu-raydium-tp-image.h
- fu-test-plugin.h
- fu-asus-hid-struct.h
- fu-jabra-file-firmware.h
- fu-novatek-ts-plugin.h
- QCoreApplication
- fu-quirks-struct.h
- fu-intel-thunderbolt-firmware.h
- fu-firmware-private.h
- fu-usb-hid-descriptor-private.h
- fu-rts54hub-struct.h
- libfwupdplugin/fu-zip-firmware.h
- linux/nvme_ioctl.h
- sys/mman.h
- fu-wacom-usb-module-bluetooth-id6.h
- fu-goodix-moc-struct.h
- libfwupdplugin/fu-plugin.h
- libfwupdplugin/fu-context.h
- libfwupdplugin/fu-csv-firmware.h
- fu-igsc-aux-device.h
- libfwupdplugin/fu-efi-filesystem.h
- fu-synaptics-cape-hid-firmware.h
- fu-ti-tps6598x-pd-device.h
- fu-efi-x509-signature.h
- fu-redfish-backend.h
- fu-sunplus-camera-struct.h
- fu-usb-descriptor.h
- kenv.h
- fu-nordic-hid-firmware.h
- libfwupdplugin/fu-efi-x509-signature.h
- fu-jabra-gnp-common.h
- fu-ifd-image.h
- sys/efi.h
- libfwupdplugin/fu-cfu-payload.h
- fu-fdt-image.h
- fu-logitech-hidpp-common.h
- fu-acpi-table-struct.h
- libfwupdplugin/fu-efi-vss2-variable-store.h
- fu-redfish-network.h
- libfwupdplugin/fu-config.h
- fu-amd-pmc-device.h
- fu-partial-input-stream-private.h
- fu-hwids-private.h
- fu-fastboot-plugin.h
- fu-telink-dfu-hid-device.h
- fu-logitech-tap-sensor-device.h
- fu-himax-tp-firmware.h
- fu-dell-kestrel-ec-struct.h
- fu-parade-usbhub-plugin.h
- fu-qc-firehose-impl.h
- ../uefi-capsule/fu-uefi-capsule-plugin.h
- libfwupdplugin/fu-progress.h
- fu-intel-usb4-struct.h
- fu-synaptics-rmi-device.h
- fu-jcat-libcrypto-pkcs7-engine.h
- fu-bcm57xx-struct.h
- fu-goodixtp-brlb-device.h
- fu-analogix-plugin.h
- fu-fit-firmware.h
- fu-uefi-sbat-device.h
- libfwupdplugin/fu-coswid-firmware.h
- libfwupdplugin/fu-edid.h
- fu-thelio-io-plugin.h
- libfwupdplugin/fu-device-locker.h
- libfwupdplugin/fu-composite-input-stream.h
- fu-temporary-directory.h
- fu-input-stream.h
- fu-fresco-pd-device.h
- fu-logitech-tap-hdmi-device.h
- fwupd-variant.h
- libfwupdplugin/fu-intel-thunderbolt-nvm.h
- fu-engine.h
- fu-ti-tps6598x-firmware.h
- fu-tpm-struct.h
- fu-logitech-tap-plugin.h
- fu-linux-swap-plugin.h
- fu-wacom-usb-module-touch-id7.h
- fu-intel-cvs-plugin.h
- fu-jcat-result.h
- fu-linux-efivars.h
- libqmi-glib.h
- fcntl.h
- fu-jabra-device.h
- fu-fpc-struct.h
- fu-kernel.h
- openssl/err.h
- fu-pixart-tp-plp239-device.h
- locale.h
- fu-sbatlevel-section-struct.h
- fu-jabra-gnp-image.h
- fu-amd-pmc-plugin.h
- libfwupdplugin/fu-kernel-search-path.h
- sys/sysctl.h
- fwupd-request-private.h
- fu-crc.h
- fu-synaptics-prometheus-config.h
- fu-synaptics-cxaudio-struct.h
- fu-algoltek-usb-device.h
- math.h
- fu-wacom-usb-struct.h
- fu-rp-pico-plugin.h
- fu-parade-lspcon-device.h
- fu-mm-mhi-qcdm-device.h
- fu-intel-me-smbios-struct.h
- fu-dfu-device.h
- fwupd-client.h
- fwupd-client-struct.h
- fu-edid-struct.h
- fu-redfish-struct.h
- fu-elan-kbd-firmware.h
- fwupd-jcat-blob.h
- fu-ilitek-its-firmware.h
- fu-fpc-plugin.h
- fu-genesys-plugin.h
- fu-goodixtp-firmware.h
- fu-wacom-usb-common.h
- fu-redfish-multipart-device.h
- libfwupdplugin/fu-chunk.h
- fu-blestech-tp-plugin.h
- fu-dump.h
- fwupd-remote.h
- fu-efi-vss-auth-variable.h
- linux/uvcvideo.h
- fu-ep963x-plugin.h
- fu-corsair-common.h
- fu-efi-x509-device.h
- libfwupdplugin/fu-uswid-firmware.h
- fu-device-locker.h
- libfwupdplugin/fu-hid-descriptor.h
- libfwupd/fwupd-request.h
- libfwupdplugin/fu-ioctl.h
- fu-fdt-struct.h
- fu-usb-struct.h
- fu-path.h
- fu-ccgx-hpi-device.h
- fu-dell-kestrel-dpmux.h
- fu-pixart-tp-firmware.h
- fwupd-release.h
- libfwupdplugin/fu-context-helper.h
- linux/sockios.h
- fu-elanfp-plugin.h
- fu-uefi-esrt-plugin.h
- fu-security-attrs.h
- fu-dfu-target-avr.h
- config.h
- fu-acpi-phat-struct.h
- fwupd-json-object-private.h
- libfwupdplugin/fu-volume-locker.h
- fu-lenovo-accessory-impl.h
- fwupd-report-struct.h
- libfwupdplugin/fu-usb-interface.h
- libfwupdplugin/fu-backend.h
- fu-realtek-mst-plugin.h
- fu-cros-ec-usb-device.h
- fu-telink-dfu-archive.h
- curl/easy.h
- fu-self-test-device.h
- fu-logitech-hidpp-rdfu-struct.h
- fu-dfu-plugin.h
- fu-synaptics-cape-struct.h
- libfwupdplugin/fu-fuzzer.h
- fu-ata-device.h
- fu-block-partition.h
- fu-usb-device.h
- fu-wistron-dock-common.h
- fu-firmware-common.h
- fu-dell-kestrel-rtshub.h
- string.h
- fu-blestech-tp-hid-device.h
- fu-nordic-hid-plugin.h
- libfwupdplugin/fu-kernel.h
- fu-client-list.h
- fu-idle.h
- fu-uefi-device.h
- fu-fresco-pd-common.h
- fu-genesys-gl32xx-firmware.h
- libfwupdplugin/fu-chunk-array.h
- fu-uefi-capsule-device.h
- libfwupdplugin/fu-device-event.h
- libfwupdplugin/fu-plugin-vfuncs.h
- fu-lenovo-dock-plugin.h
- fu-elantp-plugin.h
- fu-nvme-struct.h
- libfwupdplugin/fu-srec-firmware.h
- fu-engine-requirements.h
- fu-qsi-dock-struct.h
- fu-lenovo-dock-image.h
- fu-rp-pico-device.h
- fu-dell-kestrel-ilan.h
- fu-ebitdo-struct.h
- libfwupd/fwupd-enums.h
- fwupd-enums.h
- fu-wacom-usb-module-sub-cpu.h
- fu-qc-s5gen2-device.h
- fu-pci-psp-plugin.h
- fu-usi-dock-mcu-device.h
- fu-sunwinon-hid-firmware.h
- fu-uefi-mok-struct.h
- fu-uefi-nvram-device.h
- fwupd-json-object.h
- fu-asus-hid-device.h
- fu-device-poll-locker.h
- fu-tpm-eventlog.h
- fu-algoltek-usb-common.h
- libfwupdplugin/fu-msgpack.h
- fu-efi-lz77-decompressor.h
- fu-fmap-struct.h
- libfwupdplugin/fu-cab-firmware.h
- gio/gunixfdlist.h
- fu-fpc-device.h
- fu-msgpack-struct.h
- fu-synaptics-vmm9-plugin.h
- libfwupdplugin/fu-dump.h
- libfwupdplugin/fu-temporary-directory.h
- libfwupd/fwupd-json-node.h
- fu-huddly-usb-struct.h
- fu-usb-config-descriptor-private.h
- linux/types.h
- fu-analogix-struct.h
- fu-synaptics-cxaudio-common.h
- poll.h
- fu-acpi-dmar.h
- fu-cbor-struct.h
- fu-wacom-usb-module-bluetooth-id9.h
- fu-common-guid.h
- fwupd-jcat-item.h
- fu-efi-filesystem.h
- fu-corsair-subdevice.h
- fu-mediatek-scaler-plugin.h
- fu-huddly-usb-device.h
- sys/prctl.h
- fu-hp-bioscfg-plugin.h
- fu-synaptics-mst-struct.h
- fu-logitech-rallysystem-struct.h
- fu-wistron-dock-device.h
- fwupd-build-glib-2-76.h
- linux/input.h
- fu-ihex-firmware.h
- fu-amd-kria-device.h
- fu-acpi-table.h
- fu-linux-swap.h
- fu-gpio-plugin.h
- fu-jcat-context.h
- fwupd-device.h
- libfwupdplugin/fu-fdt-firmware.h
- libfwupdplugin/fu-hidraw-device.h
- fu-processor-struct.h
- fu-telink-dfu-common.h
- fu-efi-signature-list.h
- fu-dfu-target.h
- fu-legion-hid2-sipo-device.h
- fu-parade-lspcon-struct.h
- fu-mm-qmi-device.h
- fu-vbe-plugin.h
- fwupd-bios-setting.h
- fwupd-json-node-private.h
- libfwupdplugin/fu-json-firmware.h
- fu-elantp-hid-haptic-device.h
- fu-bcm57xx-device.h
- fu-progress-struct.h
- fu-lenovo-accessory-hid-common.h
- efivar.h
- openssl/decoder.h
- fu-remote-list.h
- fu-intel-usb4-plugin.h
- fu-efi-signature-private.h
- winreg.h
- fu-amd-kria-som-eeprom.h
- fu-igsc-plugin.h
- fu-uefi-dbx-device.h
- fu-igsc-common.h
- libfwupdplugin/fu-lzma-common.h
- scsi/sg.h
- fu-zip-struct.h
- fu-scsi-plugin.h
- fu-dell-kestrel-wtpd.h
- fu-mem.h
- libfwupd/fwupd-report.h
- fu-lenovo-accessory-ble-device.h
- fu-plugin.h
- fu-realtek-mst-device.h
- fu-heci-device.h
- fu-rts54hub-rtd21xx-background.h
- fu-egis-moc-plugin.h
- fu-pci-psp-device.h
- fu-synaptics-rmi-struct.h
- fu-uefi-cod-device.h
- libfwupdplugin/fu-input-stream.h
- fwupd-request-struct.h
- fu-vli-struct.h
- fwupd-codec-struct.h
- libfwupdplugin/fu-hid-report-item.h
- libfwupdplugin/fu-device-poll-locker.h
- fu-acpi-phat-plugin.h
- fwupd-codec.h
- fu-genesys-scaler-device.h
- fu-raydium-tp-struct.h
- fu-pixart-rf-plugin.h
- fu-raydium-tp-hid-device.h
- fu-rts54hub-rtd21xx-mergeinfo.h
- gnutls/abstract.h
- fu-legion-hid2-iap-device.h
- fu-redfish-request.h
- fu-pefile-struct.h
- fu-cros-ec-plugin.h
- fu-acpi-uefi.h
- fu-uefi-sbat-plugin.h
- fu-bios-settings.h
- fu-lxs-touch-struct.h
- libfwupdplugin/fu-efi-ftw-store.h
- readline/history.h
- fu-ccgx-dmc-struct.h
- fu-vli-usbhub-rtd21xx-device.h
- fu-dell-kestrel-rtshub-struct.h
- fu-efi-signature.h
- libfwupdplugin/fu-security-attrs.h
- fu-dfu-struct.h
- fu-uefi-pk-plugin.h
- fu-util-bios-setting.h
- fu-jabra-file-struct.h
- fu-wch-ch347-device.h
- fu-coswid-common.h
- fu-acpi-phat.h
- fu-wch-ch347-struct.h
- fu-telink-dfu-plugin.h
- fu-legion-hid2-device.h
- fu-qc-s5gen2-ble-struct.h
- fu-mm-fdl-struct.h
- fu-egis-moc-struct.h
- fu-smbios.h
- fu-logind-plugin.h
- fu-goodixtp-gtx8-firmware.h
- libfwupdplugin/fu-oprom-device.h
- fu-goodix-moc-plugin.h
- fu-wacom-usb-plugin.h
- libfwupdplugin/fu-heci-device.h
- libfwupdplugin/fu-device-metadata.h
- fu-dell-dock-hid.h
- fu-vli-usbhub-firmware.h
- fu-linux-sleep-plugin.h
- fu-qc-s5gen2-plugin.h
- libfwupdplugin/fu-sbatlevel-section.h
- fu-goodixtp-hid-device.h
- fu-elan-kbd-plugin.h
- fu-mm-mbim-device.h
- fu-qc-firehose-sahara-impl.h
- fu-steelseries-mouse.h
- fu-pixart-tp-plugin.h
- fu-wacom-raw-emr-device.h
- fu-cfu-offer.h
- fu-mm-dfota-device.h
- fu-nordic-hid-firmware-b0.h
- fu-msgpack-item-private.h
- fu-logitech-tap-struct.h
- fu-firmware.h
- fu-intel-usb4-device.h
- fu-ti-tps6598x-device.h
- fu-uefi-bootmgr.h
- fu-igsc-struct.h
- fu-intel-me-device.h
- libfwupd/fwupd-jcat-item.h
- fu-linux-tainted-plugin.h
- fu-legion-hid-child.h
- fu-dfu-sector.h
- fu-egis-moc-device.h
- fu-x509-certificate.h
- fu-dell-kestrel-pd.h
- fu-v4l-struct.h
- fu-ccgx-hid-device.h
- fu-qc-s5gen2-ble-device.h
- fu-test-ble-plugin.h
- fu-wch-ch341a-device.h
- fu-efi-device-path-list.h
- fu-usi-dock-struct.h
- fwupd-build-glib-2-80.h
- fu-synaptics-cape-sngl-firmware.h
- fu-chunk-private.h
- fu-bluez-backend.h
- fu-bnr-dp-firmware.h
- fu-himax-tp-struct.h
- fu-config.h
- fu-byte-array.h
- fu-redfish-hpe-device.h
- libfwupdplugin/fu-xor.h
- fu-huddly-usb-plugin.h
- fu-tpm-device.h
- fu-bnr-dp-struct.h
- fu-steelseries-fizz-gen1.h
- libfwupdplugin/fu-hwids.h
- fu-fmap-firmware.h
- fu-amd-kria-image-firmware.h
- fu-rp-pico-struct.h
- fu-oprom-struct.h
- fu-logitech-hidpp-bootloader-texas.h
- fu-synaptics-rmi-hid-device.h
- fu-synaptics-cape-plugin.h
- fu-goodixtp-gtx8-device.h
- linux/i2c-dev.h
- libfwupd/fwupd-security-attr.h
- fwupd-security-attr-struct.h
- libfwupdplugin/fu-usb-device.h
- fu-lenovo-thinklmi-plugin.h
- fu-genesys-gl32xx-device.h
- fu-nvme-plugin.h
- fu-engine-config.h
- libfwupdplugin/fu-usb-device-fw-ds20.h
- fu-genesys-scaler-firmware.h
- fu-context-struct.h
- fu-algoltek-usb-plugin.h
- fu-hid-struct.h
- linux/devlink.h
- fu-jcat-gnutls-common.h
- fu-lenovo-dock-firmware.h
- libfwupdplugin/fu-pci-device.h
- fwupd-device-private.h
- fu-legion-hid2-firmware.h
- fu-dell-dock-struct.h
- libfwupd/fwupd-codec.h
- openssl/x509_vfy.h
- libdrm/amdgpu.h
- fu-genesys-usbhub-device.h
- fu-pci-bcr-plugin.h
- fu-uefi-device-private.h
- fu-windows-efivars.h
- linux/ipmi.h
- fwupd-build-glib-2-70.h
- fu-linux-lockdown-plugin.h
- fu-amd-kria-persistent-firmware.h
- fu-algoltek-usbcr-plugin.h
- libfwupdplugin/fu-fmap-firmware.h
- blkid.h
- fu-elantp-hid-mcu-device.h
- fu-xor.h
- fu-redfish-common.h
- fu-hpi-cfu-struct.h
- fu-devlink-netlink.h
- fu-thunderbolt-struct.h
- fu-pci-device.h
- libfwupdplugin/fu-partial-input-stream.h
- fu-intel-cvs-firmware.h
- fu-logitech-bulkcontroller-plugin.h
- fu-ifwi-struct.h
- fwupd-jcat-struct.h
- fu-cros-ec-firmware.h
- fu-wacom-raw-device.h
- libfwupd/fwupd-version.h
- fu-mm-firehose-device.h
- fu-ti-tps6598x-common.h
- fu-corsair-plugin.h
- fu-ifwi-fpt-firmware.h
- libfwupdplugin/fu-bios-settings.h
- fu-ep963x-struct.h
- xmlb.h
- fwupdplugin.h
- sys/auxv.h
- fwupd-json-common.h
- libfwupdplugin/fu-cfu-offer.h
- fu-dbus-daemon.h
- fwupd-build.h
- fu-uefi-capsule-backend.h
- libfwupdplugin/fu-processor-device.h
- libmm-glib.h
- mtd/mtd-user.h
- fu-thunderbolt-retimer.h
- fu-framework-qmk-struct.h
- fu-cfu-firmware-struct.h
- fu-progress.h
- QFutureWatcher
- fu-wacom-usb-firmware.h
- fu-android-boot-device.h
- fu-crc-struct.h
- fu-intel-me-struct.h
- fu-qc-s5gen2-hid-struct.h
- fu-hughski-colorhug-device.h
- fu-goodixtp-brlb-firmware.h
- openssl/encoder.h
- fu-steelseries-fizz-struct.h
- libfwupdplugin/fu-bluez-device.h
- fu-dfu-firmware.h
- fu-ccgx-pure-hid-struct.h
- fu-elantp-haptic-firmware.h
- fu-steelseries-fizz-hid.h
- fu-kinetic-dp-secure-device.h
- stdio.h
- fu-vli-pd-parade-device.h
- fu-system76-launch-struct.h
- fu-io-channel-struct.h
- libfwupdplugin/fu-acpi-table.h
- fu-path-store.h
- libfwupdplugin/fu-crc.h
- libfwupd/fwupd-jcat-file.h
- fu-genesys-common.h
- fu-nordic-hid-firmware-mcuboot.h
- fu-ilitek-its-struct.h
- gnutls/crypto.h
- fu-sbatlevel-section.h
- fu-cbor-item.h
- fu-wacom-raw-plugin.h
- fu-dell-dock-status.h
- fu-steelseries-fizz-gen2.h
- libfwupdplugin/fu-efi-variable-authentication2.h
- fu-elanfp-device.h
- libfwupd/fwupd-client.h
- fu-steelseries-fizz.h
- gmodule.h
- libfwupdplugin/fu-firmware.h
- libfwupdplugin/fu-fit-firmware.h
- fu-usb-interface.h
- fu-bcm57xx-stage2-image.h
- fu-starlabs-coreboot-plugin.h
- fu-jcat-libcrypto-common.h
- fu-pixart-rf-struct.h
- libfwupdplugin/fu-efi-hard-drive-device-path.h
- windows.h
- fu-hughski-colorhug-struct.h
- libfwupdplugin/fu-tpm-eventlog-v1.h
- fu-wch-ch341a-cfi-device.h
- fu-i2c-device.h
- fu-logitech-hidpp-plugin.h
- fu-huddly-usb-common.h
- openssl/pkcs7.h
- fu-legion-hid-struct.h
- libfwupdplugin/fu-drm-device.h
- fu-context-helper.h
- fu-tpm-eventlog-common.h
- fu-uefi-kek-device.h
- libfwupdplugin/fu-path.h
- fu-plugin-private.h
- fu-bnr-dp-common.h
- libfwupd/fwupd-json-array.h
- fwupd-plugin-struct.h
- fu-nordic-hid-struct.h
- fu-mediatek-scaler-device.h
- fu-polkit-agent.h
- fu-vli-usbhub-i2c-common.h
- linux/usb/video.h
- malloc.h
- fu-efi-section.h
- fu-zip-firmware.h
- fu-output-stream.h
- glib/gprintf.h
- openssl/pem.h
- fu-steelseries-fizz-impl.h
- fu-usi-dock-child-device.h
- fu-uefi-capsule-backend-linux.h
- fu-dump-struct.h
- fu-ti-tps6598x-struct.h
- fu-bnr-dp-plugin.h
- libmbim-glib.h
- openssl/x509v3.h
- fu-synaptics-rmi-ps2-device.h
- fu-aver-hid-device.h
- fu-genesys-usbhub-codesign-firmware.h
- libfwupdplugin/fu-efi-device-path.h
- sysinfoapi.h
- fu-qc-s5gen2-hid-device.h
- fu-qc-s5gen2-firmware.h
- fu-uswid-firmware.h
- fu-kernel-search-path.h
- fu-logitech-rdfu-entity.h
- gio/gunixoutputstream.h
- sqlite3.h
- fu-bytes.h
- fu-dell-plugin.h
- fu-udev-device.h
- fu-smbios-struct.h
- fu-redfish-network-device.h
- libfwupd/fwupd-common.h
- fu-qsi-dock-mcu-device.h
- fu-lzma-common.h
- fu-ifwi-cpd-firmware.h
- fu-goodixtp-common.h
- libfwupdplugin/fu-efi-volume.h
- fu-bcm57xx-dict-image.h
- fu-logitech-rdfu-firmware.h
- fu-ebitdo-firmware.h
- fu-ata-plugin.h
- fu-crc-private.h
- fu-msgpack.h
- fu-hid-descriptor.h
- fu-analogix-device.h
- fu-jabra-gnp-device.h
- fu-igsc-device.h
- fu-chunk.h
- fu-logitech-scribe-device.h
- fu-intel-me-pci-plugin.h
- fu-algoltek-usbcr-common.h
- fu-util-common.h
- fu-ioctl-struct.h
- fu-common-struct.h
- fu-efivars.h
- libfwupd/fwupd-jcat-blob.h
- libfwupdplugin/fu-efi-section.h
- libfwupdplugin/fu-usb-bos-descriptor.h
- fu-synaptics-prometheus-firmware.h
- fu-mtd-ifd-device.h
- fu-vli-usbhub-msp430-device.h
- libfwupdplugin/fu-tpm-eventlog-v2.h
- fu-volume-private.h
- fu-logitech-hidpp-bootloader-nordic.h
- fu-jabra-gnp-plugin.h
- fu-logitech-hidpp-bootloader.h
- sys/types.h
- fu-algoltek-usb-struct.h
- fu-sunplus-camera-plugin.h
- fwupd-client-private.h
- fu-bcm57xx-plugin.h
- fu-synaptics-prometheus-common.h
- fu-amd-gpu-atom-struct.h
- fu-intel-thunderbolt-nvm.h
- fu-dfu-target-stm.h
- shlwapi.h
- fu-asus-hid-child-device.h
- fu-device-struct.h
- fu-goodixtp-brlb-config.h
- fu-tpm-v2-device.h
- fu-pixart-rf-common.h
- libfwupdplugin/fu-usb-descriptor.h
- fu-devlink-component.h
- fu-wacom-usb-module-scaler.h
- termios.h
- libfwupdplugin/fu-dfu-firmware.h
- fu-synaptics-prometheus-struct.h
- fu-usb-device-fw-ds20.h
- fu-realtek-mst-struct.h
- fu-cpu-helper-cet-common.h
- fu-logitech-bulkcontroller-device.h
- fu-logitech-rallysystem-audio-device.h
- fu-protobuf-struct.h
- gudev/gudev.h
- fu-dell-dock-tbt.h
- fu-usb-device-ms-ds20.h
- libfwupdplugin/fu-intel-me-device.h
- fu-common.h
- fu-lenovo-accessory-plugin.h
- fu-device-event.h
- passim.h
- libfwupd/fwupd-error.h
- fu-dell-kestrel-rtshub-firmware.h
- fu-intel-mkhi-device.h
- fu-logitech-bulkcontroller-child.h
- fu-hid-report.h
- fwupd-windows.h
- fwupd-json-array-private.h
- fu-genesys-usbhub-struct.h
- fu-wacom-usb-module.h
- fu-lenovo-dock-struct.h
- fu-ccgx-pure-hid-device.h
- fwupd-common-private.h
- fu-elanfp-struct.h
- fu-logitech-scribe-plugin.h
- fu-synaptics-rmi-v7-device.h
- fu-smbios-private.h
- libfwupdplugin/fu-bytes.h
- fu-parade-usbhub-struct.h
- fu-device-event-private.h
- fu-synaptics-vmm9-struct.h
- fu-iommu-plugin.h
- fu-steelseries-sonic.h
- fu-ccgx-dmc-device.h
- fu-intel-cvs-device.h
- fu-asus-hid-firmware.h
- libfwupdplugin/fu-ifwi-fpt-firmware.h
- fu-intel-amt-struct.h
- fu-jabra-gnp-child-device.h
- fu-linear-firmware.h
- fu-security-attrs-struct.h
- fu-focal-fp-hid-device.h
- fu-efi-load-option.h
- gio/gunixmounts.h
- fu-csv-firmware-private.h
- fu-ccgx-dmc-devx-device.h
- libfwupdplugin/fu-endian.h
- fwupd-json-node.h
- fu-intel-cvs-struct.h
- fu-legion-hid-plugin.h
- fu-v4l-device.h
- libfwupdplugin/fu-common.h
- fu-devlink-device.h
- fu-heci-struct.h
- libfwupdplugin/fu-common-guid.h
- gio/gio.h
- fu-goodix-moc-device.h
- fu-ccgx-dmc-plugin.h
- fu-acpi-facp-plugin.h
- fu-dummy-efivars.h
- fu-novatek-ts-device.h
- libfwupdplugin/fu-linear-firmware.h
- fu-elantp-i2c-device.h
- fu-dfu-firmware-struct.h
- fu-analogix-common.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_handle_sigint_start
  - fu_util_handle_sigint_stop
  - fu_util_context_flags_notify_cb
  - 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_clean
  - fu_util_remote_disable
  - fu_util_crc
  - fu_util_tpm_eventlog_sort_cb
  - fu_util_tpm_eventlog
  - fu_util_crc_find
  - fu_util_search
  - 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_image
  - fu_util_firmware_extract_images
  - 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_download_metadata
  - 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_save
  - fu_util_emulation_load
  - _g_str_equal0
  - fu_util_switch_branch
  - fu_util_get_results
  - 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_jcat_load_filename
  - fu_util_jcat_save_filename
  - fu_util_jcat_info
  - fu_util_jcat_add_alias
  - fu_util_jcat_remove_alias
  - fu_util_jcat_blob_kind_from_string
  - fu_util_jcat_blob_kind_to_ext
  - fu_util_jcat_export
  - fu_util_jcat_import
  - fu_util_jcat_self_sign
  - fu_util_jcat_sign
  - fu_util_jcat_verify_item
  - fu_util_jcat_verify
  - 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: 46
        line_start: 45
        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: 47
        line_start: 46
        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: '*source_sigint'
        type: GSource
      - 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: assume_yes
        type: gboolean
      - name: prepare_blob
        type: gboolean
      - name: cleanup_blob
        type: gboolean
      - name: enable_json_state
        type: gboolean
      - name: interactive
        type: gboolean
      - name: '*destdir'
        type: gchar
      - 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
      - name: '*jcat_context'
        type: FuJcatContext
      item_type: struct
      name: FuUtil
      pos:
        line_end: 94
        line_start: 57
        source_file: /src/fwupd/src/fu-tool.c
    typedefs: []
    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_jcat_libcrypto_pkcs7_engine_add_pubkey_x509
  - fu_jcat_libcrypto_pkcs7_engine_add_public_key_raw
  - fu_jcat_libcrypto_pkcs7_engine_add_public_key
  - fu_jcat_libcrypto_pkcs7_engine_setup
  - cms_verify_cb
  - fu_jcat_libcrypto_pkcs7_engine_verify
  - fu_jcat_libcrypto_pkcs7_engine_self_verify
  - fu_jcat_libcrypto_pkcs7_engine_pubkey_verify
  - fu_jcat_libcrypto_pkcs7_engine_pubkey_sign
  - fu_jcat_libcrypto_pkcs7_engine_self_sign
  - fu_jcat_libcrypto_pkcs7_engine_finalize
  - fu_jcat_libcrypto_pkcs7_engine_class_init
  - fu_jcat_libcrypto_pkcs7_engine_init
  - fu_jcat_libcrypto_pkcs7_engine_new
  source_file: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuJcatEngine
      - name: '*trust_store'
        type: X509_STORE
      item_type: struct
      name: _FuJcatLibcryptoPkcs7Engine
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.c
    typedefs: []
    union: []
- function_names:
  - _gnutls_datum_deinit
  - _gnutls_x509_trust_list_deinit
  source_file: /src/fwupd/src/fu-jcat-gnutls-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: gnutls_data_t
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/fwupd/src/fu-jcat-gnutls-common.h
      type: guchar
    union: []
- function_names:
  - 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
  - main
  source_file: /src/fwupd/src/fu-release-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - 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: 69
        line_start: 66
        source_file: /src/fwupd/src/fu-release-test.c
    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_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_authorize_clean_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_report_metadata
  - fu_dbus_daemon_method_set_approved_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_return_get_remotes
  - fu_dbus_daemon_authorize_get_remotes_cb
  - 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_authorize_clear_results_cb
  - fu_dbus_daemon_method_clear_results
  - fu_dbus_daemon_method_search
  - 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_to_action_id
  - fu_dbus_daemon_method_modify_device
  - fu_dbus_daemon_method_get_results
  - fu_dbus_daemon_authorize_update_metadata_cb
  - 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_clean_remote
  - fu_dbus_daemon_method_verify_update
  - fu_dbus_daemon_authorize_verify_cb
  - 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_hwids
  - 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"'
    - item_type: preproc_def
      name: FU_DBUS_DAEMON_SYSTEM_INHIBIT_MAX_TOTAL
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/fwupd/src/fu-dbus-daemon.c
      type_or_value: '100'
    - item_type: preproc_def
      name: FU_DBUS_DAEMON_SYSTEM_INHIBIT_MAX_PER_SENDER
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/fwupd/src/fu-dbus-daemon.c
      type_or_value: '10'
    - item_type: preproc_def
      name: FU_DBUS_DAEMON_SET_HINTS_MAX
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/fwupd/src/fu-dbus-daemon.c
      type_or_value: '32'
    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: gdouble
      - name: owner_id
        type: guint
      - name: '*system_inhibits'
        type: GPtrArray
      item_type: struct
      name: _FuDbusDaemon
      pos:
        line_end: 45
        line_start: 33
        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: gulong
      - 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: 295
        line_start: 273
        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: 1016
        line_start: 1012
        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
        \   {\"GetReportMetadata\", fu_dbus_daemon_method_get_report_metadata},\n\t
        \   {\"SetApprovedFirmware\", fu_dbus_daemon_method_set_approved_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    {\"Search\",
        fu_dbus_daemon_method_search},\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    {\"CleanRemote\",
        fu_dbus_daemon_method_clean_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: 2724
        line_start: 2721
        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: 2704
        line_start: 2701
        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: FuClientFlags
      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:
  - fu_engine_save_remote_broken
  - fu_engine_save_remote_stable
  - fu_engine_save_remote_directory
  - fu_engine_save_remote_testing
  - fu_engine_generate_md_func
  - fu_engine_test_plugin_mutable_enumeration
  - 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_version_highest_func
  - fu_engine_downgrade_func
  - fu_engine_updatable_hidden_func
  - fu_engine_md_verfmt_func
  - fu_engine_install_duration_func
  - fu_engine_release_dedupe_func
  - fu_engine_history_convert_version_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_engine_device_better_than_func
  - fu_test_plugin_device_added_cb
  - fu_test_plugin_device_register_cb
  - fu_engine_plugin_module_func
  - fu_test_build_cab
  - fu_test_plugin_composite_device_added_cb
  - fu_plugin_composite_release_sort_cb
  - fu_engine_plugin_composite_func
  - fu_engine_plugin_composite_multistep_func
  - fu_plugin_engine_get_results_appstream_id_func
  - fu_engine_modify_bios_settings_func
  - fu_engine_report_metadata_func
  - main
  source_file: /src/fwupd/src/fu-engine-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: request_cnt
        type: guint
      - name: last_status
        type: FwupdStatus
      item_type: struct
      name: FuTestRequestHelper
      pos:
        line_end: 2398
        line_start: 2395
        source_file: /src/fwupd/src/fu-engine-test.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-engine-helper.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_jcat_gnutls_pkcs7_engine_add_pubkey_blob_fmt
  - fu_jcat_gnutls_pkcs7_engine_add_public_key_raw
  - fu_jcat_gnutls_pkcs7_engine_add_public_key
  - fu_jcat_gnutls_pkcs7_engine_build_trust_list
  - fu_jcat_gnutls_pkcs7_engine_build_trust_list_only_pq
  - fu_jcat_gnutls_pkcs7_engine_verify
  - fu_jcat_gnutls_pkcs7_engine_self_verify
  - fu_jcat_gnutls_pkcs7_engine_pubkey_verify
  - fu_jcat_gnutls_pkcs7_engine_pubkey_sign
  - fu_jcat_gnutls_pkcs7_engine_self_sign
  - fu_jcat_gnutls_pkcs7_engine_finalize
  - fu_jcat_gnutls_pkcs7_engine_class_init
  - fu_jcat_gnutls_pkcs7_engine_init
  - fu_jcat_gnutls_pkcs7_engine_new
  source_file: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuJcatEngine
      - name: '*pubkeys_crts'
        type: GPtrArray
      item_type: struct
      name: _FuJcatGnutlsPkcs7Engine
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.c
    typedefs: []
    union: []
- function_names:
  - fu_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_install_parent_first_func
  - fu_device_list_install_parent_first_child_func
  - fu_device_list_counterpart_func
  - fu_device_list_equivalent_id_func
  - fu_device_list_unconnected_no_delay_func
  - fu_device_list_func
  - main
  source_file: /src/fwupd/src/fu-device-list-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*device_new'
        type: FuDevice
      - name: '*device_old'
        type: FuDevice
      - name: '*device_list'
        type: FuDeviceList
      item_type: struct
      name: FuDeviceListReplugHelper
      pos:
        line_end: 118
        line_start: 114
        source_file: /src/fwupd/src/fu-device-list-test.c
    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: 31
        line_start: 26
        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: 14
        line_start: 13
        source_file: /src/fwupd/src/fu-util-common.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EXIT_NOT_FOUND
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/src/fu-util-common.h
      type_or_value: '3'
    - item_type: preproc_def
      name: EXIT_NOT_REACHABLE
      pos:
        line_end: 16
        line_start: 15
        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: 19
        line_start: 18
        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: flags
        type: FuUtilCmdFlags
      - name: callback
        type: FuUtilCmdFunc
      item_type: struct
      name: FuUtilCmd
      pos:
        line_end: 33
        line_start: 27
        source_file: /src/fwupd/src/fu-util-common.h
    typedefs:
    - item_type: typedef
      name: FuUtil
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/fwupd/src/fu-util-common.h
      type: FuUtil
    - item_type: typedef
      name: (*FuUtilCmdFunc)(FuUtil *util, gchar **values, GError **error)
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/fwupd/src/fu-util-common.h
      type: gboolean
    - item_type: typedef
      name: FuUtilNode
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/fwupd/src/fu-util-common.h
      type: GNode
    union: []
- function_names:
  - fu_unix_seekable_input_stream_func
  - fu_unix_seekable_input_stream_non_regular_func
  - main
  source_file: /src/fwupd/src/fu-unix-seekable-input-stream-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_JCAT_LIBCRYPTO_PKCS7_ENGINE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/src/fu-jcat-libcrypto-pkcs7-engine.h
      type_or_value: (fu_jcat_libcrypto_pkcs7_engine_get_type())
    structs: []
    typedefs: []
    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: 34
        line_start: 31
        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_engine_plugin_device_gtype
  - fu_engine_plugin_firmware_gtype
  - fu_engine_gtypes_func
  - main
  source_file: /src/fwupd/src/fu-engine-gtypes-test.c
  types:
    enum: []
    preproc_defs: []
    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_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_get_remote
  - fu_release_set_config
  - fu_release_locale_is_valid
  - 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:
  - fu_usb_backend_hotplug_cb
  - fu_usb_backend_load_file
  - fu_usb_backend_func
  - fu_usb_backend_invalid_func
  - main
  source_file: /src/fwupd/src/fu-usb-backend-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_history_func
  - fu_history_modify_func
  - fu_history_migrate_v1_func
  - fu_history_migrate_v2_func
  - main
  source_file: /src/fwupd/src/fu-history-test.c
  types:
    enum: []
    preproc_defs: []
    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: []
  source_file: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_JCAT_GNUTLS_PKCS7_ENGINE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/src/fu-jcat-gnutls-pkcs7-engine.h
      type_or_value: (fu_jcat_gnutls_pkcs7_engine_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: 18
        line_start: 16
        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: []
  source_file: /src/fwupd/src/fu-jcat-context.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_JCAT_CONTEXT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/src/fu-jcat-context.h
      type_or_value: fu_jcat_context_get_type()
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-systemd.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_idle_func
  - main
  source_file: /src/fwupd/src/fu-idle-test.c
  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_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: 35
        line_start: 34
        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: 43
        line_start: 39
        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-jcat-engine.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_JCAT_ENGINE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/src/fu-jcat-engine.h
      type_or_value: (fu_jcat_engine_get_type())
    structs:
    - fields:
      - name: parent_class
        type: GObjectClass
      - name: (*setup)(FuJcatEngine *self, GError **error)
        type: gboolean
      - name: (*add_public_key)(FuJcatEngine *self, const gchar *filename, GError
          **error)
        type: gboolean
      - name: "*(*pubkey_verify)(FuJcatEngine *self,\n\t\t\t\t       GBytes *blob,\n\t\t\t\t
          \      GBytes *blob_signature,\n\t\t\t\t       FuJcatVerifyFlags flags,\n\t\t\t\t
          \      GError **error)"
        type: FuJcatResult
      - name: "*(*pubkey_sign)(FuJcatEngine *self,\n\t\t\t\t      GBytes *blob,\n\t\t\t\t
          \     GBytes *cert,\n\t\t\t\t      GBytes *privkey,\n\t\t\t\t      FuJcatSignFlags
          flags,\n\t\t\t\t      GError **error)"
        type: FwupdJcatBlob
      - name: "*(*self_verify)(FuJcatEngine *self,\n\t\t\t\t     GBytes *blob,\n\t\t\t\t
          \    GBytes *blob_signature,\n\t\t\t\t     FuJcatVerifyFlags flags,\n\t\t\t\t
          \    GError **error)"
        type: FuJcatResult
      - name: "*(*self_sign)(FuJcatEngine *self,\n\t\t\t\t    GBytes *blob,\n\t\t\t\t
          \   FuJcatSignFlags flags,\n\t\t\t\t    GError **error)"
        type: FwupdJcatBlob
      - name: (*add_public_key_raw)(FuJcatEngine *self, GBytes *blob, GError **error)
        type: gboolean
      item_type: struct
      name: _FuJcatEngineClass
      pos:
        line_end: 41
        line_start: 16
        source_file: /src/fwupd/src/fu-jcat-engine.h
    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'
    - item_type: preproc_def
      name: FU_ENGINE_EMULATOR_COMPOSITE_MAX
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/src/fu-engine-emulator.h
      type_or_value: '10'
    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: []
  source_file: /src/fwupd/src/fu-jcat-result.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_JCAT_RESULT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/src/fu-jcat-result.h
      type_or_value: (fu_jcat_result_get_type())
    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
  - 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: '*pstore'
        type: FuPathStore
      - name: '*array'
        type: GPtrArray
      - name: '*monitors'
        type: GPtrArray
      - name: testing_remote
        type: gboolean
      - name: fix_metadata_uri
        type: gboolean
      - name: '*silo'
        type: XbSilo
      - name: '*query'
        type: XbQuery
      - name: '*lvfs_metadata_format'
        type: gchar
      item_type: struct
      name: _FuRemoteList
      pos:
        line_end: 43
        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: 369
        line_start: 365
        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_releases_for_container_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_clean_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_create_reboot_required_file
  - 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_composite_peek_firmware
  - 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_search_query_append
  - fu_engine_search_query_create
  - 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_for_rel
  - fu_engine_fixup_history_device_for_csum
  - 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_add_releases_for_device_component
  - fu_engine_get_branch_fallback
  - fu_engine_get_releases_for_device
  - fu_engine_search
  - fu_engine_get_releases
  - fu_engine_get_downgrades
  - fu_engine_get_approved_firmware
  - fu_engine_add_approved_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_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: 81
        line_start: 80
        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: 83
        line_start: 82
        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: 85
        line_start: 84
        source_file: /src/fwupd/src/fu-engine.c
      type_or_value: (32 * FU_MB)
    - item_type: preproc_def
      name: FU_ENGINE_MAX_SIGNATURE_SIZE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/fwupd/src/fu-engine.c
      type_or_value: (1 * FU_MB)
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*config'
        type: FuEngineConfig
      - name: '*remote_list'
        type: FuRemoteList
      - name: '*device_list'
        type: FuDeviceList
      - name: write_history
        type: gboolean
      - name: host_emulation
        type: gboolean
      - 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: '*search_queries'
        type: GPtrArray
      - name: '*plugin_list'
        type: FuPluginList
      - name: '*plugin_filter'
        type: GPtrArray
      - name: '*ctx'
        type: FuContext
      - name: '*approved_firmware'
        type: GHashTable
      - name: '*emulation'
        type: FuEngineEmulator
      - name: '*device_changed_allowlist'
        type: GHashTable
      - name: '*host_machine_id'
        type: gchar
      - name: '*jcat_context'
        type: FuJcatContext
      - 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
      - name: emulator_composite_cnt
        type: guint
      - name: load_flags
        type: FuEngineLoadFlags
      item_type: struct
      name: _FuEngine
      pos:
        line_end: 134
        line_start: 98
        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: 1835
        line_start: 1832
        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: 1869
        line_start: 1866
        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: 1931
        line_start: 1928
        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_BIOS_RELEASE_DATE, \"HostBiosReleaseDate\"},\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: 2106
        line_start: 2103
        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_engine_error_array_func
  - fu_engine_machine_hash_func
  - fu_engine_integrity_func
  - main
  source_file: /src/fwupd/src/fu-engine-helper-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_usb_backend_get_usb_device_backend_id
  - fu_usb_backend_create_device
  - fu_usb_backend_create_device_impl
  - 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
  - libusb_get_parent
  - 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: 39
        line_start: 38
        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: 40
        line_start: 39
        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: 34
        line_start: 21
        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: 241
        line_start: 237
        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:
  - fu_util_func
  - fu_util_interesting_device_func
  - main
  source_file: /src/fwupd/src/fu-util-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: gchar
      - name: flags
        type: FwupdDeviceFlags
      - name: '*version'
        type: gchar
      - name: '*update_error'
        type: gchar
      - name: child_flags
        type: FwupdDeviceFlags
      - name: expected
        type: gboolean
      item_type: struct
      name: "map[] = {\n\t    {\n\t\t\"updatable\",\n\t\tFWUPD_DEVICE_FLAG_UPDATABLE,\n\t\tNULL,\n\t\tNULL,\n\t\tFWUPD_DEVICE_FLAG_NONE,\n\t\tTRUE,\n\t
        \   },\n\t    {\n\t\t\"update-error\",\n\t\tFWUPD_DEVICE_FLAG_INTERNAL,\n\t\tNULL,\n\t\t\"failed\",\n\t\tFWUPD_DEVICE_FLAG_NONE,\n\t\tTRUE,\n\t
        \   },\n\t    {\n\t\t\"version\",\n\t\tFWUPD_DEVICE_FLAG_INTERNAL,\n\t\t\"1.2.3\",\n\t\tNULL,\n\t\tFWUPD_DEVICE_FLAG_NONE,\n\t\tTRUE,\n\t
        \   },\n\t    {\n\t\t\"get-details\",\n\t\tFWUPD_DEVICE_FLAG_NONE,\n\t\tNULL,\n\t\tNULL,\n\t\tFWUPD_DEVICE_FLAG_NONE,\n\t\tTRUE,\n\t
        \   },\n\t    {\n\t\t\"unrelated-flag\",\n\t\tFWUPD_DEVICE_FLAG_INTERNAL,\n\t\tNULL,\n\t\tNULL,\n\t\tFWUPD_DEVICE_FLAG_NONE,\n\t\tFALSE,\n\t
        \   },\n\t    {\n\t\t\"interesting-child\",\n\t\tFWUPD_DEVICE_FLAG_INTERNAL,\n\t\tNULL,\n\t\tNULL,\n\t\tFWUPD_DEVICE_FLAG_UPDATABLE,\n\t\tTRUE,\n\t
        \   },\n\t}"
      pos:
        line_end: 59
        line_start: 52
        source_file: /src/fwupd/src/fu-util-test.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: []
  source_file: /src/fwupd/src/fu-jcat-libcrypto-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: STACK_OF_X509
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/fwupd/src/fu-jcat-libcrypto-common.h
      type: STACK_OF
    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:
  - STACK_OF_X509_free
  - fu_jcat_libcrypto_get_errors
  - fu_jcat_libcrypto_pkcs7_load_crt_from_blob_pem
  - fu_jcat_libcrypto_pkcs7_load_crt_from_blob_der
  - fu_jcat_libcrypto_pkcs7_load_privkey_from_blob_pem
  - fu_jcat_libcrypto_pkcs7_create_private_key
  - fu_jcat_libcrypto_pkcs7_create_client_certificate
  - fu_jcat_libcrypto_x509_get_issuer_name
  source_file: /src/fwupd/src/fu-jcat-libcrypto-common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_JCAT_LIBCRYPTO_RSA_SIZE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/src/fu-jcat-libcrypto-common.c
      type_or_value: '3072'
    - item_type: preproc_def
      name: FU_JCAT_LIBCRYPTO_X509_NOTAFTER_UNDEFINED
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/src/fu-jcat-libcrypto-common.c
      type_or_value: '"99991231235959Z"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_engine_requirements_regex_match
  - fu_engine_requirements_glob_match
  - 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_phased_update
  - 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"'
    - item_type: preproc_def
      name: FU_ENGINE_REQUIREMENTS_VERSION_REQ_MAX_LEN
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/src/fu-engine-requirements.c
      type_or_value: '1024'
    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: 131
        line_start: 123
        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: []
    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: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_daemon_get_engine
  - 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: 33
        line_start: 32
        source_file: /src/fwupd/src/fu-daemon.c
      type_or_value: '10 '
    structs:
    - fields:
      - name: '*engine'
        type: FuEngine
      - name: '*loop'
        type: GMainLoop
      - 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: 27
        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_clean
  - 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_test_engine_udev_hidraw
  - fu_test_engine_udev_usb
  - fu_test_engine_udev_v4l
  - fu_test_engine_udev_nvme
  - fu_test_engine_udev_serio
  - main
  source_file: /src/fwupd/src/fu-engine-udev-test.c
  types:
    enum: []
    preproc_defs: []
    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:
  - fu_remote_download_func
  - fu_remote_baseuri_func
  - fu_remote_auth_func
  - fu_remote_duplicate_func
  - fu_remote_empty_credentials_func
  - fu_remote_nopath_func
  - fu_remote_local_func
  - main
  source_file: /src/fwupd/src/fu-remote-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_console_func
  - main
  source_file: /src/fwupd/src/fu-console-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_jcat_result_get_timestamp
  - fu_jcat_result_get_authority
  - fu_jcat_result_get_kind
  - fu_jcat_result_get_method
  - fu_jcat_result_add_string
  - fu_jcat_result_finalize
  - fu_jcat_result_get_property
  - fu_jcat_result_set_property
  - fu_jcat_result_codec_iface_init
  - fu_jcat_result_class_init
  - fu_jcat_result_init
  source_file: /src/fwupd/src/fu-jcat-result.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: timestamp
        type: gint64
      - name: '*authority'
        type: gchar
      - name: '*engine'
        type: FuJcatEngine
      item_type: struct
      name: _FuJcatResult
      pos:
        line_end: 16
        line_start: 11
        source_file: /src/fwupd/src/fu-jcat-result.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_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_only_trust_pq_signatures
  - 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: '*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: 24
        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
  - 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:
  - GET_PRIVATE
  - fu_jcat_engine_add_string
  - fu_jcat_engine_setup
  - fu_jcat_engine_pubkey_verify
  - fu_jcat_engine_pubkey_sign
  - fu_jcat_engine_self_verify
  - fu_jcat_engine_self_sign
  - fu_jcat_engine_add_public_key_raw
  - fu_jcat_engine_get_kind
  - fu_jcat_engine_get_method
  - fu_jcat_engine_get_keyring_path
  - fu_jcat_engine_finalize
  - fu_jcat_engine_get_property
  - fu_jcat_engine_set_property
  - fu_jcat_engine_codec_iface_init
  - fu_jcat_engine_class_init
  - fu_jcat_engine_init
  source_file: /src/fwupd/src/fu-jcat-engine.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*context'
        type: FuJcatContext
      - name: kind
        type: FwupdJcatBlobKind
      - name: method
        type: FwupdJcatBlobMethod
      - name: done_setup
        type: gboolean
      item_type: struct
      name: FuJcatEnginePrivate
      pos:
        line_end: 16
        line_start: 11
        source_file: /src/fwupd/src/fu-jcat-engine.c
    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_verify_payload_target
  - fu_cabinet_verify_payload
  - fu_cabinet_trustlist_add_basename
  - fu_cabinet_trustlist_check_basename
  - 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: FuJcatContext
      - name: '*jcat_file'
        type: FwupdJcatFile
      - name: '*trustlist'
        type: GHashTable
      item_type: struct
      name: _FuCabinet
      pos:
        line_end: 35
        line_start: 26
        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:
  - fu_client_list_func
  - main
  source_file: /src/fwupd/src/fu-client-list-test.c
  types:
    enum: []
    preproc_defs: []
    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: 136
        line_start: 130
        source_file: /src/fwupd/src/fu-bluez-backend.c
    typedefs: []
    union: []
- function_names:
  - 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_phased_func
  - fu_engine_requirements_phased_old_fwupd_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_requirements_only_upgrade_reinstall_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
  - main
  source_file: /src/fwupd/src/fu-engine-requirements-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_jcat_sha256_engine_self_sign
  - fu_jcat_sha256_engine_self_verify
  - fu_jcat_sha256_engine_class_init
  - fu_jcat_sha256_engine_init
  - fu_jcat_sha256_engine_new
  source_file: /src/fwupd/src/fu-jcat-sha256-engine.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuJcatEngine
      item_type: struct
      name: _FuJcatSha256Engine
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/src/fu-jcat-sha256-engine.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_problems_to_strings
  - 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_json_object
  - 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: 36
        line_start: 33
        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: 891
        line_start: 888
        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
        \    {FWUPD_SECURITY_ATTR_ID_HP_SURESTART,\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      _(\"HP SureStart is enabled\")},\n\t\t     {FWUPD_SECURITY_ATTR_ID_AMD_ENTRY_SIGN,\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      _(\"AMD microcode signature
        vulnerability fixed\")},\n\t\t     {NULL, 0, 0, NULL}}"
      pos:
        line_end: 2363
        line_start: 2358
        source_file: /src/fwupd/src/fu-util-common.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-jcat-sha256-engine.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_JCAT_SHA256_ENGINE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/src/fu-jcat-sha256-engine.h
      type_or_value: (fu_jcat_sha256_engine_get_type())
    structs: []
    typedefs: []
    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: FuEngineRequestFlags
      - 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: []
    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: 35
        line_start: 31
        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: 53
        line_start: 48
        source_file: /src/fwupd/src/fu-device-list.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/src/fu-jcat-sha512-engine.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_JCAT_SHA512_ENGINE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/src/fu-jcat-sha512-engine.h
      type_or_value: (fu_jcat_sha512_engine_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_plugin_list_func
  - fu_plugin_list_depsolve_func
  - main
  source_file: /src/fwupd/src/fu-plugin-list-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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: []
    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_jcat_sha256_engine_func
  - fu_jcat_sha512_engine_func
  - fwupd_jcat_pkcs7_engine_func
  - fwupd_jcat_pkcs7_engine_self_signed_func
  - fwupd_jcat_pkcs7_engine_self_signed_pq_func
  - fu_jcat_context_verify_blob_func
  - fu_jcat_context_verify_blob_disallow_func
  - fu_jcat_context_verify_item_sign_func
  - fu_jcat_context_verify_item_target_func
  - fu_jcat_context_verify_item_csum_func
  - main
  source_file: /src/fwupd/src/fu-jcat-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: '*(*FuJcatEngineNewFunc)(FuJcatContext *context)'
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/fwupd/src/fu-jcat-test.c
      type: FuJcatEngine
    union: []
- function_names:
  - fu_engine_add_firmware_gtypes
  - 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"'
    - item_type: preproc_def
      name: FU_ENGINE_BKC_MAX_TAGS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/src/fu-engine-helper.c
      type_or_value: '100'
    - item_type: preproc_def
      name: FU_ENGINE_BKC_MAX_RELEASES
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/src/fu-engine-helper.c
      type_or_value: '1000'
    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: 302
        line_start: 299
        source_file: /src/fwupd/src/fu-engine-helper.c
    typedefs: []
    union: []
- function_names:
  - fu_jcat_sha512_engine_self_sign
  - fu_jcat_sha512_engine_self_verify
  - fu_jcat_sha512_engine_class_init
  - fu_jcat_sha512_engine_init
  - fu_jcat_sha512_engine_new
  source_file: /src/fwupd/src/fu-jcat-sha512-engine.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuJcatEngine
      item_type: struct
      name: _FuJcatSha512Engine
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/src/fu-jcat-sha512-engine.c
    typedefs: []
    union: []
- function_names:
  - fu_udev_backend_coldplug_cache_item_free
  - fu_udev_backend_coldplug_cache_add_device
  - fu_udev_backend_coldplug_cache_add_error
  - 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_remove_device
  - fu_udev_backend_device_number_sort_cb
  - fu_udev_backend_coldplug_subsystem
  - fu_udev_backend_devnode_wait_cb
  - 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: 40
        line_start: 39
        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: '*coldplug_cache'
        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: 22
        source_file: /src/fwupd/src/fu-udev-backend.c
    - fields:
      - name: '*udev_device'
        type: FuUdevDevice
      - name: '*error'
        type: GError
      item_type: struct
      name: FuUdevBackendColdplugCacheItem
      pos:
        line_end: 35
        line_start: 32
        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: 174
        line_start: 170
        source_file: /src/fwupd/src/fu-udev-backend.c
    typedefs: []
    union: []
- function_names:
  - fu_remote_list_repair_func
  - main
  source_file: /src/fwupd/src/fu-remote-list-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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: 19
        line_start: 18
        source_file: /src/fwupd/src/fu-engine.h
      type_or_value: (fu_engine_get_type())
    structs: []
    typedefs: []
    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
  - 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_search
  - 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_clean
  - 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_show_plugin_warnings
  - fu_util_set_bios_setting
  - fu_util_get_bios_setting
  - fu_util_security_fix
  - fu_util_hwids_as_json
  - fu_util_hwids
  - 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_enable_remote_auth
  - 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: 71
        line_start: 40
        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: '*name'
        type: gchar
      - name: use_emulation
        type: gboolean
      - name: '*report_metadata'
        type: GHashTable
      item_type: struct
      name: FuUtilDeviceTestHelper
      pos:
        line_end: 697
        line_start: 690
        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: 1191
        line_start: 1188
        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: 1290
        line_start: 1286
        source_file: /src/fwupd/src/fu-util.c
    typedefs: []
    union: []
- function_names:
  - fu_jcat_gnutls_ensure_trust_list_valid
  - fu_jcat_gnutls_datum_from_bytes
  - fu_jcat_gnutls_pkcs7_load_crt_from_blob
  - fu_jcat_gnutls_pkcs7_load_privkey_from_blob
  - fu_jcat_gnutls_pkcs7_load_pubkey_from_privkey
  - fu_jcat_gnutls_pkcs7_datum_to_dn_str
  - fu_jcat_gnutls_pkcs7_create_private_key
  - fu_jcat_gnutls_pkcs7_ensure_sign_algo_pq_safe
  - fu_jcat_gnutls_pkcs7_create_client_certificate
  - fu_jcat_gnutls_global_log_cb
  - fu_jcat_gnutls_global_init
  - fu_jcat_gnutls_rc_to_error
  source_file: /src/fwupd/src/fu-jcat-gnutls-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    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: 11
        line_start: 10
        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: 22
        line_start: 14
        source_file: /src/fwupd/src/fu-daemon.h
    typedefs: []
    union: []
- function_names:
  - fu_test_build_cab
  - fu_cabinet_func
  - fu_cabinet_success_func
  - fu_cabinet_artifact_func
  - fu_cabinet_unsigned_func
  - fu_cabinet_sha256_func
  - fu_cabinet_folder_func
  - fu_cabinet_error_no_metadata_func
  - fu_cabinet_error_wrong_size_func
  - fu_cabinet_error_missing_file_func
  - fu_cabinet_error_size_func
  - fu_cabinet_error_wrong_checksum_func
  - main
  source_file: /src/fwupd/src/fu-cabinet-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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_input_string
  - 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_get_progress_part
  - 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: gdouble
      - 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:
  - fu_jcat_context_finalize
  - fu_jcat_context_class_init
  - fu_jcat_context_init
  - fu_jcat_context_add_public_keys
  - fu_jcat_context_get_public_keys
  - fu_jcat_context_set_keyring_path
  - fu_jcat_context_get_keyring_path
  - fu_jcat_context_is_blob_kind_allowed
  - fu_jcat_context_get_engine
  - fu_jcat_context_verify_blob
  - fu_jcat_context_allow_blob_kind
  - fu_jcat_context_verify_item
  - fu_jcat_context_verify_target
  - fu_jcat_context_new
  source_file: /src/fwupd/src/fu-jcat-context.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*engines'
        type: GPtrArray
      - name: '*public_keys'
        type: GPtrArray
      - name: '*keyring_path'
        type: gchar
      - name: blob_kinds
        type: guint32
      item_type: struct
      name: _FuJcatContext
      pos:
        line_end: 29
        line_start: 23
        source_file: /src/fwupd/src/fu-jcat-context.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_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: 40
        line_start: 28
        source_file: /src/fwupd/libfwupd/fwupd-report.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-jcat-file.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_TYPE_JCAT_FILE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/libfwupd/fwupd-jcat-file.h
      type_or_value: (fwupd_jcat_file_get_type())
    structs: []
    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, FwupdJsonObject *json_obj, FwupdCodecFlags
          flags)
        type: void
      - name: (*from_json)(FwupdCodec *self, FwupdJsonObject *json_obj, 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: 34
        line_start: 16
        source_file: /src/fwupd/libfwupd/fwupd-codec.h
    typedefs: []
    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: 15
        line_start: 14
        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: 27
        line_start: 17
        source_file: /src/fwupd/libfwupd/fwupd-release.h
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - 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-json-array-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-jcat-item.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_TYPE_JCAT_ITEM
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/libfwupd/fwupd-jcat-item.h
      type_or_value: (fwupd_jcat_item_get_type())
    structs: []
    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-json-node.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_filename
  - fwupd_bios_setting_set_filename
  - 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: '*value_filename'
        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: 38
        line_start: 25
        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: 19
        line_start: 18
        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: 36
        line_start: 21
        source_file: /src/fwupd/libfwupd/fwupd-client.h
    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_search_cb
  - fwupd_client_search
  - 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_clean_remote_cb
  - fwupd_client_clean_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
  - 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_strip_error
  - 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_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_search_cb
  - fwupd_client_search_async
  - fwupd_client_search_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_percentage_full
  - 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_hwids
  - 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_async
  - fwupd_client_get_blocked_firmware_finish
  - 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_clean_remote_cb
  - fwupd_client_clean_remote_async
  - fwupd_client_clean_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_test_network
  - 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_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: 45
        line_start: 44
        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: gdouble
      - 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
      - name: hwid_keys
        type: GStrv
      - name: hwid_values
        type: GStrv
      item_type: struct
      name: FwupdClientPrivate
      pos:
        line_end: 87
        line_start: 57
        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: 94
        line_start: 89
        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: 155
        line_start: 150
        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: 3566
        line_start: 3561
        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: 4573
        line_start: 4568
        source_file: /src/fwupd/libfwupd/fwupd-client.c
    typedefs:
    - item_type: typedef
      name: '*(*FwupdClientObjectNewFunc)(void)'
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/fwupd/libfwupd/fwupd-client.c
      type: GObject
    - item_type: typedef
      name: CURLSTR
      pos:
        line_end: 131
        line_start: 131
        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: []
  source_file: /src/fwupd/libfwupd/fwupd-variant.h
  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_details_url
  - fwupd_device_set_details_url
  - 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_highest
  - fwupd_device_set_version_highest
  - fwupd_device_get_version_highest_raw
  - fwupd_device_set_version_highest_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: 109
        line_start: 108
        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: '*details_url'
        type: gchar
      - name: '*plugin'
        type: gchar
      - name: '*version'
        type: gchar
      - name: '*version_lowest'
        type: gchar
      - name: '*version_highest'
        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_highest_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: 75
        line_start: 31
        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: 3584
        line_start: 3581
        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: 23
        line_start: 22
        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: 31
        line_start: 30
        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: 39
        line_start: 38
        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: 47
        line_start: 46
        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: 55
        line_start: 54
        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: 63
        line_start: 62
        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: 71
        line_start: 70
        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: 79
        line_start: 78
        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: 87
        line_start: 86
        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: 95
        line_start: 94
        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: 103
        line_start: 102
        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: 111
        line_start: 110
        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: 119
        line_start: 118
        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: 127
        line_start: 126
        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: 135
        line_start: 134
        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: 143
        line_start: 142
        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: 151
        line_start: 150
        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: 159
        line_start: 158
        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: 167
        line_start: 166
        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: 175
        line_start: 174
        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: 183
        line_start: 182
        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: 191
        line_start: 190
        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: 199
        line_start: 198
        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: 207
        line_start: 206
        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: 215
        line_start: 214
        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: 223
        line_start: 222
        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: 231
        line_start: 230
        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: 239
        line_start: 238
        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: 247
        line_start: 246
        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: 258
        line_start: 257
        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: 266
        line_start: 265
        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: 277
        line_start: 276
        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: 285
        line_start: 284
        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: 293
        line_start: 292
        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: 302
        line_start: 301
        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_ENTRY_SIGN
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Amd.EntrySign"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_AMD_SPI_WRITE_PROTECTION
      pos:
        line_end: 318
        line_start: 317
        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: 326
        line_start: 325
        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: 334
        line_start: 333
        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: 342
        line_start: 341
        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: 350
        line_start: 349
        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: 358
        line_start: 357
        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: 368
        line_start: 367
        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: 378
        line_start: 377
        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: 388
        line_start: 387
        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: 396
        line_start: 395
        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: 404
        line_start: 403
        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: 412
        line_start: 411
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Uefi.Db"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_HP_SURESTART
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Hp.Surestart"'
    - item_type: preproc_def
      name: FWUPD_SECURITY_ATTR_ID_AMD_PLATFORM_SECURE_BOOT
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/fwupd/libfwupd/fwupd-security-attr-private.h
      type_or_value: '"org.fwupd.hsi.Amd.PlatformSecureBoot"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fwupd_bios_settings_func
  - main
  source_file: /src/fwupd/libfwupd/fwupd-bios-setting-test.c
  types:
    enum: []
    preproc_defs: []
    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_HIGHEST
      pos:
        line_end: 524
        line_start: 523
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"VersionHighest"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_VERSION_HIGHEST_RAW
      pos:
        line_end: 532
        line_start: 531
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"VersionHighestRaw"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_VERSION
      pos:
        line_end: 540
        line_start: 539
        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: 548
        line_start: 547
        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: 557
        line_start: 556
        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: 566
        line_start: 565
        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: 574
        line_start: 573
        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: 582
        line_start: 581
        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: 590
        line_start: 589
        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: 599
        line_start: 598
        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: 607
        line_start: 606
        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: 615
        line_start: 614
        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: 624
        line_start: 623
        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: 632
        line_start: 631
        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: 640
        line_start: 639
        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: 648
        line_start: 647
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"KernelCurrentValue"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_BIOS_SETTING_FILENAME
      pos:
        line_end: 656
        line_start: 655
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"BiosSettingFilename"'
    - item_type: preproc_def
      name: FWUPD_RESULT_KEY_KERNEL_TARGET_VALUE
      pos:
        line_end: 664
        line_start: 663
        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: 672
        line_start: 671
        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: 680
        line_start: 679
        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: 688
        line_start: 687
        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: 696
        line_start: 695
        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: 704
        line_start: 703
        source_file: /src/fwupd/libfwupd/fwupd-enums-private.h
      type_or_value: '"DeviceName"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - g_log_get_debug_enabled
  source_file: /src/fwupd/libfwupd/fwupd-build-glib-2-72.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fwupd_release_func
  - main
  source_file: /src/fwupd/libfwupd/fwupd-release-test.c
  types:
    enum: []
    preproc_defs: []
    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: 15
        line_start: 14
        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: 27
        line_start: 17
        source_file: /src/fwupd/libfwupd/fwupd-security-attr.h
    typedefs: []
    union: []
- function_names:
  - fwupd_json_node_get_kind
  - fwupd_json_node_new_internal
  - fwupd_json_node_new_raw
  - fwupd_json_node_new_raw_internal
  - fwupd_json_node_new_null_internal
  - fwupd_json_node_new_string
  - fwupd_json_node_new_string_internal
  - fwupd_json_node_new_object
  - fwupd_json_node_new_array
  - fwupd_json_node_ref
  - fwupd_json_node_unref
  - fwupd_json_node_get_object
  - fwupd_json_node_get_array
  - fwupd_json_node_get_raw
  - fwupd_json_node_get_string
  - fwupd_json_node_append_string_safe
  - fwupd_json_node_append_string
  - fwupd_json_node_to_string
  source_file: /src/fwupd/libfwupd/fwupd-json-node.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: refcount
        type: grefcount
      - name: kind
        type: FwupdJsonNodeKind
      - name: data
        type: gpointer
      - name: destroy_func
        type: GDestroyNotify
      item_type: struct
      name: FwupdJsonNode
      pos:
        line_end: 29
        line_start: 24
        source_file: /src/fwupd/libfwupd/fwupd-json-node.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-json-object-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fwupd_json_parser_set_max_depth
  - fwupd_json_parser_set_max_items
  - fwupd_json_parser_set_max_quoted
  - fwupd_json_parser_helper_new
  - fwupd_json_parser_helper_free
  - fwupd_json_parser_helper_dump_acc
  - fwupd_json_parser_helper_slurp
  - fwupd_json_parser_unescape_char
  - fwupd_json_parser_helper_get_next_token_chunk
  - fwupd_json_parser_helper_get_next_token
  - fwupd_json_parser_helper_check_depth
  - fwupd_json_parser_load_array
  - fwupd_json_parser_load_object
  - fwupd_json_parser_load_from_stream_internal
  - fwupd_json_parser_load_from_bytes
  - fwupd_json_parser_load_from_data
  - fwupd_json_parser_load_from_stream
  - fwupd_json_parser_class_init
  - fwupd_json_parser_init
  - fwupd_json_parser_new
  source_file: /src/fwupd/libfwupd/fwupd-json-parser.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_JSON_PARSER_NEWLINE_MAX
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/libfwupd/fwupd-json-parser.c
      type_or_value: '5'
    - item_type: preproc_def
      name: FWUPD_JSON_PARSER_INDENT_MAX
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/libfwupd/fwupd-json-parser.c
      type_or_value: '8 '
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: max_depth
        type: guint
      - name: max_items
        type: guint
      - name: max_quoted
        type: guint
      item_type: struct
      name: _FwupdJsonParser
      pos:
        line_end: 30
        line_start: 25
        source_file: /src/fwupd/libfwupd/fwupd-json-parser.c
    - fields:
      - name: flags
        type: FwupdJsonLoadFlags
      - name: '*buf'
        type: GByteArray
      - name: buf_offset
        type: gsize
      - name: '*stream'
        type: GInputStream
      - name: '*acc'
        type: GString
      - name: max_quoted
        type: guint
      - name: is_quoted
        type: gboolean
      - name: is_escape
        type: gboolean
      - name: linecnt
        type: guint
      - name: newlinecnt
        type: guint
      - name: whitespacecnt
        type: guint
      - name: depth
        type: guint
      item_type: struct
      name: FwupdJsonParserHelper
      pos:
        line_end: 120
        line_start: 107
        source_file: /src/fwupd/libfwupd/fwupd-json-parser.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-json-node-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-json-parser.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_TYPE_JSON_PARSER
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/libfwupd/fwupd-json-parser.h
      type_or_value: (fwupd_json_parser_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-test.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fwupd_json_object_entry_free
  - fwupd_json_object_new
  - fwupd_json_object_ref
  - fwupd_json_object_unref
  - fwupd_json_object_clear
  - fwupd_json_object_get_size
  - fwupd_json_object_get_key_for_index
  - fwupd_json_object_get_node_for_index
  - fwupd_json_object_get_entry
  - fwupd_json_object_get_string
  - fwupd_json_object_get_string_with_default
  - fwupd_json_object_get_integer
  - fwupd_json_object_get_integer_with_default
  - fwupd_json_object_get_boolean
  - fwupd_json_object_get_boolean_with_default
  - fwupd_json_object_has_node
  - fwupd_json_object_get_node
  - fwupd_json_object_get_nodes
  - fwupd_json_object_get_keys
  - fwupd_json_object_get_object
  - fwupd_json_object_get_array
  - fwupd_json_object_add_raw_internal
  - fwupd_json_object_add_null_internal
  - fwupd_json_object_add_node
  - fwupd_json_object_add_raw
  - fwupd_json_object_add_string_internal
  - fwupd_json_object_add_string
  - fwupd_json_object_add_bytes
  - fwupd_json_object_add_array_strv
  - fwupd_json_object_add_integer
  - fwupd_json_object_add_boolean
  - fwupd_json_object_add_object_internal
  - fwupd_json_object_add_object
  - fwupd_json_object_add_object_map
  - fwupd_json_object_add_array_internal
  - fwupd_json_object_add_array
  - fwupd_json_object_append_string
  - fwupd_json_object_to_string
  - fwupd_json_object_to_bytes
  source_file: /src/fwupd/libfwupd/fwupd-json-object.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*key'
        type: GRefString
      - name: '*json_node'
        type: FwupdJsonNode
      item_type: struct
      name: FwupdJsonObjectEntry
      pos:
        line_end: 25
        line_start: 22
        source_file: /src/fwupd/libfwupd/fwupd-json-object.c
    - fields:
      - name: refcount
        type: grefcount
      - name: '*items'
        type: GPtrArray
      item_type: struct
      name: FwupdJsonObject
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/fwupd/libfwupd/fwupd-json-object.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-json-array.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-json-common-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fwupd_request_func
  - main
  source_file: /src/fwupd/libfwupd/fwupd-request-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fwupd_json_parser_depth_func
  - fwupd_json_parser_items_func
  - fwupd_json_parser_quoted_func
  - fwupd_json_parser_stream_func
  - fwupd_json_parser_null_func
  - fwupd_json_parser_valid_func
  - fwupd_json_parser_invalid_func
  - fwupd_json_object_func
  - fwupd_json_node_func
  - fwupd_json_array_func
  - fwupd_json_bytes_func
  - main
  source_file: /src/fwupd/libfwupd/fwupd-json-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fwupd_enums_func
  - main
  source_file: /src/fwupd/libfwupd/fwupd-enums-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fwupd_jcat_blob_func
  - fwupd_jcat_item_func
  - fwupd_jcat_file_json_func
  - fwupd_jcat_file_func
  - main
  source_file: /src/fwupd/libfwupd/fwupd-jcat-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fwupd_client_api_undefined_setter
  - fwupd_client_api_undefined_getter
  - fwupd_client_api_ro_props
  - fwupd_client_api
  - fwupd_client_devices_func
  - fwupd_client_remotes_func
  - fwupd_has_system_bus
  - main
  source_file: /src/fwupd/libfwupd/fwupd-client-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    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#if GLIB_CHECK_VERSION(2,
        74, 0)\n\t    {G_IO_ERROR, G_IO_ERROR_NO_SUCH_DEVICE, FWUPD_ERROR_NOT_FOUND},\n#endif\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_EMPTY, 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: 171
        line_start: 167
        source_file: /src/fwupd/libfwupd/fwupd-error.c
    typedefs: []
    union: []
- function_names:
  - fwupd_plugin_func
  - main
  source_file: /src/fwupd/libfwupd/fwupd-plugin-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fwupd_security_attr_func
  - main
  source_file: /src/fwupd/libfwupd/fwupd-security-attr-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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: 68
        line_start: 34
        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: '"*"'
    - item_type: preproc_def
      name: FWUPD_PERCENTAGE_UNKNOWN
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/fwupd/libfwupd/fwupd-common.h
      type_or_value: (-1.0)
    structs: []
    typedefs:
    - item_type: typedef
      name: '*fwupd_guid_t'
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/fwupd/libfwupd/fwupd-common.h
      type: guint8
    - item_type: typedef
      name: fwupd_guid_t[16]
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/fwupd/libfwupd/fwupd-common.h
      type: guint8
    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: 15
        line_start: 14
        source_file: /src/fwupd/libfwupd/fwupd-error.h
      type_or_value: fwupd_error_quark()
    structs: []
    typedefs: []
    union: []
- function_names:
  - fwupd_json_indent
  source_file: /src/fwupd/libfwupd/fwupd-json-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-json-object.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - g_steal_fd
  source_file: /src/fwupd/libfwupd/fwupd-build-glib-2-70.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: g_prefix_error_literal
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupd/fwupd-build-glib-2-70.h
      type_or_value: g_prefix_error
    - item_type: preproc_def
      name: g_spawn_check_wait_status
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupd/fwupd-build-glib-2-70.h
      type_or_value: g_spawn_check_exit_status
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-jcat-blob.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_TYPE_JCAT_BLOB
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/libfwupd/fwupd-jcat-blob.h
      type_or_value: fwupd_jcat_blob_get_type()
    structs: []
    typedefs: []
    union: []
- function_names:
  - fwupd_jcat_file_add_string
  - fwupd_jcat_file_import_node
  - fwupd_jcat_file_export_builder
  - fwupd_jcat_file_json_parser_new
  - fwupd_jcat_file_import_json
  - fwupd_jcat_file_import_stream
  - fwupd_jcat_file_import_bytes
  - fwupd_jcat_file_export_json
  - fwupd_jcat_file_export_bytes
  - fwupd_jcat_file_get_items
  - fwupd_jcat_file_get_item_by_id
  - fwupd_jcat_file_get_item_default
  - fwupd_jcat_file_add_item
  - fwupd_jcat_file_get_version_major
  - fwupd_jcat_file_get_version_minor
  - fwupd_jcat_file_codec_iface_init
  - fwupd_jcat_file_finalize
  - fwupd_jcat_file_class_init
  - fwupd_jcat_file_init
  - fwupd_jcat_file_new
  source_file: /src/fwupd/libfwupd/fwupd-jcat-file.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*items'
        type: GPtrArray
      - name: version_major
        type: guint32
      - name: version_minor
        type: guint32
      item_type: struct
      name: _FwupdJcatFile
      pos:
        line_end: 19
        line_start: 14
        source_file: /src/fwupd/libfwupd/fwupd-jcat-file.c
    typedefs: []
    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: []
    union: []
- function_names:
  - fwupd_remote_func
  - main
  source_file: /src/fwupd/libfwupd/fwupd-remote-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fwupd_json_array_new
  - fwupd_json_array_ref
  - fwupd_json_array_unref
  - fwupd_json_array_get_size
  - fwupd_json_array_get_node
  - fwupd_json_array_get_raw
  - fwupd_json_array_get_string
  - fwupd_json_array_get_object
  - fwupd_json_array_get_array
  - fwupd_json_array_add_string_internal
  - fwupd_json_array_add_node
  - fwupd_json_array_add_string
  - fwupd_json_array_add_raw_internal
  - fwupd_json_array_add_raw
  - fwupd_json_array_add_object
  - fwupd_json_array_add_array
  - fwupd_json_array_add_bytes
  - fwupd_json_array_append_string
  - fwupd_json_array_to_string
  source_file: /src/fwupd/libfwupd/fwupd-json-array.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: refcount
        type: grefcount
      - name: '*nodes'
        type: GPtrArray
      item_type: struct
      name: FwupdJsonArray
      pos:
        line_end: 25
        line_start: 22
        source_file: /src/fwupd/libfwupd/fwupd-json-array.c
    typedefs: []
    union: []
- function_names:
  - g_clear_fd
  - _g_clear_fd_ignore_error
  source_file: /src/fwupd/libfwupd/fwupd-build-glib-2-76.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: g_autofd
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/libfwupd/fwupd-build-glib-2-76.h
      type_or_value: _GLIB_CLEANUP(_g_clear_fd_ignore_error)
    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: 15
        line_start: 14
        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: 31
        line_start: 30
        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: 32
        line_start: 31
        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: 33
        line_start: 32
        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: 34
        line_start: 33
        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: 27
        line_start: 17
        source_file: /src/fwupd/libfwupd/fwupd-bios-setting.h
    typedefs: []
    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: 30
        line_start: 27
        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: 49
        line_start: 27
        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:
  - fwupd_jcat_item_add_string
  - fwupd_jcat_item_set_id
  - fwupd_jcat_item_from_json
  - fwupd_jcat_item_add_json
  - fwupd_jcat_item_get_blobs
  - fwupd_jcat_item_get_blobs_by_kind
  - fwupd_jcat_item_get_blob_by_kind
  - fwupd_jcat_item_add_blob
  - fwupd_jcat_item_get_id
  - fwupd_jcat_item_get_id_safe
  - fwupd_jcat_item_add_alias_id
  - fwupd_jcat_item_remove_alias_id
  - fwupd_jcat_item_get_alias_ids
  - fwupd_jcat_item_has_target
  - fwupd_jcat_item_codec_iface_init
  - fwupd_jcat_item_finalize
  - fwupd_jcat_item_class_init
  - fwupd_jcat_item_init
  - fwupd_jcat_item_new
  source_file: /src/fwupd/libfwupd/fwupd-jcat-item.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*id'
        type: gchar
      - name: '*blobs'
        type: GPtrArray
      - name: '*alias_ids'
        type: GPtrArray
      item_type: struct
      name: _FwupdJcatItem
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/fwupd/libfwupd/fwupd-jcat-item.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fwupd_device_filter_func
  - fwupd_device_func
  - main
  source_file: /src/fwupd/libfwupd/fwupd-device-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - 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_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_get_mtime
  - fwupd_remote_set_mtime
  - fwupd_remote_ensure_checksum_sig
  - fwupd_remote_ensure_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_load_user_secrets
  - fwupd_remote_save_user_secrets
  - 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: 57
        line_start: 33
        source_file: /src/fwupd/libfwupd/fwupd-remote.c
    typedefs:
    - item_type: typedef
      name: curlptr
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/fwupd/libfwupd/fwupd-remote.c
      type: gchar
    union: []
- function_names:
  - fwupd_variant_from_hash_kv
  - fwupd_variant_to_hash_kv
  - fwupd_variant_get_uint32
  - fwupd_variant_get_int32
  - fwupd_variant_get_uint64
  - fwupd_variant_get_string
  - fwupd_variant_get_boolean
  - fwupd_variant_get_strv
  - fwupd_variant_get_double
  source_file: /src/fwupd/libfwupd/fwupd-variant.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    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: 16
        line_start: 15
        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: 28
        line_start: 18
        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: 19
        line_start: 18
        source_file: /src/fwupd/libfwupd/fwupd-enums.h
      type_or_value: '101'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fwupd_jcat_blob_add_string
  - fwupd_jcat_blob_get_timestamp
  - fwupd_jcat_blob_set_timestamp
  - fwupd_jcat_blob_get_data
  - fwupd_jcat_blob_get_data_as_string
  - fwupd_jcat_blob_set_data_raw
  - fwupd_jcat_blob_get_kind
  - fwupd_jcat_blob_get_target
  - fwupd_jcat_blob_set_target
  - fwupd_jcat_blob_from_json
  - fwupd_jcat_blob_add_json
  - fwupd_jcat_blob_codec_iface_init
  - fwupd_jcat_blob_finalize
  - fwupd_jcat_blob_class_init
  - fwupd_jcat_blob_init
  - fwupd_jcat_blob_new
  - fwupd_jcat_blob_new_utf8
  source_file: /src/fwupd/libfwupd/fwupd-jcat-blob.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: kind
        type: FwupdJcatBlobKind
      - name: target
        type: FwupdJcatBlobKind
      - name: flags
        type: FwupdJcatBlobFlags
      - name: '*data'
        type: GBytes
      - name: timestamp
        type: guint64
      item_type: struct
      name: _FwupdJcatBlob
      pos:
        line_end: 21
        line_start: 14
        source_file: /src/fwupd/libfwupd/fwupd-jcat-blob.c
    typedefs: []
    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: 15
        line_start: 14
        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: 38
        line_start: 37
        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: 48
        line_start: 47
        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: 58
        line_start: 57
        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: 68
        line_start: 67
        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: 79
        line_start: 78
        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: 89
        line_start: 88
        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: 99
        line_start: 98
        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: 109
        line_start: 108
        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: 27
        line_start: 17
        source_file: /src/fwupd/libfwupd/fwupd-request.h
    typedefs: []
    union: []
- function_names:
  - fwupd_report_func
  - main
  source_file: /src/fwupd/libfwupd/fwupd-report-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - G_GNUC_NON_NULL
  source_file: /src/fwupd/libfwupd/fwupd-build.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G_GNUC_FLAG_ENUM
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/libfwupd/fwupd-build.h
      type_or_value: __attribute__((flag_enum))
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupd/fwupd-build-glib-2-80.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: g_task_return_new_error_literal
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupd/fwupd-build-glib-2-80.h
      type_or_value: g_task_return_new_error
    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-json-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: FwupdJsonArray
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/fwupd/libfwupd/fwupd-json-common.h
      type: FwupdJsonArray
    - item_type: typedef
      name: FwupdJsonObject
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/fwupd/libfwupd/fwupd-json-common.h
      type: FwupdJsonObject
    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: 15
        line_start: 14
        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: 27
        line_start: 17
        source_file: /src/fwupd/libfwupd/fwupd-report.h
    typedefs: []
    union: []
- function_names:
  - fwupd_variant_func
  - fwupd_common_history_report_func
  - fwupd_common_device_id_func
  - fwupd_common_guid_func
  - main
  source_file: /src/fwupd/libfwupd/fwupd-common-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_test_compare_lines
  source_file: /src/fwupd/libfwupd/fwupd-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    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_unix_input_stream_from_bytes
  - fwupd_unix_input_stream_from_fn
  - fwupd_unix_output_stream_from_fn
  - fwupd_percentage_is_valid
  - fwupd_percentage_delta_notify
  source_file: /src/fwupd/libfwupd/fwupd-common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FWUPD_GUID_NAMESPACE_DEFAULT
      pos:
        line_end: 150
        line_start: 149
        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: 151
        line_start: 150
        source_file: /src/fwupd/libfwupd/fwupd-common.c
      type_or_value: '"70ffd812-4c7f-4c7d-0000-000000000000"'
    - item_type: preproc_def
      name: FWUPD_PERCENTAGE_CHANGE_EPSILON
      pos:
        line_end: 560
        line_start: 559
        source_file: /src/fwupd/libfwupd/fwupd-common.c
      type_or_value: (0.01)
    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: 158
        line_start: 152
        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_nvram_evsa
  - 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: 34
        line_start: 32
        source_file: /src/fwupd/libfwupdplugin/fu-efi-volume.c
    typedefs: []
    union: []
- function_names:
  - fu_temporary_directory_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-temporary-directory-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_efi_x509_signature_func
  - fu_efi_variable_authentication2_func
  - fu_efi_signature_list_func
  - fu_efi_lz77_decompressor_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-efi-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ihex_firmware_func
  - fu_ihex_firmware_signed_func
  - fu_ihex_firmware_offset_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-ihex-firmware-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_temporary_directory_get_path
  - fu_temporary_directory_new
  - fu_temporary_directory_build
  - fu_temporary_directory_finalize
  - fu_temporary_directory_class_init
  - fu_temporary_directory_init
  source_file: /src/fwupd/libfwupdplugin/fu-temporary-directory.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-temporary-directory.c
      type_or_value: '"FuTemporaryDirectory"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*path'
        type: gchar
      item_type: struct
      name: _FuTemporaryDirectory
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/fwupd/libfwupdplugin/fu-temporary-directory.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_common_align_up_func
  - fu_common_checked_add_func
  - fu_common_checked_inc_func
  - fu_common_checked_inc_product_func
  - fu_common_error_map_func
  - fu_common_bitwise_func
  - fu_common_crc_func
  - fu_common_guid_func
  - fu_common_olson_timezone_id_func
  - fu_cpuid_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-common-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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_byte_array_func
  - fu_byte_array_safe_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-byte-array-test.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: 112
        line_start: 109
        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: 29
        line_start: 27
        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:
  - fu_backend_emulate_count_cb
  - fu_backend_emulate_func
  - fu_backend_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-backend-test.c
  types:
    enum: []
    preproc_defs: []
    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: 12
        line_start: 11
        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: 23
        line_start: 22
        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_hwids_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-hwids-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - 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: 25
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-hwids-test.c
    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:
  - fu_kernel_search_path_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-kernel-search-path-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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_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: 915
        line_start: 912
        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_name
  - fu_edid_set_product_name
  - 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: 22
        line_start: 15
        source_file: /src/fwupd/libfwupdplugin/fu-edid.c
    typedefs: []
    union: []
- function_names:
  - fu_xor8
  - fu_xor8_safe
  source_file: /src/fwupd/libfwupdplugin/fu-xor.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-xor.c
      type_or_value: '"FuCommon"'
    structs: []
    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:
  - fu_composite_input_stream_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-composite-input-stream-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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
      type: guint
    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_append_array
  - fu_byte_array_append_safe
  - 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_get_payload
  - fu_acpi_table_parse
  - fu_acpi_table_write
  - 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
      - name: '*payload'
        type: GInputStream
      item_type: struct
      name: FuAcpiTablePrivate
      pos:
        line_end: 30
        line_start: 24
        source_file: /src/fwupd/libfwupdplugin/fu-acpi-table.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-drm-device-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    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: 40
        line_start: 29
        source_file: /src/fwupd/libfwupdplugin/fu-cfu-offer.c
    typedefs: []
    union: []
- function_names:
  - fu_device_event_donor_func
  - fu_device_event_func
  - fu_device_event_uncompressed_func
  - fu_device_event_strict_order_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-device-event-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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:
  - fu_tpm_eventlog_v2_hash_get_size
  - fu_tpm_eventlog_v2_parse_item
  - fu_tpm_eventlog_v2_parse
  - fu_tpm_eventlog_v2_write_item
  - fu_tpm_eventlog_v2_write
  - fu_tpm_eventlog_v2_class_init
  - fu_tpm_eventlog_v2_init
  - fu_tpm_eventlog_v2_new
  source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.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-tpm-eventlog-v2.c
      type_or_value: '"FuTpmEventlog"'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuTpmEventlogV2
      pos:
        line_end: 25
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.c
    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_WINDOWS_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:
  - GET_PRIVATE
  - fu_json_firmware_parse
  - fu_json_firmware_write
  - fu_json_firmware_export
  - fu_json_firmware_build
  - fu_json_firmware_init
  - fu_json_firmware_finalize
  - fu_json_firmware_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-json-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-json-firmware.c
      type_or_value: '"FuFirmware"'
    structs:
    - fields:
      - name: '*json_node'
        type: FwupdJsonNode
      item_type: struct
      name: FuJsonFirmwarePrivate
      pos:
        line_end: 21
        line_start: 19
        source_file: /src/fwupd/libfwupdplugin/fu-json-firmware.c
    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:
  - fu_tpm_eventlog_calc_checksums
  - fu_tpm_eventlog_init
  - fu_tpm_eventlog_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_protobuf_uint64_func
  - fu_protobuf_string_func
  - fu_protobuf_parse_invalid_func
  - fu_protobuf_parse_big_bool_func
  - fu_protobuf_fuzzing_func
  - fu_protobuf_overflow_func
  - fu_protobuf_parse_missing_func
  - fu_protobuf_embedded_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-protobuf-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_version_guess_format_func
  - fu_version_verify_format_func
  - fu_version_semver_func
  - fu_version_func
  - fu_version_vercmp_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-version-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - 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: 53
        line_start: 49
        source_file: /src/fwupd/libfwupdplugin/fu-version-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    {0x0, \"00.00\", FWUPD_VERSION_FORMAT_COMPAL_BIOS},\n\t
        \   {0xff, \"00.ff\", FWUPD_VERSION_FORMAT_COMPAL_BIOS},\n\t    {0x0000ff01,
        \"ff.01\", FWUPD_VERSION_FORMAT_COMPAL_BIOS},\n\t    {0x00001234, \"12.34\",
        FWUPD_VERSION_FORMAT_COMPAL_BIOS},\n\t}"
      pos:
        line_end: 75
        line_start: 71
        source_file: /src/fwupd/libfwupdplugin/fu-version-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: 107
        line_start: 103
        source_file: /src/fwupd/libfwupdplugin/fu-version-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
        \   {0x0, \"00.00\", FWUPD_VERSION_FORMAT_COMPAL_BIOS},\n\t    {0xff, \"00.ff\",
        FWUPD_VERSION_FORMAT_COMPAL_BIOS},\n\t    {0xff01, \"ff.01\", FWUPD_VERSION_FORMAT_COMPAL_BIOS},\n\t
        \   {0x1234, \"12.34\", FWUPD_VERSION_FORMAT_COMPAL_BIOS},\n\t}"
      pos:
        line_end: 117
        line_start: 113
        source_file: /src/fwupd/libfwupdplugin/fu-version-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    {0x0, \"00.00\", FWUPD_VERSION_FORMAT_COMPAL_BIOS},\n\t
        \   {0xff, \"00.ff\", FWUPD_VERSION_FORMAT_COMPAL_BIOS},\n\t    {0xff01, \"ff.01\",
        FWUPD_VERSION_FORMAT_COMPAL_BIOS},\n\t    {0x1234, \"12.34\", FWUPD_VERSION_FORMAT_COMPAL_BIOS},\n\t}"
      pos:
        line_end: 134
        line_start: 130
        source_file: /src/fwupd/libfwupdplugin/fu-version-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: 152
        line_start: 149
        source_file: /src/fwupd/libfwupdplugin/fu-version-test.c
    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-volume-locker.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_VOLUME_LOCKER
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-volume-locker.h
      type_or_value: (fu_volume_locker_get_type())
    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_BIOS_RELEASE_DATE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.h
      type_or_value: '"BiosReleaseDate"'
    - item_type: preproc_def
      name: FU_HWIDS_KEY_FIRMWARE_MAJOR_RELEASE
      pos:
        line_end: 78
        line_start: 77
        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: 86
        line_start: 85
        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: 94
        line_start: 93
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.h
      type_or_value: '"EnclosureKind"'
    - item_type: preproc_def
      name: FU_HWIDS_KEY_FAMILY
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.h
      type_or_value: '"Family"'
    - item_type: preproc_def
      name: FU_HWIDS_KEY_MANUFACTURER
      pos:
        line_end: 110
        line_start: 109
        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: 118
        line_start: 117
        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: 126
        line_start: 125
        source_file: /src/fwupd/libfwupdplugin/fu-hwids.h
      type_or_value: '"ProductSku"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_uefi_device_auth_func
  - fu_uefi_device_no_auth_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-uefi-device-test.c
  types:
    enum: []
    preproc_defs: []
    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: 35
        line_start: 34
        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: 37
        line_start: 36
        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: 23
        line_start: 17
        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-temporary-directory.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_TEMPORARY_DIRECTORY
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-temporary-directory.h
      type_or_value: (fu_temporary_directory_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-security-attrs-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    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_set_activation_time
  - fu_x509_certificate_get_subject
  - 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-string.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - 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: 67
        line_start: 64
        source_file: /src/fwupd/libfwupdplugin/fu-string.h
      type: gboolean
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-test.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    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: 26
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-hid-report-item.c
    typedefs: []
    union: []
- function_names:
  - fu_firmware_raw_aligned_func
  - fu_firmware_fdt_func
  - fu_firmware_fit_func
  - fu_firmware_build_func
  - fu_dfuse_firmware_image_get_size
  - fu_dfuse_firmware_get_size
  - fu_firmware_dfuse_func
  - fu_firmware_fmap_func
  - fu_firmware_sorted_func
  - fu_firmware_new_from_gtypes_func
  - fu_firmware_csv_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_firmware_func
  - fu_firmware_convert_version_func
  - fu_firmware_common_func
  - fu_firmware_dedupe_func
  - fu_firmware_builder_round_trip_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-firmware-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*xml_fn'
        type: gchar
      - name: '*checksum'
        type: gchar
      - name: flags
        type: FuFirmwareBuilderFlags
      item_type: struct
      name: "map[] = {\n\t    {\n\t\t\"acpi-table.builder.xml\",\n\t\t\"e286af7d9e0fcfc0e3fd3f2199156a5f1282c3ca\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"cab.builder.xml\",\n\t\t\"a708f47b1a46377f1ea420597641ffe9a40abd75\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\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\t\"elf.builder.xml\",\n\t\t\"99ea60b8dd46085dcbf1ecd5e72b4cb73a3b6faa\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"dfuse.builder.xml\",\n\t\t\"c1ff429f0e381c8fe8e1b2ee41a5a9a79e2f2ff7\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"pefile.builder.xml\",\n\t\t\"73b0e0dc9f6175b7bc27b77f20e0d9eca2d2d141\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"linear.builder.xml\",\n\t\t\"18fa8201652c82dc717df1905d8ab72e46e3d82b\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\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\t\"hid-descriptor.builder.xml\",\n\t\t\"6bb23f7c9fedc21f05528b3b63ad5837f4a16a92\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"sbatlevel.builder.xml\",\n\t\t\"8204ef9477b4305748a0de6e667547cb6ce5e426\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"csv.builder.xml\",\n\t\t\"986cbf8cde5bc7d8b49ee94cceae3f92efbd2eef\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"fdt.builder.xml\",\n\t\t\"40f7fbaff684a6bcf67c81b3079422c2529741e1\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"fit.builder.xml\",\n\t\t\"3185644581a7d58c04e7faa32364c933d21377e8\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NO_BINARY_COMPARE,\n\t
        \   },\n\t    {\n\t\t\"srec.builder.xml\",\n\t\t\"c8b405b7995d5934086c56b091a4c5df47b3b0d7\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NO_BINARY_COMPARE,\n\t
        \   },\n\t    {\n\t\t\"ihex.builder.xml\",\n\t\t\"e7c39355f1c87a3e9bf2195a406584c5dac828bc\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"fmap.builder.xml\",\n\t\t\"0c251eec3890fcf368b89ae8bb6aa2db70a41ade\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\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\t\"efi-load-option-hive.builder.xml\",\n\t\t\"76a378752b7ccdf3d68365d83784053356fa7e0a\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\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\t\"edid.builder.xml\",\n\t\t\"64cef10b75ccce684a483d576dd4a4ce6bef8165\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"efi-section.builder.xml\",\n\t\t\"a0ede7316209c536b50b6e5fb22cce8135153bc3\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"efi-section.builder.xml\",\n\t\t\"a0ede7316209c536b50b6e5fb22cce8135153bc3\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"efi-file.builder.xml\",\n\t\t\"90374d97cf6bc70059d24c816c188c10bd250ed7\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"efi-filesystem.builder.xml\",\n\t\t\"d6fbadc1c303a3b4eede9db7fb0ddb353efffc86\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"efi-signature.builder.xml\",\n\t\t\"ff7b862504262ce4853db29690b683bb06ce7d1f\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\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\t\"efi-variable-authentication2.builder.xml\",\n\t\t\"bd08e81e9c86490dc1ffb32b1e3332606eb0fa97\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"efi-ftw-store.builder.xml\",\n\t\t\"9bdb363e31e00d7fb0b42eacdc95771a3795b7ec\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"efi-vss-auth-variable.builder.xml\",\n\t\t\"de6391f8b09653859b4ff93a7d5004c52c35d5c2\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"efi-vss2-variable-store.builder.xml\",\n\t\t\"25ef7bf7ea600c8a739ff4dc6876bcd2f9d8d30d\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"efi-volume.builder.xml\",\n\t\t\"d0f658bce79c8468458e0b64e7de24f45c063076\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"efi-volume-sized.builder.xml\",\n\t\t\"d7087ea16218d700b9175a9cd0c27bd56b07a6d4\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"ifd.builder.xml\",\n\t\t\"494e7be6a72e743e6738c0ecdbdcddbf27d1dbd7\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NO_BINARY_COMPARE,\n\t
        \   },\n\t    {\n\t\t\"cfu-offer.builder.xml\",\n\t\t\"c10223887ff6cdf4475ad07c65b1f0f3a2d0d5ca\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"cfu-payload.builder.xml\",\n\t\t\"5da829f5fd15a28970aed98ebb26ebf2f88ed6f2\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"ifwi-cpd.builder.xml\",\n\t\t\"91e348d17cb91ef7a528e85beb39d15a0532dca5\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"ifwi-fpt.builder.xml\",\n\t\t\"d1f0fb2c2a7a99441bf4a825d060642315a94d91\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"oprom.builder.xml\",\n\t\t\"2e8387c1ef14ed4038e6bc637146b86b4d702fa8\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\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\t\"usb-bos-descriptor.builder.xml\",\n\t\t\"a305749853781c6899c4b28039cb4c7d9059b910\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"json.builder.xml\",\n\t\t\"845be24c3f31c4e8f0feeadfe356b3156628ba99\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"tpm-eventlog-v1.builder.xml\",\n\t\t\"79b257b9f668681e6c50f3c4c59b5430a3c56625\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"tpm-eventlog-v2.builder.xml\",\n\t\t\"0b965076bd38f737aaadbaff464199ba104f719a\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"uswid.builder.xml\",\n\t\t\"a6ad8ca91c0f2d18dc419ecd45fc09336d1089bc\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"uswid-compressed.builder.xml\",\n\t\tNULL, /* not byte-identical
        */\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t    },\n\t    {\n\t\t\"zip.builder.xml\",\n\t\t\"aefdd7b205927e383981b03ded1ad22878d03263\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t    {\n\t\t\"zip-compressed.builder.xml\",\n\t\t\"10792ff01b036ed89d11a6480694ccfd89c4d9fd\",\n\t\tFU_FIRMWARE_BUILDER_FLAG_NONE,\n\t
        \   },\n\t}"
      pos:
        line_end: 863
        line_start: 859
        source_file: /src/fwupd/libfwupdplugin/fu-firmware-test.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"'
    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_legacy
  - 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"'
    - item_type: preproc_def
      name: UDISKS_DBUS_MANAGER_PATH
      pos:
        line_end: 19
        line_start: 18
        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: 20
        line_start: 19
        source_file: /src/fwupd/libfwupdplugin/fu-common-linux.c
      type_or_value: '"org.freedesktop.UDisks2.Manager"'
    - item_type: preproc_def
      name: UDISKS_METHOD_TIMEOUT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-common-linux.c
      type_or_value: '10000 '
    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_FRAMEWORK
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-efi-signature.h
      type_or_value: '"6841bdb0-b2af-4079-918f-fe458325d5cd"'
    - item_type: preproc_def
      name: FU_EFI_SIGNATURE_GUID_OVMF
      pos:
        line_end: 24
        line_start: 23
        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: 25
        line_start: 24
        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_vendor_notify_cb
  - 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:
  - fu_efi_vss2_variable_store_validate
  - fu_efi_vss2_variable_store_parse
  - fu_efi_vss2_variable_store_write
  - fu_efi_vss2_variable_store_init
  - fu_efi_vss2_variable_store_class_init
  - fu_efi_vss2_variable_store_new
  source_file: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.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-vss2-variable-store.c
      type_or_value: '"FuEfiVss2VariableStore"'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuEfiVss2VariableStore
      pos:
        line_end: 27
        line_start: 25
        source_file: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.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: 43
        line_start: 42
        source_file: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
      type_or_value: '16'
    - item_type: preproc_def
      name: FU_PEFILE_FIRMWARE_SYMBOLS_MAX
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/libfwupdplugin/fu-pefile-firmware.c
      type_or_value: '1000000'
    structs:
    - fields:
      - name: '*authenticode_hash'
        type: gchar
      - name: subsystem_id
        type: guint16
      item_type: struct
      name: FuPefileFirmwarePrivate
      pos:
        line_end: 37
        line_start: 34
        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: 68
        line_start: 64
        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: 472
        line_start: 467
        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[] = {\n\t    {FU_HWIDS_KEY_MANUFACTURER, \"vendor\"},\n\t    {FU_HWIDS_KEY_FAMILY,
        \"model-name\"},\n\t    {FU_HWIDS_KEY_PRODUCT_NAME, \"model\"},\n\t}"
      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: 62
        line_start: 59
        source_file: /src/fwupd/libfwupdplugin/fu-hwids-fdt.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-cbor-item.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: FuCborItem
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-cbor-item.h
      type: FuCborItem
    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-zip-file.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ZIP_FILE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-zip-file.h
      type_or_value: (fu_zip_file_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuZipFileClass
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/libfwupdplugin/fu-zip-file.h
    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:
  - fu_efi_vss_auth_variable_get_state
  - fu_efi_vss_auth_variable_export
  - fu_efi_vss_auth_variable_lookup_image_gtype
  - fu_efi_vss_auth_variable_parse
  - fu_efi_vss_auth_variable_write
  - fu_efi_vss_auth_variable_build
  - fu_efi_vss_auth_variable_init
  - fu_efi_vss_auth_variable_finalize
  - fu_efi_vss_auth_variable_class_init
  - fu_efi_vss_auth_variable_new
  source_file: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.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-vss-auth-variable.c
      type_or_value: '"FuEfiVssAuthVariable"'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: '*vendor_guid'
        type: gchar
      - name: attributes
        type: FuEfiVariableAttrs
      - name: state
        type: FuEfiVariableState
      - name: '*timestamp'
        type: FuStructEfiTime
      item_type: struct
      name: _FuEfiVssAuthVariable
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c
    - fields:
      - name: '*guid'
        type: gchar
      - name: '*name'
        type: gchar
      - name: gtype
        type: GType
      item_type: struct
      name: "gtypes[] = {\n\t    {FU_EFIVARS_GUID_EFI_GLOBAL, \"PK\", FU_TYPE_EFI_SIGNATURE_LIST},\n\t
        \   {FU_EFIVARS_GUID_EFI_GLOBAL, \"KEK\", FU_TYPE_EFI_SIGNATURE_LIST},\n\t
        \   {FU_EFIVARS_GUID_SECURITY_DATABASE, \"db\", FU_TYPE_EFI_SIGNATURE_LIST},\n\t
        \   {FU_EFIVARS_GUID_SECURITY_DATABASE, \"dbx\", FU_TYPE_EFI_SIGNATURE_LIST},\n\t}"
      pos:
        line_end: 83
        line_start: 79
        source_file: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.c
    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: 13
        line_start: 12
        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: 17
        line_start: 15
        source_file: /src/fwupd/libfwupdplugin/fu-hidraw-device.h
    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:
  - fu_fdt_firmware_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-fdt-firmware-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_fuzzer_default_init
  - fu_fuzzer_test_input
  - fu_fuzzer_build_example
  source_file: /src/fwupd/libfwupdplugin/fu-fuzzer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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-cbor-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    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:
  - fu_security_attrs_sort_cb
  - fu_security_attrs_minimize
  - fu_intel_me16_device_func
  - fu_intel_me18_device_func
  - fu_intel_me16_device_hap_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-intel-me-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_smbios_func
  - fu_smbios3_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-smbios-test.c
  types:
    enum: []
    preproc_defs: []
    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: 21
        line_start: 20
        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: 28
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-context.h
    typedefs:
    - 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: 44
        line_start: 40
        source_file: /src/fwupd/libfwupdplugin/fu-context.h
      type: void
    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:
  - fu_protobuf_write
  - fu_protobuf_to_string
  - fu_protobuf_add_varint_raw
  - fu_protobuf_add_tag_raw
  - fu_protobuf_add_uint64
  - fu_protobuf_add_boolean
  - fu_protobuf_add_embedded
  - fu_protobuf_add_string
  - fu_protobuf_add_empty
  - fu_protobuf_get_varint_raw
  - fu_protobuf_get_tag
  - fu_protobuf_process
  - fu_protobuf_get_uint64_varint_cb
  - fu_protobuf_get_uint64_int64_cb
  - fu_protobuf_get_uint64_int32_cb
  - fu_protobuf_get_uint64
  - fu_protobuf_get_boolean
  - fu_protobuf_get_string_len_cb
  - fu_protobuf_get_string
  - fu_protobuf_get_embedded_len_cb
  - fu_protobuf_get_embedded
  - fu_protobuf_fuzzer_test_input
  - fu_protobuf_fuzzer_build_example
  - fu_protobuf_init
  - fu_protobuf_finalize
  - fu_protobuf_fuzzer_iface_init
  - fu_protobuf_class_init
  - fu_protobuf_new
  - fu_protobuf_new_from_data
  source_file: /src/fwupd/libfwupdplugin/fu-protobuf.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-protobuf.c
      type_or_value: '"FuProtobuf"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*buf'
        type: GByteArray
      item_type: struct
      name: _FuProtobuf
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/fwupd/libfwupdplugin/fu-protobuf.c
    - fields:
      - name: (*varint)(FuProtobuf *self, gpointer data, gsize *offset, GError **error)
        type: gboolean
      - name: (*int64)(FuProtobuf *self, gpointer data, gsize *offset, GError **error)
        type: gboolean
      - name: (*int32)(FuProtobuf *self, gpointer data, gsize *offset, GError **error)
        type: gboolean
      - name: (*len)(FuProtobuf *self, gpointer data, gsize *offset, GError **error)
        type: gboolean
      item_type: struct
      name: FuProtobufCallbacks
      pos:
        line_end: 249
        line_start: 244
        source_file: /src/fwupd/libfwupdplugin/fu-protobuf.c
    typedefs: []
    union: []
- function_names:
  - fu_hid_descriptor_container_func
  - fu_hid_descriptor_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-hid-descriptor-test.c
  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_item_new
  - fu_smbios_item_free
  - 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_build_item
  - fu_smbios_build
  - fu_smbios_get_data
  - fu_smbios_get_integer
  - fu_smbios_get_string
  - 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: 376
        line_start: 375
        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: 377
        line_start: 376
        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: 378
        line_start: 377
        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: 379
        line_start: 378
        source_file: /src/fwupd/libfwupdplugin/fu-smbios.c
      type_or_value: '0x08'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: '*pstore'
        type: FuPathStore
      - name: structure_table_len
        type: guint32
      - name: '*items'
        type: GPtrArray
      item_type: struct
      name: _FuSmbios
      pos:
        line_end: 42
        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: 49
        line_start: 44
        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_add_device
  - fu_plugin_get_devices
  - fu_plugin_device_register
  - fu_plugin_remove_device
  - 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_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_composite_peek_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
      type: gboolean
    - 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
      type: gboolean
    - 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
      type: gboolean
    - 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
      type: gboolean
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_TPM_EVENTLOG_V2
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v2.h
      type_or_value: (fu_tpm_eventlog_v2_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_device_event_blob_free
  - fu_device_event_blob_new_internal
  - 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_byte_array
  - 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_get_byte_array
  - fu_device_event_copy_data
  - fu_device_event_add_json
  - fu_device_event_set_id
  - fu_device_event_set_id_from_json
  - 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: GRefString
      - name: data
        type: gpointer
      - name: data_destroy
        type: GDestroyNotify
      item_type: struct
      name: FuDeviceEventBlob
      pos:
        line_end: 27
        line_start: 22
        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-protobuf.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PROTOBUF
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-protobuf.h
      type_or_value: (fu_protobuf_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: 22
        line_start: 20
        source_file: /src/fwupd/libfwupdplugin/fu-hid-report.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_efivars_get_path_store
  - fu_efivars_supported
  - fu_efivars_delete
  - fu_efivars_delete_with_glob
  - fu_efivars_exists
  - fu_efivars_get_data
  - fu_efivars_get_attrs
  - 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_get_property
  - fu_efivars_set_property
  - fu_efivars_init
  - fu_efivars_finalize
  - fu_efivars_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-efivars.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*pstore'
        type: FuPathStore
      item_type: struct
      name: FuEfivarsPrivate
      pos:
        line_end: 21
        line_start: 19
        source_file: /src/fwupd/libfwupdplugin/fu-efivars.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-kernel.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_bytes_get_data_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-bytes-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_mem_memmem_func
  - fu_mem_endian_func
  - fu_mem_memcpy_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-mem-test.c
  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_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: 28
        line_start: 18
        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: FuFirmwareExportFlags
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.h
      type_or_value: guint64
    - item_type: preproc_def
      name: FuFirmwareParseFlags
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.h
      type_or_value: guint64
    - item_type: preproc_def
      name: FuFirmwareBuilderFlags
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.h
      type_or_value: guint64
    - item_type: preproc_def
      name: FU_FIRMWARE_ID_PAYLOAD
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.h
      type_or_value: '"payload"'
    - item_type: preproc_def
      name: FU_FIRMWARE_ID_SIGNATURE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.h
      type_or_value: '"signature"'
    - item_type: preproc_def
      name: FU_FIRMWARE_ID_HEADER
      pos:
        line_end: 77
        line_start: 76
        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: 79
        line_start: 78
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.h
      type_or_value: (64 * FU_KB)
    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: "(*parse_full)(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)"
        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
      - name: (*add_magic)(FuFirmware *self)
        type: void
      item_type: struct
      name: _FuFirmwareClass
      pos:
        line_end: 51
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-context-private.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_CONTEXT_HWID_FLAG_LOAD_ALL
      pos:
        line_end: 20
        line_start: 16
        source_file: /src/fwupd/libfwupdplugin/fu-context-private.h
      type_or_value: "(FU_CONTEXT_HWID_FLAG_LOAD_CONFIG | FU_CONTEXT_HWID_FLAG_LOAD_SMBIOS
        |                     \\\n\t FU_CONTEXT_HWID_FLAG_LOAD_FDT | FU_CONTEXT_HWID_FLAG_LOAD_DMI
        |                           \\\n\t FU_CONTEXT_HWID_FLAG_LOAD_KENV | FU_CONTEXT_HWID_FLAG_LOAD_DARWIN)"
    structs: []
    typedefs: []
    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-efi-ftw-store.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EFI_FTW_STORE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.h
      type_or_value: (fu_efi_ftw_store_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_cab_firmware_checksum_func
  - fu_cab_firmware_compressed_size_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-cab-firmware-test.c
  types:
    enum: []
    preproc_defs: []
    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: []
  source_file: /src/fwupd/libfwupdplugin/fu-cbor-item-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    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
  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: 23
        line_start: 18
        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: 229
        line_start: 226
        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:
  - fu_path_store_get_path
  - fu_path_store_build_filename
  - fu_path_store_set_path
  - fu_path_store_set_tmpdir
  - fu_path_store_add_prefix
  - fu_path_store_add_dir
  - fu_path_store_ensure_lockdir
  - fu_path_store_ensure_localtime
  - fu_path_store_get_win32_basedir
  - fu_path_store_load_defaults
  - fu_path_store_load_from_env
  - fu_path_store_finalize
  - fu_path_store_class_init
  - fu_path_store_init
  - fu_path_store_new
  source_file: /src/fwupd/libfwupdplugin/fu-path-store.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-store.c
      type_or_value: '"FuPathStore"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*paths[FU_PATH_KIND_LAST]'
        type: gchar
      - name: loaded_defaults
        type: gboolean
      - name: loaded_from_env
        type: gboolean
      item_type: struct
      name: _FuPathStore
      pos:
        line_end: 17
        line_start: 12
        source_file: /src/fwupd/libfwupdplugin/fu-path-store.c
    - fields:
      - name: '*env'
        type: gchar
      - name: kind
        type: FuPathKind
      item_type: struct
      name: "envmap[] = {\n\t    {\"CACHE_DIRECTORY\", FU_PATH_KIND_CACHEDIR_PKG},\n\t
        \   {\"CONFIGURATION_DIRECTORY\", FU_PATH_KIND_SYSCONFDIR_PKG},\n\t    {\"LOCALCONF_DIRECTORY\",
        FU_PATH_KIND_LOCALCONFDIR_PKG},\n\t    {\"STATE_DIRECTORY\", FU_PATH_KIND_LOCALSTATEDIR_PKG},\n\t
        \   {\"FWUPD_DATADIR_QUIRKS\", FU_PATH_KIND_DATADIR_QUIRKS},\n\t    {\"FWUPD_HOSTFS_ROOT\",
        FU_PATH_KIND_HOSTFS_ROOT},\n\t    {\"FWUPD_LIBDIR_PKG\", FU_PATH_KIND_LIBDIR_PKG},\n\t
        \   {\"FWUPD_LOCKDIR\", FU_PATH_KIND_LOCKDIR},\n\t    {\"FWUPD_SYSFSFWATTRIBDIR\",
        FU_PATH_KIND_SYSFSDIR_FW_ATTRIB},\n\t    {\"FWUPD_SYSFSFWDIR\", FU_PATH_KIND_SYSFSDIR_FW},\n\t
        \   {\"FWUPD_UEFI_ESP_PATH\", FU_PATH_KIND_UEFI_ESP},\n\t}"
      pos:
        line_end: 345
        line_start: 342
        source_file: /src/fwupd/libfwupdplugin/fu-path-store.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_bluez_device_uuid_item_free
  - fu_bluez_device_get_uuid_item
  - fu_bluez_device_signal_cb
  - fu_bluez_device_ensure_uuid_item_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_add_json
  - fu_bluez_device_from_json
  - 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: 19
        line_start: 18
        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: GPtrArray
      - name: '*modalias'
        type: gchar
      item_type: struct
      name: FuBluezDevicePrivate
      pos:
        line_end: 33
        line_start: 28
        source_file: /src/fwupd/libfwupdplugin/fu-bluez-device.c
    - fields:
      - name: '*uuid'
        type: gchar
      - name: '*path'
        type: gchar
      - name: signal_id
        type: gulong
      - name: '*proxy'
        type: GDBusProxy
      item_type: struct
      name: FuBluezDeviceUuidItem
      pos:
        line_end: 40
        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_check_attrs
  - 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:
  - fu_partial_input_stream_composite_func
  - fu_partial_input_stream_simple_func
  - fu_partial_input_stream_closed_base_func
  - fu_partial_input_stream_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-partial-input-stream-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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:
  - fu_lzma_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-lzma-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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: (256 * FU_MB)
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_quirks_append_cb
  - fu_quirks_append_func
  - fu_quirks_vendor_ids_func
  - fu_quirks_performance_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-quirks-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: seen_one
        type: gboolean
      - name: seen_two
        type: gboolean
      item_type: struct
      name: FuQuirksAppendHelper
      pos:
        line_end: 17
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-quirks-test.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - 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_add_magic
  - fu_firmware_get_checksum
  - fu_firmware_tokenize
  - fu_firmware_check_compatible
  - fu_firmware_validate_with_magic
  - fu_firmware_validate_for_offset
  - fu_firmware_parse_stream
  - fu_firmware_parse_bytes
  - fu_firmware_build
  - fu_firmware_new_from_xml
  - fu_firmware_new_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_gtype
  - fu_firmware_get_image_gtypes
  - fu_firmware_check_image_gtype
  - 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_sort_by_id_cb
  - fu_firmware_sort_by_idx_cb
  - fu_firmware_get_images_sorted
  - 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_constructed
  - fu_firmware_finalize
  - fu_firmware_class_init
  - fu_firmware_new
  - fu_firmware_new_from_bytes
  - fu_firmware_new_from_gtypes
  - fu_firmware_roundtrip_from_xml
  - fu_firmware_roundtrip_from_filename
  - fu_firmware_fuzzer_test_input
  - fu_firmware_fuzzer_build_example
  - fu_firmware_fuzzer_iface_init
  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: 70
        line_start: 69
        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: '*image_gtypes'
        type: GArray
      - name: depth
        type: guint
      - name: '*chunks'
        type: GPtrArray
      - name: '*patches'
        type: GPtrArray
      - name: '*magic'
        type: GPtrArray
      item_type: struct
      name: FuFirmwarePrivate
      pos:
        line_end: 53
        line_start: 29
        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: 74
        line_start: 71
        source_file: /src/fwupd/libfwupdplugin/fu-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_efi_ftw_store_export
  - fu_efi_ftw_store_validate
  - fu_efi_ftw_store_parse
  - fu_efi_ftw_store_write
  - fu_efi_ftw_store_build
  - fu_efi_ftw_store_init
  - fu_efi_ftw_store_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.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-ftw-store.c
      type_or_value: '"FuEfiFtwStore"'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: state
        type: FuEfiVariableStoreState
      item_type: struct
      name: _FuEfiFtwStore
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-efi-ftw-store.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_add_magic
  - 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_plugin_struct_bits_func
  - fu_plugin_struct_list_func
  - fu_plugin_struct_func
  - fu_plugin_struct_wrapped_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-struct-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    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_device_locker_open_cb
  - fu_device_locker_close_cb
  - fu_device_locker_func
  - fu_device_locker_fail_open_cb
  - fu_device_locker_fail_close_cb
  - fu_device_locker_fail_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-device-locker-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_input_stream_find_func
  - fu_input_stream_sum_overflow_func
  - fu_input_stream_chunkify_func
  - fu_input_stream_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-input-stream-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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_is_supported
  - fu_bios_settings_new
  - fu_bios_settings_register_attr
  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: '*pstore'
        type: FuPathStore
      - name: '*descriptions'
        type: GHashTable
      - name: '*read_only'
        type: GHashTable
      - name: '*attrs'
        type: GPtrArray
      item_type: struct
      name: _FuBiosSettings
      pos:
        line_end: 28
        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:
  - fu_msgpack_lookup_func
  - fu_msgpack_binary_stream_func
  - fu_msgpack_parse_binary_func
  - fu_msgpack_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-msgpack-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_volume_gpt_type_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-volume-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-hwids-private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_zip_firmware_parse_extra
  - fu_zip_firmware_parse_lfh
  - fu_zip_firmware_parse
  - fu_zip_firmware_write
  - fu_zip_firmware_add_magic
  - fu_zip_firmware_class_init
  - fu_zip_firmware_init
  - fu_zip_firmware_new
  source_file: /src/fwupd/libfwupdplugin/fu-zip-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-zip-firmware.c
      type_or_value: '"FuZipFirmware"'
    - item_type: preproc_def
      name: FU_ZIP_FIRMWARE_EOCD_OFFSET_MAX
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-zip-firmware.c
      type_or_value: (16 * FU_KB)
    - item_type: preproc_def
      name: FU_ZIP_FIRMWARE_EXTRA_MAX
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-zip-firmware.c
      type_or_value: (1 * FU_MB)
    - item_type: preproc_def
      name: FU_ZIP_MAX_DECOMPRESSION_RATIO
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/libfwupdplugin/fu-zip-firmware.c
      type_or_value: '1000'
    structs:
    - fields:
      - name: uncompressed_crc
        type: guint32
      - name: uncompressed_size
        type: guint32
      - name: compressed_size
        type: guint32
      item_type: struct
      name: FuZipFirmwareWriteItem
      pos:
        line_end: 406
        line_start: 402
        source_file: /src/fwupd/libfwupdplugin/fu-zip-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_test_hang_check_cb
  - fu_test_loop_run_with_timeout
  - fu_test_loop_quit
  source_file: /src/fwupd/libfwupdplugin/fu-test.c
  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: '*pstore'
        type: FuPathStore
      - name: '*path'
        type: gchar
      - name: '*old_path'
        type: gchar
      item_type: struct
      name: _FuKernelSearchPathLocker
      pos:
        line_end: 23
        line_start: 18
        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: 35
        line_start: 34
        source_file: /src/fwupd/libfwupdplugin/fu-efi-file.c
      type_or_value: (16 * FU_MB)
    structs:
    - fields:
      - name: type
        type: guint8
      - name: attrib
        type: guint8
      item_type: struct
      name: FuEfiFilePrivate
      pos:
        line_end: 29
        line_start: 26
        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:
  - fu_path_store_load
  - fu_path_store_defaults
  - fu_path_store_env
  - fu_path_store_prefix
  - fu_path_store_tmpdir
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-path-store-test.c
  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
      type: gboolean
    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-firmware-private.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_FIRMWARE_SIZE_MAX_DEFAULT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-firmware-private.h
      type_or_value: ((100 * FU_MB) + 1)
    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: FuDevice
      - 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_efivars_func
  - fu_efivars_boot_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-efivars-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_path_delete
  - 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_glob_sort_cb
  - fu_path_glob
  - fu_path_make_absolute
  - fu_path_get_symlink_target
  - fu_path_verify_safe
  - fu_path_sanitize_basename
  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"'
    - item_type: preproc_def
      name: FU_DFUSE_FIRMWARE_CHUNKS_MAX
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/libfwupdplugin/fu-dfuse-firmware.c
      type_or_value: '10000'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-zip-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ZIP_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-zip-firmware.h
      type_or_value: (fu_zip_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuZipFirmwareClass
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-zip-firmware.h
    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_offset
  - fu_dpaux_device_set_dpcd_offset
  - 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_add_json
  - fu_dpaux_device_from_json
  - 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_offset
        type: goffset
      - 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: 25
        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: 24
        line_start: 22
        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: 12
        line_start: 11
        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: 13
        line_start: 12
        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: 14
        line_start: 13
        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: 15
        line_start: 14
        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: 16
        line_start: 15
        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: 17
        line_start: 16
        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: 18
        line_start: 17
        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: 19
        line_start: 18
        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: 20
        line_start: 19
        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: 21
        line_start: 20
        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: 23
        line_start: 22
        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: 24
        line_start: 23
        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: 25
        line_start: 24
        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: 27
        line_start: 26
        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: 28
        line_start: 27
        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: 29
        line_start: 28
        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: 30
        line_start: 29
        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: 31
        line_start: 30
        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: 32
        line_start: 31
        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-device-poll-locker.h
  types:
    enum: []
    preproc_defs: []
    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_tpm_eventlog_item_alg_to_idx
  - fu_tpm_eventlog_item_add_checksum
  - fu_tpm_eventlog_item_get_checksum
  - fu_tpm_eventlog_item_get_kind
  - fu_tpm_eventlog_item_set_kind
  - fu_tpm_eventlog_item_get_pcr
  - fu_tpm_eventlog_item_set_pcr
  - fu_tpm_eventlog_item_csum_kind_to_idx
  - fu_tpm_eventlog_item_get_checksum_string
  - fu_tpm_eventlog_item_build
  - fu_tpm_eventlog_item_export
  - fu_tpm_eventlog_item_finalize
  - fu_tpm_eventlog_item_class_init
  - fu_tpm_eventlog_item_init
  - fu_tpm_eventlog_item_new
  source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-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-tpm-eventlog-item.c
      type_or_value: '"FuTpmEventlog"'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: kind
        type: FuTpmEventlogItemKind
      - name: pcr
        type: guint8
      - name: '*checksums[G_N_ELEMENTS(algs)]'
        type: GBytes
      item_type: struct
      name: _FuTpmEventlogItem
      pos:
        line_end: 25
        line_start: 20
        source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.c
    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
  - fu_memread_string_safe
  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: 17
        line_start: 15
        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_plugin_device_added_cb
  - fu_plugin_config_func
  - fu_plugin_devices_func
  - fu_plugin_delay_func
  - fu_plugin_func
  - fu_plugin_vfuncs_func
  - fu_plugin_device_gtype_func
  - fu_plugin_backend_device_func
  - fu_plugin_backend_proxy_device_added_cb
  - fu_plugin_backend_proxy_device_func
  - fu_plugin_quirks_device_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-plugin-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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_as_u32
  - 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:
  - fu_tpm_eventlog_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_cab_firmware_get_compressed
  - fu_cab_firmware_set_compressed
  - 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: 33
        line_start: 32
        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: 34
        line_start: 33
        source_file: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
      type_or_value: '64'
    - item_type: preproc_def
      name: FU_CAB_FIRMWARE_MAX_FILENAME
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
      type_or_value: '1000'
    - 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
      item_type: struct
      name: FuCabFirmwarePrivate
      pos:
        line_end: 27
        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: 85
        line_start: 73
        source_file: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
    typedefs:
    - item_type: typedef
      name: z_stream_deflater
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/fwupd/libfwupdplugin/fu-cab-firmware.c
      type: z_stream
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-path-store.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PATH_STORE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-path-store.h
      type_or_value: (fu_path_store_get_type())
    structs: []
    typedefs: []
    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: 12
        line_start: 11
        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: 23
        line_start: 22
        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: 31
        line_start: 30
        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: 20
        line_start: 18
        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: 139
        line_start: 136
        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: 13
        line_start: 12
        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: 56
        line_start: 55
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Plugin"'
    - item_type: preproc_def
      name: FU_QUIRKS_FLAGS
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Flags"'
    - item_type: preproc_def
      name: FU_QUIRKS_SUMMARY
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Summary"'
    - item_type: preproc_def
      name: FU_QUIRKS_ICON
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Icon"'
    - item_type: preproc_def
      name: FU_QUIRKS_NAME
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Name"'
    - item_type: preproc_def
      name: FU_QUIRKS_BRANCH
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Branch"'
    - item_type: preproc_def
      name: FU_QUIRKS_GUID
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Guid"'
    - item_type: preproc_def
      name: FU_QUIRKS_GUID_QUIRK
      pos:
        line_end: 116
        line_start: 115
        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: 130
        line_start: 129
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"CounterpartGuid"'
    - item_type: preproc_def
      name: FU_QUIRKS_PARENT_GUID
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"ParentGuid"'
    - item_type: preproc_def
      name: FU_QUIRKS_PROXY_GUID
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"ProxyGuid"'
    - item_type: preproc_def
      name: FU_QUIRKS_CHILDREN
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Children"'
    - item_type: preproc_def
      name: FU_QUIRKS_VERSION
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Version"'
    - item_type: preproc_def
      name: FU_QUIRKS_VERSION_LOWEST
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"VersionLowest"'
    - item_type: preproc_def
      name: FU_QUIRKS_VERSION_HIGHEST
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"VersionHighest"'
    - item_type: preproc_def
      name: FU_QUIRKS_VENDOR
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Vendor"'
    - item_type: preproc_def
      name: FU_QUIRKS_VENDOR_ID
      pos:
        line_end: 200
        line_start: 199
        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: 208
        line_start: 207
        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: 216
        line_start: 215
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"FirmwareSizeMax"'
    - item_type: preproc_def
      name: FU_QUIRKS_FIRMWARE_SIZE
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"FirmwareSize"'
    - item_type: preproc_def
      name: FU_QUIRKS_INSTALL_DURATION
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"InstallDuration"'
    - item_type: preproc_def
      name: FU_QUIRKS_VERSION_FORMAT
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"VersionFormat"'
    - item_type: preproc_def
      name: FU_QUIRKS_GTYPE
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"GType"'
    - item_type: preproc_def
      name: FU_QUIRKS_PROXY_GTYPE
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"ProxyGType"'
    - item_type: preproc_def
      name: FU_QUIRKS_FIRMWARE_GTYPE
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"FirmwareGType"'
    - item_type: preproc_def
      name: FU_QUIRKS_PROTOCOL
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Protocol"'
    - item_type: preproc_def
      name: FU_QUIRKS_UPDATE_MESSAGE
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"UpdateMessage"'
    - item_type: preproc_def
      name: FU_QUIRKS_UPDATE_IMAGE
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"UpdateImage"'
    - item_type: preproc_def
      name: FU_QUIRKS_PRIORITY
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Priority"'
    - item_type: preproc_def
      name: FU_QUIRKS_BATTERY_THRESHOLD
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"BatteryThreshold"'
    - item_type: preproc_def
      name: FU_QUIRKS_REMOVE_DELAY
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"RemoveDelay"'
    - item_type: preproc_def
      name: FU_QUIRKS_ACQUIESCE_DELAY
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"AcquiesceDelay"'
    - item_type: preproc_def
      name: FU_QUIRKS_INHIBIT
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Inhibit"'
    - item_type: preproc_def
      name: FU_QUIRKS_ISSUE
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"Issue"'
    - item_type: preproc_def
      name: FU_QUIRKS_DETAILS_URL
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"DetailsUrl"'
    - item_type: preproc_def
      name: FU_QUIRKS_CFI_DEVICE_CMD_READ_ID
      pos:
        line_end: 354
        line_start: 353
        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: 362
        line_start: 361
        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: 370
        line_start: 369
        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: 378
        line_start: 377
        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: 386
        line_start: 385
        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: 394
        line_start: 393
        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: 402
        line_start: 401
        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: 410
        line_start: 409
        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: 418
        line_start: 417
        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: 426
        line_start: 425
        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: 434
        line_start: 433
        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: 442
        line_start: 441
        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: 450
        line_start: 449
        source_file: /src/fwupd/libfwupdplugin/fu-quirks.h
      type_or_value: '"CfiDeviceBlockSize"'
    structs: []
    typedefs:
    - 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: 28
        line_start: 24
        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_get_data
  - fu_freebsd_efivars_exists
  - 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
  - _g_ascii_is_xdigits
  - 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:
  - GET_PRIVATE
  - fu_fmap_firmware_export
  - fu_fmap_firmware_build
  - fu_fmap_firmware_validate
  - fu_fmap_firmware_parse
  - fu_fmap_firmware_write
  - fu_fmap_firmware_add_magic
  - 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: FU_FMAP_FIRMWARE_AREAS_MAX
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c
      type_or_value: '1024'
    structs:
    - fields:
      - name: signature_offset
        type: gsize
      - name: ver_major
        type: guint8
      - name: ver_minor
        type: guint8
      item_type: struct
      name: FuFmapFirmwarePrivate
      pos:
        line_end: 32
        line_start: 28
        source_file: /src/fwupd/libfwupdplugin/fu-fmap-firmware.c
    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: []
    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_details_url
  - 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_created
  - 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_details_url
  - 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_highest
  - 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_highest_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: 19
        line_start: 18
        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: 111
        line_start: 110
        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: 120
        line_start: 119
        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: 215
        line_start: 214
        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: 223
        line_start: 222
        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: 231
        line_start: 230
        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: 239
        line_start: 238
        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: 247
        line_start: 246
        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: 255
        line_start: 254
        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: 263
        line_start: 262
        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: 271
        line_start: 270
        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: 279
        line_start: 278
        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: 287
        line_start: 286
        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: 295
        line_start: 294
        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: 303
        line_start: 302
        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: 311
        line_start: 310
        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: 319
        line_start: 318
        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: 327
        line_start: 326
        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: 335
        line_start: 334
        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_PROXY_FALLBACK
      pos:
        line_end: 343
        line_start: 342
        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: 351
        line_start: 350
        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: 359
        line_start: 358
        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: 367
        line_start: 366
        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: 375
        line_start: 374
        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: 383
        line_start: 382
        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: 391
        line_start: 390
        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: 400
        line_start: 399
        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: 409
        line_start: 408
        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: 422
        line_start: 421
        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: 433
        line_start: 432
        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: 441
        line_start: 440
        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: 451
        line_start: 450
        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: 459
        line_start: 458
        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: 467
        line_start: 466
        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: 475
        line_start: 474
        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: 483
        line_start: 482
        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: 491
        line_start: 490
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"no-generic-guids"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_NO_GENERIC_VERSION
      pos:
        line_end: 499
        line_start: 498
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"no-generic-version"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_ENFORCE_REQUIRES
      pos:
        line_end: 508
        line_start: 507
        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: 516
        line_start: 515
        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: 524
        line_start: 523
        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: 532
        line_start: 531
        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: 540
        line_start: 539
        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: 548
        line_start: 547
        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: 556
        line_start: 555
        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: 564
        line_start: 563
        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: 575
        line_start: 574
        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: 584
        line_start: 583
        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: 594
        line_start: 593
        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: 604
        line_start: 603
        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: 613
        line_start: 612
        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: 622
        line_start: 621
        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: 633
        line_start: 632
        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: 643
        line_start: 642
        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: 653
        line_start: 652
        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: 663
        line_start: 662
        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: 671
        line_start: 670
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"md-set-required-free"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_PARENT_NAME_PREFIX
      pos:
        line_end: 679
        line_start: 678
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"parent-name-prefix"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_LAZY_VERFMT
      pos:
        line_end: 689
        line_start: 688
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"lazy-verfmt"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_NO_VERSION_EXPECTED
      pos:
        line_end: 701
        line_start: 700
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"no-version-expected"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_STRICT_EMULATION_ORDER
      pos:
        line_end: 714
        line_start: 713
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"strict-emulation-order"'
    - item_type: preproc_def
      name: FU_DEVICE_PRIVATE_FLAG_HAS_DS20
      pos:
        line_end: 723
        line_start: 722
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"has-ds20"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_COMPUTER
      pos:
        line_end: 734
        line_start: 733
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"computer"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_GPU
      pos:
        line_end: 743
        line_start: 742
        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: 752
        line_start: 751
        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: 761
        line_start: 760
        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: 770
        line_start: 769
        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: 779
        line_start: 778
        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: 788
        line_start: 787
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type_or_value: '"thunderbolt"'
    - item_type: preproc_def
      name: FU_DEVICE_ICON_MEMORY
      pos:
        line_end: 797
        line_start: 796
        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: 806
        line_start: 805
        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: 815
        line_start: 814
        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: 824
        line_start: 823
        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: 833
        line_start: 832
        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: 842
        line_start: 841
        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: 851
        line_start: 850
        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: 860
        line_start: 859
        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: 869
        line_start: 868
        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: 878
        line_start: 877
        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: 887
        line_start: 886
        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: 896
        line_start: 895
        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: 905
        line_start: 904
        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: 914
        line_start: 913
        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: 923
        line_start: 922
        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: 932
        line_start: 931
        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: 941
        line_start: 940
        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: 950
        line_start: 949
        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: 959
        line_start: 958
        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: 968
        line_start: 967
        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: 977
        line_start: 976
        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: 101
        line_start: 21
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
    typedefs:
    - 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: 133
        line_start: 131
        source_file: /src/fwupd/libfwupdplugin/fu-device.h
      type: gboolean
    union: []
- function_names:
  - FU_CBOR_ITEM_TO_ARRAY
  - FU_CBOR_ITEM_TO_BYTES
  - FU_CBOR_ITEM_TO_STRING
  - FU_CBOR_ITEM_TO_INT64
  - FU_CBOR_ITEM_TO_BOOLEAN
  - fu_cbor_item_get_kind
  - fu_cbor_item_get_integer
  - fu_cbor_item_get_boolean
  - fu_cbor_item_get_string
  - fu_cbor_item_get_bytes
  - fu_cbor_item_array_length
  - fu_cbor_item_map_length
  - fu_cbor_item_array_index
  - fu_cbor_item_map_index
  - fu_cbor_item_append_raw
  - fu_cbor_item_append_extended
  - fu_cbor_item_append
  - fu_cbor_item_write
  - fu_cbor_item_ref
  - fu_cbor_item_unref
  - fu_cbor_item_new_string
  - fu_cbor_item_new_bytes
  - fu_cbor_item_new_string_steal
  - fu_cbor_item_new_integer
  - fu_cbor_item_new_boolean
  - fu_cbor_item_map_pair_free
  - fu_cbor_item_new_map
  - fu_cbor_item_new_array
  - fu_cbor_item_array_append
  - fu_cbor_item_map_append
  - fu_cbor_item_append_string
  - fu_cbor_item_to_string
  source_file: /src/fwupd/libfwupdplugin/fu-cbor-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-cbor-item.c
      type_or_value: '"FuCbor"'
    structs:
    - fields:
      - name: refcount
        type: grefcount
      - name: kind
        type: FuCborItemKind
      - name: value
        type: gpointer
      - name: value_destroy
        type: GDestroyNotify
      item_type: struct
      name: FuCborItem
      pos:
        line_end: 20
        line_start: 15
        source_file: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    - fields:
      - name: '*key'
        type: FuCborItem
      - name: '*val'
        type: FuCborItem
      item_type: struct
      name: FuCborPair
      pos:
        line_end: 25
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-cbor-item.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_zip_file_get_compression
  - fu_zip_file_set_compression
  - fu_zip_file_build
  - fu_zip_file_export
  - fu_zip_file_class_init
  - fu_zip_file_init
  - fu_zip_file_new
  source_file: /src/fwupd/libfwupdplugin/fu-zip-file.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-zip-file.c
      type_or_value: '"FuZipFile"'
    structs:
    - fields:
      - name: compression
        type: FuZipCompression
      item_type: struct
      name: FuZipFilePrivate
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-zip-file.c
    typedefs: []
    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: 39
        line_start: 38
        source_file: /src/fwupd/libfwupdplugin/fu-oprom-firmware.c
      type_or_value: 512u
    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: 33
        line_start: 27
        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: 13
        line_start: 12
        source_file: /src/fwupd/libfwupdplugin/fu-ioctl.h
      type_or_value: (fu_ioctl_get_type())
    structs: []
    typedefs:
    - 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: 20
        line_start: 16
        source_file: /src/fwupd/libfwupdplugin/fu-ioctl.h
      type: gboolean
    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_build_devfs_path
  - 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_read_byte_array
  - fu_udev_device_write
  - fu_udev_device_write_bytes
  - fu_udev_device_write_byte_array
  - 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: emulated_offset
        type: goffset
      - name: open_flags
        type: FuIoChannelOpenFlags
      - name: '*properties'
        type: GHashTable
      - name: properties_valid
        type: gboolean
      item_type: struct
      name: FuUdevDevicePrivate
      pos:
        line_end: 53
        line_start: 41
        source_file: /src/fwupd/libfwupdplugin/fu-udev-device.c
    typedefs: []
    union: []
- function_names:
  - fu_sum8
  - fu_sum8_safe
  - fu_sum8_bytes
  - fu_sum16
  - fu_sum16_safe
  - 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: 30
        line_start: 21
        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_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:
  - fu_xor8_func
  - fu_xor8_safe_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-xor-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_self_test_device_init
  - fu_self_test_device_class_init
  source_file: /src/fwupd/libfwupdplugin/fu-self-test-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      item_type: struct
      name: _FuSelfTestDevice
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-self-test-device.c
    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:
  - 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_device_progress_func
  - fu_device_strsafe_func
  - fu_device_inhibit_children_func
  - fu_device_poll_cb
  - fu_device_poll_func
  - fu_device_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_device_retry_success_cb
  - fu_device_retry_failed_cb
  - fu_device_retry_success_3rd_try_cb
  - fu_device_retry_success_func
  - fu_device_retry_failed_func
  - fu_device_retry_hardware_func
  - fu_device_possible_plugin_func
  - fu_device_parent_name_prefix_func
  - fu_device_id_display_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-device-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - 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: 216
        line_start: 213
        source_file: /src/fwupd/libfwupdplugin/fu-device-test.c
    - fields:
      - name: cnt_success
        type: guint
      - name: cnt_failed
        type: guint
      item_type: struct
      name: FuDeviceRetryHelper
      pos:
        line_end: 865
        line_start: 862
        source_file: /src/fwupd/libfwupdplugin/fu-device-test.c
    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: 38
        line_start: 37
        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: 32
        line_start: 28
        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: 165
        line_start: 161
        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_set_contents_full
  - 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: 29
        line_start: 20
        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: []
  source_file: /src/fwupd/libfwupdplugin/fu-intel-me-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_INTEL_ME_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-intel-me-device.h
      type_or_value: (fu_intel_me_device_get_type())
    structs: []
    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: 37
        line_start: 34
        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: 173
        line_start: 169
        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_get_all_mutable
  - 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_AMD_PLATFORM_SECURE_BOOT,
        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
        \   {FWUPD_SECURITY_ATTR_ID_HP_SURESTART, FWUPD_SECURITY_ATTR_LEVEL_IMPORTANT},\n
        \   {FWUPD_SECURITY_ATTR_ID_AMD_ENTRY_SIGN, FWUPD_SECURITY_ATTR_LEVEL_CRITICAL},\n}"
      pos:
        line_end: 377
        line_start: 374
        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_AMD_ENTRY_SIGN, \"2.1.2\"},\n    {FWUPD_SECURITY_ATTR_ID_AMD_PLATFORM_SECURE_BOOT,
        \"2.1.1\"},\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    {FWUPD_SECURITY_ATTR_ID_HP_SURESTART, \"2.1.1\"},\n}"
      pos:
        line_end: 452
        line_start: 449
        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: 24
        line_start: 23
        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
      - name: "(*composite_peek_firmware)(FuPlugin *self,\n\t\t\t\t\t    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)"
        type: gboolean
      item_type: struct
      name: _FuPluginClass
      pos:
        line_end: 451
        line_start: 44
        source_file: /src/fwupd/libfwupdplugin/fu-plugin.h
    typedefs:
    - item_type: typedef
      name: FuPluginVfuncs
      pos:
        line_end: 458
        line_start: 458
        source_file: /src/fwupd/libfwupdplugin/fu-plugin.h
      type: _FuPluginClass
    - item_type: typedef
      name: FuPluginData
      pos:
        line_end: 488
        line_start: 488
        source_file: /src/fwupd/libfwupdplugin/fu-plugin.h
      type: FuPluginData
    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:
  - 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_unset_func
  - fu_context_hwids_fdt_func
  - fu_context_quirks_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-context-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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-xor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-path.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_bios_settings_load_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-bios-settings-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    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_hidraw_device_test_new
  - fu_hidraw_device_probe_hid_phys_func
  - fu_hidraw_device_probe_hid_phys_empty_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-hidraw-device-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_TPM_EVENTLOG_V1
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.h
      type_or_value: (fu_tpm_eventlog_v1_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_cbor_parse_map
  - fu_cbor_parse_array
  - fu_cbor_parse_item
  - fu_cbor_parse
  source_file: /src/fwupd/libfwupdplugin/fu-cbor-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-cbor-common.c
      type_or_value: '"FuCbor"'
    structs:
    - fields:
      - name: max_depth
        type: guint
      - name: max_items
        type: guint
      - name: max_length
        type: guint
      - name: '*stream'
        type: GInputStream
      - name: offset
        type: gsize
      item_type: struct
      name: FuCborParseHelper
      pos:
        line_end: 21
        line_start: 15
        source_file: /src/fwupd/libfwupdplugin/fu-cbor-common.c
    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
  - fu_common_get_olson_timezone_id_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_srec_firmware_func
  - fu_srec_firmware_tokenization_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-srec-firmware-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_udev_device_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-udev-device-test.c
  types:
    enum: []
    preproc_defs: []
    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_fast_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: 646
        line_start: 643
        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: 26
        line_start: 23
        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_sleep_idle_stop
  - 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_sleep_idle_cb
  - fu_progress_sleep_idle
  - 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: 94
        line_start: 93
        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: FuProgressFlags
      - name: percentage
        type: gdouble
      - name: status
        type: FwupdStatus
      - name: '*children'
        type: GPtrArray
      - name: profile
        type: gboolean
      - name: any_child_has_step_weighting
        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
      - name: sleep_timeout_id
        type: guint
      item_type: struct
      name: _FuProgress
      pos:
        line_end: 79
        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_cb
  - fu_cfi_device_chip_select_deassert_cb
  - 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: []
  source_file: /src/fwupd/libfwupdplugin/fu-processor-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PROCESSOR_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-processor-device.h
      type_or_value: (fu_processor_device_get_type())
    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[] = {\n\t    {FU_HWIDS_KEY_BIOS_VERSION, \"System Firmware Version\"},\n\t
        \   {FU_HWIDS_KEY_FAMILY, \"Model Name\"},\n\t    {FU_HWIDS_KEY_PRODUCT_NAME,
        \"Model Identifier\"},\n\t}"
      pos:
        line_end: 22
        line_start: 19
        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: 32
        line_start: 30
        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: []
  source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_TPM_EVENTLOG_ITEM
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-item.h
      type_or_value: (fu_tpm_eventlog_item_get_type())
    structs: []
    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: 30
        line_start: 26
        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: 53
        line_start: 52
        source_file: /src/fwupd/libfwupdplugin/fu-ifd-firmware.c
      type_or_value: (4 * FU_KB)
    - item_type: preproc_def
      name: FU_IFD_FDBAR_FLASH_UPPER_MAP1
      pos:
        line_end: 55
        line_start: 54
        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: 56
        line_start: 55
        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: 47
        line_start: 30
        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: 13
        line_start: 12
        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: 17
        line_start: 15
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device.h
    typedefs: []
    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: []
    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: 33
        line_start: 27
        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-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 '
    - item_type: preproc_def
      name: FU_UDEV_DEVICE_FLAG_SYSFS_USE_PHYSICAL_ID
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/libfwupdplugin/fu-udev-device.h
      type_or_value: '"sysfs-use-physical-id"'
    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_RELEASE_DATE,\n\t\t
        \   FU_SMBIOS_STRUCTURE_TYPE_BIOS,\n\t\t    0x08,\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
      type: gchar
    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_format_to_gtype
  - fu_uswid_firmware_parse
  - fu_uswid_firmware_write
  - fu_uswid_firmware_build
  - fu_uswid_firmware_add_magic
  - 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: 38
        line_start: 37
        source_file: /src/fwupd/libfwupdplugin/fu-uswid-firmware.c
      type_or_value: '1'
    structs:
    - fields:
      - name: hdrver
        type: guint8
      - name: compression
        type: FuUswidPayloadCompression
      - name: format
        type: FuUswidPayloadFormat
      item_type: struct
      name: FuUswidFirmwarePrivate
      pos:
        line_end: 32
        line_start: 28
        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"'
    - item_type: preproc_def
      name: FU_ELF_FIRMWARE_MAX_SECTIONS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
      type_or_value: '10000'
    structs:
    - fields:
      - name: '*name'
        type: gchar
      - name: namesz
        type: gsize
      - name: offset
        type: gsize
      item_type: struct
      name: FuElfFirmwareStrtabEntry
      pos:
        line_end: 220
        line_start: 216
        source_file: /src/fwupd/libfwupdplugin/fu-elf-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_intel_me_device_get_family
  - fu_intel_me_device_get_issue
  - fu_intel_me_device_to_string
  - fu_intel_me_device_parse_versions
  - fu_intel_me_device_version_notify_cb
  - fu_intel_me_device_get_hfsts
  - fu_intel_me_device_set_hfsts
  - fu_intel_me_device_add_attrs_csme11_manufacturing_mode
  - fu_intel_me_device_add_attrs_csme18_manufacturing_mode
  - fu_intel_me_device_add_attrs_csme11_override_strap
  - fu_intel_me_device_add_attrs_csme18_override_strap
  - fu_intel_me_device_add_attrs_csme11_bootguard_enabled
  - fu_intel_me_device_add_attrs_csme18_bootguard_enabled
  - fu_intel_me_device_add_attrs_csme11_bootguard_verified
  - fu_intel_me_device_add_attrs_csme11_bootguard_acm
  - fu_intel_me_device_add_attrs_csme18_bootguard_acm
  - fu_intel_me_device_add_attrs_csme11_bootguard_policy
  - fu_intel_me_device_add_attrs_csme11_bootguard_otp
  - fu_intel_me_device_add_attrs_csme18_bootguard_otp
  - fu_intel_me_device_add_attrs_mei_version
  - fu_intel_me_device_add_security_attrs
  - fu_intel_me_device_from_json
  - fu_intel_me_device_add_json
  - fu_intel_me_device_init
  - fu_intel_me_device_constructed
  - fu_intel_me_device_finalize
  - fu_intel_me_device_class_init
  - fu_intel_me_device_new
  source_file: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: family
        type: FuIntelMeFamily
      - name: issue
        type: FuIntelMeIssue
      - name: working_state
        type: FuMeHfsCws
      - name: '*hfsts[7]'
        type: FuStructIntelMeHfsts
      item_type: struct
      name: _FuIntelMeDevice
      pos:
        line_end: 19
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    - fields:
      - name: major
        type: guint8
      - name: minor
        type: guint8
      - name: patch
        type: guint8
      - name: buildno
        type: guint16
      item_type: struct
      name: FuIntelMeVersions
      pos:
        line_end: 83
        line_start: 78
        source_file: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    - fields:
      - name: family
        type: FuIntelMeFamily
      - name: major_eq
        type: guint8
      - name: minor_eq
        type: guint8
      - name: patch_ge
        type: guint8
      item_type: struct
      name: "verdata[] = {\n\t    {FU_INTEL_ME_FAMILY_TXE, 3, 1, 92},\n\t    {FU_INTEL_ME_FAMILY_TXE,
        4, 0, 45},\n\t    {FU_INTEL_ME_FAMILY_CSME11, 11, 8, 92},\n\t    {FU_INTEL_ME_FAMILY_CSME11,
        11, 12, 92},\n\t    {FU_INTEL_ME_FAMILY_CSME11, 11, 22, 92},\n\t    {FU_INTEL_ME_FAMILY_CSME11,
        12, 0, 90},\n\t    {FU_INTEL_ME_FAMILY_CSME11, 13, 0, 60},\n\t    {FU_INTEL_ME_FAMILY_CSME11,
        13, 30, 30},\n\t    {FU_INTEL_ME_FAMILY_CSME11, 13, 50, 20},\n\t    {FU_INTEL_ME_FAMILY_CSME11,
        14, 1, 65},\n\t    {FU_INTEL_ME_FAMILY_CSME11, 14, 5, 45},\n\t    {FU_INTEL_ME_FAMILY_CSME11,
        15, 0, 40},\n\t    {FU_INTEL_ME_FAMILY_CSME11, 15, 40, 20},\n\t}"
      pos:
        line_end: 139
        line_start: 134
        source_file: /src/fwupd/libfwupdplugin/fu-intel-me-device.c
    typedefs: []
    union: []
- function_names:
  - fu_chunk_array_func
  - fu_chunk_func
  - fu_chunk_array_null_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-chunk-array-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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-efi-vss2-variable-store.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EFI_VSS2_VARIABLE_STORE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-efi-vss2-variable-store.h
      type_or_value: (fu_efi_vss2_variable_store_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_security_attrs_func
  - fu_security_attrs_hsi_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-security-attrs-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_string_utf16_func
  - fu_strpassmask_func
  - fu_string_strnsplit_add_cb
  - fu_string_strnsplit_nop_cb
  - fu_strsplit_func
  - fu_strstrip_func
  - fu_strtoull_func
  - fu_strtoll_func
  - fu_strsplit_stream_cb
  - fu_strsplit_stream_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-string-test.c
  types:
    enum: []
    preproc_defs: []
    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: 48
        line_start: 45
        source_file: /src/fwupd/libfwupdplugin/fu-string-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: 116
        line_start: 113
        source_file: /src/fwupd/libfwupdplugin/fu-string-test.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_volume_locker_close
  - fu_volume_locker_finalize
  - fu_volume_locker_class_init
  - fu_volume_locker_init
  - fu_volume_locker_new
  source_file: /src/fwupd/libfwupdplugin/fu-volume-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-volume-locker.c
      type_or_value: '"FuVolumeLocker"'
    structs:
    - fields:
      - name: parent_instance
        type: GObject
      - name: '*volume'
        type: FuVolume
      - name: is_open
        type: gboolean
      item_type: struct
      name: _FuVolumeLocker
      pos:
        line_end: 24
        line_start: 20
        source_file: /src/fwupd/libfwupdplugin/fu-volume-locker.c
    typedefs: []
    union: []
- function_names:
  - fu_coswid_read_string
  - fu_coswid_read_tag
  - fu_coswid_read_version_scheme
  - fu_coswid_write_tag_string
  - fu_coswid_write_tag_bytestring
  - fu_coswid_write_tag_bool
  - fu_coswid_write_tag_integer
  - 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:
  - fu_processor_device_has_feature
  - fu_processor_device_get_kind
  - fu_processor_device_needs_mitigation
  - fu_processor_device_get_sinkclose_microcode_ver
  - fu_processor_device_get_entrysign_psp_ver
  - fu_processor_device_to_string
  - fu_processor_device_add_instance_ids
  - fu_processor_device_probe_manufacturer_id
  - fu_processor_device_probe_model
  - fu_processor_device_probe_extended_features
  - fu_processor_device_probe
  - fu_processor_device_set_quirk_kv
  - fu_processor_device_add_security_attrs_cet_enabled
  - fu_processor_device_add_security_attrs_cet_active
  - fu_processor_device_add_security_attrs_intel_tme
  - fu_processor_device_add_security_attrs_smap
  - fu_processor_device_add_x86_64_security_attrs
  - fu_processor_device_add_security_attrs
  - fu_processor_device_convert_version
  - fu_processor_device_init
  - fu_processor_device_finalize
  - fu_processor_device_class_init
  - fu_processor_device_new
  source_file: /src/fwupd/libfwupdplugin/fu-processor-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: kind
        type: FuProcessorKind
      - name: feature_flags
        type: FuProcessorFeatureFlags
      - name: mitigation_flags
        type: FuProcessorMitigationFlags
      - name: sinkclose_microcode_ver
        type: guint32
      - name: '*entrysign_psp_ver'
        type: gchar
      item_type: struct
      name: _FuProcessorDevice
      pos:
        line_end: 26
        line_start: 19
        source_file: /src/fwupd/libfwupdplugin/fu-processor-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TPM_DIGEST_SIZE_SHA1
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-common.h
      type_or_value: '20'
    - item_type: preproc_def
      name: FU_TPM_DIGEST_SIZE_SHA256
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-common.h
      type_or_value: '32'
    - item_type: preproc_def
      name: FU_TPM_DIGEST_SIZE_SHA384
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-common.h
      type_or_value: '48'
    - item_type: preproc_def
      name: FU_TPM_DIGEST_SIZE_SHA512
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-common.h
      type_or_value: '64'
    - item_type: preproc_def
      name: FU_TPM_DIGEST_SIZE_SM3_256
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-common.h
      type_or_value: '32'
    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: 33
        line_start: 32
        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: 20
        line_start: 18
        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
      - name: loaded
        type: gboolean
      item_type: struct
      name: _FuQuirks
      pos:
        line_end: 86
        line_start: 72
        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: 648
        line_start: 641
        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: 819
        line_start: 813
        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: length
        type: guint8
      - name: dev_capability_type
        type: guint8
      item_type: struct
      name: _FuUsbBosDescriptor
      pos:
        line_end: 28
        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_convert_version
  - 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: 41
        line_start: 40
        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: 35
        line_start: 32
        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
  - 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_fuzzer_test_input
  - fu_usb_device_fuzzer_build_example
  - fu_usb_device_fuzzer_iface_init
  - 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: 87
        line_start: 86
        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: 88
        line_start: 87
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device.c
      type_or_value: '50  '
    - item_type: preproc_def
      name: FU_USB_DEVICE_DESCRIPTOR_SIZE_MAX
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device.c
      type_or_value: '(18 + (64 * FU_KB)) '
    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: 55
        line_start: 40
        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: 60
        line_start: 57
        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: 2311
        line_start: 2308
        source_file: /src/fwupd/libfwupdplugin/fu-usb-device.c
    typedefs: []
    union: []
- function_names:
  - fu_cbor_item_depth_func
  - fu_cbor_item_items_func
  - fu_cbor_item_boolean_func
  - fu_cbor_item_integer_func
  - fu_cbor_item_string_func
  - fu_cbor_item_bytes_func
  - fu_cbor_item_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-cbor-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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: 13
        line_start: 12
        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: 17
        line_start: 15
        source_file: /src/fwupd/libfwupdplugin/fu-hid-device.h
    typedefs: []
    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:
  - fu_progress_percentage_changed_cb
  - fu_progress_func
  - fu_progress_idle_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
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-progress-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: last_percentage
        type: gdouble
      - name: updates
        type: guint
      item_type: struct
      name: FuProgressHelper
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-progress-test.c
    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: []
  source_file: /src/fwupd/libfwupdplugin/fu-fuzzer.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FUZZER
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-fuzzer.h
      type_or_value: (fu_fuzzer_get_type())
    structs:
    - fields:
      - name: g_iface
        type: GTypeInterface
      - name: (*test_input)(FuFuzzer *self, GBytes *blob, GError **error)
        type: gboolean
      - name: '*(*build_example)(FuFuzzer *self, GBytes *blob, GError **error)'
        type: GBytes
      item_type: struct
      name: _FuFuzzerInterface
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-fuzzer.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: 25
        line_start: 23
        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: 35
        line_start: 30
        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_ensure_permissions
  - fu_config_reload
  - fu_config_monitor_changed_cb
  - fu_config_set_default
  - fu_config_save
  - fu_config_set_value_internal
  - 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_set_basename
  - fu_config_add_location
  - fu_config_load
  - fu_config_get_property
  - fu_config_set_property
  - 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: 25
        line_start: 24
        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: 32
        line_start: 26
        source_file: /src/fwupd/libfwupdplugin/fu-config.c
    - fields:
      - name: '*pstore'
        type: FuPathStore
      - name: '*keyfile'
        type: GKeyFile
      - name: '*default_values'
        type: GHashTable
      - name: '*items'
        type: GPtrArray
      - name: '*basename'
        type: gchar
      item_type: struct
      name: FuConfigPrivate
      pos:
        line_end: 40
        line_start: 34
        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\", \"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: 175
        line_start: 171
        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_evidence
  - 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_parse
  - fu_coswid_firmware_get_checksum
  - fu_coswid_firmware_get_product
  - fu_coswid_firmware_get_persistent_id
  - fu_coswid_firmware_get_device_id
  - fu_coswid_firmware_write_hash
  - fu_coswid_firmware_write_payload
  - fu_coswid_firmware_write_entity
  - fu_coswid_firmware_write_evidence
  - 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_CBOR_MAX_DEPTH
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
      type_or_value: '10'
    - item_type: preproc_def
      name: FU_COSWID_CBOR_MAX_ITEMS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
      type_or_value: '100'
    - item_type: preproc_def
      name: FU_COSWID_CBOR_MAX_LENGTH
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/libfwupdplugin/fu-coswid-firmware.c
      type_or_value: '10240'
    structs:
    - fields:
      - name: '*product'
        type: gchar
      - name: '*summary'
        type: gchar
      - name: '*colloquial_version'
        type: gchar
      - name: '*persistent_id'
        type: gchar
      - name: '*device_id'
        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: 36
        line_start: 26
        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: GBytes
      - 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: 757
        line_start: 754
        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: 44
        line_start: 43
        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: 31
        line_start: 23
        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: 33
        line_start: 30
        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: 198
        line_start: 195
        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_set_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: 35
        line_start: 26
        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: 24
        line_start: 20
        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: FuEfiVariableAttrs
      - 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:
  - fu_kernel_cmdline_func
  - fu_kernel_config_func
  - fu_kernel_lockdown_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-kernel-test.c
  types:
    enum: []
    preproc_defs: []
    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-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:
  - GET_PRIVATE
  - fu_hidraw_device_to_string
  - fu_hidraw_device_get_bus_type
  - fu_hidraw_device_parse_descriptor
  - fu_hidraw_device_probe_usb
  - fu_hidraw_device_setup
  - fu_hidraw_device_probe
  - fu_hidraw_device_set_feature
  - fu_hidraw_device_get_feature
  - fu_hidraw_device_get_input
  - fu_hidraw_device_set_report
  - fu_hidraw_device_get_report
  - 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: 36
        line_start: 35
        source_file: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
      type_or_value: '2500 '
    structs:
    - fields:
      - name: bus_type
        type: FuHidBusType
      item_type: struct
      name: FuHidrawDevicePrivate
      pos:
        line_end: 29
        line_start: 27
        source_file: /src/fwupd/libfwupdplugin/fu-hidraw-device.c
    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: 12
        line_start: 11
        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: 56
        line_start: 33
        source_file: /src/fwupd/libfwupdplugin/fu-backend.h
    typedefs: []
    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: 15
        line_start: 14
        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: 54
        line_start: 53
        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: 55
        line_start: 54
        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: 56
        line_start: 55
        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: 57
        line_start: 56
        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: 58
        line_start: 57
        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: 59
        line_start: 58
        source_file: /src/fwupd/libfwupdplugin/fu-efivars.h
      type_or_value: '"605dab50-e046-4300-abb6-3dd810dd8b23"'
    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
          \    FuEfiVariableAttrs *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     FuEfiVariableAttrs 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: 51
        line_start: 17
        source_file: /src/fwupd/libfwupdplugin/fu-efivars.h
    typedefs: []
    union: []
- function_names:
  - fu_context_add_firmware_gtypes
  source_file: /src/fwupd/libfwupdplugin/fu-context-helper.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-helper.c
      type_or_value: '"FuEngine"'
    structs: []
    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)(FuDevice *device, GError **error)
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/fwupd/libfwupdplugin/fu-device-locker.h
      type: gboolean
    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_string_strip
  - 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: 440
        line_start: 432
        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_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: 39
        line_start: 38
        source_file: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
      type_or_value: '2'
    - item_type: preproc_def
      name: FDT_DEPTH_MAX
      pos:
        line_end: 40
        line_start: 39
        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: 33
        line_start: 31
        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: 417
        line_start: 413
        source_file: /src/fwupd/libfwupdplugin/fu-fdt-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_crc_reflect8
  - fu_crc_reflect
  - fu_crc_size
  - fu_crc8_step
  - fu_crc8_done
  - fu_crc8
  - fu_crc8_safe
  - fu_crc8_bytes
  - fu_crc16_step
  - fu_crc16_done
  - fu_crc16
  - fu_crc16_safe
  - fu_crc16_bytes
  - fu_crc32_step
  - fu_crc32_fast
  - fu_crc32_done
  - fu_crc32
  - fu_crc32_safe
  - 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_B32C, 32, 0x1EDC6F41, 0xFFFFFFFF, TRUE,
        0xFFFFFFFF},\n    {FU_CRC_KIND_B32D, 32, 0xA833982B, 0xFFFFFFFF, TRUE, 0xFFFFFFFF},\n
        \   {FU_CRC_KIND_B32Q, 32, 0x814141AB, 0x00000000, FALSE, 0x00000000},\n    {FU_CRC_KIND_B16_XMODEM,
        16, 0x1021, 0x0000, FALSE, 0x0000},\n    {FU_CRC_KIND_B16_KERMIT, 16, 0x1021,
        0x0000, TRUE, 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_TECH3250, 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_NRSC5,
        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: 23
        line_start: 16
        source_file: /src/fwupd/libfwupdplugin/fu-crc.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-self-test-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SELF_TEST_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-self-test-device.h
      type_or_value: (fu_self_test_device_get_type())
    structs: []
    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_BIOS_RELEASE_DATE, \"bios_date\"},\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:
  - fu_config_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-config-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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:
  - fu_tpm_eventlog_v1_parse
  - fu_tpm_eventlog_v1_write
  - fu_tpm_eventlog_v1_class_init
  - fu_tpm_eventlog_v1_init
  - fu_tpm_eventlog_v1_new
  source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.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-tpm-eventlog-v1.c
      type_or_value: '"FuTpmEventlog"'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuTpmEventlogV1
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog-v1.c
    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: 41
        line_start: 29
        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: 378
        line_start: 373
        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_x509
  - fu_efi_signature_list_write_sha256
  - fu_efi_signature_list_write
  - fu_efi_signature_list_add_magic
  - 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"'
    - item_type: preproc_def
      name: FU_EFI_SIGNATURE_LIST_GUID_SHA256
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
      type_or_value: '"c1c41626-504c-4092-aca9-41f936934328"'
    - item_type: preproc_def
      name: FU_EFI_SIGNATURE_LIST_GUID_X509
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/libfwupdplugin/fu-efi-signature-list.c
      type_or_value: '"a5c059a1-94e4-4aa7-87b5-ab155c2bf072"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_path_verify_safe_func
  - fu_path_sanitize_basename_func
  - main
  source_file: /src/fwupd/libfwupdplugin/fu-path-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*input'
        type: gchar
      - name: '*expected'
        type: gchar
      item_type: struct
      name: "tests[] = {\n\t    {\"normal\", \"normal\"},\n\t    {\"with/slash\",
        \"with_slash\"},\n\t    {\"with\\\\backslash\", \"with_backslash\"},\n\t    {\"../../../etc/passwd\",
        \"______etc_passwd\"},\n\t    {\"../../../../etc/cron.d\", \"________etc_cron.d\"},\n\t
        \   {\".hidden\", \"_hidden\"},\n\t    {\".../etc/passwd\", \"_._etc_passwd\"},\n\t
        \   {\"multiple///slashes\", \"multiple___slashes\"},\n\t    {\"valid-filename.bin\",
        \"valid-filename.bin\"},\n\t    {\"1.2.3.4\", \"1.2.3.4\"},\n\t}"
      pos:
        line_end: 50
        line_start: 47
        source_file: /src/fwupd/libfwupdplugin/fu-path-test.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_TPM_EVENTLOG
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.h
      type_or_value: (fu_tpm_eventlog_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuTpmEventlogClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-tpm-eventlog.h
    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:
    - item_type: preproc_def
      name: FU_KB
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/fwupd/libfwupdplugin/fu-common.h
      type_or_value: (1ull << 10)
    - item_type: preproc_def
      name: FU_MB
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/fwupd/libfwupdplugin/fu-common.h
      type_or_value: (1ull << 20)
    - item_type: preproc_def
      name: FU_GB
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/fwupd/libfwupdplugin/fu-common.h
      type_or_value: (1ull << 30)
    structs:
    - fields:
      - name: value
        type: guint
      - name: code
        type: FwupdError
      - name: '*message'
        type: gchar
      item_type: struct
      name: FuErrorMapEntry
      pos:
        line_end: 124
        line_start: 120
        source_file: /src/fwupd/libfwupdplugin/fu-common.h
    - fields:
      - name: domain
        type: GQuark
      - name: code
        type: gint
      - name: error
        type: FwupdError
      item_type: struct
      name: FuErrorConvertEntry
      pos:
        line_end: 136
        line_start: 132
        source_file: /src/fwupd/libfwupdplugin/fu-common.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-srec-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FuFirmwareSrecRecordKind
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/libfwupdplugin/fu-srec-firmware.h
      type_or_value: FuFirmwareSrecRecordKind
    - item_type: preproc_def
      name: FU_TYPE_SREC_FIRMWARE
      pos:
        line_end: 15
        line_start: 14
        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: 16
        line_start: 15
        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: 20
        line_start: 18
        source_file: /src/fwupd/libfwupdplugin/fu-srec-firmware.h
    - fields:
      - name: ln
        type: guint
      - name: kind
        type: FuFirmwareSrecRecordKind
      - name: addr
        type: guint32
      - name: '*buf'
        type: GByteArray
      item_type: struct
      name: FuSrecFirmwareRecord
      pos:
        line_end: 32
        line_start: 27
        source_file: /src/fwupd/libfwupdplugin/fu-srec-firmware.h
    typedefs: []
    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_flags
  - fu_device_has_private_flag_quark
  - fu_device_private_flags_has_registered_quark
  - fu_device_add_private_flag_quark
  - fu_device_remove_private_flag_quark
  - fu_device_find_private_flag_quark
  - 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_remove_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_internal
  - 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_internal
  - fu_device_get_proxy
  - fu_device_get_proxy_with_fallback
  - fu_device_get_children
  - fu_device_get_child_by_logical_id
  - fu_device_ensure_exported_name
  - 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_version_lowest_raw
  - fu_device_set_version_highest_raw
  - fu_device_convert_version
  - 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_check_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_get_id_display
  - 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_from_proxy
  - 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_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_strv
  - 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_internal
  - 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: '*name'
        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: GArray
      - name: '*private_flags'
        type: GArray
      - name: '*custom_flags'
        type: gchar
      - name: notify_flags_proxy_id
        type: gulong
      - name: '*instance_hash'
        type: GHashTable
      - name: '*progress'
        type: FuProgress
      item_type: struct
      name: FuDevicePrivate
      pos:
        line_end: 104
        line_start: 51
        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: 110
        line_start: 106
        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: 116
        line_start: 112
        source_file: /src/fwupd/libfwupdplugin/fu-device.c
    - fields:
      - name: '*instance_id'
        type: gchar
      - name: '*guid'
        type: gchar
      - name: flags
        type: FuDeviceInstanceFlags
      item_type: struct
      name: FuDeviceInstanceIdItem
      pos:
        line_end: 122
        line_start: 118
        source_file: /src/fwupd/libfwupdplugin/fu-device.c
    - fields:
      - name: '*self'
        type: FuDevice
      - name: flags
        type: FuDeviceInstanceFlags
      item_type: struct
      name: FuDeviceQuirksIterHelper
      pos:
        line_end: 2772
        line_start: 2769
        source_file: /src/fwupd/libfwupdplugin/fu-device.c
    typedefs: []
    union: []
- function_names:
  - fu_size_checked_add
  - fu_size_checked_inc
  - fu_size_checked_inc_product
  - fu_size_from_uint64
  - fu_error_map_entry_to_gerror
  - 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
  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_BIOS_RELEASE_DATE, \"smbios.bios.reldate\"},\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: 19
        line_start: 16
        source_file: /src/fwupd/libfwupdplugin/fu-hwids-kenv.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: []
    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: 27
        line_start: 26
        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: 28
        line_start: 27
        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: 15
        line_start: 14
        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: 16
        line_start: 15
        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: 18
        line_start: 17
        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: 19
        line_start: 18
        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: 20
        line_start: 19
        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: 22
        line_start: 21
        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: 37
        line_start: 31
        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: 415
        line_start: 409
        source_file: /src/fwupd/libfwupdplugin/fu-hid-device.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_context_ensure_smbios_uefi_enabled
  - 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_set_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_convert_firmware_gtype_to_id
  - 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_flag_is_quirk_controlled
  - fu_context_hwid_quirk_cb
  - fu_context_detect_container
  - fu_context_detect_hypervisor_privileged
  - fu_context_detect_hypervisor
  - 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_path
  - fu_context_build_filename
  - fu_context_set_path
  - fu_context_set_tmpdir
  - fu_context_get_path_store
  - fu_context_load_path_store
  - fu_context_get_property
  - fu_context_set_property
  - fu_context_dispose
  - fu_context_finalize
  - fu_context_constructed
  - fu_context_class_init
  - fu_context_init
  - fu_context_new_full
  - 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: '*pstore'
        type: FuPathStore
      - 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: 58
        line_start: 34
        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: 1079
        line_start: 1075
        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: 1332
        line_start: 1328
        source_file: /src/fwupd/libfwupdplugin/fu-context.c
    typedefs:
    - item_type: typedef
      name: (*FuContextHwidsSetupFunc)(FuContext *self, FuHwids *hwids, GError **error)
      pos:
        line_end: 1161
        line_start: 1161
        source_file: /src/fwupd/libfwupdplugin/fu-context.c
      type: gboolean
    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: 35
        line_start: 28
        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)(FuCborItem *item,\n\t\t\t\t     gpointer user_data,\n\t\t\t\t
        \    GError **error)"
      pos:
        line_end: 35
        line_start: 33
        source_file: /src/fwupd/libfwupdplugin/fu-coswid-common.h
      type: gboolean
    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: 26
        line_start: 25
        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
  - fu_efi_timestamp_export
  - fu_efi_timestamp_build
  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_close
  - 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_disconnect
  - 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: 23
        line_start: 22
        source_file: /src/fwupd/libfwupdplugin/fu-mei-device.c
      type_or_value: '5000 '
    structs:
    - fields:
      - name: max_msg_length
        type: gsize
      - name: protocol_version
        type: guint8
      - name: '*uuid'
        type: gchar
      item_type: struct
      name: FuMeiDevicePrivate
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/fwupd/libfwupdplugin/fu-mei-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/libfwupdplugin/fu-json-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_JSON_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-json-firmware.h
      type_or_value: (fu_json_firmware_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuFirmwareClass
      item_type: struct
      name: _FuJsonFirmwareClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/libfwupdplugin/fu-json-firmware.h
    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/libfwupdplugin/fu-efi-vss-auth-variable.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EFI_VSS_AUTH_VARIABLE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/libfwupdplugin/fu-efi-vss-auth-variable.h
      type_or_value: (fu_efi_vss_auth_variable_get_type())
    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: FuZipFirmware
      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 * FU_MB)
    - 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 * FU_KB))
    - 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_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_IEEE_DEV_ID
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/bnr-dp/fu-bnr-dp-device.c
      type_or_value: '"B&R-DP"'
    - item_type: preproc_def
      name: FU_BNR_DP_DEVICE_HEADER_OFFSET
      pos:
        line_end: 17
        line_start: 16
        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: 18
        line_start: 17
        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: 20
        line_start: 19
        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: 21
        line_start: 20
        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: 24
        line_start: 23
        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: 29
        line_start: 28
        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: 30
        line_start: 29
        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: 31
        line_start: 30
        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: 34
        line_start: 32
        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: FuFirmware
      - 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_check_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
  source_file: /src/fwupd/plugins/fresco-pd/fu-fresco-pd-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - 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: 13
        line_start: 12
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.h
      type_or_value: (fu_corsair_device_get_type())
    - item_type: preproc_def
      name: FU_CORSAIR_DEVICE_FLAG_IS_RECEIVER
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.h
      type_or_value: '"is-receiver"'
    - item_type: preproc_def
      name: FU_CORSAIR_DEVICE_FLAG_LEGACY_ATTACH
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.h
      type_or_value: '"legacy-attach"'
    structs:
    - fields:
      - name: parent_class
        type: FuUsbDeviceClass
      item_type: struct
      name: _FuCorsairDeviceClass
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.h
    typedefs: []
    union: []
- function_names:
  - fu_corsair_device_to_string
  - fu_corsair_device_convert_version
  - fu_corsair_device_send
  - fu_corsair_device_recv
  - fu_corsair_device_cmd_generic
  - fu_corsair_device_flush_input_reports
  - fu_corsair_device_write_init
  - fu_corsair_device_write_chk0
  - fu_corsair_device_write_chunk
  - fu_corsair_device_get_property
  - fu_corsair_device_set_mode
  - fu_corsair_device_write_firmware_chunks
  - fu_corsair_device_commit_firmware
  - fu_corsair_device_activate_firmware
  - fu_corsair_device_write_firmware_full
  - fu_corsair_device_write_firmware
  - fu_corsair_device_legacy_attach
  - fu_corsair_device_attach
  - fu_corsair_device_detach
  - fu_corsair_device_probe
  - fu_corsair_device_poll_subdevice
  - fu_corsair_device_ensure_mode
  - fu_corsair_device_ensure_version
  - fu_corsair_device_ensure_battery_level
  - fu_corsair_device_ensure_bootloader_version
  - fu_corsair_device_setup
  - fu_corsair_device_is_subdevice_connected_cb
  - fu_corsair_device_reconnect_subdevice
  - fu_corsair_device_set_progress
  - fu_corsair_device_set_quirk_kv
  - fu_corsair_device_poll
  - fu_corsair_device_init
  - fu_corsair_device_class_init
  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: 25
        line_start: 24
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CORSAIR_DEFAULT_CMD_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.c
      type_or_value: '64'
    - item_type: preproc_def
      name: CORSAIR_ACTIVATION_TIMEOUT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.c
      type_or_value: '30000'
    - item_type: preproc_def
      name: CORSAIR_TRANSACTION_TIMEOUT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.c
      type_or_value: '10000'
    - item_type: preproc_def
      name: CORSAIR_FIRST_CHUNK_HEADER_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.c
      type_or_value: '7'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: vendor_interface
        type: guint8
      - name: epin
        type: guint8
      - name: epout
        type: guint8
      - name: cmd_write_size
        type: guint16
      - name: cmd_read_size
        type: guint16
      item_type: struct
      name: _FuCorsairDevice
      pos:
        line_end: 20
        line_start: 13
        source_file: /src/fwupd/plugins/corsair/fu-corsair-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/corsair/fu-corsair-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/corsair/fu-corsair-subdevice.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_CORSAIR_SUBDEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/corsair/fu-corsair-subdevice.h
      type_or_value: (fu_corsair_subdevice_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuDeviceClass
      item_type: struct
      name: _FuCorsairSubdeviceClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/corsair/fu-corsair-subdevice.h
    typedefs: []
    union: []
- function_names:
  - fu_corsair_subdevice_convert_version
  - fu_corsair_subdevice_write_firmware
  - fu_corsair_subdevice_attach
  - fu_corsair_subdevice_detach
  - fu_corsair_subdevice_ensure_mode
  - fu_corsair_subdevice_ensure_version
  - fu_corsair_subdevice_ensure_battery_level
  - fu_corsair_subdevice_ensure_bootloader_version
  - fu_corsair_subdevice_setup
  - fu_corsair_subdevice_set_progress
  - fu_corsair_subdevice_init
  - fu_corsair_subdevice_class_init
  - fu_corsair_subdevice_new
  source_file: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      item_type: struct
      name: _FuCorsairSubdevice
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/corsair/fu-corsair-subdevice.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/corsair/fu-corsair-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    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
  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_check_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:
  - fu_himax_tp_plugin_init
  - fu_himax_tp_plugin_constructed
  - fu_himax_tp_plugin_class_init
  source_file: /src/fwupd/plugins/himax-tp/fu-himax-tp-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuHimaxTpPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/himax-tp/fu-himax-tp-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_himax_tp_hid_device_to_string
  - fu_himax_tp_hid_device_size_lookup
  - fu_himax_tp_hid_device_set_feature
  - fu_himax_tp_hid_device_get_feature
  - fu_himax_tp_hid_device_register_write
  - fu_himax_tp_hid_device_register_read
  - fu_himax_tp_hid_device_get_size_by_id
  - fu_himax_tp_hid_device_register_write_items
  - fu_himax_tp_hid_device_ensure_flash_id
  - fu_himax_tp_hid_device_get_block_protect_mask
  - fu_himax_tp_hid_device_get_write_delay
  - fu_himax_tp_hid_device_get_flash_status
  - fu_himax_tp_hid_device_switch_write_protect
  - fu_himax_tp_hid_device_switch_block_protect_retry_cb
  - fu_himax_tp_hid_device_switch_block_protect
  - fu_himax_tp_hid_device_unlock_flash
  - fu_himax_tp_hid_device_wait_fw_update_handshaking_cb
  - fu_himax_tp_hid_device_wait_fw_update_handshaking
  - fu_himax_tp_hid_device_write_unit
  - fu_himax_tp_hid_device_write_units
  - fu_himax_tp_hid_device_write_process
  - fu_himax_tp_hid_device_bootloader_update
  - fu_himax_tp_hid_device_main_update
  - fu_himax_tp_hid_device_probe
  - fu_himax_tp_hid_device_setup
  - fu_himax_tp_hid_device_attach
  - fu_himax_tp_hid_device_write_recovery
  - fu_himax_tp_hid_device_write_firmware
  - fu_himax_tp_hid_device_set_progress
  - fu_himax_tp_hid_device_check_firmware
  - fu_himax_tp_hid_device_finalize
  - fu_himax_tp_hid_device_init
  - fu_himax_tp_hid_device_class_init
  source_file: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_HIMAX_TP_HID_DEVICE_CMD_UPDATE_MAIN
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
      type_or_value: '0x55'
    - item_type: preproc_def
      name: FU_HIMAX_TP_HID_DEVICE_CMD_UPDATE_BL
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
      type_or_value: '0x77'
    - item_type: preproc_def
      name: FLASH_ID_P25Q40SL
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
      type_or_value: '0x00136085'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      - name: flash_id
        type: guint32
      - name: '*st_info'
        type: FuStructHimaxTpHidInfo
      - name: '*id_items'
        type: GPtrArray
      item_type: struct
      name: _FuHimaxTpHidDevice
      pos:
        line_end: 23
        line_start: 18
        source_file: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    - fields:
      - name: report_id
        type: FuHimaxTpReportId
      - name: size
        type: gsize
      item_type: struct
      name: FuHimaxTpHidDeviceIdItem
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    - fields:
      - name: addr
        type: FuHimaxTpRegisterAddr
      - name: value
        type: guint32
      item_type: struct
      name: FuHimaxTpHidDeviceRegisterWriteItem
      pos:
        line_end: 260
        line_start: 257
        source_file: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.c
    typedefs: []
    union: []
- function_names:
  - fu_himax_tp_firmware_get_cid
  - fu_himax_tp_firmware_get_vid
  - fu_himax_tp_firmware_get_pid
  - fu_himax_tp_firmware_calculate_crc32c
  - fu_himax_tp_firmware_checksum_cb
  - fu_himax_tp_firmware_parse_map_code
  - fu_himax_tp_firmware_parse
  - fu_himax_tp_firmware_export
  - fu_himax_tp_firmware_build
  - fu_himax_tp_firmware_finalize
  - fu_himax_tp_firmware_init
  - fu_himax_tp_firmware_class_init
  source_file: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_HIMAX_TP_FIRMWARE_HEADER_V1
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c
      type_or_value: '0x87'
    - item_type: preproc_def
      name: FU_HIMAX_TP_FIRMWARE_HEADER_V2
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c
      type_or_value: '0x56'
    - item_type: preproc_def
      name: FU_HIMAX_TP_MAP_CODE_TABLE_SIZE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c
      type_or_value: '1024 '
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: vid
        type: guint16
      - name: pid
        type: guint16
      - name: cid
        type: guint16
      - name: tp_cfg_ver
        type: guint8
      - name: dd_cfg_ver
        type: guint8
      - name: '*ic_id'
        type: gchar
      - name: '*ic_id_mod'
        type: gchar
      item_type: struct
      name: _FuHimaxTpFirmware
      pos:
        line_end: 26
        line_start: 17
        source_file: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HIMAX_TP_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/himax-tp/fu-himax-tp-firmware.h
      type_or_value: (fu_himax_tp_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/himax-tp/fu-himax-tp-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_HIMAX_TP_HID_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/himax-tp/fu-himax-tp-hid-device.h
      type_or_value: (fu_himax_tp_hid_device_get_type())
    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_cb
  - 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_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_check_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: 19
        line_start: 18
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
      type_or_value: (2 * FU_MB)
    - item_type: preproc_def
      name: GENESYS_SCALER_MSTAR_READ
      pos:
        line_end: 21
        line_start: 20
        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: 22
        line_start: 21
        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: 23
        line_start: 22
        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: 24
        line_start: 23
        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: 26
        line_start: 25
        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: 28
        line_start: 27
        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: 29
        line_start: 28
        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: 30
        line_start: 29
        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: 32
        line_start: 31
        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: 34
        line_start: 33
        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: 36
        line_start: 35
        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: 37
        line_start: 36
        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: 41
        line_start: 38
        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: 48
        line_start: 43
        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: 63
        line_start: 50
        source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-device.c
    typedefs: []
    union: []
- function_names:
  - fu_genesys_usbhub_device_set_proxy
  - 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_ensure_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_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_check_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: 27
        line_start: 26
        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: 28
        line_start: 27
        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: 30
        line_start: 29
        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: 31
        line_start: 30
        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: 32
        line_start: 31
        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: 33
        line_start: 32
        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: 34
        line_start: 33
        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: 35
        line_start: 34
        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: 36
        line_start: 35
        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: 38
        line_start: 37
        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: 39
        line_start: 38
        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: 40
        line_start: 39
        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: 41
        line_start: 40
        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: 42
        line_start: 41
        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: 44
        line_start: 43
        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: 45
        line_start: 44
        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: 47
        line_start: 46
        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: 48
        line_start: 47
        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: 50
        line_start: 49
        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: 51
        line_start: 50
        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: 53
        line_start: 52
        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: 54
        line_start: 53
        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: 64
        line_start: 60
        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: 69
        line_start: 66
        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: 85
        line_start: 78
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: '*st_static_ts'
        type: FuStructGenesysTsStatic
      - name: '*st_fwinfo_ts'
        type: FuStructGenesysTsFirmwareInfo
      - name: '*st_vendor_ts'
        type: FuStructGenesysTsVendorSupport
      - name: '*st_project_ts'
        type: FuStructGenesysTsBrandProject
      - 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: guint32
      - 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_rsa_pubkey'
        type: FuStructGenesysFwRsaPublicKeyText
      - name: '*st_ecdsa_pubkey'
        type: FuStructGenesysFwEcdsaPublicKey
      - name: '*st_codesign_ecdsa'
        type: FuStructGenesysFwCodesignInfoEcdsa
      - name: '*st_public_key'
        type: GByteArray
      item_type: struct
      name: _FuGenesysUsbhubDevice
      pos:
        line_end: 136
        line_start: 87
        source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-device.c
    typedefs: []
    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
  source_file: /src/fwupd/plugins/genesys/fu-genesys-usbhub-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: '*st_static_ts'
        type: FuStructGenesysTsStatic
      - 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: 20
        line_start: 18
        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: FuFirmware
      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: FuFirmware
      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
  source_file: /src/fwupd/plugins/genesys/fu-genesys-scaler-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - 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())
    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: FuFirmware
      - 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: 43
        line_start: 42
        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: 44
        line_start: 43
        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: 45
        line_start: 44
        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: 46
        line_start: 45
        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: 47
        line_start: 46
        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: 49
        line_start: 48
        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: 50
        line_start: 49
        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: 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_GL3523
      pos:
        line_end: 52
        line_start: 51
        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_GL3523PLUS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/fwupd/plugins/genesys/fu-genesys-common.h
      type_or_value: '0x231'
    - item_type: preproc_def
      name: GENESYS_USBHUB_STATIC_TOOL_STRING_OFFSET_GL3590
      pos:
        line_end: 54
        line_start: 53
        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: 55
        line_start: 54
        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: 56
        line_start: 55
        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: 40
        line_start: 37
        source_file: /src/fwupd/plugins/genesys/fu-genesys-common.h
    typedefs: []
    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
  - fu_parade_usbhub_device_disable_spi
  - 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_assert_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_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 '
    - item_type: preproc_def
      name: FU_PARADE_USBHUB_DEVICE_FLAG_USE_GPIO_ENABLE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/fwupd/plugins/parade-usbhub/fu-parade-usbhub-device.c
      type_or_value: '"use-gpio-enable"'
    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
  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: gsize
      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: 476
        line_start: 473
        source_file: /src/fwupd/plugins/fastboot/fu-fastboot-device.c
    typedefs: []
    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: FuIhexFirmware
      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: (4 * FU_KB)
    - 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: []
    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-synaptics-prometheus-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPTICS_PROMETHEUS_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.h
      type_or_value: (fu_synaptics_prometheus_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPTICS_PROMETHEUS_FIRMWARE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.h
      type_or_value: (fu_synaptics_prometheus_firmware_get_type())
    - item_type: preproc_def
      name: FU_SYNAPTICS_PROMETHEUS_FIRMWARE_PROMETHEUS_SIGSIZE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: FU_SYNAPTICS_PROMETHEUS_FIRMWARE_TRITON_SIGSIZE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.h
      type_or_value: '0x180'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_prometheus_device_cmd_send
  - fu_synaptics_prometheus_device_get_product_type
  - fu_synaptics_prometheus_device_set_version
  - fu_synaptics_prometheus_device_set_serial_number
  - fu_synaptics_prometheus_device_setup
  - fu_synaptics_prometheus_device_prepare_firmware
  - fu_synaptics_prometheus_device_write_chunks
  - fu_synaptics_prometheus_device_write_fw
  - fu_synaptics_prometheus_device_write_firmware
  - fu_synaptics_prometheus_device_attach
  - fu_synaptics_prometheus_device_detach
  - fu_synaptics_prometheus_device_set_progress
  - fu_synaptics_prometheus_device_init
  - fu_synaptics_prometheus_device_class_init
  - fu_synaptics_prometheus_device_new
  source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_SYNAPTICS_PROMETHEUS_USB_CTRLREQUEST_VENDOR_WRITEDFT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
      type_or_value: '21'
    - item_type: preproc_def
      name: FU_SYNAPTICS_PROMETHEUS_USB_REQUEST_EP
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_SYNAPTICS_PROMETHEUS_USB_REPLY_EP
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
      type_or_value: '0x81'
    - item_type: preproc_def
      name: FU_SYNAPTICS_PROMETHEUS_USB_FINGERPRINT_EP
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
      type_or_value: '0x82'
    - item_type: preproc_def
      name: FU_SYNAPTICS_PROMETHEUS_USB_INTERRUPT_EP
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
      type_or_value: '0x83'
    - item_type: preproc_def
      name: FU_SYNAPTICS_PROMETHEUS_SECURITY1_PROD_SENSOR
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-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: _FuSynapticsPrometheusDevice
      pos:
        line_end: 22
        line_start: 17
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-device.c
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_prometheus_config_setup
  - fu_synaptics_prometheus_config_prepare_firmware
  - fu_synaptics_prometheus_config_write_firmware
  - fu_synaptics_prometheus_config_init
  - fu_synaptics_prometheus_config_constructed
  - fu_synaptics_prometheus_config_attach
  - fu_synaptics_prometheus_config_detach
  - fu_synaptics_prometheus_config_class_init
  - fu_synaptics_prometheus_config_new
  source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_SYNAPTICS_PROMETHEUS_CMD_IOTA_FIND_FLAGS_ALLIOTAS
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c
      type_or_value: '0x0001 '
    - item_type: preproc_def
      name: FU_SYNAPTICS_PROMETHEUS_CMD_IOTA_FIND_FLAGS_READMAX
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c
      type_or_value: '0x0002 '
    - item_type: preproc_def
      name: FU_SYNAPTICS_PROMETHEUS_MAX_IOTA_READ_SIZE
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c
      type_or_value: '(64 * FU_KB) '
    - item_type: preproc_def
      name: FU_SYNAPTICS_PROMETHEUS_IOTA_ITYPE_CONFIG_VERSION
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-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: _FuSynapticsPrometheusConfig
      pos:
        line_end: 21
        line_start: 17
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.c
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_prometheus_plugin_init
  - fu_synaptics_prometheus_plugin_constructed
  - fu_synaptics_prometheus_plugin_class_init
  source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuSynapticsPrometheusPlugin
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_prometheus_reply_new
  - fu_synaptics_prometheus_error_from_status
  source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_synaptics_prometheus_firmware_get_product_id
  - fu_synaptics_prometheus_firmware_set_signature_size
  - fu_synaptics_prometheus_firmware_export
  - fu_synaptics_prometheus_firmware_parse
  - fu_synaptics_prometheus_firmware_write
  - fu_synaptics_prometheus_firmware_build
  - fu_synaptics_prometheus_firmware_init
  - fu_synaptics_prometheus_firmware_class_init
  - fu_synaptics_prometheus_firmware_new
  source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_SYNAPTICS_PROMETHEUS_FIRMWARE_TAG_MAX
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c
      type_or_value: '0xfff0'
    - item_type: preproc_def
      name: FU_SYNAPTICS_PROMETHEUS_FIRMWARE_COUNT_MAX
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-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: _FuSynapticsPrometheusFirmware
      pos:
        line_end: 18
        line_start: 14
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_test_synaptics_prometheus_firmware_func
  - fu_synaptics_prometheus_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-synaptics-prometheus-config.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SYNAPTICS_PROMETHEUS_CONFIG
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/synaptics-prometheus/fu-synaptics-prometheus-config.h
      type_or_value: (fu_synaptics_prometheus_config_get_type())
    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: 13
        line_start: 11
        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-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/plugins/test/fu-test-device.h
      type_or_value: (fu_test_device_get_type())
    structs: []
    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:
  - fu_test_device_set_progress
  - fu_test_device_probe
  - fu_test_device_init
  - fu_test_device_class_init
  - fu_test_device_new
  source_file: /src/fwupd/plugins/test/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/plugins/test/fu-test-device.c
    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_check_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: FuUsbDevice
      - 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
  source_file: /src/fwupd/plugins/jabra-file/fu-jabra-file-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - 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/lenovo-dock/fu-lenovo-dock-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_lenovo_dock_plugin_init
  - fu_lenovo_dock_plugin_constructed
  - fu_lenovo_dock_plugin_class_init
  source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuLenovoDockPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LENOVO_DOCK_IMAGE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.h
      type_or_value: (fu_lenovo_dock_image_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_lenovo_dock_device_to_string
  - fu_lenovo_dock_device_get_report1_cb
  - fu_lenovo_dock_device_get_report1
  - fu_lenovo_dock_device_get_report2_cb
  - fu_lenovo_dock_device_get_report2
  - fu_lenovo_dock_device_set_report1
  - fu_lenovo_dock_device_set_report2
  - fu_lenovo_dock_device_set_flash_memory_access
  - fu_lenovo_dock_device_dfu_control
  - fu_lenovo_dock_device_get_dfu_control_state
  - fu_lenovo_dock_device_ensure_version
  - fu_lenovo_dock_device_ensure_edition_state
  - fu_lenovo_dock_device_get_component_attrs_list
  - fu_lenovo_dock_device_flash_erase_chunk
  - fu_lenovo_dock_device_flash_erase_memory
  - fu_lenovo_dock_device_flash_write_chunk
  - fu_lenovo_dock_device_flash_write_memory
  - fu_lenovo_dock_device_flash_verify_signature
  - fu_lenovo_dock_device_get_component_crc
  - fu_lenovo_dock_device_setup
  - fu_lenovo_dock_device_check_firmware
  - fu_lenovo_dock_device_get_component_attrs
  - fu_lenovo_dock_device_write_usage
  - fu_lenovo_dock_device_write_image
  - fu_lenovo_dock_device_write_images
  - fu_lenovo_dock_device_flash_memory_access_request_cb
  - fu_lenovo_dock_device_flash_memory_access_release_cb
  - fu_lenovo_dock_device_write_firmware
  - fu_lenovo_dock_device_set_quirk_kv
  - fu_lenovo_dock_device_set_progress
  - fu_lenovo_dock_device_init
  - fu_lenovo_dock_device_class_init
  source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_LENOVO_DOCK_DEVICE_IFACE1_LEN
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
      type_or_value: '64'
    - item_type: preproc_def
      name: FU_LENOVO_DOCK_DEVICE_IFACE2_LEN
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
      type_or_value: '272'
    - item_type: preproc_def
      name: FU_LENOVO_DOCK_DEVICE_DELAY
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
      type_or_value: '25  '
    - item_type: preproc_def
      name: FU_LENOVO_DOCK_DEVICE_DELAY_LONG
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
      type_or_value: '200 '
    - item_type: preproc_def
      name: FU_LENOVO_DOCK_DEVICE_RETRIES
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
      type_or_value: '200'
    - item_type: preproc_def
      name: FU_LENOVO_DOCK_DEVICE_PHASE2_DELAY
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
      type_or_value: '30000 '
    - item_type: preproc_def
      name: FU_LENOVO_DOCK_DEVICE_TIMEOUT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
      type_or_value: "250\t "
    - item_type: preproc_def
      name: FU_LENOVO_DOCK_DEVICE_USAGE_INFO_SIZE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
      type_or_value: (4 * FU_KB)
    - item_type: preproc_def
      name: FU_LENOVO_DOCK_DEVICE_USAGE_INFO_START
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
      type_or_value: '0xFFF000'
    - item_type: preproc_def
      name: FU_LENOVO_DOCK_DEVICE_FLAG_CAN_PROVISION
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
      type_or_value: '"can-provision"'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      - name: image_pid
        type: guint16
      - name: provision_status
        type: FuLenovoDockProvisionStatus
      item_type: struct
      name: _FuLenovoDockDevice
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LENOVO_DOCK_FIRMWARE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.h
      type_or_value: (fu_lenovo_dock_firmware_get_type())
    - item_type: preproc_def
      name: FU_LENOVO_DOCK_FIRMWARE_SIGNATURE_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.h
      type_or_value: '0x100'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_lenovo_dock_image_export
  - fu_lenovo_dock_image_get_crc
  - fu_lenovo_dock_image_set_crc
  - fu_lenovo_dock_image_convert_version
  - fu_lenovo_dock_image_init
  - fu_lenovo_dock_image_class_init
  - fu_lenovo_dock_image_new
  source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: crc
        type: guint32
      item_type: struct
      name: _FuLenovoDockImage
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-image.c
    typedefs: []
    union: []
- function_names:
  - fu_lenovo_dock_firmware_export_usage
  - fu_lenovo_dock_firmware_export_usage_item
  - fu_lenovo_dock_firmware_export_usage_items
  - fu_lenovo_dock_firmware_export
  - fu_lenovo_dock_firmware_parse_image
  - fu_lenovo_dock_firmware_parse
  - fu_lenovo_dock_firmware_get_pid
  - fu_lenovo_dock_firmware_get_usage
  - fu_lenovo_dock_firmware_get_usage_items
  - fu_lenovo_dock_firmware_get_usage_item
  - fu_lenovo_dock_firmware_convert_version
  - fu_lenovo_dock_firmware_init
  - fu_lenovo_dock_firmware_finalize
  - fu_lenovo_dock_firmware_class_init
  source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: pid
        type: guint16
      - name: '*st_usage'
        type: FuStructLenovoDockUsage
      - name: '*st_usage_items'
        type: GPtrArray
      item_type: struct
      name: _FuLenovoDockFirmware
      pos:
        line_end: 19
        line_start: 14
        source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LENOVO_DOCK_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/lenovo-dock/fu-lenovo-dock-device.h
      type_or_value: (fu_lenovo_dock_device_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 * FU_KB)
    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_add_badblock
  - 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
  source_file: /src/fwupd/plugins/synaptics-cxaudio/fu-synaptics-cxaudio-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuSrecFirmware
      - 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_check_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: []
    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: []
  source_file: /src/fwupd/plugins/egis-moc/fu-egis-moc-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_egis_moc_checksum_func
  - main
  source_file: /src/fwupd/plugins/egis-moc/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_EGIS_MOC_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.h
      type_or_value: (fu_egis_moc_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/egis-moc/fu-egis-moc-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_egis_moc_checksum_build
  - fu_egis_moc_checksum_fold
  - fu_egis_moc_checksum_finish
  source_file: /src/fwupd/plugins/egis-moc/fu-egis-moc-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_egis_moc_plugin_init
  - fu_egis_moc_plugin_constructed
  - fu_egis_moc_plugin_class_init
  source_file: /src/fwupd/plugins/egis-moc/fu-egis-moc-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuEgisMocPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/egis-moc/fu-egis-moc-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_egis_moc_device_pkg_header_checksum
  - fu_egis_moc_device_ctrl_cmd
  - fu_egis_moc_device_cmd_send
  - fu_egis_moc_device_cmd_recv_cb
  - fu_egis_moc_device_fw_cmd
  - fu_egis_moc_device_ensure_version
  - fu_egis_moc_device_update_init
  - fu_egis_moc_device_ensure_op_mode
  - fu_egis_moc_device_setup
  - fu_egis_moc_device_write_packets
  - fu_egis_moc_device_write_checksum
  - fu_egis_moc_device_write_firmware
  - fu_egis_moc_device_attach
  - fu_egis_moc_device_detach
  - fu_egis_moc_device_set_progress
  - fu_egis_moc_device_convert_version
  - fu_egis_moc_device_init
  - fu_egis_moc_device_class_init
  source_file: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_EGIS_MOC_USB_BULK_EP_IN
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
      type_or_value: (1 | 0x80)
    - item_type: preproc_def
      name: FU_EGIS_MOC_USB_BULK_EP_OUT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
      type_or_value: (2 | 0x00)
    - item_type: preproc_def
      name: FU_EGIS_MOC_USB_INTERFACE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
      type_or_value: '0'
    - item_type: preproc_def
      name: FU_EGIS_MOC_USB_TRANSFER_TIMEOUT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
      type_or_value: '1500 '
    - item_type: preproc_def
      name: FU_EGIS_MOC_FLASH_TRANSFER_BLOCK_SIZE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
      type_or_value: '4096 '
    - item_type: preproc_def
      name: FU_EGIS_MOC_OTA_CHALLENGE_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
      type_or_value: '32'
    - item_type: preproc_def
      name: FU_EGIS_MOC_HMAC_SHA256_SIZE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
      type_or_value: '32'
    - item_type: preproc_def
      name: FU_EGIS_MOC_OTA_CHALLENGE_HMAC_KEY
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
      type_or_value: '"EgistecUsbVcTest"'
    - item_type: preproc_def
      name: FU_EGIS_MOC_APDU_VERSION_LEN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
      type_or_value: '0x0C'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      item_type: struct
      name: _FuEgisMocDevice
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/egis-moc/fu-egis-moc-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_sunplus_camera_device_ioctl_buffer_cb
  - fu_sunplus_camera_device_xu_query
  - fu_sunplus_camera_device_xu_get_len
  - fu_sunplus_camera_device_xu_get_cur
  - fu_sunplus_camera_device_xu_set_cur
  - fu_sunplus_camera_device_set_enabled
  - fu_sunplus_camera_device_set_read_addr
  - fu_sunplus_camera_device_set_asic_register
  - fu_sunplus_camera_device_get_asic_register
  - fu_sunplus_camera_device_clear_download_state
  - fu_sunplus_camera_device_soft_reset
  - fu_sunplus_camera_device_read_chunk
  - fu_sunplus_camera_device_ensure_version
  - fu_sunplus_camera_device_probe
  - fu_sunplus_camera_device_setup
  - fu_sunplus_camera_device_verify_block
  - fu_sunplus_camera_device_verify_chunk
  - fu_sunplus_camera_device_verify
  - fu_sunplus_camera_device_cleanup
  - fu_sunplus_camera_device_write_chunk
  - fu_sunplus_camera_device_write_chunks
  - fu_sunplus_camera_device_write_firmware
  - fu_sunplus_camera_device_set_progress
  - fu_sunplus_camera_device_attach
  - fu_sunplus_camera_device_convert_version
  - fu_sunplus_camera_device_init
  - fu_sunplus_camera_device_class_init
  source_file: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_SUNPLUS_CAMERA_IOCTL_TIMEOUT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
      type_or_value: '5000'
    - item_type: preproc_def
      name: FU_SUNPLUS_CAMERA_READ_SIZE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
      type_or_value: '64'
    structs:
    - fields:
      - name: parent_instance
        type: FuV4lDevice
      item_type: struct
      name: _FuSunplusCameraDevice
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    - fields:
      - name: reg
        type: guint16
      - name: value
        type: guint8
      item_type: struct
      name: "steps[] = {\n\t    {0x2034, 0x00},\n\t    {0x2030, 0xff},\n\t    {0x2031,
        0x00},\n\t    {0x2032, 0x00},\n\t    {0x2033, 0x02},\n\t    {0x2034, 0x01},\n\t}"
      pos:
        line_end: 251
        line_start: 248
        source_file: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SUNPLUS_CAMERA_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-device.h
      type_or_value: (fu_sunplus_camera_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_sunplus_camera_plugin_init
  - fu_sunplus_camera_plugin_constructed
  - fu_sunplus_camera_plugin_class_init
  source_file: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuSunplusCameraPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/sunplus-camera/fu-sunplus-camera-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: []
  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_block_has_crypt_below
  - fu_linux_swap_block_name_for_devnum
  - 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:
    - item_type: preproc_def
      name: FU_LINUX_SWAP_DM_MAX_DEPTH
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/linux-swap/fu-linux-swap.c
      type_or_value: '16'
    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: 20
        line_start: 16
        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
  - fu_linux_swap_dm_walker_lvm_on_luks_func
  - fu_linux_swap_dm_walker_direct_func
  - fu_linux_swap_dm_walker_plain_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_intel_me_smbios_subtype18_func
  - fu_intel_me_smbios_subtype30_func
  - main
  source_file: /src/fwupd/plugins/intel-me-smbios/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_intel_me_smbios_plugin_parse_fvi
  - fu_intel_me_smbios_plugin_parse_dd_table
  - fu_intel_me_smbios_plugin_parse_dd_tables
  - fu_intel_me_smbios_plugin_parse_fwsts_record
  - fu_intel_me_smbios_plugin_parse_db_table
  - fu_intel_me_smbios_plugin_parse_db_tables
  - fu_intel_me_smbios_plugin_coldplug
  - fu_intel_me_smbios_plugin_init
  - fu_intel_me_smbios_plugin_constructed
  - fu_intel_me_smbios_plugin_class_init
  source_file: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuIntelMeSmbiosPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_INTEL_ME_SMBIOS_PLUGIN
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/intel-me-smbios/fu-intel-me-smbios-plugin.h
      type_or_value: (fu_intel_me_smbios_plugin_get_type())
    structs: []
    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_uefi_dbx_zero_func
  - fu_efi_image_func
  - fu_uefi_dbx_not_present_func
  - 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: 81
        line_start: 78
        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_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_vendor_notify_cb
  - fu_uefi_dbx_device_prepare_firmware
  - fu_uefi_dbx_device_probe
  - fu_uefi_dbx_device_set_progress
  - fu_uefi_dbx_device_convert_version
  - fu_uefi_dbx_device_init
  - 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: 18
        line_start: 17
        source_file: /src/fwupd/plugins/uefi-dbx/fu-uefi-dbx-device.c
      type_or_value: '(30 * FU_KB) '
    structs:
    - fields:
      - name: parent_instance
        type: FuUefiDevice
      item_type: struct
      name: _FuUefiDbxDevice
      pos:
        line_end: 13
        line_start: 11
        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-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_UEFI_DBX_DEVICE
      pos:
        line_end: 11
        line_start: 10
        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_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
      item_type: struct
      name: _FuUefiDbxPlugin
      pos:
        line_end: 13
        line_start: 11
        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
  source_file: /src/fwupd/plugins/elantp/fu-elantp-haptic-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - 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_check_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: 32
        line_start: 31
        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: 27
        line_start: 15
        source_file: /src/fwupd/plugins/elantp/fu-elantp-i2c-device.c
    typedefs: []
    union: []
- function_names:
  - fu_elantp_hid_haptic_device_to_string
  - 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_check_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: FuDevice
      - 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: 27
        line_start: 13
        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: 268
        line_start: 263
        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: 594
        line_start: 589
        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
  source_file: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_ELANTP_FIRMWARE_OFFSET_IAP
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/elantp/fu-elantp-firmware.c
      type_or_value: '0x100 '
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - 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: []
  source_file: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ELANTP_HID_MCU_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.h
      type_or_value: (fu_elantp_hid_mcu_device_get_type())
    structs: []
    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_I2C_IC13_IAPV5_PW
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x37CA'
    - item_type: preproc_def
      name: ETP_I2C_IC13_IAPV7_PW
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x2F3B'
    - item_type: preproc_def
      name: ETP_FW_FORCE_TYPE_ENABLE_BIT
      pos:
        line_end: 14
        line_start: 13
        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: 15
        line_start: 14
        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: 17
        line_start: 16
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: ETP_I2C_DISABLE_REPORT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0801'
    - item_type: preproc_def
      name: ETP_I2C_ENABLE_REPORT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0800'
    - item_type: preproc_def
      name: ETP_I2C_DISABLE_SCAN
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x108A'
    - item_type: preproc_def
      name: ETP_I2C_ENABLE_SCAN
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: ETP_I2C_IAP_RESET
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0xF0F0'
    - item_type: preproc_def
      name: ETP_I2C_IAP_MASTER_RESET
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0xCCDD'
    - item_type: preproc_def
      name: ETP_I2C_CLEAR_PROTECT_AI_TABLE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0xA1CF'
    - item_type: preproc_def
      name: ETP_I2C_MAIN_MODE_ON
      pos:
        line_end: 30
        line_start: 29
        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: 31
        line_start: 30
        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: 33
        line_start: 32
        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: 34
        line_start: 33
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '0x06'
    - item_type: preproc_def
      name: ETP_FW_IAP_END_WAITWDT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: ETP_FW_IAP_INTF_ERR
      pos:
        line_end: 37
        line_start: 36
        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: 38
        line_start: 37
        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: 39
        line_start: 38
        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: 40
        line_start: 39
        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: 42
        line_start: 41
        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: 43
        line_start: 42
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: "30\t  "
    - item_type: preproc_def
      name: ELANTP_DELAY_RESET_MASTER
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/elantp/fu-elantp-common.h
      type_or_value: '500  '
    - item_type: preproc_def
      name: ELANTP_EEPROM_READ_DELAY
      pos:
        line_end: 45
        line_start: 44
        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: 46
        line_start: 45
        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: 47
        line_start: 46
        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: 48
        line_start: 47
        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_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_ensure_forcetable_address
  - fu_elantp_hid_device_write_fw_password
  - fu_elantp_hid_device_read_mcu_ic_type
  - fu_elantp_hid_device_setup
  - fu_elantp_hid_device_check_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: 28
        line_start: 15
        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:
  - fu_elantp_hid_mcu_device_to_string
  - fu_elantp_hid_mcu_device_ensure_iap_ctrl
  - fu_elantp_hid_mcu_device_read_force_table_enable
  - fu_elantp_hid_mcu_device_ensure_force_table_addr
  - fu_elantp_hid_mcu_device_write_fw_password
  - fu_elantp_hid_mcu_device_setup
  - fu_elantp_hid_mcu_device_check_firmware
  - fu_elantp_hid_mcu_device_write_chunk
  - fu_elantp_hid_mcu_device_write_chunks
  - fu_elantp_hid_mcu_device_write_firmware
  - fu_elantp_hid_mcu_device_read_iap_type
  - fu_elantp_hid_mcu_device_detach
  - fu_elantp_hid_mcu_device_attach
  - fu_elantp_hid_mcu_device_set_quirk_kv
  - fu_elantp_hid_mcu_device_set_progress
  - fu_elantp_hid_mcu_device_convert_version
  - fu_elantp_hid_mcu_device_init
  - fu_elantp_hid_mcu_device_class_init
  - fu_elantp_hid_mcu_device_new
  source_file: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - 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: fw_section_size
        type: guint16
      - name: fw_no_of_sections
        type: guint16
      - name: force_table_support
        type: gboolean
      - name: force_table_addr
        type: guint32
      - name: pattern
        type: guint8
      item_type: struct
      name: _FuElantpHidMcuDevice
      pos:
        line_end: 29
        line_start: 14
        source_file: /src/fwupd/plugins/elantp/fu-elantp-hid-mcu-device.c
    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())
    - item_type: preproc_def
      name: FU_ELANTP_DEVICE_PRIVATE_FLAG_CAN_QUERY_HAPTIC_FUNCTION
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/elantp/fu-elantp-hid-device.h
      type_or_value: '"can-query-haptic-function"'
    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_offline_parent_port
  - fu_thunderbolt_retimer_online_parent_port
  - 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: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_INIT_FULL
      pos:
        line_end: 846
        line_start: 845
        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: 847
        line_start: 846
        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 FuThunderboltMockDevice
      - name: '*uuid'
        type: char
      item_type: struct
      name: FuThunderboltMockDevice
      pos:
        line_end: 73
        line_start: 59
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    - fields:
      - name: '*device'
        type: FuThunderboltMockDevice
      - name: '*parent'
        type: FuThunderboltMockTree
      - 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: FuThunderboltMockTree
      pos:
        line_end: 97
        line_start: 77
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    - fields:
      - name: '*tree'
        type: FuThunderboltMockTree
      - name: '*loop'
        type: GMainLoop
      item_type: struct
      name: FuThunderboltSyncContext
      pos:
        line_end: 432
        line_start: 429
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    - fields:
      - name: '*tree'
        type: FuThunderboltMockTree
      - name: '*loop'
        type: GMainLoop
      - name: complete
        type: gboolean
      item_type: struct
      name: FuThunderboltAttachContext
      pos:
        line_end: 521
        line_start: 515
        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: FuThunderboltMockTree
      - name: '*version'
        type: gchar
      item_type: struct
      name: FuThunderboltUpdateContext
      pos:
        line_end: 656
        line_start: 645
        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: FuThunderboltTestParam
      pos:
        line_end: 835
        line_start: 830
        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: FuThunderboltMockTree
      - name: '*fw_data'
        type: GBytes
      - name: '*fw_stream'
        type: GInputStream
      item_type: struct
      name: FuThunderboltTest
      pos:
        line_end: 861
        line_start: 848
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
    typedefs:
    - item_type: typedef
      name: FuThunderboltMockDevice
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
      type: FuThunderboltMockDevice
    - item_type: typedef
      name: FuThunderboltMockTree
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
      type: FuThunderboltMockTree
    - item_type: typedef
      name: "(*FuThunderboltMockTreePredicate)(const FuThunderboltMockTree *node,\n\t\t\t\t\t\t
        \  gpointer data)"
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/fwupd/plugins/thunderbolt/fu-self-test.c
      type: gboolean
    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'
    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_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: 359
        line_start: 355
        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: FuFirmware
      - 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_ensure_version
  - fu_logitech_rallysystem_audio_device_ensure_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_legion_hid_plugin_init
  - fu_legion_hid_plugin_constructed
  - fu_legion_hid_plugin_class_init
  source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuLegionHidPlugin
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LEGION_HID_CHILD
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.h
      type_or_value: (fu_legion_hid_child_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LEGION_HID_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.h
      type_or_value: (fu_legion_hid_firmware_get_type())
    - item_type: preproc_def
      name: FU_LEGION_HID_FIRMWARE_ID_MCU
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.h
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: FU_LEGION_HID_FIRMWARE_ID_LEFT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.h
      type_or_value: '"LEFT"'
    - item_type: preproc_def
      name: FU_LEGION_HID_FIRMWARE_ID_RIGHT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.h
      type_or_value: '"RIGHT"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_legion_hid_firmware_parse
  - fu_legion_hid_firmware_init
  - fu_legion_hid_firmware_class_init
  source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuLegionHidFirmware
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_legion_hid_device_read_normal_response_retry_cb
  - fu_legion_hid_device_read_response
  - fu_legion_hid_device_check_upgrade_device_id
  - fu_legion_hid_device_read_upgrade_response_retry_cb
  - fu_legion_hid_device_read_upgrade_response
  - fu_legion_hid_device_read_upgrade_query_size_response_retry_cb
  - fu_legion_hid_device_read_upgrade_query_size_response
  - fu_legion_hid_device_upgrade_start
  - fu_legion_hid_device_upgrade_query_size
  - fu_legion_hid_device_upgrade_write_data_chunk
  - fu_legion_hid_device_upgrade_write_data_chunks
  - fu_legion_hid_device_upgrade_write_data
  - fu_legion_hid_device_upgrade_verify
  - fu_legion_hid_device_get_version_internal
  - fu_legion_hid_device_get_version_cb
  - fu_legion_hid_device_get_version
  - fu_legion_hid_device_get_id
  - fu_legion_hid_device_execute_upgrade
  - fu_legion_hid_device_write_firmware
  - fu_legion_hid_device_convert_version
  - fu_legion_hid_device_set_progress
  - fu_legion_hid_device_setup
  - fu_legion_hid_device_class_init
  - fu_legion_hid_device_init
  source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_LEGION_HID_DEVICE_IO_TIMEOUT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
      type_or_value: '500'
    - item_type: preproc_def
      name: FU_LEGION_HID_DEVICE_REBOOT_WAIT_TIME
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
      type_or_value: (10 * 1000)
    - item_type: preproc_def
      name: FU_LEGION_HID_DEVICE_FW_SIGNED_LENGTH
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
      type_or_value: '384'
    - item_type: preproc_def
      name: FU_LEGION_HID_DEVICE_FW_ID_LENGTH
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
      type_or_value: '4'
    - item_type: preproc_def
      name: FU_LEGION_HID_DEVICE_FW_PACKET_LENGTH
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
      type_or_value: '32'
    - item_type: preproc_def
      name: FU_LEGION_HID_DEVICE_FW_REPORT_LENGTH
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
      type_or_value: '64'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      item_type: struct
      name: _FuLegionHidDevice
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    - fields:
      - name: '*res'
        type: GByteArray
      - name: main_id
        type: guint8
      - name: sub_id
        type: guint8
      - name: dev_id
        type: FuLegionHidDeviceId
      - name: step
        type: guint8
      item_type: struct
      name: FuLegionHidRetryHelper
      pos:
        line_end: 32
        line_start: 26
        source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    - fields:
      - name: id
        type: FuLegionHidDeviceId
      - name: '*version'
        type: guint32
      item_type: struct
      name: FuLegionHidDeviceVersionHelper
      pos:
        line_end: 603
        line_start: 600
        source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.c
    typedefs: []
    union: []
- function_names:
  - fu_legion_hid_child_write_firmware
  - fu_legion_hid_child_convert_version
  - fu_legion_hid_child_set_progress
  - fu_legion_hid_child_setup
  - fu_legion_hid_child_class_init
  - fu_legion_hid_child_init
  - fu_legion_hid_child_new
  source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: id
        type: FuLegionHidDeviceId
      item_type: struct
      name: _FuLegionHidChild
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-child.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LEGION_HID_DEVICE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/legion-hid/fu-legion-hid-device.h
      type_or_value: (fu_legion_hid_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_lxs_touch_device_to_string
  - fu_lxs_touch_device_read
  - fu_lxs_touch_device_write
  - fu_lxs_touch_device_read_data
  - fu_lxs_touch_device_wait_ready_cb
  - fu_lxs_touch_device_wait_ready
  - fu_lxs_touch_device_ensure_version
  - fu_lxs_touch_device_ensure_mode
  - fu_lxs_touch_device_ensure_panel_info
  - fu_lxs_touch_device_ensure_4k_mode
  - fu_lxs_touch_device_set_mode
  - fu_lxs_touch_device_setup
  - fu_lxs_touch_device_detach
  - fu_lxs_touch_device_write_normal_chunk
  - fu_lxs_touch_device_write_normal_chunks
  - fu_lxs_touch_device_write_4k_chunk
  - fu_lxs_touch_device_write_4k_chunk_cb
  - fu_lxs_touch_device_write_4k_chunks
  - fu_lxs_touch_device_reset_wdt
  - fu_lxs_touch_device_get_protocol_name
  - fu_lxs_touch_device_write_firmware
  - fu_lxs_touch_device_set_progress
  - fu_lxs_touch_device_init
  - fu_lxs_touch_device_class_init
  source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_LXS_TOUCH_BUFFER_SIZE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
      type_or_value: '64'
    - item_type: preproc_def
      name: FU_LXS_TOUCH_PROTOCOL_NAME_SWIP
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
      type_or_value: '"SWIP"'
    - item_type: preproc_def
      name: FU_LXS_TOUCH_PROTOCOL_NAME_DFUP
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
      type_or_value: '"DFUP"'
    - item_type: preproc_def
      name: FU_LXS_TOUCH_DOWNLOAD_CHUNK_SIZE_NORMAL
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
      type_or_value: '128'
    - item_type: preproc_def
      name: FU_LXS_TOUCH_DOWNLOAD_CHUNK_SIZE_4K
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: FU_LXS_TOUCH_TRANSMIT_UNIT_NORMAL
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
      type_or_value: '16'
    - item_type: preproc_def
      name: FU_LXS_TOUCH_TRANSMIT_UNIT_4K
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
      type_or_value: '48'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      - name: use_4k_mode
        type: gboolean
      - name: x_size
        type: guint8
      - name: y_size
        type: guint8
      item_type: struct
      name: _FuLxsTouchDevice
      pos:
        line_end: 17
        line_start: 12
        source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.c
    typedefs: []
    union: []
- function_names:
  - fu_lxs_touch_firmware_parse
  - fu_lxs_touch_firmware_get_offset
  - fu_lxs_touch_firmware_init
  - fu_lxs_touch_firmware_class_init
  source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_LXS_TOUCH_FW_SIZE_APP_ONLY
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c
      type_or_value: '(112 * 1024) '
    - item_type: preproc_def
      name: FU_LXS_TOUCH_FW_SIZE_BOOT_APP
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c
      type_or_value: '(128 * 1024) '
    - item_type: preproc_def
      name: FU_LXS_TOUCH_FW_OFFSET_APP_ONLY
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c
      type_or_value: '0x4000'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: fw_offset
        type: guint32
      item_type: struct
      name: _FuLxsTouchFirmware
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LXS_TOUCH_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-firmware.h
      type_or_value: (fu_lxs_touch_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_lxs_touch_plugin_init
  - fu_lxs_touch_plugin_constructed
  - fu_lxs_touch_plugin_class_init
  source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuLxsTouchPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LXS_TOUCH_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-device.h
      type_or_value: (fu_lxs_touch_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/lxs-touch/fu-lxs-touch-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    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_check_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_composite_prepare
  - fu_powerd_plugin_composite_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: 17
        line_start: 14
        source_file: /src/fwupd/plugins/powerd/fu-powerd-plugin.c
    typedefs: []
    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_WDIT_SIZE
      pos:
        line_end: 11
        line_start: 10
        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: 12
        line_start: 11
        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: 14
        line_start: 13
        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: 15
        line_start: 14
        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_set_security
  - 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/wch-ch341a/fu-wch-ch341a-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WCH_CH341A_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.h
      type_or_value: (fu_wch_ch341a_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wch_ch341a_device_speed_to_string
  - fu_wch_ch341a_device_to_string
  - fu_wch_ch341a_device_write
  - fu_wch_ch341a_device_read
  - fu_wch_ch341a_device_reverse_uint8
  - fu_wch_ch341a_device_spi_transfer
  - fu_wch_ch341a_device_configure_stream
  - fu_wch_ch341a_device_chip_select
  - fu_wch_ch341a_device_probe
  - fu_wch_ch341a_device_setup
  - fu_wch_ch341a_device_init
  - fu_wch_ch341a_device_class_init
  source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WCH_CH341A_USB_TIMEOUT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: WCH_CH341A_EP_OUT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
      type_or_value: '0x02 '
    - item_type: preproc_def
      name: WCH_CH341A_EP_IN
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
      type_or_value: '0x82 '
    - item_type: preproc_def
      name: WCH_CH341A_EP_SIZE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: FU_WCH_CH341A_STM_SPI_MODUS_STANDARD
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_WCH_CH341A_STM_SPI_MODUS_DOUBLE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: FU_WCH_CH341A_STM_SPI_ENDIAN_BIG
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
      type_or_value: '0x0'
    - item_type: preproc_def
      name: FU_WCH_CH341A_STM_SPI_ENDIAN_LITTLE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
      type_or_value: '0x80'
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: speed
        type: guint8
      item_type: struct
      name: _FuWchCh341aDevice
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WCH_CH341A_CFI_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.h
      type_or_value: (fu_wch_ch341a_cfi_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wch_ch341a_cfi_device_chip_select
  - fu_wch_ch341a_cfi_device_wait_for_status_cb
  - fu_wch_ch341a_cfi_device_wait_for_status
  - fu_wch_ch341a_cfi_device_read_jedec
  - fu_wch_ch341a_cfi_device_write_enable
  - fu_wch_ch341a_cfi_device_chip_erase
  - fu_wch_ch341a_cfi_device_write_page
  - fu_wch_ch341a_cfi_device_write_pages
  - fu_wch_ch341a_cfi_device_read_firmware
  - fu_wch_ch341a_cfi_device_write_firmware
  - fu_wch_ch341a_cfi_device_dump_firmware
  - fu_wch_ch341a_cfi_device_set_progress
  - fu_wch_ch341a_cfi_device_init
  - fu_wch_ch341a_cfi_device_class_init
  source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WCH_CH341A_PAYLOAD_SIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c
      type_or_value: '0x1A'
    structs:
    - fields:
      - name: parent_instance
        type: FuCfiDevice
      item_type: struct
      name: _FuWchCh341aCfiDevice
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c
    - fields:
      - name: mask
        type: guint8
      - name: value
        type: guint8
      item_type: struct
      name: FuWchCh341aCfiDeviceHelper
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-cfi-device.c
    typedefs: []
    union: []
- function_names:
  - fu_wch_ch341a_plugin_init
  - fu_wch_ch341a_plugin_constructed
  - fu_wch_ch341a_plugin_class_init
  source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuWchCh341aPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/wch-ch341a/fu-wch-ch341a-plugin.c
    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_add_magic
  - fu_ccgx_dmc_firmware_init
  - fu_ccgx_dmc_firmware_finalize
  - fu_ccgx_dmc_firmware_class_init
  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: FuFirmware
      - 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_check_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: 13
        line_start: 12
        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: 14
        line_start: 13
        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: FuStructCcgxDmcDevxStatus
      item_type: struct
      name: _FuCcgxDmcDevxDevice
      pos:
        line_end: 18
        line_start: 15
        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_serial_suffix_func
  - 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_get_fw_slot_info
  - fu_nvme_device_wait_for_fw_download_cb
  - fu_nvme_device_wait_for_fw_download
  - fu_nvme_device_parse_cns_maybe_dell
  - fu_nvme_device_set_serial
  - 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_COMMIT_ACTION_CA0
      pos:
        line_end: 22
        line_start: 21
        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: 23
        line_start: 22
        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: 24
        line_start: 23
        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: 25
        line_start: 24
        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: 27
        line_start: 26
        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: 28
        line_start: 27
        source_file: /src/fwupd/plugins/nvme/fu-nvme-device.c
      type_or_value: '"commit-ca3"'
    - item_type: preproc_def
      name: FU_NVME_LOG_FW_SLOT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/nvme/fu-nvme-device.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: FU_NVME_FW_SLOT_INFO_AFI_FWUP
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/nvme/fu-nvme-device.c
      type_or_value: (1u << 3)
    - item_type: preproc_def
      name: FU_NVME_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 36
        line_start: 35
        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
      - name: serial_suffix
        type: guint
      item_type: struct
      name: _FuNvmeDevice
      pos:
        line_end: 19
        line_start: 14
        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-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: []
  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:
  - GET_PRIVATE
  - fu_mm_mbim_device_error_convert
  - 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_detach
  - 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: 22
        line_start: 21
        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: 24
        line_start: 23
        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
      - name: '*main_ctx'
        type: GMainContext
      item_type: struct
      name: FuMmMbimDevicePrivate
      pos:
        line_end: 15
        line_start: 11
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    - fields:
      - name: ret
        type: gboolean
      - name: '*main_ctx'
        type: GMainContext
      - name: '*loop'
        type: GMainLoop
      - name: '*timeout_source'
        type: GSource
      - name: '*cancellable'
        type: GCancellable
      - name: '*mbim_device'
        type: MbimDevice
      - name: '*mbim_message'
        type: MbimMessage
      - name: '*error'
        type: GError
      item_type: struct
      name: FuMmMbimDeviceHelper
      pos:
        line_end: 114
        line_start: 105
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.c
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_mm_device_port_free
  - 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_set_autosuspend_delay
  - fu_mm_device_add_instance_id_vid
  - fu_mm_device_add_instance_id_pid
  - 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_make_serial_raw
  - fu_mm_device_open
  - 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: 25
        line_start: 24
        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: 49
        line_start: 48
        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: 51
        line_start: 50
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-device.c
      type_or_value: '3000 '
    structs:
    - fields:
      - name: type
        type: MMModemPortType
      - name: '*device_file'
        type: gchar
      - name: flags
        type: FuMmDevicePortFlags
      item_type: struct
      name: FuMmDevicePort
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-device.c
    - fields:
      - name: inhibited
        type: gboolean
      - name: '*branch_at'
        type: gchar
      - name: '*inhibition_uid'
        type: gchar
      - name: '*ports'
        type: GPtrArray
      item_type: struct
      name: FuMmDevicePrivate
      pos:
        line_end: 42
        line_start: 37
        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: 481
        line_start: 476
        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_add_device
  - 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: 31
        line_start: 30
        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: 25
        line_start: 20
        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_QDU_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_MBIM_DEVICE,\n\t\tMM_MODEM_PORT_TYPE_MBIM,\n\t\tMM_MODEM_FIRMWARE_UPDATE_METHOD_FIREHOSE
        | MM_MODEM_FIRMWARE_UPDATE_METHOD_SAHARA,\n\t    },\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_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_QCDM_DEVICE,\n\t\tMM_MODEM_PORT_TYPE_QCDM,\n\t\tMM_MODEM_FIRMWARE_UPDATE_METHOD_FIREHOSE
        | MM_MODEM_FIRMWARE_UPDATE_METHOD_SAHARA,\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: 143
        line_start: 139
        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: FU_MM_DEVICE_FLAG_MAKE_SERIAL_RAW
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-device.h
      type_or_value: '"make-serial-raw"'
    - item_type: preproc_def
      name: MM_MODEM_FIRMWARE_UPDATE_METHOD_DFOTA
      pos:
        line_end: 22
        line_start: 21
        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: 23
        line_start: 22
        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: 27
        line_start: 25
        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_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_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: 476
        line_start: 468
        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: 752
        line_start: 747
        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: 14
        line_start: 13
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.h
      type_or_value: (fu_mm_mbim_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuMmDeviceClass
      item_type: struct
      name: _FuMmMbimDeviceClass
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-mbim-device.h
    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_qdu_mbim_device_detach
  - fu_mm_qdu_mbim_device_write_chunk
  - fu_mm_qdu_mbim_device_write_chunks
  - fu_mm_qdu_mbim_device_write
  - fu_mm_qdu_mbim_device_ensure_firmware_version
  - fu_mm_qdu_mbim_device_write_firmware
  - fu_mm_qdu_mbim_device_probe
  - fu_mm_qdu_mbim_device_prepare
  - fu_mm_qdu_mbim_device_cleanup
  - fu_mm_qdu_mbim_device_set_progress
  - fu_mm_qdu_mbim_device_init
  - fu_mm_qdu_mbim_device_class_init
  source_file: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuMmMbimDevice
      item_type: struct
      name: _FuMmQduMbimDevice
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.c
    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_cb
  - 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_TIMEOUT_SECS
      pos:
        line_end: 21
        line_start: 20
        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-qdu-mbim-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_MM_QDU_MBIM_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/modem-manager/fu-mm-qdu-mbim-device.h
      type_or_value: (fu_mm_qdu_mbim_device_get_type())
    structs: []
    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_prepare_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'
        type: GBytes
      - name: '*firehose_prog_file'
        type: gchar
      item_type: struct
      name: _FuMmMhiQcdmDevice
      pos:
        line_end: 17
        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_ensure_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_extensions
  - fu_uf2_firmware_parse_chunk
  - fu_uf2_firmware_parse
  - fu_uf2_firmware_build_utf8_extension
  - 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: []
    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: FuFirmware
      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_prepare_firmware
  - fu_ebitdo_device_write_image
  - 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: []
  source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_RAYDIUM_TP_IMAGE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.h
      type_or_value: (fu_raydium_tp_image_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_RAYDIUM_TP_HID_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.h
      type_or_value: (fu_raydium_tp_hid_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_raydium_tp_plugin_init
  - fu_raydium_tp_plugin_constructed
  - fu_raydium_tp_plugin_class_init
  source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuRaydiumTpPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_RAYDIUM_TP_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.h
      type_or_value: (fu_raydium_tp_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_raydium_tp_firmware_export
  - fu_raydium_tp_firmware_get_vendor_id
  - fu_raydium_tp_firmware_get_product_id
  - fu_raydium_tp_firmware_parse
  - fu_raydium_tp_firmware_init
  - fu_raydium_tp_firmware_class_init
  source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: vendor_id
        type: guint16
      - name: product_id
        type: guint16
      item_type: struct
      name: _FuRaydiumTpFirmware
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_raydium_tp_hid_device_get_report
  - fu_raydium_tp_hid_device_set_report
  - fu_raydium_tp_hid_device_write_cb
  - fu_raydium_tp_hid_device_write
  - fu_raydium_tp_hid_device_read_cb
  - fu_raydium_tp_hid_device_bl_write
  - fu_raydium_tp_hid_device_bl_read
  - fu_raydium_tp_hid_device_tp_write
  - fu_raydium_tp_hid_device_tp_read
  - fu_raydium_tp_hid_device_set_bl_mem
  - fu_raydium_tp_hid_device_get_bl_mem
  - fu_raydium_tp_hid_device_jump_to_boot
  - fu_raydium_tp_hid_device_read_status_cb
  - fu_raydium_tp_hid_device_read_status
  - fu_raydium_tp_hid_device_wait_main_cb
  - fu_raydium_tp_hid_device_wait_boot_cb
  - fu_raydium_tp_hid_device_wait_dma_cb
  - fu_raydium_tp_hid_device_wait_idle_cb
  - fu_raydium_tp_hid_device_wait_for_idle_boot
  - fu_raydium_tp_hid_device_bl_set_wdt
  - fu_raydium_tp_hid_device_bl_dis_wdt_and_unlock_flash
  - fu_raydium_tp_hid_device_bl_erase_fw_flash
  - fu_raydium_tp_hid_device_bl_erase_flash_sector
  - fu_raydium_tp_hid_device_bl_write_flash_chunk
  - fu_raydium_tp_hid_device_bl_write_flash
  - fu_raydium_tp_hid_device_bl_dma_crc
  - fu_raydium_tp_hid_device_bl_trig_desc_to_flash
  - fu_raydium_tp_hid_device_bl_trig_pram_to_flash
  - fu_raydium_tp_hid_device_bl_software_reset
  - fu_raydium_tp_hid_device_set_mem_addr
  - fu_raydium_tp_hid_device_set_mem_write
  - fu_raydium_tp_hid_device_get_mem_read
  - fu_raydium_tp_hid_device_read_flash_protect_status
  - fu_raydium_tp_hid_device_write_flash_protect_status
  - fu_raydium_tp_hid_device_ensure_version_bldr_fallback
  - fu_raydium_tp_hid_device_ensure_version_bldr
  - fu_raydium_tp_hid_device_ensure_version_main
  - fu_raydium_tp_hid_device_ensure_version
  - fu_raydium_tp_hid_device_update_prepare
  - fu_raydium_tp_hid_device_write_fwimage
  - fu_raydium_tp_hid_device_write_descimage
  - fu_raydium_tp_hid_device_read_flash_crc
  - fu_raydium_tp_hid_device_verify_status
  - fu_raydium_tp_hid_device_write_images
  - fu_raydium_tp_hid_device_check_firmware
  - fu_raydium_tp_hid_device_write_firmware
  - fu_raydium_tp_hid_device_set_progress
  - fu_raydium_tp_hid_device_probe
  - fu_raydium_tp_hid_device_setup
  - fu_raydium_tp_hid_device_convert_version
  - fu_raydium_tp_hid_device_init
  - fu_raydium_tp_hid_device_class_init
  source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RAYDIUM_VENDOR_ID
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
      type_or_value: '0x2386'
    - item_type: preproc_def
      name: RAYDIUM_GET_SYS_FW_VERSION_NUM
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RAYDIUM_MCU_MEM
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RAYDIUM_I2C_BUF_SIZE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
      type_or_value: '64'
    - item_type: preproc_def
      name: RAYDIUM_I2C_BUF_MAXSIZE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
      type_or_value: '256'
    - item_type: preproc_def
      name: RAYDIUM_HIDI2C_WRITE_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
      type_or_value: '32'
    - item_type: preproc_def
      name: RAYDIUM_CRC_LEN
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
      type_or_value: '4'
    - item_type: preproc_def
      name: RAYDIUM_HIDI2C_CHK_IDX
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
      type_or_value: '61'
    - item_type: preproc_def
      name: RAYDIUM_HIDI2C_WRITE_MAX_LENGTH
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
      type_or_value: '49'
    - item_type: preproc_def
      name: RAYDIUM_RETRY_NUM
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
      type_or_value: '10'
    - item_type: preproc_def
      name: RAYDIUM_RETRY_NUM_MAX
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
      type_or_value: '30'
    - item_type: preproc_def
      name: RAYDIUM_FLASH_SECTOR_SIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
      type_or_value: '4096'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      item_type: struct
      name: _FuRaydiumTpHidDevice
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    - fields:
      - name: '*outbuf'
        type: GByteArray
      - name: '*inbuf'
        type: GByteArray
      item_type: struct
      name: FuRaydiumTpHidReadHelper
      pos:
        line_end: 83
        line_start: 80
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-hid-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_raydium_tp_image_export
  - fu_raydium_tp_image_get_checksum
  - fu_raydium_tp_image_parse
  - fu_raydium_tp_image_init
  - fu_raydium_tp_image_class_init
  source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: checksum
        type: guint32
      item_type: struct
      name: _FuRaydiumTpImage
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/fwupd/plugins/raydium-tp/fu-raydium-tp-image.c
    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:
  - fu_amd_gpu_uma_setting_write_value
  - fu_amd_gpu_uma_setting_finalize
  - fu_amd_gpu_uma_setting_init
  - fu_amd_gpu_uma_setting_class_init
  - fu_amd_gpu_uma_read_file
  - fu_amd_gpu_uma_check_support
  - fu_amd_gpu_uma_get_setting
  source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UMA_CARVEOUT_OPTIONS_FILE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c
      type_or_value: '"carveout_options"'
    - item_type: preproc_def
      name: UMA_CARVEOUT_FILE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c
      type_or_value: '"carveout"'
    - item_type: preproc_def
      name: UMA_DIR
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c
      type_or_value: '"uma"'
    structs:
    - fields:
      - name: parent_instance
        type: FwupdBiosSetting
      - name: '*value_map'
        type: GHashTable
      - name: '*reverse_value_map'
        type: GHashTable
      - name: '*uma_path'
        type: gchar
      item_type: struct
      name: _FuAmdGpuUmaSetting
      pos:
        line_end: 25
        line_start: 20
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.c
    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
  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_bios_settings
  - fu_amd_gpu_device_setup
  - fu_amd_gpu_device_convert_version
  - fu_amd_gpu_device_check_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: 31
        line_start: 30
        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: 32
        line_start: 31
        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: 33
        line_start: 32
        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: 34
        line_start: 33
        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: 36
        line_start: 35
        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: 28
        line_start: 23
        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:
  - fu_amd_gpu_uma_check_support_no_support_func
  - fu_amd_gpu_uma_check_support_with_support_func
  - fu_amd_gpu_uma_get_setting_valid_func
  - fu_amd_gpu_uma_get_setting_invalid_func
  - fu_amd_gpu_uma_write_value_func
  - main
  source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma-test.c
  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: []
  source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_AMD_GPU_UMA_SETTING
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/amd-gpu/fu-amd-gpu-uma.h
      type_or_value: (fu_amd_gpu_uma_setting_get_type())
    structs: []
    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: FuAtaDeviceTf
      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: 13
        line_start: 12
        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_find_child
  - fu_usi_dock_mcu_device_get_status
  - fu_usi_dock_mcu_device_send_phase2_parameters
  - fu_usi_dock_mcu_device_enumerate_children
  - fu_usi_dock_mcu_device_reset_usb2
  - 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_prepare
  - 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: 20
        line_start: 19
        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: 22
        line_start: 21
        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: 23
        line_start: 22
        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: 25
        line_start: 24
        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: 26
        line_start: 25
        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: 28
        line_start: 27
        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: 30
        line_start: 29
        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: 31
        line_start: 30
        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: 32
        line_start: 31
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
      type_or_value: '"waiting-for-unplug"'
    - item_type: preproc_def
      name: FU_USI_DOCK_DEVICE_FLAG_NO_REPLUG
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
      type_or_value: '"no-replug"'
    - item_type: preproc_def
      name: FU_USI_DOCK_DEVICE_PHASE2_DELAY
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
      type_or_value: '0x0F'
    - item_type: preproc_def
      name: FU_USI_DOCK_DEVICE_PHASE2_TIMEOUT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
      type_or_value: '0x5A'
    - item_type: preproc_def
      name: FU_USI_DOCK_DEVICE_40B0_DEVID
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
      type_or_value: '"USB\\VID_17EF&PID_30B4&CID_40B0"'
    - item_type: preproc_def
      name: FU_USI_DOCK_DEVICE_NOREPLUG_MIN_VERSION
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/fwupd/plugins/usi-dock/fu-usi-dock-mcu-device.c
      type_or_value: '"10.18"'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      item_type: struct
      name: _FuUsiDockMcuDevice
      pos:
        line_end: 15
        line_start: 13
        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: 215
        line_start: 211
        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_mcu_device
  - fu_usi_dock_plugin_ensure_tbt4
  - 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 * FU_KB)
    - 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_cb
  - fu_logitech_tap_touch_device_disable_tde_cb
  - 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: 18
        line_start: 17
        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: 20
        line_start: 19
        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: 21
        line_start: 20
        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: 24
        line_start: 22
        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: 26
        line_start: 25
        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: 28
        line_start: 27
        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: 30
        line_start: 29
        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: 31
        line_start: 30
        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: 33
        line_start: 32
        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: 34
        line_start: 33
        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: 35
        line_start: 34
        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: 37
        line_start: 36
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-touch-device.c
      type_or_value: '0x50 '
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      item_type: struct
      name: _FuLogitechTapTouchDevice
      pos:
        line_end: 40
        line_start: 38
        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: 688
        line_start: 685
        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: 17
        line_start: 16
        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: 18
        line_start: 17
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
      type_or_value: '8'
    - item_type: preproc_def
      name: XU_GET_MMP_RESULT_DATA_LEN_MAX
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/logitech-tap/fu-logitech-tap-hdmi-device.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: kDefaultUvcGetLenQueryControlSize
      pos:
        line_end: 22
        line_start: 21
        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: 46
        line_start: 44
        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:
  - fu_logitech_tap_sensor_device_get_feature
  - fu_logitech_tap_sensor_device_enable_tde_cb
  - fu_logitech_tap_sensor_device_disable_tde_cb
  - fu_logitech_tap_sensor_device_reboot_device
  - fu_logitech_tap_sensor_device_ensure_version
  - fu_logitech_tap_sensor_device_ensure_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: []
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      item_type: struct
      name: _FuLogitechTapSensorDevice
      pos:
        line_end: 17
        line_start: 15
        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: []
  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_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: 29
        line_start: 28
        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: 30
        line_start: 29
        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: 32
        line_start: 31
        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: 34
        line_start: 33
        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: 24
        line_start: 16
        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: 29
        line_start: 28
        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: 33
        line_start: 30
        source_file: /src/fwupd/plugins/bcm57xx/fu-bcm57xx-device.c
    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_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: 14
        line_start: 12
        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_VPD_SZ
      pos:
        line_end: 29
        line_start: 28
        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: 31
        line_start: 30
        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: 33
        line_start: 32
        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: 34
        line_start: 33
        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: FuBcm57xxVeritem
      pos:
        line_end: 39
        line_start: 35
        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: FuFirmware
      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: FuVolumeLocker
      - 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: FuFirmware
      - 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: FuFirmware
      - 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: FuNordicHidFirmware
      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: 14
        line_start: 12
        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: FuNordicHidFirmware
      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: 14
        line_start: 13
        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: 15
        line_start: 14
        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: 16
        line_start: 15
        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: 17
        line_start: 16
        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: 18
        line_start: 17
        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: 19
        line_start: 18
        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: 20
        line_start: 19
        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: 21
        line_start: 20
        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: 23
        line_start: 22
        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: 24
        line_start: 23
        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: 25
        line_start: 24
        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: 26
        line_start: 25
        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: 34
        line_start: 27
        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: 39
        line_start: 36
        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: 45
        line_start: 41
        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: 51
        line_start: 47
        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: 59
        line_start: 53
        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: '*modules'
        type: GPtrArray
      item_type: struct
      name: _FuNordicHidCfgChannel
      pos:
        line_end: 78
        line_start: 64
        source_file: /src/fwupd/plugins/nordic-hid/fu-nordic-hid-cfg-channel.c
    typedefs: []
    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: FuFirmware
      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 '
    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: 41
        line_start: 38
        source_file: /src/fwupd/plugins/synaptics-vmm9/fu-synaptics-vmm9-device.c
    typedefs: []
    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
      type: gboolean
    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: FuQcFirehoseHelper
      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_prepare_firmware
  - 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 * FU_KB)
    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_prepare_firmware
  - 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 * FU_KB)
    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
      type: gboolean
    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_write
  - fu_algoltek_usbcr_firmware_get_boot_ver
  - fu_algoltek_usbcr_firmware_build
  - fu_algoltek_usbcr_firmware_convert_version
  - fu_algoltek_usbcr_firmware_init
  - fu_algoltek_usbcr_firmware_class_init
  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
      - name: emmc_ver
        type: guint16
      item_type: struct
      name: _FuAlgoltekUsbcrFirmware
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/fwupd/plugins/algoltek-usbcr/fu-algoltek-usbcr-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_algoltek_usbcr_firmware_xml_func
  - main
  source_file: /src/fwupd/plugins/algoltek-usbcr/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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_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_check_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_CROS_EC_SETUP_RETRY_CNT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.h
      type_or_value: '5'
    - item_type: preproc_def
      name: FU_CROS_EC_MAX_BLOCK_XFER_RETRIES
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.h
      type_or_value: '10'
    - item_type: preproc_def
      name: FU_TYPE_CROS_EC_USB_DEVICE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.h
      type_or_value: (fu_cros_ec_usb_device_get_type())
    - item_type: preproc_def
      name: FU_CROS_EC_USB_DEVICE_FLAG_RO_WRITTEN
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.h
      type_or_value: '"ro-written"'
    - item_type: preproc_def
      name: FU_CROS_EC_USB_DEVICE_FLAG_RW_WRITTEN
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.h
      type_or_value: '"rw-written"'
    - item_type: preproc_def
      name: FU_CROS_EC_USB_DEVICE_FLAG_REBOOTING_TO_RO
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.h
      type_or_value: '"rebooting-to-ro"'
    - item_type: preproc_def
      name: FU_CROS_EC_USB_DEVICE_FLAG_SPECIAL
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.h
      type_or_value: '"special"'
    - item_type: preproc_def
      name: FU_CROS_EC_USB_DEVICE_FLAG_CMD_BLOCK_DIGEST_REQUIRED
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.h
      type_or_value: '"cmd-block-digest-required"'
    structs:
    - fields:
      - name: parent_class
        type: FuUsbDeviceClass
      item_type: struct
      name: _FuCrosEcUsbDeviceClass
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.h
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - 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_cb
  - 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_FLUSH_TIMEOUT_MS
      pos:
        line_end: 19
        line_start: 18
        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: 20
        line_start: 19
        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: 21
        line_start: 20
        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: 22
        line_start: 21
        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: 24
        line_start: 23
        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: 25
        line_start: 24
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-usb-device.c
      type_or_value: '0xB007AB1F'
    structs:
    - fields:
      - 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: FuCrosEcUsbDevicePrivate
      pos:
        line_end: 37
        line_start: 26
        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: 45
        line_start: 42
        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:
    - item_type: preproc_def
      name: SHA256_DIGEST_LENGTH
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/cros-ec/fu-cros-ec-common.h
      type_or_value: '32'
    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: 17
        line_start: 12
        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_parse_pkts
  - 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_ensure_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: 20
        line_start: 19
        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: 21
        line_start: 20
        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: 17
        line_start: 13
        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_LOGITECH_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_LOGITECH_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-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LOGITECH_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: 18
        line_start: 17
        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: 19
        line_start: 18
        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: 20
        line_start: 19
        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: 21
        line_start: 20
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.h
      type_or_value: '"no-request-required"'
    structs: []
    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_pkt
  - fu_logitech_hidpp_bootloader_texas_write_pkts
  - 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_prepare_firmware
  - 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: 14
        line_start: 12
        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-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:
  - fu_logitech_rdfu_entity_get_model_id
  - fu_logitech_rdfu_entity_get_magic
  - fu_logitech_rdfu_entity_get_blocks
  - fu_logitech_rdfu_entity_add_block
  - fu_logitech_rdfu_entity_add_entry
  - fu_logitech_rdfu_entity_export
  - fu_logitech_rdfu_entity_finalize
  - fu_logitech_rdfu_entity_init
  - fu_logitech_rdfu_entity_class_init
  - fu_logitech_rdfu_entity_new
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_LOGITECH_RDFU_MAGIC_ASCII_SIZE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c
      type_or_value: '22 '
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: '*model_id'
        type: gchar
      - name: '*magic'
        type: GByteArray
      - name: '*blocks'
        type: GPtrArray
      item_type: struct
      name: _FuLogitechRdfuEntity
      pos:
        line_end: 17
        line_start: 12
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.c
    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-rdfu-entity.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LOGITECH_RDFU_ENTITY
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-rdfu-entity.h
      type_or_value: (fu_logitech_rdfu_entity_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: 14
        line_start: 12
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-runtime.c
    typedefs: []
    union: []
- function_names:
  - fu_logitech_rdfu_firmware_parse
  - 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'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuLogitechRdfuFirmware
      pos:
        line_end: 15
        line_start: 13
        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: 13
        line_start: 12
        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: 24
        line_start: 23
        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: 21
        line_start: 19
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-bootloader.h
    typedefs: []
    union: []
- function_names:
  - fu_logitech_hidpp_msg_to_string
  - fu_logitech_hidpp_msg_is_hidpp10_compat
  - fu_logitech_hidpp_msg_verify_swid
  - fu_logitech_hidpp_msg_get_payload_length
  - fu_logitech_hidpp_send
  - fu_logitech_hidpp_receive
  - fu_logitech_hidpp_transfer
  - fu_logitech_hidpp_msg_is_reply
  - fu_logitech_hidpp_msg_is_error
  - fu_logitech_hidpp_format_version
  source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HIDPP_REPORT_NOTIFICATION
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.c
      type_or_value: '0x01'
    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_pkt
  - fu_logitech_hidpp_bootloader_nordic_write_pkts
  - 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: []
  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: 13
        line_start: 12
        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: 15
        line_start: 14
        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: 16
        line_start: 15
        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: 17
        line_start: 16
        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: 18
        line_start: 17
        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: 19
        line_start: 18
        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: 20
        line_start: 19
        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: 23
        line_start: 22
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.h
      type_or_value: '30000'
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_DEVICE_POLLING_INTERVAL
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.h
      type_or_value: '30000'
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_RECEIVER_RUNTIME_POLLING_INTERVAL
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.h
      type_or_value: '5000'
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_VERSION_1
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_VERSION_2
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: FU_LOGITECH_HIDPP_VERSION_BLE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-common.h
      type_or_value: '0xFE'
    - 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-common.h
      type_or_value: '0x07'
    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: []
    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_peripheral
  - 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_slot
  - fu_logitech_hidpp_runtime_bolt_setup_internal
  - fu_logitech_hidpp_runtime_bolt_setup
  - fu_logitech_hidpp_runtime_bolt_set_progress
  - 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: 16
        line_start: 13
        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_LOGITECH_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:
  - 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_fetch_firmware_info
  - fu_logitech_hidpp_device_fetch_model_id
  - fu_logitech_hidpp_device_ensure_capabilities
  - fu_logitech_hidpp_device_ensure_battery_level_unified
  - fu_logitech_hidpp_device_ensure_battery_level_status
  - fu_logitech_hidpp_device_ensure_battery_level_mileage
  - fu_logitech_hidpp_device_ensure_battery_level
  - fu_logitech_hidpp_device_transfer_raw
  - 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_proxy_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_img
  - fu_logitech_hidpp_device_write_firmware_dfu
  - fu_logitech_hidpp_device_write_firmware_rdfu_entity
  - fu_logitech_hidpp_device_write_firmware_rdfu
  - fu_logitech_hidpp_device_write_firmware
  - fu_logitech_hidpp_device_reprobe_cb
  - 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_constructed
  - fu_logitech_hidpp_device_cleanup
  - fu_logitech_hidpp_device_from_json
  - fu_logitech_hidpp_device_add_json
  - 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: 43
        line_start: 42
        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: 45
        line_start: 44
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
      type_or_value: '10'
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - 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: model_pid
        type: guint16
      - 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: _FuLogitechHidppDevice
      pos:
        line_end: 35
        line_start: 16
        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: 40
        line_start: 37
        source_file: /src/fwupd/plugins/logitech-hidpp/fu-logitech-hidpp-device.c
    typedefs: []
    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 * FU_KB) '
    - 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_focal_touch_hid_device_to_string
  - fu_focal_touch_hid_device_probe
  - fu_focal_touch_hid_device_send
  - fu_focal_touch_hid_device_recv_raw
  - fu_focal_touch_hid_device_read_reg_cb
  - fu_focal_touch_hid_device_read_reg
  - fu_focal_touch_hid_device_write_bin_length
  - fu_focal_touch_hid_device_enter_upgrade_mode
  - fu_focal_touch_hid_device_check_current_state
  - fu_focal_touch_hid_device_wait_for_upgrade_ready_cb
  - fu_focal_touch_hid_device_wait_for_upgrade_ready
  - fu_focal_touch_hid_device_read_update_id_cb
  - fu_focal_touch_hid_device_read_update_id
  - fu_focal_touch_hid_device_erase_flash
  - fu_focal_touch_hid_device_send_data_cb
  - fu_focal_touch_hid_device_send_data
  - fu_focal_touch_hid_device_checksum_upgrade
  - fu_focal_touch_hid_device_setup
  - fu_focal_touch_hid_device_write_chunks
  - fu_focal_touch_hid_device_write_firmware
  - fu_focal_touch_hid_device_reload
  - fu_focal_touch_hid_device_detach_cb
  - fu_focal_touch_hid_device_detach
  - fu_focal_touch_hid_device_attach
  - fu_focal_touch_hid_device_set_progress
  - fu_focal_touch_hid_device_convert_version
  - fu_focal_touch_hid_device_set_quirk_kv
  - fu_focal_touch_hid_device_init
  - fu_focal_touch_hid_device_class_init
  source_file: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REPORT_SIZE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
      type_or_value: '64'
    - item_type: preproc_def
      name: MAX_USB_PACKET_SIZE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
      type_or_value: '56'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      - name: verify_id
        type: guint16
      item_type: struct
      name: _FuFocalTouchHidDevice
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.c
    typedefs: []
    union: []
- function_names:
  - fu_focal_touch_plugin_init
  - fu_focal_touch_plugin_constructed
  - fu_focal_touch_plugin_class_init
  source_file: /src/fwupd/plugins/focal-touch/fu-focal-touch-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuFocalTouchPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/focal-touch/fu-focal-touch-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FOCAL_TOUCH_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.h
      type_or_value: (fu_focal_touch_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/focal-touch/fu-focal-touch-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_focal_touch_firmware_get_checksum
  - fu_focal_touch_firmware_export
  - fu_focal_touch_firmware_compute_checksum_cb
  - fu_focal_touch_firmware_parse
  - fu_focal_touch_firmware_init
  - fu_focal_touch_firmware_class_init
  source_file: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: checksum
        type: guint32
      item_type: struct
      name: _FuFocalTouchFirmware
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/fwupd/plugins/focal-touch/fu-focal-touch-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FOCAL_TOUCH_HID_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/focal-touch/fu-focal-touch-hid-device.h
      type_or_value: (fu_focal_touch_hid_device_get_type())
    structs: []
    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: 13
        line_start: 11
        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_is_intel_spi
  - fu_pci_bcr_plugin_to_string
  - 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)
    - item_type: preproc_def
      name: FU_PCI_BCR_INTEL_VENDOR
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
      type_or_value: '0x8086'
    - item_type: preproc_def
      name: FU_PCI_BCR_SPI_CLASS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/pci-bcr/fu-pci-bcr-plugin.c
      type_or_value: '0x0c80'
    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: FuRts54hubVendorCmd
      - 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: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_RTS54HUB_RTD21XX_MERGEINFO
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.h
      type_or_value: (fu_rts54hub_rtd21xx_mergeinfo_get_type())
    structs: []
    typedefs: []
    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_cb
  - fu_rts54hub_rtd21xx_foreground_setup
  - 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: 23
        line_start: 22
        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: 24
        line_start: 23
        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: 16
        line_start: 14
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-foreground.c
    typedefs: []
    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_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: 23
        line_start: 22
        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: 24
        line_start: 23
        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: 26
        line_start: 25
        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: 27
        line_start: 26
        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: 16
        line_start: 14
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-background.c
    typedefs: []
    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_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: 16
        line_start: 14
        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: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_rts54hub_rtd21xx_device_to_string
  - fu_rts54hub_rtd21xx_device_set_quirk_kv
  - fu_rts54hub_rtd21xx_device_i2c_write
  - fu_rts54hub_rtd21xx_device_ddcci_write
  - fu_rts54hub_rtd21xx_device_i2c_read
  - fu_rts54hub_rtd21xx_device_ddcci_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_sync_parent_proxy
  - fu_rts54hub_rtd21xx_device_parent_notify_cb
  - fu_rts54hub_rtd21xx_device_constructed
  - 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:
    - item_type: preproc_def
      name: FU_RTS54HUB_DDCCI_BUFFER_MAXSZ
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
      type_or_value: '256'
    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: 18
        line_start: 14
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-device.c
    typedefs: []
    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: 13
        line_start: 12
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-device.h
      type_or_value: (fu_rts54hub_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_rts54hub_rtd21xx_mergeinfo_ddcci_mode
  - fu_rts54hub_rtd21xx_mergeinfo_check_ddcci
  - fu_rts54hub_rtd21xx_mergeinfo_ensure_version
  - fu_rts54hub_rtd21xx_mergeinfo_read_version
  - fu_rts54hub_rtd21xx_mergeinfo_write_version
  - fu_rts54hub_rtd21xx_mergeinfo_restore_state
  - fu_rts54hub_rtd21xx_mergeinfo_detach_cb
  - fu_rts54hub_rtd21xx_mergeinfo_detach
  - fu_rts54hub_rtd21xx_mergeinfo_attach
  - fu_rts54hub_rtd21xx_mergeinfo_exit_cb
  - fu_rts54hub_rtd21xx_mergeinfo_setup
  - fu_rts54hub_rtd21xx_mergeinfo_reload
  - fu_rts54hub_rtd21xx_mergeinfo_write_firmware
  - fu_rts54hub_rtd21xx_mergeinfo_convert_version
  - fu_rts54hub_rtd21xx_mergeinfo_init
  - fu_rts54hub_rtd21xx_mergeinfo_class_init
  source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_RTS54HUB_MERGEINFO_ADDR_DEBUG_TARGET
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
      type_or_value: '0x6A'
    - item_type: preproc_def
      name: FU_RTS54HUB_MERGEINFO_ADDR_DDCCI_TARGET
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
      type_or_value: '0x6E'
    - item_type: preproc_def
      name: FU_RTS54HUB_MERGEINFO_OPCODE_CHANGE_TO_DDCCI_MODE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
      type_or_value: '0x71'
    - item_type: preproc_def
      name: FU_RTS54HUB_MERGEINFO_SUB_ADDR_DDCCI_COMM
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
      type_or_value: '0x71'
    - item_type: preproc_def
      name: FU_RTS54HUB_MERGEINFO_SUB_ADDR_CHECK_ACK
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
      type_or_value: '0x23'
    - item_type: preproc_def
      name: FU_RTS54HUB_MERGEINFO_VERSION_BUFSZ
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
      type_or_value: '4'
    - item_type: preproc_def
      name: FU_RTS54HUB_MERGEINFO_DDCCI_CHECK_TARGET_VALUE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
      type_or_value: '0x90'
    structs:
    - fields:
      - name: parent_instance
        type: FuRts54hubRtd21xxDevice
      item_type: struct
      name: _FuRts54hubRtd21xxMergeinfo
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/fwupd/plugins/rts54hub/fu-rts54hub-rtd21xx-mergeinfo.c
    typedefs: []
    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: '2000'
    - 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_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_firmware
  - 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: 30
        line_start: 29
        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: 33
        line_start: 32
        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: 34
        line_start: 33
        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: 35
        line_start: 34
        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: 36
        line_start: 35
        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: 37
        line_start: 36
        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: 38
        line_start: 37
        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: 39
        line_start: 38
        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: 40
        line_start: 39
        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: 41
        line_start: 40
        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: 44
        line_start: 43
        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: 45
        line_start: 44
        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: 46
        line_start: 45
        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: 47
        line_start: 46
        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: 48
        line_start: 47
        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: 49
        line_start: 48
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
      type_or_value: '0x20200290'
    - item_type: preproc_def
      name: FLASH_SECTOR_ERASE_4K
      pos:
        line_end: 52
        line_start: 51
        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: 53
        line_start: 52
        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: 54
        line_start: 53
        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: 55
        line_start: 54
        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: 56
        line_start: 55
        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: 57
        line_start: 56
        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: 60
        line_start: 59
        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: 63
        line_start: 62
        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: 66
        line_start: 65
        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: 67
        line_start: 66
        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: 70
        line_start: 69
        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: 73
        line_start: 72
        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: FuDellDockMstBankAttributes
      pos:
        line_end: 78
        line_start: 74
        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: FuDellDockMstType
      item_type: struct
      name: _FuDellDockMst
      pos:
        line_end: 122
        line_start: 110
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-mst.c
    typedefs: []
    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: 27
        line_start: 26
        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: 28
        line_start: 27
        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: []
    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_firmware
  - 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: 23
        line_start: 22
        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: 25
        line_start: 24
        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: 26
        line_start: 25
        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: 27
        line_start: 26
        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: 28
        line_start: 27
        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: 29
        line_start: 28
        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: 30
        line_start: 29
        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: 31
        line_start: 30
        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: 32
        line_start: 31
        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: 34
        line_start: 33
        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: 36
        line_start: 35
        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: 38
        line_start: 37
        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: 39
        line_start: 38
        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: 40
        line_start: 39
        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: 75
        line_start: 71
        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: 83
        line_start: 77
        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: 91
        line_start: 85
        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: 117
        line_start: 104
        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: 126
        line_start: 119
        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: 142
        line_start: 128
        source_file: /src/fwupd/plugins/dell-dock/fu-dell-dock-ec.c
    typedefs: []
    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: 24
        line_start: 23
        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: 33
        line_start: 32
        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: 34
        line_start: 33
        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: 37
        line_start: 36
        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: 44
        line_start: 38
        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/novatek-ts/fu-novatek-ts-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_NOVATEK_TS_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.h
      type_or_value: (fu_novatek_ts_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_novatek_ts_plugin_constructed
  - fu_novatek_ts_plugin_class_init
  - fu_novatek_ts_plugin_init
  source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuNovatekTsPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_novatek_ts_firmware_parse
  - fu_novatek_ts_firmware_init
  - fu_novatek_ts_firmware_class_init
  source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FW_BIN_END_FLAG_STR
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-firmware.c
      type_or_value: '"NVT"'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuNovatekTsFirmware
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_NOVATEK_TS_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-firmware.h
      type_or_value: (fu_novatek_ts_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-plugin.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_NOVATEK_TS_PLUGIN
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-plugin.h
      type_or_value: (fu_novatek_ts_plugin_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_novatek_ts_device_to_string
  - fu_novatek_ts_device_hid_read_dev
  - fu_novatek_ts_device_hid_write_dev
  - fu_novatek_ts_device_hid_read
  - fu_novatek_ts_device_hid_write
  - fu_novatek_ts_device_gcm_xfer_tx_chunk
  - fu_novatek_ts_device_gcm_xfer_rx_chunk
  - fu_novatek_ts_device_wait_cmd_issue_cb
  - fu_novatek_ts_device_retry_busy_cb
  - fu_novatek_ts_device_gcm_xfer
  - fu_novatek_ts_device_gcm_write_enable
  - fu_novatek_ts_device_gcm_read_status
  - fu_novatek_ts_device_wait_status_ready_cb
  - fu_novatek_ts_device_wait_reset_state_cb
  - fu_novatek_ts_device_get_fw_ver_cb
  - fu_novatek_ts_device_read_flash_data_cb
  - fu_novatek_ts_device_gcm_sector_erase
  - fu_novatek_ts_device_page_program_gcm
  - fu_novatek_ts_device_check_flash_checksum_cb
  - fu_novatek_ts_device_check_flash_checksum
  - fu_novatek_ts_device_page_program_retry_cb
  - fu_novatek_ts_device_gcm_get_checksum
  - fu_novatek_ts_device_gcm_switch_enable_cb
  - fu_novatek_ts_device_gcm_switch_enable
  - fu_novatek_ts_device_gcm_resume_pd
  - fu_novatek_ts_device_gcm_erase_flash
  - fu_novatek_ts_device_gcm_write_flash
  - fu_novatek_ts_device_gcm_verify_flash
  - fu_novatek_ts_device_gcm_read_flash_mid_did
  - fu_novatek_ts_device_read_start_chip_id
  - fu_novatek_ts_device_read_start_chip_id_cb
  - fu_novatek_ts_device_bootloader_reset
  - fu_novatek_ts_device_sw_reset_and_idle
  - fu_novatek_ts_device_stop_crc_reboot
  - fu_novatek_ts_device_update_firmware_reset
  - fu_novatek_ts_device_probe
  - fu_novatek_ts_device_clear_fw_reset_state
  - fu_novatek_ts_device_check_fw_reset_state
  - fu_novatek_ts_device_ensure_fw_ver
  - fu_novatek_ts_device_check_start_ready
  - fu_novatek_ts_device_gcm_read_flash_data
  - fu_novatek_ts_device_ensure_flash_pid
  - fu_novatek_ts_device_setup
  - fu_novatek_ts_device_convert_version
  - fu_novatek_ts_device_update_firmware_cb
  - fu_novatek_ts_device_write_firmware
  - fu_novatek_ts_device_set_progress
  - fu_novatek_ts_device_init
  - fu_novatek_ts_device_constructed
  - fu_novatek_ts_device_finalize
  - fu_novatek_ts_device_class_init
  source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NVT_TS_REPORT_ID
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
      type_or_value: '0x0B'
    - item_type: preproc_def
      name: NVT_TRANSFER_LEN
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
      type_or_value: '256'
    - item_type: preproc_def
      name: FLASH_PAGE_SIZE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
      type_or_value: '256'
    - item_type: preproc_def
      name: FLASH_SECTOR_SIZE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
      type_or_value: (1024 * 4)
    - item_type: preproc_def
      name: FU_NOVATEK_TS_CODE_ENABLE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
      type_or_value: '0x55FFAA'
    - item_type: preproc_def
      name: FU_NOVATEK_TS_CODE_DISABLE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
      type_or_value: '0xAA55FF'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      - name: '*cfi_device'
        type: FuCfiDevice
      - name: chip_ver_trim_addr
        type: guint32
      - name: swrst_sif_addr
        type: guint32
      - name: event_buf_cmd_addr
        type: guint32
      - name: event_buf_hs_sub_cmd_addr
        type: guint32
      - name: event_buf_reset_state_addr
        type: guint32
      - name: event_map_fwinfo_addr
        type: guint32
      - name: read_flash_checksum_addr
        type: guint32
      - name: rw_flash_data_addr
        type: guint32
      - name: enb_casc_addr
        type: guint32
      - name: hid_i2c_eng_addr
        type: guint32
      - name: gcm_code_addr
        type: guint32
      - name: gcm_flag_addr
        type: guint32
      - name: flash_cmd_addr
        type: guint32
      - name: flash_cmd_issue_addr
        type: guint32
      - name: flash_cksum_status_addr
        type: guint32
      - name: bld_spe_pups_addr
        type: guint32
      - name: flash_start_addr
        type: guint32
      - name: flash_pid_addr
        type: guint32
      item_type: struct
      name: _FuNovatekTsDevice
      pos:
        line_end: 37
        line_start: 12
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    - fields:
      - name: flash_cmd
        type: guint8
      - name: flash_addr
        type: guint32
      - name: flash_checksum
        type: guint16
      - name: flash_addr_len
        type: guint8
      - name: pem_byte_len
        type: guint8
      - name: dummy_byte_len
        type: guint8
      - name: '*tx_buf'
        type: guint8
      - name: tx_len
        type: guint16
      - name: '*rx_buf'
        type: guint8
      - name: rx_len
        type: guint16
      item_type: struct
      name: FuNovatekTsGcmXfer
      pos:
        line_end: 97
        line_start: 86
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    - fields:
      - name: addr
        type: guint32
      - name: '*buf'
        type: GByteArray
      - name: flash_cmd
        type: guint8
      item_type: struct
      name: FuNovatekTsCmdIssueCtx
      pos:
        line_end: 310
        line_start: 306
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    - fields:
      - name: state
        type: guint8
      - name: last_state
        type: guint8
      item_type: struct
      name: FuNovatekTsResetStateCtx
      pos:
        line_end: 498
        line_start: 495
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    - fields:
      - name: buf[2]
        type: guint8
      item_type: struct
      name: FuNovatekTsFwVerCtx
      pos:
        line_end: 518
        line_start: 516
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    - fields:
      - name: flash_addr
        type: guint32
      - name: bufsz
        type: guint16
      - name: '*buf'
        type: guint8
      item_type: struct
      name: FuNovatekTsReadFlashCtx
      pos:
        line_end: 538
        line_start: 534
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    - fields:
      - name: flash_cksum_status_addr
        type: guint32
      - name: '*buf'
        type: guint8
      - name: allow_retry_once
        type: gboolean
      - name: '*retry_needed'
        type: gboolean
      - name: checksum_error
        type: gboolean
      item_type: struct
      name: FuNovatekTsChecksumCtx
      pos:
        line_end: 595
        line_start: 589
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    - fields:
      - name: '*self'
        type: FuNovatekTsDevice
      - name: '*chk'
        type: FuChunk
      - name: flash_address
        type: guint32
      - name: flash_cksum_status_addr
        type: guint32
      - name: '*buf'
        type: guint8
      - name: allow_retry_once
        type: gboolean
      item_type: struct
      name: FuNovatekTsPageProgramCtx
      pos:
        line_end: 604
        line_start: 597
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.c
    - fields:
      - name: '*progress'
        type: FuProgress
      - name: '*blob'
        type: GBytes
      item_type: struct
      name: FuNovatekTsUpdateCtx
      pos:
        line_end: 1454
        line_start: 1451
        source_file: /src/fwupd/plugins/novatek-ts/fu-novatek-ts-device.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: FuFirmware
      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: FU_MB
    - 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 * FU_KB)
    - 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 * FU_KB)
    - 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 * FU_KB)
    - 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 * FU_KB)
    - 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 * FU_KB)
    - 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 * FU_KB)
    - 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 * FU_KB)
    - 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 * FU_KB) + 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: FuFirmware
      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_convert_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
      item_type: struct
      name: FuGoodixtpFirmwarePrivate
      pos:
        line_end: 12
        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: 20
        line_start: 18
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_goodixtp_brlb_config_parse
  - fu_goodixtp_brlb_config_init
  - fu_goodixtp_brlb_config_class_init
  - fu_goodixtp_brlb_config_new
  source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuGoodixtpBrlbConfig
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.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-config.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GOODIXTP_BRLB_CONFIG
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/goodix-tp/fu-goodixtp-brlb-config.h
      type_or_value: (fu_goodixtp_brlb_config_get_type())
    structs: []
    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_config
  - 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: 20
        line_start: 19
        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: 15
        line_start: 13
        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_get_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_lenovo_thinklmi_bootorder_locked_func
  - fu_lenovo_thinklmi_bootorder_unlocked_func
  - fu_lenovo_thinklmi_reboot_pending_func
  - 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
  - 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_set_progress
  - 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: 18
        line_start: 13
        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_set_progress
  - 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:
  - 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_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_check_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_version
  - fu_igsc_device_reconnect_cb
  - fu_igsc_device_wait_heci_finish_cb
  - fu_igsc_device_write_blob
  - fu_igsc_device_write_firmware
  - 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_FLAG_HAS_SKU
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '"has-sku"'
    - 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\t"
    - 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: HECI1_CSE_FS_MODE_MASK
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '0x3'
    - item_type: preproc_def
      name: HECI1_CSE_FS_CP_MODE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '0x3'
    - item_type: preproc_def
      name: HECI1_CSE_FS_BACKGROUND_OPERATION_NEEDED_BIT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: (1 << 13)
    - item_type: preproc_def
      name: GSC_FWU_GET_CONFIG_FORMAT_VERSION
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.c
      type_or_value: '0x1'
    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: 14
        line_start: 13
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.h
      type_or_value: (fu_igsc_device_get_type())
    - item_type: preproc_def
      name: FU_IGSC_DEVICE_FLAG_IS_WEDGED
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-device.h
      type_or_value: '"is-wedged"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_igsc_aux_firmware_export
  - fu_igsc_aux_firmware_match_device
  - fu_igsc_aux_firmware_get_major_version
  - fu_igsc_aux_firmware_get_major_vcn
  - fu_igsc_aux_firmware_parse_info
  - 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: data_arb_svn
        type: guint32
      - name: '*device_infos'
        type: GPtrArray
      item_type: struct
      name: _FuIgscAuxFirmware
      pos:
        line_end: 19
        line_start: 12
        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_set_pci_power_policy
  - fu_igsc_plugin_composite_prepare
  - fu_igsc_plugin_composite_cleanup
  - fu_igsc_plugin_constructed
  - fu_igsc_plugin_class_init
  source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_IGSC_PLUGIN_POWER_WRITE_TIMEOUT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c
      type_or_value: '1500 '
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuIgscPlugin
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_igsc_fwdata_device_info_export_one
  - fu_igsc_fwdata_device_info_export
  - fu_igsc_fwdata_device_info_parse_device_type
  - fu_igsc_fwdata_device_info_parse_device_id_array
  - fu_igsc_fwdata_device_info_parse
  - fu_igsc_heci_check_status
  source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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_get_arb_svn
  - fu_igsc_code_firmware_parse_imgi
  - fu_igsc_code_firmware_parse
  - fu_igsc_code_firmware_init
  - fu_igsc_code_firmware_class_init
  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: 21
        line_start: 20
        source_file: /src/fwupd/plugins/intel-gsc/fu-igsc-code-firmware.c
      type_or_value: '2'
    structs:
    - fields:
      - name: parent_instance
        type: FuIfwiFptFirmware
      - name: hw_sku
        type: guint32
      - name: arb_svn
        type: guint32
      item_type: struct
      name: _FuIgscCodeFirmware
      pos:
        line_end: 16
        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:
  - fu_intel_me_pci_plugin_func
  - main
  source_file: /src/fwupd/plugins/intel-me-pci/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_intel_me_pci_plugin_ensure_version
  - fu_intel_me_pci_plugin_backend_device_added
  - fu_intel_me_pci_plugin_add_security_attrs
  - fu_intel_me_pci_plugin_init
  - fu_intel_me_pci_plugin_constructed
  - fu_intel_me_pci_plugin_class_init
  source_file: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuIntelMePciPlugin
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_INTEL_ME_PCI_PLUGIN
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/intel-me-pci/fu-intel-me-pci-plugin.h
      type_or_value: (fu_intel_me_pci_plugin_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_send
  - fu_hughski_colorhug_device_recv
  - fu_hughski_colorhug_device_msg
  - fu_hughski_colorhug_device_fuzzer_test_input
  - fu_hughski_colorhug_device_fuzzer_build_example
  - fu_hughski_colorhug_device_fuzzer_iface_init
  - 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_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_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_capsule_build_app_basename
  - fu_uefi_get_built_app_path
  - fu_uefi_get_framebuffer_size
  - fu_uefi_read_file_as_uint64
  - fu_uefi_esp_target_verify
  - 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: 111
        line_start: 110
        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_set_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_build_efi_path
  - 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: FU_MB
    structs:
    - fields:
      - name: '*esp'
        type: FuVolume
      - name: '*esp_locker'
        type: FuVolumeLocker
      - 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_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED
      pos:
        line_end: 16
        line_start: 15
        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_get_backend
  - 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_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[] = {\n\t    {640, 480}, /* matching the sizes in po/make-images
        */\n\t    {800, 600},\n\t    {1024, 768},\n\t    {1920, 1080},\n\t    {3840,
        2160},\n\t    {5120, 2880},\n\t    {5688, 3200},\n\t    {7680, 4320},\n\t}"
      pos:
        line_end: 483
        line_start: 480
        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_capsule_fake_esp_new
  - fu_uefi_capsule_no_coalesce_func
  - fu_uefi_capsule_setup_indications
  - fu_uefi_capsule_no_cod_func
  - fu_uefi_capsule_no_flashes_func
  - fu_uefi_capsule_esp_file_exists
  - fu_uefi_capsule_nvram_func
  - fu_uefi_capsule_cod_func
  - fu_uefi_capsule_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: 280
        line_start: 279
        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: 14
        line_start: 13
        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: 25
        line_start: 24
        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_LEGACY_BOOTMGR_DESC
      pos:
        line_end: 26
        line_start: 25
        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: 27
        line_start: 26
        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: 28
        line_start: 27
        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: 29
        line_start: 28
        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: 30
        line_start: 29
        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: 31
        line_start: 30
        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: 32
        line_start: 31
        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: 33
        line_start: 32
        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: 34
        line_start: 33
        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: 35
        line_start: 34
        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: 36
        line_start: 35
        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: 22
        line_start: 20
        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_finalize
  - 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: '*pstore'
        type: FuPathStore
      - name: xoffset
        type: guint32
      - name: yoffset
        type: guint32
      - name: width
        type: guint32
      - name: height
        type: guint32
      item_type: struct
      name: _FuUefiBgrt
      pos:
        line_end: 19
        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_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: []
    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_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: 17
        line_start: 16
        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: 18
        line_start: 17
        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: 19
        line_start: 18
        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: 22
        line_start: 20
        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: (1 * FU_MB)
    - 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/devlink/fu-devlink-netlink.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_DEVLINK_NETLINK_BUF_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/devlink/fu-devlink-netlink.h
      type_or_value: '(MNL_SOCKET_BUFFER_SIZE > 0 ? MNL_SOCKET_BUFFER_SIZE : 0)'
    structs:
    - fields:
      - name: '*nl'
        type: struct mnl_socket
      - name: '*buf'
        type: gchar
      - name: family_id
        type: guint32
      - name: config_group_id
        type: guint32
      - name: '*device'
        type: FuDevice
      - name: is_emulated
        type: gboolean
      - name: save_events
        type: gboolean
      - name: pipe_fds[2]
        type: gint
      item_type: struct
      name: FuDevlinkGenSocket
      pos:
        line_end: 25
        line_start: 16
        source_file: /src/fwupd/plugins/devlink/fu-devlink-netlink.h
    typedefs: []
    union: []
- function_names:
  - fu_devlink_plugin_get_serial_number_cb
  - fu_devlink_plugin_get_serial_number
  - fu_devlink_plugin_device_added_from_netlink
  - fu_devlink_plugin_device_removed_from_netlink
  - fu_devlink_plugin_process_message_cb
  - fu_devlink_plugin_netlink_cb
  - fu_devlink_plugin_setup_netlink
  - fu_devlink_plugin_enumerate_cb
  - fu_devlink_plugin_enumerate_devices
  - fu_devlink_plugin_startup
  - fu_devlink_plugin_coldplug
  - fu_devlink_plugin_finalize
  - fu_devlink_plugin_constructed
  - fu_devlink_plugin_init
  - fu_devlink_plugin_class_init
  source_file: /src/fwupd/plugins/devlink/fu-devlink-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: '*nlg'
        type: FuDevlinkGenSocket
      - name: '*netlink_source'
        type: GSource
      - name: '*backend'
        type: FuDevlinkBackend
      item_type: struct
      name: _FuDevlinkPlugin
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/fwupd/plugins/devlink/fu-devlink-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_devlink_device_version_info_free
  - fu_devlink_device_populate_attrs_map
  - mnl_attr_for_each
  - fu_devlink_device_needs_activation_cb
  - fu_devlink_device_needs_activation
  - fu_devlink_device_ensure_activate
  - fu_devlink_device_flash_mon_cb
  - fu_devlink_device_flash_send
  - fu_devlink_device_flash_send_thread
  - fu_devlink_device_flash_mon_netlink_cb
  - fu_devlink_device_flash
  - fu_devlink_device_write_firmware_component
  - fu_devlink_device_get_component_by_logical_id
  - fu_devlink_device_add_component_instance_strs
  - fu_devlink_device_update_component_cb
  - fu_devlink_device_info_cb
  - fu_devlink_device_get_info
  - fu_devlink_device_to_string
  - fu_devlink_device_setup
  - fu_devlink_device_get_bus_name
  - fu_devlink_device_set_bus_name
  - fu_devlink_device_set_dev_name
  - fu_devlink_device_new
  - fu_devlink_device_open
  - fu_devlink_device_close
  - fu_devlink_device_search_path_locker_new
  - fu_devlink_device_prepare
  - fu_devlink_device_cleanup
  - fu_devlink_device_add_json
  - fu_devlink_device_from_json
  - fu_devlink_device_incorporate
  - fu_devlink_device_add_fixed_versions
  - fu_devlink_device_set_quirk_kv
  - fu_devlink_device_init
  - fu_devlink_device_finalize
  - fu_devlink_device_class_init
  source_file: /src/fwupd/plugins/devlink/fu-devlink-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: '*bus_name'
        type: gchar
      - name: '*dev_name'
        type: gchar
      - name: '*nlg'
        type: FuDevlinkGenSocket
      - name: '*search_path_locker'
        type: FuKernelSearchPathLocker
      - name: '*fixed_versions'
        type: GPtrArray
      item_type: struct
      name: _FuDevlinkDevice
      pos:
        line_end: 22
        line_start: 15
        source_file: /src/fwupd/plugins/devlink/fu-devlink-device.c
    - fields:
      - name: '*fixed'
        type: gchar
      - name: '*running'
        type: gchar
      - name: '*stored'
        type: gchar
      item_type: struct
      name: FuDevlinkVersionInfo
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/fwupd/plugins/devlink/fu-devlink-device.c
    - fields:
      - name: '*component_name'
        type: gchar
      - name: '*needs_activation'
        type: gboolean
      item_type: struct
      name: FuDevlinkDeviceNeedsActivationHelper
      pos:
        line_end: 103
        line_start: 100
        source_file: /src/fwupd/plugins/devlink/fu-devlink-device.c
    - fields:
      - name: '*progress'
        type: FuProgress
      - name: '*self'
        type: FuDevlinkDevice
      - name: '*nlg'
        type: FuDevlinkGenSocket
      item_type: struct
      name: FuDevlinkFlashMonHelper
      pos:
        line_end: 197
        line_start: 193
        source_file: /src/fwupd/plugins/devlink/fu-devlink-device.c
    - fields:
      - name: '*self'
        type: FuDevlinkDevice
      - name: '*component_name'
        type: gchar
      - name: '*filename'
        type: gchar
      - name: '**error'
        type: GError
      - name: '*loop'
        type: GMainLoop
      item_type: struct
      name: FuDevlinkFlashSendHelper
      pos:
        line_end: 206
        line_start: 200
        source_file: /src/fwupd/plugins/devlink/fu-devlink-device.c
    - fields:
      - name: '*self'
        type: FuDevlinkDevice
      - name: '*version_table'
        type: GHashTable
      item_type: struct
      name: FuDevlinkDeviceUpdateComponentHelper
      pos:
        line_end: 498
        line_start: 495
        source_file: /src/fwupd/plugins/devlink/fu-devlink-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/devlink/fu-devlink-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DEVLINK_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/devlink/fu-devlink-device.h
      type_or_value: (fu_devlink_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_devlink_backend_create_pci_parent
  - fu_devlink_backend_create_netdevsim_parent
  - fu_devlink_backend_device_added
  - fu_devlink_backend_device_removed
  - fu_devlink_backend_init
  - fu_devlink_backend_class_init
  - fu_devlink_backend_new
  source_file: /src/fwupd/plugins/devlink/fu-devlink-backend.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuBackend
      item_type: struct
      name: _FuDevlinkBackend
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/devlink/fu-devlink-backend.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/devlink/fu-devlink-component.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DEVLINK_COMPONENT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/devlink/fu-devlink-component.h
      type_or_value: (fu_devlink_component_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_devlink_netlink_msg_prepare
  - fu_devlink_netlink_nlmsgerr_attr_cb
  - fu_devlink_netlink_error_cb_extack
  - fu_devlink_netlink_error_cb
  - fu_devlink_netlink_noop_cb
  - fu_devlink_netlink_done_cb
  - fu_devlink_netlink_data_cb
  - fu_devlink_netlink_msg_cb_run
  - fu_devlink_netlink_msg_run
  - fu_devlink_netlink_event_id_msg_cb
  - fu_devlink_netlink_get_event_id
  - fu_devlink_netlink_msg_recv_run
  - fu_devlink_netlink_msg_send_recv
  - fu_devlink_netlink_msg_send
  - fu_devlink_netlink_genl_ctrl_attr_cb
  - fu_devlink_netlink_genl_mcast_group_attr_cb
  - fu_devlink_netlink_fu_devlink_netlink_genl_ensure_family_cb
  - mnl_attr_for_each_nested
  - fu_devlink_netlink_genl_ensure_family
  - fu_devlink_netlink_gen_socket_open
  - fu_devlink_netlink_gen_socket_close
  - fu_devlink_netlink_gen_socket_get_fd
  - fu_devlink_netlink_gen_socket_get_buf
  - fu_devlink_netlink_cmd_prepare
  - fu_devlink_netlink_mcast_group_subscribe
  - fu_devlink_netlink_attr_cb
  source_file: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: user_data
        type: gpointer
      - name: user_cb
        type: mnl_cb_t
      - name: '**error'
        type: GError
      item_type: struct
      name: FuDevlinkCbHelper
      pos:
        line_end: 56
        line_start: 52
        source_file: /src/fwupd/plugins/devlink/fu-devlink-netlink.c
    typedefs: []
    union: []
- function_names:
  - fu_devlink_file_write_helper
  - fu_devlink_netdevsim_sysfs_write
  - fu_devlink_netdevsim_debugfs_write
  - fu_devlink_netdevsim_cleanup
  - fu_devlink_netdevsim_new
  - fu_devlink_plugin_flash_func
  - main
  source_file: /src/fwupd/plugins/devlink/fu-self-test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_DEVLINK_NETDEVSIM_FW_UPDATE_FLASH_CHUNK_TIME_MS
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/fwupd/plugins/devlink/fu-self-test.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: FU_DEVLINK_NETDEVSIM_DEVICE_ID
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/fwupd/plugins/devlink/fu-self-test.c
      type_or_value: '472187'
    - item_type: preproc_def
      name: FU_DEVLINK_NETDEVSIM_DEVICE_NAME
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/fwupd/plugins/devlink/fu-self-test.c
      type_or_value: '"netdevsim" G_STRINGIFY(FU_DEVLINK_NETDEVSIM_DEVICE_ID)'
    structs:
    - fields:
      - name: '*pstore'
        type: FuPathStore
      - name: device_id
        type: guint
      item_type: struct
      name: FuDevlinkNetdevsim
      pos:
        line_end: 17
        line_start: 14
        source_file: /src/fwupd/plugins/devlink/fu-self-test.c
    typedefs: []
    union: []
- function_names:
  - fu_devlink_component_write_firmware
  - fu_devlink_component_add_instance_keys
  - fu_devlink_component_probe
  - fu_devlink_component_reload
  - fu_devlink_component_activate
  - fu_devlink_component_prepare
  - fu_devlink_component_cleanup
  - fu_devlink_component_set_progress
  - fu_devlink_component_new
  - fu_devlink_component_init
  - fu_devlink_component_finalize
  - fu_devlink_component_class_init
  source_file: /src/fwupd/plugins/devlink/fu-devlink-component.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_DEVLINK_DEVICE_FLAG_OMIT_COMPONENT_NAME
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/devlink/fu-devlink-component.c
      type_or_value: '"omit-component-name"'
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: '*instance_keys'
        type: GPtrArray
      item_type: struct
      name: _FuDevlinkComponent
      pos:
        line_end: 24
        line_start: 21
        source_file: /src/fwupd/plugins/devlink/fu-devlink-component.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/devlink/fu-devlink-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/devlink/fu-devlink-backend.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_DEVLINK_BACKEND
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/devlink/fu-devlink-backend.h
      type_or_value: (fu_devlink_backend_get_type())
    structs: []
    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
  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: FuFirmware
      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_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_cb
  - fu_mediatek_scaler_device_write_firmware_impl
  - fu_mediatek_scaler_device_write_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: (1 * FU_MB)
    - 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_check_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_cb
  - 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_check_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
    - fields:
      - name: section
        type: FuCcgxHpiRegSection
      - name: '*event_array'
        type: FuCcgxHpiEvent
      item_type: struct
      name: FuCcgxHpiDeviceEventHelper
      pos:
        line_end: 703
        line_start: 700
        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
  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: FuFirmware
      - 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: 296
        line_start: 293
        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_check_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: 16
        line_start: 15
        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: 18
        line_start: 17
        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: 19
        line_start: 18
        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: 20
        line_start: 19
        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: 21
        line_start: 20
        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: 22
        line_start: 21
        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: 23
        line_start: 22
        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: 24
        line_start: 23
        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: 25
        line_start: 24
        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: 26
        line_start: 25
        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: 27
        line_start: 26
        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: 28
        line_start: 27
        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: 29
        line_start: 28
        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: 30
        line_start: 29
        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: 31
        line_start: 30
        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: 33
        line_start: 32
        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: 36
        line_start: 35
        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: 39
        line_start: 38
        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: 59
        line_start: 58
        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: 60
        line_start: 59
        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: 61
        line_start: 60
        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: 62
        line_start: 61
        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: 63
        line_start: 62
        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: 64
        line_start: 63
        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: 65
        line_start: 64
        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: 66
        line_start: 65
        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: 67
        line_start: 66
        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: 68
        line_start: 67
        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: 69
        line_start: 68
        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: 70
        line_start: 69
        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: 71
        line_start: 70
        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: 72
        line_start: 71
        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: 74
        line_start: 73
        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: 75
        line_start: 74
        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: 76
        line_start: 75
        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: 77
        line_start: 76
        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: 78
        line_start: 77
        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: 79
        line_start: 78
        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: 80
        line_start: 79
        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: 81
        line_start: 80
        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: 82
        line_start: 81
        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: 83
        line_start: 82
        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: 84
        line_start: 83
        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: 85
        line_start: 84
        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: 87
        line_start: 86
        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: 88
        line_start: 87
        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: 89
        line_start: 88
        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: 90
        line_start: 89
        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: 92
        line_start: 91
        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: 93
        line_start: 92
        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: 94
        line_start: 93
        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: 95
        line_start: 94
        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: 96
        line_start: 95
        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: 97
        line_start: 96
        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: FuCcgxI2cConfig
      pos:
        line_end: 50
        line_start: 40
        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: FuCcgxHpiEvent
      pos:
        line_end: 56
        line_start: 52
        source_file: /src/fwupd/plugins/ccgx/fu-ccgx-hpi-common.h
    typedefs: []
    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 * FU_KB) '
    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 * FU_KB) '
    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: []
  source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LENOVO_ACCESSORY_BLE_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.h
      type_or_value: (fu_lenovo_accessory_ble_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LENOVO_ACCESSORY_IMPL
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.h
      type_or_value: (fu_lenovo_accessory_impl_get_type())
    structs:
    - fields:
      - name: g_iface
        type: GTypeInterface
      - name: '*(*read)(FuLenovoAccessoryImpl *self, GError **error)'
        type: GByteArray
      - name: (*write)(FuLenovoAccessoryImpl *self, GByteArray *buf, GError **error)
        type: gboolean
      - name: '*(*process)(FuLenovoAccessoryImpl *self, GByteArray *buf, GError **error)'
        type: GByteArray
      item_type: struct
      name: _FuLenovoAccessoryImplInterface
      pos:
        line_end: 25
        line_start: 20
        source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.h
    typedefs: []
    union: []
- function_names:
  - fu_lenovo_accessory_hid_read
  - fu_lenovo_accessory_hid_write
  - fu_lenovo_accessory_hid_poll_cb
  - fu_lenovo_accessory_hid_process
  source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_LENOVO_ACCESSORY_HID_BUFSZ
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c
      type_or_value: '65'
    - item_type: preproc_def
      name: FU_LENOVO_ACCESSORY_HID_REPORT_ID
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.c
      type_or_value: '0x00'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_lenovo_accessory_hid_bootloader_write_files
  - fu_lenovo_accessory_hid_bootloader_attach
  - fu_lenovo_accessory_hid_bootloader_setup
  - fu_lenovo_accessory_hid_bootloader_write_firmware
  - fu_lenovo_accessory_hid_bootloader_init
  - fu_lenovo_accessory_hid_bootloader_impl_iface_init
  - fu_lenovo_accessory_hid_bootloader_class_init
  source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      item_type: struct
      name: _FuLenovoAccessoryHidBootloader
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LENOVO_ACCESSORY_HID_BOOTLOADER
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-bootloader.h
      type_or_value: (fu_lenovo_accessory_hid_bootloader_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_LENOVO_ACCESSORY_HID_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.h
      type_or_value: (fu_lenovo_accessory_hid_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_lenovo_accessory_impl_default_init
  - fu_lenovo_accessory_impl_read
  - fu_lenovo_accessory_impl_write
  - fu_lenovo_accessory_impl_process
  - fu_lenovo_accessory_impl_get_fwversion
  - fu_lenovo_accessory_impl_get_mode
  - fu_lenovo_accessory_impl_set_mode
  - fu_lenovo_accessory_impl_dfu_exit
  - fu_lenovo_accessory_impl_dfu_attribute
  - fu_lenovo_accessory_impl_dfu_prepare
  - fu_lenovo_accessory_impl_dfu_file
  - fu_lenovo_accessory_impl_dfu_crc
  - fu_lenovo_accessory_impl_dfu_entry
  source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-impl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_lenovo_accessory_hid_device_setup
  - fu_lenovo_accessory_hid_device_detach
  - fu_lenovo_accessory_hid_device_set_progress
  - fu_lenovo_accessory_hid_device_impl_iface_init
  - fu_lenovo_accessory_hid_device_class_init
  - fu_lenovo_accessory_hid_device_init
  source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      item_type: struct
      name: _FuLenovoAccessoryHidDevice
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-hid-device.c
    typedefs: []
    union: []
- function_names:
  - fu_lenovo_accessory_ble_device_write_files
  - fu_lenovo_accessory_ble_device_write_firmware
  - fu_lenovo_accessory_ble_device_attach
  - fu_lenovo_accessory_ble_device_setup
  - fu_lenovo_accessory_ble_device_set_progress
  - fu_lenovo_accessory_ble_device_read
  - fu_lenovo_accessory_ble_device_write
  - fu_lenovo_accessory_ble_device_poll_cb
  - fu_lenovo_accessory_ble_device_process
  - fu_lenovo_accessory_ble_device_init
  - fu_lenovo_accessory_ble_device_impl_iface_init
  - fu_lenovo_accessory_ble_device_class_init
  source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UUID_WRITE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c
      type_or_value: '"c1d02501-2d1f-400a-95d2-6a2f7bca0c25"'
    - item_type: preproc_def
      name: UUID_READ
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c
      type_or_value: '"c1d02502-2d1f-400a-95d2-6a2f7bca0c25"'
    structs:
    - fields:
      - name: parent_instance
        type: FuBluezDevice
      item_type: struct
      name: _FuLenovoAccessoryBleDevice
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-ble-device.c
    typedefs: []
    union: []
- function_names:
  - fu_lenovo_accessory_plugin_init
  - fu_lenovo_accessory_plugin_constructed
  - fu_lenovo_accessory_plugin_class_init
  source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuLenovoAccessoryPlugin
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/lenovo-accessory/fu-lenovo-accessory-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ilitek_its_device_to_string
  - fu_ilitek_its_device_read_cb
  - fu_ilitek_its_device_send_cmd
  - fu_ilitek_its_device_send_cmd_then_wake_ack
  - fu_ilitek_its_device_send_long_cmd_then_wake_ack
  - fu_ilitek_its_device_recalculate_crc
  - fu_ilitek_its_device_get_block_crc
  - fu_ilitek_its_device_flash_enable
  - fu_ilitek_its_device_set_ctrl_mode
  - fu_ilitek_its_device_enable_tde
  - fu_ilitek_its_device_disable_tde
  - fu_ilitek_its_device_get_fwid
  - fu_ilitek_its_device_get_sensor_id
  - fu_ilitek_its_device_ensure_protocol_version
  - fu_ilitek_its_device_ensure_fw_version
  - fu_ilitek_its_device_ensure_ic_mode
  - fu_ilitek_its_device_ensure_ic_name_old
  - fu_ilitek_its_device_ensure_ic_name
  - fu_ilitek_its_device_io_channel_write
  - fu_ilitek_its_device_get_backend_parent
  - fu_ilitek_its_device_rebind_driver
  - fu_ilitek_its_device_switch_mode
  - fu_ilitek_its_device_switch_mode_cb
  - fu_ilitek_its_device_detach
  - fu_ilitek_its_device_attach
  - fu_ilitek_its_device_probe
  - fu_ilitek_its_device_register_drm_device
  - fu_ilitek_its_device_setup
  - fu_ilitek_its_device_check_firmware
  - fu_ilitek_its_device_write_block
  - fu_ilitek_its_device_write_firmware
  - fu_ilitek_its_device_set_quirk_kv
  - fu_ilitek_its_device_set_progress
  - fu_ilitek_its_device_convert_version
  - fu_ilitek_its_device_init
  - fu_ilitek_its_device_finalize
  - fu_ilitek_its_device_class_init
  source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_ILITEK_ITS_HID_ACK_BYTE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
      type_or_value: '0xAC'
    - item_type: preproc_def
      name: FU_ILITEK_ITS_LOOKUP_TYPE_EDID
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: FU_ILITEK_ITS_LOOKUP_TYPE_SENSOR_ID
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: FU_ILITEK_ITS_CRC_RECALCULATE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
      type_or_value: '0x0'
    - item_type: preproc_def
      name: FU_ILITEK_ITS_CRC_GET
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: FU_ILITEK_ITS_WRITE_ENABLE_KEY
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
      type_or_value: '0x5AA5'
    - item_type: preproc_def
      name: FU_ILITEK_ITS_WRITE_ENABLE_START
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
      type_or_value: '0x5000'
    - item_type: preproc_def
      name: FU_ILITEK_ITS_WRITE_ENABLE_END
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
      type_or_value: '0x5001'
    - item_type: preproc_def
      name: FU_ILITEK_ITS_AP_MODE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
      type_or_value: '0x5A '
    - item_type: preproc_def
      name: FU_ILITEK_ITS_BL_MODE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
      type_or_value: '0x55 '
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      - name: '*ic_name'
        type: gchar
      - name: protocol_ver
        type: guint32
      - name: sensor_id_mask
        type: guint8
      item_type: struct
      name: _FuIlitekItsDevice
      pos:
        line_end: 34
        line_start: 29
        source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    - fields:
      - name: cmd
        type: FuIlitekItsCmd
      - name: is_ack
        type: gboolean
      - name: '*rbuf'
        type: GByteArray
      item_type: struct
      name: FuIlitekItsHidCmdHelper
      pos:
        line_end: 51
        line_start: 47
        source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ILITEK_ITS_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-device.h
      type_or_value: (fu_ilitek_its_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ilitek_its_convert_version
  source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ILITEK_ITS_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.h
      type_or_value: (fu_ilitek_its_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ilitek_its_firmware_export
  - fu_ilitek_its_firmware_parse
  - fu_ilitek_its_firmware_convert_version
  - fu_ilitek_its_firmware_get_ic_name
  - fu_ilitek_its_firmware_init
  - fu_ilitek_its_firmware_finalize
  - fu_ilitek_its_firmware_class_init
  source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_ILITEK_ITS_FIRMWARE_MAX_BLOB_SIZE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c
      type_or_value: (256 * FU_KB)
    structs:
    - fields:
      - name: parent_instance
        type: FuIhexFirmware
      - name: mm_addr
        type: guint32
      - name: '*fw_ic_name'
        type: gchar
      item_type: struct
      name: _FuIlitekItsFirmware
      pos:
        line_end: 19
        line_start: 15
        source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_ILITEK_ITS_BLOCK
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.h
      type_or_value: (fu_ilitek_its_block_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_ilitek_its_block_export
  - fu_ilitek_its_block_parse
  - fu_ilitek_its_block_get_crc
  - fu_ilitek_its_block_init
  - fu_ilitek_its_block_class_init
  - fu_ilitek_its_block_new
  source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: crc
        type: guint16
      item_type: struct
      name: _FuIlitekItsBlock
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-block.c
    typedefs: []
    union: []
- function_names:
  - fu_ilitek_its_plugin_device_registered
  - fu_ilitek_its_plugin_device_created
  - fu_ilitek_its_plugin_init
  - fu_ilitek_its_plugin_finalize
  - fu_ilitek_its_plugin_constructed
  - fu_ilitek_its_plugin_class_init
  source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: '*drm_devices'
        type: GPtrArray
      item_type: struct
      name: _FuIlitekItsPlugin
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/fwupd/plugins/ilitek-its/fu-ilitek-its-plugin.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_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
      type: guchar
    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: HID_RMI4_REPORT_ID_SIZE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: HID_RMI4_DATA_LENGTH_SIZE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-hid-device.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: RMI_F01_CRTL0_NOSLEEP_BIT
      pos:
        line_end: 50
        line_start: 49
        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: 56
        line_start: 55
        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: 58
        line_start: 57
        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: 59
        line_start: 58
        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: 61
        line_start: 60
        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: []
    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_parse_sbl_container_v10
  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: 32
        line_start: 31
        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: 34
        line_start: 33
        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: 35
        line_start: 34
        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: FuSynapticsRmiFirmwareKind
      - 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: 27
        line_start: 16
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-firmware.c
    typedefs: []
    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_sbl
  - 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
  - fu_synaptics_rmi_v7_device_enter_sbl
  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: []
    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: 14
        line_start: 13
        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: 64
        line_start: 63
        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: 65
        line_start: 64
        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: 67
        line_start: 66
        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: 68
        line_start: 67
        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: 70
        line_start: 69
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.h
      type_or_value: "300\t"
    - item_type: preproc_def
      name: RMI_F34_IDLE_WAIT_MS
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.h
      type_or_value: "500\t"
    - item_type: preproc_def
      name: RMI_F34_ENABLE_SBL_WAIT_MS
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.h
      type_or_value: '3000 '
    - item_type: preproc_def
      name: RMI_DEVICE_PAGE_SELECT_REGISTER
      pos:
        line_end: 74
        line_start: 73
        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: 75
        line_start: 74
        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: 77
        line_start: 76
        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: 46
        line_start: 20
        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
      - name: has_sbl
        type: gboolean
      - name: sbl_version
        type: guint16
      - name: has_security
        type: gboolean
      item_type: struct
      name: FuSynapticsRmiFlash
      pos:
        line_end: 61
        line_start: 48
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.h
    typedefs: []
    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_check_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_replace
  - fu_synaptics_rmi_device_class_init
  - fu_synaptics_rmi_device_set_previous_sbl_version
  - fu_synaptics_rmi_device_get_previous_sbl_version
  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'
    - item_type: preproc_def
      name: RMI_F01_BLV10_RESET_DELAY_MS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fwupd/plugins/synaptics-rmi/fu-synaptics-rmi-device.c
      type_or_value: '5000'
    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
      - name: previous_sbl_version
        type: guint16
      item_type: struct
      name: FuSynapticsRmiDevicePrivate
      pos:
        line_end: 56
        line_start: 46
        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_wch_ch347_device_to_string
  - fu_wch_ch347_device_write
  - fu_wch_ch347_device_read
  - fu_wch_ch347_device_send_command
  - fu_wch_ch347_device_configure_stream
  - fu_wch_ch347_device_chip_select
  - fu_wch_ch347_device_probe
  - fu_wch_ch347_device_setup
  - fu_wch_ch347_device_init
  - fu_wch_ch347_device_class_init
  source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WCH_CH347_USB_TIMEOUT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: FU_WCH_CH347_CS_ASSERT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_WCH_CH347_CS_DEASSERT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
      type_or_value: '0x40'
    - item_type: preproc_def
      name: FU_WCH_CH347_CS_CHANGE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: FU_WCH_CH347_CS_IGNORE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_WCH_CH347_EP_OUT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
      type_or_value: '0x06'
    - item_type: preproc_def
      name: FU_WCH_CH347_EP_IN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
      type_or_value: '0x86'
    - item_type: preproc_def
      name: FU_WCH_CH347_MODE1_IFACE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: FU_WCH_CH347_MODE2_IFACE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: FU_WCH_CH347_PACKET_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
      type_or_value: '510'
    - item_type: preproc_def
      name: FU_WCH_CH347_PAYLOAD_SIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
      type_or_value: (FU_WCH_CH347_PACKET_SIZE - 3)
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: divisor
        type: guint8
      item_type: struct
      name: _FuWchCh347Device
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WCH_CH347_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-device.h
      type_or_value: (fu_wch_ch347_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wch_ch347_plugin_init
  - fu_wch_ch347_plugin_constructed
  - fu_wch_ch347_plugin_class_init
  source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuWchCh347Plugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WCH_CH347_CFI_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.h
      type_or_value: (fu_wch_ch347_cfi_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wch_ch347_cfi_device_chip_select
  - fu_wch_ch347_cfi_device_send_command
  - fu_wch_ch347_cfi_device_init
  - fu_wch_ch347_cfi_device_class_init
  source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuCfiDevice
      item_type: struct
      name: _FuWchCh347CfiDevice
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/wch-ch347/fu-wch-ch347-cfi-device.c
    typedefs: []
    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:
  - _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_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: '*eventlog'
        type: FuTpmEventlog
      item_type: struct
      name: _FuTpmPlugin
      pos:
        line_end: 17
        line_start: 12
        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-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_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: []
  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:
  - GET_PRIVATE
  - fu_mtd_device_to_string
  - fu_mtd_device_convert_version
  - fu_mtd_device_read_stream
  - fu_mtd_device_read_firmware
  - fu_mtd_device_metadata_ensure_version_from_image
  - fu_mtd_device_metadata_load_uswid
  - fu_mtd_device_metadata_load_fmap
  - fu_mtd_device_metadata_load_ifd
  - fu_mtd_device_metadata_load_versions
  - fu_mtd_device_ensure_version_smbios_fallback
  - fu_mtd_device_ensure_lockout_inhibit
  - 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_stream
  - fu_mtd_device_write_image
  - fu_mtd_device_fmap_prepare_firmware
  - fu_mtd_device_prepare_firmware
  - fu_mtd_device_write_firmware
  - fu_mtd_device_set_quirk_kv
  - fu_mtd_device_init
  - fu_mtd_device_finalize
  - 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: 34
        line_start: 33
        source_file: /src/fwupd/plugins/mtd/fu-mtd-device.c
      type_or_value: '5000 '
    structs:
    - fields:
      - name: erasesize
        type: guint64
      - name: metadata_offset
        type: guint64
      - name: metadata_size
        type: guint64
      - name: '*fmap_regions'
        type: GPtrArray
      - name: '*fmap_firmware'
        type: FuFirmware
      - name: fmap_offset
        type: guint64
      item_type: struct
      name: FuMtdDevicePrivate
      pos:
        line_end: 28
        line_start: 19
        source_file: /src/fwupd/plugins/mtd/fu-mtd-device.c
    - fields:
      - name: '*attr'
        type: gchar
      - name: '*logical_id'
        type: gchar
      item_type: struct
      name: "lockouts[] = {\n\t    {\"intel_spi_protected\", NULL},\n\t    {\"intel_spi_bios_locked\",
        \"bios\"},\n\t}"
      pos:
        line_end: 404
        line_start: 401
        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_to_string
  - 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_prepare_firmware
  - fu_mtd_ifd_device_write_firmware
  - fu_mtd_ifd_device_init
  - fu_mtd_ifd_device_finalize
  - 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_free
  - fu_test_mtd_find_mtdram
  - fu_test_mtd_prepare_mtdram_device
  - fu_test_mtd_device_raw_func
  - fu_test_mtd_device_ifd_func
  - fu_test_mtd_device_fmap_func
  - fu_test_mtd_device_uswid_func
  - fu_test_mtd_device_smbios_func
  - main
  source_file: /src/fwupd/plugins/mtd/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ctx'
        type: FuContext
      item_type: struct
      name: FuTest
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/mtd/fu-self-test.c
    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())
    - item_type: preproc_def
      name: FU_MTD_DEVICE_FLAG_SMBIOS_VERSION_FALLBACK
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/mtd/fu-mtd-device.h
      type_or_value: '"smbios-version-fallback"'
    structs:
    - fields:
      - name: parent_class
        type: FuUdevDeviceClass
      item_type: struct
      name: _FuMtdDeviceClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/mtd/fu-mtd-device.h
    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: 12
        line_start: 10
        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-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_steelseries_fizz_gen2_request
  - fu_steelseries_fizz_gen2_response
  - fu_steelseries_fizz_gen2_get_version2
  - fu_steelseries_fizz_gen2_get_version3
  - 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_serial2
  - fu_steelseries_fizz_gen2_get_serial3
  - 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
      - name: protocol_revision
        type: guint
      item_type: struct
      name: _FuSteelseriesFizzGen2
      pos:
        line_end: 22
        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: FuFirmware
      - 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: 17
        line_start: 16
        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: 18
        line_start: 17
        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_number
  - fu_steelseries_device_request
  - fu_steelseries_device_response
  - fu_steelseries_device_find_cmd_iface
  - fu_steelseries_device_probe
  - fu_steelseries_device_to_string
  - fu_steelseries_device_set_quirk_kv
  - 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_number
        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: 15
        line_start: 14
        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: 34
        line_start: 17
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target.h
    typedefs: []
    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
  - 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: 30
        line_start: 29
        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: 36
        line_start: 31
        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: 33
        line_start: 32
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '"DfuAltName"'
    - item_type: preproc_def
      name: DFU_AVR32_CMD_SELECT_MEMORY
      pos:
        line_end: 46
        line_start: 45
        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: 48
        line_start: 47
        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: 49
        line_start: 48
        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: 52
        line_start: 51
        source_file: /src/fwupd/plugins/dfu/fu-dfu-target-avr.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: DFU_AVR32_CMD_READ_MEMORY
      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_CMD_BLANK_CHECK
      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_CMD_ERASE
      pos:
        line_end: 59
        line_start: 58
        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: 60
        line_start: 59
        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: 61
        line_start: 60
        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: 62
        line_start: 61
        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: 63
        line_start: 62
        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: 65
        line_start: 64
        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: 66
        line_start: 65
        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: 67
        line_start: 66
        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: 68
        line_start: 67
        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: 70
        line_start: 69
        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: 71
        line_start: 70
        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: 36
        line_start: 34
        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: 437
        line_start: 434
        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_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_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: '*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: 65
        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_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_pixart_rf_receiver_device_to_string
  - fu_pixart_rf_receiver_device_prepare_firmware
  - fu_pixart_rf_receiver_device_fw_ota_init_new
  - fu_pixart_rf_receiver_device_fw_ota_ini_new_check
  - fu_pixart_rf_receiver_device_get_cmd_response
  - fu_pixart_rf_receiver_device_check_crc
  - fu_pixart_rf_receiver_device_fw_object_create
  - fu_pixart_rf_receiver_device_write_payload
  - fu_pixart_rf_receiver_device_write_chunk
  - fu_pixart_rf_receiver_device_fw_upgrade
  - fu_pixart_rf_receiver_device_reset
  - fu_pixart_rf_receiver_device_write_firmware
  - fu_pixart_rf_receiver_device_get_peripheral_info
  - fu_pixart_rf_receiver_device_get_peripheral_num
  - fu_pixart_rf_receiver_device_add_peripherals
  - fu_pixart_rf_receiver_device_setup_guid
  - fu_pixart_rf_receiver_device_check_peripherals
  - fu_pixart_rf_receiver_device_setup
  - fu_pixart_rf_receiver_device_probe
  - fu_pixart_rf_receiver_device_set_progress
  - fu_pixart_rf_receiver_device_init
  - fu_pixart_rf_receiver_device_class_init
  source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      - name: fwstate
        type: FuPixartRfOtaFwState
      - name: sn
        type: guint8
      item_type: struct
      name: _FuPixartRfReceiverDevice
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.c
    typedefs: []
    union: []
- function_names:
  - fu_pixart_rf_ble_device_to_string
  - fu_pixart_rf_ble_device_prepare_firmware
  - fu_pixart_rf_ble_device_set_feature_cb
  - fu_pixart_rf_ble_device_set_feature
  - fu_pixart_rf_ble_device_get_feature
  - fu_pixart_rf_ble_device_search_hid_feature_report_id
  - fu_pixart_rf_ble_device_search_hid_input_report_id
  - fu_pixart_rf_ble_device_check_support_report_id
  - fu_pixart_rf_ble_device_fw_ota_check_retransmit
  - fu_pixart_rf_ble_device_check_support_resume
  - fu_pixart_rf_ble_device_wait_notify
  - fu_pixart_rf_ble_device_fw_object_create
  - fu_pixart_rf_ble_device_write_payload
  - fu_pixart_rf_ble_device_write_chunk
  - fu_pixart_rf_ble_device_reset
  - fu_pixart_rf_ble_device_fw_ota_init
  - fu_pixart_rf_ble_device_fw_ota_init_new
  - fu_pixart_rf_ble_device_fw_upgrade
  - fu_pixart_rf_ble_device_write_firmware
  - fu_pixart_rf_ble_device_fw_get_info
  - fu_pixart_rf_ble_device_get_model_info
  - fu_pixart_rf_ble_device_setup_guid
  - fu_pixart_rf_ble_device_setup
  - fu_pixart_rf_ble_device_set_progress
  - fu_pixart_rf_ble_device_init
  - fu_pixart_rf_ble_device_finalize
  - fu_pixart_rf_ble_device_class_init
  source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PIXART_RF_HID_DEV_OTA_INPUT_REPORT_ID
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
      type_or_value: '0x05'
    - item_type: preproc_def
      name: PIXART_RF_HID_DEV_OTA_RETRANSMIT_REPORT_ID
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
      type_or_value: '0x06'
    - item_type: preproc_def
      name: PIXART_RF_HID_DEV_OTA_FEATURE_REPORT_ID
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
      type_or_value: '0x07'
    - item_type: preproc_def
      name: PIXART_RF_HID_DEV_OTA_REPORT_USAGE_PAGE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
      type_or_value: 0xff02u
    - item_type: preproc_def
      name: PIXART_RF_HID_DEV_OTA_RETRANSMIT_USAGE_PAGE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
      type_or_value: 0xff01u
    - item_type: preproc_def
      name: PIXART_RF_HID_DEV_OTA_NOTIFY_USAGE_PAGE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
      type_or_value: 0xff00u
    - item_type: preproc_def
      name: ERR_COMMAND_SUCCESS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
      type_or_value: '0x0'
    - item_type: preproc_def
      name: FU_PIXART_RF_DEVICE_OBJECT_SIZE_MAX
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
      type_or_value: '4096 '
    - item_type: preproc_def
      name: FU_PIXART_RF_BLE_DEVICE_OTA_BUF_SZ
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
      type_or_value: '512  '
    - item_type: preproc_def
      name: FU_PIXART_RF_BLE_DEVICE_NOTIFY_RET_LEN
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
      type_or_value: '4    '
    - item_type: preproc_def
      name: FU_PIXART_RF_BLE_DEVICE_FW_INFO_RET_LEN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
      type_or_value: '8    '
    - item_type: preproc_def
      name: FU_PIXART_RF_BLE_DEVICE_NOTIFY_TIMEOUT_MS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
      type_or_value: '5000'
    - item_type: preproc_def
      name: FU_PIXART_RF_BLE_DEVICE_SET_REPORT_RETRIES
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
      type_or_value: '30'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      - name: fwstate
        type: FuPixartRfOtaFwState
      - 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: _FuPixartRfBleDevice
      pos:
        line_end: 40
        line_start: 33
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_PIXART_RF_DEVICE_FLAG_IS_HPAC
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.h
      type_or_value: '"is-hpac"'
    - item_type: preproc_def
      name: PIXART_RF_HID_WIRELESS_DEV_OTA_REPORT_ID
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: FU_PIXART_RF_BLE_DEVICE_RF_CMD_CODE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.h
      type_or_value: 0x65u
    - item_type: preproc_def
      name: FU_PIXART_RF_BLE_DEVICE_RF_CMD_HID_SN
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: FU_PIXART_RF_BLE_DEVICE_RF_CMD_HID_SN
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: FU_PIXART_RF_WIRELESS_DEVICE_TARGET_RECEIVER
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FU_PIXART_RF_RECEIVER_DEVICE_OTA_BUF_SZ
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.h
      type_or_value: '64 '
    - item_type: preproc_def
      name: FU_PIXART_RF_DEVICE_MODEL_NAME_LEN
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.h
      type_or_value: '12 '
    - item_type: preproc_def
      name: FU_PIXART_RF_DEVICE_OBJECT_SIZE_MAX
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.h
      type_or_value: '4096 '
    - item_type: preproc_def
      name: FU_PIXART_RF_WIRELESS_DEVICE_RETRY_MAXIMUM
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: FU_PIXART_RF_DEVICE_IOCTL_TIMEOUT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.h
      type_or_value: '5000 '
    structs:
    - fields:
      - name: status
        type: guint8
      - name: name[FU_PIXART_RF_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: FuPixartRfOtaFwDevModel
      pos:
        line_end: 37
        line_start: 30
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.h
    - fields:
      - name: status
        type: guint8
      - name: version[5]
        type: guint8
      - name: checksum
        type: guint16
      item_type: struct
      name: FuPixartRfOtaFwInfo
      pos:
        line_end: 44
        line_start: 40
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-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: FuPixartRfOtaFwState
      pos:
        line_end: 55
        line_start: 46
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_PIXART_RF_DEVICE_MODEL_NAME_LEN
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.h
      type_or_value: '12 '
    - item_type: preproc_def
      name: FU_TYPE_PIXART_RF_FIRMWARE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.h
      type_or_value: (fu_pixart_rf_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_pixart_rf_plugin_init
  - fu_pixart_rf_plugin_constructed
  - fu_pixart_rf_plugin_class_init
  source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuPixartRfPlugin
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_pixart_rf_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-pixart-rf-ble-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PIXART_RF_BLE_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-ble-device.h
      type_or_value: (fu_pixart_rf_ble_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_pixart_rf_firmware_get_model_name
  - fu_pixart_rf_firmware_export
  - fu_pixart_rf_firmware_validate
  - fu_pixart_rf_firmware_parse
  - fu_pixart_rf_firmware_build
  - fu_pixart_rf_firmware_write
  - fu_pixart_rf_firmware_init
  - fu_pixart_rf_firmware_finalize
  - fu_pixart_rf_firmware_class_init
  - fu_pixart_rf_firmware_new
  - fu_pixart_rf_firmware_is_hpac
  source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-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-pixart-rf-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-pixart-rf-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-pixart-rf-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-pixart-rf-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-pixart-rf-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: _FuPixartRfFirmware
      pos:
        line_end: 23
        line_start: 19
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PIXART_RF_WIRELESS_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.h
      type_or_value: (fu_pixart_rf_wireless_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PIXART_RF_RECEIVER_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-receiver-device.h
      type_or_value: (fu_pixart_rf_receiver_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_pixart_rf_wireless_device_to_string
  - fu_pixart_rf_wireless_device_prepare_firmware
  - fu_pixart_rf_wireless_device_get_cmd_response
  - fu_pixart_rf_wireless_device_check_crc
  - fu_pixart_rf_wireless_device_fw_object_create
  - fu_pixart_rf_wireless_device_write_payload
  - fu_pixart_rf_wireless_device_write_chunk
  - fu_pixart_rf_wireless_device_fw_ota_preceding
  - fu_pixart_rf_wireless_device_fw_ota_init_new
  - fu_pixart_rf_wireless_device_fw_ota_ini_new_check
  - fu_pixart_rf_wireless_device_fw_upgrade
  - fu_pixart_rf_wireless_device_reset
  - fu_pixart_rf_wireless_device_write_firmware
  - fu_pixart_rf_wireless_device_set_progress
  - fu_pixart_rf_wireless_device_init
  - fu_pixart_rf_wireless_device_class_init
  - fu_pixart_rf_wireless_device_new
  source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_PIXART_RF_WIRELESS_DEV_DELAY_MS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
      type_or_value: '50'
    - item_type: preproc_def
      name: FU_PIXART_RF_WIRELESS_DEV_PAYLOAD_DELAY_MS
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
      type_or_value: '15'
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: fwstate
        type: FuPixartRfOtaFwState
      - name: sn
        type: guint8
      - name: model
        type: FuPixartRfOtaFwDevModel
      item_type: struct
      name: _FuPixartRfWirelessDevice
      pos:
        line_end: 23
        line_start: 18
        source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-wireless-device.c
    typedefs: []
    union: []
- function_names:
  - fu_pixart_rf_ota_fw_state_to_string
  - fu_pixart_rf_ota_fw_state_parse
  - fu_pixart_rf_composite_receiver_cmd
  - fu_pixart_rf_hpac_version_info_parse
  source_file: /src/fwupd/plugins/pixart-rf/fu-pixart-rf-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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: 16
        line_start: 14
        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
  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: 19
        line_start: 18
        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: 20
        line_start: 19
        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: 21
        line_start: 20
        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: 22
        line_start: 21
        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: 23
        line_start: 22
        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: 24
        line_start: 23
        source_file: /src/fwupd/plugins/synaptics-mst/fu-synaptics-mst-firmware.c
      type_or_value: '0x100'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: board_id
        type: guint16
      - name: family
        type: FuSynapticsMstFamily
      item_type: struct
      name: _FuSynapticsMstFirmware
      pos:
        line_end: 14
        line_start: 10
        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:
    - item_type: preproc_def
      name: FU_SYNAPTICS_MST_IEEE_OUI
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/synaptics-mst/fu-self-test.c
      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_check_firmware
  - fu_synaptics_mst_device_attach
  - fu_synaptics_mst_device_write_firmware
  - fu_synaptics_mst_device_ensure_board_id
  - fu_synaptics_mst_device_family_from_chip_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: 25
        line_start: 24
        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: 26
        line_start: 25
        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: 29
        line_start: 28
        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: 30
        line_start: 29
        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: 31
        line_start: 30
        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: 32
        line_start: 31
        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: 33
        line_start: 32
        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: 34
        line_start: 33
        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: 35
        line_start: 34
        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: 36
        line_start: 35
        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: 37
        line_start: 36
        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: 38
        line_start: 37
        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: 39
        line_start: 38
        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: 40
        line_start: 39
        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: 41
        line_start: 40
        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: 42
        line_start: 41
        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: 43
        line_start: 42
        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: 44
        line_start: 43
        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: 46
        line_start: 45
        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: 48
        line_start: 47
        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: 50
        line_start: 49
        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: 51
        line_start: 50
        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: 52
        line_start: 51
        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: 54
        line_start: 53
        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: 56
        line_start: 55
        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: 57
        line_start: 56
        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: 58
        line_start: 57
        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: 59
        line_start: 58
        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: 60
        line_start: 59
        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: 61
        line_start: 60
        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: 62
        line_start: 61
        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: 63
        line_start: 62
        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: 65
        line_start: 64
        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: 66
        line_start: 65
        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: 68
        line_start: 67
        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: 69
        line_start: 68
        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: 78
        line_start: 70
        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: 186
        line_start: 183
        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: 596
        line_start: 590
        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_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'
    - item_type: preproc_def
      name: FU_QSI_DOCK_REPORT_ID
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/qsi-dock/fu-qsi-dock-mcu-device.c
      type_or_value: '5'
    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, FU_QSI_DOCK_ISP_VERSION_IN_MCU_OFFSET_MCU},\n\t
        \   {\"bcdVersion\",\n\t     FU_QSI_DOCK_FIRMWARE_IDX_NONE,\n\t     FU_QSI_DOCK_ISP_VERSION_IN_MCU_OFFSET_BCD_VERSION},\n\t
        \   {NULL, 0, 0}}"
      pos:
        line_end: 118
        line_start: 114
        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-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: 17
        line_start: 14
        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: FU_TI_TPS6598X_PD_MAX
      pos:
        line_end: 12
        line_start: 11
        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_parse
  - fu_legion_hid2_firmware_init
  - fu_legion_hid2_firmware_convert_version
  - fu_legion_hid2_firmware_class_init
  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
      item_type: struct
      name: _FuLegionHid2Firmware
      pos:
        line_end: 15
        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_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_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: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/upower/fu-upower-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_goodix_moc_device_cmd_send
  - fu_goodix_moc_device_cmd_recv
  - fu_goodix_moc_device_cmd_xfer
  - fu_goodix_moc_device_ensure_version
  - fu_goodix_moc_device_update_init
  - fu_goodix_moc_device_attach
  - fu_goodix_moc_device_setup
  - fu_goodix_moc_device_write_firmware
  - fu_goodix_moc_device_set_progress
  - fu_goodix_moc_device_init
  - fu_goodix_moc_device_class_init
  source_file: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-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-goodix-moc-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-goodix-moc-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-goodix-moc-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-goodix-moc-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-goodix-moc-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-goodix-moc-device.c
      type_or_value: '1000 '
    - item_type: preproc_def
      name: FU_GOODIX_MOC_CMD1_DEFAULT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: GX_SIZE_CRC32
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.c
      type_or_value: '4'
    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-goodix-moc-device.c
    typedefs: []
    union: []
- function_names:
  - fu_goodix_moc_plugin_init
  - fu_goodix_moc_plugin_constructed
  - fu_goodix_moc_plugin_class_init
  source_file: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-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-goodix-moc-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_GOODIX_MOC_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/goodix-moc/fu-goodix-moc-device.h
      type_or_value: (fu_goodix_moc_device_get_type())
    structs: []
    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: FuFirmware
      - 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_add_device
  - 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: 143
        line_start: 140
        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_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_ready_for_update
  - 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_ensure_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_startup
  - 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_get_pm_profile
  - 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: 21
        line_start: 20
        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
      - name: pm_profile
        type: FuAcpiFadtPmProfile
      item_type: struct
      name: _FuAcpiFacp
      pos:
        line_end: 16
        line_start: 12
        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: 13
        line_start: 12
        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
  - fu_acpi_facp_server_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-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_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: 18
        line_start: 17
        source_file: /src/fwupd/plugins/aver-hid/fu-aver-hid-device.c
      type_or_value: "200\t "
    - item_type: preproc_def
      name: FU_AVER_HID_DEVICE_GET_STATUS_POLL_INTERVAL
      pos:
        line_end: 19
        line_start: 18
        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: 20
        line_start: 19
        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: 21
        line_start: 20
        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: 22
        line_start: 21
        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: 24
        line_start: 23
        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: 13
        line_start: 11
        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: 14
        line_start: 12
        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: 18
        line_start: 17
        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: 19
        line_start: 18
        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: 13
        line_start: 11
        source_file: /src/fwupd/plugins/aver-hid/fu-aver-safeisp-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_BLESTECH_TP_HID_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.h
      type_or_value: (fu_blestech_tp_hid_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_blestech_tp_plugin_init
  - fu_blestech_tp_plugin_constructed
  - fu_blestech_tp_plugin_class_init
  source_file: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuBlestechTpPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_blestech_tp_firmware_compute_checksum_cb
  - fu_blestech_tp_firmware_get_checksum
  - fu_blestech_tp_firmware_parse
  - fu_blestech_tp_firmware_export
  - fu_blestech_tp_firmware_init
  - fu_blestech_tp_firmware_class_init
  source_file: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_BLESTECH_TP_FIRMWARE_ADDR_BIN_VER
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c
      type_or_value: '0xC02A'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: checksum
        type: guint16
      item_type: struct
      name: _FuBlestechTpFirmware
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_blestech_tp_hid_device_write
  - fu_blestech_tp_hid_device_read
  - fu_blestech_tp_hid_device_get_version
  - fu_blestech_tp_hid_device_update_start
  - fu_blestech_tp_hid_device_switch_boot
  - fu_blestech_tp_hid_device_program_page_end
  - fu_blestech_tp_hid_device_program_page
  - fu_blestech_tp_hid_device_program_page_cb
  - fu_blestech_tp_hid_device_program_chunk
  - fu_blestech_tp_hid_device_program
  - fu_blestech_tp_hid_device_program_checksum
  - fu_blestech_tp_hid_device_program_end
  - fu_blestech_tp_hid_device_write_firmware
  - fu_blestech_tp_hid_device_set_progress
  - fu_blestech_tp_hid_device_convert_version
  - fu_blestech_tp_hid_device_setup
  - fu_blestech_tp_hid_device_init
  - fu_blestech_tp_hid_device_class_init
  source_file: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_BLESTECH_TP_DEVICE_REPORT_ID
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
      type_or_value: '0x0E'
    - item_type: preproc_def
      name: FU_BLESTECH_TP_DEVICE_PACK_FIX_SIZE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
      type_or_value: '0x06'
    - item_type: preproc_def
      name: FU_BLESTECH_TP_DEVICE_PAGE_SIZE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
      type_or_value: '0x200'
    - item_type: preproc_def
      name: FU_BLESTECH_TP_DEVICE_BOOT_SIZE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: FU_BLESTECH_TP_DEVICE_APP_CONFIG_PAGE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
      type_or_value: '96'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      item_type: struct
      name: _FuBlestechTpHidDevice
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-hid-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_BLESTECH_TP_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/blestech-tp/fu-blestech-tp-firmware.h
      type_or_value: (fu_blestech_tp_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_framework_qmk_plugin_init
  - fu_framework_qmk_plugin_constructed
  - fu_framework_qmk_plugin_class_init
  source_file: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuFrameworkQmkPlugin
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_framework_qmk_device_detach
  - fu_framework_qmk_device_set_progress
  - fu_framework_qmk_device_init
  - fu_framework_qmk_device_setup
  - fu_framework_qmk_device_convert_version
  - fu_framework_qmk_device_class_init
  source_file: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_FRAMEWORK_QMK_RAW_USAGE_PAGE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c
      type_or_value: '0xFF60'
    - item_type: preproc_def
      name: FU_FRAMEWORK_QMK_RAW_USAGE_ID
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c
      type_or_value: '0x61'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      - name: iface_reset
        type: guint8
      item_type: struct
      name: _FuFrameworkQmkDevice
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FRAMEWORK_QMK_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/framework-qmk/fu-framework-qmk-device.h
      type_or_value: (fu_framework_qmk_device_get_type())
    structs: []
    typedefs: []
    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_device_registered
  - fu_pci_psp_plugin_device_added
  - 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_set_cpu
  - 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_entry_sign
  - 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_platform_secure_boot
  - fu_pci_psp_device_add_security_attrs_rpmc
  - fu_pci_psp_device_add_security_attrs
  - fu_pci_psp_device_init
  - fu_pci_psp_device_finalize
  - 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: '*cpu_device'
        type: FuProcessorDevice
      - name: supported
        type: gboolean
      item_type: struct
      name: _FuPciPspDevice
      pos:
        line_end: 23
        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/pixart-tp/fu-pixart-tp-haptic-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PIXART_TP_HAPTIC_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.h
      type_or_value: (fu_pixart_tp_haptic_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_pixart_tp_device_to_string
  - fu_pixart_tp_device_register_write
  - fu_pixart_tp_device_register_write_uint16
  - fu_pixart_tp_device_register_write_uint24
  - fu_pixart_tp_device_register_write_uint32
  - fu_pixart_tp_device_register_read
  - fu_pixart_tp_device_register_read_array
  - fu_pixart_tp_device_register_user_write
  - fu_pixart_tp_device_register_user_read
  - fu_pixart_tp_device_register_user_read_array
  - fu_pixart_tp_device_register_burst_write
  - fu_pixart_tp_device_register_burst_read
  - fu_pixart_tp_device_reset
  - fu_pixart_tp_device_flash_execute_wait_cb
  - fu_pixart_tp_device_flash_execute
  - fu_pixart_tp_device_flash_write_enable_wait_cb
  - fu_pixart_tp_device_flash_write_enable
  - fu_pixart_tp_device_flash_wait_busy_cb
  - fu_pixart_tp_device_flash_wait_busy
  - fu_pixart_tp_device_flash_erase_sector
  - fu_pixart_tp_device_flash_program_256b_to_flash
  - fu_pixart_tp_device_write_sram_256b
  - fu_pixart_tp_device_firmware_clear
  - fu_pixart_tp_device_crc_firmware_wait_cb
  - fu_pixart_tp_device_crc_firmware
  - fu_pixart_tp_device_crc_parameter_wait_cb
  - fu_pixart_tp_device_crc_parameter
  - fu_pixart_tp_device_write_page
  - fu_pixart_tp_device_write_sector
  - fu_pixart_tp_device_write_section
  - fu_pixart_tp_device_write_sections
  - fu_pixart_tp_device_verify_crc
  - fu_pixart_tp_device_setup
  - fu_pixart_tp_device_write_firmware
  - fu_pixart_tp_device_set_quirk_kv
  - fu_pixart_tp_device_attach
  - fu_pixart_tp_device_detach
  - fu_pixart_tp_device_reload
  - fu_pixart_tp_device_cleanup
  - fu_pixart_tp_device_set_progress
  - fu_pixart_tp_device_probe
  - fu_pixart_tp_device_convert_version
  - fu_pixart_tp_device_init
  - fu_pixart_tp_device_class_init
  source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_PIXART_TP_DEVICE_SECTOR_SIZE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: FU_PIXART_TP_DEVICE_PAGE_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
      type_or_value: '256'
    - item_type: preproc_def
      name: REPORT_ID_SINGLE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
      type_or_value: '0x42'
    - item_type: preproc_def
      name: REPORT_ID_BURST
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
      type_or_value: '0x41'
    - item_type: preproc_def
      name: REPORT_ID_USER
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
      type_or_value: '0x43'
    - item_type: preproc_def
      name: OP_READ
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
      type_or_value: '0x10'
    structs:
    - fields:
      - name: sram_select
        type: guint8
      - name: ver_bank
        type: guint8
      - name: ver_addr
        type: guint16
      - name: part_id
        type: guint16
      - name: has_tf_child
        type: gboolean
      item_type: struct
      name: FuPixartTpDevicePrivate
      pos:
        line_end: 20
        line_start: 14
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PIXART_TP_DEVICE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.h
      type_or_value: (fu_pixart_tp_device_get_type())
    structs:
    - fields:
      - name: parent_class
        type: FuHidrawDeviceClass
      item_type: struct
      name: _FuPixartTpDeviceClass
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-device.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PIXART_TP_PLP239_DEVICE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.h
      type_or_value: (fu_pixart_tp_plp239_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PIXART_TP_FIRMWARE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.h
      type_or_value: (fu_pixart_tp_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_pixart_tp_section_new
  - fu_pixart_tp_section_get_update_type
  - fu_pixart_tp_section_has_flag
  - fu_pixart_tp_section_get_target_flash_start
  - fu_pixart_tp_section_get_crc
  - fu_pixart_tp_section_get_reserved
  - fu_pixart_tp_section_init
  - fu_pixart_tp_section_export
  - fu_pixart_tp_section_build
  - fu_pixart_tp_section_parse
  - fu_pixart_tp_section_write
  - fu_pixart_tp_section_finalize
  - fu_pixart_tp_section_class_init
  source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: update_type
        type: FuPixartTpUpdateType
      - name: flags
        type: FuPixartTpFirmwareFlags
      - name: target_flash_start
        type: guint32
      - name: section_crc
        type: guint32
      - name: '*reserved'
        type: GByteArray
      item_type: struct
      name: _FuPixartTpSection
      pos:
        line_end: 19
        line_start: 12
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.c
    typedefs: []
    union: []
- function_names:
  - fu_pixart_tp_firmware_xml_func
  - main
  source_file: /src/fwupd/plugins/pixart-tp/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_pixart_tp_plugin_init
  - fu_pixart_tp_plugin_constructed
  - fu_pixart_tp_plugin_class_init
  source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuPixartTpPlugin
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_pixart_tp_plp239_device_set_flash_command
  - fu_pixart_tp_plp239_device_get_flash_controller_status
  - fu_pixart_tp_plp239_device_reset_sram_offset
  - fu_pixart_tp_plp239_device_flash_command_finish
  - fu_pixart_tp_plp239_device_lock_low_level_protection
  - fu_pixart_tp_plp239_device_unlock_low_level_protection
  - fu_pixart_tp_plp239_device_unlock_level_zero_protection
  - fu_pixart_tp_plp239_device_unlock_level_one_protection
  - fu_pixart_tp_plp239_device_set_flash_sector_address
  - fu_pixart_tp_plp239_device_disable_cpu_access
  - fu_pixart_tp_plp239_device_enable_watchdog
  - fu_pixart_tp_plp239_device_disable_cpu_cb
  - fu_pixart_tp_plp239_device_enable_cpu
  - fu_pixart_tp_plp239_device_check_nav_ready_cb
  - fu_pixart_tp_plp239_device_check_device_boot_status
  - fu_pixart_tp_plp239_device_clear_hid_firmware_ready
  - fu_pixart_tp_plp239_device_flash_rstqio_step
  - fu_pixart_tp_plp239_device_release_flash_quad_enhance_mode
  - fu_pixart_tp_plp239_device_wait_hardware_done_cb
  - fu_pixart_tp_plp239_device_get_crc_firmware
  - fu_pixart_tp_plp239_device_get_crc_parameter
  - fu_pixart_tp_plp239_device_get_crc_hid_descriptor
  - fu_pixart_tp_plp239_device_flash_program_4096b_to_flash
  - fu_pixart_tp_plp239_device_flash_dump_4096b_from_flash_to_sram
  - fu_pixart_tp_plp239_device_write_sram_4096b
  - fu_pixart_tp_plp239_device_read_sram_4096b
  - fu_pixart_tp_plp239_device_write_sector
  - fu_pixart_tp_plp239_device_read_sector
  - fu_pixart_tp_plp239_device_reset
  - fu_pixart_tp_plp239_device_flash_erase_sector
  - fu_pixart_tp_plp239_device_verify_extend_flash
  - fu_pixart_tp_plp239_device_write_section
  - fu_pixart_tp_plp239_device_verify_crc
  - fu_pixart_tp_plp239_device_setup
  - fu_pixart_tp_plp239_device_write_sections
  - fu_pixart_tp_plp239_device_write_firmware
  - fu_pixart_tp_plp239_device_attach
  - fu_pixart_tp_plp239_device_detach
  - fu_pixart_tp_plp239_device_cleanup
  - fu_pixart_tp_plp239_device_reload
  - fu_pixart_tp_plp239_device_class_init
  - fu_pixart_tp_plp239_device_init
  source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_PIXART_TP_DEVICE_SECTOR_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: FU_PIXART_TP_DEVICE_PAGE_SIZE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
      type_or_value: '256'
    structs:
    - fields:
      - name: parent_instance
        type: FuPixartTpDevice
      item_type: struct
      name: _FuPixartTpPlp239Device
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plp239-device.c
    typedefs: []
    union: []
- function_names:
  - fu_pixart_tp_firmware_validate
  - fu_pixart_tp_firmware_parse
  - fu_pixart_tp_firmware_convert_version
  - fu_pixart_tp_firmware_export
  - fu_pixart_tp_firmware_write
  - fu_pixart_tp_firmware_build
  - fu_pixart_tp_firmware_find_section_by_type
  - fu_pixart_tp_firmware_init
  - fu_pixart_tp_firmware_class_init
  - fu_pixart_tp_firmware_new
  source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: header_ver
        type: guint16
      - name: ic_part_id
        type: guint16
      - name: flash_sectors
        type: guint16
      item_type: struct
      name: _FuPixartTpFirmware
      pos:
        line_end: 17
        line_start: 12
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_PIXART_TP_SECTION
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-section.h
      type_or_value: (fu_pixart_tp_section_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_pixart_tp_haptic_device_to_string
  - fu_pixart_tp_haptic_device_tf_write_rmi_cmd
  - fu_pixart_tp_haptic_device_tf_write_rmi_with_packet
  - fu_pixart_tp_haptic_device_tf_read_rmi
  - fu_pixart_tp_haptic_device_tf_read_firmware_version_cb
  - fu_pixart_tp_haptic_device_tf_ensure_status_cb
  - fu_pixart_tp_haptic_device_tf_write_packet_cb
  - fu_pixart_tp_haptic_device_tf_read_firmware_version
  - fu_pixart_tp_haptic_device_tf_ensure_status
  - fu_pixart_tp_haptic_device_tf_exit_upgrade_mode
  - fu_pixart_tp_haptic_device_tf_write_packet
  - fu_pixart_tp_haptic_device_tf_write_packets
  - fu_pixart_tp_haptic_device_tf_write_firmware
  - fu_pixart_tp_haptic_device_tf_write_firmware_process
  - fu_pixart_tp_haptic_device_probe
  - fu_pixart_tp_haptic_device_setup
  - fu_pixart_tp_haptic_device_prepare_firmware
  - fu_pixart_tp_haptic_device_write_firmware
  - fu_pixart_tp_haptic_device_detach
  - fu_pixart_tp_haptic_device_set_progress
  - fu_pixart_tp_haptic_device_cleanup
  - fu_pixart_tp_haptic_device_reload
  - fu_pixart_tp_haptic_device_class_init
  - fu_pixart_tp_haptic_device_init
  - fu_pixart_tp_haptic_device_new
  source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_PIXART_TP_TF_RETRY_COUNT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
      type_or_value: '3'
    - item_type: preproc_def
      name: FU_PIXART_TP_TF_RETRY_INTERVAL_MS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
      type_or_value: '10'
    - item_type: preproc_def
      name: FU_PIXART_TP_TF_FRAME_SIZE_FEATURE_REPORT_LEN
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
      type_or_value: '64'
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: status
        type: guint8
      - name: packet_number
        type: guint16
      item_type: struct
      name: _FuPixartTpHapticDevice
      pos:
        line_end: 18
        line_start: 14
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    - fields:
      - name: mode
        type: guint8
      - name: major
        type: guint8
      - name: minor
        type: guint8
      - name: patch
        type: guint8
      item_type: struct
      name: FuPixartTpTfReadFwVersionCtx
      pos:
        line_end: 41
        line_start: 36
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    - fields:
      - name: packet_total
        type: guint32
      - name: packet_index
        type: guint32
      - name: '*chunk_data'
        type: guint8
      - name: chunk_len
        type: gsize
      item_type: struct
      name: FuPixartTpTfWritePacketCtx
      pos:
        line_end: 48
        line_start: 43
        source_file: /src/fwupd/plugins/pixart-tp/fu-pixart-tp-haptic-device.c
    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:
  - 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_build_header
  - fu_logitech_bulkcontroller_device_build_get_device_info_request
  - 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_build_set_device_time_request
  - fu_logitech_bulkcontroller_device_send_time_cb
  - fu_logitech_bulkcontroller_device_send_time
  - fu_logitech_bulkcontroller_device_build_transition_to_device_mode_request
  - 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: 16
        line_start: 15
        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: 17
        line_start: 16
        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: 18
        line_start: 17
        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: 19
        line_start: 18
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
      type_or_value: '2500'
    - item_type: preproc_def
      name: BULK_TRANSFER_FLUSH_TIMEOUT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/logitech-bulkcontroller/fu-logitech-bulkcontroller-device.c
      type_or_value: '5'
    - item_type: preproc_def
      name: HASH_VALUE_SIZE
      pos:
        line_end: 21
        line_start: 20
        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: 22
        line_start: 21
        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: 23
        line_start: 22
        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: 24
        line_start: 23
        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: 25
        line_start: 24
        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_flush_events_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: 41
        line_start: 28
        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
      - name: timeout
        type: guint
      item_type: struct
      name: FuLogitechBulkcontrollerResponse
      pos:
        line_end: 127
        line_start: 122
        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: 13
        line_start: 11
        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: []
  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-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_check_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: 35
        line_start: 34
        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: 36
        line_start: 35
        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: 37
        line_start: 36
        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: 38
        line_start: 37
        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: 39
        line_start: 38
        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: 40
        line_start: 39
        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: 41
        line_start: 40
        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: 42
        line_start: 41
        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: 43
        line_start: 42
        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: 346
        line_start: 345
        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: 347
        line_start: 346
        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: 348
        line_start: 347
        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: FuStructVliUsbhubHdr
      - name: '*st_hd2'
        type: FuStructVliUsbhubHdr
      item_type: struct
      name: _FuVliUsbhubDevice
      pos:
        line_end: 30
        line_start: 24
        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: 11
        line_start: 10
        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
  source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - 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())
    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: []
    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: 12
        line_start: 11
        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: 13
        line_start: 12
        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: 14
        line_start: 13
        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: 15
        line_start: 14
        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: 16
        line_start: 15
        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: 17
        line_start: 16
        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: 18
        line_start: 17
        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: 20
        line_start: 19
        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: 21
        line_start: 20
        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: 22
        line_start: 21
        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: 27
        line_start: 26
        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: 28
        line_start: 27
        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: 29
        line_start: 28
        source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-common.h
      type_or_value: '0xff'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/vli/fu-vli-usbhub-i2c-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    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
  source_file: /src/fwupd/plugins/vli/fu-vli-pd-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - 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: 183
        line_start: 178
        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_pd_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
      - name: pd_offset
        type: guint32
      item_type: struct
      name: FuVliDevicePrivate
      pos:
        line_end: 19
        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: 12
        line_start: 11
        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: 13
        line_start: 12
        source_file: /src/fwupd/plugins/vli/fu-vli-pd-common.h
      type_or_value: '0x1003'
    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_check_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_set_progress
  - fu_vli_usbhub_pd_device_set_quirk_kv
  - 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
      - name: pd_offset
        type: guint32
      item_type: struct
      name: _FuVliUsbhubPdDevice
      pos:
        line_end: 22
        line_start: 18
        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: 28
        line_start: 27
        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: 29
        line_start: 28
        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: 23
        line_start: 18
        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_check_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
  source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    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
  - fu_jabra_gnp_ensure_name
  - fu_jabra_gnp_ensure_battery_level
  - fu_jabra_gnp_read_dfu_pid
  - fu_jabra_gnp_ensure_version
  - fu_jabra_gnp_read_fwu_protocol
  - fu_jabra_gnp_write_partition
  - fu_jabra_gnp_start
  - fu_jabra_gnp_flash_erase_done
  - fu_jabra_gnp_write_crc
  - fu_jabra_gnp_write_extended_crc
  - fu_jabra_gnp_write_chunk
  - fu_jabra_gnp_write_chunks
  - fu_jabra_gnp_read_verify_status
  - fu_jabra_gnp_write_version
  - fu_jabra_gnp_write_dfu_from_squif
  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: FuFirmware
      - 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:
  - fu_jabra_gnp_child_device_to_string
  - fu_jabra_gnp_child_device_set_dfu_pid_and_seq
  - fu_jabra_gnp_child_device_tx_cb
  - fu_jabra_gnp_child_device_rx_cb
  - fu_jabra_gnp_child_device_rx_with_sequence_cb
  - fu_jabra_gnp_child_device_check_firmware
  - fu_jabra_gnp_child_device_setup
  - fu_jabra_gnp_child_device_write_image
  - fu_jabra_gnp_child_device_write_firmware
  - fu_jabra_gnp_child_device_attach
  - fu_jabra_gnp_child_device_set_quirk_kv
  - fu_jabra_gnp_child_device_set_progress
  - fu_jabra_gnp_child_device_init
  - fu_jabra_gnp_child_device_class_init
  source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      - name: fwu_protocol
        type: guint8
      - name: sequence_number
        type: guint8
      - name: address
        type: guint8
      - name: dfu_pid
        type: guint16
      item_type: struct
      name: _FuJabraGnpChildDevice
      pos:
        line_end: 20
        line_start: 14
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.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:
    - item_type: preproc_def
      name: FU_JABRA_GNP_BUF_SIZE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.h
      type_or_value: '64'
    - item_type: preproc_def
      name: FU_JABRA_GNP_MAX_RETRIES
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.h
      type_or_value: '3'
    - item_type: preproc_def
      name: FU_JABRA_GNP_PRELOAD_COUNT
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.h
      type_or_value: '10'
    - item_type: preproc_def
      name: FU_JABRA_GNP_RETRY_DELAY
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.h
      type_or_value: '100   '
    - item_type: preproc_def
      name: FU_JABRA_GNP_STANDARD_SEND_TIMEOUT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.h
      type_or_value: '3000  '
    - item_type: preproc_def
      name: FU_JABRA_GNP_STANDARD_RECEIVE_TIMEOUT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.h
      type_or_value: '1000  '
    - item_type: preproc_def
      name: FU_JABRA_GNP_LONG_RECEIVE_TIMEOUT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.h
      type_or_value: '30000 '
    - item_type: preproc_def
      name: FU_JABRA_GNP_EXTRA_LONG_RECEIVE_TIMEOUT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.h
      type_or_value: '60000 '
    - item_type: preproc_def
      name: FU_JABRA_GNP_IFACE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.h
      type_or_value: '0x05'
    - item_type: preproc_def
      name: FU_JABRA_GNP_ADDRESS_PARENT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_JABRA_GNP_ADDRESS_OTA_CHILD
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: FU_JABRA_GNP_PROTOCOL_OTA
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.h
      type_or_value: '7'
    - item_type: preproc_def
      name: FU_JABRA_GNP_PROTOCOL_EXTENDED_OTA
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.h
      type_or_value: '16'
    structs:
    - fields:
      - name: '*buf'
        type: GByteArray
      - name: timeout
        type: guint
      item_type: struct
      name: FuJabraGnpTxData
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.h
    - fields:
      - name: rxbuf[FU_JABRA_GNP_BUF_SIZE]
        type: guint8
      - name: timeout
        type: guint
      item_type: struct
      name: FuJabraGnpRxData
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.h
    - fields:
      - name: major
        type: guint8
      - name: minor
        type: guint8
      - name: micro
        type: guint8
      item_type: struct
      name: FuJabraGnpVersionData
      pos:
        line_end: 41
        line_start: 37
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-common.h
    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: 14
        line_start: 12
        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-child-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_JABRA_GNP_CHILD_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-child-device.h
      type_or_value: (fu_jabra_gnp_child_device_get_type())
    structs: []
    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_get_iface_hid
  - fu_jabra_gnp_device_get_epin
  - fu_jabra_gnp_device_to_string
  - _fu_usb_device_get_interface_for_class
  - fu_jabra_gnp_device_probe
  - 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_child_dfu_pid
  - fu_jabra_gnp_device_check_firmware
  - 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_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: []
    structs:
    - fields:
      - name: parent_instance
        type: FuUsbDevice
      - name: fwu_protocol
        type: guint8
      - name: iface_hid
        type: guint8
      - name: sequence_number
        type: guint8
      - name: address
        type: guint8
      - name: epin
        type: guint8
      - name: dfu_pid
        type: guint16
      item_type: struct
      name: _FuJabraGnpDevice
      pos:
        line_end: 23
        line_start: 15
        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: 13
        line_start: 12
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.h
      type_or_value: (fu_jabra_gnp_firmware_get_type())
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: dfu_pid
        type: guint16
      - name: version_data
        type: FuJabraGnpVersionData
      item_type: struct
      name: _FuJabraGnpFirmware
      pos:
        line_end: 18
        line_start: 14
        source_file: /src/fwupd/plugins/jabra-gnp/fu-jabra-gnp-firmware.h
    typedefs: []
    union: []
- function_names:
  - 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_self_test_snapd_uefi_plugin_new_with_test_defaults
  - 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/snapd-uefi/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: snapd_supported
        type: gboolean
      - name: snapd_fde_detected
        type: gboolean
      - name: in_snap
        type: gboolean
      - name: '*mock_snapd_scenario'
        type: gchar
      - name: '*expected_error_message'
        type: gchar
      item_type: struct
      name: FuTestCase
      pos:
        line_end: 26
        line_start: 20
        source_file: /src/fwupd/plugins/snapd-uefi/fu-self-test.c
    - fields:
      - name: '*ctx'
        type: FuContext
      - name: '*tmpdir'
        type: FuTemporaryDirectory
      - name: mock_snapd_available
        type: gboolean
      - name: '*mock_snapd_curl'
        type: CURL
      - name: '*mock_curl_hdrs'
        type: struct curl_slist
      - name: '*socket_path'
        type: gchar
      item_type: struct
      name: FuTestFixture
      pos:
        line_end: 37
        line_start: 28
        source_file: /src/fwupd/plugins/snapd-uefi/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: 102
        line_start: 98
        source_file: /src/fwupd/plugins/snapd-uefi/fu-self-test.c
    typedefs: []
    union: []
- function_names:
  - fu_snapd_uefi_plugin_device_to_key_database
  - fu_snapd_uefi_plugin_device_registered
  - fu_snapd_uefi_plugin_rsp_cb
  - fu_snapd_uefi_plugin_extract_error_message
  - fu_snapd_uefi_plugin_simple_req
  - fu_snapd_uefi_plugin_is_in_snap
  - fu_snapd_uefi_plugin_startup
  - fu_snapd_uefi_plugin_cleanup
  - fu_snapd_uefi_plugin_composite_cleanup
  - fu_snapd_uefi_plugin_composite_peek_firmware
  - fu_snapd_uefi_plugin_modify_config
  - fu_snapd_uefi_plugin_init
  - fu_snapd_uefi_plugin_finalize
  - fu_snapd_uefi_plugin_class_init
  source_file: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      - name: integration_status
        type: FuSnapdIntegrationStatusEnum
      - name: '*curl_template'
        type: CURL
      - name: '*req_hdrs'
        type: struct curl_slist
      - name: '*db_override'
        type: gchar
      item_type: struct
      name: _FuSnapPlugin
      pos:
        line_end: 29
        line_start: 23
        source_file: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SNAPD_UEFI_PLUGIN
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/snapd-uefi/fu-snapd-uefi-plugin.h
      type_or_value: (fu_snapd_uefi_plugin_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WACOM_RAW_EMR_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.h
      type_or_value: (fu_wacom_raw_emr_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_wacom_raw_device_to_string
  - fu_wacom_raw_device_get_echo_next
  - fu_wacom_raw_device_get_block_sz
  - fu_wacom_raw_device_check_mpu
  - fu_wacom_raw_device_detach
  - fu_wacom_raw_device_check_mode
  - fu_wacom_raw_device_ensure_version_bootloader
  - fu_wacom_raw_device_write_firmware
  - fu_wacom_raw_device_get_feature
  - fu_wacom_raw_device_set_feature
  - fu_wacom_raw_device_cmd_response
  - fu_wacom_raw_device_cmd_response_cb
  - fu_wacom_raw_device_cmd
  - fu_wacom_raw_device_set_quirk_kv
  - fu_wacom_raw_device_replace
  - fu_wacom_raw_device_set_progress
  - fu_wacom_raw_device_init
  - fu_wacom_raw_device_class_init
  source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-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-raw-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-raw-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: FuWacomRawDevicePrivate
      pos:
        line_end: 15
        line_start: 11
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    - fields:
      - name: '*st_req'
        type: FuStructWacomRawRequest
      - name: '*rsp_value'
        type: guint8
      - name: flags
        type: FuWacomRawDeviceCmdFlags
      item_type: struct
      name: FuWacomRawResponseHelper
      pos:
        line_end: 282
        line_start: 278
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WACOM_RAW_CMD_RETRIES
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: FU_WACOM_RAW_BL_START_ADDR
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.h
      type_or_value: (0x11FF8)
    - item_type: preproc_def
      name: FU_WACOM_RAW_BL_BYTES_CHECK
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.h
      type_or_value: '8'
    - item_type: preproc_def
      name: FU_WACOM_RAW_BL_TYPE_FINALIZER
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.h
      type_or_value: '0x00'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WACOM_RAW_DEVICE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.h
      type_or_value: (fu_wacom_raw_device_get_type())
    - item_type: preproc_def
      name: FU_WACOM_RAW_DEVICE_FLAG_REQUIRES_WAIT_FOR_REPLUG
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-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: _FuWacomRawDeviceClass
      pos:
        line_end: 26
        line_start: 20
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-device.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WACOM_RAW_AES_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.h
      type_or_value: (fu_wacom_raw_aes_device_get_type())
    structs: []
    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_common_check_reply
  - fu_wacom_raw_common_rc_set_error
  - fu_wacom_raw_common_block_is_empty
  source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wacom_raw_emr_device_setup
  - fu_wacom_raw_emr_device_calc_checksum
  - fu_wacom_raw_emr_device_w9013_erase_data
  - fu_wacom_raw_emr_device_w9013_erase_code
  - fu_wacom_raw_emr_device_w9021_erase_all
  - fu_wacom_raw_emr_device_attach
  - fu_wacom_raw_emr_device_write_block
  - fu_wacom_raw_emr_device_write_firmware
  - fu_wacom_raw_emr_device_convert_version
  - fu_wacom_raw_emr_device_init
  - fu_wacom_raw_emr_device_class_init
  source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuWacomRawDevice
      item_type: struct
      name: _FuWacomRawEmrDevice
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-emr-device.c
    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_wacom_raw_aes_device_add_recovery_hwid
  - fu_wacom_raw_aes_device_query_operation_mode
  - fu_wacom_raw_aes_device_setup
  - fu_wacom_raw_aes_device_attach
  - fu_wacom_raw_aes_device_erase_all
  - fu_wacom_raw_aes_device_write_block
  - fu_wacom_raw_aes_device_write_firmware
  - fu_wacom_raw_aes_device_init
  - fu_wacom_raw_aes_device_class_init
  source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuWacomRawDevice
      item_type: struct
      name: _FuWacomRawAesDevice
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/wacom-raw/fu-wacom-raw-aes-device.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_sunwinon_hid_plugin_init
  - fu_sunwinon_hid_plugin_constructed
  - fu_sunwinon_hid_plugin_class_init
  source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuSunwinonHidPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_sunwinon_hid_device_to_string
  - fu_sunwinon_hid_device_dfu_pre_update_check
  - fu_sunwinon_hid_device_dfu_send_frame
  - fu_sunwinon_hid_device_dfu_recv_cb
  - fu_sunwinon_hid_device_dfu_recv_frame
  - fu_sunwinon_hid_device_dfu_plain_ack_recv
  - fu_sunwinon_hid_device_dfu_get_info_cmd
  - fu_sunwinon_hid_device_dfu_system_info_cmd
  - fu_sunwinon_hid_device_dfu_fw_info_ensure
  - fu_sunwinon_hid_device_dfu_mode_set_cmd
  - fu_sunwinon_hid_device_dfu_program_start_cmd
  - fu_sunwinon_hid_device_dfu_do_update_normal
  - fu_sunwinon_hid_device_dfu_program_end_cmd_normal
  - fu_sunwinon_hid_device_write_firmware
  - fu_sunwinon_hid_device_setup
  - fu_sunwinon_hid_device_init
  - fu_sunwinon_hid_device_set_progress
  - fu_sunwinon_hid_device_convert_version
  - fu_sunwinon_hid_device_class_init
  source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_SUNWINON_HID_DEVICE_REBOOT_WAIT_TIME
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
      type_or_value: '30000 '
    - item_type: preproc_def
      name: FU_SUNWINON_HID_DEVICE_REPLUG_WAIT_TIME
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
      type_or_value: '30000 '
    - item_type: preproc_def
      name: FU_SUNWINON_HID_DEVICE_RECV_RETRY_COUNT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
      type_or_value: '50'
    - item_type: preproc_def
      name: FU_SUNWINON_DFU_CONFIG_PERIPHERAL_FLASH_START_ADDR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
      type_or_value: '0x200000'
    - item_type: preproc_def
      name: FU_SUNWINON_HID_REPORT_DATA_LEN
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
      type_or_value: '480'
    - item_type: preproc_def
      name: FU_SUNWINON_HID_DFU_SIGN_LEN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
      type_or_value: '856'
    - item_type: preproc_def
      name: FU_SUNWINON_HID_DEVICE_PACKET_LEN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
      type_or_value: '464'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      - name: fw_type
        type: FuSunwinonFwType
      - name: dfu_save_addr
        type: guint32
      - name: bin_size
        type: guint32
      - name: load_addr
        type: guint32
      item_type: struct
      name: _FuSunwinonHidDevice
      pos:
        line_end: 26
        line_start: 20
        source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.c
    typedefs: []
    union: []
- function_names:
  - fu_sunwinon_hid_firmware_export
  - fu_sunwinon_hid_firmware_get_full_checksum
  - fu_sunwinon_hid_firmware_get_fw_type
  - fu_sunwinon_hid_firmware_parse
  - fu_sunwinon_hid_firmware_init
  - fu_sunwinon_hid_firmware_class_init
  source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_SUNWINON_HID_DFU_SIGN_LEN
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c
      type_or_value: '856'
    - item_type: preproc_def
      name: FU_SUNWINON_HID_PATTERN_OFFSET_DEADBEEF
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c
      type_or_value: '48'
    - item_type: preproc_def
      name: FU_SUNWINON_HID_PATTERN_OFFSET_SIGN
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c
      type_or_value: '120'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - name: bin_size
        type: guint32
      - name: load_addr
        type: guint32
      - name: full_checksum
        type: guint32
      - name: fw_type
        type: FuSunwinonFwType
      item_type: struct
      name: _FuSunwinonHidFirmware
      pos:
        line_end: 23
        line_start: 17
        source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SUNWINON_HID_FIRMWARE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-firmware.h
      type_or_value: (fu_sunwinon_hid_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_SUNWINON_HID_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/sunwinon-hid/fu-sunwinon-hid-device.h
      type_or_value: (fu_sunwinon_hid_device_get_type())
    structs: []
    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 '
    - item_type: preproc_def
      name: FU_HPI_CFU_DEVICE_FLAG_UPDATE_ON_REBOOT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
      type_or_value: '"update-on-reboot"'
    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: update_on_reboot
        type: gboolean
      - name: exit_state_machine_framework
        type: gboolean
      item_type: struct
      name: _FuHpiCfuDevice
      pos:
        line_end: 48
        line_start: 34
        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: 53
        line_start: 50
        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: 65
        line_start: 61
        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: 59
        line_start: 56
        source_file: /src/fwupd/plugins/hpi-cfu/fu-hpi-cfu-device.c
      type: gint32
    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:
  - 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_check_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_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: 16
        line_start: 12
        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:
  - fu_focal_fp_plugin_init
  - fu_focal_fp_plugin_constructed
  - fu_focal_fp_plugin_class_init
  source_file: /src/fwupd/plugins/focal-fp/fu-focal-fp-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/focal-fp/fu-focal-fp-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/focal-fp/fu-focal-fp-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FOCAL_FP_HID_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.h
      type_or_value: (fu_focal_fp_hid_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/focal-fp/fu-focal-fp-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_FOCAL_FP_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/focal-fp/fu-focal-fp-firmware.h
      type_or_value: (fu_focal_fp_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_focal_fp_hid_device_probe
  - fu_focal_fp_hid_device_io
  - fu_focal_fp_hid_device_check_cmd_crc
  - fu_focal_fp_hid_device_read_reg_cb
  - fu_focal_fp_hid_device_read_reg
  - fu_focal_fp_hid_device_enter_upgrade_mode
  - fu_focal_fp_hid_device_check_current_state
  - fu_focal_fp_hid_device_wait_for_upgrade_ready_cb
  - fu_focal_fp_hid_device_wait_for_upgrade_ready
  - fu_focal_fp_hid_device_read_update_id_cb
  - fu_focal_fp_hid_device_read_update_id
  - fu_focal_fp_hid_device_erase_flash
  - fu_focal_fp_hid_device_send_data_cb
  - fu_focal_fp_hid_device_send_data
  - fu_focal_fp_hid_device_checksum_upgrade
  - fu_focal_fp_hid_device_setup
  - fu_focal_fp_hid_device_write_chunks
  - fu_focal_fp_hid_device_write_firmware
  - fu_focal_fp_hid_device_reload
  - fu_focal_fp_hid_device_detach_cb
  - fu_focal_fp_hid_device_detach
  - fu_focal_fp_hid_device_attach
  - fu_focal_fp_hid_device_set_progress
  - fu_focal_fp_hid_device_convert_version
  - fu_focal_fp_hid_device_init
  - fu_focal_fp_hid_device_class_init
  source_file: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FIRST_PACKET
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: MID_PACKET
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: END_PACKET
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: REPORT_SIZE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
      type_or_value: '64'
    - item_type: preproc_def
      name: MAX_USB_PACKET_SIZE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
      type_or_value: '56'
    - item_type: preproc_def
      name: UPGRADE_ID
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
      type_or_value: '0x582E'
    structs:
    - fields:
      - name: parent_instance
        type: FuHidrawDevice
      item_type: struct
      name: _FuFocalFpHidDevice
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/focal-fp/fu-focal-fp-hid-device.c
    typedefs: []
    union: []
- function_names:
  - fu_focal_fp_firmware_get_checksum
  - fu_focal_fp_firmware_export
  - fu_focal_fp_firmware_compute_checksum_cb
  - fu_focal_fp_firmware_parse
  - fu_focal_fp_firmware_init
  - fu_focal_fp_firmware_class_init
  source_file: /src/fwupd/plugins/focal-fp/fu-focal-fp-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/focal-fp/fu-focal-fp-firmware.c
      type_or_value: '0x011E'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      - 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/focal-fp/fu-focal-fp-firmware.c
    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_set_path_prefix
  - 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_set_bearer_token
  - 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: '*bearer_token'
        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: '*path_prefix'
        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: 41
        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: 28
        line_start: 27
        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: 33
        line_start: 29
        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: 69
        line_start: 66
        source_file: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
    typedefs:
    - item_type: typedef
      name: _curl_slist
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/fwupd/plugins/redfish/fu-redfish-hpe-device.c
      type: curl_slist
    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_self_init
  - fu_redfish_ipmi_func
  - fu_redfish_common_func
  - fu_redfish_common_version_func
  - fu_redfish_common_lenovo_func
  - fu_redfish_network_mac_addr_func
  - fu_redfish_network_vid_pid_func
  - fu_redfish_devices_func
  - fu_redfish_unlicensed_devices_func
  - fu_redfish_smc_devices_func
  - fu_redfish_dell_devices_func
  - fu_redfish_hpe_update_func
  - fu_redfish_update_func
  - fu_redfish_smc_update_func
  - fu_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: 27
        line_start: 21
        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: 247
        line_start: 244
        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: 265
        line_start: 260
        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: FuFirmware
      - 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: '*json_obj_member'
        type: FwupdJsonObject
      - 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: 639
        line_start: 634
        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_cb
  - fu_ipmi_device_unlock_cb
  - 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: 39
        line_start: 38
        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: 40
        line_start: 39
        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: 41
        line_start: 40
        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: 42
        line_start: 41
        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: 43
        line_start: 42
        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: 44
        line_start: 43
        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: 45
        line_start: 44
        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: 46
        line_start: 45
        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: 47
        line_start: 46
        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: 48
        line_start: 47
        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: 49
        line_start: 48
        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: 50
        line_start: 49
        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: 51
        line_start: 50
        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: 52
        line_start: 51
        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: 55
        line_start: 54
        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: 58
        line_start: 57
        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: 71
        line_start: 70
        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: 66
        line_start: 60
        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: 324
        line_start: 315
        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_path_prefix
  - 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: '*path_prefix'
        type: gchar
      - name: '*buf'
        type: GByteArray
      - name: status_code
        type: glong
      - name: '*json_parser'
        type: FwupdJsonParser
      - name: '*json_obj'
        type: FwupdJsonObject
      - name: '*cache'
        type: GHashTable
      item_type: struct
      name: _FuRedfishRequest
      pos:
        line_end: 20
        line_start: 10
        source_file: /src/fwupd/plugins/redfish/fu-redfish-request.c
    typedefs:
    - item_type: typedef
      name: curlptr
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/fwupd/plugins/redfish/fu-redfish-request.c
      type: gchar
    - item_type: typedef
      name: _curl_slist
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/fwupd/plugins/redfish/fu-redfish-request.c
      type: curl_slist
    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: 15
        line_start: 14
        source_file: /src/fwupd/plugins/redfish/fu-redfish-request.h
      type_or_value: (fu_redfish_request_get_type())
    structs: []
    typedefs: []
    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_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:
    - item_type: preproc_def
      name: FU_QC_S5GEN2_START_OFFSET
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-firmware.c
      type_or_value: '26'
    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_cb
  - 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_incorporate_from_proxy
  - 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)
    - item_type: preproc_def
      name: FU_QC_S5GEN2_DEVICE_ABORT_DELAY
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
      type_or_value: '300'
    - item_type: preproc_def
      name: FU_QC_S5GEN2_DEVICE_ABORT_RETRIES
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/qc-s5gen2/fu-qc-s5gen2-device.c
      type_or_value: (20 * 1000 / FU_QC_S5GEN2_DEVICE_ABORT_DELAY)
    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: 29
        line_start: 23
        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: '500 '
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      item_type: struct
      name: _FuQcS5gen2HidDevice
      pos:
        line_end: 23
        line_start: 21
        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: FuQcS5gen2GaiaFeaturesVersion
      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: FuQcS5gen2GaiaFeaturesVersion
      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_starlabs_coreboot_device_init
  - fu_starlabs_coreboot_device_constructed
  - fu_starlabs_coreboot_device_class_init
  source_file: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuDevice
      item_type: struct
      name: _FuStarlabsCorebootDevice
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_STARLABS_COREBOOT_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.h
      type_or_value: (fu_starlabs_coreboot_device_get_type())
    - item_type: preproc_def
      name: FU_STARLABS_COREBOOT_VERSION_MIN
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.h
      type_or_value: '"26.02"'
    - item_type: preproc_def
      name: FU_STARLABS_COREBOOT_SUPPORT_URL
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-device.h
      type_or_value: '"https://support.starlabs.systems/hc/star-labs/articles/updating-your-firmware"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_test_bios_plugin_device_added_cb
  - fu_starlabs_coreboot_plugin_new
  - fu_bios_plugin_starlabs_coreboot_legacy_func
  - fu_bios_plugin_starlabs_coreboot_supported_func
  - main
  source_file: /src/fwupd/plugins/starlabs-coreboot/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_starlabs_coreboot_plugin_init
  - fu_starlabs_coreboot_plugin_constructed
  - fu_starlabs_coreboot_plugin_coldplug
  - fu_starlabs_coreboot_plugin_class_init
  source_file: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuStarlabsCorebootPlugin
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/starlabs-coreboot/fu-starlabs-coreboot-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_hp_bioscfg_plugin_startup
  - fu_hp_bioscfg_plugin_add_security_attrs
  - fu_hp_bioscfg_plugin_init
  - fu_hp_bioscfg_plugin_class_init
  source_file: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BIOS_SETTING_SURESTART
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c
      type_or_value: '"com.hp-bioscfg.Enhanced_HP_Firmware_Runtime_Intrusion_Prevention_and_Detection"'
    - item_type: preproc_def
      name: BIOS_SETTING_SURESTART_LEGACY
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c
      type_or_value: '"com.hp-bioscfg.HP_Firmware_Runtime_Intrusion_Detection"'
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuHpBiosCfgPlugin
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_test_self_init
  - fu_plugin_hp_bioscfg_surestart_enabled
  - fu_plugin_hp_bioscfg_surestart_enabled_legacy
  - fu_plugin_hp_bioscfg_surestart_disabled
  - fu_plugin_hp_bioscfg_surestart_not_available
  - fu_test_self_free
  - main
  source_file: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ctx'
        type: FuContext
      - name: '*plugin_hp_bioscfg'
        type: FuPlugin
      item_type: struct
      name: FuTest
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/fwupd/plugins/hp-bioscfg/fu-self-test.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/hp-bioscfg/fu-hp-bioscfg-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wacom_usb_module_touch_id7_read_file_header
  - fu_wacom_usb_module_touch_id7_read_record_header
  - fu_wacom_usb_module_touch_id7_generate_command
  - fu_wacom_usb_module_touch_id7_write_block
  - fu_wacom_usb_module_touch_id7_write_record
  - fu_wacom_usb_module_touch_id7_write_firmware
  - fu_wacom_usb_module_touch_id7_init
  - fu_wacom_usb_module_touch_id7_class_init
  - fu_wacom_usb_module_touch_id7_new
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuWacomUsbModule
      item_type: struct
      name: _FuWacomUsbModuleTouchId7
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-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: FuWacomUsbWtaInfo
      pos:
        line_end: 24
        line_start: 19
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c
    - fields:
      - name: header_size
        type: guint32
      - name: firmware_number
        type: guint16
      item_type: struct
      name: FuWacomUsbWtaFileHeader
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-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: FuWacomUsbWtaRecordHeader
      pos:
        line_end: 37
        line_start: 31
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WACOM_USB_MODULE_BLUETOOTH_ID9
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.h
      type_or_value: (fu_wacom_usb_module_bluetooth_id9_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WACOM_USB_MODULE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.h
      type_or_value: (fu_wacom_usb_module_get_type())
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_POLL_INTERVAL
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.h
      type_or_value: "100\t"
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_START_TIMEOUT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.h
      type_or_value: '15000 '
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_DATA_TIMEOUT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.h
      type_or_value: '10000 '
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_END_TIMEOUT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.h
      type_or_value: '10000 '
    structs:
    - fields:
      - name: parent_class
        type: FuDeviceClass
      item_type: struct
      name: _FuWacomUsbModuleClass
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WACOM_USB_MODULE_BLUETOOTH
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.h
      type_or_value: (fu_wacom_usb_module_bluetooth_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WACOM_USB_MODULE_TOUCH
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.h
      type_or_value: (fu_wacom_usb_module_touch_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-android-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WACOM_USB_ANDROID_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-android-device.h
      type_or_value: (fu_wacom_usb_android_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wacom_usb_firmware_parse_func
  - fu_wacom_usb_firmware_xml_func
  - main
  source_file: /src/fwupd/plugins/wacom-usb/fu-self-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wacom_usb_module_bluetooth_id9_calculate_crc32
  - fu_wacom_usb_module_bluetooth_id9_get_startcmd
  - fu_wacom_usb_module_bluetooth_id9_write_block
  - fu_wacom_usb_module_bluetooth_id9_write_blocks
  - fu_wacom_usb_module_bluetooth_id9_prepare_firmware
  - fu_wacom_usb_module_bluetooth_id9_write_firmware
  - fu_wacom_usb_module_bluetooth_id9_init
  - fu_wacom_usb_module_bluetooth_id9_class_init
  - fu_wacom_usb_module_bluetooth_id9_new
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_ID9_PAYLOAD_SZ
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
      type_or_value: '256'
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_ID9_START_NORMAL
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_ID9_CMD_NORMAL
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_ID9_CMD_FULLERASE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
      type_or_value: '0xFE'
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_ID9_LOADER_RAM
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_ID9_LOADER_BEGIN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_ID9_LOADER_DATA
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_ID9_POLL_INTERVAL
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
      type_or_value: '5     '
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_ID9_START_TIMEOUT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
      type_or_value: '75000 '
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_ID9_DATA_TIMEOUT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
      type_or_value: '10000 '
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_ID9_END_TIMEOUT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
      type_or_value: '10000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuWacomUsbModule
      item_type: struct
      name: _FuWacomUsbModuleBluetoothId9
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id9.c
    typedefs: []
    union: []
- function_names:
  - fu_wacom_usb_module_bluetooth_calculate_crc_byte
  - fu_wacom_usb_module_bluetooth_calculate_crc
  - fu_wacom_usb_module_bluetooth_parse_blocks
  - fu_wacom_usb_module_bluetooth_write_firmware
  - fu_wacom_usb_module_bluetooth_init
  - fu_wacom_usb_module_bluetooth_class_init
  - fu_wacom_usb_module_bluetooth_new
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_PAYLOAD_SZ
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c
      type_or_value: '256'
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_ADDR_USERDATA_START
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c
      type_or_value: '0x3000'
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_ADDR_USERDATA_STOP
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c
      type_or_value: '0x8000'
    structs:
    - fields:
      - name: parent_instance
        type: FuWacomUsbModule
      item_type: struct
      name: _FuWacomUsbModuleBluetooth
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c
    - fields:
      - name: preamble[7]
        type: guint8
      - name: addr
        type: guint32
      - name: crc
        type: guint8
      - name: cdata[FU_WACOM_USB_MODULE_BLUETOOTH_PAYLOAD_SZ]
        type: guint8
      item_type: struct
      name: FuWacomUsbModuleBluetoothBlockData
      pos:
        line_end: 30
        line_start: 25
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth.c
    typedefs: []
    union: []
- function_names:
  - fu_wacom_usb_module_touch_write_firmware
  - fu_wacom_usb_module_touch_init
  - fu_wacom_usb_module_touch_class_init
  - fu_wacom_usb_module_touch_new
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuWacomUsbModule
      item_type: struct
      name: _FuWacomUsbModuleTouch
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WACOM_USB_FIRMWARE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.h
      type_or_value: (fu_wacom_usb_firmware_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wacom_usb_plugin_write_firmware
  - fu_wacom_usb_plugin_composite_prepare
  - fu_wacom_usb_plugin_composite_cleanup
  - fu_wacom_usb_plugin_init
  - fu_wacom_usb_plugin_constructed
  - fu_wacom_usb_plugin_class_init
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuPlugin
      item_type: struct
      name: _FuWacomUsbPlugin
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-plugin.c
    typedefs: []
    union: []
- function_names:
  - fu_wacom_usb_buffer_dump
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WACOM_USB_MODULE_SUB_CPU
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.h
      type_or_value: (fu_wacom_usb_module_sub_cpu_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wacom_usb_android_device_init
  - fu_wacom_usb_android_device_class_init
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-android-device.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_instance
        type: FuHidDevice
      item_type: struct
      name: _FuWacomUsbAndroidDevice
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-android-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WACOM_USB_MODULE_BLUETOOTH_ID6
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.h
      type_or_value: (fu_wacom_usb_module_bluetooth_id6_get_type())
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WACOM_USB_DEVICE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.h
      type_or_value: (fu_wacom_usb_device_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_PRIVATE
  - fu_wacom_usb_module_to_string
  - fu_wacom_usb_module_refresh
  - fu_wacom_usb_module_refresh_cb
  - fu_wacom_usb_module_set_feature
  - fu_wacom_usb_module_cleanup
  - fu_wacom_usb_module_convert_version
  - fu_wacom_usb_module_get_property
  - fu_wacom_usb_module_set_property
  - fu_wacom_usb_module_init
  - fu_wacom_usb_module_constructed
  - fu_wacom_usb_module_set_progress
  - fu_wacom_usb_module_class_init
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-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: FuWacomUsbModulePrivate
      pos:
        line_end: 19
        line_start: 15
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WACOM_USB_PACKET_LEN
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-common.h
      type_or_value: '512'
    - item_type: preproc_def
      name: FU_WACOM_USB_REPORT_ID_COMMAND
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FU_WACOM_USB_REPORT_ID_STATUS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-common.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: FU_WACOM_USB_REPORT_ID_CONTROL
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-common.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: FU_WACOM_USB_REPORT_ID_GET_FIRMWARE_VERSION_MAIN
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-common.h
      type_or_value: '0x07'
    - item_type: preproc_def
      name: FU_WACOM_USB_REPORT_ID_GET_FIRMWARE_VERSION_TOUCH
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-common.h
      type_or_value: '0x07'
    - item_type: preproc_def
      name: FU_WACOM_USB_REPORT_ID_GET_FIRMWARE_VERSION_BLUETOOTH
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-common.h
      type_or_value: '0x16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wacom_usb_firmware_tokenize_cb
  - fu_wacom_usb_firmware_validate
  - fu_wacom_usb_firmware_parse
  - fu_wacom_usb_firmware_calc_checksum
  - fu_wacom_usb_firmware_write
  - fu_wacom_usb_firmware_init
  - fu_wacom_usb_firmware_class_init
  - fu_wacom_usb_firmware_new
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WACOM_USB_FIRMWARE_TOKENS_MAX
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c
      type_or_value: '100000 '
    - item_type: preproc_def
      name: FU_WACOM_USB_FIRMWARE_SECTIONS_MAX
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c
      type_or_value: '10'
    structs:
    - fields:
      - name: parent_instance
        type: FuFirmware
      item_type: struct
      name: _FuWacomUsbFirmware
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-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-wacom-usb-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: FuWacomUsbFirmwareTokenHelper
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-firmware.c
    typedefs: []
    union: []
- function_names:
  - fu_wacom_usb_module_bluetooth_id6_reverse_bits
  - fu_wacom_usb_module_bluetooth_id6_calculate_crc
  - fu_wacom_usb_module_bluetooth_id6_write_blob
  - fu_wacom_usb_module_bluetooth_id6_write_firmware
  - fu_wacom_usb_module_bluetooth_id6_init
  - fu_wacom_usb_module_bluetooth_id6_class_init
  - fu_wacom_usb_module_bluetooth_id6_new
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_ID6_CRC8_POLYNOMIAL
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c
      type_or_value: '0x31'
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_ID6_PAYLOAD_SZ
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c
      type_or_value: '256'
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_ID6_START_NORMAL
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_ID6_START_FULLERASE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c
      type_or_value: '0xFE'
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_ID6_START_TIMEOUT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c
      type_or_value: '60000 '
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_BLUETOOTH_ID6_END_TIMEOUT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c
      type_or_value: '60000 '
    structs:
    - fields:
      - name: parent_instance
        type: FuWacomUsbModule
      item_type: struct
      name: _FuWacomUsbModuleBluetoothId6
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-bluetooth-id6.c
    typedefs: []
    union: []
- function_names:
  - fu_wacom_usb_module_sub_cpu_create_chunk
  - fu_wacom_usb_module_sub_cpu_parse_chunks
  - fu_wacom_usb_module_sub_cpu_build_packet
  - fu_wacom_usb_module_sub_cpu_write_firmware
  - fu_wacom_usb_module_sub_cpu_prepare_firmware
  - fu_wacom_usb_module_sub_cpu_init
  - fu_wacom_usb_module_sub_cpu_class_init
  - fu_wacom_usb_module_sub_cpu_new
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_SUB_CPU_PAYLOAD_SZ
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c
      type_or_value: '256'
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_SUB_CPU_START_NORMAL
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c
      type_or_value: '0x00'
    structs:
    - fields:
      - name: parent_instance
        type: FuWacomUsbModule
      item_type: struct
      name: _FuWacomUsbModuleSubCpu
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-sub-cpu.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WACOM_USB_MODULE_SCALER
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.h
      type_or_value: (fu_wacom_usb_module_scaler_get_type())
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wacom_usb_device_flash_descriptor_is_wp
  - fu_wacom_usb_device_flash_descriptor_to_string
  - fu_wacom_usb_device_to_string
  - fu_wacom_usb_device_get_feature_report
  - fu_wacom_usb_device_set_feature_report
  - fu_wacom_usb_device_ensure_flash_descriptors
  - fu_wacom_usb_device_ensure_status
  - fu_wacom_usb_device_ensure_checksums
  - fu_wacom_usb_device_ensure_firmware_index
  - fu_wacom_usb_device_ensure_parameters
  - fu_wacom_usb_device_write_block
  - fu_wacom_usb_device_erase_block
  - fu_wacom_usb_device_update_reset
  - fu_wacom_usb_device_set_checksum_of_block
  - fu_wacom_usb_device_calculate_checksum_of_block
  - fu_wacom_usb_device_write_checksum_table
  - fu_wacom_usb_device_switch_to_flash_loader
  - fu_wacom_usb_device_write_firmware
  - fu_wacom_usb_device_add_modules_bluetooth
  - fu_wacom_usb_device_add_modules_legacy
  - fu_wacom_usb_device_add_modules_cb
  - fu_wacom_usb_device_add_modules
  - fu_wacom_usb_device_setup
  - fu_wacom_usb_device_close
  - fu_wacom_usb_device_set_progress
  - fu_wacom_usb_device_convert_version
  - fu_wacom_usb_device_init
  - fu_wacom_usb_device_finalize
  - fu_wacom_usb_device_class_init
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WACOM_USB_DEVICE_TIMEOUT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: FU_WACOM_USB_DEVICE_MODULE_RETRY_DELAY
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-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: FuWacomUsbFlashDescriptor
      pos:
        line_end: 26
        line_start: 22
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-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: _FuWacomUsbDevice
      pos:
        line_end: 43
        line_start: 31
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-device.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_TYPE_WACOM_USB_MODULE_TOUCH_ID7
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.h
      type_or_value: (fu_wacom_usb_module_touch_id7_get_type())
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_CHUNK_SIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-touch-id7.h
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_wacom_usb_module_scaler_parse_blocks
  - fu_wacom_usb_module_scaler_write_firmware
  - fu_wacom_usb_module_scaler_init
  - fu_wacom_usb_module_scaler_class_init
  - fu_wacom_usb_module_scaler_new
  source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_SCALER_CRC8_POLYNOMIAL
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c
      type_or_value: '0x07'
    - item_type: preproc_def
      name: FU_WACOM_USB_MODULE_SCALER_PAYLOAD_SZ
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c
      type_or_value: '256'
    structs:
    - fields:
      - name: parent_instance
        type: FuWacomUsbModule
      item_type: struct
      name: _FuWacomUsbModuleScaler
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.c
    - fields:
      - name: addr[3]
        type: guint8
      - name: crc
        type: guint8
      - name: cdata[FU_WACOM_USB_MODULE_SCALER_PAYLOAD_SZ]
        type: guint8
      item_type: struct
      name: FuWacomUsbModuleScalerBlockData
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/fwupd/plugins/wacom-usb/fu-wacom-usb-module-scaler.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:
  - fu_gerror_not_set_test
  source_file: /src/fwupd/contrib/ci/tests/fu-gerror-not-set.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_gerror_missing_suffix_test
  source_file: /src/fwupd/contrib/ci/tests/fu-gerror-missing-suffix.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_magic_numbers_inline
  source_file: /src/fwupd/contrib/ci/tests/fu-magic-numbers-inline.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_gerror_literal_test
  source_file: /src/fwupd/contrib/ci/tests/fu-gerror-literal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_device_convert_version_test
  source_file: /src/fwupd/contrib/ci/tests/fu-device-convert-version.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_equals_true
  source_file: /src/fwupd/contrib/ci/tests/fu-equals-true.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_blocked_funcs_test
  source_file: /src/fwupd/contrib/ci/tests/fu-blocked-funcs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_comments
  source_file: /src/fwupd/contrib/ci/tests/fu-comments.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_gerror_domain_test
  source_file: /src/fwupd/contrib/ci/tests/fu-gerror-domain.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_gerror_false_returns_test
  source_file: /src/fwupd/contrib/ci/tests/fu-gerror-false-returns.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_memread_func
  source_file: /src/fwupd/contrib/ci/tests/fu-memread.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_nesting_depth_test
  source_file: /src/fwupd/contrib/ci/tests/fu-nesting-depth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_gtask_test
  source_file: /src/fwupd/contrib/ci/tests/fu-gtask.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_gerror_no_return_test
  source_file: /src/fwupd/contrib/ci/tests/fu-gerror-no-return.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/contrib/ci/tests/fu-struct-typedef.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: buf
        type: guint8
      item_type: struct
      name: FuStructPrefix
      pos:
        line_end: 11
        line_start: 9
        source_file: /src/fwupd/contrib/ci/tests/fu-struct-typedef.c
    - fields:
      - name: buf
        type: guint16
      item_type: struct
      name: WrongPrefix
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/fwupd/contrib/ci/tests/fu-struct-typedef.c
    - fields:
      - name: '*id'
        type: gchar
      item_type: struct
      name: FwupdBiosSettingPrivate
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/fwupd/contrib/ci/tests/fu-struct-typedef.c
    typedefs: []
    union: []
- function_names:
  - fu_zero_init_test
  source_file: /src/fwupd/contrib/ci/tests/fu-zero-init.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_param_self_native_recv
  - fu_param_self_native_send
  - fu_param_self_native_attach
  - fu_param_self_native_class_init
  source_file: /src/fwupd/contrib/ci/tests/fu-param-self-native.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_param_self_firmware
  source_file: /src/fwupd/contrib/ci/tests/fu-param-self-firmware.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_device_display_func
  source_file: /src/fwupd/contrib/ci/tests/fu-device-display.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_strsafe_offset
  source_file: /src/fwupd/contrib/ci/tests/fu-strsafe-offset.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/contrib/ci/tests/fu-enum-typedef.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_rustgen_bitshifts
  source_file: /src/fwupd/contrib/ci/tests/fu-rustgen-bitshifts.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_null_false_returns
  source_file: /src/fwupd/contrib/ci/tests/fu-null-false-returns.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_magic_numbers_buffer
  source_file: /src/fwupd/contrib/ci/tests/fu-magic-numbers-buffer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_blocked_goto_test
  source_file: /src/fwupd/contrib/ci/tests/fu-blocked-goto.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_gprint
  source_file: /src/fwupd/contrib/ci/tests/fu-gprint.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_param_self_device
  source_file: /src/fwupd/contrib/ci/tests/fu-param-self-device.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - foo_cb
  source_file: /src/fwupd/contrib/ci/tests/fu-enum.c
  types:
    enum:
    - enumerators:
      - name: FOO
      item_type: enum
      name: FuBar
      pos:
        line_end: 10
        line_start: 8
        source_file: /src/fwupd/contrib/ci/tests/fu-enum.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_gobject_finalize
  source_file: /src/fwupd/contrib/ci/tests/fu-gobject-finalize.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_firmware_convert_version_test
  - fu_firmware_convert_version_test2
  source_file: /src/fwupd/contrib/ci/tests/fu-firmware-convert-version.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/contrib/ci/tests/fu-blocked-rustgen.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: data
        type: guint8
      item_type: struct
      name: Foo
      pos:
        line_end: 10
        line_start: 8
        source_file: /src/fwupd/contrib/ci/tests/fu-blocked-rustgen.c
    - fields:
      - name: e[6]
        type: guint8
      item_type: struct
      name: fwupd_guid_native_t
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/fwupd/contrib/ci/tests/fu-blocked-rustgen.c
    typedefs: []
    union: []
- function_names:
  - fu_small_conditionals_with_braces
  source_file: /src/fwupd/contrib/ci/tests/fu-small-conditionals-with-braces.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_variable_lowercase
  source_file: /src/fwupd/contrib/ci/tests/fu-variable-lowercase.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: this_is_fine
        type: guint8
      - name: Enter_SBL
        type: guint8
      item_type: struct
      name: FuTest
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/fwupd/contrib/ci/tests/fu-variable-lowercase.c
    typedefs: []
    union: []
- function_names:
  - fu_function_length_switch_test
  source_file: /src/fwupd/contrib/ci/tests/fu-function-length-switch.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - WrongPrefix
  source_file: /src/fwupd/contrib/ci/tests/fu-struct.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: buf
        type: guint8
      item_type: struct
      name: FuStructPrefix
      pos:
        line_end: 11
        line_start: 9
        source_file: /src/fwupd/contrib/ci/tests/fu-struct.c
    - fields:
      - name: buf
        type: guint8
      item_type: struct
      name: "map[] = {\n    {0x0},\n}"
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/fwupd/contrib/ci/tests/fu-struct.c
    typedefs: []
    union: []
- function_names:
  - FU_COMMON_VERSION_DECODE_BCD
  - wrong_name_test
  - fu_function_name_set_version
  - fu_function_name_protocol_set
  - fu_function_name_Enter_SBL
  - fwupd_strerror
  source_file: /src/fwupd/contrib/ci/tests/fu-function-name.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: '*(*FuConvertFunc)(gpointer user_data)'
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/fwupd/contrib/ci/tests/fu-function-name.c
      type: guint8
    union: []
- function_names: []
  source_file: /src/fwupd/contrib/ci/tests/fu-magic-numbers-defined.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FOO_001
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/fwupd/contrib/ci/tests/fu-magic-numbers-defined.c
      type_or_value: '0x123'
    - item_type: preproc_def
      name: FOO_002
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/fwupd/contrib/ci/tests/fu-magic-numbers-defined.c
      type_or_value: '0x123'
    - item_type: preproc_def
      name: FOO_003
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/fwupd/contrib/ci/tests/fu-magic-numbers-defined.c
      type_or_value: '0x123'
    - item_type: preproc_def
      name: FOO_004
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/fwupd/contrib/ci/tests/fu-magic-numbers-defined.c
      type_or_value: '0x123'
    - item_type: preproc_def
      name: FOO_005
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/fwupd/contrib/ci/tests/fu-magic-numbers-defined.c
      type_or_value: '0x123'
    - item_type: preproc_def
      name: FOO_006
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/fwupd/contrib/ci/tests/fu-magic-numbers-defined.c
      type_or_value: '0x123'
    - item_type: preproc_def
      name: FOO_007
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/fwupd/contrib/ci/tests/fu-magic-numbers-defined.c
      type_or_value: '0x123'
    - item_type: preproc_def
      name: FOO_008
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/fwupd/contrib/ci/tests/fu-magic-numbers-defined.c
      type_or_value: '0x123'
    - item_type: preproc_def
      name: FOO_009
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/fwupd/contrib/ci/tests/fu-magic-numbers-defined.c
      type_or_value: '0x123'
    - item_type: preproc_def
      name: FOO_010
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/fwupd/contrib/ci/tests/fu-magic-numbers-defined.c
      type_or_value: '0x123'
    - item_type: preproc_def
      name: FOO_011
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/fwupd/contrib/ci/tests/fu-magic-numbers-defined.c
      type_or_value: '0x123'
    - item_type: preproc_def
      name: FOO_012
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/fwupd/contrib/ci/tests/fu-magic-numbers-defined.c
      type_or_value: '0x123'
    - item_type: preproc_def
      name: FOO_013
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/fwupd/contrib/ci/tests/fu-magic-numbers-defined.c
      type_or_value: '0x123'
    - item_type: preproc_def
      name: FOO_014
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/fwupd/contrib/ci/tests/fu-magic-numbers-defined.c
      type_or_value: '0x123'
    - item_type: preproc_def
      name: FOO_015
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/fwupd/contrib/ci/tests/fu-magic-numbers-defined.c
      type_or_value: '0x123'
    - item_type: preproc_def
      name: FOO_016
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/fwupd/contrib/ci/tests/fu-magic-numbers-defined.c
      type_or_value: '0x123'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_blocked_bitset_test
  source_file: /src/fwupd/contrib/ci/tests/fu-blocked-bitset.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/contrib/ci/tests/fu-gobject-derivable.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: parent_class
        type: FwupdFirmwareClass
      - name: (*func)(FuDevice *self)
        type: void
      item_type: struct
      name: _FuDeviceClass
      pos:
        line_end: 21
        line_start: 18
        source_file: /src/fwupd/contrib/ci/tests/fu-gobject-derivable.h
    typedefs: []
    union: []
- function_names:
  - fu_gerror_deref
  source_file: /src/fwupd/contrib/ci/tests/fu-gerror-deref.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_gerror_void_return
  source_file: /src/fwupd/contrib/ci/tests/fu-gerror-void-return.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/fwupd/contrib/ci/tests/fu-gobject-final.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_static_vars_test
  source_file: /src/fwupd/contrib/ci/tests/fu-static-vars.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fu_rustgen_vars_test
  source_file: /src/fwupd/contrib/ci/tests/fu-rustgen-vars.c
  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: []
